/* BoviCore 1.1.2: capa de presentación; no contiene políticas nutricionales. */
:root{--red:#94101b;--red-dark:#730914;--black:#17191e;--ink:#20242c;--muted:#646d80;--line:#e6e9ef;--line-strong:#cfd4dc;--bg:#f5f6f9;--surface-2:#f1f3f6;--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{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.workspace{margin-left:226px}.topbar{height:auto;min-height:88px;padding:8px 24px;gap:16px;background:var(--bg);border:0}.header-logo{width:150px;height:73px;object-fit:contain}.topbar .topbar-context{flex:1;gap:5px}.topbar time{font-size:12px;white-space:nowrap;color:var(--muted)}.farm-select-label select{font-size:13px;min-width:170px}.user-controls{position:relative;white-space:nowrap;margin:0}.user-controls summary{color:var(--ink);font-size:13px}.user-controls[open]{background:var(--white);padding:12px;border:1px solid var(--line);border-radius:var(--r-md);z-index:40}.user-controls p{font-size:13px;max-width:180px;white-space:normal;margin:8px 0}.workspace main{padding:0 24px 24px;max-width:1600px}.summary-grid{gap:12px}.summary-card,.panel{border-radius:var(--r-md);box-shadow:var(--shadow-card)}.summary-card{padding:18px 20px;min-height:108px}.summary-card span{font-size:12px}.summary-card strong{font-size:24px;color:var(--ink)}.summary-card small{font-size:12px}.secondary-button{background:var(--surface-2);border:1px solid transparent}.tint-button{background:var(--soft);color:var(--red);border:1px solid var(--red-line);padding:11px 16px;border-radius:var(--r-md)}.text-button{background:none;border:0;padding:5px;color:var(--red);font-size:13px;text-decoration:none}.panel-heading{margin-bottom:10px}.empty-state{color:var(--muted);padding:10px 0}h1{font-size:27px}h2{font-size:18px}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--red);outline-offset:2px}.table-wrap:focus-within{outline:2px solid var(--red)}.login-card{border-radius:var(--r-lg)}.login-card p{font-size:13px;line-height:1.6}.login-logo{width:260px;max-height:190px}#feedlot-frame{display:block;width:100%;height:1500px;border:0;background:transparent;overflow:hidden}#alimentacion{margin-bottom:10px}.badge.success{background:var(--success-bg);color:var(--success)}.topbar .user-controls button{font-size:13px}@media(max-width:1050px){.topbar time{display:none}}@media(max-width:900px){.workspace{margin-left:0}.topbar{padding:8px 14px;gap:10px}.workspace main{padding:0 14px 18px}.header-logo{width:100px}.topbar-context strong{font-size:14px}.farm-select-label select{min-width:130px;max-width:180px}}@media(max-width:600px){.summary-grid{grid-template-columns:1fr 1fr}.summary-card{padding:14px 12px;min-height:95px}.summary-card strong{font-size:18px}.topbar{height:auto;min-height:76px;flex-wrap:wrap}.header-logo{width:92px;height:55px}.farm-select-label{margin-left:42px;flex:1}.farm-select-label select{width:100%;max-width:none}.user-controls{margin-left:auto}.topbar .topbar-context{min-width:100px}.workspace main{padding:0 10px 16px}.summary-grid{gap:8px}}

.nav-icon svg{display:block;width:21px;height:21px}
/* Respaldo y sesión: botones en columna dentro del panel, también en celular */
.user-controls[open]{white-space:normal;max-width:min(260px,calc(100vw - 32px))}
.user-controls[open] button{display:block;width:100%;margin:6px 0}
.user-controls #backup-message{display:block;font-size:13px;color:var(--muted);margin:4px 0}
.user-controls #backup-message:empty{display:none}
/* Indicadores sin dato: texto secundario en lugar de cifra grande */
.summary-card strong.sin-dato{font-size:14px;font-weight:600;color:var(--muted)}

/* Dietas por lote */
.dietas-panel{margin-bottom:16px;padding:17px}.dietas-nota{font-size:13px;line-height:1.6;color:var(--muted);margin:0 0 10px}.dietas-panel td small{color:var(--muted)}.activar-form{display:grid;gap:10px;max-width:420px;margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2)}.activar-form label{display:grid;gap:4px;font-size:13px;font-weight:600}.activar-form h3{margin:0;font-size:15px}
.dietas-panel table{min-width:760px;font-size:13px}.dietas-panel td{vertical-align:top}.dietas-panel td:nth-child(5){white-space:nowrap}.dietas-panel details summary{cursor:pointer;color:var(--red);font-size:12px}
.activar-form[hidden]{display:none}

