:root{--bg:#f3f6fb;--panel:#fff;--ink:#0f172a;--muted:#64748b;--line:#e2e8f0;--blue:#102a66;--blue2:#0b1f4d;--accent:#2563eb;--success:#16a34a;--danger:#dc2626;--warning:#f59e0b;--radius:20px;--shadow:0 18px 40px rgba(15,23,42,.08)}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top left,#eaf2ff 0,#f6f8fc 33%,#f3f6fb 100%);color:var(--ink);font-family:Inter,Segoe UI,Arial,sans-serif}.sidebar{position:fixed;left:0;top:0;bottom:0;width:286px;background:linear-gradient(180deg,#071a44,#102a66 55%,#132f70);color:white;padding:22px;display:flex;flex-direction:column;gap:9px;box-shadow:20px 0 45px rgba(15,23,42,.14);z-index:5}.brand{display:flex;gap:13px;align-items:center;margin-bottom:18px}.brand strong{font-size:20px}.brand span{display:block;color:#bfdbfe;font-size:12px;margin-top:3px}.logo-slot{width:58px;height:58px;border:2px dashed rgba(255,255,255,.55);border-radius:17px;display:grid;place-items:center;font-size:11px;color:#dbeafe;background:rgba(255,255,255,.08)}.nav{border:0;border-radius:15px;background:transparent;color:#dbeafe;text-align:left;padding:13px 15px;font-weight:800;cursor:pointer;transition:.15s}.nav:hover,.nav.active{background:rgba(255,255,255,.14);color:white;transform:translateX(2px)}.nav.muted{opacity:.72}.nav-group-title{font-size:11px;text-transform:uppercase;letter-spacing:.13em;color:#93c5fd;margin:12px 8px 2px}.app{margin-left:286px;min-height:100vh;padding:24px 28px}.topbar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.14em;font-weight:900;color:#2563eb}.topbar h1{margin:4px 0 0;font-size:31px}.topbar p{margin:6px 0 0;color:var(--muted)}.top-actions{display:flex;gap:10px;align-items:center}input,select,textarea{border:1px solid var(--line);border-radius:13px;padding:12px;background:white;font:inherit;min-height:44px;width:100%;outline:none}input:focus,select:focus,textarea:focus{border-color:#93c5fd;box-shadow:0 0 0 4px rgba(37,99,235,.08)}textarea{min-height:76px;resize:vertical}.btn{border:0;border-radius:13px;padding:12px 16px;font-weight:900;cursor:pointer;background:#e2e8f0;color:#0f172a;white-space:nowrap}.btn.primary{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:white}.btn.success{background:#dcfce7;color:#166534}.btn.danger{background:#fee2e2;color:#991b1b}.btn.ghost{background:white;border:1px solid var(--line)}.btn.small{padding:8px 10px;font-size:12px}.view{display:none}.view.active{display:block}.grid{display:grid;gap:16px}.grid.kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.card,.panel{background:rgba(255,255,255,.94);border:1px solid rgba(226,232,240,.92);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.panel h2{margin:0 0 14px}.kpi{position:relative;overflow:hidden}.kpi:after{content:"";position:absolute;right:-26px;top:-26px;width:92px;height:92px;border-radius:999px;background:rgba(37,99,235,.08)}.kpi b{font-size:34px;display:block}.kpi span{color:var(--muted);font-weight:800}.split{display:grid;grid-template-columns:1.35fr .85fr;gap:18px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.field label{display:block;font-size:12px;color:var(--muted);font-weight:900;margin-bottom:6px;text-transform:uppercase}.field.full{grid-column:1/-1}.section-title{font-size:13px;text-transform:uppercase;letter-spacing:.12em;font-weight:950;color:#1d4ed8;margin:20px 0 10px}.products-editor{border:1px dashed #bfdbfe;border-radius:18px;padding:12px;background:#f8fbff}.product-row{display:grid;grid-template-columns:1fr 150px 1fr 44px;gap:8px;margin-bottom:8px}.checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.check{display:flex;gap:8px;align-items:center;background:#f8fafc;border:1px solid var(--line);padding:10px;border-radius:13px;font-weight:800}.check input{width:auto;min-height:auto}.label-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.monopoly{position:relative;overflow:hidden;border:2px solid #111827;border-radius:18px;background:#fff;padding:13px;min-height:318px;box-shadow:0 12px 26px rgba(15,23,42,.14)}.label-color{height:45px;margin:-13px -13px 10px;border-bottom:2px solid #111827;background:#2563eb}.label-head{display:flex;justify-content:space-between;align-items:center;font-size:19px}.label-head .area{font-size:12px;background:#f1f5f9;border-radius:999px;padding:5px 9px;font-weight:950}.patient{font-weight:950;text-transform:uppercase;margin:8px 0;font-size:15px}.meta{font-size:12px;color:var(--muted);font-weight:900}.diet{font-weight:950;margin:10px 0;background:#f8fafc;border-radius:11px;padding:8px}.products{padding-left:18px;margin:8px 0}.products li{margin:4px 0;font-weight:800}.notes{font-size:12px;color:#334155;background:#fff7ed;border-radius:11px;padding:8px;min-height:28px}.restriction-line{font-size:11px;color:#7c2d12;margin-top:6px;font-weight:900}.card-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.filters{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}.table{width:100%;border-collapse:collapse;background:white;border-radius:16px;overflow:hidden}.table th,.table td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.table th{font-size:12px;color:var(--muted);text-transform:uppercase;background:#f8fafc}.area-dot{width:12px;height:12px;border-radius:50%;display:inline-block;margin-right:8px}.toast{position:fixed;right:20px;bottom:20px;background:#0f172a;color:white;padding:12px 16px;border-radius:12px;box-shadow:var(--shadow);z-index:50}.toolbar{display:flex;gap:10px;justify-content:space-between;align-items:center;margin-bottom:14px}.toolbar .left,.toolbar .right{display:flex;gap:10px;align-items:center}.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:#eef2ff;color:#3730a3;padding:6px 10px;font-weight:900;font-size:12px}.summary-block{border:1px solid var(--line);background:#fff;border-radius:16px;padding:14px;margin-bottom:10px}.summary-block h3{margin:0 0 10px}.summary-line{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px dashed #e2e8f0;font-weight:850}.summary-line:last-child{border-bottom:0}.preview-sticky{position:sticky;top:18px}.empty{padding:28px;text-align:center;color:var(--muted);font-weight:800}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);display:grid;place-items:center;z-index:20}.modal{background:white;border-radius:22px;padding:20px;width:min(560px,92vw);box-shadow:0 25px 70px rgba(15,23,42,.25)}
@media(max-width:1050px){.grid.kpis{grid-template-columns:repeat(2,1fr)}.split,.form-grid{grid-template-columns:1fr}.preview-sticky{position:static}.product-row{grid-template-columns:1fr 120px}.product-row>*:nth-child(3){grid-column:1/-1}}@media(max-width:820px){.sidebar{position:static;width:auto}.app{margin-left:0;padding:16px}.topbar{display:block}.top-actions{margin-top:12px}.grid.kpis{grid-template-columns:1fr}.checks{grid-template-columns:1fr}}
@media print{body{background:white}.sidebar,.topbar,.no-print,.filters,.toolbar{display:none!important}.app{margin:0;padding:0}.view{display:block}.panel{box-shadow:none;border:0}.label-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8mm}.monopoly{break-inside:avoid;box-shadow:none}.view:not(.print-target){display:none!important}}

