:root{--indigo: #1e2a44;--label: #f2c230;--bg: #e8ecef;--surface: #ffffff;--ink: #17202a;--muted: #5d6b78;--line: #d5dce3;--primary: #0f6e6c;--primary-ink: #ffffff;--success: #12823b;--danger: #c2412d;--warning: #a35f00;--info: #31597d;--test: #7b3fb5;--card-head: #f6f8fa;--radius: 12px;--tap: 60px;--ui: "Segoe UI Variable Text", "Segoe UI", "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans SC", "Noto Sans Arabic", Tahoma, Arial, sans-serif;--display: "Bahnschrift", "DIN Alternate", "Segoe UI", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans SC", sans-serif;--mono: "Consolas", "Cascadia Mono", "Microsoft YaHei UI", ui-monospace, monospace;--label-ink: #364350;--sub-ink: #66727f;font-family:var(--ui);color:var(--ink);background:var(--bg);-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg)}body{font-size:18px;overflow-x:hidden;user-select:none}input,textarea{user-select:text}button{font:inherit;cursor:pointer}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:12px;padding:8px 16px;min-height:64px;background:var(--indigo);color:#fff;position:sticky;top:0;z-index:20}.topbar .brand{font-family:var(--display);font-weight:600;font-size:22px;letter-spacing:1px;text-transform:uppercase}.topbar .grow{flex:1;min-width:0}.topbar .crumb{font-size:18px;opacity:.95;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#ffffff1f;font-size:14px;white-space:nowrap}.chip.test{background:var(--test);font-weight:700}.dot{width:10px;height:10px;border-radius:50%;background:#9aa6b2;display:inline-block}.dot.ok{background:#36d17a}.dot.bad{background:#ff5c5c}.tbtn{min-height:48px;min-width:48px;padding:0 14px;border-radius:10px;border:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;font-size:16px}.tbtn:active{background:#ffffff26}.page{flex:1;padding:16px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.card>.head{padding:10px 14px;background:var(--card-head);border-bottom:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0;font-weight:600;color:var(--muted)}.sub{display:block;font-size:.72em;color:var(--muted);font-weight:400;line-height:1.2}.btn{min-height:var(--tap);padding:0 20px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:20px;font-weight:600;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.btn:active{transform:scale(.98)}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.btn.success{background:var(--success);border-color:var(--success);color:#fff}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.ghost{background:transparent}.btn[disabled]{opacity:.45;pointer-events:none}.btn .sub{color:inherit;opacity:.8}.title{font-size:24px;font-weight:700;margin:4px 0 14px}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.tile{min-height:150px;border-radius:16px;border:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;justify-content:flex-end;padding:14px;position:relative;overflow:hidden;font-size:22px;font-weight:700;text-align:start}.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.28}.tile span{position:relative}.tile.big{min-height:180px;font-size:26px}.tile.record{background:#e6f4ea;border-color:#9fd3ae}.center-box{max-width:560px;margin:40px auto;padding:24px}.field-label{font-size:15px;font-weight:600;color:var(--muted);margin-bottom:4px;display:block}.input{width:100%;min-height:var(--tap);border-radius:10px;border:2px solid var(--line);padding:0 14px;font-size:24px;background:#fff;color:var(--ink)}.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #0b5cad26}.stack>*+*{margin-top:14px}.record{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px;align-items:start;grid-template-areas:"main side" "hist side"}.record>.main{grid-area:main;min-width:0}.record>.side{grid-area:side}.record>.hist{grid-area:hist;min-width:0}@media(max-width:1100px){.record{grid-template-columns:1fr;grid-template-areas:"main" "side" "hist"}.record>.side{position:static}}.next-banner{padding:14px 18px;border-radius:var(--radius);font-size:26px;font-weight:700;margin-bottom:14px;background:#fff4d6;border:2px solid #f0c24b;display:flex;align-items:center;gap:12px}.next-banner.ready{background:#e3f6e8;border-color:#4bb26b}.next-banner.saving{background:#e5effa;border-color:#5b8fd1}.next-banner.bad{background:#fde8e8;border-color:#e07070}.sections>.card{margin-bottom:14px}.grid12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;padding:14px}.cell{min-width:0}.info{min-height:56px;border-radius:10px;background:#f3f5f7;padding:8px 12px;font-size:20px;font-weight:600;overflow-wrap:anywhere;display:flex;align-items:center;border:2px solid transparent}.info.empty{color:#9aa6b2;font-weight:400}.cell.focus .input{border-color:var(--primary)}.cell.missing .input,.cell.missing .info{border:2px solid var(--danger)}.cell .input.big{font-size:34px;font-weight:700;min-height:76px}.live{font-size:13px;color:var(--success);font-weight:600}.live.off{color:#9aa6b2}.side{position:sticky;top:80px;display:flex;flex-direction:column;gap:12px}.confirm{min-height:96px;font-size:30px}.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.numpad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px}.numpad .btn{min-height:64px;font-size:28px}.scanbox{display:flex;gap:8px;padding:10px}.scanbox .input{font-size:20px}.log{max-height:160px;overflow:auto;font-size:14px;padding:8px 12px;color:var(--muted)}.log div{padding:2px 0;border-bottom:1px dashed #e3e7eb}.history{margin-top:4px}.hrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:12px 14px;border-top:1px solid var(--line);align-items:center}.hrow:first-of-type{border-top:0}.hmain{font-size:20px;font-weight:700}.hmeta{font-size:15px;color:var(--muted);margin-top:2px;display:flex;flex-wrap:wrap;gap:4px 14px}.hbtns{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.hbtns .btn{min-height:52px;font-size:16px;padding:0 14px}.tag{font-size:13px;padding:2px 8px;border-radius:6px;background:#eef1f4}.tag.imported{background:#e3f6e8;color:var(--success)}.overlay{position:fixed;inset:0;background:#0f192373;z-index:40;display:flex;align-items:center;justify-content:center}.dialog{background:#fff;border-radius:16px;padding:24px;width:min(520px,92vw);text-align:center}.dialog .big{font-size:28px;font-weight:700;margin-bottom:8px}.dialog .btns{display:flex;gap:12px;justify-content:center;margin-top:18px}.spinner{width:56px;height:56px;border-radius:50%;border:6px solid #d8e3ef;border-top-color:var(--primary);animation:spin 1s linear infinite;margin:0 auto 12px}@keyframes spin{to{transform:rotate(360deg)}}.toasts{position:fixed;top:76px;inset-inline-end:16px;z-index:50;display:flex;flex-direction:column;gap:10px;width:min(460px,92vw)}.toast{padding:14px 16px;border-radius:12px;color:#fff;font-size:20px;font-weight:600;box-shadow:0 6px 20px #0000002e}.toast.success{background:var(--success)}.toast.danger{background:var(--danger)}.toast.warning{background:var(--warning)}.toast.info{background:var(--info)}.toast .sub{color:#fff;opacity:.85}[dir=rtl] .hbtns{justify-content:flex-start}.num{direction:ltr;unicode-bidi:isolate}.next-banner{background:var(--label);border:0;border-inline-start:10px solid var(--indigo);color:var(--indigo);font-family:var(--display);letter-spacing:.3px}.next-banner .sub{color:var(--indigo);opacity:.75}.next-banner.ready{background:#bfe3d2;border-inline-start-color:var(--success)}.next-banner.saving{background:#cfe0ef;border-inline-start-color:var(--primary)}.next-banner.bad{background:#f6d2c9;border-inline-start-color:var(--danger)}.cell .input.big{font-family:var(--display);font-size:46px;font-weight:600;min-height:84px;letter-spacing:2px;background:var(--indigo);color:#f4f7fb;border-color:var(--indigo);text-align:end}.cell.focus .input.big{box-shadow:0 0 0 4px var(--label)}.hmain,.info.num{font-family:var(--mono);letter-spacing:.5px}.title,.dialog .big{font-family:var(--display)}.confirm{font-family:var(--display);letter-spacing:1px}.choices{display:flex;flex-wrap:wrap;gap:8px}.choices .btn{min-height:56px;font-size:18px}.hlabel{color:var(--muted);font-size:13px}:focus-visible{outline:3px solid var(--label);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.split-row.on{background:#fff8de}.split-qty{width:130px;min-height:52px;font-size:22px;text-align:end}.dialog .btns{flex-wrap:wrap}.dialog{max-height:92vh;overflow-y:auto;overscroll-behavior:contain}@media(max-width:700px){body{font-size:16px}.topbar{flex-wrap:wrap;gap:6px;padding:6px 10px;min-height:0}.topbar .brand{font-size:17px}.topbar .grow{order:10;flex-basis:100%}.topbar .crumb{font-size:15px}.chip{font-size:12px;padding:4px 8px}.tbtn{min-height:40px;min-width:40px;padding:0 10px;font-size:14px}.page{padding:10px 10px 96px}.title{font-size:20px}.tiles{grid-template-columns:1fr 1fr;gap:10px}.tile.big{min-height:110px;font-size:19px}.next-banner{font-size:20px;padding:10px 12px;border-inline-start-width:6px}.grid12{gap:10px;padding:10px}.cell{grid-column:span 12!important}.cell .input.big{font-size:36px;min-height:68px}.side .numpad{display:none}.side .confirm{position:fixed;inset-inline:0;bottom:0;z-index:30;border-radius:0;min-height:76px;font-size:24px;box-shadow:0 -4px 16px #0000002e}.hrow{grid-template-columns:1fr}.hbtns,[dir=rtl] .hbtns{justify-content:flex-start}.hbtns .btn{min-height:46px}.dialog{padding:16px}.dialog .tiles{grid-template-columns:repeat(2,minmax(0,1fr))!important}.dialog .tiles .btn,.dialog .hbtns .btn{min-height:52px;font-size:16px;padding:0 10px}.dialog .big{font-size:22px}.dialog .row2{grid-template-columns:1fr 1fr!important}.toasts{top:8px;inset-inline:10px;width:auto}.center-box{margin:16px auto;padding:16px}}html{text-rendering:optimizeLegibility}body{line-height:1.4}html[lang=ar] body{line-height:1.6}.num,.input,.info,.hmeta b,.split-qty{font-variant-numeric:tabular-nums}.sub{font-size:12.5px;font-weight:400;color:var(--sub-ink);line-height:1.3;letter-spacing:0}.field-label{font-size:16px;font-weight:600;color:var(--label-ink);line-height:1.25;margin-bottom:6px}.field-label .sub{margin-top:1px}html[lang=ar] .field-label{font-size:17px}.info{font-size:21px;font-weight:600;color:var(--ink)}.input{font-size:23px;font-weight:600}.card>.head{font-family:var(--display);font-stretch:87.5%;font-size:16px;font-weight:600;letter-spacing:.4px;color:var(--indigo);border-inline-start:4px solid var(--indigo)}.card>.head .sub{display:inline;font-family:var(--ui);font-stretch:normal;letter-spacing:0}.next-banner{font-size:26px;font-weight:700;line-height:1.2}.next-banner .sub{font-family:var(--ui);font-size:15px;font-weight:500;margin-top:2px}.btn{font-weight:600;line-height:1.15}.btn .sub{font-size:12.5px;font-weight:400;margin-top:3px}.confirm{font-weight:700}.confirm .sub{font-size:15px;letter-spacing:.5px}.tile span{font-weight:700}.tile .sub{font-size:14px;font-weight:400}.hmain{font-size:21px;font-weight:700;color:var(--ink)}.hmeta{font-size:15px;color:var(--ink)}.hmeta b{font-weight:600}.hlabel{font-size:12.5px;font-weight:500;color:var(--sub-ink)}.title{font-weight:600;letter-spacing:.3px}.toast{font-weight:600;line-height:1.3}.chip{font-weight:500}
