:root{--bg: #f1f5f9;--surface: #ffffff;--surface-2: #f8fafc;--border: #e2e8f0;--text: #0f172a;--text-muted: #64748b;--brand: #0f172a;--accent: #16a34a;--accent-dark: #15803d;--warn: #d97706;--danger: #dc2626;--info: #2563eb;--radius: 12px;--shadow: 0 1px 2px rgb(15 23 42 / .06), 0 4px 12px rgb(15 23 42 / .04);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;overscroll-behavior-y:contain}button,input,select,textarea{font:inherit;color:inherit}.app{min-height:100%;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;background:var(--brand);color:#fff;padding:12px 16px calc(12px + env(safe-area-inset-top,0px));display:flex;align-items:center;gap:12px}.topbar h1{font-size:17px;font-weight:650;margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .who{font-size:12px;opacity:.75;text-align:right;line-height:1.2}.content{flex:1;padding:12px 12px calc(84px + var(--safe-bottom));max-width:900px;width:100%;margin:0 auto}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;background:var(--surface);border-top:1px solid var(--border);padding-bottom:var(--safe-bottom)}.tabbar a{flex:1;padding:10px 4px 12px;text-align:center;text-decoration:none;color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.02em}.tabbar a.active{color:var(--accent-dark);box-shadow:inset 0 2px 0 var(--accent)}.tabbar .glyph{display:block;font-size:20px;line-height:1.2}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px;margin-bottom:10px}.card.tap{display:block;width:100%;text-align:left;cursor:pointer;border-left:4px solid transparent}.card.tap:active{background:var(--surface-2)}.card.s-PENDING{border-left-color:var(--text-muted)}.card.s-IN_PROGRESS{border-left-color:var(--info)}.card.s-PAUSED{border-left-color:var(--warn)}.card.s-AWAITING_REVIEW{border-left-color:#a855f7}.card.s-FINISHED{border-left-color:var(--accent)}.card.s-CANCELED{border-left-color:var(--danger)}.row{display:flex;align-items:center;gap:10px}.row.between{justify-content:space-between}.grow{flex:1;min-width:0}.muted{color:var(--text-muted);font-size:13px}.code{font-variant-numeric:tabular-nums;font-weight:700;font-size:18px}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);white-space:nowrap}.chip.pending{background:#f1f5f9;color:#475569}.chip.progress{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}.chip.paused{background:#fef3c7;color:#b45309;border-color:#fde68a}.chip.review{background:#f3e8ff;color:#7e22ce;border-color:#e9d5ff}.chip.done{background:#dcfce7;color:#15803d;border-color:#bbf7d0}.chip.danger{background:#fee2e2;color:#b91c1c;border-color:#fecaca}.chip.weighable{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.btn{min-height:48px;padding:0 16px;border-radius:10px;border:1px solid var(--border);background:var(--surface);font-weight:650;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;touch-action:manipulation}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn.primary{background:var(--accent);border-color:var(--accent-dark);color:#fff}.btn.dark{background:var(--brand);border-color:var(--brand);color:#fff}.btn.danger{background:#fff;border-color:#fecaca;color:var(--danger)}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-muted)}.btn.block{width:100%}.btn.sm{min-height:38px;padding:0 10px;font-size:14px}.actionbar{position:fixed;left:0;right:0;bottom:0;z-index:25;background:var(--surface);border-top:1px solid var(--border);padding:10px 12px calc(10px + var(--safe-bottom));display:flex;gap:8px;max-width:900px;margin:0 auto}.actionbar .btn{flex:1}.item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin-bottom:8px}.item.removed{opacity:.62;background:var(--surface-2)}.item.removed .item-name{text-decoration:line-through}.item.adjusted{border-color:#fed7aa;background:#fffbf5}.item.separated{border-color:#bbf7d0}.item-name{font-weight:620;line-height:1.3}.item-meta{font-size:12px;color:var(--text-muted);margin-top:2px}.stepper{display:flex;align-items:stretch;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface)}.stepper button{width:48px;border:0;background:var(--surface-2);font-size:22px;font-weight:700;color:var(--text);cursor:pointer}.stepper button:active{background:var(--border)}.stepper input{width:92px;border:0;border-left:1px solid var(--border);border-right:1px solid var(--border);text-align:center;font-variant-numeric:tabular-nums;font-weight:700;font-size:17px;padding:10px 4px;min-width:0}.stepper input:focus{outline:2px solid var(--info);outline-offset:-2px}.qty-original{font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.qty-original s{color:var(--danger)}.field{margin-bottom:12px}.field label{display:block;font-size:13px;font-weight:620;margin-bottom:5px;color:var(--text-muted)}.field input,.field select,.field textarea{width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.field textarea{min-height:84px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--info);outline-offset:-1px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#0f172a73;display:flex;align-items:flex-end;justify-content:center}@media(min-width:640px){.overlay{align-items:center}}.sheet{background:var(--surface);width:100%;max-width:520px;border-radius:16px 16px 0 0;padding:16px 16px calc(16px + var(--safe-bottom));max-height:88vh;overflow-y:auto}@media(min-width:640px){.sheet{border-radius:16px}}.sheet h2{margin:0 0 4px;font-size:18px}.reason-option{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:14px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);margin-bottom:8px;cursor:pointer}.reason-option.selected{border-color:var(--accent);background:#f0fdf4;box-shadow:inset 0 0 0 1px var(--accent)}.banner{border-radius:10px;padding:10px 12px;font-size:14px;margin-bottom:10px;border:1px solid}.banner.warn{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.banner.error{background:#fef2f2;border-color:#fecaca;color:#991b1b}.banner.info{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}.empty{text-align:center;padding:48px 16px;color:var(--text-muted)}.empty .glyph{font-size:44px;display:block;margin-bottom:8px;opacity:.5}.filters{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px;margin-bottom:4px;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filter{flex:0 0 auto;padding:8px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-size:13px;font-weight:620;cursor:pointer;white-space:nowrap}.filter.active{background:var(--brand);border-color:var(--brand);color:#fff}.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px}@media(min-width:640px){.kpis{grid-template-columns:repeat(4,1fr)}}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.kpi .value{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.15}.kpi .label{font-size:12px;color:var(--text-muted);margin-top:2px}.kpi.alert .value{color:var(--danger)}.timeline{list-style:none;padding:0;margin:0}.timeline li{padding:10px 0 10px 16px;border-left:2px solid var(--border);position:relative}.timeline li:before{content:"";position:absolute;left:-5px;top:16px;width:8px;height:8px;border-radius:50%;background:var(--text-muted)}.timeline li.hl:before{background:var(--warn)}.login-wrap{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--brand)}.login-card{background:var(--surface);border-radius:16px;padding:24px;width:100%;max-width:380px;box-shadow:0 20px 40px #00000040}.spin{text-align:center;padding:40px;color:var(--text-muted)}.table{width:100%;border-collapse:collapse;font-size:14px}.table th,.table td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--border)}.table th{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums}
