:root{color:#20312b;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--heading-color:#16231e;--muted-color:#61726b;--border-color:#1b342d1f;--panel-color:#ffffffe6;--button-color:#1f5c4d;--shadow-soft:0 18px 42px #14211d14;background:radial-gradient(circle at top,#a4c6b642,#0000 28%),linear-gradient(#f4f6f2 0%,#eef1ec 100%);font-family:Segoe UI,Aptos,Trebuchet MS,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{min-height:100%}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button:focus-visible,input:focus-visible{outline-offset:2px;outline:3px solid #1f5c4d38}#root{min-height:100vh}@media print{body{background:#fff}}.app-shell{width:min(1440px,100% - 32px);margin:0 auto;padding:32px 0 56px}.hero-panel{grid-template-columns:minmax(0,1.4fr) minmax(320px,440px);align-items:stretch;gap:24px;margin-bottom:20px;display:grid}.hero-copy,.upload-panel,.preset-selector,.company-settings,.toolbar,.empty-state,.preview-panel,.message-card,.error-message{border:1px solid var(--border-color);box-shadow:var(--shadow-soft);background:var(--panel-color);border-radius:24px}.hero-copy{color:#f5f7f2;background:radial-gradient(circle at 0 0,#8ebfaa2e,#0000 34%),linear-gradient(135deg,#0f241ffa,#204438f5);padding:32px}.eyebrow{letter-spacing:.08em;text-transform:uppercase;background:#ffffff1f;border-radius:999px;margin-bottom:14px;padding:8px 12px;font-size:.82rem;font-weight:700;display:inline-flex}.hero-copy h1{color:#fff;max-width:14ch;margin:0 0 16px;font-size:clamp(2.2rem,3vw,3.5rem);line-height:.95}.hero-copy p{color:#f5f7f2e6;max-width:54ch;margin:0;font-size:1.03rem}.upload-panel{flex-direction:column;justify-content:center;gap:18px;padding:26px;display:flex}.upload-panel h2{color:var(--heading-color);margin:0;font-size:1.4rem}.upload-panel p{color:var(--muted-color);margin:0}.upload-button{color:#fff;min-height:64px;font:inherit;cursor:pointer;background:linear-gradient(135deg,#1f5c4d,#2a745f);border:none;border-radius:18px;justify-content:center;align-items:center;padding:0 22px;font-weight:700;transition:transform .16s,box-shadow .16s,opacity .16s;display:inline-flex;box-shadow:0 18px 28px #1f5c4d2e}.upload-button:hover,.toolbar__button:hover{transform:translateY(-1px)}.upload-button:disabled,.toolbar__button:disabled{cursor:not-allowed;opacity:.55;box-shadow:none;transform:none}.upload-panel__meta{color:var(--muted-color);gap:8px;font-size:.95rem;display:grid}.upload-panel__filename{color:var(--heading-color);font-weight:700}.status-panel{margin-bottom:18px}.message-list{gap:12px;display:grid}.message-card,.error-message{padding:14px 18px;font-weight:600}.message-card--success{color:#1d5d4d;background:#e6f4efe6;border-color:#266e5b47}.message-card--warning{color:#845f18;background:#fff5e2f2;border-color:#b07a2152}.error-message{color:#8f2f21;background:#ffedeaf5;border-color:#a73b2b40}.workspace{gap:18px;display:grid}.preset-selector{gap:18px;padding:18px 20px;display:grid}.preset-selector__copy{gap:8px;display:grid}.preset-selector__copy h2{color:var(--heading-color);margin:0;font-size:1.18rem}.preset-selector__copy p{color:var(--muted-color);margin:0}.preset-selector__actions{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.preset-selector__button{color:#1f5c4d;min-width:140px;min-height:48px;font:inherit;cursor:pointer;background:#eff4f0;border:1px solid #1f5c4d29;border-radius:14px;padding:0 18px;font-weight:700}.preset-selector__button--active{background:var(--button-color);color:#fff;border-color:#0000;box-shadow:0 14px 22px #1f5c4d26}.company-settings{gap:18px;padding:18px 20px;display:grid}.company-settings__copy{gap:8px;display:grid}.company-settings__copy h2{color:var(--heading-color);margin:0;font-size:1.18rem}.company-settings__copy p{color:var(--muted-color);margin:0}.company-settings__grid{grid-template-columns:repeat(2,minmax(180px,1fr)) minmax(190px,.7fr);align-items:end;gap:14px;display:grid}.company-settings__field{color:var(--muted-color);gap:8px;font-weight:700;display:grid}.company-settings__field input{min-height:46px;color:var(--heading-color);font:inherit;background:#eff4f0;border:1px solid #1f5c4d2e;border-radius:14px;padding:0 14px;font-weight:700}.company-settings__toggles,.company-settings__logo-actions{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.company-settings__toggles{color:var(--heading-color);font-weight:700}.company-settings__toggles label{align-items:center;gap:8px;display:inline-flex}.company-settings__toggles input{accent-color:#1f5c4d;width:18px;height:18px}.company-settings__upload-button,.company-settings__clear-button{color:#1f5c4d;min-height:44px;font:inherit;cursor:pointer;background:#eff4f0;border:1px solid #1f5c4d29;border-radius:14px;justify-content:center;align-items:center;padding:0 16px;font-weight:700;display:inline-flex}.company-settings__upload-button input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.company-settings__clear-button:disabled{cursor:not-allowed;opacity:.55}.company-settings__preview{min-height:68px;color:var(--muted-color);background:#eff4f09e;border:1px dashed #1f5c4d38;border-radius:14px;justify-content:center;align-items:center;padding:10px;font-weight:700;display:flex}.company-settings__preview img{object-fit:contain;max-width:150px;max-height:52px;display:block}.company-settings__error{color:#8f2f21;margin:0;font-weight:700}.toolbar{justify-content:space-between;gap:20px;padding:18px 20px;display:flex}.toolbar__summary{gap:4px;display:grid}.toolbar__title{color:var(--heading-color);margin:0;font-size:1.18rem}.toolbar__detail{color:var(--muted-color)}.toolbar__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.toolbar__quantity-mode{background:#eff4f0;border:1px solid #1f5c4d29;border-radius:14px;gap:4px;padding:4px;display:inline-flex}.toolbar__mode-button{color:#1f5c4d;min-height:40px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:0 14px;font-weight:700;transition:background .16s,color .16s,box-shadow .16s}.toolbar__mode-button--active{background:var(--button-color);color:#fff;box-shadow:0 10px 18px #1f5c4d24}.toolbar__mode-button:disabled{cursor:not-allowed;opacity:.55}.toolbar__button{min-height:48px;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:14px;padding:0 18px;font-weight:700;transition:transform .16s,box-shadow .16s,background .16s}.toolbar__button--primary{background:var(--button-color);color:#fff;box-shadow:0 14px 22px #1f5c4d26}.toolbar__button--secondary{color:#1f5c4d;background:#eff4f0;border-color:#1f5c4d24}.toolbar__button--ghost{border-color:var(--border-color);color:var(--heading-color);background:0 0}.toolbar__button--qr-active{color:#1f5c4d;background:#1f5c4d1a;border-color:#1f5c4d4d}.empty-state{text-align:center;padding:42px 28px}.empty-state h3{color:var(--heading-color);margin:0 0 10px;font-size:1.45rem}.empty-state p{max-width:58ch;color:var(--muted-color);margin:0 auto}.preview-panel{padding:22px}.preview-grid{grid-template-columns:repeat(auto-fit,minmax(390px,1fr));gap:24px;display:grid}.label-card{width:var(--label-width-mm,100mm);min-height:var(--label-height-mm,150mm);color:#112019;margin:0 auto;position:relative}.label-print-sheet{width:100%;min-height:var(--label-height-mm,150mm);box-sizing:border-box;background:linear-gradient(#f4f8f5f0,#fff),#fff;border:1px solid #9fb0aa;border-radius:5mm;flex-direction:column;padding:12mm 10mm 10mm;display:flex;overflow:hidden;box-shadow:0 22px 38px #0a141114}.label-card__toggle{background:#fffffff0;border-radius:999px;align-items:center;gap:8px;padding:8px 10px;font-size:.9rem;font-weight:600;display:inline-flex;position:absolute;top:10px;right:10px;box-shadow:0 8px 16px #0f241f1a}.label-card__toggle input{accent-color:#1f5c4d;width:18px;height:18px}.label-card__header{flex:none;align-items:flex-start;gap:8px;margin-bottom:7mm;padding-right:88px;display:flex}.label-card__header--with-qr{padding-right:0}.label-card__header-text{flex:auto;min-width:0}.label-card__brand-block{flex:auto;align-items:flex-start;gap:10px;min-width:0;display:flex}.label-card__logo{object-fit:contain;flex:none;width:18mm;max-height:15mm;display:block}.label-card__company-name{color:#10221b;font-size:14pt;line-height:1.05;display:block}.label-card__company-subtitle{color:#557469;margin-top:2px;font-size:8.8pt;font-weight:800;line-height:1.1;display:block}.label-card__qr-canvas{border-radius:4px;flex:none;width:72px;height:72px;display:block}.label-card__eyebrow{color:#1f5c4d;letter-spacing:.06em;text-transform:uppercase;background:#1f5c4d17;border-radius:999px;margin-bottom:8px;padding:6px 10px;font-size:.86rem;font-weight:800;display:inline-flex}.label-card__headline{color:#10221b;margin:0;font-size:16pt;line-height:1.06}.label-card__body{flex:auto;align-content:start;gap:3mm;min-height:0;display:grid}.label-field{border-bottom:1px solid #7d918a5c;gap:1.8mm;min-height:0;padding-bottom:2.6mm;display:grid}.label-field:last-child{border-bottom:none;padding-bottom:0}.label-field__name{color:#557469;letter-spacing:.08em;text-transform:uppercase;font-size:.82rem;font-weight:800}.label-field__value{white-space:pre-wrap;word-break:break-word;font-size:1.28rem;font-weight:700;line-height:1.15}.label-field__value--obra{font-size:1.45rem}.label-field__value--nombre{font-size:1.34rem}.label-field__value--medidas{letter-spacing:.02em;font-size:1.75rem}.label-field__value--cantidad{font-size:2.1rem}.label-field__value--dvh{font-size:1.45rem}.label-field__value--notes{min-height:14mm;font-size:1.1rem;overflow:hidden}.label-card--compact .label-print-sheet{border-radius:3mm;padding:4mm 4mm 3mm}.label-card--compact .label-card__header{display:none}.label-card--compact .label-card__eyebrow{margin-bottom:4px;padding:4px 8px;font-size:.62rem}.label-card--compact .label-card__headline{font-size:9pt}.label-card--compact .label-card__body{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"nombre nombre""obra cantidad""medidas medidas""dvh mts2""notes notes";gap:1.8mm 2.2mm;display:grid}.label-card--compact .label-card__body--with-brand{grid-template-areas:"brand brand""nombre nombre""obra cantidad""medidas medidas""dvh mts2""notes notes"}.label-card__compact-brand{color:#10221b;border-bottom:1px solid #7d918a47;grid-area:brand;align-items:center;gap:4px;min-width:0;padding-bottom:1mm;line-height:1.15;display:flex}.label-card__compact-brand-text{flex-direction:column;gap:.5mm;min-width:0;display:flex;overflow:hidden}.label-card__compact-company{text-overflow:ellipsis;white-space:nowrap;color:#2d6b59;letter-spacing:.01em;font-size:.72rem;font-weight:700;overflow:hidden}.label-card__compact-logo{object-fit:contain;flex:none;width:18px;height:18px;display:block}.label-card--compact .label-field{gap:.5mm;min-width:0;padding-bottom:.8mm}.label-card--compact .label-field--nombre{grid-area:nombre}.label-card--compact .label-field--obra{grid-area:obra}.label-card--compact .label-field--cantidad{grid-area:cantidad;justify-self:end;width:max-content;min-width:0}.label-card--compact .label-field--medidas{grid-area:medidas}.label-card--compact .label-field--dvh{grid-area:dvh}.label-card--compact .label-field--mts2{grid-area:mts2}.label-card--compact .label-field--notes{grid-area:notes}.label-card--compact .label-field__name{letter-spacing:.05em;font-size:.48rem}.label-card--compact .label-field__value{font-size:.76rem;line-height:1.05}.label-card--compact .label-field__value--obra,.label-card--compact .label-field__value--nombre,.label-card--compact .label-field__value--dvh{font-size:.92rem}.label-card--compact .label-field__value--medidas{letter-spacing:.01em;font-size:1.28rem;font-weight:800}.label-card--compact .label-field--cantidad .label-field__name{text-align:right}.label-card--compact .label-field__value--cantidad{text-align:right;white-space:nowrap;word-break:normal;font-size:1.32rem;overflow:visible}.label-card--compact .label-field__value--notes{min-height:0;font-size:.68rem}@media (width<=1080px){.hero-panel{grid-template-columns:1fr}.toolbar{flex-direction:column}.toolbar__actions{justify-content:flex-start}}@media (width<=760px){.app-shell{width:min(100%,100% - 20px);padding-top:20px}.hero-copy,.upload-panel,.preset-selector,.company-settings,.toolbar,.preview-panel,.empty-state{border-radius:20px}.preview-grid{grid-template-columns:1fr}.label-card{width:min(100%, var(--label-width-mm,100mm));min-height:calc(min(100vw - 56px, var(--label-width-mm,100mm)) * (var(--label-height-ratio,1.5)))}.label-print-sheet{min-height:calc(min(100vw - 56px, var(--label-width-mm,100mm)) * (var(--label-height-ratio,1.5)));padding-top:54px}.label-card__header{padding-right:0}.label-card__toggle{justify-content:center;top:10px;left:10px;right:10px}.company-settings__grid{grid-template-columns:1fr}}@page{size:auto;margin:0}@media print{html,body{width:var(--label-width-mm,100mm);height:var(--label-height-mm,150mm);background:#fff!important;margin:0!important;padding:0!important;overflow:hidden!important}body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.print-area{width:var(--label-width-mm,100mm);height:auto;position:absolute;top:0;left:0;box-shadow:none!important;background:0 0!important;border:0!important;margin:0!important;padding:0!important;overflow:hidden!important}#root,.app-shell,.workspace,.preview-panel,.label-print-list{width:var(--label-width-mm,100mm)!important;min-width:0!important;max-width:var(--label-width-mm,100mm)!important;box-shadow:none!important;background:0 0!important;border:0!important;margin:0!important;padding:0!important}.hero-panel,.status-panel,.toolbar,.preset-selector,.company-settings,.empty-state,.label-card__toggle{display:none!important}.workspace,.preview-panel,.label-print-list{height:auto!important;min-height:0!important;max-height:none!important;display:block!important;overflow:hidden!important}.preview-grid{grid-template-columns:none!important;gap:0!important;display:block!important}.label-card,.label-print{box-sizing:border-box;break-inside:avoid;page-break-inside:avoid;width:var(--label-width-mm,100mm)!important;height:var(--label-height-mm,150mm)!important;min-width:var(--label-width-mm,100mm)!important;max-width:var(--label-width-mm,100mm)!important;min-height:var(--label-height-mm,150mm)!important;max-height:var(--label-height-mm,150mm)!important;writing-mode:horizontal-tb!important;transform:rotate(0)!important}.label-card{break-after:page;page-break-after:always;margin:0!important;padding:0!important;display:block!important;overflow:hidden!important}.label-card:last-child{break-after:auto;page-break-after:auto}.label-card--hide-on-print{display:none!important}.label-print{box-shadow:none!important;background:#fff!important;border:0!important;border-radius:0!important;margin:0!important;padding:8mm 7mm 7mm!important;display:block!important;overflow:hidden!important}.label-card__header{align-items:flex-start!important;gap:6px!important;margin-bottom:4mm!important;padding-right:0!important;display:flex!important}.label-card__logo{width:14mm!important;max-height:11mm!important}.label-card__company-name{font-size:11pt!important}.label-card__company-subtitle{font-size:7.4pt!important}.label-card__qr-canvas{width:52px!important;height:52px!important}.label-card__eyebrow{margin-bottom:4px!important;padding:3px 8px!important;font-size:8pt!important}.label-card__headline{font-size:12.5pt!important;line-height:1.05!important}.label-card__body{display:block!important}.label-field{border-bottom:1px solid #7d918a5c!important;width:100%!important;margin:0 0 2.2mm!important;padding:0 0 2.2mm!important;display:block!important}.label-field:last-child{border-bottom:0!important;margin-bottom:0!important;padding-bottom:0!important}.label-field__name{margin-bottom:.8mm!important;font-size:7pt!important;line-height:1.05!important;display:block!important}.label-field__value{width:100%!important;font-size:11pt!important;line-height:1.05!important;display:block!important}.label-field__value--obra{font-size:13pt!important}.label-field__value--medidas{font-size:16pt!important}.label-field__value--cantidad{font-size:18pt!important}.label-field__value--dvh{font-size:13.5pt!important}.label-field__value--notes{max-height:14mm!important;font-size:8.6pt!important;line-height:1.05!important;overflow:hidden!important}}.sheet-selector{border:1px solid var(--border-color);box-shadow:var(--shadow-soft);background:var(--panel-color);border-radius:24px;justify-content:space-between;align-items:center;gap:18px;padding:18px 20px;display:flex}.sheet-selector__copy{gap:8px;display:grid}.sheet-selector__copy h2{color:var(--heading-color);margin:0;font-size:1.18rem}.sheet-selector__copy p{color:var(--muted-color);margin:0}.sheet-selector__field{min-width:min(320px,100%);color:var(--muted-color);gap:8px;font-weight:700;display:grid}.sheet-selector__field select{min-height:48px;color:var(--heading-color);font:inherit;background:#eff4f0;border:1px solid #1f5c4d2e;border-radius:14px;padding:0 14px;font-weight:700}@media (width<=760px){.sheet-selector{flex-direction:column;align-items:stretch}}.import-summary{border:1px solid var(--border-color);background:var(--panel-color);box-shadow:var(--shadow-soft);border-radius:16px;flex-direction:column;gap:12px;padding:16px 20px;display:flex}.import-summary__title{color:var(--heading-color);letter-spacing:.03em;text-transform:uppercase;margin:0;font-size:.9rem;font-weight:700}.import-summary__tables{flex-direction:column;gap:6px;display:flex}.import-summary__table-row{color:var(--body-color);align-items:center;gap:10px;font-size:.88rem;display:flex}.import-summary__badge{color:var(--accent-color);background:#1f5c4d1a;border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:700}.import-summary__totals{border-top:1px solid var(--border-color);color:var(--body-color);align-items:center;gap:16px;padding-top:8px;font-size:.88rem;display:flex}.import-summary__warn{color:#b45309}.import-summary__error{color:#b91c1c}.import-summary__ignored{color:var(--muted-color)}
