/* CSEN 3.5 — quiet, bright operational workspace. Base DOM contracts preserved. */
.mobile-view{display:none}
:root{color-scheme:light;--bg:#f3f6fb;--side:#fff;--card:#fff;--card2:#f8fafd;--line:#dce4ef;--text:#172b4d;--muted:#586b85;--cyan:#087f86;--blue:#2563eb;--amber:#935500;--red:#b4233b;--green:#16744b;--violet:#7352bb}
body{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}
a{text-underline-offset:3px}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #9abef9;outline-offset:3px}
.sidebar{position:sticky;top:0;align-self:flex-start;height:100vh;width:238px;padding:25px 16px;background:#fff;border-color:var(--line);overflow-y:auto}
.logo{color:#1c3961;letter-spacing:.12em}.logo span{color:#087f86}.side-caption{padding:6px 5px 18px;color:#697d98;font-size:10px}.nav-group{font-size:10px;letter-spacing:.1em;color:#71819a;padding:16px 13px 5px;font-weight:700}
.sidebar nav{gap:4px}.sidebar nav button{color:#526782;border-radius:9px;padding:11px 13px;transition:background .15s,color .15s}.sidebar nav button:hover{background:#f2f6fc;color:#214b82;border-color:transparent}.sidebar nav button.selected{background:#eaf2ff;color:#225bb5;border-color:#dce9ff;box-shadow:inset 3px 0 #3675db}.sidebar nav button span{margin-left:9px}.side-foot{margin-top:28px;line-height:1.6}.side-foot a{color:#526782}.dot{box-shadow:none}.side-version{grid-column:1/-1;margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:10px;color:#71819a}
.topbar{background:#ffffffd9;align-items:center;padding:24px 32px 20px;gap:15px;border-color:var(--line)}.topbar h1{font-size:25px;font-weight:750;letter-spacing:-.5px}.topbar p{font-size:12px}.breadcrumbs{color:#71819a;letter-spacing:.1em;font-size:10px}.top-actions{justify-content:flex-end;max-width:480px}.badge.secure{background:#eef8f2;color:#16744b;border-color:#d0e9da}.secondary{background:#fff;color:#344d6b;border-color:#d7e1ed;box-shadow:0 1px 2px #12284c04}.secondary:hover{background:#f7faff;border-color:#9ab5d7}.primary{background:#2563eb;color:#fff;box-shadow:0 4px 10px #2563eb18;font-weight:650}.primary:hover{background:#1d54c8}.sync-state{font-size:11px;color:#526782;display:block;width:100%;text-align:right}.sync-state[data-state=error]{color:var(--red)}.sync-state[data-state=paused]{color:var(--amber)}
main{padding:24px 32px 40px;max-width:1720px}.kicker{color:#507392;font-size:10px;letter-spacing:.12em}.tiny{font-size:11px;letter-spacing:0;font-weight:500;color:#61758e}.section-title{align-items:center;margin-bottom:19px}.section-title h2{font-size:23px}.section-title p{font-size:13px;line-height:1.8}.section-title>div:last-child{max-width:100%}.section-title select{min-width:130px}
.quick-paths{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0 0 20px;font-size:12px}.quick-paths>span{color:#697d98;margin-right:4px}.quick-paths a{color:#3a5577;text-decoration:none;border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 10px}.quick-paths a:hover{color:#245db7;background:#edf4ff;border-color:#c7dcfb}.quick-paths a span{margin-left:7px;color:#7592b4}
.sync-banner{margin:0 0 18px;border:1px solid #efd59c;border-radius:10px;background:#fff9ed;color:#775324;padding:12px 15px;display:flex;align-items:center;justify-content:space-between;gap:14px}.sync-banner p{margin:0;font-size:12px}.sync-banner button{flex-shrink:0}.panel,.kpi,.server-card{background:#fff;border-color:var(--line);box-shadow:0 2px 5px #213a5b03}.panel{padding:21px;border-radius:12px}.panel-head{align-items:center}.panel h3{font-size:15px;font-weight:700}.kpi{padding:16px 18px;border-radius:10px;min-height:100px}.kpi .value{font-size:27px;letter-spacing:-.5px;color:#1d3c64}.kpi .sub{color:#637790;line-height:1.7}.server-card .meta{color:#637790}.server-card h3{font-size:17px}.bar{background:#e9eff7;height:6px}.bar i{background:linear-gradient(90deg,#0e9698,#4d84df)}
.row{border-color:#e9eef5;padding:11px 0;font-size:12px}.row:last-child{border-bottom:0}.row strong{color:#254263;font-weight:550;line-height:1.8}.row>span{flex-shrink:0;max-width:40%}.row strong{max-width:74%}.segmented{background:#eef3f9;border:1px solid #dfe7f1;padding:3px;gap:2px;border-radius:9px}.segmented button{font-size:12px;padding:7px 10px}.segmented button.selected{background:#fff;color:#225bb5;box-shadow:0 1px 4px #1d3e6c15;border-radius:6px}
.table-wrap{border:1px solid #e6ecf4;border-radius:8px;scrollbar-width:thin;max-height:530px}table{font-variant-numeric:tabular-nums}th,td{border-color:#e8eef5;padding:11px 12px}th{background:#f6f8fc;color:#536b87;font-size:11px;z-index:1}td{color:#344f70;font-size:12px;line-height:1.7}tbody tr:hover{background:#f9fbfe}td.wrap{min-width:220px;max-width:620px;overflow-wrap:anywhere}.table-wrap:focus-visible{outline:2px solid var(--blue)}
.action{border-color:#e8eef5;padding:15px 0}.action b{font-size:13px;line-height:1.7}.action p{font-size:12px;color:#5c7089}.action small{color:#4e6e8b}.action-link{display:inline-flex;align-items:center;color:#245db7;font-size:11px;margin-top:7px;text-decoration:none;background:#f0f5fd;padding:3px 9px;border-radius:6px}.action-link:hover{background:#e2edff}.action.high b{color:#b02c43}.action.medium b{color:#98600f}.chip{background:#f7f9fc;border-color:#e0e7f0;color:#526b87}.status{background:#f8fafc}.status.online,.status.active,.status.fixed_version_present,.status.not_affected{background:#eef8f2;border-color:#cfe7d9;color:#16744b}.status.stale,.status.warning,.status.not_connected,.status.upstream_range_match,.status.vendor_open,.status.needs_review{background:#fff8eb;border-color:#ecd9ae;color:#935500}.status.failed,.status.error,.status.update_required{background:#fff0f2;border-color:#efccd4;color:#b4233b}
.log-box{background:#f7f9fc;border-color:#e0e7f0;color:#415a78;padding:15px;font-size:12px}.project-grid article,.strategy-grid div{background:#f8fafd;border-color:#e0e7f0}.strategy-grid b{color:#28496d}.strategy-grid p{font-size:12px;line-height:1.8}.software-host h4{margin-top:24px}.filter-bar{gap:9px}.filter-bar input{min-width:140px}input,select,textarea{background:#fff;border-color:#d7e1ed;color:#254263;font-size:12px;border-radius:7px;padding:9px 11px}input::placeholder,textarea::placeholder{color:#7a8ba0}input:focus,select:focus,textarea:focus{border-color:#7ca6e6;box-shadow:0 0 0 3px #edf4ff}label{color:#586f8b}.filter-bar button{padding:8px 12px}details>summary{color:#476582;font-size:12px;line-height:1.8}details[open]>summary{margin-bottom:9px}
.login-screen{background:radial-gradient(ellipse at 35% 20%,#dcecffaa,transparent 55%),#f3f6fb}.login-card{background:#fff;border-color:#dce5f0;box-shadow:0 20px 70px #234c7910;border-radius:16px}.login-card h1{color:#1b385e;font-size:29px}.login-card .kicker{margin-top:8px}.unified-login{display:inline-block;text-decoration:none}.login-card details{margin-top:24px;padding-top:14px;border-top:1px solid #e5edf6}
.heartbeat-head{margin-bottom:17px}.heartbeat-head h2{font-size:23px;color:#203e64;letter-spacing:-.4px}.heartbeat-head p{font-size:12px}.heartbeat-card{background:#fff;border:1px solid #dce5f0;border-radius:12px;box-shadow:0 3px 9px #29476c04;padding:18px 20px}.heartbeat-card header{border-bottom:0;padding-bottom:1px}.heartbeat-card h3{font-size:17px;color:#23436a}.heartbeat-card header small{color:#6c7f98}.heartbeat-state{background:#edf8f2;border-color:#cee7d9;color:#16744b}.heartbeat-state.warn{background:#fff8eb;border-color:#ecd9ae;color:#935500}.heartbeat-metric{border-color:#e8eef5;margin-top:12px;padding-top:11px}.heartbeat-metric-title{color:#3d5676}.heartbeat-metric-title span{color:#647b96}.heartbeat-values{margin-top:4px;gap:8px}.heartbeat-values strong{color:#087f86;font-size:20px;font-weight:700}.heartbeat-values small{font-size:11px;color:#617792;line-height:1.8}.heartbeat-chart{margin-top:2px}.heartbeat-chart text{fill:#58708e}.heartbeat-chart .capacity-label{fill:#486483}.heartbeat-chart .axis{stroke:#d9e3ef}.heartbeat-chart .capacity{stroke:#91a6bf}.heartbeat-chart .sample{stroke:#fff}.heartbeat-note{color:#637791;font-size:11px;line-height:1.8}.heartbeat-foot{color:#637791;font-size:11px}.heartbeat-details{border-top:1px solid #e7edf5;margin-top:13px;padding-top:5px}.heartbeat-details summary{padding:5px 0}.heartbeat-error{color:#a45f12}.heartbeat-scope-hint{color:#426991;font-size:11px;display:block;margin-top:7px}
.section-jumps{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 15px}.section-jumps a{font-size:11px;color:#526b87;text-decoration:none;padding:5px 9px;border:1px solid var(--line);border-radius:6px;background:white}
@media(min-width:1400px){.heartbeat-card{padding:20px 23px}.heartbeat-grid{gap:20px}}
@media(max-width:1150px){.sidebar{width:210px}.topbar,main{padding-left:24px;padding-right:24px}.topbar{align-items:start}.top-actions{max-width:280px}}
@media(max-width:760px){.sidebar{position:relative;height:auto;width:100%;overflow:visible;padding:14px 16px 10px}.sidebar nav{margin-top:12px;gap:5px;padding-bottom:4px;scrollbar-width:thin}.nav-group{display:none}.sidebar nav button{padding:8px 10px;font-size:12px}.topbar{padding:17px 16px;gap:13px}.topbar h1{font-size:22px}.top-actions{max-width:none;justify-content:flex-start;gap:7px}.top-actions .badge{font-size:10px;padding:5px 8px}.top-actions button{font-size:11px;padding:7px 9px}.sync-state{width:auto;text-align:left;flex-basis:100%}main{padding:19px 16px 30px}.quick-paths{gap:6px;margin-bottom:17px}.quick-paths>span{display:none}.quick-paths a{font-size:11px;padding:5px 8px}.heartbeat-card{padding:16px}.heartbeat-head h2{font-size:21px}.heartbeat-values strong{font-size:19px}.panel{padding:16px}.panel-head{flex-wrap:wrap}.row{font-size:12px;gap:12px}.row strong{max-width:68%}.sync-banner{align-items:start}.section-title{align-items:start}.section-title h2{font-size:21px}.segmented{max-width:100%}.kpi .value{font-size:23px}.kpi{padding:14px;min-height:105px}.tiny{font-size:11px}.heartbeat-details{margin-top:10px}.section-title select{max-width:100%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(max-width:760px){.sidebar nav{display:none}.mobile-view{display:flex;align-items:center;gap:14px;margin-top:13px;font-size:11px}.mobile-view select{flex:1;min-width:0;padding:8px 10px}}
