.shell{grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh;display:grid}.sidebar{color:#e8f1f8;background:#143f63;flex-direction:column;gap:8px;padding:24px 16px;display:flex}.sidebar .logo{padding:8px 12px 20px;font-size:20px;font-weight:800}.nav-btn{text-align:left;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:12px;padding:12px 14px;font-weight:600;text-decoration:none;display:block}.nav-btn.active,.nav-btn:hover{background:#ffffff1f}.sidebar-spacer{flex:1}.main{flex-direction:column;min-width:0;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:64px;padding:0 28px;display:flex}.content{padding:28px}@media (width<=800px){.shell{grid-template-columns:1fr}.sidebar{flex-flow:wrap;align-items:center}.sidebar-spacer{display:none}}.login-wrap{background:linear-gradient(160deg,#1e5a8c 0%,#143f63 55%,#0c1117 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:var(--surface);border-radius:20px;width:min(420px,100%);padding:32px 28px;box-shadow:0 24px 60px #00000040}.brand{color:var(--primary);margin:0 0 4px;font-size:28px;font-weight:800}:root{--bg:#f3f4f6;--surface:#fff;--surface2:#edf0f4;--text:#111827;--sub:#6b7280;--line:#e3e7ec;--primary:#1e5a8c;--primsoft:#e8f1f8;--danger:#dc2626;--success:#16a34a;--warnbg:#fef3c7;--warntx:#92400e;--okbg:#dcfce7;--oktx:#166534;--radius:16px;--cta-h:56px;--sidebar-w:240px}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,system-ui,Segoe UI,sans-serif}a{color:var(--primary);text-decoration:none}button,input,select{font:inherit}.cta{height:var(--cta-h);border-radius:var(--radius);background:var(--primary);color:#fff;cursor:pointer;border:none;padding:0 24px;font-size:17px;font-weight:600}.cta:disabled{opacity:.45;cursor:not-allowed}.cta.secondary{background:var(--surface);color:var(--primary);border:1.5px solid var(--primary)}.cta.danger{background:var(--danger)}.cta.ghost{color:var(--sub);border:1.5px solid var(--line);background:0 0}.linkish{border:1.5px solid var(--line);background:var(--surface);cursor:pointer;height:40px;color:var(--primary);border-radius:12px;padding:0 14px;font-weight:600}.linkish:disabled{opacity:.45;cursor:not-allowed}.pill{background:var(--primsoft);color:var(--primary);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-block}.pill.warn,.pill.demo{background:var(--warnbg);color:var(--warntx)}.pill.ok{background:var(--okbg);color:var(--oktx)}.pill.muted{background:var(--surface2);color:var(--sub)}.banner{background:var(--warnbg);color:var(--warntx);border-radius:12px;margin:12px 0 0;padding:12px 14px;font-size:14px;font-weight:600}.banner.ok{background:var(--okbg);color:var(--oktx)}.banner.err{color:#991b1b;background:#fee2e2}.muted{color:var(--sub)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);max-width:760px;padding:24px}.panel h2{margin:0 0 8px;font-size:22px;font-weight:800}.actions{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.field-row{grid-template-columns:160px 1fr;gap:8px;margin:10px 0;font-size:14px;display:grid}.field-row span:first-child{color:var(--sub);font-weight:600}table.data{border-collapse:collapse;background:var(--surface);border-radius:var(--radius);width:100%;overflow:hidden}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:14px 16px;font-size:14px}table.data th{text-transform:uppercase;letter-spacing:.04em;color:var(--sub);background:var(--surface2);font-size:12px}.row-actions{flex-wrap:wrap;gap:8px;display:flex}.kpis{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;display:grid}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.kpi .n{color:var(--primary);font-size:28px;font-weight:800}.kpi .l{color:var(--sub);margin-top:4px;font-size:13px;font-weight:600}label.field{color:var(--sub);margin-bottom:6px;font-size:13px;font-weight:700;display:block}input.field,select.field{border:1.5px solid var(--line);background:var(--surface);border-radius:14px;width:100%;height:48px;margin-bottom:14px;padding:0 14px}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.toolbar input.field,.toolbar select.field{max-width:280px;margin:0}
