:root{--blue:#0b5ed7;--bg:#f4f7fb;--text:#17202a;--good:#198754;--warning:#f0ad00;--critical:#dc3545;--gray:#6c757d}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Segoe UI,Arial,sans-serif}nav{background:#0b2f5b;color:#fff;padding:14px 24px;display:flex;gap:24px;align-items:center}nav strong{font-size:20px}nav a{color:#fff;text-decoration:none}main{max-width:1280px;margin:24px auto;padding:0 18px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.card,.panel{background:#fff;border:1px solid #dfe7f1;border-radius:14px;padding:18px;box-shadow:0 5px 18px #17365d12}.card b{font-size:30px;display:block}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}input,select,button{padding:10px 12px;border:1px solid #cbd5e1;border-radius:8px;font:inherit}button,.btn{background:var(--blue);color:#fff;border:none;text-decoration:none;display:inline-block;padding:10px 14px;border-radius:8px;cursor:pointer}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:11px;border-bottom:1px solid #e6edf5;text-align:left}th{background:#eef4fb}.status{display:inline-block;border-radius:20px;padding:5px 10px;color:#fff;font-weight:600}
.status.good{background:var(--good)}
.status.warning{background:var(--warning);color:#222}
.status.critical{background:var(--critical)}.muted{color:#667085}.danger-text{color:var(--critical)}.warning-text{color:#9a6800}.good-text{color:var(--good)}.tree{padding-left:20px}.metric{font-size:13px;color:#667085}.metric strong{font-size:18px;color:#17202a;display:block}.scroll{overflow-x:auto}h1,h2,h3{margin-top:0}.spaced{margin-top:18px}.notice{padding:12px;border-radius:8px;background:#fff3cd;border:1px solid #ffe69c}
.scoreline{display:flex;align-items:center;gap:10px}.scorebar{height:10px;background:#dfe7f1;border-radius:20px;overflow:hidden;max-width:520px;margin-top:10px}.scorebar span{display:block;height:100%;background:#198754}.assessment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.assessment{border:1px solid #dfe7f1;border-left:5px solid #94a3b8;border-radius:10px;padding:14px;display:flex;justify-content:space-between;gap:16px;background:#fff;color:var(--text)}
.assessment span,.assessment small{display:block;margin-top:5px;color:#667085}
.assessment.good,.assessment.excellent{border-left-color:var(--good);background:#fff;color:var(--text)}
.assessment.warning{border-left-color:var(--warning);background:#fffaf0;color:var(--text)}
.assessment.critical{border-left-color:var(--critical);background:#fff6f6;color:var(--text)}
.assessment.unknown{border-left-color:#94a3b8;background:#f8fafc;color:var(--text)}
.assessment b,.assessment strong{color:var(--text)}
.info{padding:12px;border-radius:8px;background:#eef6ff;border:1px solid #bdd8ff}.mini-score{font-size:12px;margin-top:5px;color:#667085}
.btn-danger{background:#b42318;color:#fff;border:none;text-decoration:none;display:inline-block;padding:10px 14px;border-radius:8px;cursor:pointer}.btn-small{padding:7px 10px;font-size:12px;white-space:nowrap}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.section-title h2{margin-bottom:0}.battery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:16px}.battery-grid .metric{padding:12px;border:1px solid #e1e8f0;border-radius:10px;background:#f8fafc}.battery-grid .metric span{display:block;color:#667085;font-size:12px}.battery-grid .metric strong{display:block;margin-top:4px;font-size:16px}.battery-pill{display:inline-block;border-radius:20px;padding:6px 11px;color:#fff;font-weight:700}
.battery-pill.good{background:var(--good)}
.battery-pill.warning{background:var(--warning);color:#222}
.battery-pill.critical{background:var(--critical)}.battery-inline{white-space:nowrap}

.btn-secondary{background:#64748b}.bulk-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.bulk-actions label{display:flex;align-items:center;gap:7px}.bulk-actions input[type=checkbox],table input[type=checkbox]{width:18px;height:18px}.pending-count{background:#fff3cd;border:1px solid #ffe69c;padding:7px 11px;border-radius:20px;font-weight:700}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.form-grid label{display:grid;gap:6px;font-weight:600}.form-grid .wide{grid-column:1/-1}textarea{padding:10px 12px;border:1px solid #cbd5e1;border-radius:8px;font:inherit;resize:vertical}
.installer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.command-box{background:#0f172a;color:#e2e8f0;border-radius:8px;padding:14px;white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.45 Consolas,monospace}
.assessment-card{width:100%;text-align:left;cursor:pointer}.assessment-card:hover{box-shadow:0 8px 22px #17365d18;transform:translateY(-1px)}.snapshot-strip{display:flex;gap:10px;overflow-x:auto;padding:8px 0 4px}.snapshot-day{min-width:112px;border:1px solid #d6e2ef;border-radius:8px;padding:10px;text-decoration:none;color:var(--text);background:#fff}.snapshot-day strong,.snapshot-day span{display:block}.snapshot-day span{font-size:12px;color:#667085;margin-top:3px}.snapshot-day.active{border-color:var(--blue);box-shadow:0 0 0 2px #0b5ed720}.changes-box{margin-top:14px}.change-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.change-item{border:1px solid #dfe7f1;border-radius:8px;padding:12px;background:#f8fafc}.change-item b,.change-item span,.change-item strong{display:block}.change-item span{color:#475467;margin-top:6px}.change-item strong{color:var(--good);margin-top:4px}.modal-backdrop{position:fixed;inset:0;background:#0f172a99;display:grid;place-items:center;padding:18px;z-index:20}.modal-backdrop[hidden]{display:none}.component-modal{width:min(780px,100%);max-height:86vh;overflow:auto;background:#fff;border-radius:8px;border:1px solid #dfe7f1;padding:20px;box-shadow:0 24px 70px #0005}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-top:14px}.detail-grid .metric{padding:12px;border:1px solid #e1e8f0;border-radius:8px;background:#f8fafc}.detail-grid .metric span{display:block;color:#667085;font-size:12px}.detail-grid .metric strong{display:block;margin-top:4px;font-size:15px;overflow-wrap:anywhere}
.snapshot-picker{display:flex;align-items:center;gap:10px;margin-top:14px;max-width:420px}.snapshot-picker label{font-weight:700}.snapshot-picker select{width:100%;background:#fff}
.snapshot-admin summary{cursor:pointer;font-weight:700}.snapshot-admin .scroll{margin-top:14px}
.nav-logout{margin-left:auto}.nav-logout button{background:#173f70;padding:7px 10px}.nav-user{font-size:12px;color:#dbeafe}.login-shell{min-height:70vh;display:grid;place-items:center}.login-card{width:min(420px,100%);display:grid;gap:14px}.login-card label,.form-grid label{display:grid;gap:6px}.danger-notice{background:#fdecec;border-color:#f5b5b5;color:#9f1f1f}.inline-form{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap;margin:2px}.actions-cell{min-width:280px}.checkline{display:inline-flex;align-items:center;gap:6px}.checkline input{width:18px;height:18px}
.user-list{display:grid;gap:12px}.user-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid #dfe7f1;border-radius:8px;padding:12px;background:#f8fafc}.user-main-form{display:grid;grid-template-columns:minmax(130px,1fr) minmax(180px,1.3fr) minmax(130px,.8fr) auto auto;gap:10px;align-items:end;flex:1}.user-main-form label{display:grid;gap:5px}
.user-create-form{display:grid;gap:16px}.user-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.user-fields label{display:grid;gap:6px;font-weight:600}.role-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.role-option{position:relative;display:flex;align-items:center;gap:10px;border:1px solid #d8e3ef;border-radius:8px;padding:10px;background:#fff;cursor:pointer;min-height:74px}.role-option input{position:absolute;opacity:0;pointer-events:none}.role-option:has(input:checked){border-color:var(--blue);box-shadow:0 0 0 2px #0b5ed720;background:#f8fbff}.role-icon{width:44px;height:44px;display:grid;place-items:center;color:#17202a;flex:0 0 44px}.role-icon svg{width:38px;height:38px}.role-option.admin .role-icon,.user-avatar.admin{color:#0b5ed7}.role-option.operator .role-icon,.user-avatar.operator{color:#198754}.role-option.viewer .role-icon,.user-avatar.viewer{color:#64748b}.role-text{display:grid;gap:2px;min-width:0}.role-text strong{font-size:14px}.role-text small{font-size:12px;color:#667085;overflow-wrap:anywhere}.user-list{display:grid;gap:14px}.user-row{display:grid;grid-template-columns:64px minmax(120px,180px) minmax(420px,1fr) auto auto;align-items:center;gap:14px;border:1px solid #dfe7f1;border-radius:8px;padding:14px;background:#f8fafc}.user-avatar{width:58px;height:58px;border-radius:8px;background:#fff;border:1px solid #d8e3ef;display:grid;place-items:center}.user-avatar svg{width:44px;height:44px}.user-identity{display:grid;gap:3px}.user-identity strong{font-size:17px;overflow-wrap:anywhere}.user-identity small{font-size:12px;color:#667085}.user-edit-form{display:grid;grid-template-columns:minmax(170px,240px) minmax(360px,1fr) auto;gap:12px;align-items:end}.password-form{display:flex;gap:8px;align-items:center}.password-form input{width:170px}.user-edit-form .role-picker{grid-template-columns:repeat(3,minmax(116px,1fr))}.user-edit-form .role-option{min-height:62px;padding:8px}.user-edit-form .role-icon{width:34px;height:34px;flex-basis:34px}.user-edit-form .role-icon svg{width:30px;height:30px}.user-edit-form .role-text small{display:none}@media(max-width:980px){.user-row,.user-edit-form{grid-template-columns:1fr}.user-avatar{width:52px;height:52px}.user-edit-form .role-picker{grid-template-columns:1fr}.password-form{flex-wrap:wrap}.password-form input{width:100%}}
