:root{font-family:Tahoma,system-ui,sans-serif;color:#203832;background:#f4f6f3;font-synthesis:none}*{box-sizing:border-box}body{margin:0}header{height:88px;padding:0 6%;background:#fff;border-bottom:1px solid #dfe5df;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#203832;font-weight:800;letter-spacing:1px}.brand small{font-size:10px;color:#7a8780;margin-left:12px;font-weight:400}.mark{background:#244d3d;color:#fff;padding:10px 13px;border-radius:10px;font-size:23px}.local{font-size:12px;color:#597562}main{max-width:1200px;margin:0 auto;padding:48px 28px}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.eyebrow{font-size:11px;letter-spacing:1px;color:#718176}h1{font-size:32px;margin:12px 0;letter-spacing:-1px}.heading p:last-child{font-size:14px;color:#718176}.badge{padding:10px 16px;border:1px solid #d7dfd6;border-radius:30px;font:13px monospace}.layout{display:grid;grid-template-columns:370px 1fr;gap:24px}.panel{background:#fff;border:1px solid #dde4dc;border-radius:16px;padding:26px}h2{font-size:17px;margin:0 0 27px;display:flex;align-items:center;gap:10px}.step{color:#778a7c;font:12px monospace;border:1px solid #dde4dc;padding:6px;border-radius:6px}label{display:block;font-size:13px;font-weight:600;margin-bottom:10px}input,select{width:100%;height:46px;border:1px solid #cdd7cd;border-radius:8px;background:#fff;padding:0 12px;font:15px Tahoma;color:#243e32}input:focus,select:focus,button:focus-visible{outline:3px solid #a3c9ad;outline-offset:2px}.hint{font-size:11px;color:#778176;line-height:1.7;margin:8px 0 24px}.row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:23px}.preview{margin:25px 0;background:#eff5ee;border:1px dashed #bfd0bd;border-radius:10px;padding:22px 10px;text-align:center}.preview span,.preview small{display:block;font-size:11px;color:#65806b}.preview strong{display:block;font:700 30px monospace;overflow-wrap:anywhere;margin:14px 0;color:#2b573e}.preview small{font-size:10px}button{border:1px solid #d5ded3;border-radius:7px;background:#fff;padding:10px 15px;font:12px Tahoma;color:#38543e;cursor:pointer}button:hover:not(:disabled){background:#edf3eb}button:disabled{opacity:.45;cursor:default}.primary{width:100%;background:#28563e;color:#fff;border:0;font-size:14px;padding:15px;display:flex;justify-content:space-between}.primary:hover:not(:disabled){background:#1d4530}#message{font-size:12px;line-height:1.7;margin-bottom:0}.results{padding:0;overflow:hidden;display:flex;flex-direction:column}.result-head{padding:26px 26px 20px;display:flex;justify-content:space-between;gap:10px}.result-head h2{margin-bottom:10px}.result-head p{font-size:12px;color:#788379;margin:0}.counter{font-size:11px;background:#f1f4ee;height:28px;padding:7px 10px;border-radius:6px;white-space:nowrap}.toolbar{padding:0 26px 22px;display:flex;gap:8px}.table-wrap{height:360px;overflow:auto;border-top:1px solid #e5eae2;flex:1;min-height:330px;max-height:460px}table{border-collapse:collapse;width:100%;text-align:left;font-size:12px}th{background:#fafbf8;color:#7a8579;font-size:10px;font-weight:400;position:sticky;top:0}th,td{padding:14px 25px;border-bottom:1px solid #edf0e9}td:nth-child(2){font:600 14px monospace;overflow-wrap:anywhere}.empty{text-align:center;padding:58px 20px;color:#81907e}.empty-icon{font:40px monospace;color:#a3b29d}.empty h3{font-size:15px;color:#52654e;font-weight:500}.empty p{font-size:12px;line-height:1.9}.footnote{padding:18px 26px;color:#889082;background:#fcfdfb;border-top:1px solid #e5eae2;font-size:10px}footer{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px;color:#939d8e;margin-top:28px}footer span{letter-spacing:0}@media(max-width:800px){.layout{grid-template-columns:1fr}.heading{align-items:flex-start}.badge{display:none}header{padding:0 20px;height:72px}.brand small{display:none}.local{font-size:10px}main{padding:28px 16px}h1{font-size:27px}.panel{padding:22px}.results{padding:0}footer{gap:15px;line-height:1.8}th,td{padding:13px 15px}}

[hidden]{display:none!important}.login-panel{max-width:420px;margin:30px auto}.login-panel button{margin-top:20px}.toolbar{flex-wrap:wrap}button{min-height:40px}

.filters{padding:0 26px 20px;display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,160px) auto;gap:12px;align-items:end}.filters label{font-size:12px}.filters button{min-height:46px}.filters input,.filters select{min-width:0}.result-head p{line-height:1.8}@media(max-width:1000px){.filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.filters button{grid-column:1 / -1}}

