*{box-sizing:border-box}html{font-family:Inter,Segoe UI,Arial,sans-serif;color:#181818;background:#f5f5f3}body{margin:0}a{color:inherit}input,textarea,select,button{font:inherit}.topbar{height:68px;background:#111;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:20}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;font-weight:800}.brand-mark{display:inline-grid;place-items:center;width:34px;height:34px;background:#fff;color:#111;border-radius:50%;font-weight:900}.topbar nav{display:flex;gap:20px}.topbar nav a{text-decoration:none;color:#ddd;font-size:14px}.topbar nav a:hover{color:#fff}.page{max-width:1500px;margin:0 auto;padding:30px}.guest-page{min-height:100vh;display:grid;place-items:center}.page-head,.production-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.page-head h1,.production-header h1{margin:0 0 6px;font-size:30px}.muted{color:#747474}.panel,.card,.login-card{background:#fff;border:1px solid #ddd;border-radius:14px;padding:22px;box-shadow:0 2px 8px rgba(0,0,0,.03)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.workflow-card,.big-choice{text-decoration:none;transition:.15s}.workflow-card:hover,.big-choice:hover{transform:translateY(-2px);border-color:#aaa}.card-icon{font-size:30px}.link-arrow{font-weight:700}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #bbb;background:#fff;color:#111;border-radius:9px;padding:10px 14px;text-decoration:none;cursor:pointer;font-weight:700}.btn.primary{background:#111;color:#fff;border-color:#111}.btn.danger{background:#a71919;color:#fff;border-color:#a71919}.btn.small{padding:6px 10px;font-size:13px}.btn.large{padding:13px 18px}.btn.huge{font-size:19px;padding:17px}.table-wrap{background:#fff;border:1px solid #ddd;border-radius:14px;overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px;border-bottom:1px solid #eee;vertical-align:top}th{font-size:12px;text-transform:uppercase;color:#666;background:#fafafa}td small{display:block;color:#777;margin-top:3px}.right{text-align:right}.badge{display:inline-flex;padding:4px 8px;border-radius:20px;background:#eee;font-size:12px}.badge.ok{background:#dff5e5;color:#176b2c}.badge.off{background:#eee;color:#666}.badge.danger{background:#fee2e2;color:#991b1b}.alert{padding:12px 14px;border:1px solid #ccc;border-radius:9px;background:#f4f4f4;margin-bottom:14px}.alert.success{border-color:#a7ddb2;background:#eaf8ed;color:#176b2c}.alert.danger{border-color:#efb5b5;background:#fff0f0;color:#8d1c1c}.alert.fade{opacity:.25;transition:opacity 1s}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid.one{grid-template-columns:1fr}.span-2{grid-column:1/-1}.form-grid h2{margin:14px 0 0}.form-grid label,.panel>label,.editor-properties label{display:grid;gap:6px;font-size:13px;font-weight:700}.form-grid input,.form-grid textarea,.form-grid select,.panel>label input,.panel>label select,.editor-properties input,.editor-properties textarea,.editor-properties select{width:100%;border:1px solid #bbb;border-radius:8px;padding:10px;background:#fff}.check{display:flex!important;align-items:center!important;grid-template-columns:auto 1fr!important;gap:8px!important}.check input{width:auto!important}.inline{display:flex;gap:8px}.actions{display:flex;gap:10px;flex-wrap:wrap}.narrow{max-width:700px}.login-body{background:#f5f5f3;min-height:100vh;display:grid;place-items:center}.login-card{width:min(430px,calc(100% - 30px));text-align:center}.install-card{text-align:left}.brand-large{text-align:center;margin-bottom:10px}.brand-large .brand-mark{background:#111;color:#fff;width:55px;height:55px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:22px}.stat{background:#111;color:#fff;border-radius:14px;padding:22px}.stat strong{display:block;font-size:30px}.stat span{color:#bbb}.template-settings{display:grid;grid-template-columns:2fr 1fr 1fr 1fr .7fr auto;gap:10px;margin-bottom:18px;align-items:end}.template-settings label{display:grid;gap:5px;font-size:12px;font-weight:700}.template-settings input,.template-settings select{padding:9px;border:1px solid #bbb;border-radius:7px}.editor-shell{display:grid;grid-template-columns:250px minmax(500px,1fr) 300px;gap:15px;align-items:start}.editor-tools{position:sticky;top:84px;display:grid;gap:7px}.editor-tools button{padding:8px;border:1px solid #ccc;border-radius:7px;background:#fafafa;text-align:left;cursor:pointer}.editor-tools h3,.editor-properties h3{margin:5px 0}.editor-stage-wrap{overflow:auto;min-height:700px}.editor-ruler{font-size:12px;color:#777;margin-bottom:10px}.editor-stage{position:relative;background:#fff;border:1px solid #888;box-shadow:0 4px 18px rgba(0,0,0,.12);transform-origin:top left}.editor-element{position:absolute;overflow:hidden;white-space:pre-wrap;cursor:move;outline:1px dashed transparent;line-height:1.1}.editor-element.selected{outline:2px solid #1967d2;background:rgba(25,103,210,.04)}.resize-handle{position:absolute;right:0;bottom:0;width:10px;height:10px;background:#1967d2;cursor:nwse-resize}.editor-element img{width:100%;height:100%;object-fit:contain}.editor-element.type-nutrition>div{display:flex;justify-content:space-between;border-bottom:1px solid #ddd}.fake-barcode{height:70%;background:repeating-linear-gradient(90deg,#111 0 2px,#fff 2px 4px,#111 4px 5px,#fff 5px 8px)}.token-list{display:flex;flex-wrap:wrap;gap:4px}.token-list button{font-family:monospace;font-size:10px;padding:4px}.runtime-row{display:grid;grid-template-columns:1fr 1fr .7fr auto auto;gap:4px;margin-bottom:5px}.runtime-row input,.runtime-row select{width:100%;min-width:0;padding:5px;border:1px solid #ccc}.runtime-row label{font-size:10px}.editor-properties{position:sticky;top:84px}.editor-properties label{margin-bottom:10px}.prop-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.qr-box{min-height:180px}.workflow-admin-cards code{display:block;word-break:break-all;background:#f5f5f5;padding:8px;margin:10px 0}.production-header{background:#111;color:#fff;border-radius:16px;padding:24px}.eyebrow{font-size:11px;letter-spacing:.2em;color:#bbb}.printer-pill{background:#282828;border-radius:30px;padding:10px 14px}.label-choice-cards{grid-template-columns:repeat(auto-fit,minmax(250px,350px))}.big-choice{min-height:160px;display:grid;place-items:center;text-align:center}.big-choice span{font-size:36px}.big-choice strong{font-size:21px}.production-grid{display:grid;grid-template-columns:minmax(330px,480px) 1fr;gap:22px}.preview-panel{overflow:auto}.production-preview{min-height:300px;background:#e9e9e7;padding:25px;overflow:auto}.label-preview-canvas{position:relative;background:#fff;border:1px solid #aaa;box-shadow:0 3px 14px rgba(0,0,0,.12);overflow:hidden}.preview-el{position:absolute;white-space:pre-wrap;line-height:1.08;overflow:hidden}.preview-el.type-nutrition .nutrition-row{display:flex;justify-content:space-between;border-bottom:1px solid #bbb}.preview-el.type-barcode{text-align:center}.zpl-box,pre{white-space:pre-wrap;word-break:break-all;background:#111;color:#d7ffd7;padding:14px;border-radius:8px;max-height:500px;overflow:auto}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}.detail-list{display:grid;grid-template-columns:180px 1fr;gap:8px}.detail-list dt{font-weight:700}.detail-list dd{margin:0}.compact{padding:15px}hr{border:0;border-top:1px solid #ddd;margin:20px 0}code{font-family:ui-monospace,Consolas,monospace}
@media(max-width:1050px){.editor-shell{grid-template-columns:1fr}.editor-tools,.editor-properties{position:static}.template-settings{grid-template-columns:1fr 1fr}.production-grid,.two-cols{grid-template-columns:1fr}.topbar{height:auto;align-items:flex-start;gap:12px;padding:14px;flex-direction:column}.topbar nav{flex-wrap:wrap}.stats-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.page{padding:18px}}
.asset-library{display:grid;grid-template-columns:1fr;gap:8px;max-height:280px;overflow:auto}.asset-item{display:grid;grid-template-columns:56px 1fr auto;gap:8px;align-items:center;border:1px solid #ddd;border-radius:10px;padding:8px;background:#fafafa}.asset-item img{width:56px;height:40px;object-fit:contain;background:#fff;border:1px solid #eee;border-radius:6px}.asset-item strong{font-size:12px;word-break:break-word}.asset-item button{padding:6px 8px;border:1px solid #bbb;background:#fff;border-radius:7px;cursor:pointer}.editor-element.type-image,.preview-el.type-image{display:flex;align-items:center;justify-content:center}.editor-preview-data{margin-bottom:18px}.preview-data-head{display:grid;grid-template-columns:1fr minmax(280px,420px);gap:20px;align-items:end}.preview-data-head label{display:grid;gap:6px;font-size:13px;font-weight:700}.preview-data-head select,.preview-runtime-fields input,.preview-runtime-fields select{width:100%;border:1px solid #bbb;border-radius:8px;padding:9px;background:#fff}.preview-runtime-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:14px}.preview-runtime-fields label{display:grid;gap:5px;font-size:12px;font-weight:700}.editor-element.type-text{word-break:break-word}.editor-element.type-nutrition{font-size:11px}.editor-element.type-nutrition .nutrition-row{display:grid;grid-template-columns:1fr auto;gap:8px}.editor-element.type-image img{width:100%;height:100%;object-fit:contain}@media(max-width:900px){.preview-data-head{grid-template-columns:1fr}}.selection-summary{display:flex;justify-content:space-between;align-items:center;font-size:12px}.tool-grid{display:grid;gap:6px}.tool-grid.two{grid-template-columns:1fr 1fr}.align-toolbar{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.align-toolbar button,.nudge-toolbar button,.tool-grid button,.font-stepper button,.text-align-buttons button{padding:7px 8px;border:1px solid #c7c7c7;border-radius:7px;background:#fff;cursor:pointer;font-weight:650}.align-toolbar button:disabled,.nudge-toolbar button:disabled,.tool-grid button:disabled{opacity:.4;cursor:not-allowed}.nudge-toolbar{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.editor-element.selected{outline:2px solid #1967d2!important;background:rgba(25,103,210,.045)}.editor-element.grouped.selected{outline-color:#7c3aed!important}.group-badge{position:absolute;top:1px;right:1px;background:#7c3aed;color:#fff;border-radius:3px;font-size:8px;line-height:12px;width:12px;height:12px;text-align:center;pointer-events:none}.selection-marquee{position:absolute;border:1px dashed #1967d2;background:rgba(25,103,210,.08);pointer-events:none;z-index:9999}.element-overview-head{display:grid;gap:2px;margin-bottom:8px}.element-overview{display:grid;gap:5px;max-height:430px;overflow:auto}.element-row{display:grid!important;grid-template-columns:24px 54px minmax(0,1fr) auto;align-items:center;gap:6px;width:100%;padding:7px!important;text-align:left!important;border:1px solid #ddd!important;background:#fff!important;border-radius:8px!important;cursor:pointer}.element-row.selected{border-color:#1967d2!important;background:#eef5ff!important}.element-index{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#eee;font-size:10px}.element-type{text-transform:uppercase;font-size:9px;font-weight:800;color:#777}.element-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.group-chip{background:#ede9fe;color:#6d28d9;border-radius:999px;padding:2px 5px;font-size:9px;font-weight:800}.font-stepper{display:grid;grid-template-columns:56px 1fr 56px;gap:8px;align-items:center;margin-bottom:12px}.font-stepper output{display:grid;place-items:center;border:1px solid #ddd;border-radius:7px;background:#fafafa;height:36px;font-weight:800}.text-align-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-bottom:12px}.text-align-buttons button.active{background:#111;color:#fff;border-color:#111}.multi-props{display:grid;gap:10px}.mini-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:6px}.mini-toolbar button{padding:8px;border:1px solid #ccc;border-radius:7px;background:#fff}.group-info{padding:8px;background:#f7f5ff;border:1px solid #ddd6fe;border-radius:8px;margin-bottom:10px}.prop-preview-text{padding:7px;background:#fafafa;border-radius:6px;margin:-4px 0 10px}.editor-tools{max-height:calc(100vh - 100px);overflow:auto}.editor-properties{max-height:calc(100vh - 100px);overflow:auto}.inline-form{display:inline;margin:0}.actions-right{justify-content:flex-end;align-items:center}.editor-element{touch-action:none;user-select:none;will-change:transform}.editor-element.type-image img{pointer-events:none;user-select:none;-webkit-user-drag:none}.editor-element.dragging{z-index:9999}.barcode-template-status{display:grid;gap:2px;padding:8px;border-radius:8px;font-size:11px}.barcode-template-status span{color:#666}.barcode-template-status.missing{background:#fff4e5;border:1px solid #f2c37b}.barcode-template-status.ok{background:#edf8ef;border:1px solid #a9d6af}.zpl-nutrition-row{display:grid!important;grid-template-columns:67% 33%;border-bottom:0!important;overflow:hidden;white-space:nowrap}.zpl-nutrition-row .nutrition-label{overflow:hidden;text-overflow:clip;white-space:nowrap}.zpl-nutrition-row .nutrition-value{text-align:right;overflow:hidden;white-space:nowrap}.nutrition-heading{font-weight:700;overflow:hidden}.preview-barcode-warning{position:absolute;left:8px;right:8px;bottom:8px;padding:6px;background:#fff4e5;border:1px solid #e0a84f;font-size:10px;text-align:center;z-index:20}.editor-element.type-barcode,.preview-el.type-barcode{border:1px dashed #c8c8c8;background:#fff}.editor-element.type-barcode small,.preview-el.type-barcode small{display:block;text-align:center;font-size:9px;line-height:1.1}.fake-barcode{min-height:65%;}
.print-option-card{border:1px solid #d8d8d8;border-radius:10px;padding:12px 14px;background:#fafafa}
.cutter-option{display:flex!important;align-items:flex-start!important;gap:10px!important}
.cutter-option input{margin-top:3px}
.cutter-option span{display:grid;gap:3px}
.cutter-option small{font-weight:400;color:#666;line-height:1.35}

.print-action-grid{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:10px;align-items:stretch}.print-action-grid .btn{margin:0}.pdf-btn{font-weight:700}.pdf-print-note{margin-top:-2px;font-size:12px;line-height:1.4}@media(max-width:760px){.print-action-grid{grid-template-columns:1fr}.print-action-grid .huge{min-height:58px}}

.label-pdf-preview-canvas{max-width:none;height:auto;image-rendering:auto}
.preview-parity-note{margin-top:-5px;margin-bottom:12px;font-size:12px}

.print-action-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1100px){.print-action-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.print-action-grid.four{grid-template-columns:1fr}}
