:root{color-scheme:light;--ink: #171a1c;--ink-2: #5b666d;--bg: #eef1f4;--surface: #fff;--line: #e2e7eb;--amber: #ffb020;--amber-2: #f09a00;--amber-soft: #fff4dd;--good: #12854a;--good-soft: #e3f3ea;--bad: #c9302c;--bad-soft: #fdeceb;--r: 16px;--r-sm: 12px;--bar: 60px;--pad: 16px;--sh: 0 1px 2px rgb(16 24 40 / 5%), 0 2px 8px rgb(16 24 40 / 6%);--sh-lift: 0 2px 6px rgb(16 24 40 / 8%), 0 10px 24px rgb(16 24 40 / 10%);--mono: ui-monospace, "DejaVu Sans Mono", "Courier New", monospace;--col: 520px}body{--center: max(var(--pad), calc((100% - var(--col)) / 2))}@media(min-width:760px){:root{--col: 680px}body.wide .actions{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));align-items:start}body.wide .action{min-block-size:92px;align-content:center}}@media(min-width:1100px){body.wide{--col: 1040px}body.wide .card-list.grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));align-items:start}body.wide .card-list.grid-wide{grid-template-columns:repeat(auto-fill,minmax(480px,1fr))}}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid #1668ff;outline-offset:2px}.appbar{position:sticky;inset-block-start:0;z-index:20;display:flex;align-items:center;gap:10px;min-block-size:var(--bar);padding:8px var(--center);padding-block-start:calc(8px + env(safe-area-inset-top));background:var(--ink);color:#fff}.appbar h1{margin:0;font-size:1.06rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appbar .brand{block-size:26px;inline-size:auto;max-inline-size:64px;object-fit:contain;background:#fff;border-radius:6px;padding:2px 4px}.icon-btn{background:#ffffff24;color:#fff;padding:8px 12px;border-radius:999px;font-size:1.05rem;line-height:1}.who{display:inline-block;background:#ffffff24;color:#fff;font-size:.72rem;font-weight:600;padding:6px 11px;border-radius:999px;max-inline-size:45vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.sync{margin-inline-start:auto;font-size:.72rem;opacity:.9;color:inherit;text-decoration:none;white-space:nowrap;padding-inline-start:14px;position:relative;min-inline-size:0;overflow:hidden;text-overflow:ellipsis}.sync:before{content:"";position:absolute;inset-inline-start:0;inset-block-start:50%;transform:translateY(-50%);inline-size:8px;block-size:8px;border-radius:50%;background:#46d17a}.sync.pending:before,.sync.offline:before{background:var(--amber)}.sync.parked:before,.sync.paused:before{background:var(--bad)}main{padding:var(--pad) var(--center);padding-block-end:calc(var(--bar) + 56px + env(safe-area-inset-bottom))}section>*+*{margin-block-start:12px}h2{margin:0;font-size:.86rem;font-weight:700;color:var(--ink-2)}p{margin:0}.meta{font-size:.78rem;color:var(--ink-2);line-height:1.6}.band{margin:0;padding:10px var(--center);background:var(--amber-soft);color:var(--ink);border-block-end:1px solid #f0dcb4;font-size:.85rem;line-height:1.6}.band-link{margin-inline-start:8px;color:inherit;font-weight:700;white-space:nowrap}.band.bad{background:var(--bad-soft);border-block-end-color:#f0cdcb;color:#7d1f1c}.note{font-size:.82rem;color:var(--ink-2);line-height:1.6;border-inline-start:2px solid var(--line);padding-inline-start:8px;margin-block-start:2px}button,input,select,textarea{font:inherit;color:inherit}button{border:0;border-radius:var(--r-sm);padding:12px 16px;background:#e6ebef;font-weight:600;cursor:pointer;transition:transform .06s ease-out,background .15s}button:active{transform:scale(.98)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--amber);color:var(--ink);box-shadow:0 2px 10px #ffb02059}button.primary:active{background:var(--amber-2)}button.primary:disabled{box-shadow:none}button.big{inline-size:100%;padding-block:16px;font-size:1.05rem}button.ghost{background:var(--surface);border:1px solid var(--line)}button.link{background:none;color:var(--ink-2);text-decoration:underline;padding:10px 0}button.danger,a.danger{background:var(--bad-soft);color:var(--bad);border:1px solid #f0cdcb}button.del{background:var(--bad-soft);color:var(--bad);inline-size:44px;block-size:44px;padding:0;font-size:1.3rem;line-height:1}@media(prefers-reduced-motion:reduce){button{transition:none}button:active{transform:none}}.field{display:grid;gap:6px}.field-label{font-size:.78rem;font-weight:700;color:var(--ink-2)}.field-hint{font-size:.76rem;color:var(--ink-2);line-height:1.6}.field-error{font-size:.8rem;font-weight:600;color:var(--bad);line-height:1.6}input[type=text],input[type=password],input[type=number],input[type=tel],input[type=search]{inline-size:100%;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm)}input::placeholder,textarea::placeholder{color:#93a0a8}input:focus,textarea:focus,select:focus{border-color:var(--ink)}input[aria-invalid=true]{border-color:var(--bad)}textarea{inline-size:100%;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);resize:vertical;line-height:1.7}input[type=date]{inline-size:100%;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);font-family:var(--mono)}input.ltr{direction:ltr;text-align:start;font-family:var(--mono);font-variant-numeric:tabular-nums}select{padding:12px 10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);font-weight:600;max-inline-size:100%}.field.narrow input,.field.narrow select{max-inline-size:34rem}.actions{display:grid;gap:12px}.action{position:relative;display:grid;gap:3px;text-align:start;padding-block:18px;padding-inline:18px 44px;background:var(--surface);border:0;border-inline-start:5px solid var(--amber);border-radius:var(--r);box-shadow:var(--sh);inline-size:100%}.action:after,.card-open:after{content:"";position:absolute;inset-inline-end:18px;inset-block-start:50%;inline-size:9px;block-size:9px;border-left:2px solid currentcolor;border-bottom:2px solid currentcolor;transform:translateY(-50%) rotate(45deg);color:var(--ink-2);opacity:.5}.action:active{box-shadow:var(--sh-lift)}.action-title{font-weight:700;font-size:1.1rem}.action-sub{font-size:.8rem;color:var(--ink-2)}.action.lead{background:var(--amber);border-inline-start-color:var(--amber-2)}.action.lead .action-sub{color:#6d4b00}.action.lead:after{color:#6d4b00;opacity:.65}.seg{display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;padding-block:2px;min-inline-size:0}.seg::-webkit-scrollbar{display:none}.seg button{flex:0 0 auto;scroll-snap-align:start;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:9px 14px;font-size:.9rem;white-space:nowrap}.seg button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.seg.tabs button{flex:1 1 0;text-align:center;font-weight:700}.filter-row{display:flex;align-items:center;gap:8px}.filter-row>.filter-label{flex:0 0 auto;font-size:.78rem;font-weight:700;color:var(--ink-2)}.filter-row>.seg{flex:1;min-inline-size:0}.filter-bar{display:flex;gap:8px;align-items:center}.filter-bar input{flex:1;min-inline-size:0}.filter-bar button{flex:0 0 auto;white-space:nowrap}.filter-bar select{flex:0 0 auto;max-inline-size:42%}.filter-bar button.toggle{flex:0 1 auto;min-inline-size:0;overflow:hidden;text-overflow:ellipsis}button.toggle[aria-expanded=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.branch-line{font-weight:700}.date-range{display:flex;gap:8px;flex-wrap:wrap}.date-range label{flex:1 1 44%;display:grid;gap:4px;font-size:.78rem;color:var(--ink-2)}ul.card-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}ul.card-list>li{background:var(--surface);border:1px solid transparent;border-radius:var(--r);box-shadow:var(--sh);padding:14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-inline-size:0}ul.card-list>li.empty{grid-column:1 / -1;background:transparent;border:1px dashed var(--line);box-shadow:none;color:var(--ink-2);justify-content:center;text-align:center;padding-block:26px;line-height:1.7;display:grid;gap:6px}ul.card-list>li.more{background:transparent;box-shadow:none;padding:0;grid-column:1 / -1}ul.card-list>li.more button{inline-size:100%;padding-block:14px}.card-main{flex:1;min-inline-size:0;display:grid;gap:4px}li>.seg,li>.filter-row,li>.date-range,li>.perm-grid{flex:1 0 100%;min-inline-size:0}.card-open{position:relative;flex:1;min-inline-size:0;display:grid;gap:4px;text-align:start;background:transparent;border-radius:0;padding:0;padding-inline-end:24px;font-weight:400;color:inherit;text-decoration:none}.card-open:after{inset-inline-end:4px}.card-title{font-weight:700;font-size:1.02rem;line-height:1.35}.row-actions{display:flex;gap:8px;flex-wrap:wrap;inline-size:100%}.row-actions button.primary,.row-actions a.primary{background:var(--amber)}.row-actions button.danger{background:var(--bad-soft);color:var(--bad)}.row-actions button,.row-actions a{flex:1;min-inline-size:68px;padding:10px 8px;font-size:.88rem;text-align:center;text-decoration:none;border-radius:var(--r-sm);background:#e6ebef;color:var(--ink);font-weight:600}.tag{display:inline-block;margin-inline-start:6px;padding:1px 8px;border-radius:999px;background:var(--bg);color:var(--ink-2);font-size:.74rem;font-weight:700;vertical-align:middle}.tag.ok{background:var(--good-soft);color:var(--good)}.tag.warn{background:var(--amber-soft);color:#8a5a00}.tag.bad{background:var(--bad-soft);color:var(--bad)}ul.card-list>li.exp{border-inline-start-width:6px;border-inline-start-style:solid}ul.card-list>li.exp-ok{border-inline-start-color:var(--good)}ul.card-list>li.exp-near{border-inline-start-color:#dcae00}ul.card-list>li.exp-soon{border-inline-start-color:#e07400}ul.card-list>li.exp-expired{border-inline-start-color:var(--bad)}ul.card-list>li.exp-expired .card-title{color:var(--bad)}ul.card-list>li.ship{border-inline-start-width:6px;border-inline-start-style:solid}ul.card-list>li.ship-new{border-inline-start-color:var(--bad)}ul.card-list>li.ship-loaded{border-inline-start-color:var(--amber-2)}ul.card-list>li.ship-imported{border-inline-start-color:var(--good)}.month-head{font-size:1.2rem;font-weight:700}.counters{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0 0 12px;padding:0;list-style:none}.counters li{min-inline-size:0;padding:8px 6px;border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--sh);text-align:center}.counters b{display:block;font-size:1.3rem;font-variant-numeric:tabular-nums}.counters span{font-size:.7rem;color:var(--ink-2)}.counters li.c-ok b{color:var(--good)}.counters li.c-warn b{color:var(--amber-2)}.counters li.c-bad b{color:var(--bad)}.stamp{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:700;font-size:1.12rem;direction:ltr;border:2px solid var(--ink);border-radius:10px;padding:3px 10px;min-inline-size:54px;text-align:center}.code{font-family:var(--mono);font-size:.76rem;letter-spacing:.03em;color:var(--ink-2);direction:ltr;unicode-bidi:isolate;display:inline-block}.num{font-variant-numeric:tabular-nums}.bottombar{position:fixed;inset-inline:0;inset-block-end:0;z-index:15;display:flex;gap:10px;align-items:center;padding:10px var(--center);padding-block-end:calc(10px + env(safe-area-inset-bottom));background:#ffffffeb;border-block-start:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 -6px 20px #1018280f}.bottombar .grow{flex:1}.bottombar .count{font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:700;color:var(--ink-2);background:var(--bg);padding:8px 12px;border-radius:999px;white-space:nowrap}.bottombar .count:empty{display:none}.bottombar .count.warn{background:var(--amber-soft);color:#8a5a00;white-space:normal}body.sheet-open .bottombar{display:none}.scrim{position:fixed;inset:0;z-index:25;background:#171a1c73;animation:fade .2s ease-out;border:0;padding:0;border-radius:0}@keyframes fade{0%{opacity:0}}.sheet{position:fixed;inset-inline:0;inset-block-end:0;z-index:30;background:var(--surface);border-block-start:1px solid var(--line);border-start-start-radius:22px;border-start-end-radius:22px;padding:16px var(--center) calc(18px + env(safe-area-inset-bottom));box-shadow:0 -14px 44px #0000002e;animation:sheet-up .22s ease-out;max-block-size:88vh;overflow-y:auto}@keyframes sheet-up{0%{transform:translateY(26px);opacity:0}}@media(prefers-reduced-motion:reduce){.sheet,.scrim{animation:none}}.sheet>*+*{margin-block-start:12px}.handle{inline-size:44px;block-size:5px;border-radius:99px;background:var(--line);margin:0 auto}.item-label{font-size:1.15rem;font-weight:700}.item-label.unknown{color:var(--bad)}.warn-box{background:var(--bad-soft);border:1px solid #f0cdcb;border-radius:12px;padding:12px;color:#7d1f1c;font-size:.95rem;line-height:1.5}.warn-box>*+*{margin-block-start:8px}.warn-box button{inline-size:100%}.qty-row{display:flex;gap:12px;align-items:center}.qty-row input{text-align:center;font-family:var(--mono);font-size:1.35rem;font-weight:700}.qty-row button{inline-size:62px;block-size:56px;font-size:1.6rem;padding:0}.perm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.perm-grid button{background:var(--surface);border:1px solid var(--line);font-size:.82rem;padding:10px 8px;text-align:start}.perm-grid button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.perm-grid button[aria-pressed=true]:before{content:"✓ "}.toast-host{position:fixed;inset-block-end:calc(var(--bar) + 26px + env(safe-area-inset-bottom));inset-inline:var(--pad);z-index:40;display:grid;gap:8px;justify-items:center;pointer-events:none}.toast{background:var(--ink);color:#fff;font-weight:600;padding:12px 16px;border-radius:12px;text-align:center;line-height:1.6;box-shadow:var(--sh-lift);max-inline-size:100%;animation:toast-in .25s ease-out}.toast.ok{background:var(--good)}.toast.warn{background:var(--amber-2);color:var(--ink)}.toast.bad{background:var(--bad)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.skeleton{display:grid;gap:10px}.skeleton>span{display:block;block-size:64px;border-radius:var(--r);background:linear-gradient(90deg,#e7ebef 25%,#f2f5f7,#e7ebef 75%);background-size:300% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{to{background-position:-150% 0}}@media(prefers-reduced-motion:reduce){.skeleton>span{animation:none}}.landing{display:grid;gap:16px;justify-items:center;text-align:center;padding-block:32px}.landing-logo{block-size:96px;inline-size:auto;max-inline-size:min(70%,240px);object-fit:contain}.landing h2{font-size:1.6rem;color:var(--ink)}.landing p{line-height:1.9;color:var(--ink-2);max-inline-size:40rem}.landing .primary{inline-size:min(100%,22rem)}.version{margin:0;padding:10px var(--center) calc(10px + env(safe-area-inset-bottom));color:var(--ink-2);font-size:.72rem;text-align:center;line-height:1.7}body:has(.bottombar) .version{padding-block-end:calc(var(--bar) + 26px + env(safe-area-inset-bottom))}.filter-row>select{flex:1;min-inline-size:0}.cap-note{margin:0 0 12px;padding:10px 12px;background:var(--amber-soft);border:1px solid #f0dcb4;border-radius:var(--r-sm);font-size:.85rem;line-height:1.6}.copies{flex:0 0 auto;padding:4px 10px;border-radius:999px;background:var(--bg);font-weight:700;font-size:.95rem;font-variant-numeric:tabular-nums}.lbl{color-scheme:light;forced-color-adjust:none;display:grid;grid-template-rows:auto auto auto 1fr auto;align-items:center;justify-items:center;gap:.4mm;padding:2.4mm 3.2mm;background:#fff;color:#000;text-align:center;overflow:hidden;break-inside:avoid;border-radius:1.5mm;outline:.3mm solid #000;outline-offset:-1.2mm}.lbl-logo{max-block-size:6mm;max-inline-size:70%;object-fit:contain}.lbl-price{font-size:8mm;font-weight:800;line-height:1;direction:ltr}.lbl-cur{font-size:3.2mm;font-weight:700;margin-inline-start:1mm;vertical-align:super}.lbl-name{font-size:3.2mm;font-weight:700;line-height:1.15;overflow:hidden}.lbl-bars{inline-size:100%;block-size:100%;min-block-size:6mm;display:flex;align-items:center}.lbl-svg{inline-size:100%;block-size:100%}.lbl-plain{font-family:var(--mono);font-size:4mm}.lbl-foot{position:relative;inline-size:100%}.lbl-code{font-family:var(--mono);font-size:3mm;direction:ltr}.lbl-date{position:absolute;inset-inline-end:0;inset-block-end:-.5mm;font-size:2.2mm;direction:ltr;opacity:.75}.label-preview{display:flex;justify-content:center;margin-block:12px;overflow-x:auto}.label-preview .lbl{box-shadow:var(--sh);border-radius:2mm}#print-area{display:none}@media print{body>*:not(#print-area){display:none!important}#print-area{display:block}body:not(.print-a4) .lbl+.lbl{break-before:page}body.print-a4 #print-area{display:flex;flex-wrap:wrap;align-content:flex-start}}.scan-block{display:grid;gap:10px}.reader{border-radius:var(--r-sm);overflow:hidden;background:var(--ink);min-block-size:200px}.reader video,.reader img{max-inline-size:100%;display:block}.cam-live{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cam-live button[aria-pressed=true]{background:var(--amber);border-color:var(--amber-2)}.cam-zoom{display:flex;align-items:center;gap:8px;flex:1 1 160px;font-size:.82rem;color:var(--ink-2)}.cam-zoom input{flex:1 1 auto;min-inline-size:0}.cam-res{font-variant-numeric:tabular-nums;font-size:.8rem;color:var(--ink-2)}.scan-manual,.scan-find{display:flex;gap:8px}.scan-manual input,.scan-find input{flex:1 1 auto;min-inline-size:0}.scan-find{display:grid;gap:8px}.suggest-list{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-block-size:42vh;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface)}.suggest-list>li.empty{padding:12px;color:var(--ink-2);font-size:.88rem;text-align:center}button.suggest{inline-size:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;background:transparent;border:0;border-radius:0;padding:12px;text-align:start;font-size:.95rem}button.suggest:active{background:var(--bg)}.suggest-list>li+li button.suggest{border-block-start:1px solid var(--line)}.stock-lines{display:grid;gap:6px}.stock-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}.stock-list>li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:var(--r-sm);background:var(--bg);font-size:.9rem}.stock-list>li.here{background:var(--amber-soft);font-weight:700}.sheet-qty{display:flex;align-items:center;gap:8px;flex:0 0 auto}.sheet-qty input{inline-size:5.5rem;text-align:center}.sheet-state{font-weight:700;color:var(--ink)}
