:root{--deep-navy: #14243f;--navy: #0f1f2e;--navy-mid: #162533;--navy-light: #1c3045;--growth-teal: #1fc8a6;--teal-dim: #14a88c;--teal-pale: rgba(31, 200, 166, .1);--rep-blue: #2d6cdf;--midnight: #111827;--cloud: #f5f7fa;--off-white: #f4f7f9;--dark-text: #1a2b3c;--body-text: #334455;--slate: #8a94a6;--gray-light: #dde6ed;--green: #22c55e;--amber: #f59e0b;--red: #ef4444;--coral: #e85d5d;--card: #ffffff;--border: #e4e9f0;--gradient: linear-gradient(90deg, #14243f 0%, #1fc8a6 100%)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:DM Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--cloud);color:var(--deep-navy);font-size:14px;line-height:1.5}.layout{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:var(--midnight);color:#fff;padding:24px 16px;display:flex;flex-direction:column;gap:24px;position:sticky;top:0;height:100vh;overflow-y:auto}.logo-wrap{border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:12px;background:#ffffff0a}.brand-lockup{display:flex;align-items:center;gap:10px}.brand-icon-badge{width:44px;height:44px;border-radius:10px;background:var(--growth-teal);display:flex;align-items:center;justify-content:center;flex-shrink:0}.brand-icon-text{font-size:18px;font-weight:900;color:var(--midnight);letter-spacing:-1px}.brand-name{font-size:18px;font-weight:700;color:#fff;margin:0}.brand-subtitle{font-size:10px;color:#8ea3b1;margin:2px 0 0;letter-spacing:.02em}.tenant-strip{display:flex;flex-direction:column;gap:6px}.tenant-label{font-size:10px;color:#64748b;text-transform:uppercase;letter-spacing:.06em}.tenant-readonly{font-size:13px;color:#cbd5e1}.tenant-select{background:#1e2e3d;border:1px solid #2e4255;color:#e2e8f0;font-size:13px;border-radius:6px;padding:6px 10px;cursor:pointer;width:100%}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-btn{display:block;padding:9px 12px;border-radius:7px;font-size:13px;font-weight:500;color:#94a3b8;text-decoration:none;cursor:pointer;transition:background .12s,color .12s}.nav-btn:hover{background:#ffffff0f;color:#e2e8f0}.nav-btn.active{background:#1fc8a61f;color:var(--growth-teal)}.sidebar-note{font-size:10px;color:#475569;margin-top:auto}.content{padding:0;display:flex;flex-direction:column}.header{display:flex;align-items:flex-start;justify-content:space-between;padding:24px 28px 20px;background:var(--card);border-bottom:1px solid var(--border)}.header .title{font-size:22px;font-weight:700;color:var(--dark-text);margin:0}.header .subtitle{font-size:13px;color:var(--slate);margin:4px 0 0}.header-right{display:flex;align-items:center;gap:12px;flex-shrink:0}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:20px;box-shadow:0 1px 3px #14243f0a}.card-title-row{display:flex;align-items:baseline;gap:10px;margin-bottom:16px}.section-title{font-size:15px;font-weight:600;color:var(--dark-text)}.card-sub{font-size:12px;color:var(--slate)}.page-body{padding:20px 28px;display:flex;flex-direction:column;gap:16px}.grid{display:grid;gap:16px}.grid-1{grid-template-columns:1fr}.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 900px){.grid-4{grid-template-columns:1fr 1fr}.grid-2,.layout{grid-template-columns:1fr}.sidebar{position:static;height:auto}}.kpi-label{font-size:11px;font-weight:600;color:var(--slate);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.kpi-value{font-size:28px;font-weight:700;color:var(--dark-text);margin:0}.kpi-trend{font-size:12px;margin-top:4px}.kpi-trend.up{color:var(--green)}.kpi-trend.down{color:var(--red)}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;font-size:11px;font-weight:600;color:var(--slate);text-transform:uppercase;letter-spacing:.05em;padding:6px 10px 10px;border-bottom:1px solid var(--border)}.table td{padding:10px;border-bottom:1px solid var(--border);color:var(--body-text);vertical-align:top}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--off-white)}.id-cell{font-family:ui-monospace,DM Mono,monospace;font-size:11px;color:var(--slate)}.status{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600}.status-active{background:#f0fdf4;color:#166534}.status-degraded{background:#fffbeb;color:#92400e}.status-broken{background:#fff1f2;color:#9f1239}.badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600}.badge-teal{background:var(--teal-pale);color:var(--teal-dim);border:1px solid rgba(31,200,166,.25)}.badge-blue{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.bar-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-size:13px}.bar-label-stack{width:180px;flex-shrink:0}.bar-lane{display:block;font-size:12px;font-weight:500;color:var(--dark-text)}.bar-equip{display:block;font-size:10px;color:var(--slate)}.bar-track{flex:1;height:8px;background:var(--gray-light);border-radius:4px;overflow:hidden}.bar-fill{height:100%;border-radius:4px;transition:width .3s ease}.bar-fill-high{background:var(--growth-teal)}.bar-fill-med{background:var(--rep-blue)}.bar-fill-low{background:var(--coral)}.user-chip{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:8px;background:var(--off-white);border:1px solid var(--border)}.user-initials{width:30px;height:30px;border-radius:50%;background:var(--deep-navy);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-name{font-size:12px;font-weight:600;color:var(--dark-text)}.user-role{font-size:10px;font-weight:500}.role-admin{color:var(--teal-dim)}.role-rep{color:var(--rep-blue)}.role-manager{color:var(--amber)}.auth-page{min-height:100vh;background:var(--midnight);display:flex;align-items:center;justify-content:center;padding:40px 20px}.auth-card{background:#1e293b;border:1px solid #334155;border-radius:14px;padding:40px;width:100%;max-width:420px;box-shadow:0 20px 60px #0006}.auth-logo{display:flex;align-items:center;gap:10px;margin-bottom:28px}.auth-logo-badge{width:38px;height:38px;background:var(--growth-teal);border-radius:9px;display:flex;align-items:center;justify-content:center}.auth-logo-badge-text{font-size:14px;font-weight:900;color:var(--midnight);letter-spacing:-1px}.auth-logo-name{font-size:18px;font-weight:700;color:#f1f5f9}.auth-title{font-size:20px;font-weight:700;color:#f1f5f9;margin-bottom:6px}.auth-subtitle{font-size:14px;color:#94a3b8;margin-bottom:28px;line-height:1.5}.form-field{margin-bottom:16px}.form-field label{display:block;font-size:12px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.form-input{width:100%;background:#0f1f2e;border:1px solid #334155;border-radius:8px;padding:10px 12px;color:#f1f5f9;font-size:14px;font-family:inherit;outline:none;transition:border-color .15s}.form-input:focus{border-color:var(--growth-teal)}.form-input::placeholder{color:#475569}.form-input:disabled{opacity:.5;cursor:not-allowed}.form-hint{font-size:12px;color:#64748b;margin-top:5px}.btn-primary{width:100%;padding:11px;background:var(--growth-teal);border:none;border-radius:8px;color:var(--midnight);font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s,transform .1s}.btn-primary:hover:not(:disabled){background:var(--teal-dim)}.btn-primary:active:not(:disabled){transform:scale(.99)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{width:100%;padding:11px;background:transparent;border:1px solid #334155;border-radius:8px;color:#94a3b8;font-size:14px;font-weight:500;cursor:pointer;font-family:inherit;transition:border-color .15s,color .15s}.btn-secondary:hover{border-color:#4b6484;color:#e2e8f0}.error-banner{background:#ef44441f;border:1px solid rgba(239,68,68,.3);border-radius:8px;padding:10px 12px;color:#fca5a5;font-size:13px;margin-bottom:16px}.success-banner{background:#1fc8a61a;border:1px solid rgba(31,200,166,.25);border-radius:8px;padding:10px 12px;color:var(--growth-teal);font-size:13px;margin-bottom:16px}.divider{border:none;border-top:1px solid #1e2e3d;margin:20px 0}.install-step{display:flex;gap:16px;align-items:flex-start;padding:16px;border-radius:10px;background:#0f1f2e;border:1px solid #1e2e3d;margin-bottom:12px}.install-step-number{width:28px;height:28px;border-radius:50%;background:var(--growth-teal);color:var(--midnight);font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.install-step-number.done{background:var(--green)}.install-step-number.pending{background:#1e2e3d;color:#475569}.install-step-body{flex:1}.install-step-title{font-size:14px;font-weight:600;color:#e2e8f0;margin-bottom:4px}.install-step-sub{font-size:12px;color:#64748b;line-height:1.5}.toggle{display:flex;gap:4px;background:var(--off-white);border-radius:7px;padding:3px;border:1px solid var(--border);width:fit-content}.toggle-btn{padding:5px 14px;border-radius:5px;font-size:12px;font-weight:500;border:none;background:transparent;color:var(--slate);cursor:pointer}.toggle-btn.active{background:var(--card);color:var(--dark-text);box-shadow:0 1px 3px #00000014}.intel-list{display:flex;flex-direction:column;gap:10px}.intel-item{display:flex;gap:10px;align-items:flex-start}.intel-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:5px}.intel-dot.teal{background:var(--growth-teal)}.intel-dot.amber{background:var(--amber)}.intel-body{flex:1}.intel-heading{font-size:13px;color:var(--dark-text);margin-bottom:2px}.intel-lane{color:var(--slate)}.intel-note{font-size:12px;color:var(--body-text);margin-bottom:5px}.intel-bands{display:flex;gap:6px;flex-wrap:wrap}.band-pill{font-size:10px;font-weight:600;padding:2px 8px;border-radius:4px}.band-pill.england{background:var(--teal-pale);color:var(--teal-dim)}.band-pill.dat{background:#e8833a1a;color:#c2621a}.rate-band-pill{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe;font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px;white-space:nowrap}.control-row{margin-bottom:14px}.due-in-cell{display:flex;flex-direction:column;gap:2px}.due-in-context{font-size:10px;color:var(--slate)}
