:root{--bg:#f5f7fb;--ink:#101828;--muted:#667085;--line:#d9e0ea;--panel:#fff;--brand:#1b365d;--brand2:#0f766e;--focus:#2563eb;--danger:#b42318;--ok:#027a48;--warn:#b54708;--radius:18px;--shadow:0 14px 38px #10182814;color:var(--ink);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}a{color:var(--brand);text-decoration:none}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.login{background:radial-gradient(circle at 0 0,#dbeafe,#0000 40%),linear-gradient(135deg,#f8fafc,#eef6ff);place-items:center;min-height:100vh;padding:24px;display:grid}.loginCard{border:1px solid var(--line);width:min(460px,100%);box-shadow:var(--shadow);background:#fffffff0;border-radius:30px;padding:36px}.brandMark{background:linear-gradient(145deg,var(--brand),#0f172a);color:#fff;border-radius:13px;place-items:center;width:42px;height:42px;font-weight:800;display:grid}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--brand2);font-size:12px;font-weight:800}.muted{color:var(--muted)}label{margin:16px 0 6px;font-weight:650;display:block}input{border:1px solid var(--line);background:#fff;border-radius:12px;width:100%;padding:12px}.primary{background:var(--brand);color:#fff;border:0;border-radius:12px;align-items:center;gap:8px;padding:12px 16px;font-weight:800;display:inline-flex}.ghost{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:6px;padding:10px;display:inline-flex}.error{color:var(--danger)}.app{min-height:100vh;display:flex}.side{color:#e5eefb;background:#0b1220;width:306px;height:100vh;padding:24px;position:sticky;top:0;overflow:auto}.brand{align-items:center;gap:12px;margin-bottom:22px;display:flex}.brand span{color:#93a4bd;font-size:13px;display:block}.navLabel{letter-spacing:.08em;text-transform:uppercase;color:#7c8da8;font-size:11px;font-weight:800}.navGroup{border-radius:15px;margin:6px 0}.navGroup.active{background:#111c2f}.navTop{color:#e5eefb;border-radius:14px;align-items:center;gap:10px;padding:12px 14px;display:flex}.navTop span{flex:1}.navTop:hover,.subNav a:hover,.subActive{background:#17243a}.subNav{gap:2px;padding:0 8px 9px 42px;display:grid}.subNav a{color:#aebed4;border-radius:10px;padding:8px 10px;font-size:13px}.main{flex:1;min-width:0}header{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);z-index:4;background:#ffffffe0;justify-content:space-between;align-items:center;height:86px;padding:0 30px;display:flex;position:sticky;top:0}header h2{margin:.1rem 0}.user{align-items:center;gap:14px;display:flex}.mobile{display:none}.grid4{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;padding:28px;display:grid}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:28px;display:grid}.wide{grid-column:1/-1}.metric,.panel,.hero{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.metric span{color:var(--muted);font-size:13px;font-weight:800}.metric strong{margin:14px 0 4px;font-size:40px;display:block}.metric p{color:var(--muted);margin:0}.panel{margin:28px}.panelHead{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.badge{color:#1b365d;background:#eef4ff;border-radius:999px;align-items:center;padding:6px 10px;font-size:12px;font-weight:800;display:inline-flex}.badge.ok{color:var(--ok);background:#ecfdf3}.badge.warn{color:var(--warn);background:#fffaeb}.badge.neutral{color:#475467;background:#f2f4f7}.dataTable{border:1px solid var(--line);background:#fff;border-radius:16px;gap:0;display:grid;overflow:hidden}.thead,.tr{grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:12px;display:grid}.thead{color:#475467;text-transform:uppercase;letter-spacing:.04em;background:#f8fafc;font-size:12px;font-weight:800}.thead span,.tr span{padding:13px 14px}.tr{border-top:1px solid var(--line);color:var(--ink)}.tr:hover{background:#fbfdff}.tr small{color:var(--muted);margin-top:3px;display:block}.productsTable .thead,.productsTable .tr{grid-template-columns:2.2fr 1fr .7fr 1.3fr}.adminTable .thead,.adminTable .tr{grid-template-columns:1.1fr 1.5fr .8fr 1fr 1fr 1fr 1.4fr}.auditTable .thead,.auditTable .tr{grid-template-columns:1fr 1.2fr .9fr 1.2fr 1.6fr .8fr}.actions{flex-wrap:wrap;gap:8px;display:flex}.empty{border:1px dashed var(--line);text-align:center;color:var(--muted);background:#fbfdff;border-radius:16px;padding:28px}.empty svg{color:#98a2b3}.stack{padding:28px}.hero{background:linear-gradient(135deg,#fff,#eef6ff);margin-bottom:18px}.roleGrid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.roleCard{border:1px solid var(--line);background:#fff;border-radius:16px;padding:18px}.roleCard h4{margin:0 0 6px}.chips{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.chips span{color:#475467;background:#f2f4f7;border-radius:999px;padding:5px 8px;font-size:12px}.filters{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0;display:grid}.engineBox{border:1px solid var(--line);background:#fbfdff;border-radius:16px;margin-top:16px;padding:18px}.checkList{line-height:1.9}.checkList li::marker{color:var(--ok)}pre{white-space:pre-wrap;word-break:break-word;color:#dbeafe;background:#0b1220;border-radius:14px;max-height:360px;padding:16px;overflow:auto}@media (width<=1100px){.grid4,.grid2,.adminTable .thead,.adminTable .tr,.auditTable .thead,.auditTable .tr,.productsTable .thead,.productsTable .tr,.thead,.tr{grid-template-columns:1fr}.thead{display:none}.tr span{padding:8px 14px}.filters{grid-template-columns:1fr}}@media (width<=980px){.side{z-index:20;transition:left .2s;position:fixed;left:-320px}.side.open{left:0}.mobile{display:inline-flex}.user span{display:none}header{padding:0 16px}.panel{margin:16px}.stack{padding:16px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.kvGrid{grid-template-columns:180px minmax(0,1fr);gap:12px 18px;margin:18px 0;display:grid}.kvGrid span{color:var(--muted);font-size:13px}.kvGrid code{border:1px solid var(--line);background:#f2f4f7;border-radius:8px;padding:8px;overflow:auto}.kvGrid strong{font-weight:700}@media (width<=760px){.kvGrid{grid-template-columns:1fr}.kvGrid span{margin-top:8px}}
