:root{color-scheme:light;--bg:#f3f5f9;--surface:#fff;--text:#24334a;--muted:#718097;--border:#e5eaf1;--accent:#087f72;--ok:#138b70;--warning:#b0780a;--critical:#d0454b;font-family:Inter,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:14px}*{box-sizing:border-box}body{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,a,input,select,textarea{outline-offset:3px}:focus-visible{outline:3px solid #5daee0}.app-layout{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh}.sidebar{background:#142239;color:#becbdc;padding:30px 18px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;color:inherit;font-size:21px;font-weight:750;letter-spacing:-.5px}.brand:hover{text-decoration:none}.brand-mark{display:grid;place-items:center;background:#22b99a;color:#092d2a;width:40px;height:40px;border-radius:12px;font-size:15px;letter-spacing:-1px}.brand small{display:block;font-size:10px;font-weight:400;color:#91a2bb;letter-spacing:.1px;margin-top:3px}.sidebar>.brand{margin:0 8px 40px;color:#f3f7ff}.nav-heading{font-size:10px;letter-spacing:1.5px;color:#899ab3;padding:16px 14px 10px}.main-nav{display:flex;flex-direction:column;gap:5px}.main-nav a{display:flex;align-items:center;gap:12px;padding:13px 14px;color:#b9c7db;border-radius:7px;font-weight:550}.main-nav a:hover{background:#20334e;color:white;text-decoration:none}.main-nav a.active{background:#1e4949;color:#77e2c5;box-shadow:inset 3px 0 #33c5a5}.nav-icon{font-size:21px;line-height:1;width:20px;text-align:center}.sidebar-bottom{display:flex;align-items:center;gap:10px;border-top:1px solid #2b3b53;padding:20px 5px 0;margin-top:auto}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#31405b;color:#e5efff;font-weight:700}.sidebar-bottom strong{font-size:12px}.sidebar-bottom small{display:block;color:#8b9bb2;font-size:10px;margin-top:3px}.sidebar-bottom form{margin-left:auto}.logout-button{background:transparent;color:#b9c7db;padding:6px;border:0;font-size:22px}.workspace{min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;background:var(--surface);border-bottom:1px solid var(--border);padding:22px 36px;color:var(--muted);font-size:12px;min-height:68px}.status-dot{display:inline-block;width:7px;height:7px;background:#21b497;border-radius:50%;margin-right:8px}.topbar-divider{margin:0 12px;color:#bbc5d3}.topbar-date{font-size:11px}main{max-width:1600px;padding:32px 36px 40px;margin:auto}h1{font-size:29px;line-height:1.25;letter-spacing:-.8px;margin:7px 0 10px;font-weight:700}h2{font-size:18px;letter-spacing:-.3px;margin:0 0 18px}h3{font-size:15px}p{line-height:1.6}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:1.6px;font-weight:650;color:var(--muted)}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.page-heading p{margin:0}.button-link,button{font:inherit;background:var(--accent);color:#fff;padding:10px 16px;border:1px solid var(--accent);border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;display:inline-block;line-height:1.5}button{margin:6px 0}button:hover,.button-link:hover{filter:brightness(.94);text-decoration:none}.secondary{background:#fff;color:var(--text);border:1px solid #dce3ed}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:24px 0 28px}.cards article{background:var(--surface);padding:22px;border:1px solid var(--border);border-radius:10px;box-shadow:0 3px 10px #253b5b03;color:var(--muted);font-size:11px;position:relative;overflow:hidden}.cards article:after{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--metric-color)}.metric-ok{--metric-color:#18a587}.metric-unknown{--metric-color:#8a9db6}.metric-warning{--metric-color:#e4ae44}.metric-critical{--metric-color:#df6970}.metric-label{font-size:9px;letter-spacing:1.2px;font-weight:700}.cards strong{display:block;font-size:34px;color:var(--text);font-weight:650;margin:10px 0 7px;letter-spacing:-1px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:26px;margin:24px 0;box-shadow:0 4px 20px #263b5903}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.panel-heading h2{margin:6px 0 0}.panel>p{color:var(--muted);font-size:12px}.subtle-badge,.status-badge{padding:6px 10px;border-radius:5px;background:#eef2f7;color:var(--muted);font-size:11px;font-weight:600}.status-badge.OK{background:#e4f5ee;color:var(--ok)}.status-badge.Unknown,.status-badge.Critical{background:#fdeced;color:var(--critical)}label{display:block;margin:16px 0 6px;font-weight:550;font-size:12px}input,textarea,select{font:inherit;font-size:13px;padding:10px 12px;border:1px solid #dce3ed;border-radius:6px;background:#fbfcfe;color:var(--text);line-height:1.5}input:not([type=checkbox]):not([type=radio]),textarea{display:block;width:100%;max-width:800px;margin-top:6px}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}input[type=radio]{display:inline-block;width:auto;margin:0 8px 0 0}textarea{min-height:105px;resize:vertical}input:focus,textarea:focus,select:focus{background:white}form p{margin:12px 0}.filters{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:12px 0 18px;border-bottom:1px solid var(--border)}.filters input{width:280px;margin:0!important}.filters select{max-width:210px}.scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px;margin:10px 0}td,th{text-align:left;padding:18px 13px;border-bottom:1px solid var(--border);vertical-align:middle}th{background:#f8fafc;color:#8290a4;font-size:10px;text-transform:uppercase;letter-spacing:.6px;font-weight:650;white-space:nowrap}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcfe}td>a{font-weight:600;color:#29445d}.audit-code{display:block;color:var(--muted);font-size:10px;line-height:1.5;margin-top:6px}pre{overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:#f5f7fa;padding:14px;border-radius:6px;font-size:12px}details{padding:14px 0;border-bottom:1px solid var(--border)}summary{cursor:pointer;font-size:12px;color:#52627b}meter{width:100px;height:16px;accent-color:var(--accent)}.notice{padding:14px 18px;background:#e6f5ef;border:1px solid #c6e9dc;border-radius:7px;font-size:13px}.errorlist{color:#b7323c;font-size:12px;padding-left:18px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 28px}.form-field>label{margin:0 0 6px}.form-field>input,.form-field>select,.form-field>textarea{max-width:none}.form-field>select{width:100%}.full-width{grid-column:1/-1}.capacity{min-width:200px;max-width:310px;color:var(--ok)}.capacity.Warning{color:var(--warning)}.capacity.Critical,.capacity.Unknown{color:var(--critical)}.capacity-label{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:8px;font-size:11px}.capacity-label strong{font-weight:600}.capacity-label span{font-variant-numeric:tabular-nums;font-weight:650}.capacity progress{appearance:none;width:100%;height:7px;border:0;border-radius:6px;overflow:hidden;background:#edf1f6;color:inherit}.capacity progress::-webkit-progress-bar{background:#edf1f6;border-radius:6px}.capacity progress::-webkit-progress-value{background:currentColor;border-radius:6px}.capacity progress::-moz-progress-bar{background:currentColor;border-radius:6px}.settings-section{border-top:3px solid #26ab94}.smtp-section{border-top-color:#6b91c6}.section-heading{display:flex;align-items:flex-start;gap:16px;margin-bottom:24px}.section-heading h2{margin:0 0 8px}.section-heading p{margin:0;color:var(--muted);font-size:12px}.section-number{background:#e6f5ef;color:var(--accent);padding:10px 12px;border-radius:7px;font-size:13px;font-weight:700}.smtp-section .section-number{background:#eaf0f9;color:#4c72a4}.settings-divider{display:flex;align-items:center;gap:20px;margin:42px 0 28px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:1px}.settings-divider:before,.settings-divider:after{content:'';height:1px;flex:1;background:#d7dfe9}.settings-actions,.pagination{display:flex;flex-wrap:wrap;gap:12px}.pagination{justify-content:space-between}.breadcrumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:10px;list-style:none;padding:0;margin:0 0 20px;font-size:11px}.breadcrumbs li+li:before{content:'›';color:#a3afbf;margin-right:10px}.breadcrumbs a{color:var(--muted)}.breadcrumbs [aria-current=page]{color:var(--text);font-weight:600}.host-actions{display:flex;gap:20px;border-bottom:1px solid var(--border);margin:0 0 24px}.host-actions a{padding:12px 3px;color:var(--muted);font-size:12px;font-weight:600}.host-actions a.selected{color:var(--accent);border-bottom:2px solid var(--accent)}footer{display:flex;justify-content:space-between;gap:16px;margin:12px 36px;padding:18px 0;border-top:1px solid var(--border);color:#8b98ab;font-size:10px}.auth-header{padding:24px 36px;color:var(--text)}.auth-layout main{max-width:700px}.narrow{max-width:450px;margin:40px auto;padding:36px}.auth-layout footer{max-width:600px;margin:30px auto}.chart-filters{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:20px}.chart-filters label{margin:0;min-width:180px}.chart-filters select{display:block;margin-top:6px;width:100%}.chart-filters button{margin:0}.chart-switch{display:flex;background:#f2f5f9;padding:3px;border:1px solid var(--border);border-radius:6px;gap:2px}.chart-switch button{border:0;color:var(--muted);background:transparent;padding:6px 10px;margin:0;font-size:11px}.chart-switch button[aria-pressed=true]{background:white;color:var(--accent);box-shadow:0 1px 4px #20364a15}.chart-summary{display:flex;gap:32px;flex-wrap:wrap;padding:14px 0 20px}.chart-summary small{display:block;font-size:10px;color:var(--muted);margin-bottom:6px}.chart-summary strong{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums}.chart-container{height:300px;width:100%}#history-chart{display:block;width:100%;height:100%}.chart-readout{font-size:11px!important;min-height:22px}.chart-legend{display:flex;gap:20px;flex-wrap:wrap;font-size:10px;color:var(--muted)}.chart-legend span{display:flex;align-items:center;gap:6px}.legend-line{display:inline-block;width:18px;height:2px;background:#169e89}.warning-line{background:#d7a135}.critical-line{background:#d56870}.chart-note{font-size:10px!important;margin-top:16px}.chart-panel{overflow:hidden}@media(min-width:1700px){main{padding:40px 50px}.topbar{padding-left:50px;padding-right:50px}}@media(max-width:1050px){.app-layout{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:25px 12px}.brand{font-size:18px}.sidebar>.brand{margin-left:4px}.brand small{font-size:9px}main{padding:25px 24px}.topbar{padding:18px 24px}.cards{gap:12px}.cards article{padding:18px}.form-grid{gap:18px}.filters input{width:220px}}@media(max-width:760px){.app-layout{display:block}.sidebar{position:relative;height:auto;padding:15px 18px;display:block}.sidebar>.brand{margin:0 0 15px}.sidebar>.nav-heading,.main-nav>.nav-heading{display:none}.main-nav{flex-direction:row;flex-wrap:wrap;gap:4px}.main-nav a{padding:8px 10px;font-size:11px;gap:6px}.main-nav a.active{box-shadow:inset 0 -2px #33c5a5}.nav-icon{font-size:16px;width:15px}.sidebar-bottom{position:absolute;right:18px;top:18px;margin:0;padding:0;border:0}.sidebar-bottom>div,.sidebar-bottom>.avatar{display:none}.topbar{padding:15px 18px;min-height:50px}.topbar-date{display:none}main{padding:24px 18px}.page-heading{align-items:flex-start;gap:12px;flex-direction:column}h1{font-size:25px}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.panel{padding:19px}.form-grid{grid-template-columns:1fr}.full-width{grid-column:auto}.panel-heading{align-items:flex-start;flex-wrap:wrap}.chart-container{height:250px}.chart-filters label{min-width:0;flex:1}.chart-summary{gap:24px}.chart-summary strong{font-size:15px}footer{margin:12px 18px}.settings-divider{margin:30px 0 22px}.auth-header{padding:20px}.narrow{padding:26px;margin:20px auto}}
@media(max-width:760px){.chart-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.chart-filters button{grid-column:1/-1;width:100%}}.measurement-log{border-bottom:0;padding:0}.measurement-log>summary{font-size:14px;font-weight:600;color:var(--text)}
.filters input:not([type=checkbox]):not([type=radio]){width:260px;flex:1;max-width:none;min-width:180px}
:root{--chart-grid:#e8edf3;--chart-label:#8290a4;--chart-line:#169e89;--chart-fill:#169e8912}.topbar-tools{display:flex;align-items:center;gap:18px}.theme-toggle{background:var(--surface);color:var(--text);border:1px solid var(--border);font-size:11px;padding:7px 11px;margin:0;white-space:nowrap}.auth-header{display:flex;align-items:center;justify-content:space-between}.legend-line{background:var(--chart-line)}.warning-line{background:#d7a135}.critical-line{background:#d56870}
:root[data-theme=dark]{color-scheme:dark;--bg:#101827;--surface:#182336;--text:#dce6f3;--muted:#9aaac0;--border:#2b3a50;--accent:#47cbb0;--ok:#53d1ad;--warning:#efbd59;--critical:#f18189;--chart-grid:#2c3b50;--chart-label:#9cacc2;--chart-line:#47cbb0;--chart-fill:#47cbb018}
[data-theme=dark] .sidebar{background:#0d1523}[data-theme=dark] .cards article{box-shadow:none}[data-theme=dark] input,[data-theme=dark] textarea,[data-theme=dark] select{background:#121c2d;border-color:#35465f}[data-theme=dark] input:focus,[data-theme=dark] textarea:focus,[data-theme=dark] select:focus{background:#1c2b40}[data-theme=dark] th{background:#141e30;color:#a6b5c9}[data-theme=dark] tbody tr:hover{background:#1d2c41}[data-theme=dark] td>a{color:#9ad6cf}[data-theme=dark] pre{background:#111b2b}[data-theme=dark] button:not(.theme-toggle):not(.logout-button):not([data-chart-metric]),[data-theme=dark] .button-link:not(.secondary){color:#0b302b}[data-theme=dark] .secondary{background:var(--surface);color:var(--text);border-color:var(--border)}[data-theme=dark] .subtle-badge,[data-theme=dark] .status-badge{background:#23324a;color:#b2c2d9}[data-theme=dark] .status-badge.OK{background:#193e36;color:#69dbb8}[data-theme=dark] .status-badge.Unknown,[data-theme=dark] .status-badge.Critical{background:#462730;color:#f49aa2}[data-theme=dark] .notice{background:#1d3c35;border-color:#30564b;color:#b8e6d6}[data-theme=dark] .errorlist{color:#ffa5ab}[data-theme=dark] .capacity progress,[data-theme=dark] .capacity progress::-webkit-progress-bar{background:#2b3a50}[data-theme=dark] .section-number{background:#1b4037;color:#77dcca}[data-theme=dark] .smtp-section .section-number{background:#243c5a;color:#a4c8f3}[data-theme=dark] .settings-divider:before,[data-theme=dark] .settings-divider:after{background:#35445b}[data-theme=dark] .chart-switch{background:#111c2d}[data-theme=dark] .chart-switch button[aria-pressed=true]{background:#263a4e;color:#78ddc9}
@media(max-width:760px){.topbar-tools{gap:8px}.topbar>span{font-size:10px}.topbar-divider{margin:0 5px}.theme-toggle{font-size:10px;padding:6px 8px}}
.setup-shell{max-width:1000px;margin:auto}.setup-card{padding:32px}.setup-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;padding:0;list-style:none;margin:30px 0}.setup-steps li{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:8px;padding:12px 0;border-bottom:2px solid var(--border)}.setup-steps li>span{display:grid;place-items:center;min-width:24px;height:24px;border-radius:50%;background:var(--border);font-weight:650}.setup-steps li.current,.setup-steps li.done{color:var(--accent);border-color:var(--accent)}.setup-steps li.current>span,.setup-steps li.done>span{background:var(--accent);color:var(--surface)}.mfa-setup{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;align-items:center;margin:24px 0}.setup-qr{display:block;background:white;border-radius:10px;padding:8px;max-width:100%;height:auto}.recovery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.setup-review{display:grid;grid-template-columns:180px minmax(0,1fr);gap:16px;padding:22px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.setup-review dt{color:var(--muted)}.setup-review dd{margin:0;overflow-wrap:anywhere}@media(max-width:760px){.setup-steps{grid-template-columns:1fr;gap:0;margin:20px 0}.setup-steps li{padding:8px 0}.setup-card{padding:20px}.mfa-setup{grid-template-columns:1fr}.setup-qr{margin:auto}.recovery-grid{grid-template-columns:1fr}.setup-review{grid-template-columns:1fr;gap:8px}.setup-review dd{margin-bottom:10px}}
.setup-layout.auth-layout main{max-width:1100px}
.deployment-form fieldset{border:0;padding:0;margin:24px 0}.deployment-form legend{font-weight:600;margin-bottom:6px}.deployment-form fieldset label{display:flex;align-items:center;gap:10px;font-size:13px}.deployment-form details{margin:22px 0}.deployment-form summary{cursor:pointer;color:var(--accent)}.deployment-form [hidden]{display:none}
.main-nav{min-height:0;overflow-y:auto}.sidebar>.brand,.sidebar-bottom{flex-shrink:0}.toolbar{display:flex;align-items:end;gap:16px;flex-wrap:wrap}.toolbar label{margin:0}.toolbar select{display:block;margin-top:6px}.template-list{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.template-list>div{border:1px solid var(--border);border-radius:8px;padding:18px}.host-selection{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;margin:18px 0}.host-selection label{padding:10px;border:1px solid var(--border);border-radius:6px;margin:0}.status-badge.Warning{background:#fff3d7;color:var(--warning)}[data-theme=dark] .status-badge.Warning{background:#463c25;color:#f2c36a}.pagination{display:flex;gap:20px;align-items:center;justify-content:center;padding:16px}.restore-preview{border-top:3px solid var(--warning)}@media(max-width:760px){.main-nav{overflow:visible}.toolbar{align-items:stretch}.toolbar label,.toolbar select{width:100%}}
@media(min-width:761px){.main-nav a{padding:9px 12px}.main-nav{gap:3px}.sidebar>.brand{margin-bottom:24px}.nav-heading{padding-top:12px}}
.filesystem-picker{margin:18px 0}.filesystem-label{display:block;color:var(--muted);font-size:11px;font-weight:600;margin-bottom:10px}.filesystem-tabs{display:flex;flex-wrap:wrap;gap:8px}.filesystem-tabs a{display:block;padding:10px 16px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);overflow-wrap:anywhere;max-width:100%;font-size:13px}.filesystem-tabs a.selected{background:var(--accent);border-color:var(--accent);color:var(--surface);font-weight:650}.filesystem-tabs a:hover{text-decoration:none;box-shadow:inset 0 0 0 1px var(--accent)}.filesystem-extra{margin-top:14px}.filesystem-extra summary{color:var(--muted)}.filesystem-extra .chart-filters{margin-top:12px}[data-theme=dark] .filesystem-tabs a.selected{color:#0b302b}@media(max-width:760px){.filesystem-tabs a{padding:10px 12px}}
.onboarding-panel{border-left:4px solid var(--accent,#25bfa8)}
[hidden]{display:none!important}
#reauth-dialog{width:min(520px,calc(100% - 32px));border:1px solid var(--border);border-radius:12px;padding:28px;background:var(--surface);color:var(--text)}
#reauth-dialog::backdrop{background:#07101dc4}.reauth-actions{display:flex;gap:12px;flex-wrap:wrap}
.reauth-actions .secondary{background:var(--bg);color:var(--text);border:1px solid var(--border)}
.host-status-table th{vertical-align:top}.table-sort{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;color:var(--muted)}.table-sort.selected{color:var(--accent)}.table-sort span{font-size:14px}.table-sort-group{display:flex;gap:10px;align-items:center}.table-search{display:flex;gap:6px;margin-top:14px;min-width:220px}.table-search input[type=search]{width:100%;min-width:0;margin:0;font-size:12px}.table-search button{margin:0;padding:8px 12px;font-size:20px}.host-status-table th select{display:block;margin-top:14px;max-width:100%;font-size:12px;letter-spacing:normal;text-transform:none}.host-status-table{width:100%}.host-status-table th:first-child{width:30%}
.status-badge.Setup{background:rgba(37,191,168,.12);color:var(--text)}
.capacity.Setup progress{accent-color:#8094ac}
.push-guide{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}
.push-guide li{margin-bottom:10px;line-height:1.6}
.push-device{display:flex;justify-content:space-between;gap:16px;align-items:center;border-top:1px solid var(--border);padding:20px 0}
@media(max-width:640px){.push-device{align-items:flex-start;flex-direction:column}}
