:root{--bg:#F9F8FB;--s0:#FFFFFF;--s1:#F2F1F6;--s2:#ECEBF1;--s3:#E3E2EA;--on:#1C1B22;--on2:#494852;--ol:#C8C7D1;--olv:#E3E2EB;--pri:#5458A6;--onpri:#FFFFFF;--pc:#E2E0F9;--onpc:#1D1B52;--ter:#2E6A62;--tc:#D3E8E3;--ontc:#0C2E29;--ok:#D5EAD6;--onok:#14391C;--warn:#F8E4C8;--onwarn:#4A2F08;--bad:#F8DCD9;--onbad:#5C1613;--bar1:#5458A6;--bar2:#6FB8AC;--okbar:#4E9A63;--warnbar:#D69A3A;--badbar:#C7574F;color-scheme:light}[data-theme~=dark]{--bg:#121217;--s0:#1A1A20;--s1:#1F1F26;--s2:#282830;--s3:#33333C;--on:#E5E4EA;--on2:#C8C7D1;--ol:#484852;--olv:#34343D;--pri:#C3C1F2;--onpri:#26246B;--pc:#3D3B82;--onpc:#E2E0F9;--ter:#9BD0C7;--tc:#1F4A44;--ontc:#CDE8E2;--ok:#20432A;--onok:#C6E9CA;--warn:#54390F;--onwarn:#F8E4C8;--bad:#68211D;--onbad:#F8DCD9;--bar1:#B4B2EE;--bar2:#6FBFB2;--okbar:#6DBB82;--warnbar:#E0AB55;--badbar:#E0796F;color-scheme:dark}[data-theme~=ocean]{--bg:#F8F9FB;--s0:#FFFFFF;--s1:#F0F2F6;--s2:#E9ECF1;--s3:#E0E4EA;--on:#1A1C20;--on2:#454950;--ol:#C4C8D0;--olv:#DFE3EA;--pri:#3D6490;--onpri:#FFFFFF;--pc:#D6E4F5;--onpc:#0E2A47;--ter:#6A5E8E;--tc:#E7E0F5;--ontc:#241A45;--bar1:#3D6490;--bar2:#A99BD6}[data-theme~=ocean][data-theme~=dark]{--bg:#111418;--s0:#191C21;--s1:#1E2127;--s2:#272B32;--s3:#32363E;--on:#E3E5EA;--on2:#C5C8D0;--ol:#464A53;--olv:#32363D;--pri:#A9C8EE;--onpri:#0F3052;--pc:#284B70;--onpc:#D6E4F5;--ter:#CFC2F0;--tc:#453A68;--ontc:#E7E0F5;--bar1:#9DBFE8;--bar2:#7E6FB5}[data-theme~=plum]{--bg:#FBF8FA;--s0:#FFFFFF;--s1:#F5F0F3;--s2:#EEE9ED;--s3:#E6E0E4;--on:#1F1A1E;--on2:#4C454A;--ol:#CDC5CA;--olv:#E6DFE3;--pri:#7A4F72;--onpri:#FFFFFF;--pc:#F3DDEE;--onpc:#30122B;--ter:#4E6480;--tc:#D9E4F2;--ontc:#0F2238;--bar1:#7A4F72;--bar2:#9DB4D2}[data-theme~=plum][data-theme~=dark]{--bg:#151216;--s0:#1D1A1E;--s1:#221F23;--s2:#2B282C;--s3:#363237;--on:#E8E2E6;--on2:#CFC6CC;--ol:#4B454A;--olv:#363137;--pri:#E6B9DC;--onpri:#45213F;--pc:#5F3858;--onpc:#F3DDEE;--ter:#B4C8E2;--tc:#36495F;--ontc:#D9E4F2;--bar1:#DDB0D3;--bar2:#6F8FB5}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--on);font-family:Roboto Flex,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}:focus-visible{outline:3px solid var(--pri);outline-offset:2px;border-radius:8px}.shell{display:flex;min-height:100vh}.rail{flex:0 0 96px;display:flex;flex-direction:column;align-items:center;gap:14px;padding:24px 0;background:var(--s1);border-radius:0 32px 32px 0;position:sticky;top:0;height:100vh}.logo{width:48px;height:48px;border-radius:16px;background:var(--pri);color:var(--onpri);display:grid;place-items:center;font-weight:850;font-size:17px;margin-bottom:10px}.nav{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;font-weight:550;color:var(--on2);width:80px;background:none;border:0;padding:0}.nav .pill{width:56px;height:32px;border-radius:16px;display:grid;place-items:center;transition:background .15s}.nav:hover .pill{background:var(--s3)}.nav.on{color:var(--on);font-weight:750}.nav.on .pill{background:var(--pc);color:var(--onpc)}.nav .dot{position:absolute;margin:-4px 0 0 34px;min-width:18px;height:18px;border-radius:9px;background:var(--badbar);color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;padding:0 5px}.main{flex:1;min-width:0;padding:32px 40px 72px;display:flex;flex-direction:column;gap:22px;max-width:1500px}@media(max-width:820px){.shell{flex-direction:column}.rail{position:fixed;inset:auto 0 0;height:calc(72px + env(safe-area-inset-bottom));flex-direction:row;justify-content:space-around;border-radius:24px 24px 0 0;padding:0 6px env(safe-area-inset-bottom);z-index:20;flex:none}.rail .logo,.rail .spacer,.rail .me{display:none}.main{padding:calc(20px + env(safe-area-inset-top)) 14px calc(110px + env(safe-area-inset-bottom))}}.head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px}.kicker{font-size:14px;font-weight:700;color:var(--ter)}h1{font-size:44px;line-height:1.05;font-weight:820;letter-spacing:-.025em}h2{font-size:21px;font-weight:750;letter-spacing:-.01em}h3{font-size:16px;font-weight:700}.sub{font-size:14px;color:var(--on2)}@media(max-width:820px){h1{font-size:32px}}.card{background:var(--s1);border-radius:28px;padding:22px;display:flex;flex-direction:column;gap:14px;min-width:0}.card.pri{background:var(--pc);color:var(--onpc)}.card.ter{background:var(--tc);color:var(--ontc)}.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.col{display:flex;flex-direction:column;gap:12px;min-width:0}.grid{display:flex;flex-wrap:wrap;gap:16px}.grid>*{flex:1 1 320px;min-width:0}.between{justify-content:space-between}.grow{flex:1;min-width:0}.item{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;border-radius:20px;background:var(--s0);min-width:0}.avatar{width:40px;height:40px;border-radius:14px;background:var(--pc);color:var(--onpc);display:grid;place-items:center;font-weight:750;font-size:14px;flex:none}.chip{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:2px 12px;border-radius:14px;font-size:13px;font-weight:600;white-space:nowrap;border:0;background:var(--s3);color:var(--on2)}.chip.pri{background:var(--pc);color:var(--onpc)}.chip.ter{background:var(--tc);color:var(--ontc)}.chip.ok{background:var(--ok);color:var(--onok)}.chip.warn{background:var(--warn);color:var(--onwarn)}.chip.bad{background:var(--bad);color:var(--onbad)}.chip.out{background:transparent;box-shadow:inset 0 0 0 1px var(--ol)}button.chip:hover{filter:brightness(.96)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 20px;border-radius:22px;border:0;font-size:15px;font-weight:650;background:var(--pri);color:var(--onpri);white-space:nowrap}.btn.tonal{background:var(--pc);color:var(--onpc)}.btn.plain{background:transparent;color:var(--on);box-shadow:inset 0 0 0 1px var(--ol)}.btn.danger{background:var(--bad);color:var(--onbad)}.btn.sm{min-height:36px;padding:0 14px;font-size:14px}.btn:hover{filter:brightness(.95)}.btn:disabled{opacity:.5;cursor:default;filter:none}.icon-btn{width:44px;height:44px;border-radius:22px;border:0;background:transparent;display:grid;place-items:center;color:var(--on2)}.icon-btn:hover{background:var(--s3)}.field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:650;color:var(--on2);min-width:0}.input,select.input,textarea.input{min-height:44px;padding:8px 14px;border-radius:14px;border:1px solid var(--ol);background:var(--s0);color:var(--on);font-size:15px;font-weight:450;width:100%}textarea.input{min-height:96px;resize:vertical;line-height:1.5}.input.num{width:84px;text-align:center;font-weight:750}.search{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 18px;border-radius:24px;background:var(--s2);color:var(--on2);flex:1 1 260px}.search input{flex:1;border:0;background:transparent;outline:none;min-width:0;color:var(--on)}.seg{display:inline-flex;padding:4px;gap:4px;border-radius:26px;background:var(--s2);flex-wrap:wrap}.seg button{min-height:40px;padding:0 16px;border-radius:20px;border:0;background:transparent;font-weight:650;color:var(--on2)}.seg button.on{background:var(--pc);color:var(--onpc)}.switch{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:18px;background:var(--s0)}.switch input{width:22px;height:22px;accent-color:var(--pri);margin:0;flex:none}.table-wrap{overflow-x:auto;border-radius:20px}table{width:100%;border-collapse:separate;border-spacing:0 6px;font-size:14px}th{padding:8px 10px;font-weight:650;font-size:13px;color:var(--on2);text-align:left;white-space:nowrap}td{padding:10px;background:var(--s0);vertical-align:middle}td:first-child{border-radius:16px 0 0 16px;padding-left:14px}td:last-child{border-radius:0 16px 16px 0;padding-right:14px}td.num,th.num{text-align:right}.alert{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:20px;font-weight:600}.alert.red{background:var(--bad);color:var(--onbad)}.alert.yellow{background:var(--warn);color:var(--onwarn)}.alert.info{background:var(--s2);color:var(--on2)}.meter{height:14px;border-radius:7px;background:var(--s3);overflow:hidden;display:flex;position:relative}.meter i{display:block;height:100%}.big{font-size:48px;font-weight:850;line-height:1;letter-spacing:-.03em}.bars{display:flex;gap:10px;align-items:flex-end;min-width:520px}.bars .day{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;color:var(--on2)}.bars .stack{width:100%;height:150px;display:flex;flex-direction:column;justify-content:flex-end;gap:2px;position:relative}.bars .stack b{display:block;border-radius:6px;min-height:0}.hbar{display:flex;align-items:center;gap:12px;font-size:14px}.hbar .track{flex:1;height:24px;border-radius:12px;background:var(--s3);overflow:hidden}.hbar .track i{display:block;height:100%;border-radius:12px;background:var(--bar1)}.board{display:flex;gap:14px;overflow-x:auto;padding-bottom:8px;align-items:flex-start}.lane{flex:1 0 230px;max-width:320px;background:var(--s1);border-radius:26px;padding:12px;display:flex;flex-direction:column;gap:10px;min-height:160px}.lane.over{outline:3px dashed var(--pri)}.deal{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:18px;background:var(--s0);cursor:grab}.modal-bg{position:fixed;inset:0;background:#12101c80;display:grid;place-items:center;padding:16px;z-index:50}.modal{width:min(720px,100%);max-height:92vh;overflow:auto;background:var(--s0);border-radius:30px;padding:24px;display:flex;flex-direction:column;gap:16px}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%);background:var(--on);color:var(--bg);padding:12px 20px;border-radius:22px;font-weight:650;z-index:60;max-width:92vw}@media(max-width:820px){.toast{bottom:92px}}.msg{white-space:pre-wrap;line-height:1.55;font-size:15px}.muted{color:var(--on2)}.mono{font-family:ui-monospace,Menlo,monospace;font-size:14px;padding:12px 14px;border-radius:14px;background:var(--s2);overflow-wrap:anywhere}.center{min-height:100vh;display:grid;place-items:center;padding:24px}.spin{width:36px;height:36px;border-radius:50%;border:4px solid var(--s3);border-top-color:var(--pri);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spin{animation:none}}
