:root{--bg: #f6f7f9;--surface: #ffffff;--surface-2: #f0f1f4;--text: #16181d;--text-muted: #555c68;--border: #d9dce2;--border-strong: #b5bac4;--accent: #1f3a8a;--accent-text: #ffffff;--accent-soft: #e6ebf8;--focus: #2b59d9;--ok: #166534;--ok-bg: #e7f6ec;--ok-border: #2f9e57;--bad: #a11d1d;--bad-bg: #fdecec;--bad-border: #d64545;--warn: #8a4b06;--warn-bg: #fff4e0;--warn-border: #d98a1c;--info: #1d4ed8;--info-bg: #e8efff;--wait: #6b21a8;--wait-bg: #f3e8ff;--badge-reprint: #1d4ed8;--badge-reorder: #9333ea;--badge-nostock: #b45309;--badge-printed: #4b5563;--pill-bg: rgba(0, 0, 0, .76);--pill-text: #ffffff;--chart-1: #1f3a8a;--chart-2: #2f9e57;--chart-3: #d98a1c;--chart-4: #a11d1d;--chart-5: #8b93a1;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--radius: 8px;--radius-sm: 6px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);--font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--dur-fast: .12s;--dur: .18s;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #0f1115;--surface: #171a21;--surface-2: #222632;--text: #eceef2;--text-muted: #a7adb9;--border: #2c313d;--border-strong: #454c5b;--accent: #7c9cff;--accent-text: #0b1020;--accent-soft: #1d2645;--focus: #9db4ff;--ok: #7ee2a0;--ok-bg: #12301f;--ok-border: #3fb36b;--bad: #ff9a9a;--bad-bg: #3a1616;--bad-border: #e05a5a;--warn: #ffc56b;--warn-bg: #352512;--warn-border: #d98a1c;--info: #9db4ff;--info-bg: #1a2444;--wait: #d7b4ff;--wait-bg: #2c1a44;--badge-reprint: #3b6cf0;--badge-reorder: #a855f7;--badge-nostock: #c46a0c;--badge-printed: #6b7280;--chart-1: #7c9cff;--chart-2: #3fb36b;--chart-3: #e3a03b;--chart-4: #e05a5a;--chart-5: #6b7280;--shadow: none;color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 var(--font)}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}.num,.tabular{font-variant-numeric:tabular-nums}.muted{color:var(--text-muted)}.small{font-size:14px}.mono{font-family:var(--mono);font-size:14px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip{position:absolute;left:-999px;top:0}.skip:focus{left:var(--s2);top:var(--s2);z-index:100;background:var(--surface);padding:var(--s2) var(--s3)}.app-header{position:sticky;top:0;z-index:20;background:var(--surface);border-bottom:1px solid var(--border)}.bar{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) var(--s4);max-width:1440px;margin:0 auto}.brand{font-weight:700;display:flex;align-items:center;gap:var(--s2);white-space:nowrap}.brand svg{color:var(--accent)}.bar .spacer{flex:1}.tabs{display:flex;gap:var(--s1);overflow-x:auto;padding:0 var(--s4);max-width:1440px;margin:0 auto;scrollbar-width:thin}.tab{display:inline-flex;align-items:center;gap:var(--s2);min-height:44px;padding:0 var(--s3);border:0;background:none;border-bottom:3px solid transparent;color:var(--text-muted);text-decoration:none;white-space:nowrap;cursor:pointer;font-weight:500}.tab[aria-current=page]{color:var(--text);border-bottom-color:var(--accent)}.tab:hover{color:var(--text)}main{max-width:1440px;margin:0 auto;padding:var(--s4)}.banner{display:flex;gap:var(--s2);align-items:flex-start;padding:var(--s2) var(--s4);font-size:14px}.banner.warn{background:var(--warn-bg);color:var(--warn)}.banner.bad{background:var(--bad-bg);color:var(--bad)}.banner.info{background:var(--info-bg);color:var(--info)}.banner svg{flex:none;margin-top:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:44px;min-width:44px;padding:0 var(--s4);border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;font-weight:500;transition:background var(--dur-fast),border-color var(--dur-fast);white-space:nowrap;text-decoration:none;color:var(--text)}.btn:hover{background:var(--surface-2)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{color:var(--bad);border-color:var(--bad-border)}.btn.small{min-height:36px;padding:0 var(--s3);font-size:14px}.btn[disabled]{opacity:.55;cursor:not-allowed}.btn-row{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:var(--s4)}.section-title{font-size:18px;font-weight:650;margin:0 0 var(--s3)}h1.page{font-size:22px;margin:0}.page-head{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;justify-content:space-between;margin-bottom:var(--s4)}.grid{display:grid;gap:var(--s3)}.kpis{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.kpi{padding:var(--s3) var(--s4)}.kpi .label{font-size:14px;color:var(--text-muted)}.kpi .value{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2}.kpi .note{font-size:13px;color:var(--text-muted)}.chip{display:inline-flex;align-items:center;gap:var(--s1);padding:2px var(--s2);border-radius:999px;font-size:13px;font-weight:600;border:1px solid currentColor;white-space:nowrap;line-height:1.4}.chip.ok{color:var(--ok);background:var(--ok-bg)}.chip.bad{color:var(--bad);background:var(--bad-bg)}.chip.warn{color:var(--warn);background:var(--warn-bg)}.chip.info{color:var(--info);background:var(--info-bg)}.chip.wait{color:var(--wait);background:var(--wait-bg)}.chip.plain{color:var(--text-muted);background:var(--surface-2);border-color:var(--border)}.field{display:grid;gap:var(--s1)}.field label,.field .label{font-weight:600;font-size:15px}.field .help{font-size:14px;color:var(--text-muted)}.field .error{font-size:14px;color:var(--bad);display:flex;gap:var(--s1);align-items:center}.input{min-height:44px;padding:0 var(--s3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%}.input[aria-invalid=true]{border-color:var(--bad-border)}.switch-row{display:flex;gap:var(--s3);align-items:flex-start;justify-content:space-between;padding:var(--s3) 0;border-bottom:1px solid var(--border)}.switch-row:last-child{border-bottom:0}.switch{position:relative;flex:none;width:52px;height:32px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface-2);cursor:pointer;transition:background var(--dur);padding:0;margin-top:4px}.switch:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:var(--surface);box-shadow:0 1px 2px #0000004d;transition:transform var(--dur)}.switch[aria-checked=true]{background:var(--accent);border-color:var(--accent)}.switch[aria-checked=true]:after{transform:translate(20px)}.switch-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.switch-state{font-size:12px;font-weight:600;color:var(--text-muted)}.progress{height:10px;background:var(--surface-2);border-radius:999px;overflow:hidden;border:1px solid var(--border)}.progress>span{display:block;height:100%;background:var(--accent);transition:width var(--dur)}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:14px}table.data th,table.data td{text-align:left;padding:var(--s2) var(--s3);border-bottom:1px solid var(--border);vertical-align:top}table.data th{font-weight:600;color:var(--text-muted);background:var(--surface-2);position:sticky;top:0}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}table.data tr{content-visibility:auto;contain-intrinsic-size:auto 40px}.empty{text-align:center;padding:var(--s6) var(--s4);color:var(--text-muted)}.empty svg{color:var(--border-strong)}.toast{position:fixed;left:50%;bottom:var(--s5);transform:translate(-50%);background:var(--text);color:var(--surface);padding:var(--s3) var(--s4);border-radius:var(--radius);z-index:50;box-shadow:var(--shadow);max-width:calc(100vw - 32px)}.spinner{width:18px;height:18px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.layout-2{display:grid;gap:var(--s4);grid-template-columns:1fr}@media (min-width: 960px){.layout-2{grid-template-columns:320px 1fr}}.list-btn{display:flex;width:100%;text-align:left;gap:var(--s2);align-items:center;justify-content:space-between;min-height:44px;padding:var(--s2) var(--s3);border:0;border-bottom:1px solid var(--border);background:none;cursor:pointer}.list-btn[aria-current=true]{background:var(--accent-soft)}.log{font-family:var(--mono);font-size:13px;line-height:1.55;background:var(--surface-2);border-radius:var(--radius-sm);padding:var(--s3);max-height:420px;overflow:auto;white-space:pre-wrap;word-break:break-word}.log .warn{color:var(--warn)}.log .error{color:var(--bad)}.log .debug{color:var(--text-muted)}dialog{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);padding:0;width:min(760px,calc(100vw - 32px))}dialog::backdrop{background:#00000073}.dialog-body{padding:var(--s4);display:grid;gap:var(--s3)}.results-text{width:100%;min-height:320px;font-family:var(--mono);font-size:13px;padding:var(--s3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.legend{display:flex;flex-wrap:wrap;gap:var(--s3);font-size:14px}.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:var(--s1);vertical-align:-1px}.cl-head{position:sticky;top:0;z-index:10;background:var(--bg);padding:var(--s2) 0 var(--s3)}.counts{display:flex;flex-wrap:wrap;gap:var(--s4);font-variant-numeric:tabular-nums;font-size:15px;margin:var(--s2) 0}.filters{display:flex;gap:var(--s2);overflow-x:auto;padding-bottom:var(--s1)}.filter{display:inline-flex;gap:var(--s2);align-items:center;min-height:40px;padding:0 var(--s3);border-radius:999px;border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;white-space:nowrap;font-size:14px;font-weight:500}.filter[aria-pressed=true]{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.filter .n{font-variant-numeric:tabular-nums;opacity:.85}.order-card{margin-bottom:var(--s3);content-visibility:auto;contain-intrinsic-size:auto 400px}.order-head{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;padding:var(--s3) var(--s4);border-bottom:1px solid var(--border)}.order-head .no{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.order-head .tally{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--text-muted);font-size:14px}.order-actions{display:flex;flex-wrap:wrap;gap:var(--s2);padding:var(--s2) var(--s4);border-bottom:1px solid var(--border);background:var(--surface-2)}.state-btn[aria-pressed=true]{background:var(--ok-bg);border-color:var(--ok-border);color:var(--ok)}.size-sec{padding:var(--s3) var(--s4)}.size-sec h3{font-size:15px;margin:0 0 var(--s2);display:flex;gap:var(--s2);align-items:center}.count-pill{font-size:12px;padding:0 var(--s2);border-radius:999px;background:var(--surface-2);border:1px solid var(--border);font-variant-numeric:tabular-nums}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:var(--s2)}.tile{border:2px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);overflow:hidden;display:flex;flex-direction:column;transition:background var(--dur),border-color var(--dur)}.tile.done{border-color:var(--ok-border);background:var(--ok-bg)}.tile.missing{border-color:var(--bad-border);background:var(--bad-bg)}.thumb{position:relative;aspect-ratio:3 / 4;background:var(--surface-2)}.thumb img{width:100%;height:100%;object-fit:contain;display:block}.thumb .ph{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;padding:var(--s2);font-size:12px;color:var(--text-muted)}.tag{position:absolute;left:4px;bottom:4px;background:var(--pill-bg);color:var(--pill-text);font-size:11px;font-weight:600;padding:1px 6px;border-radius:4px;font-variant-numeric:tabular-nums}.badge{position:absolute;right:4px;top:4px;color:#fff;font-size:10px;font-weight:700;letter-spacing:.03em;padding:1px 5px;border-radius:4px}.badge.reprint{background:var(--badge-reprint)}.badge.reorder{background:var(--badge-reorder)}.badge.nostock{background:var(--badge-nostock)}.badge.printed{background:var(--badge-printed)}.split{position:absolute;left:4px;top:4px;background:var(--pill-bg);color:var(--pill-text);font-size:11px;padding:1px 6px;border-radius:4px}.tile-meta{padding:4px 6px 0;font-size:12px;line-height:1.35;min-height:20px}.tile-meta .dpi{font-weight:600;font-variant-numeric:tabular-nums}.tile-btns{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:6px}.vbtn{min-height:44px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;font-size:13px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:2px;padding:0 2px}.vbtn.done[aria-pressed=true]{background:var(--ok-border);border-color:var(--ok-border);color:#fff}.vbtn.missing[aria-pressed=true]{background:var(--bad-border);border-color:var(--bad-border);color:#fff}.audit-panel{position:fixed;right:0;top:0;bottom:0;width:min(420px,100vw);background:var(--surface);border-left:1px solid var(--border);z-index:40;display:flex;flex-direction:column;box-shadow:-4px 0 16px #0000001f}.audit-panel header{display:flex;align-items:center;gap:var(--s2);padding:var(--s3) var(--s4);border-bottom:1px solid var(--border)}.audit-panel .body{overflow:auto;padding:var(--s2) var(--s4);flex:1}.audit-row{padding:var(--s2) 0;border-bottom:1px solid var(--border);font-size:14px}.pending-bar{position:sticky;bottom:0;z-index:15}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:0ms!important;animation-duration:0ms!important}}@media print{:root{--bg: #fff;--surface: #fff;--border: #bbb;--text: #000;color-scheme:light}.app-header,.tabs,.banner,.no-print,.filters,.tile-btns,.order-actions button,.toast,.audit-panel,.pending-bar{display:none!important}.cl-head{position:static}.order-card{break-inside:avoid;box-shadow:none;border-color:#bbb;content-visibility:visible}main{padding:0}}
