:root{--ink:#102033;--muted:#5c6b7c;--line:#dbe4ea;--panel:#ffffff;--soft:#f5f8fa;--navy:#0d2840;--teal:#0d9488;--amber:#b7791f;--red:#b42318;--green:#067647}*{box-sizing:border-box}body{margin:0;background:var(--soft);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--navy);color:white;padding:20px 14px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:8px 10px 18px;font-weight:800;font-size:20px}.brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;background:var(--teal);color:white}.nav{display:grid;grid-gap:4px;gap:4px}.nav a{display:flex;align-items:center;gap:10px;border-radius:8px;color:#d5e4ed;padding:10px 12px;font-size:14px}.nav a.active,.nav a:hover{background:rgba(255,255,255,.11);color:#fff}.main{min-width:0}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:5;background:rgba(245,248,250,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:14px 24px}.topbar h1{margin:0;font-size:22px;line-height:1.2}.filters,.row-actions,.topbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.content{padding:24px;display:grid;grid-gap:18px;gap:18px}.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px}.panel{padding:18px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-title h2{margin:0;font-size:16px}.grid{display:grid;grid-gap:12px;gap:12px}.metrics{grid-template-columns:repeat(5,minmax(150px,1fr))}.metric{padding:16px}.metric span{color:var(--muted);font-size:12px}.metric strong{display:block;margin-top:6px;font-size:24px}.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px}table{width:100%;border-collapse:collapse;min-width:860px;background:white}td,th{text-align:left;border-bottom:1px solid var(--line);padding:11px 12px;font-size:13px;vertical-align:top}th{background:#eef4f6;color:#314456;font-size:12px;font-weight:700}tr:last-child td{border-bottom:0}.badge{display:inline-flex;align-items:center;border-radius:999px;border:1px solid var(--line);padding:3px 8px;font-size:12px;font-weight:700;color:#314456;white-space:nowrap}.badge.good{background:#ecfdf3;border-color:#abefc6;color:var(--green)}.badge.warn{background:#fffaeb;border-color:#fedf89;color:var(--amber)}.badge.bad{background:#fef3f2;border-color:#fecdca;color:var(--red)}.button,button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);padding:8px 12px;cursor:pointer;font-weight:700}.button.primary,button.primary{background:var(--teal);border-color:var(--teal);color:white}.button.danger,button.danger{color:var(--red)}.icon-button{width:36px;padding:0}.field{display:grid;grid-gap:5px;gap:5px}.field label{color:var(--muted);font-size:12px;font-weight:700}input,select,textarea{width:100%;min-height:36px;border:1px solid var(--line);border-radius:8px;background:white;padding:8px 10px;color:var(--ink)}input[type=checkbox]{width:auto;min-height:auto}textarea{min-height:84px;resize:vertical}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.form-grid .wide{grid-column:span 2}.form-grid .full{grid-column:1/-1}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(120deg,rgba(13,148,136,.08),transparent 45%),var(--soft)}.login-panel{width:min(420px,100%);padding:28px}.login-panel h1{margin:0 0 8px}.muted{color:var(--muted)}.json-box,.small{font-size:12px}.json-box{white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto;background:#0b1724;color:#d7e9f2;border-radius:8px;padding:12px}@media (max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.nav{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid,.metrics,.two-col{grid-template-columns:1fr}.form-grid .full,.form-grid .wide{grid-column:auto}}