:root{--bg:#f5f6f4;--card:#fff;--ink:#171a16;--muted:#626a5d;--line:#dce0d6;--accent:#2f6b45;--accent-ink:#fff;--up:#2f6b45;--up-bg:#e4f0e7;--down:#93302a;--warn:#8a5316;--warn-bg:#fbf0dd;--danger:#93302a;--danger-bg:#f9e6e3;--radius:12px;--radius-lg:18px;--tap:44px;--pad:14px;--shadow:0 1px 2px #141a120d, 0 6px 16px -8px #141a121f;--shadow-up:0 -8px 24px -12px #141a1240;--ease:cubic-bezier(.22, .61, .36, 1);--fast:.16s;--slow:.26s}@media (prefers-color-scheme:dark){:root{--bg:#141713;--card:#1c201a;--ink:#e8ece3;--muted:#939c8c;--line:#2e342b;--accent:#6fbf8c;--accent-ink:#10160f;--up:#6fbf8c;--up-bg:#1b2a1f;--down:#e08b83;--warn:#ddaa63;--warn-bg:#2c2216;--danger:#e08b83;--danger-bg:#2c1a18;--shadow:0 1px 2px #0000004d;--shadow-up:0 -10px 30px -10px #0009}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%;overscroll-behavior-y:contain;margin:0;padding:0;font:16px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}body.sheet-locked{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button:active:not(:disabled){transform:scale(.98)}button{transition:transform var(--fast) var(--ease), background-color var(--fast) var(--ease)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.app{flex-direction:column;min-height:100dvh;display:flex}.boot{color:var(--muted);flex:1;place-items:center;display:grid}.login{padding:24px var(--pad) calc(24px + env(safe-area-inset-bottom));flex-direction:column;flex:1;justify-content:center;gap:12px;width:100%;max-width:420px;margin:0 auto;display:flex}.login-title{letter-spacing:.04em;margin:0;font-size:22px}.login-hint{color:var(--muted);margin:0 0 4px}.login-input{width:100%;min-height:var(--tap);color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:0 12px;font-size:17px}.login-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.btn{min-height:var(--tap);font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;padding:0 16px}.btn-primary{color:var(--accent-ink);background:var(--accent);border-color:var(--accent);font-weight:600}.btn:disabled{opacity:.6}.head{padding:calc(10px + env(safe-area-inset-top)) var(--pad) 10px;border-bottom:1px solid var(--line);background:var(--card);z-index:2;justify-content:space-between;align-items:center;gap:8px;display:flex;position:sticky;top:0}.head-title{letter-spacing:.06em;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.head-tools{flex:none;gap:6px;display:flex}.head-btn{min-height:32px;font:inherit;color:var(--muted);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:8px;padding:0 10px;font-size:14px}.head-btn:disabled{opacity:.5}.screen{padding:var(--pad);padding-bottom:calc(var(--tap) + 28px + env(safe-area-inset-bottom));flex-direction:column;flex:1;gap:12px;display:flex}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:12px 14px}.card-title{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:13px;font-weight:600}.row{justify-content:space-between;align-items:baseline;gap:12px;padding:6px 0;display:flex}.row+.row{border-top:1px solid var(--line)}.row-label{color:var(--muted)}.row-value{font-variant-numeric:tabular-nums;font-weight:600}.row-value.up{color:var(--up)}.row-value.down{color:var(--down)}.empty{color:var(--muted);text-align:center;margin:0;padding:16px 0}.problem{color:var(--danger);background:var(--danger-bg);border-radius:var(--radius);margin:0;padding:10px 12px}.spinner{color:var(--muted);text-align:center;padding:6px 0;font-size:13px}.tabs{background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tab{min-height:54px;font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:7px 2px 5px;display:flex}.tab-icon{width:23px;height:23px;transition:transform var(--slow) var(--ease)}.tab-label{letter-spacing:.01em;font-size:11px;line-height:1}.tab-on{color:var(--accent);font-weight:600}.tab-on .tab-icon{transform:translateY(-1px)scale(1.06)}.tab:active{transform:none}.hello{padding:2px 0}.hello-title{margin:0;font-size:20px}.hello-date{color:var(--muted);font-size:14px}.picker{scrollbar-width:none;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.picker::-webkit-scrollbar{display:none}.chip{min-height:34px;font:inherit;color:var(--muted);background:var(--card);border:1px solid var(--line);white-space:nowrap;cursor:pointer;border-radius:999px;flex:none;padding:0 12px;font-size:14px}.chip-on{color:var(--accent-ink);background:var(--accent);border-color:var(--accent);font-weight:600}.cash-head{padding-bottom:6px}.cash-sum{font-variant-numeric:tabular-nums;font-size:28px;font-weight:700;line-height:1.15}.cash-sub{color:var(--muted);font-size:14px}.cash-net{color:var(--muted);margin-top:4px;font-size:13px}.spark{align-items:flex-end;gap:3px;height:44px;margin-top:10px;display:flex}.spark-bar{background:var(--line);border-radius:2px 2px 0 0;flex:1;min-height:1px}.spark-today{background:var(--accent)}.points{margin-top:8px}.due{min-height:var(--tap);align-items:center;gap:8px;padding:8px 0;display:flex}.due+.due{border-top:1px solid var(--line)}.due-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tag{min-height:32px;font:inherit;border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:999px;flex:none;align-items:center;padding:0 10px;font-size:13px;display:inline-flex}.tag-ok{color:var(--up);background:var(--up-bg);border-color:#0000}.tag-bad{color:var(--danger);background:var(--danger-bg);border-color:#0000}.tag-do{color:var(--accent-ink);background:var(--accent);border-color:var(--accent);cursor:pointer;font-weight:600}.note{color:var(--muted);margin:8px 0 0;font-size:13px}.note-center{text-align:center}.alert{align-items:baseline;gap:10px;padding:8px 0;display:flex}.alert+.alert{border-top:1px solid var(--line)}.alert-count{font-variant-numeric:tabular-nums;text-align:right;flex:none;min-width:24px;font-size:18px;font-weight:700}.alert-danger .alert-count{color:var(--danger)}.alert-warning .alert-count{color:var(--warn)}.alert-info .alert-count{color:var(--muted)}.alert-text{min-width:0}.alert-title{line-height:1.3}.alert-hint{color:var(--muted);font-size:13px}.item{min-height:var(--tap);align-items:center;gap:8px;padding:8px 0;display:flex}.item+.item{border-top:1px solid var(--line)}.item-main{flex:1;min-width:0}.item-name{overflow-wrap:anywhere;line-height:1.25}.item-hint{color:var(--muted);font-size:12px}.item-qty{width:72px;min-height:var(--tap);font:inherit;text-align:right;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;flex:none;padding:0 8px;font-size:17px}.item-unit{width:34px;color:var(--muted);flex:none;font-size:13px}.order-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:12px;margin-top:4px;padding-top:10px;display:flex}.order-count{color:var(--muted);font-size:14px}.order-total{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.order-note{width:100%;font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);resize:vertical;padding:10px 12px}.note-ok{color:var(--up)}.preview{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px}.preview summary{cursor:pointer;color:var(--muted);font-size:14px}.preview-text{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink);margin:10px 0 0;font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.marks{grid-template-columns:1fr 1fr;gap:6px;margin-top:10px;display:grid}.mark{min-height:var(--tap);font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);cursor:pointer;border-radius:8px;padding:6px 8px;font-size:13px}.mark-on{color:var(--accent-ink);background:var(--accent);border-color:var(--accent);font-weight:600}.marks .alert-hint,.marks .problem,.marks .btn,.mark-date,.mark-note{grid-column:1/-1}.mark-date,.mark-note{width:100%;min-height:var(--tap);font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:0 10px}.tag-warn{color:var(--warn);background:var(--warn-bg);border-color:#0000}.tag-accent{color:var(--accent);border-color:var(--accent)}.stack{flex-direction:column;gap:12px;display:flex}.report{width:100%;font:inherit;text-align:left;color:var(--ink);cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:10px 0;display:flex}.report+.report{border-top:1px solid var(--line)}.report-text{flex:1;min-width:0}.report-label{font-weight:600;line-height:1.25}.report-hint{color:var(--muted);font-size:13px;line-height:1.35}.report-price{color:var(--text);font-variant-numeric:tabular-nums;font-size:13px;line-height:1.35}.price-ask{border-bottom:1px solid var(--line);flex-direction:column;gap:4px;padding:8px 0;display:flex}.report-go{color:var(--muted);flex:none;font-size:22px}.report-head{align-items:baseline;gap:10px;display:flex}.report-title{font-size:15px;font-weight:600}.link-btn{min-height:32px;font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:6px 0;font-size:14px}.tags{flex-wrap:wrap;gap:6px;padding-top:8px;display:flex}.details{border-top:1px solid var(--line);margin-top:8px;padding-top:8px}.item-qty-plain{font-variant-numeric:tabular-nums;text-align:right;flex:none;font-weight:600}.item-qty-plain.up{color:var(--up)}.item-qty-plain.down{color:var(--down)}.finding{padding:10px 0}.finding+.finding{border-top:1px solid var(--line)}.bar{background:var(--line);border-radius:999px;height:8px;margin:10px 0 4px;overflow:hidden}.bar-fill{background:var(--accent);border-radius:999px;height:100%}.bar-ok{background:var(--up)}.bar-warn{background:var(--warn)}.bar-behind{background:var(--danger)}.tabs{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}.tab{font-size:12px}.blame+.blame{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.blame-who{letter-spacing:.03em;text-transform:uppercase;font-size:13px;font-weight:700}.blame-supplier{color:var(--warn)}.blame-accountant{color:var(--danger)}.blame-unclear{color:var(--muted)}.results{margin-top:4px}.axis{align-items:center;gap:8px;display:flex}.axis-label{width:62px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;flex:none;font-size:11px;line-height:1.15}.axis .picker{flex:1;min-width:0}.order+.order{border-top:1px solid var(--line)}.head-pick{font:inherit;letter-spacing:.06em;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-size:14px;font-weight:600}.locations{z-index:2;background:var(--card);border-bottom:1px solid var(--line);flex-direction:column;display:flex;position:sticky;top:0}.location{min-height:var(--tap);padding:0 var(--pad);font:inherit;text-align:left;color:var(--ink);border:none;border-top:1px solid var(--line);cursor:pointer;background:0 0}.location-on{color:var(--accent);font-weight:600}.period-dates{gap:8px;margin-top:10px;display:flex}.period-cell{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.period-label{color:var(--muted);flex:none;font-size:13px}.period-input{min-width:0;min-height:var(--tap);font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;flex:1;padding:0 8px}.period-bar{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.period-text{color:var(--muted);font-size:13px}.day{width:100%;font:inherit;text-align:left;color:var(--ink);border:none;border-top:1px solid var(--line);cursor:pointer;background:0 0;align-items:center;padding:10px 0;display:flex}.day-on .report-label{color:var(--accent)}.line-verdict{flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;display:flex}.line-verdict .link-btn{align-self:center;min-height:0;padding:0}.photos{border-top:1px dashed var(--line);margin-top:8px;padding-top:8px}.photos-late .item-hint:first-child{color:var(--warn)}.photo{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.photo .link-btn{align-self:center;min-height:0;padding:0;text-decoration:none}.sheet-root{z-index:10;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.sheet-root[hidden]{display:none}.sheet-scrim{opacity:0;transition:opacity var(--slow) var(--ease);background:#0c100b6b;position:absolute;inset:0}.sheet-open .sheet-scrim{opacity:1}.sheet{background:var(--card);border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:86dvh;box-shadow:var(--shadow-up);transition:transform var(--slow) var(--ease);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex;position:relative;transform:translateY(100%)}.sheet-open .sheet{transform:translateY(0)}.sheet-dragging{transition:none}.sheet-grab{touch-action:none;justify-content:center;padding:10px 0 2px;display:flex}.sheet-grab-bar{background:var(--line);border-radius:999px;width:40px;height:4px}.sheet-head{padding:4px var(--pad) 8px;touch-action:none;justify-content:space-between;align-items:center;gap:10px;display:flex}.sheet-title{margin:0;font-size:15px;font-weight:600}.sheet-x{width:34px;height:34px;font:inherit;color:var(--muted);background:var(--bg);cursor:pointer;border:none;border-radius:999px;flex:none;font-size:15px}.sheet-body{-webkit-overflow-scrolling:touch;padding:0 var(--pad) var(--pad);overscroll-behavior:contain;overflow-y:auto}.sheet-note{background:var(--bg);border-radius:var(--radius);padding:10px 12px}.sheet-note-name{font-weight:600}.sheet-list{flex-direction:column;display:flex}.sheet-row{width:100%;min-height:54px;font:inherit;text-align:left;color:var(--ink);border:none;border-top:1px solid var(--line);cursor:pointer;background:0 0;align-items:center;gap:10px;padding:8px 0;display:flex}.sheet-row:first-child{border-top:none}.sheet-row-text{flex:1;min-width:0}.sheet-row-name{font-weight:600}.sheet-row-on .sheet-row-name{color:var(--accent)}.sheet-row-mark{color:var(--accent);flex:none;font-weight:700}.pull{z-index:4;background:var(--card);width:34px;height:34px;box-shadow:var(--shadow);opacity:0;pointer-events:none;border-radius:999px;place-items:center;margin-left:-17px;display:grid;position:fixed;top:0;left:50%;transform:translateY(0)}.pull-live{opacity:1}.pull-mark{border:2px solid var(--muted);border-top-color:#0000;border-radius:999px;width:14px;height:14px}.pull-ready .pull-mark{border-color:var(--accent);border-top-color:#0000}.loading{z-index:2;background:var(--line);height:2px;position:sticky;top:0;overflow:hidden}.loading:after{content:"";background:var(--accent);width:40%;height:100%;animation:slide-along 1.1s infinite var(--ease);display:block}@keyframes slide-along{0%{transform:translate(-100%)}to{transform:translate(350%)}}.head-icon{place-items:center;width:34px;padding:0;font-size:16px;display:grid}.head-icon.is-busy .head-spin{animation:.9s linear infinite spin;display:block}@keyframes spin{to{transform:rotate(360deg)}}.slide-in{animation:slide-from-right var(--slow) var(--ease)}.slide-back{animation:slide-from-left var(--slow) var(--ease)}@keyframes slide-from-right{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@keyframes slide-from-left{0%{opacity:0;transform:translate(-18px)}to{opacity:1;transform:translate(0)}}.daybar{z-index:1;margin:calc(var(--pad) * -1) calc(var(--pad) * -1) 0;padding:10px var(--pad);background:var(--bg);border-bottom:1px solid var(--line);align-items:center;gap:10px;display:flex;position:sticky;top:0}.daybar-text{flex:1;min-width:0}.daybar-day{font-weight:600}.daybar-pick{flex:none}.skeleton{flex-direction:column;gap:12px;display:flex}.skeleton-card{border-radius:var(--radius-lg);background:var(--card);border:1px solid var(--line);height:96px;position:relative;overflow:hidden}.skeleton-card:nth-child(2){height:140px}.skeleton-card:nth-child(3){height:76px}.skeleton-card:after{content:"";background:linear-gradient(90deg, transparent, var(--bg), transparent);opacity:.7;animation:1.4s infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.dispatch{border-bottom:1px solid var(--line);margin-bottom:4px;padding-bottom:8px}.dispatch-name{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:13px;font-weight:600}.order-name{font-weight:600}.order{padding:6px 0}.order .due{min-height:0;padding:4px 0}.card>.btn{width:100%;margin-top:10px}.report-head{min-height:var(--tap);align-items:center}.report-title{flex:1;min-width:0;font-size:17px}.report-head .link-btn{flex:none;align-self:center}.period-cell{gap:4px}.period-label{text-align:right;width:20px}
