:root{--ink:#263746;--muted:#6c7781;--line:#dfe4e8;--bg:#f4f6f8;--card:#fff;--brand:#253746;--ok:#1d7a46;--warn:#9a6510;--bad:#a83232;--soft:#eef2f5}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:#202b33;font-size:14px}a{color:#244d67;text-decoration:none}.top{height:58px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 22px;position:sticky;top:0;z-index:20}.brand{font-weight:800;font-size:18px;color:var(--ink);margin-right:28px}.top .search{flex:1;max-width:560px}.top input[type=search]{width:100%;padding:9px 12px;border:1px solid #ccd4da;border-radius:7px}.userbox{margin-left:auto;display:flex;gap:10px;align-items:center}.shell{display:grid;grid-template-columns:225px 1fr;min-height:calc(100vh - 58px)}.side{background:#fff;border-right:1px solid var(--line);padding:16px 12px}.side h5{margin:14px 9px 6px;color:#8a949c;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.side a{display:block;padding:9px 10px;border-radius:7px;color:#36434d}.side a:hover,.side a.on{background:#edf2f5;color:#172833}.main{padding:24px;min-width:0}.bar{display:flex;align-items:center;gap:10px;margin-bottom:18px}.bar h1{font-size:23px;margin:0;flex:1}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 13px;border-radius:7px;border:1px solid #bcc7cf;background:#fff;color:#273845;font-weight:650;cursor:pointer}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.danger{color:var(--bad);border-color:#d7a6a6}.btn.small{padding:6px 9px;font-size:12px}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px;box-shadow:0 1px 2px #00000008}.kpi{grid-column:span 3}.kpi .n{font-size:28px;font-weight:800}.kpi .l{color:var(--muted);margin-top:3px}.span8{grid-column:span 8}.span4{grid-column:span 4}.span6{grid-column:span 6}.span12{grid-column:span 12}table{width:100%;border-collapse:collapse;background:#fff}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;color:#68747d;background:#f8fafb}tr:hover td{background:#fbfcfd}.badge{display:inline-block;padding:4px 7px;border-radius:999px;background:#edf1f4;font-size:11px;font-weight:700}.badge.ok{background:#e3f4e9;color:#17623a}.badge.bad{background:#fae8e8;color:#8d2d2d}.badge.warn{background:#fff4dc;color:#84590a}.formgrid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}.field{grid-column:span 6}.field.s4{grid-column:span 4}.field.s3{grid-column:span 3}.field.s8{grid-column:span 8}.field.s12{grid-column:span 12}.field label{display:block;font-weight:700;font-size:12px;margin-bottom:5px}.field input,.field select,.field textarea{width:100%;padding:9px 10px;border:1px solid #cbd3d9;border-radius:6px;background:#fff}.field textarea{min-height:75px;resize:vertical}.section{margin:18px 0 8px;font-weight:800;color:#2c3c48;border-bottom:1px solid var(--line);padding-bottom:7px}.flash{padding:11px 13px;border-radius:7px;margin-bottom:14px}.flash.success{background:#e3f4e9;color:#17623a}.flash.error{background:#fae8e8;color:#8d2d2d}.muted{color:var(--muted)}.actions{display:flex;gap:8px;flex-wrap:wrap}.timeline{border-left:2px solid #d7dee3;margin-left:8px;padding-left:15px}.timeline div{margin:0 0 16px}.qrbox{display:flex;gap:18px;align-items:center}.code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;word-break:break-all;background:#f4f6f8;padding:8px;border-radius:6px}.checkgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.checkgrid label{font-weight:500}.loginwrap{max-width:420px;margin:8vh auto}.loginwrap .card{padding:28px}.loginwrap h1{margin-top:0}.tenant-switch select{padding:7px;border:1px solid #ccd4da;border-radius:6px}@media(max-width:900px){.shell{grid-template-columns:1fr}.side{display:none}.main{padding:14px}.kpi,.span8,.span4,.span6{grid-column:span 12}.field,.field.s4,.field.s3,.field.s8{grid-column:span 12}.top{padding:0 12px}.top .search{display:none}.checkgrid{grid-template-columns:1fr}}
