:root{--bg:#f4f6fb;--surface:#fff;--text:#0f172a;--muted:#475569;--border:#dbe3ef;--danger:#b42318;--warn:#b54708;--ok:#027a48;--radius:12px}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#f7f8fc,#eef2f8);color:var(--text);font-family:Source Sans\ 3,Noto Sans SC,sans-serif}a{color:inherit;text-decoration:none}.app-shell{max-width:1200px;margin:0 auto;padding:20px}.top-nav{display:flex;gap:10px;margin-bottom:20px}.nav-link{background:var(--surface);border:1px solid var(--border);padding:10px 14px;border-radius:999px;font-weight:600;color:var(--muted)}.nav-logout-btn{margin-left:auto;border-radius:999px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.grid{display:grid;grid-gap:16px;gap:16px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.table{width:100%;border-collapse:collapse}.table td,.table th{text-align:left;padding:10px;border-bottom:1px solid var(--border);font-size:14px}.badge{display:inline-block;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.badge-normal{color:var(--ok);background:#ecfdf3}.badge-highrisk,.badge-warning{color:var(--warn);background:#fff7ed}.badge-overage,.badge-reset,.badge-resetpending{color:var(--danger);background:#fef3f2}.page-title{margin:0 0 12px;font-size:26px}.page-subtitle{margin:0 0 20px;color:var(--muted)}.empty{padding:20px;text-align:center;color:var(--muted)}button{border:1px solid var(--border);border-radius:10px;background:#fff;padding:8px 12px;font-weight:600;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.7}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:8px;padding:8px;margin-top:4px}input[type=checkbox]{width:auto;margin-left:8px}@media (max-width:960px){.grid-2,.grid-4{grid-template-columns:1fr}.top-nav{flex-wrap:wrap}}.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;margin-bottom:16px}.toolbar label{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);font-weight:600}.toolbar select{width:auto;margin:0}.toolbar .spacer{flex:1 1}.toolbar button.refresh-btn{background:var(--text);color:#fff;border-color:var(--text)}.hero{border-radius:var(--radius);padding:24px;margin-bottom:16px;color:#fff;display:flex;flex-direction:column;gap:6px}.hero.ok{background:linear-gradient(135deg,#027a48,#06d6a0)}.hero.warn{background:linear-gradient(135deg,#b54708,#f59e0b)}.hero.danger{background:linear-gradient(135deg,#b42318,#ef4444)}.hero h2{margin:0;font-size:28px}.hero p{margin:0;font-size:14px;opacity:.92}.grid-3{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:760px){.grid-3{grid-template-columns:1fr}}.metric-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.metric-card .label{font-size:12px;color:var(--muted);font-weight:600}.metric-card .value{font-size:26px;font-weight:700;margin:4px 0 2px}.metric-card .sub{font-size:12px;color:var(--muted)}.partition-row{display:grid;grid-template-columns:60px 1fr 200px 100px 30px;grid-gap:12px;gap:12px;align-items:center;padding:12px 16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);margin-bottom:8px;cursor:pointer;transition:transform .1s}.partition-row:hover{transform:translateX(2px);border-color:#94a3b8}.partition-row .status-dot{width:12px;height:12px;border-radius:50%;margin:0 auto}.dot-ok{background:#027a48}.dot-watch{background:#ca8a04}.dot-tight{background:#ea580c}.dot-over{background:#b42318}.partition-row .partition-name{font-weight:700;font-size:15px}.partition-row .partition-sub{font-size:12px;color:var(--muted);margin-top:3px}.bar-track{height:6px;background:#e2e8f0;border-radius:999px;overflow:hidden}.bar-fill{height:100%;border-radius:999px;background:#027a48}.bar-fill.warn{background:#ca8a04}.bar-fill.tight{background:#ea580c}.bar-fill.over{background:#b42318}.partition-row .pct{font-weight:700;font-size:16px;text-align:right}.account-chip{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;margin-right:6px}.account-chip.acct-0{background:#dbeafe;color:#1e40af}.account-chip.acct-1{background:#ede9fe;color:#6d28d9}.account-chip.acct-2{background:#d1fae5;color:#065f46}.account-chip.acct-3{background:#fee2e2;color:#991b1b}.suggestion{background:#fff8e1;border:1px solid #fbbf24;border-radius:var(--radius);padding:12px 16px;margin-bottom:16px;font-size:14px}.suggestion strong{color:#854d0e}.tiny-chart{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:16px}.tiny-chart h4{margin:0 0 8px;font-size:14px;color:var(--muted)}.section-title{margin:24px 0 12px;font-size:16px;color:var(--muted);font-weight:700}.region-back-link{display:inline-block;margin-bottom:12px;font-size:13px;color:var(--muted)}.region-back-link:hover{color:var(--text)}.instance-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.instance-row{display:grid;grid-template-columns:1fr 90px 90px 110px 90px;grid-gap:12px;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border);align-items:center;font-size:14px}.instance-row:last-child{border-bottom:none}.instance-row .name{font-weight:600}.instance-row .name small{color:var(--muted);display:block;font-size:11px;margin-top:2px}.instance-row .num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.instance-row .delete-btn{border:1px solid #fecaca;color:#b42318;background:#fff;font-size:12px;padding:4px 10px}.instance-row .delete-btn:hover{background:#fef2f2}.modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.6);display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:#fff;border-radius:var(--radius);padding:20px;max-width:440px;width:90%}.modal h3{margin:0 0 8px}.modal .modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.modal-actions .btn-danger{background:#b42318;color:#fff;border-color:#b42318}.idle-section{margin-top:8px;padding:10px 14px;font-size:13px;color:var(--muted);cursor:pointer}.settings-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border)}.settings-tabs button{background:transparent;border:none;border-bottom:2px solid transparent;border-radius:0;padding:10px 16px;font-weight:600;color:var(--muted)}.settings-tabs button.active{color:var(--text);border-bottom-color:var(--text)}.entity-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:8px;display:flex;align-items:center;gap:12px}.entity-card .entity-main{flex:1 1}.entity-card .entity-title{font-weight:700;font-size:15px;display:flex;align-items:center;gap:8px}.entity-card .entity-sub{font-size:12px;color:var(--muted);margin-top:4px}.entity-card .entity-actions{display:flex;gap:6px}.entity-card .entity-actions button{font-size:12px;padding:4px 10px}.entity-card .badge{font-size:10px;padding:2px 8px}.add-form{background:var(--surface);border:1px dashed #cbd5e1;border-radius:var(--radius);padding:16px;margin-top:16px}.add-form .grid-2,.add-form .grid-3{margin-bottom:12px}.add-form h4{margin:0 0 12px;font-size:14px;color:var(--muted)}.add-form .form-actions{display:flex;gap:8px;margin-top:8px}.add-form .submit-btn{background:var(--text);color:#fff;border-color:var(--text)}.field-hint{display:block;font-size:11px;color:#94a3b8;margin-top:2px;font-weight:400}.login-page{min-height:80vh;display:grid;place-items:center}.login-card{width:min(420px,92vw)}.auth-error{color:var(--danger);margin-top:8px;font-size:14px}