/* Plataforma: rail de módulos + submenú (computadora) y barra inferior (celular, < 768 px) */
.rail{position:fixed;inset:0 auto 0 0;z-index:20;width:72px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 6px;background:var(--black);color:var(--white)}
.rail-logo{width:40px;height:40px;object-fit:contain;border-radius:var(--r-md);margin-bottom:10px;background:var(--white)}
.rail-item{width:60px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 2px;border:0;border-radius:var(--r-md);background:transparent;color:inherit;font:inherit;font-size:12px;line-height:1.2;text-align:center;cursor:pointer}
.rail-item:hover{background:var(--ink)}
.rail-item.active{background:var(--red);color:var(--white)}
.rail-item .nav-icon svg,.barra-inferior .nav-icon svg{display:block;width:21px;height:21px}
.rail-pie{margin-top:auto;display:flex;flex-direction:column;gap:6px}
.submenu{position:fixed;inset:0 auto 0 72px;z-index:19;width:184px;padding:22px 12px;background:var(--white);border-right:1px solid var(--line)}
.submenu-grupo{display:flex;flex-direction:column;gap:4px}
.submenu-grupo[hidden]{display:none}
.submenu-titulo{margin:0 10px 10px;font-size:16px;font-weight:800;color:var(--ink)}
.submenu .nav-item{display:block;width:100%;padding:10px 12px;border:0;border-radius:var(--r-md);background:transparent;color:var(--muted);font:inherit;font-size:14px;text-align:left;cursor:pointer}
.submenu .nav-item:hover{background:var(--soft);color:var(--red)}
.submenu .nav-item.active{background:var(--soft);color:var(--red);font-weight:700}
.workspace{margin-left:256px}
.app:has(#papelera.view.active) .workspace{margin-left:72px}
.app:has(#papelera.view.active) .submenu{display:none}
.barra-inferior,.mas-menu{display:none}
.api-status{margin:0;max-width:320px;font-size:12px;color:var(--muted)}
.api-status.success{color:var(--success)}
/* Tablero Operativo */
.operativo-cifras{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.operativo-cifras .summary-card small{display:block}
#inicio.active{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:14px;align-items:start}
#inicio .operativo-cifras{grid-column:1/-1;margin:0}
.operativo-tareas,.operativo-pesajes{min-width:0}
.tareas{list-style:none;margin:0;padding:0}
.tarea{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px dashed var(--line)}
.tarea:last-child{border-bottom:0}
.tarea strong{display:block;font-size:14px}
.tarea small{display:block;font-size:12px;color:var(--muted)}
.estado-tarea{flex:none;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}
.estado-hoy{background:var(--surface-2);color:var(--ink)}
.estado-pendiente{background:var(--warn-bg);color:var(--warn)}
.estado-vencida{background:var(--soft);color:var(--red)}
.plazo-pesaje{display:flex;flex-direction:row;align-items:center;gap:8px;margin-top:12px;font-size:13px;color:var(--muted)}
.operativo-pesajes table{min-width:0}
.plazo-pesaje input{width:80px}
.login-foto{position:fixed;inset:0;width:100%;height:100%;object-fit:cover;max-width:100%;opacity:.18;pointer-events:none}
.login-card{position:relative}
@media(max-width:767px){
  .app{display:flex;flex-direction:column}
  .workspace{display:contents;margin-left:0}
  .app:has(#papelera.view.active) .workspace{margin-left:0}
  .topbar{order:1}
  .rail,#registrar-pesaje{display:none}
  .api-status{flex-basis:100%;max-width:none}
  .submenu{order:2;min-width:0;position:static;width:auto;padding:6px 10px;border-right:0;border-bottom:1px solid var(--line);overflow-x:auto}
  .submenu-grupo{flex-direction:row;gap:6px}
  .submenu-grupo:not([hidden]){display:flex}
  .submenu-titulo{display:none}
  .submenu .nav-item{width:auto;white-space:nowrap;padding:8px 12px}
  .workspace main{order:3;width:100%;max-width:100%;min-width:0;padding-bottom:96px}
  .barra-inferior{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;inset:auto 0 0 0;z-index:30;padding:6px 6px env(safe-area-inset-bottom,0px);background:var(--white);border-top:1px solid var(--line)}
  .barra-item,.barra-mas,.barra-central{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;border:0;background:transparent;color:var(--muted);font:inherit;font-size:12px;line-height:1.2;text-align:center;cursor:pointer}
  .barra-item.active{color:var(--red);font-weight:700}
  .barra-central{color:var(--red);font-weight:700}
  .barra-central .nav-icon{display:grid;place-items:center;width:44px;height:44px;margin-top:-22px;border-radius:50%;background:var(--red);color:var(--white)}
  .mas-menu:not([hidden]){display:grid;position:fixed;inset:auto 10px 76px auto;z-index:31;min-width:180px;padding:6px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-float)}
  .mas-item{padding:12px 14px;border:0;background:transparent;color:var(--ink);font:inherit;font-size:14px;text-align:left;cursor:pointer;border-radius:var(--r-md)}
  .mas-item:hover{background:var(--soft);color:var(--red)}
  #inicio.active{display:flex;flex-direction:column}
  .operativo-tareas{order:1}
  #inicio .operativo-cifras{order:2;grid-template-columns:1fr 1fr}
  .operativo-cifras .summary-card:nth-child(n+3){display:none}
  .operativo-pesajes{order:3}
  #inicio>*{min-width:0;max-width:100%}
  .operativo-pesajes .table-wrap{max-width:100%}
  /* campo-tactil-movil */
  /* Lo que se toca mide 48 px (Material 48 dp; Apple y WCAG 2.5.5, 44 px) y la barra respeta el margen seguro */
  .mini-button,.submenu .nav-item,.mas-item,.text-button{min-height:48px}
  .mini-button{padding-left:14px;padding-right:14px}
  .action-buttons{gap:8px}
  .workspace main{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
  .mas-menu:not([hidden]){bottom:calc(76px + env(safe-area-inset-bottom,0px))}
  .toast{left:10px;right:10px;max-width:none;bottom:calc(76px + env(safe-area-inset-bottom,0px))}
  .topbar{padding-left:max(14px,env(safe-area-inset-left,0px));padding-right:max(14px,env(safe-area-inset-right,0px))}
  /* Pesaje individual: una tarjeta por animal, sin desplazar la tabla de lado */
  .busqueda-pesaje{display:grid;gap:6px;margin-bottom:12px}
  .busqueda-pesaje p{margin:0;color:var(--muted);font-size:13px}
  #individual-search,.individual-weight{min-height:48px;font-size:16px}
  #individual-mode .table-wrap{border:0;background:transparent;overflow:visible}
  #individual-mode table{min-width:0}
  #individual-mode thead{display:none}
  #individual-weights-body tr{display:block;margin-bottom:10px;padding:12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--white)}
  #individual-weights-body td{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 0;border:0;text-align:right}
  #individual-weights-body td::before{content:attr(data-label);color:var(--muted);font-size:13px;font-weight:700;text-align:left}
  #individual-weights-body .individual-weight{max-width:150px}
  /* fin campo-tactil-movil */
}
.user-controls:not([open])>:not(summary){display:none}
/* Menú de cuenta: el panel flota bajo el rótulo, sin agrandar ni tapar la barra superior */
.user-controls[open]{background:none;padding:0;border:0;max-width:none}
.user-controls .user-menu{position:absolute;right:0;top:calc(100% + 8px);width:min(260px,calc(100vw - 32px));background:var(--white);padding:12px;border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-card);z-index:40;white-space:normal}
#inicio .operativo-lotes{grid-column:1/-1;margin:0;min-width:0}.inicio-lotes{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-bottom:10px}.lote-mini{display:flex;flex-direction:column;gap:4px;padding:14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2)}.lote-mini small{color:var(--muted)}.ficha-animal h3{margin:16px 0 6px}
.tarea-grupo{list-style:none;margin:12px 0 4px;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.06em}
#inicio .operativo-animales,#inicio .inicio-sin-lotes{grid-column:1/-1;margin:0}.inicio-animales{margin:0;font-weight:700}.inicio-resumen-tareas{margin:0 0 10px;font-weight:800}.aviso-gdp{color:var(--warn);font-weight:800}
.diet-detail{margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--white)}.diet-detail[hidden]{display:none}.diet-detail:focus{outline:none}
.diet-detail-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.diet-detail-head h3{margin:0}.diet-detail h4{margin:16px 0 8px;font-size:14px}
.diet-detail table{font-size:13px}.diet-detail td:nth-child(n+3){white-space:nowrap}.diet-detail tr.total td{font-weight:700;border-top:2px solid var(--line-strong)}.diet-detail small{display:block;margin-top:6px;color:var(--muted);line-height:1.5}
.cumple{display:inline-flex;align-items:center;gap:8px}.cumple .barra{display:inline-block;width:90px;height:8px;border-radius:var(--r-sm);background:var(--soft);overflow:hidden}.cumple .barra>span{display:block;height:100%;background:var(--red)}.cumple.ok .barra>span{background:var(--success)}
.perfil-ms{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}.perfil-ms li{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-md);font-size:13px}
/* Productivo Feedlot */
.prd-controles{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:flex-end}.prd-controles label{min-width:240px}.prd-controles>span:not(.badge){color:var(--muted);font-size:13px;padding-bottom:10px}.prd-controles .badge{margin-bottom:8px}
.prd-cifras{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:14px}.prd-cifras small{display:block}.prd-cifras strong{font-size:22px}
.prd-medio{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:14px}.prd-medio>.panel{min-width:0}
.prd-baja{color:var(--red)!important}
.prd-grafica svg{width:100%;height:auto;display:block}.prd-grafica text{font-size:12px;fill:var(--muted)}.prd-eje{stroke:var(--line)}.prd-objetivo{stroke:var(--ink);stroke-dasharray:6 5}.prd-objetivo-txt{fill:var(--ink)!important}
.prd-linea{fill:none;stroke:var(--red);stroke-width:2.5}.prd-punto{fill:var(--red)}
.prd-leyenda{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin:6px 0}.prd-l-obs,.prd-l-obj{display:inline-block;width:18px;height:0;border-top:3px solid var(--red)}.prd-l-obj{border-top:2px dashed var(--ink);margin-left:12px}
#prd-alertas li{display:flex;justify-content:space-between;align-items:center;gap:10px}
@media(max-width:1100px){.prd-cifras{grid-template-columns:repeat(3,minmax(0,1fr))}.prd-medio{grid-template-columns:1fr}}
@media(max-width:600px){.prd-cifras{grid-template-columns:1fr 1fr}.prd-controles label{min-width:0;width:100%}}

/* Operativo del día: encabezado, tarjetas, agenda y paneles. Solo variables del tema. */
#inicio .od-encabezado,#inicio .od-tarjetas{grid-column:1/-1}
.od-encabezado h1{margin:4px 0 2px}.od-encabezado p{margin:0;color:var(--muted)}
.od-tarjetas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.od-tarjeta{display:flex;flex-direction:column;gap:4px;text-align:left;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--white);box-shadow:var(--shadow-card);color:var(--ink);font:inherit}
button.od-tarjeta{cursor:pointer}button.od-tarjeta:hover{border-color:var(--red-line)}
.od-tarjeta span{font-size:13px;font-weight:700}.od-tarjeta strong{font-size:22px}.od-tarjeta strong.sin-dato{font-size:14px;color:var(--muted)}.od-tarjeta small{font-size:12px;color:var(--muted)}
.od-urgente{border-color:var(--red-line);background:var(--soft)}.od-urgente strong{color:var(--red)}
.od-derecha{display:flex;flex-direction:column;gap:14px;min-width:0}.od-derecha .panel{margin:0}
#od-alertas,#od-actividad{min-width:0;margin:0}
.od-agenda .tarea{align-items:center;flex-wrap:wrap}.od-agenda .tarea>div:first-child{flex:1;min-width:180px}
.od-vencida{border-left:3px solid var(--red);padding-left:8px}.od-completada{opacity:.75}
.od-chip{display:inline-block;padding:0 6px;border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink);font-weight:700}
.od-sub{display:block;color:var(--muted);font-size:12px}.od-nota{display:block;color:var(--muted);margin-bottom:6px}.od-hecha{color:var(--success)}
.od-filtro{font-size:13px;color:var(--red);font-weight:700}
.estado-programada{background:var(--surface-2);color:var(--ink)}.estado-completada{background:var(--success-bg);color:var(--success)}
.mini-button.primario{background:var(--red);color:#fff;border-color:var(--red)}
@media(max-width:900px){.od-tarjetas{grid-template-columns:1fr 1fr}#inicio .od-encabezado{order:0}#inicio .od-tarjetas{order:0}#od-alertas{order:1}.od-derecha{order:2}#od-actividad{order:4}}
#inicio>.operativo-tareas{order:1}#inicio>.od-derecha{order:2}#inicio>#od-alertas,#inicio>#od-actividad{order:3}
#inicio>.operativo-animales,#inicio>.inicio-sin-lotes,#inicio>.operativo-cifras,#inicio>.operativo-lotes,#inicio>.operativo-pesajes{order:5}
#inicio>.operativo-pesajes{grid-column:1/-1}
@media(max-width:900px){#inicio>#od-alertas{order:1}#inicio>.operativo-tareas{order:1}#inicio>.od-derecha{order:2}#inicio>#od-actividad{order:3}#inicio .operativo-cifras{order:5}}
#registrar-pesaje[hidden]{display:none}
/* Productivo Feedlot: lo que antes estaba en Inicio (hato, pesajes y lotes). */
.prd-hato-titulo{margin:22px 0 10px}.prd-hato{display:flex;flex-direction:column;gap:14px}.prd-hato>*{margin:0;min-width:0}.prd-hato .operativo-cifras{margin-bottom:0}
.activar-form label[hidden]{display:none}
.tabla-precios{min-width:640px;font-size:13px}.tabla-precios td{vertical-align:top}.tabla-precios td:nth-child(n+3){white-space:nowrap}.tabla-precios details summary{cursor:pointer;color:var(--red);font-size:12px}.tabla-precios details p{margin:4px 0 0;color:var(--muted);font-size:12px}
.tabla-precios .precio-futuro{color:var(--muted);font-size:12px}
@media(max-width:767px){
  .precios-form{max-width:none}.precios-form :is(select,input){min-height:48px;font-size:16px}.precios-form .primary-button{min-height:48px}
  .tabla-precios details summary{display:flex;align-items:center;min-height:48px}
}
/* Compras de animales (Hato): formulario en una columna, lista con scroll propio y tabla dentro de .table-wrap. */
.compras-form{display:grid;gap:12px;max-width:560px}.compras-form label{display:grid;gap:4px;font-weight:700;font-size:13px}
.compras-fieldset{margin:0;padding:0;border:0;min-width:0}.compras-fieldset legend{padding:0;font-weight:700;font-size:13px}
.compras-lista{max-height:280px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r-md);margin-top:6px}
.compras-animal{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:0 12px;border-bottom:1px solid var(--line)}.compras-animal:last-child{border-bottom:0}
.compras-animal label{display:flex;flex-direction:row;align-items:center;gap:10px;flex:1;min-height:48px;font-weight:600;cursor:pointer}.compras-animal input[type=checkbox]{width:22px;height:22px;flex:none}
.compras-peso{width:120px;flex:none}
.compras-reparto{list-style:none;margin:6px 0 0;padding:0}.compras-reparto li{display:flex;justify-content:space-between;gap:12px;padding:4px 0;border-bottom:1px solid var(--line)}.compras-suma{font-weight:800}
.tabla-compras{min-width:520px;font-size:13px}.tabla-compras td:nth-child(n+3){white-space:nowrap}
@media(max-width:767px){
  .compras-form{max-width:none}.compras-form :is(select,input:not([type=checkbox])){min-height:48px;font-size:16px}.compras-form .primary-button{min-height:48px}
}
.nav-item[hidden]{display:none}

/* Operativo del día: hora programada, eliminar y orden de los paneles. */
.od-hora{display:inline-block;margin-right:6px;padding:0 6px;border-radius:var(--r-sm);background:var(--red);color:#fff;font-size:12px;font-weight:800}
.od-horas{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}.od-horas label,.od-horas .plazo-pesaje{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--muted)}.od-horas input{width:auto;min-width:96px}
#inicio{align-items:start}
.od-derecha .table-wrap{overflow-x:auto}.od-derecha table{width:100%;font-size:13px}.od-derecha th,.od-derecha td{padding:8px 10px}
.od-agenda .tarea{padding:12px 0}.od-agenda .action-buttons{justify-content:flex-end}
.mini-button.danger{color:var(--red);border-color:var(--red-line)}
