:root{--bg:#f5f5f7;--surface:#ffffff;--surface-2:#fbfbfd;--fg:#1d1d1f;--muted:#6e6e73;--line:#e3e3e8;--accent:#0a5bd3;--accent-soft:#e8f0fd;--ok:#1a7f45;--ok-soft:#e5f5ea;--warn:#b25e00;--warn-soft:#fdf1e1;--bad:#c42b1c;--bad-soft:#fde9e7;--info:#5b4bc4;--info-soft:#efedfc;--glass:rgba(250,250,252,.8);--shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(0,0,0,.06);--font:"Readex Pro",system-ui,-apple-system,"Segoe UI",Tahoma,sans-serif;--r:18px;--r-s:12px}@media (prefers-color-scheme:dark){:root{--bg:#000;--surface:#1c1c1e;--surface-2:#141416;--fg:#f5f5f7;--muted:#a1a1a6;--line:#2e2e32;--accent:#4b94ff;--accent-soft:#132a4a;--ok:#3fcf7a;--ok-soft:#10301d;--warn:#ffb340;--warn-soft:#3a2a10;--bad:#ff6b5e;--bad-soft:#3d1512;--info:#a99dff;--info-soft:#231d47;--glass:rgba(22,22,24,.8);--shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.35);color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font);font-size:15px;line-height:1.6}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}.num,input.n,td.n{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.shell{--top-h:58px;--side-w:244px;--bb-h:0px;min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:"top top" "side main"}.shell.mini{--side-w:72px}.skip{position:absolute;inset-inline-start:12px;top:-60px;z-index:100;background:var(--fg);color:var(--bg);padding:8px 14px;border-radius:10px}.skip:focus{top:10px}.top{grid-area:top;position:-webkit-sticky;position:sticky;top:0;z-index:30;background:var(--glass);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--line)}.top-in{min-height:var(--top-h);padding:8px max(16px,env(safe-area-inset-right)) 8px max(16px,env(safe-area-inset-left));display:flex;align-items:center;gap:12px}.brand{display:flex;align-items:baseline;gap:10px;color:var(--fg);min-width:0}.brand b{font-size:19px;font-weight:600;letter-spacing:-.01em;white-space:nowrap}.brand span{font-size:12.5px;color:var(--muted);white-space:nowrap}.top-end{-webkit-margin-start:auto;margin-inline-start:auto}.me,.top-end{display:flex;align-items:center;gap:8px}.me{font-size:13px;color:var(--muted);min-width:0}.me-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.me .btn svg,.side-foot .btn svg{width:16px;height:16px}.icon-btn,.menu-btn{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:12px;background:transparent;color:var(--fg);cursor:pointer;padding:0;flex:none}.icon-btn:hover,.menu-btn:hover{background:var(--accent-soft);color:var(--accent)}.icon-btn svg,.menu-btn svg{width:22px;height:22px}.menu-btn{display:none}.side{grid-area:side;position:-webkit-sticky;position:sticky;top:var(--top-h);height:calc(100vh - var(--top-h));height:calc(100dvh - var(--top-h));overflow-y:auto;overscroll-behavior:contain;background:var(--surface-2);-webkit-border-end:1px solid var(--line);border-inline-end:1px solid var(--line);display:flex;flex-direction:column;padding:12px 10px;scrollbar-width:thin}.side ul{list-style:none;margin:0;padding:0;display:grid;grid-gap:2px;gap:2px}.side-grp{margin-top:14px}.side-gt{margin:0 0 4px;padding-inline:12px;font-size:11.5px;font-weight:500;color:var(--muted);letter-spacing:.02em}.side-collapse,.side-link{display:flex;align-items:center;gap:12px;min-height:40px;padding:6px 10px;border-radius:11px;color:var(--fg);font-size:14px;width:100%;border:0;background:transparent;cursor:pointer;text-align:start;font:inherit}.side-collapse:hover,.side-link:hover{background:var(--surface)}.side-link.on{background:var(--accent-soft);color:var(--accent);font-weight:500}.side-ic{width:22px;height:22px;display:grid;place-items:center;flex:none}.side-ic svg{width:21px;height:21px}.side-tx{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.side-foot{margin-top:auto;padding-top:12px;display:grid;grid-gap:8px;gap:8px}.side-collapse{color:var(--muted);font-size:13px}.bottom,.scrim,.side-head{display:none}.only-mob{display:none!important}main{grid-area:main;width:100%;max-width:1240px;margin:0 auto;padding:22px max(20px,env(safe-area-inset-right)) 80px max(20px,env(safe-area-inset-left));display:grid;grid-gap:20px;gap:20px;align-content:start;min-width:0}main:focus{outline:none}@media (min-width:900px){.shell.mini .side{padding-inline:10px}.shell.mini .side-tx{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.shell.mini .side-collapse,.shell.mini .side-link{justify-content:center;padding-inline:0}.shell.mini .side-gt{height:1px;padding:0;margin:10px 12px;background:var(--line);overflow:hidden;color:transparent}}@media (max-width:899.98px){.shell{--side-w:0px;--bb-h:60px;grid-template-columns:minmax(0,1fr);grid-template-areas:"top" "main"}.menu-btn{display:grid;-webkit-margin-start:-6px;margin-inline-start:-6px}.only-desk{display:none!important}.only-mob{display:flex!important}.top-in{gap:8px}.side{position:fixed;top:0;bottom:0;inset-inline-start:0;z-index:50;width:min(86vw,320px);height:auto;background:var(--surface);-webkit-border-end:0;border-inline-end:0;box-shadow:0 10px 40px rgba(0,0,0,.25);padding:max(10px,env(safe-area-inset-top)) 12px max(14px,env(safe-area-inset-bottom));--off:-100%;transform:translateX(var(--off));visibility:hidden;transition:transform .26s cubic-bezier(.2,.8,.2,1),visibility 0s linear .26s}[dir=rtl] .side{--off:100%}.side.open{transform:none;visibility:visible;transition:transform .26s cubic-bezier(.2,.8,.2,1)}.side-head{display:flex;align-items:center;justify-content:space-between;padding:4px 4px 8px 12px;padding-inline:12px 0}.side-link{min-height:46px;font-size:15px}.side-foot .me{flex-wrap:wrap;padding:12px;border-top:1px solid var(--line)}.side-foot .me-name{max-width:100%}.scrim{display:block;position:fixed;inset:0;z-index:45;background:rgba(0,0,0,.38);opacity:0;pointer-events:none;transition:opacity .2s}.scrim.show{opacity:1;pointer-events:auto}html.drawer-open{overflow:hidden}.bottom{display:flex;position:fixed;inset-inline:0;bottom:0;z-index:30;height:calc(var(--bb-h) + env(safe-area-inset-bottom));padding:0 max(6px,env(safe-area-inset-left)) env(safe-area-inset-bottom) max(6px,env(safe-area-inset-right));background:var(--glass);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-top:1px solid var(--line)}.bottom a{flex:1 1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--muted);font-size:11.5px;border-radius:12px}.bottom a svg{width:23px;height:23px}.bottom a span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.bottom a.on{color:var(--accent);font-weight:500}main{padding:18px max(16px,env(safe-area-inset-right)) calc(var(--bb-h) + env(safe-area-inset-bottom) + 28px) max(16px,env(safe-area-inset-left))}}@media (max-width:560px){.brand span{display:none}}.savebar{position:fixed;z-index:28;inset-inline-start:var(--side-w);inset-inline-end:0;bottom:calc(var(--bb-h) + env(safe-area-inset-bottom));display:flex;justify-content:center;padding:10px max(16px,env(safe-area-inset-right)) 12px max(16px,env(safe-area-inset-left));pointer-events:none}.savebar-in{pointer-events:auto;width:100%;max-width:1200px;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 2px 6px rgba(0,0,0,.06),0 12px 32px rgba(0,0,0,.12);padding:10px 12px 10px 16px;padding-inline:16px 12px}.savebar-in,.sb-st{display:flex;align-items:center}.sb-st{gap:8px;font-size:13.5px;color:var(--muted);min-width:0}.sb-st svg{width:18px;height:18px;flex:none}.sb-dot{width:9px;height:9px;border-radius:50%;background:var(--line);flex:none}.sb-act{display:flex;align-items:center;gap:8px;-webkit-margin-start:auto;margin-inline-start:auto}.sb-dirty .sb-dot,.sb-pending .sb-dot{background:var(--warn)}.sb-dirty .sb-st,.sb-pending .sb-st{color:var(--warn);font-weight:500}.sb-editing .sb-dot,.sb-error .sb-dot{background:var(--bad)}.sb-editing .sb-st,.sb-error .sb-st{color:var(--bad);font-weight:500}.sb-saving .sb-dot{background:var(--accent);animation:sbp 1s ease-in-out infinite}.sb-saved .sb-st{color:var(--ok);font-weight:500}.sb-clean .sb-dot{background:var(--ok)}@keyframes sbp{50%{opacity:.3}}.savebar.toast{z-index:29}.savebar.toast .savebar-in{max-width:420px;justify-content:center}main:has(.savebar){padding-bottom:calc(var(--bb-h) + env(safe-area-inset-bottom) + 112px)}@media (max-width:560px){.savebar,.savebar-in{padding:8px 10px}.savebar-in{padding-inline:12px 8px}.sb-st{font-size:12.5px;flex:1 1 160px}}h1{font-size:clamp(26px,4vw,38px);letter-spacing:-.02em;text-wrap:balance;line-height:1.2}h1,h2{font-weight:600;margin:0}h2{font-size:20px}h3{font-size:16px;font-weight:600;margin:0}.sub{color:var(--muted);margin:4px 0 0;max-width:72ch}.head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}.crumb{font-size:13px;color:var(--muted);margin:0 0 2px}.grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:14px;gap:14px}.grid,.tile{display:grid}.tile{background:var(--surface);border-radius:var(--r);padding:18px 16px;grid-gap:10px;gap:10px;box-shadow:var(--shadow);border:1px solid transparent;transition:transform .2s,border-color .2s;color:var(--fg)}.tile:hover{transform:translateY(-2px);border-color:var(--line)}.ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}.ic svg{width:24px;height:24px}.tile b{font-weight:600}.tile small{color:var(--muted);font-size:12.5px;line-height:1.45}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:14px;gap:14px}.kpi{background:var(--surface);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow)}.kpi small{color:var(--muted);font-size:12.5px;display:block}.kpi b{font-size:24px;font-weight:600;display:block;margin-top:2px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi em{font-style:normal;font-size:12px;color:var(--muted)}.panel{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}.panel-h{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}.panel-b{padding:16px 18px}.scroll{overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--muted) transparent;--fade:0px}.scroll::-webkit-scrollbar{height:10px}.scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:10px;border:2px solid var(--surface)}.scroll[data-over]::-webkit-scrollbar-thumb{background:var(--muted)}.scroll[data-over]{padding-bottom:2px}.scroll[data-more]{--fade:44px}.scroll{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 var(--fade));mask-image:linear-gradient(to right,transparent 0,#000 var(--fade))}[dir=ltr] .scroll{-webkit-mask-image:linear-gradient(to left,transparent 0,#000 var(--fade));mask-image:linear-gradient(to left,transparent 0,#000 var(--fade))}.scroll:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}table{width:100%;border-collapse:collapse;font-size:13.5px}th{font-weight:500;color:var(--muted);text-align:start;padding:10px;white-space:nowrap;background:var(--surface-2)}td,th{border-bottom:1px solid var(--line)}td{padding:9px 10px;vertical-align:middle}tr:last-child td{border-bottom:0}tbody tr:hover td{background:var(--surface-2)}td.n{text-align:end;white-space:nowrap}input.n,td.n{unicode-bidi:plaintext}tr.link td{cursor:pointer}.empty{padding:34px 18px;text-align:center;color:var(--muted)}.empty b{display:block;color:var(--fg);font-weight:500;margin-bottom:4px}.rt{width:max-content;min-width:100%}.rt input,.rt select{width:auto;min-width:72px;max-width:260px;border:1px solid transparent;background:transparent;border-radius:8px;padding:5px 6px;font-size:13px}.rt input:hover,.rt select:hover{border-color:var(--line)}.rt input:focus,.rt select:focus{border-color:var(--accent);background:var(--surface);outline:none}.rt input.n{text-align:end;direction:ltr;min-width:0;width:92px}.rt input.q{width:60px}.rt input[type=checkbox]{min-width:0;width:auto}.rt input.txt{width:150px}.rt input.note-in{width:360px;max-width:360px}.rt td{padding:4px}.rt .stk{position:-webkit-sticky;position:sticky;inset-inline-start:0;z-index:2;background:var(--surface)}.rt th.stk{background:var(--surface-2)}.rt .stk2{inset-inline-start:40px;box-shadow:inset 1px 0 0 var(--line)}[dir=ltr] .rt .stk2{box-shadow:inset -1px 0 0 var(--line)}.rt .hcell{min-width:170px;max-width:220px}.hpick{position:relative;display:block;border:1px solid transparent;border-radius:8px}.hpick:hover{border-color:var(--line)}.hpick:focus-within{border-color:var(--accent);background:var(--surface)}.hname{display:block;padding:5px 6px;-webkit-padding-end:22px;padding-inline-end:22px;font-size:13px;white-space:normal;overflow-wrap:anywhere;line-height:1.35}.hpick:not(.ro):after{content:"";position:absolute;inset-inline-end:8px;top:50%;width:6px;height:6px;border:solid var(--muted);border-width:0 1.5px 1.5px 0;transform:translateY(-70%) rotate(45deg);pointer-events:none}.rt .hpick select{position:absolute;inset:0;width:100%;min-width:0;max-width:none;height:100%;opacity:0;cursor:pointer;padding:0;border:0}.rt .hpick.ro select{cursor:default}.rt .c0{width:40px;min-width:40px;max-width:40px;text-align:center}.rt tr.need td{background:var(--warn-soft)}.rt tr.need input.sell{border-color:var(--warn);background:var(--surface)}.rt tr.saved td{background:var(--ok-soft)}.rt tr.err td{background:var(--bad-soft)}.btn{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:999px;padding:8px 16px;background:var(--accent);color:#fff;font-weight:500;font-size:14px;cursor:pointer;white-space:nowrap}.btn.ghost{background:var(--accent-soft);color:var(--accent)}.btn.plain{background:transparent;color:var(--accent);padding:8px 10px}.btn.dark{background:var(--fg);color:var(--bg)}.btn.danger{background:var(--bad-soft);color:var(--bad)}.btn.sm{padding:5px 12px;font-size:13px}.btn:disabled{opacity:.45;cursor:not-allowed}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.fld{display:grid;grid-gap:4px;gap:4px;min-width:0}.fld label{font-size:12.5px;color:var(--muted)}.fld input,.fld select,.fld textarea,.inp{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 10px;font-size:14px;width:100%;min-width:0}.fld textarea{min-height:76px;resize:vertical}.fld input[type=checkbox]{width:auto;margin:0}.fld label.row{display:flex;gap:6px;align-items:center;cursor:pointer}.fld input:focus,.fld select:focus,.fld textarea:focus,.inp:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:12px 14px;gap:12px 14px}.form .wide{grid-column:1/-1}.pill{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap}.p-tent{background:var(--warn-soft);color:var(--warn)}.p-conf{background:var(--ok-soft);color:var(--ok)}.p-vouch{background:var(--accent-soft);color:var(--accent)}.p-out{background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}.p-canc{background:var(--bad-soft);color:var(--bad)}.p-pros{background:var(--info-soft);color:var(--info)}.p-late{background:var(--bad);color:#fff}.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);padding:3px;gap:2px;flex-wrap:wrap}.seg,.seg a{border-radius:999px}.seg a{padding:4px 12px;font-size:13px;color:var(--muted)}.seg a.on{background:var(--surface);color:var(--fg);box-shadow:var(--shadow)}.note{font-size:12.5px;color:var(--muted)}.warnbox{background:var(--warn-soft);color:var(--warn)}.okbox,.warnbox{border-radius:var(--r-s);padding:10px 14px;font-size:13.5px}.okbox{background:var(--ok-soft);color:var(--ok)}.errbox{background:var(--bad-soft);color:var(--bad);border-radius:var(--r-s);padding:10px 14px;font-size:13.5px}.two{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);grid-gap:20px;gap:20px;align-items:start}@media (max-width:900px){.two{grid-template-columns:1fr}}.totals{display:grid;grid-gap:6px;gap:6px}.totals div{display:flex;justify-content:space-between;gap:10px;align-items:center}.totals b{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;direction:ltr}.totals .big{font-size:18px;font-weight:600;border-top:1px solid var(--line);padding-top:8px}.auth{min-height:100vh;display:grid;place-items:center;padding:24px}.auth .card{width:100%;max-width:380px;background:var(--surface);border-radius:22px;box-shadow:var(--shadow);padding:32px 28px;display:grid;grid-gap:16px;gap:16px}.auth h1{font-size:26px}@media (max-width:560px){.kpi b{font-size:20px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.svc{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:500;border:1px solid;border-radius:999px;padding:1px 8px;margin-top:3px;white-space:nowrap}.imgbox{height:92px;border:1px dashed var(--line);border-radius:12px;display:grid;place-items:center;background:repeating-conic-gradient(var(--surface-2) 0 25%,var(--surface) 0 50%) 0 0/16px 16px;overflow:hidden}.imgbox img{max-height:80px;max-width:90%;object-fit:contain}.datef{display:inline-flex;flex-direction:column;gap:4px;width:100%;min-width:0;vertical-align:middle}.datef-box{position:relative;display:flex;align-items:center;width:100%}.datef input[type=text]{width:100%;direction:ltr;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}[dir=rtl] .datef input[type=text]{text-align:right;padding-left:34px}[dir=ltr] .datef input[type=text]{text-align:left;padding-right:34px}.datef-btn{position:absolute;top:50%;transform:translateY(-50%);width:28px;height:28px;border:0;background:transparent;color:var(--muted);border-radius:8px;display:grid;place-items:center;cursor:pointer;padding:0}[dir=rtl] .datef-btn{left:4px}[dir=ltr] .datef-btn{right:4px}.datef-btn:hover{background:var(--accent-soft);color:var(--accent)}.datef-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px;color:var(--accent)}.datef-btn svg{width:17px;height:17px}.datef .datef-native{position:absolute;inset-inline-end:0;bottom:0;width:1px;height:1px;opacity:0;pointer-events:none;border:0;padding:0}.datef.bad input[type=text]{border-color:var(--bad)!important;background:var(--bad-soft)}.datef-msg{color:var(--bad);font-size:12px;line-height:1.4;white-space:normal}.rt .datef{width:150px}.rt .datef-msg{font-size:11.5px}.datef.fit{width:150px}@media (max-width:560px){.rt .hcell{min-width:112px;max-width:42vw}.rt .c0{width:32px;min-width:32px;max-width:32px}.rt .stk2{inset-inline-start:32px}}.kpi{display:flex;flex-direction:column;min-width:0}.kpi small{flex:1 1 auto}.kpi b{overflow-wrap:anywhere;line-height:1.25}.grid{grid-auto-rows:1fr}.tile{align-content:start;grid-template-rows:auto auto 1fr}.tile small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}@media (max-width:599.98px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpi{padding:12px 14px;border-radius:16px}.kpi b{font-size:clamp(17px,5.4vw,22px)}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tile{padding:14px 12px;gap:8px}.tile .ic{width:40px;height:40px}}@media (max-width:899.98px){
  /* !important on purpose: older rules (.fld select 14px, .rt input 13px, .seg, inline 12px on the
     void-reason box) are more specific; under 16px iPhone Safari zooms the page on focus. */input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea{font-size:16px!important}.datef-btn{width:40px;height:40px;border-radius:10px}[dir=rtl] .datef-btn{left:1px}[dir=ltr] .datef-btn{right:1px}[dir=rtl] .datef input[type=text]{padding-left:44px}[dir=ltr] .datef input[type=text]{padding-right:44px}.rt .datef-btn{width:28px;height:28px;border-radius:8px}[dir=rtl] .rt .datef-btn{left:4px}[dir=ltr] .rt .datef-btn{right:4px}[dir=rtl] .rt .datef input[type=text]{padding-left:34px}[dir=ltr] .rt .datef input[type=text]{padding-right:34px}.rt .datef{width:170px}main .btn{min-height:40px}main .btn.sm{min-height:38px;padding-inline:14px}.seg a{min-height:36px;display:inline-flex;align-items:center}.fld input:not([type=checkbox]),.fld select,main .inp{min-height:42px}.crumb a,.note a,.okbox a,.warnbox a,main td>a{display:inline-block;padding-block:9px}.rt td{padding:3px}}