/* ===== NutriLabel V2.2 Premium operative fixes ===== */
.sidebar{width:300px;background:linear-gradient(180deg,#061b3f,#08265d 48%,#0f3478);padding:28px 18px}.app{margin-left:300px;padding:28px 36px}.brand strong{font-size:24px;text-transform:uppercase}.nav{font-size:15px;padding:15px 18px;border-radius:12px}.nav.active{background:linear-gradient(135deg,rgba(34,197,94,.85),rgba(20,83,45,.55));box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}.topbar{padding-bottom:10px;border-bottom:1px solid rgba(226,232,240,.55)}.topbar h1{font-size:34px;letter-spacing:-.03em}.top-actions input{width:170px}.premium-kpi-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px;margin-bottom:24px}.premium-kpi{background:#fff;border:1px solid #e5edf8;border-radius:14px;min-height:154px;padding:24px;box-shadow:0 10px 26px rgba(15,23,42,.08);position:relative;overflow:hidden;border-bottom:4px solid var(--c)}.premium-kpi .kpi-icon{width:58px;height:58px;border-radius:999px;display:grid;place-items:center;background:color-mix(in srgb, var(--c) 18%, white);font-size:27px;margin-bottom:12px}.premium-kpi small{font-weight:950;text-transform:uppercase;color:#0f172a}.premium-kpi b{display:block;font-size:42px;margin-top:20px;line-height:1}.premium-kpi span{display:block;color:#475569;margin-top:8px;font-size:18px}.action-panel{padding:28px}.action-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.action-card{text-align:left;border-radius:14px;padding:22px;background:white;border:1px solid #dbeafe;cursor:pointer;min-height:110px}.action-card span{font-size:34px}.action-card b{display:block;margin-top:8px}.action-card small{display:block;color:#475569;margin-top:6px;font-size:14px}.action-card.green{background:#f0fdf4;border-color:#bbf7d0}.action-card.blue{background:#eff6ff;border-color:#bfdbfe}.action-card.purple{background:#faf5ff;border-color:#ddd6fe}.action-card.orange{background:#fff7ed;border-color:#fed7aa}.product-top .bar{height:5px;background:#e2e8f0;border-radius:999px}.product-top .bar span{display:block;height:5px;background:#22c55e;border-radius:999px}.new-label-layout{display:grid;grid-template-columns:minmax(0,1.55fr) 470px;gap:24px}.form-premium h2,.preview-title h2{font-size:18px;margin:6px 0 18px}.form-premium h2:not(:first-child){margin-top:28px}.preview-title{display:flex;justify-content:space-between;align-items:center}.checks{max-height:360px;overflow:auto;padding-right:5px}.check{background:white}.product-row{grid-template-columns:1.25fr 160px 1.25fr 48px;border:1px dashed #bfdbfe;background:#f8fbff;padding:10px;border-radius:16px}.sticky-actions{position:sticky;bottom:0;background:linear-gradient(180deg,rgba(255,255,255,.2),white 45%);padding-top:16px}.summary-filters{display:grid;grid-template-columns:160px 190px 220px 1fr auto auto;gap:14px;margin-bottom:18px}.summary-charts{display:grid;grid-template-columns:1fr 1fr;gap:18px}.labels-toolbar{display:flex;justify-content:space-between;gap:16px;margin-bottom:18px}.labels-toolbar .left,.labels-toolbar .right{display:flex;gap:10px;align-items:center}.labels-toolbar select{width:180px}.labels-toolbar input{width:310px}.labels-count{margin:8px 0 16px;color:#475569}.hidden-card{display:none!important}.label-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.monopoly{border:2.5px solid #0f172a;border-radius:18px;min-height:348px;padding:16px}.label-color{height:42px;margin:-16px -16px 14px;border-bottom:2.5px solid #0f172a}.label-head{font-size:23px}.pick-label{width:42px!important;height:42px;min-height:42px;border:1px solid #94a3b8}.patient{font-size:16px;line-height:1.2}.diet{font-size:16px}.products li{display:grid;grid-template-columns:1fr auto;gap:8px;font-size:15px}.products li small{grid-column:1/-1;color:#475569;font-size:12px;font-weight:600}.notes{margin-top:10px}.table .pill{margin:2px}.area-dot{vertical-align:middle}.print-sheet{background:white!important;margin:0;padding:0}.print-grid{display:grid;grid-template-columns:repeat(3,62mm);gap:8mm;padding:12mm}.print-single{background:white!important;padding:10mm}.print-single .monopoly{width:80mm;min-height:110mm}
@media(max-width:1200px){.premium-kpi-row{grid-template-columns:repeat(3,1fr)}.action-cards{grid-template-columns:repeat(2,1fr)}.new-label-layout{grid-template-columns:1fr}.summary-filters,.summary-charts{grid-template-columns:1fr}.preview-sticky{position:static}}@media(max-width:820px){.sidebar{width:auto}.app{margin-left:0}.premium-kpi-row{grid-template-columns:1fr}.action-cards{grid-template-columns:1fr}.labels-toolbar{display:block}.labels-toolbar .left,.labels-toolbar .right{margin-bottom:10px;flex-wrap:wrap}.labels-toolbar select,.labels-toolbar input{width:100%}}
@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}body{background:white!important}.sidebar,.topbar,.no-print,.filters,.toolbar,.labels-toolbar,.labels-count{display:none!important}.app{margin:0!important;padding:0!important}.view{display:block}.view:not(.print-target){display:none!important}.print-target{display:block!important}.label-grid,.print-grid{display:grid!important;grid-template-columns:repeat(3,62mm)!important;gap:8mm!important;padding:8mm!important}.monopoly{break-inside:avoid!important;page-break-inside:avoid!important;box-shadow:none!important;border:2px solid #0f172a!important;border-radius:12px!important;min-height:100mm!important}.label-color{display:block!important;height:12mm!important;border-bottom:2px solid #0f172a!important}.card-actions,.pick-label{display:none!important}.notes{background:#fff7ed!important}.diet{background:#f8fafc!important}}

/* ===== NutriLabel V2.3 responsive + impresión estable ===== */
.new-label-layout{display:grid;grid-template-columns:minmax(620px,1.35fr) minmax(360px,.85fr);gap:22px;align-items:start}.form-premium{padding:22px}.form-premium h2{font-size:19px;margin:8px 0 16px}.preview-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.product-row.product-row-clean{display:grid;grid-template-columns:minmax(260px,1fr) minmax(150px,190px) 52px;gap:10px;align-items:center;margin-bottom:10px}.product-row.product-row-clean select{min-width:0}.custom-restriction-row{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:12px}.hidden-card{display:none!important}.label-card .products li{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:start}.label-card .products li small{grid-column:1/-1;color:#64748b;font-weight:700;font-size:11px}.labels-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.labels-toolbar .left,.labels-toolbar .right{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.labels-toolbar select,.labels-toolbar input{width:auto;min-width:180px}.summary-filters{display:grid;grid-template-columns:160px 200px 240px minmax(230px,1fr) auto auto;gap:12px;margin-bottom:18px}.summary-charts{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.summary-charts canvas{max-height:270px}.summary-block{background:linear-gradient(135deg,#ffffff,#f8fbff);border:1px solid #dbeafe}.summary-block h3{color:#0f172a;letter-spacing:.02em}.table td:last-child,.table th:last-child{background:#eff6ff;font-weight:950}.print-area{display:none}.printing-labels .sidebar,.printing-labels .app,.printing-labels .topbar{display:none!important}.printing-labels .print-area{display:block!important;padding:10mm;background:white}.print-grid{display:grid;grid-template-columns:repeat(3,64mm);gap:8mm;align-items:start}.print-grid .monopoly{width:64mm;min-height:92mm;box-shadow:none!important;break-inside:avoid;page-break-inside:avoid}.label-color{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.btn[disabled]{opacity:.55;cursor:not-allowed}
@page{size:A4 portrait;margin:10mm}
@media print{body{background:white!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.printing-labels .print-area{display:block!important}.printing-labels .print-grid{display:grid!important;grid-template-columns:repeat(3,64mm)!important;gap:8mm!important}.printing-labels .monopoly{width:64mm!important;min-height:92mm!important;border:2px solid #111827!important;box-shadow:none!important}.printing-labels .label-color{display:block!important;height:12mm!important}.printing-labels .no-print,.printing-labels .card-actions,.printing-labels .pick-label{display:none!important}}
@media(max-width:1280px){.new-label-layout{grid-template-columns:1fr}.preview-sticky{position:static}.summary-filters{grid-template-columns:repeat(3,1fr)}.summary-charts{grid-template-columns:1fr}.product-row.product-row-clean{grid-template-columns:minmax(250px,1fr) 160px 52px}}
@media(max-width:900px){.sidebar{position:static;width:100%;min-height:auto;display:block;padding:14px}.brand{margin-bottom:10px}.nav{display:inline-block;margin:4px}.nav-group-title{margin-top:12px}.app{margin-left:0;padding:16px}.topbar{display:block}.top-actions{margin-top:12px}.form-grid{grid-template-columns:1fr 1fr}.new-label-layout{grid-template-columns:1fr}.labels-toolbar .left,.labels-toolbar .right{width:100%}.labels-toolbar select,.labels-toolbar input{width:100%;min-width:0}.summary-filters{grid-template-columns:1fr 1fr}.label-grid{grid-template-columns:repeat(auto-fill,minmax(235px,1fr))}.checks{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.app{padding:12px}.topbar h1{font-size:25px}.form-grid,.summary-filters,.custom-restriction-row,.checks{grid-template-columns:1fr}.product-row.product-row-clean{grid-template-columns:1fr 120px 48px}.product-row.product-row-clean .p-id{grid-column:1/-1}.label-grid{grid-template-columns:1fr}.monopoly{min-height:0}.grid.kpis{grid-template-columns:1fr}.card,.panel{padding:14px;border-radius:16px}.print-grid{grid-template-columns:1fr}}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.panel-head h2{margin:0}.premium-chart{background:linear-gradient(135deg,#fff,#f8fbff)}.calc-table-panel{margin-top:18px;border:1px solid #bfdbfe}.table-scroll{overflow:auto}.calc-table{min-width:780px}.calc-table th{text-align:center}.calc-table td:not(:first-child):not(:nth-child(2)){text-align:center}.calc-table tbody tr:hover{background:#f8fbff}.calc-table .total-row td{background:#eff6ff;border-top:2px solid #bfdbfe;font-weight:950}.calc-table td:last-child{color:#1d4ed8}
/* quitar scroll interno pesado en restricciones; la página responde completa */
.checks{max-height:none!important;overflow:visible!important}

/* ===== NutriLabel V2.4 usuarios, vista en vivo y reportes ===== */
.role-hidden{display:none!important}.user-chip{display:flex;flex-direction:column;align-items:flex-start;border:1px solid #dbeafe;background:#fff;border-radius:14px;padding:8px 12px;min-width:150px}.user-chip b{font-size:13px}.user-chip span{font-size:11px;color:#2563eb;font-weight:900;text-transform:uppercase}.login-overlay{display:none;position:fixed;inset:0;background:linear-gradient(135deg,#061b3f,#102a66);z-index:200;align-items:center;justify-content:center;padding:20px}.login-overlay.show{display:flex}.login-card{width:min(440px,94vw);background:#fff;border-radius:26px;padding:28px;box-shadow:0 30px 90px rgba(0,0,0,.28)}.login-brand{display:flex;gap:14px;align-items:center;margin-bottom:22px}.login-brand h2{margin:0;font-size:28px}.login-brand p{margin:4px 0 0;color:#64748b}.login-card label{display:block;font-weight:900;color:#475569;margin:14px 0 6px}.login-card button{width:100%;margin-top:18px}.login-help{font-size:12px;color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:12px;margin-top:14px}.live-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,.7fr);gap:20px}.live-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}.live-dot{font-size:12px;font-weight:950;color:#16a34a;background:#dcfce7;border-radius:999px;padding:7px 10px}.live-kitchen{position:sticky;top:20px;align-self:start}.kitchen-item,.kitchen-line{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #dbeafe;background:linear-gradient(135deg,#fff,#f8fbff);border-radius:15px;padding:14px;margin-bottom:10px}.kitchen-item b,.kitchen-line b{display:block}.kitchen-item small,.kitchen-line small{display:block;margin-top:7px;color:#334155;font-weight:900}.kitchen-item strong,.kitchen-line strong{font-size:22px;color:#1d4ed8}.role-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.role-card{background:linear-gradient(135deg,#fff,#f8fbff);border:1px solid #dbeafe;border-radius:18px;padding:16px;box-shadow:var(--shadow)}.role-card b{display:block;font-size:17px}.role-card span{display:block;color:#64748b;margin-top:7px}.chart-wrap{height:260px;position:relative}.chart-card{min-height:380px}.chart-note,.muted-text{color:#64748b;margin:8px 0 12px}.summary-charts-premium{align-items:stretch}.kitchen-card{max-height:430px;overflow:auto}.kitchen-card .panel-head{position:sticky;top:0;background:#fff;z-index:1;padding-bottom:8px}.calc-table-panel .panel-head{border-bottom:1px solid #dbeafe;padding-bottom:12px}.calc-table th{background:#eaf2ff!important;color:#1e3a8a!important}.calc-table td{font-size:14px}.calc-table td:first-child{font-weight:950}.calc-table .total-row td{font-size:15px;background:#dbeafe!important}.summary-filters{background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:14px;box-shadow:0 10px 26px rgba(15,23,42,.06)}
@media(max-width:1150px){.live-layout{grid-template-columns:1fr}.role-cards{grid-template-columns:repeat(2,1fr)}.user-chip{min-width:0}.top-actions{flex-wrap:wrap;justify-content:flex-end}}
@media(max-width:720px){.role-cards{grid-template-columns:1fr}.live-grid{grid-template-columns:1fr}.chart-wrap{height:220px}.top-actions{justify-content:flex-start}.user-chip{width:100%}}
