*{box-sizing:border-box}:root{--red:#94101b;--red-dark:#730914;--black:#17191e;--ink:#20242c;--muted:#646d80;--line:#e6e9ef;--line-strong:#cfd4dc;--bg:#f5f6f9;--surface-2:#f1f3f6;--white:#fff;--soft:#fbefef;--red-line:#e3b9bc;--success:#21623d;--success-bg:#edf7ee;--warn:#a77523;--warn-bg:#fff6e5;--r-sm:6px;--r-md:8px;--r-lg:12px;--shadow-card:0 1px 3px rgb(23 25 30 / .06);--shadow-float:0 20px 60px rgb(23 25 30 / .18)}body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#fff 0%,var(--bg) 55%,var(--soft) 100%)}.login-card{width:min(460px,100%);padding:34px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-float);text-align:center}.login-logo{display:block;width:min(330px,90%);max-height:250px;object-fit:contain;margin:0 auto 8px}.login-subtitle{font-weight:800;margin:0 0 24px}.login-card form{display:grid;gap:14px;text-align:left}.login-card small{display:block;margin-top:18px;color:var(--muted)}.check-line{flex-direction:row;align-items:center;font-weight:600}.check-line input{width:auto}.full-button{width:100%}.icon-button{border:0;background:transparent;color:inherit;font-size:24px}.workspace{min-height:100vh;margin-left:260px}.topbar{position:sticky;top:0;z-index:10;height:68px;display:flex;align-items:center;gap:14px;padding:0 28px;background:var(--white);border-bottom:1px solid var(--line)}.topbar>div{display:flex;flex:1;flex-direction:column}.topbar small{color:var(--muted)}main{max-width:1340px;margin:auto;padding:32px}.view{display:none}.view.active{display:block}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:24px}.eyebrow{margin:0 0 7px;color:var(--red);font-size:12px;font-weight:900;letter-spacing:.14em}h1,h2,p{margin-top:0}h1{margin-bottom:8px;font-size:27px}h2{margin-bottom:5px}.page-heading p{color:var(--muted)}.primary-button,.secondary-button{border:0;border-radius:var(--r-md);padding:11px 16px;font-weight:850}.primary-button{background:var(--red);color:white}.primary-button:hover{background:var(--red-dark)}.secondary-button{background:var(--surface-2);color:var(--black)}.button-row{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}.badge{display:inline-flex;width:max-content;padding:5px 10px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:12px;font-weight:850}.badge.success{background:var(--success-bg);color:var(--success)}.module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.module-card{min-height:180px;display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding:24px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--white);text-align:left;box-shadow:var(--shadow-card)}.module-card:not(.disabled):hover{border-color:var(--red);transform:translateY(-2px)}.module-card b{font-size:27px;color:var(--red)}.module-card strong{font-size:18px}.module-card small{color:var(--muted)}.module-card.disabled{opacity:.55;cursor:not-allowed}.summary-grid,.context-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.summary-card,.context-grid article,.panel{padding:20px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--white);box-shadow:var(--shadow-card)}.summary-card,.context-grid article{display:flex;flex-direction:column;gap:5px}.summary-card span,.summary-card small,.context-grid span,.panel small{color:var(--muted)}.summary-card strong,.context-grid strong{font-size:24px}.panel{margin-bottom:18px}.panel-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:16px}.toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:15px}.toolbar input{max-width:530px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--r-md);background:var(--white);margin-bottom:16px}table{width:100%;min-width:700px;border-collapse:collapse}th,td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line)}th{background:var(--surface-2);font-size:13px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}label{display:flex;flex-direction:column;gap:7px;font-weight:750}input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--white)}input:focus,select:focus,textarea:focus{outline:2px solid var(--red);outline-offset:2px;border-color:var(--red)}fieldset{margin:18px 0;padding:14px;border:1px solid var(--line);border-radius:var(--r-md)}.check-line,.radio-line{display:flex;flex-direction:row;align-items:center;gap:8px}.radio-line{display:inline-flex;margin-right:20px}.radio-line input{width:auto}.phase-panel{display:grid;grid-template-columns:1fr minmax(230px,320px);gap:22px;align-items:end}.phase-list{columns:2;padding-top:12px}.ingredient-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ingredient-card{display:grid;grid-template-columns:auto 1fr 140px;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:var(--r-md)}.ingredient-card.selected{border-color:var(--red);background:var(--soft)}.ingredient-card input[type=checkbox]{width:auto}.ingredient-card .price{padding:8px}.formulate-bar{text-align:center;margin:24px 0}.big-button{min-width:260px;font-size:16px}.formulate-bar p{margin:10px 0;color:var(--muted)}.result-grid,.technical-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px}.result-grid>div,.technical-grid>div{display:flex;flex-direction:column;gap:5px;padding:14px;background:var(--surface-2);border-radius:var(--r-md)}.result-grid span,.technical-grid span{color:var(--muted)}details summary{cursor:pointer;color:var(--red);font-weight:850}@media(max-width:900px){.workspace{margin-left:0}main{padding:22px 16px}.summary-grid,.context-grid{grid-template-columns:repeat(2,1fr)}.ingredient-grid,.module-grid{grid-template-columns:1fr}}@media(max-width:600px){.form-grid,.summary-grid,.context-grid,.phase-panel,.result-grid,.technical-grid{grid-template-columns:1fr}.page-heading{flex-direction:column}.login-card{padding:24px}.phase-list{columns:1}}
.action-buttons{display:flex;gap:7px;flex-wrap:wrap}.mini-button{border:1px solid var(--line);background:var(--white);border-radius:var(--r-sm);padding:6px 9px;font-size:12px;font-weight:800}.mini-button.danger{color:var(--red);border-color:var(--red-line)}.formulation-mode-panel{display:grid;grid-template-columns:minmax(240px,420px) 1fr;gap:18px;align-items:end}.form-note{color:var(--muted)}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.5)}.modal-card{width:min(520px,100%);padding:24px;background:var(--white);border-radius:var(--r-lg);box-shadow:var(--shadow-float)}.toast{position:fixed;right:22px;bottom:22px;z-index:120;max-width:420px;padding:14px 18px;border-radius:var(--r-lg);background:var(--black);color:#fff;box-shadow:var(--shadow-float)}
@media(max-width:700px){.formulation-mode-panel{grid-template-columns:1fr}}
.ingredient-copy{display:block;min-width:0}.ingredient-category{color:var(--muted);font-weight:750;white-space:nowrap}.ingredient-note{grid-column:1/-1;margin:8px 2px 0;color:var(--muted);font-size:13px}.ingredient-card strong{display:block;line-height:1.3}
.pestanas-acceso{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0 0 18px;padding:4px;border-radius:var(--r-md);background:var(--surface-2)}.pestanas-acceso button{border:0;border-radius:var(--r-sm);padding:9px 8px;background:transparent;color:var(--muted);font-weight:800;font-size:13px}.pestanas-acceso button[aria-selected=true]{background:var(--white);color:var(--red);box-shadow:var(--shadow-card)}.login-card form label{text-align:left}.cuenta-mensaje{min-height:1.2em;margin:12px 0 0;color:var(--ink);font-weight:700}#olvide-contrasena{margin-top:8px}.lista-fincas{display:grid;gap:10px;margin:0 0 16px}.lista-fincas button{width:100%}.franja-pruebas{align-self:flex-start;padding:2px 10px;border-radius:var(--r-sm);background:var(--warn);color:#fff;font-size:12px;font-weight:900;letter-spacing:.14em}.franja-local{align-self:flex-start;padding:2px 10px;border-radius:var(--r-sm);background:var(--warn);color:#fff;font-size:12px;font-weight:800}.franja-pruebas[hidden],.franja-local[hidden],.estado-nube[hidden],.login-card form[hidden]{display:none}.estado-nube{font-size:12px;color:var(--success)!important}.estado-nube.error{color:var(--red)!important;font-weight:800}

.solo-lectura [data-escribe],.no-tecnico [data-solo-tecnico]{display:none!important}.solo-lectura .barra-inferior{grid-template-columns:repeat(4,minmax(0,1fr))}
.lote-cifras>div{display:flex;flex-direction:column;gap:5px;padding:14px;background:var(--surface-2);border-radius:var(--r-md)}.lote-cifras strong{font-size:18px}.lote-card .badge{margin-bottom:12px}
.gerencia-aviso{padding:10px 14px;border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:var(--r-md);background:var(--warn-bg);color:var(--ink);font-size:14px}.gerencia-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}@media(max-width:1100px){.gerencia-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.gerencia-kpis{grid-template-columns:1fr}}
