:root{--ink:#0B1B33;--mut:#5B6B82;--bg:#EAF1FB;--bl:#2563EB;--cy:#06B6D4;--mn:#34D399;--ln:#E1E9F5;--card:#FFFFFF;--grad:linear-gradient(135deg,#2563EB 0%,#06B6D4 62%,#34D399 100%);--sh:0 1px 2px rgba(11,27,51,.05),0 14px 40px rgba(37,99,235,.08)}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:'Manrope',system-ui,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.45}
h1,h2,h3{font-family:'Sora',sans-serif;margin:0}
a{color:var(--bl)}
.shell{display:flex;flex-wrap:wrap;min-height:100vh}
.rail{flex:0 0 92px;margin:16px 0 16px 16px;background:var(--ink);border-radius:32px;padding:18px 0;display:flex;flex-direction:column;align-items:center;gap:9px;position:sticky;top:16px;align-self:flex-start;max-height:calc(100vh - 32px);overflow:auto}
.rail .logo{width:48px;height:48px;border-radius:16px;background:var(--grad);display:flex;align-items:center;justify-content:center;margin-bottom:10px;color:#fff}
.rail a{display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;color:#9FB3D1;font-size:11px;font-weight:700}
.rail a .i{width:52px;height:52px;border-radius:18px;display:flex;align-items:center;justify-content:center;position:relative}
.rail a.on{color:#fff}.rail a.on .i{background:#fff;color:var(--bl);box-shadow:0 0 0 5px rgba(6,182,212,.25)}
.rail a.lock{opacity:.55}.rail a .lk{position:absolute;right:4px;top:4px;width:16px;height:16px;border-radius:99px;background:#334155;color:#fff;display:flex;align-items:center;justify-content:center}
.rail .me{margin-top:auto;width:42px;height:42px;border-radius:99px;background:#CFFAFE;color:#0E7490;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}
main.page{flex:1 1 560px;min-width:0;padding:28px 28px 40px 24px;display:flex;flex-direction:column;gap:20px}
.top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 20px}
.top .sub{font-size:13px;font-weight:700;color:var(--mut)}.top h1{font-size:28px;font-weight:800;letter-spacing:-.5px;margin-top:2px}
.row{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}.row.stretch{align-items:stretch}
.card{background:var(--card);border-radius:28px;padding:22px;box-shadow:var(--sh)}
.card.dark{background:var(--ink);color:#fff}.card.hero{background:var(--grad);color:#fff;box-shadow:0 18px 44px rgba(37,99,235,.3)}
.card h2{font-size:16px;font-weight:700}.card .hd{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.grow{flex:1 1 320px;min-width:0}.grow2{flex:999 1 460px;min-width:0}.side{flex:1 1 330px;max-width:420px}
.muted{color:var(--mut)}.big{font-family:'Sora',sans-serif;font-weight:800;letter-spacing:-1px}
.pill{display:inline-block;font-size:12px;font-weight:700;border-radius:99px;padding:4px 11px;white-space:nowrap;background:#E2E8F0;color:#475569}
.pill.ok{background:#D1FAE5;color:#047857}.pill.bad{background:#FFE4E6;color:#BE123C}.pill.pro{background:#DBEAFE;color:#1D4ED8}.pill.inf{background:#CFFAFE;color:#0E7490}
.btn{min-height:46px;padding:0 22px;border-radius:99px;font:inherit;font-size:14px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;border:1px solid var(--ln);background:#fff;color:var(--ink)}
.btn.p{background:var(--grad);color:#fff;border:0;box-shadow:0 8px 20px rgba(37,99,235,.35)}.btn.d{background:var(--ink);color:#fff;border:0}.btn.r{background:#BE123C;color:#fff;border:0}
.btn.sm{min-height:36px;padding:0 14px;font-size:13px}.btn[disabled]{opacity:.5;cursor:not-allowed}
.btns{display:flex;flex-wrap:wrap;gap:10px}
label.f{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:var(--mut)}
input,select,textarea{font:inherit;font-size:14px;font-weight:600;color:var(--ink);min-height:48px;border:1px solid var(--ln);border-radius:18px;padding:0 16px;background:#fff;width:100%}
textarea{padding:12px 16px;min-height:90px}input:focus,select:focus,textarea:focus{outline:2px solid var(--cy);outline-offset:1px}
.form{display:flex;flex-direction:column;gap:12px}.two{display:flex;gap:12px}.two>*{flex:1;min-width:0}
.seg{display:inline-flex;flex-wrap:wrap;gap:4px;background:#fff;border:1px solid var(--ln);border-radius:99px;padding:4px}
.seg a,.seg button{min-height:38px;padding:0 16px;border-radius:99px;display:inline-flex;align-items:center;font:inherit;font-size:13px;font-weight:700;color:var(--mut);text-decoration:none;border:0;background:transparent;cursor:pointer}
.seg .on{background:var(--bl);color:#fff;box-shadow:0 6px 16px rgba(37,99,235,.3)}
table{width:100%;border-collapse:collapse}th{text-align:left;font-size:12px;font-weight:700;color:var(--mut);padding:10px 12px}td{padding:12px;border-top:1px solid #EEF3FB}
.tw{overflow-x:auto}.kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0}.kv.t{font-size:17px;font-weight:800}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:14px}
.prod{background:#fff;border-radius:24px;padding:12px;box-shadow:var(--sh);display:flex;flex-direction:column;gap:8px;cursor:pointer;border:0;text-align:left;font:inherit;color:var(--ink)}
.prod:hover{outline:2px solid var(--cy)}.prod .ph{height:84px;border-radius:18px;background:#DBEAFE;color:var(--bl);display:flex;align-items:center;justify-content:center}
.kanban{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start}.col{flex:1 1 230px;min-width:0;background:rgba(255,255,255,.55);border-radius:28px;padding:14px;display:flex;flex-direction:column;gap:12px}
.col .ch{display:flex;justify-content:space-between;font-family:'Sora';font-weight:700;font-size:14px;padding:2px 4px}
.tk{background:#fff;border-radius:22px;padding:14px;box-shadow:var(--sh);display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--ink)}
.flash{padding:12px 18px;border-radius:18px;font-weight:700}.flash.ok{background:#D1FAE5;color:#047857}.flash.err{background:#FFE4E6;color:#BE123C}
.bar{height:10px;border-radius:99px;background:#DCE7F6}.bar>i{display:block;height:10px;border-radius:99px;background:var(--grad)}
.tl{display:flex;flex-direction:column}.tl>div{display:flex;gap:12px}.tl .dot{width:14px;height:14px;border-radius:99px;background:var(--bl);margin-top:3px;flex:none}.tl .dot.off{background:#fff;border:3px solid #CBD9EE}.tl .ln{width:3px;background:var(--bl);border-radius:2px;margin:3px 5.5px}
.toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:12px 22px;border-radius:99px;font-weight:700;z-index:100;box-shadow:0 18px 36px rgba(11,27,51,.35);transition:opacity .2s}
.toast.err{background:#BE123C}.toast.ok{background:#047857}
.modal{position:fixed;inset:0;background:rgba(11,27,51,.6);display:flex;align-items:center;justify-content:center;z-index:99;padding:16px}.modal .box{background:#fff;border-radius:28px;padding:24px;max-width:420px;width:100%}
.login{max-width:420px;margin:8vh auto;padding:0 16px}
@media (max-width:820px){
 .rail{position:fixed;left:16px;right:16px;bottom:16px;top:auto;flex:none;margin:0;flex-direction:row;height:64px;border-radius:99px;padding:0 10px;z-index:50;max-height:none;overflow:visible;justify-content:space-around;gap:0;box-shadow:0 18px 36px rgba(11,27,51,.35)}
 .rail .logo,.rail .me{display:none}.rail a{font-size:10px;gap:0}.rail a .i{width:44px;height:34px;border-radius:99px}.rail a.on .i{box-shadow:none;background:var(--bl);color:#fff}
 .grid{grid-template-columns:repeat(2,1fr);gap:10px}.prod .ph{height:56px}
 main.page{padding:16px 16px 110px}.top h1{font-size:22px}.side{max-width:none}
}
@media print{.rail,.top .btns,.noprint{display:none!important}body{background:#fff}.card{box-shadow:none}}
