:root{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Inter,Helvetica Neue,Arial,sans-serif;color:#1d1d1f;background:#fff;--panel: #ffffff;--panel-border: rgba(0, 0, 0, .08);--surface-secondary: #f5f5f7;--surface-elevated: #ffffff;--accent: #0071e3;--accent-hover: #0077ed;--accent-soft: #0066cc;--text-primary: #1d1d1f;--text-secondary: rgba(0, 0, 0, .56);--text-tertiary: rgba(0, 0, 0, .36);--muted: rgba(0, 0, 0, .48);--red: #ff3b30;--green: #34c759;--orange: #ff9500;--dark-surface: #1d1d1f;--dark-surface-elevated: #2a2a2d;--dark-text: #f5f5f7;--dark-text-secondary: rgba(255, 255, 255, .56);--dark-border: rgba(255, 255, 255, .1)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--surface-secondary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font:inherit}#root{min-height:100vh}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{padding:36px 20px 20px;border-right:1px solid var(--dark-border);background:var(--dark-surface);color:var(--dark-text);position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column}.content{padding:40px 48px;background:var(--surface-secondary);min-height:100vh}h1{font-size:28px;font-weight:600;line-height:1.14;letter-spacing:.196px;margin:0;color:inherit}h2{font-size:21px;font-weight:600;line-height:1.19;letter-spacing:.231px;margin:0;color:var(--text-primary)}.sidebar h1{color:var(--dark-text)}.eyebrow{margin:0 0 6px;color:var(--accent);text-transform:uppercase;letter-spacing:.1em;font-size:12px;font-weight:600;line-height:1.33}.sidebar .eyebrow{color:var(--dark-text-secondary)}.nav-list{display:flex;flex-direction:column;gap:4px;margin-top:32px}.nav-button{border:none;background:transparent;color:var(--dark-text-secondary);padding:10px 14px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;text-align:left;transition:background .2s ease,color .2s ease}.nav-button:hover{background:#ffffff14;color:var(--dark-text)}.nav-button.active{background:#ffffff1f;color:#fff;font-weight:600}.sidebar-footer{margin-top:auto;padding-top:20px;border-top:1px solid var(--dark-border);display:flex;flex-direction:column;gap:8px}.sidebar-user{font-size:13px;color:var(--dark-text-secondary);padding:0 14px}.sidebar-role{opacity:.5;font-size:12px}.logout-button{color:var(--dark-text-secondary)!important;font-size:13px!important}.login-backdrop{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--surface-secondary);padding:20px}.login-card{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--panel-border);border-radius:16px;padding:40px 36px 36px;box-shadow:0 4px 24px #0000000f}.login-header{text-align:center;margin-bottom:28px}.login-header .eyebrow{color:var(--accent);margin-bottom:4px}.login-header h1{font-size:24px;color:var(--primary)}.login-field{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:500;color:var(--primary);margin-bottom:16px}.login-field input{padding:10px 14px;border:1px solid var(--panel-border);border-radius:10px;font-size:15px;background:var(--surface-secondary);color:var(--primary);transition:border-color .2s ease}.login-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #0071e31f}.login-button{width:100%;margin-top:8px;padding:12px 20px;font-size:16px}.add-user-form{margin-top:20px;padding-top:20px;border-top:1px solid var(--panel-border)}.add-user-form h3{font-size:16px;font-weight:600;margin:0 0 12px}.action-button{border:1px solid transparent;background:var(--accent);color:#fff;padding:10px 20px;border-radius:980px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s ease,transform .15s ease;letter-spacing:-.022em}.action-button:hover{background:var(--accent-hover);transform:scale(1.02)}.action-button:active{transform:scale(.98)}.action-button:disabled{background:#0000001f;color:#0000005c;cursor:default;transform:none}.page-stack{display:flex;flex-direction:column;gap:24px}.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:24px;align-items:stretch}.hero h2{font-size:40px;font-weight:600;line-height:1.1;letter-spacing:normal;color:var(--text-primary)}.hero-copy{font-size:17px;line-height:1.47;letter-spacing:-.374px;color:var(--text-secondary);margin:12px 0 0}.hero>div:first-child{display:flex;flex-direction:column;justify-content:center;gap:4px}.panel,.notification-card{background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000000a,0 4px 12px #00000008}.notification-card{display:flex;flex-direction:column;justify-content:center}.notification-card.alert{background:linear-gradient(135deg,#fff5f5,#fff);border-color:#ff3b3033}.notification-card.alert h2{color:var(--red)}.notification-card h2{color:var(--text-primary)}.notification-card p:not(.eyebrow){color:var(--text-secondary);font-size:14px;line-height:1.43;margin:4px 0 0}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.panel-header span{font-size:12px;font-weight:500;color:var(--text-tertiary);background:var(--surface-secondary);padding:4px 10px;border-radius:980px}.table-wrap{overflow-x:auto;margin-top:8px}table{width:100%;border-collapse:collapse}th{padding:10px 12px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);text-align:left;border-bottom:1px solid var(--panel-border)}td{padding:12px;font-size:14px;color:var(--text-primary);border-bottom:1px solid rgba(0,0,0,.04);text-align:left}tbody tr{transition:background .15s ease}tbody tr:hover{background:var(--surface-secondary)}tbody tr:last-child td{border-bottom:none}.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-top:16px}.filter-grid label,.checkbox-field{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:500;color:var(--text-secondary)}.filter-grid input,.filter-grid select{border:1px solid rgba(0,0,0,.12);background:var(--surface-secondary);color:var(--text-primary);padding:10px 12px;border-radius:8px;font-size:14px;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.filter-grid input:focus,.filter-grid select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0071e333}.checkbox-field input{align-self:flex-start}.action-row{display:flex;gap:10px;margin-top:20px;flex-wrap:nowrap;align-items:center}.action-row>button,.action-row>.action-button,.action-row>.action-button-secondary{flex-shrink:0;width:auto;white-space:nowrap}.action-row-inline{display:flex;gap:8px;align-items:center}.action-row .nav-button{border:1px solid rgba(0,0,0,.12);background:transparent;color:var(--accent);padding:10px 20px;border-radius:980px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s ease}.action-row .nav-button:hover{background:#0071e30f}.action-button-secondary{border:1px solid rgba(0,0,0,.12);background:transparent;color:var(--accent);padding:10px 20px;border-radius:980px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s ease,transform .15s ease}.action-button-secondary:hover{background:#0071e30f;transform:scale(1.02)}.action-button-secondary:active{transform:scale(.98)}.action-button-danger{border:1px solid rgba(255,59,48,.2);background:transparent;color:var(--red);padding:10px 20px;border-radius:980px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s ease,transform .15s ease}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:#00000026;border-radius:24px;transition:background .3s ease}.toggle-slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform .3s ease;box-shadow:0 1px 3px #00000026}.toggle-switch input:checked+.toggle-slider{background:var(--green)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.toggle-switch input:focus-visible+.toggle-slider{box-shadow:0 0 0 3px #34c7594d}} .action-button-danger:hover{background:#ff3b300f;transform:scale(1.02)}.action-button-danger:active{transform:scale(.98)}.audio-toggle-row{display:flex;align-items:center;gap:12px;margin-bottom:16px}.audio-toggle-label{font-size:14px;font-weight:500;color:var(--primary)}.audio-upload-section{border-top:1px solid var(--panel-border);padding-top:16px}.audio-upload-row{display:flex;align-items:center;gap:12px;margin-top:10px}.audio-file-info{display:inline-flex;align-items:center;gap:8px;background:var(--surface-secondary);border-radius:8px;padding:4px 10px;font-size:13px}.audio-file-name{color:var(--primary);font-weight:500}.audio-remove-btn{background:none;border:none;color:var(--muted);cursor:pointer;font-size:14px;line-height:1;padding:2px 4px;border-radius:4px}.audio-remove-btn:hover{color:var(--red);background:#ff3b3014}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.error-text{color:var(--red);font-size:14px;font-weight:500;margin-top:12px}.success-text{color:var(--green);font-size:14px;font-weight:500;margin-top:12px}.muted{color:var(--muted);font-size:14px;line-height:1.43}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000007a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:50;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.alarm-modal{width:min(480px,100%);background:var(--surface-elevated);border:1px solid var(--panel-border);border-radius:16px;padding:28px;box-shadow:0 24px 80px #0000002e,0 8px 24px #0000001f;animation:slideUp .3s cubic-bezier(.16,1,.3,1)}.alarm-modal .eyebrow{color:var(--red)}.alarm-modal h2{font-size:28px;font-weight:600;margin-top:4px}.alarm-modal-copy{color:var(--text-secondary);font-size:14px;margin:4px 0 0}.alarm-modal-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:24px 0}.alarm-modal-details div{padding:14px;background:var(--surface-secondary);border-radius:10px}.alarm-modal-details dt{color:var(--text-tertiary);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.alarm-modal-details dd{margin:0;font-size:15px;font-weight:500;color:var(--text-primary)}.panel>.action-button{margin-top:12px}.setup-guide-text{line-height:1.6}.setup-guide-steps{margin-top:12px;padding-left:20px;color:#0000008f;font-size:14px;line-height:1.8}@media (max-width: 980px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:none;border-bottom:1px solid var(--dark-border);padding:20px}.sidebar .nav-list{flex-direction:row;flex-wrap:wrap;gap:6px;margin-top:16px}.hero{grid-template-columns:1fr}.content{padding:24px 20px}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000026;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#00000040}
