:root{--ink:#1f353c;--muted:#5f737a;--teal:#166b64;--line:#d7e1df;--paper:#fff;--bg:#f2f5f1}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 'Segoe UI',Arial,sans-serif}button,input,select,textarea{font:inherit}button{border:1px solid #b9cbc6;background:white;color:var(--ink);border-radius:8px;padding:10px 15px;cursor:pointer;font-weight:600}button:hover{background:#eaf2ee}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #e4b744;outline-offset:2px}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--teal);border-color:var(--teal);color:white}.primary:hover{background:#10534e}header{max-width:1220px;margin:auto;padding:28px 24px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.identity{display:flex;align-items:center;gap:15px}.identity img{height:55px;width:55px;object-fit:contain;mix-blend-mode:multiply}.identity small,.eyebrow{font-size:11px;letter-spacing:1.7px;font-weight:700;color:var(--teal)}h1{font-size:25px;line-height:1.2;margin:5px 0}.local{border:1px solid #c9dcd0;color:#246244;background:#e6f0e6;border-radius:30px;padding:8px 14px;font-size:12px}nav{display:flex;gap:5px;max-width:1172px;margin:auto;border-bottom:1px solid var(--line);padding-bottom:10px;overflow:auto}nav button{white-space:nowrap;border:0;background:transparent;font-weight:500}nav .active{background:var(--ink);color:white}main{max-width:1220px;margin:auto;padding:28px 24px}h2{font-size:31px;line-height:1.22;margin:9px 0 12px;letter-spacing:-.7px}h3{font-size:19px;margin:0 0 12px}p{margin:0 0 16px}.intro{display:flex;justify-content:space-between;gap:35px;align-items:center;margin-bottom:25px}.intro>div:first-child{max-width:750px}.intro p{color:var(--muted);font-size:16px}.sample{display:flex;gap:12px;align-items:center;flex-shrink:0;background:white;padding:18px;border:1px dashed #9eada8;border-radius:9px}.sample img{width:40px;height:40px;object-fit:contain}.sample b{font:700 24px ui-monospace,Consolas,monospace;display:block;letter-spacing:2px}.sample small{font-size:10px;color:var(--muted)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:24px;margin-bottom:22px;box-shadow:0 3px 8px #172d2204}.muted,.hint{font-size:13px;color:var(--muted)}.hint{margin:14px 0 0}.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}label{display:block;font-size:13px;font-weight:600;margin:12px 0}input,select,textarea{display:block;border:1px solid #bac9c4;border-radius:6px;padding:10px;width:100%;margin-top:6px;background:white;color:var(--ink)}textarea{resize:vertical}summary{cursor:pointer;color:var(--teal);font-weight:650;padding:8px 0}.inline{display:flex;align-items:center;gap:15px}.inline input{width:85px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px}.list-item{border-bottom:1px solid var(--line);padding:13px 0;display:flex;align-items:center;justify-content:space-between;gap:10px}.list-item:last-child{border-bottom:0}.list-item small{display:block;color:var(--muted)}.tag{background:#e9f2ec;border-radius:20px;font-size:12px;padding:3px 9px;display:inline-block}.assign{display:grid;grid-template-columns:2fr 1fr auto;align-items:end;gap:15px}.assign label{margin:0}.assign input{text-transform:uppercase;font-family:Consolas,monospace;letter-spacing:2px}.bar{display:flex;justify-content:space-between;align-items:center;gap:18px}.path{font-family:Consolas,monospace;overflow-wrap:anywhere;background:#f0f4f1;padding:14px;border-radius:6px}table{border-collapse:collapse;width:100%;font-size:14px;margin-top:18px}th,td{text-align:left;padding:11px;border-bottom:1px solid #dfe7e3;vertical-align:middle}th{color:#4c655b;font-size:12px;background:#f3f7f3}td.code{font:bold 17px Consolas,monospace;white-space:nowrap}footer{text-align:center;padding:15px 20px 30px;color:var(--muted);font-size:12px}#notice{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);max-width:700px;width:calc(100% - 40px);padding:14px 20px;border-radius:9px;background:#174e44;color:white;z-index:20;display:none;box-shadow:0 5px 25px #0003}#notice.error{background:#8c2d2d}#previewHost{overflow:auto;max-height:680px;background:#dfe6df;padding:18px;margin-top:15px}#printArea{display:none}.sheet{position:relative;width:210mm;height:297mm;background:white;overflow:hidden;margin:0 auto 15px;flex-shrink:0;color:black}.sticker{position:absolute;display:flex;align-items:center;gap:2mm;padding:1.4mm 2mm;border:.15mm dashed #bcbcbc;overflow:hidden}.sticker img{width:11mm;height:14mm;object-fit:contain;flex-shrink:0}.sticker .label-body{min-width:0;flex:1}.sticker .label-code{font:bold 22pt/1.05 Consolas,'Courier New',monospace;letter-spacing:.7mm;white-space:nowrap}.sticker .label-title{font:600 6.5pt/1.2 Arial,sans-serif;letter-spacing:.4mm;margin-bottom:.6mm}.sticker .label-note{font:7pt/1.2 Arial,sans-serif;white-space:nowrap;margin-top:.8mm}.sticker.small .label-code{font-size:17pt;letter-spacing:.3mm}.sticker.small img{width:8mm;height:11mm}.sticker.small .label-note{font-size:5.5pt}.check-sheet{padding:14mm 12mm}.check-sheet h2{font-size:16pt;letter-spacing:0}.check-sheet p{font-size:9pt}.check-row{display:flex;align-items:center;border-bottom:.2mm solid #bbb;gap:5mm;padding:2mm 0;break-inside:avoid}.check-name{flex:1;font:11pt Arial,sans-serif}.check-name small{font-size:8pt;display:block;margin-top:2mm}.sticker-target{border:.2mm dashed #aaa;display:flex;align-items:center;justify-content:center;color:#777;font:8pt Arial,sans-serif;flex-shrink:0}.empty{color:var(--muted);padding:20px 0}.scroll-table{overflow:auto}.print-note{margin-top:9mm;font:9pt Arial,sans-serif}.calibration{position:absolute;bottom:5mm;left:12mm;font:9pt Arial,sans-serif}[hidden]{display:none!important}hr{border:0;border-top:1px solid var(--line);margin:25px 0}@media(max-width:850px){.grid{grid-template-columns:1fr}.intro{display:block}.sample{display:none}.assign{grid-template-columns:1fr}.local{display:none}nav{padding:0 15px 10px}h2{font-size:26px}.bar{align-items:flex-start;flex-direction:column}}@page{size:A4 portrait;margin:0}@media print{html,body{margin:0!important;padding:0!important;background:white!important}#app{display:none!important}#printArea{display:block!important}.sheet{margin:0!important;page-break-after:always;break-after:page;box-shadow:none}.sheet:last-child{page-break-after:auto;break-after:auto}.sticker{border-color:#d0d0d0}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.sticker.small{padding:1mm;gap:1mm}.sticker.small img{width:6mm;height:10mm}.sticker.small .label-code{font-size:13pt;letter-spacing:.2mm}.sticker.small .label-title{font-size:5pt;letter-spacing:0}.sticker.small .label-note{font-size:5.5pt;white-space:normal}

.web-note{max-width:1172px;margin:0 auto 18px;padding:12px 16px;border-left:3px solid #166b64;background:#e7efe8;font-size:13px;color:#31514a}.web-note strong{font-weight:650}footer a{color:var(--teal)}@media(max-width:850px){.web-note{margin:0 24px 18px}}
dialog{max-width:520px;width:calc(100% - 36px);border:1px solid #bac9c4;border-radius:14px;padding:25px;color:var(--ink)}dialog::backdrop{background:#18332966}

.sticker.compact{padding:.5mm 1.5mm;gap:1.5mm}.sticker.compact img{width:5mm;height:6mm}.sticker.compact .label-title{font-size:4.8pt;letter-spacing:.2mm;margin-bottom:.2mm}.sticker.compact .label-code{font-size:13pt;line-height:1;letter-spacing:.3mm}.sticker.compact .label-note{display:none}