/* Theme tokens shared by every workspace and login surface. */
:root{color-scheme:light;--page:#f4f6f3;--surface:#fff;--soft:#f1f4ee;--subtle:#fafbf8;--text:#203832;--muted:#627060;--border:#d7dfd6;--field:#fff;--hover:#edf3eb;--accent:#28563e;--accent-hover:#1d4530;--on-accent:#fff;--preview:#eff5ee;--preview-text:#2b573e;--focus:#4d8260}
:root[data-theme="dark"]{color-scheme:dark;--page:#101713;--surface:#19231d;--soft:#243129;--subtle:#1c2821;--text:#e4ede5;--muted:#a8b9aa;--border:#3d5042;--field:#131e17;--hover:#2e4034;--accent:#94cda5;--accent-hover:#b0dfbe;--on-accent:#102318;--preview:#20352a;--preview-text:#b1e4c1;--focus:#98d6ab}
:root,body{background:var(--page);color:var(--text)}header,.panel{background:var(--surface);border-color:var(--border)}.brand{color:var(--text)}.brand small,.local,.eyebrow,.heading p:last-child,.step,.hint,.result-head p,.empty,.empty-icon,.empty h3,.footnote,footer{color:var(--muted)}.badge,.step{border-color:var(--border)}input,select{background:var(--field);color:var(--text);border-color:var(--border)}input::placeholder{color:var(--muted);opacity:1}input:focus,select:focus,button:focus-visible{outline-color:var(--focus)}.preview{background:var(--preview);border-color:var(--border)}.preview span,.preview small{color:var(--muted)}.preview strong{color:var(--preview-text)}button{background:var(--surface);color:var(--text);border-color:var(--border)}button:hover:not(:disabled){background:var(--hover)}.primary,.mark{background:var(--accent);color:var(--on-accent)}.primary:hover:not(:disabled){background:var(--accent-hover)}.counter{background:var(--soft)}.table-wrap,th,td,.footnote{border-color:var(--border)}th,.footnote{background:var(--subtle)}th{color:var(--muted)}.header-actions{display:flex;align-items:center;gap:16px}.header-actions .local{max-width:250px;line-height:1.6}#theme-toggle{white-space:nowrap;min-width:92px;min-height:44px}@media(max-width:600px){header{height:auto;min-height:88px;padding:14px 16px;gap:12px;flex-wrap:wrap}.header-actions{flex-wrap:wrap;gap:10px}.header-actions .local{max-width:none}.brand{font-size:13px}}
main{max-width:1440px}.layout{grid-template-columns:350px minmax(0,1fr)}.workspace-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 24px}.workspace-actions>span{margin-right:auto;font-size:13px;color:var(--muted)}.check-label{display:flex;align-items:center;gap:10px;margin-top:20px;line-height:1.6}.check-label input,input[type=checkbox]{width:18px;height:18px;flex:none;accent-color:var(--accent)}.creation-details{margin-top:20px}.creation-details summary{cursor:pointer;font-size:13px;margin-bottom:16px}.creation-details input{margin-bottom:14px}.creation-details label{margin-top:10px}textarea{width:100%;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--field);color:var(--text);font:14px Tahoma;resize:vertical}textarea:focus{outline:3px solid var(--focus);outline-offset:2px}input[readonly]{background:var(--soft);color:var(--muted)}.filters{grid-template-columns:minmax(130px,1fr) 120px 125px auto}.code-link{color:var(--preview-text);font:600 14px monospace;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.record-name{display:block;font:12px Tahoma;color:var(--muted);margin-top:7px}.table-wrap td:nth-child(2){font:14px Tahoma}.status-pill{display:inline-block;font:11px Tahoma;padding:6px 9px;border:1px solid var(--border);border-radius:30px;white-space:nowrap}.status-ready{background:var(--preview);color:var(--preview-text)}.status-in_use{border-style:dashed}.status-repair{border-width:2px}.status-retired{color:var(--muted);text-decoration:line-through}.toolbar .hint{margin:0;align-self:center}.table-wrap{min-height:440px;max-height:650px}.table-wrap th:first-child,.table-wrap td:first-child{width:44px;padding-right:0}dialog{width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;border:1px solid var(--border);border-radius:16px;padding:26px;background:var(--surface);color:var(--text);box-shadow:0 24px 80px #0005}dialog::backdrop{background:#08100bc4}dialog h3{font-size:16px;margin-top:24px}dialog p{font-size:13px;line-height:1.8;overflow-wrap:anywhere}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.dialog-head h2{margin:0;overflow-wrap:anywhere}.dialog-head>button{min-width:44px;flex-shrink:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid .full{grid-column:1 / -1}.dialog-actions{display:flex;gap:10px;margin-top:20px;align-items:center}.dialog-actions .primary{width:auto;min-width:150px;justify-content:center}.notice{padding:12px;border:1px solid var(--border);background:var(--soft);border-radius:8px}.history-list details{padding:12px 0;border-bottom:1px solid var(--border)}.history-list summary{cursor:pointer;line-height:1.8;font-size:12px}.history-list p{margin:6px 0;color:var(--muted)}.import-preview{max-height:320px;overflow:auto;margin:20px 0}.import-error{font-weight:bold}.user-row{display:flex;gap:12px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding:12px 0;font-size:13px}#user-form,#password-form,#login-form{display:grid;gap:10px}#user-form .hint{margin:0}#user-form .check-label{margin-top:0}.label-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}.label-card{background:#fff;color:#111;border:1px solid #aaa;border-radius:6px;padding:15px;display:flex;flex-direction:column;align-items:center;text-align:center;break-inside:avoid;overflow-wrap:anywhere}.label-card strong{font:700 18px monospace}.label-card p{margin:3px 0;font-size:12px}.label-card small{font-size:10px}.qr-image{width:150px;height:150px;object-fit:contain}.barcode-image{width:100%;max-height:65px;object-fit:contain;margin-top:10px}.label-card img{background:#fff}#print-dialog{width:min(850px,calc(100vw - 32px))}#import-file{height:auto;padding:10px}#import-dialog>label{margin-top:18px}#print-area{min-height:100px}@media(max-width:1150px){.filters{grid-template-columns:1fr 1fr}.filters button{grid-column:auto}}@media(max-width:800px){.layout{grid-template-columns:1fr}.workspace-actions>span{flex-basis:100%}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}dialog{padding:20px}.label-grid{grid-template-columns:1fr}.qr-image{width:140px;height:140px}.table-wrap{min-height:300px}}
@media print{@page{size:A4;margin:12mm}html,body{background:#fff!important;color:#000!important}body>*{display:none!important}body>#print-dialog[open]{display:block!important;position:static;width:100%;max-width:none;height:auto;max-height:none;margin:0;padding:0;overflow:visible;border:0;box-shadow:none;background:#fff;color:#000}#print-dialog::backdrop{display:none}.no-print{display:none!important}.label-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6mm;margin:0}.label-card{break-inside:avoid;page-break-inside:avoid;min-height:75mm;padding:4mm;border-radius:0}.label-card .qr-image{width:36mm;height:36mm}.label-card .barcode-image{height:14mm;max-height:14mm}.label-card p{font-size:9pt}}

.batch-field{padding:12px 0;border-bottom:1px solid var(--border);}.batch-field>label:not(.check-label){font-size:.8rem}dialog{overscroll-behavior:contain}#current-organization{overflow-wrap:anywhere}#prefix[readonly]{opacity:.8}

#delete-list{max-height:260px;overflow:auto;overflow-wrap:anywhere}#confirm-delete{font-weight:700}

/* Separate form groups while keeping each label close to its input. */
#current-organization{margin:0 0 24px;padding:14px 16px;line-height:1.6}
#product-fields{margin-top:24px}
#product-fields input+label{margin-top:24px}
#form label{line-height:1.6}
#form .hint{margin-top:10px;line-height:1.8}
#form .check-label{margin-top:24px;margin-bottom:16px}
#form .row{gap:18px}
#form .creation-details{margin-top:24px}
#organization-form input+label,.form-grid select+label{margin-top:24px}
