@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";
:root{--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-card:#fff;--bg-card-hover:#f8fafc;--bg-input:#fff;--bg-tertiary:#f1f5f9;--border-subtle:#e2e8f0;--border-primary:#e2e8f0;--border-secondary:#cbd5e1;--border-strong:#0f172a;--border-focus:#0f172a;--border-glow:#0f172a1f;--primary:#0f172a;--primary-hover:#1e293b;--primary-glow:#0f172a1a;--secondary:#f1f5f9;--secondary-hover:#e2e8f0;--accent:#0f172a;--text-primary:#0f172a;--text-secondary:#334155;--text-muted:#64748b;--text-tertiary:#64748b;--success:#16a34a;--success-bg:#f0fdf4;--success-border:#bbf7d0;--accent-green:#16a34a;--danger:#dc2626;--danger-bg:#fef2f2;--danger-border:#fecaca;--accent-red:#dc2626;--warning:#d97706;--warning-bg:#fffbeb;--warning-border:#fde68a;--accent-warning:#d97706;--info:#2563eb;--info-bg:#eff6ff;--info-border:#bfdbfe;--accent-blue:#2563eb;--radius-sm:8px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #00000014, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000a;--shadow-glow:none}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6}.app-layout{background:var(--bg-primary);width:100%;min-height:100vh;display:flex}.main-content{background:var(--bg-primary);flex-direction:column;flex:1;min-width:0;max-height:100vh;display:flex;overflow-y:auto}.top-navbar{border-bottom:1px solid var(--border-subtle);z-index:10;background:#fff;justify-content:space-between;align-items:center;padding:1.25rem 2.5rem;display:flex;position:sticky;top:0;box-shadow:0 1px 2px #00000008}.navbar-breadcrumbs{color:var(--text-secondary);align-items:center;gap:.6rem;font-size:1rem;display:flex}.breadcrumb-active{color:var(--text-primary);font-weight:700}.navbar-actions{align-items:center;gap:1rem;display:flex}.live-time-badge{font-variant-numeric:tabular-nums;color:var(--text-primary);background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);padding:.5rem .9rem;font-size:.95rem;font-weight:600}.sidebar{border-right:1px solid var(--border-subtle);background-color:#fff;flex-direction:column;flex-shrink:0;width:290px;height:100vh;display:flex;position:sticky;top:0}.sidebar-header{border-bottom:1px solid var(--border-subtle);justify-content:center;align-items:center;min-height:72px;padding:1.25rem 1.5rem;display:flex}.sidebar-logo{object-fit:contain;width:auto;max-width:100%;max-height:48px;margin:0 auto;display:block}.brand-icon{border-radius:var(--radius-sm);color:#fff;background:#0f172a;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.brand-text{flex-direction:column;gap:.15rem;display:flex}.brand-title{letter-spacing:-.02em;color:var(--text-primary);font-size:1.2rem;font-weight:800;display:block}.brand-badge{text-transform:uppercase;letter-spacing:.05em;color:var(--success);background:var(--success-bg);border:1px solid var(--success-border);border-radius:9999px;width:fit-content;padding:.2rem .55rem;font-size:.75rem;font-weight:700;display:inline-block}.sidebar-nav{flex:1;padding:1.5rem 1rem;overflow-y:auto}.nav-section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:0 .85rem .85rem;font-size:.8rem;font-weight:700}.nav-list{flex-direction:column;gap:.4rem;list-style:none;display:flex}.nav-button{border-radius:var(--radius-sm);width:100%;min-height:48px;color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:.95rem;padding:.75rem 1rem;font-family:inherit;font-size:1rem;font-weight:600;transition:all .15s ease-in-out;display:flex}.nav-button:hover{background:var(--bg-tertiary);color:var(--text-primary)}.nav-button.active{color:#fff;background:#0f172a;border-color:#0f172a;font-weight:700}.nav-icon{color:inherit;justify-content:center;align-items:center;display:flex}.nav-button.active .nav-icon{color:#fff}.nav-label{flex:1}.nav-badge{background:var(--bg-tertiary);color:var(--text-secondary);border-radius:999px;padding:.2rem .6rem;font-size:.8rem;font-weight:600}.nav-badge.active{color:#fff;background:#fff3}.sidebar-footer{border-top:1px solid var(--border-subtle);background:#fff;justify-content:space-between;align-items:center;gap:.75rem;padding:1.25rem 1.5rem;display:flex}.user-profile-card{border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;flex:1;align-items:center;gap:.85rem;min-width:0;margin:-.4rem -.5rem;padding:.4rem .5rem;font-family:inherit;transition:all .15s;display:flex}.user-profile-card:hover{background:var(--bg-hover);border-color:var(--border-subtle)}.user-profile-card.active{background:var(--bg-secondary);border-color:var(--border-secondary)}.user-profile-card.active .user-name{color:var(--primary)}.user-avatar{border-radius:var(--radius-sm);color:#fff;background:#0f172a;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:1rem;font-weight:700;display:flex}.user-meta{flex-direction:column;min-width:0;display:flex}.user-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:700;overflow:hidden}.user-email{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.825rem;overflow:hidden}.logout-button{background:var(--bg-primary);border:1.5px solid var(--border-subtle);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;transition:all .15s;display:flex}.logout-button:hover{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}.view-container{width:100%;max-width:1400px;margin:0 auto;padding:2.5rem}.view-header-row{justify-content:space-between;align-items:center;gap:1.25rem;margin-bottom:2rem;display:flex}.view-title{letter-spacing:-.03em;color:var(--text-primary);font-size:2rem;font-weight:800}.view-subtitle{color:var(--text-secondary);margin-top:.35rem;font-size:1.05rem}.welcome-banner{border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:#fff;justify-content:space-between;align-items:center;margin-bottom:2rem;padding:2rem 2.25rem;display:flex}.welcome-title{color:var(--text-primary);font-size:1.65rem;font-weight:800}.welcome-subtitle{color:var(--text-secondary);margin-top:.4rem;font-size:1.05rem}.status-pill{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success);white-space:nowrap;border-radius:999px;align-items:center;gap:.6rem;padding:.6rem 1.15rem;font-size:.9rem;font-weight:700;display:flex}.pulse-dot{background:var(--success);border-radius:50%;width:10px;height:10px;animation:2s infinite pulse;box-shadow:0 0 #16a34ab3}@keyframes pulse{0%{transform:scale(.95);box-shadow:0 0 #16a34ab3}70%{transform:scale(1);box-shadow:0 0 0 8px #16a34a00}to{transform:scale(.95);box-shadow:0 0 #16a34a00}}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.metric-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:#fff;padding:1.75rem;transition:border-color .15s,box-shadow .15s}.metric-card:hover{border-color:var(--border-secondary);box-shadow:var(--shadow-md)}.metric-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.metric-label{color:var(--text-secondary);font-size:1rem;font-weight:600}.metric-icon{color:var(--text-primary)}.metric-body{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.metric-value{letter-spacing:-.03em;color:var(--text-primary);font-size:2.25rem;font-weight:800}.metric-change{border-radius:var(--radius-sm);padding:.3rem .65rem;font-size:.85rem;font-weight:700}.metric-change.positive{color:var(--success);background:var(--success-bg);border:1px solid var(--success-border)}.metric-change.warning{color:var(--warning);background:var(--warning-bg);border:1px solid var(--warning-border)}.metric-change.neutral{color:var(--text-muted);background:var(--bg-tertiary);border:1px solid var(--border-subtle)}.dashboard-columns{flex-wrap:wrap;gap:1.75rem;display:flex}.flex-1{flex:1;min-width:320px}.flex-2{flex:2;min-width:460px}.card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:#fff;overflow:hidden}.dashboard-card{background:#fff}.card-header{border-bottom:1px solid var(--border-subtle);background:#fff;justify-content:space-between;align-items:center;padding:1.5rem 1.75rem;display:flex}.card-title{color:var(--text-primary);font-size:1.25rem;font-weight:700}.card-subtitle{color:var(--text-secondary);margin-top:.25rem;font-size:.925rem}.card-body{background:#fff;padding:1.75rem}.timeline{flex-direction:column;gap:1.5rem;display:flex}.timeline-item{align-items:flex-start;gap:1.15rem;display:flex}.timeline-bullet{background:#0f172a;border-radius:50%;flex-shrink:0;width:12px;height:12px;margin-top:.45rem}.timeline-content{flex:1}.timeline-header{justify-content:space-between;align-items:center;margin-bottom:.35rem;display:flex}.timeline-title{color:var(--text-primary);font-size:1.05rem;font-weight:700}.timeline-time{color:var(--text-muted);font-size:.875rem;font-weight:500}.timeline-desc{color:var(--text-secondary);margin-bottom:.6rem;font-size:.95rem;line-height:1.5}.tag{border:1px solid #0000;border-radius:999px;padding:.3rem .75rem;font-size:.825rem;font-weight:700;display:inline-block}.tag-success{background:var(--success-bg);border-color:var(--success-border);color:#15803d}.tag-warning{background:var(--warning-bg);border-color:var(--warning-border);color:#b45309}.tag-danger{background:var(--danger-bg);border-color:var(--danger-border);color:#b91c1c}.tag-info{background:var(--info-bg);border-color:var(--info-border);color:#1d4ed8}.tag-neutral{background:var(--bg-tertiary);border-color:var(--border-subtle);color:var(--text-secondary)}.filter-pill-group{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:#fff;flex-wrap:wrap;gap:.5rem;padding:.35rem;display:flex}.filter-pill{color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;padding:.5rem 1rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:all .15s}.filter-pill:hover{background:var(--bg-tertiary);color:var(--text-primary)}.filter-pill.active{color:#fff;background:#0f172a;font-weight:700}.zone-specs-list{flex-direction:column;gap:1rem;display:flex}.spec-row{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding-bottom:.75rem;font-size:.95rem;display:flex}.spec-label{color:var(--text-secondary);font-weight:500}.spec-value{color:var(--text-primary);font-weight:700}.progress-bar-bg{background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:999px;width:100%;height:8px;overflow:hidden}.progress-bar-fill{border-radius:999px;height:100%;transition:width .3s}.fill-success{background:var(--success)}.fill-warning{background:var(--warning)}.fill-danger{background:var(--danger)}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:1.75rem;display:grid}.setting-toggle-row{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:1.25rem;padding:1.25rem 0;display:flex}.setting-info strong{color:var(--text-primary);font-size:1.05rem;font-weight:700;display:block}.setting-info p{color:var(--text-secondary);margin-top:.3rem;font-size:.9rem;line-height:1.5}.badge-locked{border-radius:var(--radius-sm);background:var(--success-bg);color:#15803d;border:1px solid var(--success-border);white-space:nowrap;padding:.35rem .75rem;font-size:.825rem;font-weight:700}.setting-input-row{margin-top:1.5rem}.setting-label{color:var(--text-primary);margin-bottom:.5rem;font-size:.95rem;font-weight:700;display:block}.form-select{border:1.5px solid var(--border-secondary);border-radius:var(--radius-sm);width:100%;min-height:48px;color:var(--text-primary);background:#fff;outline:none;padding:.75rem 1rem;font-family:inherit;font-size:1rem;font-weight:500;transition:border-color .15s,box-shadow .15s}.form-select:focus{border-color:#0f172a;box-shadow:0 0 0 3px #0f172a1a}.switch{flex-shrink:0;width:54px;height:30px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.slider{cursor:pointer;background-color:#cbd5e1;border-radius:34px;transition:all .25s;position:absolute;inset:0}.slider:before{content:"";background-color:#fff;border-radius:50%;width:22px;height:22px;transition:all .25s;position:absolute;bottom:4px;left:4px;box-shadow:0 2px 4px #0003}input:checked+.slider{background-color:#0f172a}input:checked+.slider:before{transform:translate(24px)}.profile-hero-section{text-align:center;border-bottom:1px solid var(--border-subtle);background:var(--bg-tertiary);flex-direction:column;align-items:center;padding:2.5rem 1.5rem;display:flex}.profile-large-avatar{border-radius:var(--radius-md);color:#fff;background:#0f172a;justify-content:center;align-items:center;width:90px;height:90px;margin-bottom:1rem;font-size:2.25rem;font-weight:800;display:flex}.profile-hero-name{color:var(--text-primary);font-size:1.5rem;font-weight:800}.profile-hero-email{color:var(--text-secondary);margin-top:.25rem;font-size:.95rem}.divider{background:var(--border-subtle);height:1px}.active-session-item{background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);align-items:center;gap:1rem;padding:1.25rem;display:flex}.session-icon{font-size:1.75rem}.session-info{flex:1}.session-info strong{color:var(--text-primary);font-size:1rem;display:block}.session-info p{color:var(--text-secondary);margin-top:.2rem;font-size:.85rem}.input-group{flex-direction:column;gap:.5rem;display:flex}.input-label{color:var(--text-primary);font-size:.95rem;font-weight:700}.input-wrapper{align-items:center;display:flex;position:relative}.form-input{border:1.5px solid var(--border-secondary);border-radius:var(--radius-sm);width:100%;min-height:48px;color:var(--text-primary);background:#fff;outline:none;padding:.75rem 1rem;font-family:inherit;font-size:1rem;transition:border-color .15s,box-shadow .15s}.form-input.with-icon{padding-left:2.85rem}.input-icon{color:var(--text-muted);pointer-events:none;align-items:center;display:flex;position:absolute;left:.95rem}.form-input:focus{border-color:#0f172a;box-shadow:0 0 0 3px #0f172a1a}.input-wrapper.has-error .form-input{border-color:var(--danger);box-shadow:0 0 0 3px #dc26261f}.input-error-msg{color:var(--danger);font-size:.85rem;font-weight:600}.input-helper-msg{color:var(--text-muted);font-size:.85rem}.btn{border-radius:var(--radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;border:1.5px solid #0000;outline:none;justify-content:center;align-items:center;gap:.6rem;font-family:inherit;font-weight:600;text-decoration:none;transition:all .15s ease-in-out;display:inline-flex}.btn-sm{min-height:38px;padding:.45rem 1rem;font-size:.9rem}.btn-md{min-height:48px;padding:.75rem 1.5rem;font-size:1rem}.btn-lg{min-height:52px;padding:.9rem 2rem;font-size:1.1rem}.btn-primary{color:#fff;background:#0f172a;border-color:#0f172a}.btn-primary:hover:not(:disabled){background:#1e293b;border-color:#1e293b}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-subtle)}.btn-secondary:hover:not(:disabled){background:var(--border-subtle)}.btn-outline{border-color:var(--border-secondary);color:var(--text-primary);background:#fff}.btn-outline:hover:not(:disabled){background:var(--bg-tertiary);border-color:#0f172a}.btn:disabled{opacity:.5;cursor:not-allowed}.spinner-wrapper{align-items:center;gap:.5rem;display:inline-flex}.spinner{border:2.5px solid #0f172a33;border-top-color:#0f172a;border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}.btn-primary .spinner{border-color:#fff #ffffff4d #ffffff4d}@keyframes spin{to{transform:rotate(360deg)}}.alert{border-radius:var(--radius-sm);border:1px solid #0000;align-items:flex-start;gap:1rem;padding:1.1rem 1.25rem;font-size:.95rem;line-height:1.5;display:flex}.alert-error{background:var(--danger-bg);border-color:var(--danger-border);color:#991b1b}.alert-success{background:var(--success-bg);border-color:var(--success-border);color:#166534}.alert-warning{background:var(--warning-bg);border-color:var(--warning-border);color:#92400e}.alert-info{background:var(--info-bg);border-color:var(--info-border);color:#1e40af}.alert-icon{flex-shrink:0;margin-top:.15rem}.alert-content{flex:1}.alert-title{margin-bottom:.25rem;font-size:1rem;font-weight:700}.alert-close{color:inherit;cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:1.35rem;line-height:1}.auth-wrapper{background-color:var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;padding:2.5rem 1.5rem;display:flex}.auth-bg-blob{display:none}.auth-card{border:1px solid var(--border-secondary);border-radius:var(--radius-lg);width:100%;max-width:480px;box-shadow:var(--shadow-md);background:#fff;padding:3rem 2.5rem}.auth-header{text-align:center;margin-bottom:2.25rem}.auth-logo{border-radius:var(--radius-sm);color:#fff;background:#0f172a;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 1.5rem;display:flex}.auth-title{letter-spacing:-.02em;color:var(--text-primary);font-size:1.85rem;font-weight:800}.auth-subtitle{color:var(--text-secondary);margin-top:.5rem;font-size:1rem}.auth-form{flex-direction:column;gap:1.35rem;display:flex}.auth-footer{text-align:center;color:var(--text-secondary);margin-top:2rem;font-size:.95rem}.auth-link{color:var(--text-primary);font-weight:700;text-decoration:underline;transition:color .15s}.auth-link:hover{color:#334155}.auth-cookie-badge{color:var(--text-muted);border-top:1px solid var(--border-subtle);justify-content:center;align-items:center;gap:.5rem;margin-top:1.75rem;padding-top:1.5rem;font-size:.85rem;display:flex}.show-desktop{display:inline}.show-mobile{display:none}@media (max-width:640px){.show-desktop{display:none}.show-mobile{display:inline}}
