:root{--bg-color: #f8fafc;--text-primary: #1e293b;--text-secondary: #64748b;--amhs-navy: #003366;--amhs-gold: #FFC72C;--accent-blue: #3b82f6;--accent-green: #10b981;--accent-red: #ef4444;--accent-yellow: #f59e0b;--card-bg: #ffffff;--card-border: #e2e8f0}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Arial,sans-serif;background:var(--bg-color);color:var(--text-primary);min-height:100vh;display:flex;flex-direction:column}.app-container{width:100vw;height:100vh;display:flex;flex-direction:column;gap:20px}.content-wrapper{padding:0 32px 32px;display:flex;flex-direction:column;gap:20px;flex:1;overflow:hidden}.header{display:flex;justify-content:space-between;align-items:center;padding:16px 32px;background:var(--amhs-navy);color:#fff;border-bottom:4px solid var(--amhs-gold);box-shadow:0 4px 6px -1px #0000001a}.logo{display:flex;align-items:center;gap:12px}.logo h1{font-size:1.5rem;font-weight:700;color:#fff}.stats{display:flex;gap:16px}.stat-card{display:flex;flex-direction:column;align-items:center;padding:8px 24px;background:#fff;border-radius:8px;border:1px solid var(--amhs-navy)}.stat-label{font-size:.75rem;text-transform:uppercase;font-weight:700;color:var(--amhs-navy)}.stat-value{font-size:1.5rem;font-weight:700;color:var(--amhs-navy)}.time-display{font-family:monospace;font-size:1.25rem;font-weight:700;color:var(--amhs-gold);background:#ffffff1a;padding:8px 16px;border-radius:8px}.main-content{display:flex;gap:20px;flex:1;overflow:hidden}.panel{background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 4px 6px -1px #0000001a}.passenger-panel{flex:2}.side-panel-container{flex:1;display:flex;flex-direction:column;gap:20px}.log-panel{flex:1}.radius-panel{flex:0 0 auto;padding-bottom:16px}.panel-header{padding:16px 24px;border-bottom:2px solid var(--amhs-gold);display:flex;justify-content:space-between;align-items:center;background:var(--amhs-navy);color:#fff}.panel-header h2{font-size:1.1rem;font-weight:700}.search-bar input{background:#fff;border:1px solid var(--card-border);color:var(--text-primary);padding:8px 16px;border-radius:4px;outline:none;width:250px}.search-bar input:focus{border-color:var(--amhs-gold)}.btn-secondary{background:#fff;color:var(--amhs-navy);border:none;padding:6px 12px;border-radius:4px;cursor:pointer;font-weight:700}.btn-secondary:hover{background:var(--card-border)}.passenger-list,.log-list{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.passenger-card{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:16px;border-radius:8px;border:1px solid var(--card-border)}.passenger-info h3{font-size:1rem;margin-bottom:4px;color:var(--amhs-navy);font-weight:700}.passenger-info p{font-size:.8rem;color:var(--text-secondary)}.status-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:.75rem;font-weight:700;text-transform:uppercase}.status-pending{background:#fffbeb;color:var(--accent-yellow);border:1px solid var(--accent-yellow)}.status-boarded{background:#ecfdf5;color:var(--accent-green);border:1px solid var(--accent-green)}.status-cancelled{background:#fef2f2;color:var(--accent-red);border:1px solid var(--accent-red)}.actions{display:flex;gap:8px}.btn{padding:8px 16px;border:none;border-radius:4px;font-weight:700;cursor:pointer;color:#fff}.btn-board{background:var(--accent-green)}.btn-unboard{background:var(--accent-yellow)}.btn-cancel{background:var(--accent-red)}.log-item{font-size:.85rem;padding:10px;border-left:4px solid var(--amhs-gold);background:#f8fafc;border-bottom:1px solid var(--card-border);border-top:1px solid var(--card-border);border-right:1px solid var(--card-border)}.log-time{color:var(--amhs-navy);font-weight:700;font-size:.75rem;margin-right:8px}.log-msg{color:var(--text-primary)}.radius-content{padding:16px}.radius-input{width:100%;padding:10px;border:1px solid var(--card-border);border-radius:4px;margin-bottom:12px}.btn-primary{width:100%;padding:10px;background:var(--amhs-navy);color:#fff;border:none;border-radius:4px;font-weight:700;cursor:pointer}.btn-primary:hover{background:#024}.password-display{margin-top:12px;padding:12px;background:#ecfdf5;border:1px dashed var(--accent-green);text-align:center;font-family:monospace;font-size:1.1rem;font-weight:700;color:var(--amhs-navy);display:none}.tabs{display:flex;gap:12px}.tab-btn{padding:10px 24px;background:#fff;border:1px solid var(--card-border);border-radius:8px;cursor:pointer;font-weight:700;color:var(--text-secondary);font-size:1rem;transition:all .2s}.tab-btn:hover{border-color:var(--amhs-navy);color:var(--amhs-navy)}.tab-btn.active{background:var(--amhs-navy);color:#fff;border-color:var(--amhs-navy)}.tab-content{display:none!important}.tab-content.active{display:flex!important}.auth-gate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#0f172a;padding:20px}.auth-card{width:100%;max-width:380px;background:#fff;border-radius:10px;padding:28px;box-shadow:0 20px 50px #00000059;display:flex;flex-direction:column}.auth-card h2{margin:0 0 4px;color:#036}.auth-sub{margin:0 0 16px;color:#64748b;font-size:.9rem}.auth-notice{background:#fef3c7;border:1px solid #F59E0B;color:#92400e;border-radius:6px;padding:10px 12px;font-size:.78rem;font-weight:600;line-height:1.35;margin-bottom:16px}.auth-error{background:#fee2e2;border:1px solid #EF4444;color:#991b1b;border-radius:6px;padding:10px 12px;font-size:.82rem;font-weight:600;margin-bottom:14px}.auth-card label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b;margin-bottom:6px}.auth-card input{padding:11px 12px;border:1px solid #cbd5e1;border-radius:6px;margin-bottom:14px;font-size:1rem}.auth-card button{background:#036;color:#fff;border:0;border-radius:6px;padding:12px;font-weight:700;cursor:pointer}.auth-card button:disabled{background:#94a3b8;cursor:not-allowed}.vessel-line{display:flex;align-items:center;gap:10px;margin-top:6px;font-size:.9rem;color:#d4af37}.vessel-line select{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:4px;padding:4px 8px;font-weight:600}.vessel-line select option{color:var(--amhs-navy)}.operator{color:#cbd5e1;font-size:.8rem}.desk-error,.desk-notice,.no-vessel{border-radius:6px;padding:10px 14px;font-weight:600;font-size:.9rem}.desk-error{background:#fef2f2;color:#991b1b;border:1px solid #fca5a5}.desk-notice{background:#ecfdf5;color:#065f46;border:1px solid #6ee7b7}.no-vessel{background:#fffbeb;color:#92400e;border:1px solid #fcd34d}.roster-panel{flex:2;display:flex;flex-direction:column;overflow:auto}.admit-panel{flex:1}.admit-content{padding:16px;display:flex;flex-direction:column;gap:10px;font-size:.9rem}.roster-list,.signoff-list,.staff-results{display:flex;flex-direction:column;gap:10px;padding:12px 16px}.crew-row,.staff-result,.scanx-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px;border:1px solid var(--card-border);border-radius:6px;background:var(--card-bg)}.staff-result{flex-direction:column}.crew-info h3{font-size:1rem;color:var(--amhs-navy)}.crew-meta{font-size:.82rem;color:var(--text-secondary);margin-top:2px}.planned-passed{color:#b45309;font-weight:600}.badge{display:inline-block;font-size:.7rem;font-weight:700;padding:2px 6px;border-radius:4px;vertical-align:middle}.badge-sample{background:#fef3c7;color:#92400e;border:1px solid #f59e0b}.badge-onshift{background:#ecfdf5;color:#047857;border:1px solid #10b981}.badge-offshift{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1}.admit-form{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;width:100%}.admit-form label{display:flex;flex-direction:column;font-size:.75rem;color:var(--text-secondary);gap:4px}.sample-banner{margin:8px 16px 0;padding:6px 10px;border:1px solid #f59e0b;background:#fef3c7;color:#92400e;font-size:.75rem;font-weight:700;border-radius:4px}.subhead{padding:8px 16px 0;font-size:.9rem;color:var(--amhs-navy)}.signoff-item{font-size:.82rem;color:var(--text-secondary)}.panel-hint{font-size:.78rem;color:var(--text-secondary)}.gap-panel{padding-bottom:24px;max-width:720px}.gap-text{padding:16px;color:var(--text-secondary)}.gap-panel .radius-input,.gap-panel .btn-primary{margin:0 16px}.empty,.desk-inline-error{font-size:.85rem;color:var(--text-secondary)}.desk-inline-error{color:#991b1b}[hidden],.tab-content.active[hidden]{display:none!important}.pax-controls{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;padding:12px 16px;font-size:.85rem}.pax-controls select{padding:6px 8px;border:1px solid var(--card-border);border-radius:4px}.pax-counts{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px}.count-chip{font-size:.78rem;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:12px;padding:2px 10px}.wifi-line{font-size:.78rem;color:#1e3a8a;margin-top:2px}.config-error{background:#fef2f2;color:#991b1b;border:1px solid #fca5a5;border-radius:6px;padding:10px;font-weight:600;margin-bottom:10px}#wifi-admin{padding:0 16px;display:flex;flex-direction:column;gap:8px}.demo-strip{height:32px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 16px;background:var(--amhs-navy);color:#fff;border-bottom:2px solid var(--amhs-gold);font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden}.demo-strip a{color:var(--amhs-gold);font-weight:700}.demo-strip a:hover{color:#fff}.demo-strip~.app-container{height:calc(100vh - 32px)}.demo-strip~.auth-gate{top:32px}
