:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#172033;background:#f5f7fb;--card:#fff;--muted:#6b7280;--line:#e5e7eb;--accent:#111827;--soft:#f3f4f6;--good:#15803d;--bad:#b91c1c}
*{box-sizing:border-box}body{margin:0;background:#f5f7fb;color:#172033}button,input,select,textarea{font:inherit}.boot{padding:48px;text-align:center;color:var(--muted)}
.auth{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(420px,100%);background:var(--card);border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:0 18px 60px rgba(15,23,42,.08)}.brand{font-size:22px;font-weight:800;margin-bottom:8px}.sub{color:var(--muted);font-size:14px;margin-bottom:24px}
.tabs{display:flex;gap:8px;margin-bottom:18px}.tab,.btn{border:0;border-radius:10px;padding:10px 14px;cursor:pointer}.tab{background:var(--soft);color:#374151}.tab.active,.btn.primary{background:var(--accent);color:#fff}.btn.ghost{background:var(--soft);color:#111827}.btn.danger{background:#fee2e2;color:#991b1b}.btn.small{padding:7px 10px;font-size:12px}
.field{display:grid;gap:6px;margin:12px 0}.field label{font-size:12px;color:var(--muted);font-weight:700}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;color:#111827}.actions{display:flex;gap:8px;flex-wrap:wrap}.error{color:var(--bad);font-size:13px;margin-top:10px}.success{color:var(--good);font-size:13px;margin-top:10px}
.shell{min-height:100vh;display:grid;grid-template-columns:220px 1fr}.sidebar{background:#0f172a;color:#fff;padding:20px 14px;position:sticky;top:0;height:100vh}.sidebar .brand{padding:4px 8px 18px}.nav{display:grid;gap:6px}.nav button{width:100%;border:0;background:transparent;color:#cbd5e1;text-align:left;padding:10px 12px;border-radius:10px;cursor:pointer}.nav button:hover,.nav button.active{background:#1e293b;color:#fff}.sidebar .foot{position:absolute;bottom:16px;left:14px;right:14px;color:#94a3b8;font-size:11px}
.main{min-width:0}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:5}.who{font-size:13px;color:var(--muted)}.content{padding:24px;max-width:1400px}.page-title{font-size:26px;font-weight:800;margin:0 0 18px}.grid{display:grid;gap:14px}.grid.cols4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.cols2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}.metric .label{font-size:12px;color:var(--muted)}.metric .value{font-size:24px;font-weight:800;margin-top:6px}.muted{color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.stack{display:grid;gap:12px}
.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px}table{width:100%;border-collapse:collapse;min-width:720px}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);font-size:13px}th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#fafafa}tr:last-child td{border-bottom:0}.badge{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:11px;background:var(--soft)}.badge.good{background:#dcfce7;color:#166534}.badge.bad{background:#fee2e2;color:#991b1b}
.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.toolbar input,.toolbar select{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 10px}.codebox{word-break:break-all;background:#f8fafc;border:1px solid var(--line);padding:10px;border-radius:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);display:grid;place-items:center;padding:20px;z-index:20}.modal{width:min(620px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:16px;padding:20px;box-shadow:0 30px 90px rgba(0,0,0,.22)}.modal h3{margin-top:0}.split{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:980px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.nav{grid-template-columns:repeat(3,1fr)}.sidebar .foot{display:none}.grid.cols4,.grid.cols2{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.content{padding:16px}.topbar{padding:0 16px}.nav{grid-template-columns:repeat(2,1fr)}.grid.cols4,.grid.cols2,.split{grid-template-columns:1fr}.page-title{font-size:22px}}

/* Lite v2.2 machine operations */
.badge.warn{background:#fef3c7;color:#92400e}
.modal.wide{width:min(980px,100%)}
@media(max-width:760px){.modal.wide{width:100%}}

/* Lite v2.4 subscription QR */
.subscription-share{display:flex;gap:18px;align-items:center}
.qr-card{flex:0 0 auto}
.qr-box{width:208px;min-height:208px;padding:10px;border:1px solid var(--line);border-radius:14px;background:#fff;display:grid;place-items:center}
.qr-box canvas,.qr-box img{display:block;max-width:188px;max-height:188px}
@media(max-width:700px){.subscription-share{display:grid}.qr-card{justify-self:center}}
