.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px;background:var(--color-bg)}.login-card{width:100%;max-width:380px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:40px 32px;box-shadow:var(--shadow-lg)}.login-header{text-align:center;margin-bottom:32px}.login-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;background:var(--color-primary-muted);color:var(--color-primary);border-radius:50%;margin-bottom:16px}.login-header h1{font-size:1.25rem;font-weight:600;color:var(--color-text);margin-bottom:6px}.login-header p{font-size:.875rem;color:var(--color-text-secondary)}.login-form{display:flex;flex-direction:column;gap:12px}.login-form input{width:100%;padding:12px 16px;font-size:.9375rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);transition:border-color var(--transition-fast)}.login-form input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-muted)}.login-form button{width:100%;padding:12px;font-size:.9375rem;font-weight:600;background:var(--color-primary);color:#fff;border-radius:var(--radius-md);transition:background var(--transition-fast),opacity var(--transition-fast)}.login-form button:hover:not(:disabled){background:var(--color-primary-hover)}.login-form button:disabled{opacity:.5;cursor:not-allowed}.login-error{font-size:.8125rem;color:var(--color-error);text-align:center;padding:8px;background:var(--color-error-muted);border-radius:var(--radius-sm)}.audio-meter-segmented{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-bg);border-radius:var(--radius-sm)}.meter-label{font-size:.625rem;font-weight:700;letter-spacing:.05em;color:var(--color-text-muted);flex-shrink:0;width:28px}.meter-segments{display:flex;gap:2px;flex:1;height:10px;align-items:stretch}.meter-seg{flex:1;border-radius:1px;transition:opacity 60ms linear}.meter-seg-green{background:#22c55e;opacity:.15}.meter-seg-green.meter-seg-lit{opacity:1;box-shadow:0 0 4px #22c55e4d}.meter-seg-yellow{background:#eab308;opacity:.15}.meter-seg-yellow.meter-seg-lit{opacity:1;box-shadow:0 0 4px #eab3084d}.meter-seg-red{background:#ef4444;opacity:.15}.meter-seg-red.meter-seg-lit{opacity:1;box-shadow:0 0 4px #ef44444d}.station-monitor{display:flex;flex-direction:column;gap:10px}.monitor-controls{display:flex;flex-direction:column;gap:8px}.monitor-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px 16px;font-size:.875rem;font-weight:600;border-radius:var(--radius-md);background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-secondary);transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.monitor-btn:hover{background:var(--color-surface-hover);border-color:var(--color-border-light);color:var(--color-text)}.monitor-btn--active{background:var(--color-primary-muted);border-color:var(--color-primary);color:var(--color-primary)}.monitor-btn--active:hover{background:#3b82f640;border-color:var(--color-primary);color:var(--color-primary)}.monitor-volume{display:flex;align-items:center;gap:8px;color:var(--color-text-muted)}.volume-slider{flex:1;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--color-border);border-radius:2px;outline:none;border:none;padding:0;cursor:pointer}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:2px solid var(--color-surface);box-shadow:0 0 0 1px var(--color-primary)}.volume-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:2px solid var(--color-surface);box-shadow:0 0 0 1px var(--color-primary)}.monitor-live-badge{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:500;color:var(--color-success)}.monitor-live-dot{width:6px;height:6px;border-radius:50%;background:var(--color-success);animation:monitor-pulse 2s ease-in-out infinite}@keyframes monitor-pulse{0%,to{opacity:1}50%{opacity:.4}}.show-controls{display:flex;flex-direction:column;gap:24px}.controls-section{display:flex;flex-direction:column;gap:12px}.section-title{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;font-size:.875rem;font-weight:600;border-radius:var(--radius-md);transition:background var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast)}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-full{width:100%}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover:not(:disabled){background:#16a34a}.btn-danger{background:var(--color-error);color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-outline{background:transparent;border:1px solid var(--color-border);color:var(--color-text)}.btn-outline:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-border-light)}.btn-sm{padding:6px 10px;font-size:.8125rem}.show-active{display:flex;flex-direction:column;gap:10px}.show-status-badge{display:inline-flex;align-items:center;gap:8px;font-size:.875rem;font-weight:500;color:var(--color-success)}.pulse{width:8px;height:8px;border-radius:50%;background:var(--color-success);animation:pulse-anim 2s ease-in-out infinite}@keyframes pulse-anim{0%,to{opacity:1;box-shadow:0 0 #22c55e66}50%{opacity:.8;box-shadow:0 0 0 6px #22c55e00}}.conference-name{font-size:.75rem;font-family:monospace;color:var(--color-text-muted);background:var(--color-bg);padding:6px 10px;border-radius:var(--radius-sm);word-break:break-all}.mic-select{width:100%;font-size:.8125rem}.device-info{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background:var(--color-bg);border-radius:var(--radius-sm)}.device-label{font-size:.75rem;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.btn-link{background:none;border:none;color:var(--color-primary);font-size:.75rem;font-weight:500;cursor:pointer;padding:0;flex-shrink:0;transition:opacity var(--transition-fast)}.btn-link:hover:not(:disabled){opacity:.8}.btn-link:disabled{opacity:.4;cursor:not-allowed}.webrtc-status{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--color-bg);border-radius:var(--radius-md)}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-disconnected{background:var(--color-text-muted)}.status-connecting,.status-ready{background:var(--color-warning);animation:pulse-anim 1.5s ease-in-out infinite}.status-live{background:var(--color-success);animation:pulse-anim 2s ease-in-out infinite}.status-error{background:var(--color-error)}.status-label{font-size:.8125rem;color:var(--color-text-secondary)}.device-row{display:flex;flex-direction:column;gap:6px}.device-row-header{display:flex;align-items:center;justify-content:space-between}.device-row-label{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:500;color:var(--color-text-secondary)}.device-row-label svg{color:var(--color-text-muted);flex-shrink:0}.device-row .btn-link{display:inline-flex;align-items:center;gap:4px}.device-select{width:100%;font-size:.8125rem;padding:7px 10px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:border-color var(--transition-fast)}.device-select:focus{border-color:var(--color-primary);outline:none}.device-select:hover{border-color:var(--color-border-light)}.caller-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:16px;display:flex;flex-direction:column;gap:12px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.caller-card:hover{border-color:var(--color-border-light);box-shadow:var(--shadow-sm)}.caller-card--on-air{border-color:#ef44444d;background:var(--color-on-air-muted)}.caller-card--on-air:hover{border-color:#ef444480}.caller-card-header{display:flex;align-items:center;justify-content:space-between}.caller-info{display:flex;align-items:center;gap:10px}.caller-number{font-size:.9375rem;font-weight:600;color:var(--color-text)}.caller-status-badge{font-size:.625rem;font-weight:700;letter-spacing:.05em;padding:2px 8px;border-radius:10px;text-transform:uppercase}.badge-holding{background:var(--color-holding-muted);color:var(--color-holding)}.badge-waiting{background:#f59e0b26;color:#f59e0b;animation:badge-pulse 2s ease-in-out infinite}.badge-on-air{background:var(--color-on-air-muted);color:var(--color-on-air);animation:badge-pulse 2s ease-in-out infinite}@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.7}}.caller-meta{display:flex;align-items:center;gap:10px;font-size:.75rem;color:var(--color-text-muted)}.caller-position{font-weight:500;color:var(--color-text-secondary)}.caller-card-body{display:flex;flex-direction:column;gap:8px}.caller-name-input{width:100%;padding:6px 10px;font-size:.8125rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.caller-notes-input{width:100%;padding:6px 10px;font-size:.8125rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);resize:vertical;min-height:48px;line-height:1.4}.caller-card-actions{display:flex;gap:8px}.btn-danger-outline{background:transparent;border:1px solid rgba(239,68,68,.3);color:var(--color-error)}.btn-danger-outline:hover:not(:disabled){background:var(--color-error-muted);border-color:#ef444480}.caller-card-error{font-size:.75rem;color:var(--color-error);background:var(--color-error-muted);padding:6px 10px;border-radius:var(--radius-sm)}.call-queue{display:flex;flex-direction:column;gap:12px}.queue-title{display:flex;align-items:center;gap:8px;font-size:.9375rem;font-weight:600;color:var(--color-text)}.queue-count{font-size:.75rem;font-weight:600;background:var(--color-holding-muted);color:var(--color-holding);padding:2px 8px;border-radius:10px}.queue-list{display:flex;flex-direction:column;gap:8px}.queue-empty{font-size:.875rem;color:var(--color-text-muted);padding:24px;text-align:center;background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-lg)}.on-air-panel{display:flex;flex-direction:column;gap:12px}.on-air-title{display:flex;align-items:center;gap:8px;font-size:.9375rem;font-weight:600;color:var(--color-text)}.on-air-indicator{width:8px;height:8px;border-radius:50%;background:var(--color-on-air);animation:on-air-pulse 2s ease-in-out infinite}@keyframes on-air-pulse{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 6px #ef444400}}.on-air-count{font-size:.75rem;font-weight:600;background:var(--color-on-air-muted);color:var(--color-on-air);padding:2px 8px;border-radius:10px}.on-air-list{display:flex;flex-direction:column;gap:8px}.on-air-empty{font-size:.875rem;color:var(--color-text-muted);padding:24px;text-align:center;background:var(--color-surface);border:1px dashed rgba(239,68,68,.2);border-radius:var(--radius-lg)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .15s ease}.modal-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:90%;max-width:520px;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px #00000080;animation:slideUp .2s ease}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--color-border)}.modal-header h2{font-size:1.125rem;font-weight:600;color:var(--color-text);margin:0}.modal-close{background:none;border:none;color:var(--color-text-muted);font-size:1.5rem;cursor:pointer;padding:0;line-height:1;transition:color .15s}.modal-close:hover{color:var(--color-text)}.modal-loading{padding:48px;text-align:center;color:var(--color-text-muted)}.settings-section{padding:20px 24px}.settings-section h3{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-primary);margin:0 0 6px}.settings-hint{font-size:.8125rem;color:var(--color-text-muted);margin:0 0 16px;line-height:1.5}.settings-field{margin-bottom:14px}.settings-field label{display:block;font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);margin-bottom:5px}.settings-field input{width:100%;padding:9px 12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:.875rem;font-family:SF Mono,Fira Code,monospace;transition:border-color .15s}.settings-field input:focus{outline:none;border-color:var(--color-primary)}.settings-field input::placeholder{color:var(--color-text-muted);font-family:inherit}.settings-message{margin:0 24px 16px;padding:10px 14px;border-radius:var(--radius);font-size:.8125rem;font-weight:500}.settings-message-success{background:#22c55e1a;color:var(--color-success);border:1px solid rgba(34,197,94,.2)}.settings-message-error{background:#ef44441a;color:var(--color-error);border:1px solid rgba(239,68,68,.2)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--color-border)}.btn-secondary{background:var(--color-surface-hover);color:var(--color-text-secondary)}.btn-secondary:hover{background:var(--color-border);color:var(--color-text)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.dashboard{display:flex;flex-direction:column;height:100vh;overflow:hidden}.dashboard-header{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0}.header-left{display:flex;align-items:center;gap:12px}.header-logo{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--color-primary-muted);color:var(--color-primary);border-radius:var(--radius-md)}.dashboard-header h1{font-size:1rem;font-weight:600}.header-right{display:flex;align-items:center;gap:16px}.header-stats{display:flex;gap:12px}.stat{font-size:.8125rem;font-weight:500;padding:4px 10px;border-radius:20px}.holding-stat{background:var(--color-holding-muted);color:var(--color-holding)}.on-air-stat{background:var(--color-on-air-muted);color:var(--color-on-air)}.settings-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);color:var(--color-text-muted);transition:color var(--transition-fast),background var(--transition-fast)}.settings-btn:hover{color:var(--color-text);background:var(--color-surface-hover)}.logout-btn{font-size:.8125rem;color:var(--color-text-secondary);padding:6px 12px;border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.logout-btn:hover{color:var(--color-text);background:var(--color-surface-hover)}.dashboard-body{display:flex;flex:1;overflow:hidden}.dashboard-sidebar{width:320px;flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border);overflow-y:auto;padding:20px}.dashboard-main{flex:1;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:24px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:var(--color-text-muted);text-align:center;gap:12px}.empty-state h2{font-size:1.125rem;font-weight:600;color:var(--color-text-secondary)}.empty-state p{font-size:.875rem}@media(max-width:768px){.dashboard-body{flex-direction:column}.dashboard-sidebar{width:100%;border-right:none;border-bottom:1px solid var(--color-border);max-height:280px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #0f1117;--color-surface: #1a1d27;--color-surface-hover: #22252f;--color-border: #2a2d3a;--color-border-light: #353849;--color-text: #e8eaed;--color-text-secondary: #9aa0b0;--color-text-muted: #6b7185;--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-primary-muted: rgba(59, 130, 246, .15);--color-success: #22c55e;--color-success-muted: rgba(34, 197, 94, .15);--color-warning: #eab308;--color-warning-muted: rgba(234, 179, 8, .15);--color-error: #ef4444;--color-error-muted: rgba(239, 68, 68, .15);--color-on-air: #ef4444;--color-on-air-muted: rgba(239, 68, 68, .12);--color-holding: #3b82f6;--color-holding-muted: rgba(59, 130, 246, .12);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--transition-fast: .15s ease;--transition-normal: .25s ease}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);line-height:1.5;min-height:100vh}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;font-size:inherit}input,textarea{font-family:inherit;font-size:inherit;color:inherit;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:8px 12px;outline:none;transition:border-color var(--transition-fast)}input:focus,textarea:focus{border-color:var(--color-primary)}select{font-family:inherit;font-size:inherit;color:inherit;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:8px 12px;outline:none;cursor:pointer}select:focus{border-color:var(--color-primary)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-border-light)}
