:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#102238;background:#f2f6f9;--blue:#123c69;--line:#d8e1e8;--green:#19723a;--red:#b42318;--amber:#9a6700}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:#f2f6f9;padding-bottom:88px}
.topbar{background:linear-gradient(135deg,var(--blue),#1b558a);color:#fff;padding:calc(16px + env(safe-area-inset-top)) max(18px,calc((100% - 920px)/2)) 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;box-shadow:0 4px 18px #123c6929}
.eyebrow{margin:0 0 3px;font-size:11px;letter-spacing:.14em;font-weight:800;opacity:.72}
.topbar h1,.section-heading h2,.scanner-head h2{margin:0;font-size:24px}
.ghost{border:1px solid #ffffff55;background:#ffffff16;color:#fff;border-radius:12px;padding:11px 14px;font-weight:750}
.ghost.dark{color:#24415f;border-color:#c7d3dd;background:#fff;width:100%}
main{width:min(920px,100%);margin:auto;padding:18px}
.view{display:none}
.view.active{display:block}
.scan-panel,.product-card,.empty-card,.summary-grid>div,.difference-card{background:#fff;border:1px solid #e1e8ed;border-radius:18px;box-shadow:0 4px 14px #16324f0a}
.scan-panel{padding:14px;margin-bottom:16px}
.scan-btn{width:100%;border:0;border-radius:15px;background:#1b568b;color:#fff;display:flex;align-items:center;justify-content:center;gap:12px;padding:15px;box-shadow:0 7px 16px #1b568b2b}
.scan-btn strong,.scan-btn small{display:block;text-align:left}
.scan-btn strong{font-size:17px}
.scan-btn small{opacity:.78;margin-top:2px}
.scan-icon{font-size:29px}
.search-label{display:block;margin:15px 2px 7px;font-size:12px;font-weight:800;color:#52677d}
.search-wrap{display:flex;align-items:center;border:2px solid #d9e3ea;border-radius:13px;background:#fbfdfe;padding:0 10px;gap:8px}
.search-wrap:focus-within{border-color:#2b6fa7;box-shadow:0 0 0 3px #2b6fa71a}
.search-wrap input{border:0;outline:0;background:transparent;min-width:0;flex:1;padding:13px 0;font-size:16px}
.search-wrap button,.icon-btn{border:0;background:transparent;font-size:25px;color:#6a7d8f}
.search-results{margin-top:8px;border:1px solid var(--line);border-radius:13px;max-height:300px;overflow:auto}
.fast-scan{display:flex;align-items:center;gap:8px;margin:12px 2px 0;font-size:12px;font-weight:750;color:#52677d;line-height:1.35}
.fast-scan input{width:18px;height:18px;flex:none;margin:0}
.no-qr-button{width:100%;grid-column:1/-1;margin-top:11px;border:2px solid #9a6700;background:#fff8df;color:#765000;border-radius:13px;padding:12px;font-size:14px;font-weight:850}
.no-qr-button span{font-weight:700}
.no-qr-panel{margin:0 0 16px;padding:15px;background:#fff;border:2px solid #e2c367;border-radius:16px}
.no-qr-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}
.no-qr-head h3{margin:0;color:#674900;font-size:17px}
.no-qr-head p{margin:5px 0 0;color:#6f6651;font-size:12px;line-height:1.4}
.no-qr-head button{border:0;background:transparent;color:#756b56;font-size:27px;line-height:1}
.no-qr-list{max-height:410px;overflow:auto;margin-top:10px;border:1px solid #e3ddd0;border-radius:12px}
.no-qr-item{width:100%;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;border:0;border-bottom:1px solid #ece6d9;background:#fff;padding:11px;text-align:left}
.no-qr-item:last-child{border-bottom:0}
.no-qr-item strong,.no-qr-item small{display:block}
.no-qr-item strong{font-size:13px;color:#243b50}
.no-qr-item small{margin-top:3px;color:#6c7d8b}
.no-qr-status{border-radius:999px;background:#edf1f4;color:#5b6d7b;padding:6px 8px;font-size:11px;font-weight:850;white-space:nowrap}
.no-qr-status.done{background:#fff0c7;color:#8a5b00}
.progress-panel{margin:0 0 16px;padding:13px 15px;background:#fff;border:1px solid #dce6ed;border-radius:16px}
.progress-panel>div:first-child{display:flex;justify-content:space-between;gap:12px;color:#284b68;font-size:13px}
.progress-track{height:9px;background:#dce7ee;border-radius:999px;overflow:hidden;margin-top:9px}
.progress-track i{display:block;width:0;height:100%;background:#19723a;border-radius:inherit;transition:width .25s}
.result-btn{width:100%;border:0;border-bottom:1px solid #e8edf1;background:#fff;padding:12px;text-align:left}
.result-btn:last-child{border:0}
.result-btn strong,.result-btn small{display:block}
.result-btn strong{font-size:14px}
.result-btn small{color:#66798c;margin-top:3px}
.empty-card{text-align:center;padding:40px 24px;color:#567}
.empty-card h2,.empty-card h3{color:#183653;margin:8px 0}
.empty-card p{margin:0;line-height:1.5}
.empty-icon{font-size:45px;color:#2a6599}
.compact{padding:28px 20px}
.product-card{padding:17px}
.product-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.product-heading h2{font-size:19px;line-height:1.28;margin:4px 0 0}
.code{font:700 12px ui-monospace,monospace;color:#587085;margin:0}
.stock-grid{display:grid;grid-template-columns:repeat(3,1fr);margin:18px 0;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.stock-grid div{padding:12px 9px;border-right:1px solid var(--line);background:#f8fbfd}
.stock-grid div:last-child{border:0;background:#eaf4fb}
.stock-grid span,.difference-row span{display:block;font-size:11px;color:#617589;font-weight:700}
.stock-grid strong{display:block;font-size:22px;margin-top:3px}
.difference-row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 2px;margin-bottom:16px}
.difference-row strong{font-size:26px}
.diff{font-weight:850;border-radius:999px;padding:9px 12px}
.diff.neutral{background:#e8eef3;color:#516474}
.diff.ok{background:#dff4e5;color:var(--green)}
.diff.short{background:#ffe2df;color:var(--red)}
.diff.over{background:#fff0c7;color:var(--amber)}
.entry-form label{display:block;font-size:13px;font-weight:800;color:#334e68;margin-top:12px}
.entry-form label span{font-weight:500;color:#7b8c9b}
.entry-form>label>input{width:100%;border:2px solid #d9e3ea;border-radius:12px;padding:13px;margin-top:6px;font-size:16px}
.qty-control{display:grid;grid-template-columns:52px 1fr 52px;gap:8px;margin-top:6px}
.qty-control button{border:0;background:#e5eef6;color:#174d7b;border-radius:12px;font-size:28px;font-weight:700}
.qty-control input{min-width:0;text-align:center;border:2px solid #b8cbd9;border-radius:12px;font-size:23px;font-weight:800;padding:11px}
.primary{border:0;background:#19723a;color:#fff;border-radius:13px;padding:14px 18px;font-size:16px;font-weight:850;margin-top:15px;width:100%;box-shadow:0 6px 14px #19723a25}
.entries{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}
.entries h3{font-size:14px;margin:0 0 8px}
.entry-item{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;background:#f5f8fa;border-radius:11px;padding:10px;margin-top:7px}
.entry-item span{font-size:13px;color:#567}
.entry-item strong{font-size:18px}
.entry-item button{min-width:56px;min-height:44px;border:1px solid #c93039;border-radius:10px;background:#fff2f2;color:#a71924;font-size:15px;font-weight:800}
.section-heading{display:flex;align-items:center;justify-content:space-between;margin:4px 2px 12px}
.count-pill{background:#dce8f2;color:#234f75;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800}
.helper{color:#667b8e;font-size:13px;margin:-4px 2px 14px}
.difference-list{display:grid;gap:10px}
.difference-card{padding:14px}
.difference-top{display:flex;justify-content:space-between;gap:10px;align-items:start}
.difference-card h3{font-size:15px;margin:4px 0}
.difference-card .stocks{font-size:12px;color:#627689;margin:9px 0}
.difference-card textarea{width:100%;border:1px solid #cfdbe4;border-radius:10px;padding:10px;resize:vertical;min-height:42px;font:inherit}
.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.summary-grid>div{padding:16px}
.summary-grid span{display:block;color:#617589;font-size:12px;font-weight:700}
.summary-grid strong{display:block;font-size:30px;margin-top:4px}
.history-panel{margin-top:16px;padding:15px;background:#fff;border:1px solid #dce6ed;border-radius:16px}
.history-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.history-head h3{margin:0;font-size:17px}
.history-head p{margin:5px 0 0;font-size:12px;line-height:1.4;color:#617589}
.history-head button{flex:none;border:1px solid #1b568b;background:#fff;color:#174f80;border-radius:10px;padding:9px;font-size:12px;font-weight:800}
.history-list{display:grid;gap:8px;margin-top:13px}
.history-item{border:1px solid #dce5eb;border-radius:12px;padding:11px;background:#f8fbfd}
.history-item h4{margin:0;font-size:14px;color:#183653}
.history-status{display:inline-block;margin-left:6px;border-radius:999px;background:#dff4e5;color:#19723a;padding:3px 7px;font-size:10px;font-weight:850}
.history-item p{margin:5px 0 9px;font-size:12px;color:#617589}
.history-actions{display:grid;grid-template-columns:1fr 1fr auto;gap:7px}
.history-actions button{border:1px solid #bfcfda;background:#fff;color:#244f72;border-radius:9px;padding:9px 5px;font-size:12px;font-weight:800}
.history-actions .history-delete{color:#a52921;border-color:#e1b8b5}
.history-empty{color:#738596;font-size:13px;text-align:center;margin:16px 0 3px}
.import-panel{margin-top:16px;padding:15px;background:#fff;border:1px solid #dce6ed;border-radius:16px}
.import-panel h3{margin:0 0 5px;font-size:17px}
.import-panel p{font-size:13px;color:#617589;margin:5px 0}
.import-panel .outline-button{margin-top:10px}
.import-check{display:flex;align-items:flex-start;gap:9px;margin-top:14px;font-size:13px;font-weight:700;line-height:1.35}
.import-check input{width:18px;height:18px;flex:none;margin:0}
.import-panel .import-help{margin-top:11px;font-size:12px}
.safety-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 16px}
.safety-actions button{border:1px solid #c5d3de;background:#fff;color:#244f72;border-radius:11px;padding:11px 7px;font-size:12px;font-weight:800}
.safety-actions button:disabled{opacity:.45}
.finish-count{width:100%;border:0;background:#174f80;color:#fff;border-radius:13px;padding:14px 18px;font-size:16px;font-weight:850;margin:0 0 16px;box-shadow:0 6px 14px #174f8028}
.full{margin-top:18px}
.danger-link{border:0;background:transparent;color:#a52921;text-decoration:underline;width:100%;padding:18px}
.privacy{text-align:center;color:#738596;font-size:12px}
.bottom-nav{position:fixed;z-index:10;left:0;right:0;bottom:0;padding:8px max(12px,calc((100% - 650px)/2)) calc(8px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #dce4ea;display:grid;grid-template-columns:repeat(4,1fr);box-shadow:0 -5px 20px #1c3b5720}
.bottom-nav button{position:relative;border:0;background:transparent;color:#6d7f8e;font-weight:750;padding:6px}
.bottom-nav button>span{display:block;font-size:22px;line-height:1}
.bottom-nav button.active{color:#174f80}
.bottom-nav b{position:absolute;top:0;background:#c7281c;color:#fff;border-radius:999px;min-width:18px;padding:2px 5px;font-size:10px}
dialog{width:min(560px,calc(100% - 24px));border:0;border-radius:20px;padding:17px;background:#fff}
dialog::backdrop{background:#0b1e30d9}
.scanner-head{display:flex;justify-content:space-between;align-items:center}
.camera-box{position:relative;background:#09131d;border-radius:15px;overflow:hidden;aspect-ratio:4/3;margin:15px 0}
.camera-box video{width:100%;height:100%;object-fit:cover}
.scan-line{position:absolute;left:10%;right:10%;top:50%;height:2px;background:#ff3b30;box-shadow:0 0 10px #ff3b30;animation:scan 1.8s ease-in-out infinite}
@keyframes scan{50%{transform:translateY(90px)}
}
#scannerStatus{text-align:center;color:#536b80}
#toast{position:fixed;z-index:30;left:50%;bottom:96px;transform:translate(-50%,20px);background:#102c45;color:#fff;border-radius:11px;padding:11px 16px;opacity:0;pointer-events:none;transition:.2s;white-space:nowrap;max-width:calc(100% - 30px);overflow:hidden;text-overflow:ellipsis}
#toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:700px){main{padding:24px}
.product-card{padding:24px}
.scan-panel{display:grid;grid-template-columns:230px 1fr;column-gap:14px;align-items:end}
.scan-btn{grid-row:1/3;height:100%}
.search-label{margin-top:0}
.search-results,.fast-scan{grid-column:2}
.difference-list{grid-template-columns:1fr 1fr}
.history-list{grid-template-columns:1fr 1fr}
}
.label-controls{background:#fff;border:1px solid #e1e8ed;border-radius:18px;padding:15px}
.label-preview-wrap{margin-top:16px;background:#fff;border:1px solid #e1e8ed;border-radius:18px;padding:15px}
.preview-title{font-size:13px;font-weight:800;color:#52677d;margin:0 0 10px}
.label-quantity{margin-top:14px;padding:12px;background:#f3f7fa;border-radius:13px}
.label-quantity-title{font-size:13px;font-weight:850;color:#334e68;margin-bottom:8px}
.label-quantity-title span{font-weight:600;color:#667b8e}
.two-quantities{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
.two-quantities label{font-size:12px;font-weight:800;color:#52677d;text-align:center}
.label-quantity input{display:block;width:100%;min-width:0;text-align:center;border:2px solid #aebfcb;border-radius:10px;padding:9px 4px;font-size:18px;font-weight:850;margin-top:5px}
.label-quantity small{display:block;margin-top:7px;color:#677b8d;font-size:11px}
.label-sheet{display:flex;flex-direction:column;background:#fff;color:#000}
.preview-sheet{width:min(100%,400px);height:min(610px,calc((100vw - 66px)*1.5263));border:1px solid #9aa8b3;overflow:hidden;margin:auto}
.preview-sheet>.label-sheet{height:100%;min-height:0}
.preview-sheet .label-copy{flex:1 1 0;height:auto;min-height:0}
.label-copy{width:100%;padding:2.5mm 3mm 2mm;display:flex;flex-direction:column;align-items:center;justify-content:space-between;overflow:hidden}
.label-copy:not(:last-child){border-bottom:.35mm dashed #777}
.label-copy.empty-label{visibility:hidden}
.label-name{font-family:"Arial Black",Arial,sans-serif;text-align:center;font-size:14pt;line-height:1.08;font-weight:900;height:18mm;display:flex;align-items:center;justify-content:center;overflow:hidden}
.label-footer{width:100%;display:grid;grid-template-columns:1fr auto;grid-template-areas:"code code" "date qty";align-items:center;column-gap:1.5mm;row-gap:.5mm;min-height:9mm}
.label-date{font:800 9pt Arial,sans-serif;white-space:nowrap}
.label-date{grid-area:date}
.label-code{grid-area:code;font:900 9pt "Arial Black",Arial,sans-serif;white-space:nowrap;text-align:center;min-width:0}
.label-qty-badge{grid-area:qty;font:900 12pt "Arial Black",Arial,sans-serif;border:.5mm solid #000;border-radius:1mm;padding:.7mm 1.6mm;white-space:nowrap}
.label-middle{display:grid;grid-template-columns:1fr 32mm 1fr;align-items:end;width:100%;height:32mm}
.label-color{font:900 12pt "Arial Black",Arial,sans-serif;text-align:center;line-height:1.05;overflow-wrap:anywhere;padding:0 1mm 3mm}
.barcode-svg{display:block;width:100%;height:20mm}
.qr-code{display:block;width:32mm!important;height:32mm!important;flex:none}
.outline-button{width:100%;margin-top:14px;border:2px solid #1b568b;background:#fff;color:#174f80;border-radius:13px;padding:13px;font-size:15px;font-weight:850}
.outline-button span{font-weight:600;color:#657b8e}
.print-tip{font-size:12px;line-height:1.45;color:#667b8e;text-align:center;padding:0 8px}
#printArea{display:none}
@page{size:100mm 150mm;margin:0}
@media print{html,body{width:100mm!important;height:auto!important;margin:0!important;padding:0!important;background:#fff!important}body>*:not(#printArea){display:none!important}#printArea{display:block!important;width:100mm!important}.print-label-sheet{width:100mm!important;height:150mm!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;break-after:page;page-break-after:always}.print-label-sheet:last-child{break-after:auto;page-break-after:auto}.print-label-sheet .label-copy{width:100mm!important;height:auto!important;min-height:0!important;max-height:none!important;flex:1 1 0!important}.barcode-svg{height:20mm}}
