:root{color-scheme:light;--ink:#122a40;--muted:#63778a;--line:#dce5ed;--paper:#f3f6fa;--nav:#10283d;--accent:#086963;--white:#fff;font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);line-height:1.6}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #58b7ff;outline-offset:3px}[hidden]{display:none!important}.shell{min-height:100vh;display:grid;grid-template-columns:226px minmax(0,1fr)}aside{background:var(--nav);color:#dce7ef;padding:32px 22px;display:flex;flex-direction:column}.brand{text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;font-weight:750;font-size:1.12rem;letter-spacing:.03em}.brand-icon{display:grid;place-items:center;flex:none;width:44px;height:44px;border:1px solid #7093a7;border-radius:12px;background:#173950;color:#d8ebe9;font-size:1.25rem}.brand small{display:block;font-size:.78rem;font-weight:400;color:#9db2c4;letter-spacing:0;margin-top:2px}nav{margin-top:54px;display:grid;gap:9px}.nav{border:0;text-align:left;padding:13px 15px;border-radius:7px;color:#adbfce;background:transparent;display:flex;justify-content:space-between;align-items:center}.nav span{font-size:.75rem;opacity:.65}.nav.active{background:#29485d;color:white}.nav:hover{background:#213d52;color:white}.aside-note{margin-top:auto;padding:40px 15px 4px;color:#9fb5c6;font-size:.875rem;line-height:1.8}main{width:100%;max-width:1560px;padding:36px 42px 22px;margin:auto}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;gap:16px}.eyebrow{margin:0 0 4px;font-size:.75rem;letter-spacing:.18em;font-weight:650;color:var(--muted)}h1{margin:0;font-size:1.85rem;line-height:1.35;font-weight:750}h2{font-size:1.06rem;line-height:1.5;margin:0 0 10px}p{margin:8px 0}.header-actions{display:flex;gap:12px;align-items:center}.badge{display:inline-block;background:#fff0d6;color:#805008;padding:5px 12px;border-radius:5px;font-size:.875rem;font-weight:650}.badge.production{background:#d8efea;color:#105b4d}.badge.neutral{color:#576b7c;background:#edf2f6}.quiet,.primary{border-radius:6px;border:1px solid var(--line);padding:9px 15px;line-height:1.4;background:white;color:var(--ink);white-space:nowrap}.quiet:hover{border-color:#9eb3c3}.primary{background:var(--accent);border-color:var(--accent);color:white;font-weight:650}.primary:hover{background:#095a56}.card{border:1px solid var(--line);background:white;border-radius:9px;padding:22px 24px;box-shadow:0 1px 0 #e7edf4;margin-bottom:20px}.login{max-width:650px;margin:70px auto 120px;padding:36px}.login-mark{font-size:1.4rem;color:var(--accent);border:1px solid #c9dcd9;display:grid;place-items:center;width:42px;height:42px;border-radius:9px;margin-bottom:22px}.login h2{font-size:1.45rem}.login>p{color:var(--muted)}form{margin-top:25px}label{display:block;font-size:.875rem;color:var(--muted)}input,select{border:1px solid #cbd8e2;border-radius:6px;background:white;color:var(--ink);padding:10px 12px;min-width:0}input{width:100%}.login-row{display:flex;gap:10px;margin-top:8px}.status{font-size:.875rem;min-height:1.5em}.status.error{color:#a8362c}.filters{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:16px}.filters label{min-width:135px}.filters select{display:block;width:100%;margin-top:4px;padding:8px 10px;font-size:.875rem}.filters .quiet{font-size:.875rem}.muted{color:var(--muted);font-size:.875rem}#updated{margin-left:auto;font-size:.8rem;align-self:center}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.metric{padding:20px 22px;border:1px solid var(--line);border-radius:9px;background:white;min-width:0}.metric-label{font-size:.875rem;color:var(--muted)}.metric-value{font-size:2.1rem;font-weight:720;letter-spacing:-.03em;margin:7px 0 1px;font-variant-numeric:tabular-nums}.metric-detail{font-size:.78rem;color:var(--muted)}.section-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px;flex-wrap:wrap}.section-title h2{margin:0}.daily{display:grid;gap:13px}.day{display:grid;grid-template-columns:92px minmax(60px,1fr) 120px;align-items:center;gap:16px;font-size:.875rem}.day-label{font-variant-numeric:tabular-nums;color:var(--muted)}.day progress{width:100%;height:14px;border:0;background:#eaf0f5;border-radius:3px;overflow:hidden;accent-color:#237f87}.day progress::-webkit-progress-bar{background:#eaf0f5}.day progress::-webkit-progress-value{background:#237f87}.day-value{text-align:right;font-variant-numeric:tabular-nums}.notes p{font-size:.875rem;color:var(--muted)}.empty{text-align:center;padding:42px 28px}.empty>span{font-size:2.2rem;color:#8aadb9}.empty h2{font-size:1.25rem;margin:10px 0}.empty p{max-width:520px;margin:8px auto;color:var(--muted)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap;font-size:.875rem}th{background:#f4f7fa;font-weight:600;color:#5c7182}th,td{padding:14px 12px;border-bottom:1px solid #e7edf3}th:first-child,td:first-child{padding-left:0}th:last-child,td:last-child{padding-right:0}tbody tr:last-child td{border:0}tbody tr:hover{background:#f8fafc}.cell-title{display:block;font-weight:650}.cell-detail{display:block;color:var(--muted);font-size:.78rem}.empty-cell{text-align:center;color:var(--muted);padding:36px!important;white-space:normal}footer{margin-top:34px;font-size:.78rem;color:#7c8d9c}button:disabled{opacity:.55;cursor:wait}@media(max-width:1100px){main{padding:30px 25px}.shell{grid-template-columns:190px minmax(0,1fr)}aside{padding:28px 16px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:740px){.shell{display:block}aside{padding:18px 20px}.brand{font-size:1rem}.brand small{display:none}.brand-icon{width:34px;height:34px;font-size:1rem}nav{display:flex;margin-top:18px;gap:4px}.nav{flex:1;padding:10px 12px;justify-content:center;font-size:.875rem}.nav span,.aside-note{display:none}main{padding:24px 18px}header{margin-bottom:22px}h1{font-size:1.5rem}.eyebrow{font-size:.67rem}.header-actions{gap:8px}.quiet,.primary{padding:9px 11px;font-size:.875rem}.card{padding:20px 17px}.login{margin:24px auto 70px}.login-row{flex-direction:column}.filters{gap:10px}.filters label{flex:1;min-width:calc(50% - 10px)}#updated{margin-left:0}.metrics{gap:10px}.metric{padding:15px}.metric-value{font-size:1.8rem}.day{grid-template-columns:79px minmax(40px,1fr) 85px;gap:9px;font-size:.78rem}.badge{font-size:.8rem;padding:4px 8px}.section-title{align-items:flex-start}footer{font-size:.75rem}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s,border-color .15s}}


#storage.storage-warning{color:#8a5a00;font-weight:650}#storage.storage-full{color:#a8362c;font-weight:700}
.operation-normal{color:#105b4d}.operation-warning,.operation-unknown{color:#805008}.operation-critical{color:#a8362c;font-weight:700}.badge.operation-normal{background:#d8efea}.badge.operation-critical{background:#fce5e1}
.minute-chart{display:grid;gap:18px;margin:28px 0}.minute-point{display:grid;grid-template-columns:78px minmax(80px,1fr) 66px 90px;gap:16px;align-items:center}.minute-point progress{width:100%;height:13px;border:0;border-radius:8px;overflow:hidden;accent-color:var(--accent);background:#e4edee}.minute-point progress::-webkit-progress-bar{background:#e4edee}.minute-point progress::-webkit-progress-value{background:var(--accent);border-radius:8px}.minute-point strong{text-align:right;font-size:.95rem}.minute-point>.muted{text-align:right;font-size:.8rem}.minute-label{font-size:.9rem}.minute-details{border-top:1px solid var(--line);padding-top:16px}.minute-details summary{cursor:pointer;font-weight:650;color:var(--accent)}.minute-details .table-wrap{max-height:440px;overflow:auto;margin-top:16px}.minute-details th{position:sticky;top:0;background:#f3f6fa}
@media(max-width:600px){.minute-point{grid-template-columns:64px minmax(65px,1fr) 54px;gap:10px}.minute-point>.muted{grid-column:2/4;text-align:left;margin-top:-12px}.minute-chart{gap:22px}}
