#app{min-height:100vh;display:flex}#app nav{background:var(--ink);width:180px;color:var(--paper);flex-direction:column;flex-shrink:0;padding:20px 0;display:flex}#app .nav-brand{border-bottom:1px solid #ffffff26;margin-bottom:10px;padding:0 18px 18px}#app .nav-brand .display{letter-spacing:.04em;font-size:15px}#app .nav-brand .sub{color:#8fb0cb;letter-spacing:.08em;text-transform:uppercase;margin-top:4px;font-size:10px}#app .nav-item{cursor:pointer;text-transform:uppercase;letter-spacing:.06em;color:#a9c7de;border-left:3px solid #0000;align-items:center;gap:8px;padding:12px 18px;font-size:12px;font-weight:600;display:flex}#app .nav-item .num{opacity:.6;font-family:IBM Plex Mono,monospace;font-size:10px}#app .nav-item:hover{color:var(--paper);background:#ffffff14}#app .nav-item.active{color:var(--paper);border-left-color:var(--red);background:#ffffff1a}#app .nav-footer{color:#7b96ac;border-top:1px solid #ffffff26;margin-top:auto;padding:14px 18px;font-size:10px}#app main{flex:1;max-width:1300px;padding:28px 34px 60px}#app .view{display:none}#app .view.active{display:block}#app .view-header{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:flex-end;margin-bottom:22px;padding-bottom:14px;display:flex}#app .view-header h1{font-size:22px}#app .view-header p{color:var(--ink-soft);max-width:560px;margin:6px 0 0;font-size:12.5px}#app .btn{letter-spacing:.02em;border-radius:var(--radius);border:1.5px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer;text-transform:uppercase;letter-spacing:.05em;padding:9px 16px;font-family:IBM Plex Sans,sans-serif;font-size:12px;font-weight:600}#app .btn:hover{opacity:.85}#app .btn:disabled{opacity:.4;cursor:not-allowed}#app .btn.secondary{color:var(--ink);background:0 0}#app .btn.danger{color:var(--red);border-color:var(--red);background:0 0}#app .btn.small{padding:5px 10px;font-size:10.5px}#app .btn.blue{background:var(--blue);border-color:var(--blue)}#app .grid-2{grid-template-columns:1.3fr 1fr;align-items:start;gap:24px;display:grid}@media (max-width:1000px){#app .grid-2{grid-template-columns:1fr}}#app .card{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:18px;padding:20px}#app .card h3{align-items:center;gap:8px;margin-bottom:12px;font-size:13px;display:flex}#app .card h3 .tag{background:var(--ink);color:var(--paper);text-transform:none;letter-spacing:0;border-radius:2px;padding:2px 6px;font-family:IBM Plex Mono,monospace;font-size:9px}#app label{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin-bottom:4px;font-size:11px;font-weight:600;display:block}#app input[type=text],#app input[type=number],#app input[type=date],#app textarea,#app select{border:1.3px solid var(--line);border-radius:var(--radius);width:100%;color:var(--ink);background:#fff;margin-bottom:12px;padding:8px 10px;font-family:IBM Plex Sans,sans-serif;font-size:13px}#app textarea{resize:vertical;min-height:120px;font-family:IBM Plex Mono,monospace;font-size:12px}#app input:focus,#app textarea:focus,#app select:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--blue)}#app .field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}#app .field-row3{grid-template-columns:2fr 1fr 1fr;gap:12px;display:grid}#app .hint{color:var(--ink-soft);margin:-8px 0 12px;font-size:11px}#app .divider{border:none;border-top:1px solid var(--line);margin:16px 0}#app .allergen-grid{grid-template-columns:1fr 1fr;gap:4px 14px;margin-bottom:12px;display:grid}#app .allergen-check{align-items:center;gap:7px;padding:3px 0;font-size:12px;display:flex}#app .allergen-check input{width:auto;margin:0}#app .allergen-check label{text-transform:none;letter-spacing:0;color:var(--ink);margin:0;font-size:12px;font-weight:500}#app .chip{text-transform:none;letter-spacing:0;border-radius:20px;margin:2px 4px 2px 0;padding:2px 8px;font-size:10.5px;font-weight:600;display:inline-block}#app .chip.allergen{background:var(--red-soft);color:var(--red);border:1px solid var(--red)}#app .chip.trace{background:var(--blue-soft);color:var(--blue);border:1px solid var(--blue)}#app table.list{border-collapse:collapse;width:100%;font-size:12.5px}#app table.list th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);border-bottom:2px solid var(--ink);padding:6px 8px;font-size:10px}#app table.list td{border-bottom:1px solid var(--line);vertical-align:top;padding:9px 8px}#app table.list tr:hover td{background:#4fa3de0f}#app .row-actions{gap:6px;display:flex}#app .empty-state{text-align:center;color:var(--ink-soft);padding:40px 20px}#app .empty-state .display{color:var(--ink);margin-bottom:6px;font-size:14px}#app .upload-zone{border:2px dashed var(--line);border-radius:var(--radius);text-align:center;cursor:pointer;background:#fff;margin-bottom:14px;padding:24px}#app .upload-zone:hover{border-color:var(--blue);background:var(--blue-soft)}#app .upload-zone .display{margin-bottom:4px;font-size:12px}#app .upload-zone .sub{color:var(--ink-soft);font-size:11px}#app .status-line{border-radius:var(--radius);margin-bottom:12px;padding:8px 10px;font-size:12px;display:none}#app .status-line.show{display:block}#app .status-line.info{background:var(--blue-soft);color:var(--blue)}#app .status-line.error{background:var(--red-soft);color:var(--red)}#app .status-line.ok{background:var(--green-soft);color:var(--green)}#app .spinner{border:2px solid #4fa3de4d;border-top-color:var(--blue);vertical-align:-1px;border-radius:50%;width:11px;height:11px;margin-right:6px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}#app .ingredient-row{grid-template-columns:2.2fr 1fr .7fr auto;align-items:center;gap:8px;margin-bottom:8px;display:grid}#app .ingredient-row select,#app .ingredient-row input{margin-bottom:0}#app .label-sheet{border-radius:var(--radius);background:#eaf2f8;padding:22px;position:sticky;top:20px}#app .label-sheet .sheet-title{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);justify-content:space-between;margin-bottom:12px;font-size:10px;display:flex}#app .label-card{background:#fff;border-radius:8px;padding:18px 18px 16px;position:relative;box-shadow:0 2px 4px #00000014,0 10px 24px #0000001a}#app .label-card:before{content:"";pointer-events:none;border:1.5px dashed #bfd9ec;border-radius:4px;position:absolute;inset:6px}#app .label-card .lbl-product{text-transform:none;letter-spacing:0;margin-bottom:2px;font-family:Archivo Expanded,sans-serif;font-size:16px;font-weight:800;line-height:1.2}#app .label-card .lbl-sub{color:var(--ink-soft);margin-bottom:10px;font-size:10.5px}#app .label-card .lbl-block{margin-bottom:9px;font-size:10.5px}#app .label-card .lbl-block strong{font-weight:700}#app .label-card .lbl-heading{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:2px;font-size:9px;font-weight:600}#app .label-card .allergen-word{color:var(--red);font-weight:700}#app .nutri-table{border-collapse:collapse;width:100%;margin-top:4px;font-family:IBM Plex Mono,monospace;font-size:9.5px}#app .nutri-table th{text-align:left;border-bottom:1px solid var(--ink);padding:3px 2px;font-weight:600}#app .nutri-table td{border-bottom:1px solid #eee;padding:3px 2px}#app .nutri-table tr.indent td:first-child{color:var(--ink-soft);padding-left:12px}#app .label-card .cutline-note{text-align:center;color:#8fa8be;letter-spacing:.1em;text-transform:uppercase;margin-top:10px;font-size:8px}#app .disclaimer{color:var(--ink-soft);background:var(--red-soft);border-left:3px solid var(--red);border-radius:0 var(--radius) var(--radius) 0;margin-top:14px;padding:10px 12px;font-size:10.5px}#app .toolbar{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}#app .badge-count{background:var(--red);color:#fff;border-radius:20px;margin-left:6px;padding:1px 7px;font-family:IBM Plex Mono,monospace;font-size:10px}#app ::placeholder{color:#8fa8be}@media print{#app nav,#app .view-header,#app .toolbar,#app .card:not(.print-only),#app .disclaimer,#app .no-print{display:none!important}#app,#app main{margin:0;padding:0;display:block}#app .label-sheet{background:#fff;padding:0;position:static}#app .label-sheet .sheet-title{display:none}#app .label-card{box-shadow:none;border:1px solid #000}}#app .locked-panel{border:1.5px dashed var(--line);border-radius:var(--radius);text-align:center;color:var(--ink-soft);background:#fff;padding:18px;font-size:12.5px}#app .locked-panel .lock-title{text-transform:uppercase;letter-spacing:.04em;color:var(--ink);margin-bottom:6px;font-family:Archivo Expanded,sans-serif;font-size:12px}#app .modal-overlay{z-index:200;background:#141c268c;justify-content:center;align-items:flex-start;padding:40px 20px;display:flex;position:fixed;inset:0;overflow-y:auto}#app .modal-box{background:var(--paper-raised);border-radius:var(--radius);box-shadow:var(--shadow);width:100%;max-width:560px;padding:24px}#app .modal-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}#app .modal-close{cursor:pointer;color:var(--ink-soft);background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}#app .modal-close:hover{color:var(--ink)}#app .locked-panel a{color:var(--red);font-weight:600;text-decoration:none}
