:root{--green:#173f32;--green2:#245c49;--lime:#b7cd58;--cream:#f4f3ed;--paper:#fff;--ink:#18231f;--muted:#68746f;--line:#e2e6e2;--orange:#d97532;--blue:#4d7b84;--shadow:0 12px 35px rgba(29,50,42,.08)}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.sidebar{position:fixed;inset:0 auto 0 0;width:242px;background:var(--green);color:#fff;padding:28px 18px;display:flex;flex-direction:column;z-index:20;overflow:hidden}.brand{display:flex;align-items:center;gap:11px;font-size:1.25rem;font-weight:750;padding:0 8px 30px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--lime);color:var(--green);font-weight:900}.sidebar nav{display:grid;gap:6px;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent;padding-right:3px}.nav-item{border:0;background:transparent;color:#bdd0c8;padding:13px 14px;border-radius:11px;text-align:left;font:inherit;font-weight:650;cursor:pointer}.nav-item span{display:inline-grid;width:26px}.nav-item:hover,.nav-item.active{color:#fff;background:rgba(255,255,255,.11)}.farm-card{margin-top:auto;display:flex;gap:10px;align-items:center;border-top:1px solid rgba(255,255,255,.12);padding:20px 8px 0}.farm-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#fff;color:var(--green);font-size:.72rem;font-weight:800}.farm-card small,.farm-card strong{display:block}.farm-card small{color:#a9beb6;font-size:.75rem}.farm-card strong{font-size:.9rem}main{margin-left:242px;min-height:100vh}.topbar{height:98px;background:rgba(255,255,255,.8);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;padding:0 36px;position:sticky;top:0;z-index:10}.topbar h1{font-size:1.45rem;margin:2px 0}.eyebrow{margin:0;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.top-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.icon-btn,.menu{border:1px solid var(--line);background:#fff;border-radius:10px;width:42px;height:42px;position:relative}.badge{position:absolute;top:-5px;right:-5px;background:var(--orange);color:#fff;border-radius:20px;font-size:.65rem;padding:1px 5px}.avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font-weight:800}.user-role{font-size:.72rem;text-transform:uppercase;color:var(--muted);font-weight:800;letter-spacing:.04em}.logout-btn{border:1px solid var(--line);background:#fff;color:var(--green);padding:9px 12px;border-radius:9px;font:inherit;font-size:.8rem;font-weight:700;cursor:pointer}.menu{display:none}.view{display:none;padding:30px 36px 50px}.view.active{display:block}.welcome{background:linear-gradient(115deg,var(--green),#286450);color:#fff;border-radius:19px;padding:26px 30px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;column-gap:34px;box-shadow:var(--shadow);position:relative;overflow:hidden}.welcome:after{display:none}.welcome-embossed-logo{display:block;width:352px;height:142px;max-width:100%;position:relative;pointer-events:none;justify-self:end;align-self:center;transform:translateY(1px)}.welcome-embossed-logo::before,.welcome-embossed-logo::after{content:"";position:absolute;inset:0;-webkit-mask:url("./st-ganaderia-emboss-mask.png") center / contain no-repeat;mask:url("./st-ganaderia-emboss-mask.png") center / contain no-repeat}.welcome-embossed-logo::before{background:rgba(177,218,188,.32);transform:translate(-2px,-2px);filter:blur(.5px)}.welcome-embossed-logo::after{background:linear-gradient(135deg,#285945 5%,#174333 62%,#123b2e);filter:drop-shadow(2px 3px 2px rgba(4,32,24,.76)) drop-shadow(-1px -1px 1px rgba(142,202,169,.27))}.welcome>div,.welcome>.primary{position:relative;z-index:1}.welcome p,.welcome h2{margin:0}.welcome p{color:#bfcec8;font-size:.85rem}.welcome h2{font-size:1.65rem;margin:3px 0}.welcome span{color:#d5dfdb}.primary,.secondary,.toolbar button,.full-btn,.text-btn{border:0;border-radius:10px;padding:11px 16px;font:inherit;font-weight:700;cursor:pointer}.primary{background:var(--lime);color:var(--green);position:relative;z-index:1}.primary:hover{filter:brightness(1.05)}.secondary,.toolbar button{background:#eef0ed;color:var(--ink)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:18px 0}.stat{background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:20px;display:flex;justify-content:space-between;min-height:130px}.stat span,.stat small,.stat strong{display:block}.stat span{font-size:.85rem;color:var(--muted);font-weight:650}.stat strong{font-size:1.6rem;margin:7px 0}.stat strong em{font-size:.85rem;font-style:normal}.stat small{font-size:.76rem;color:var(--muted)}.stat .positive{color:var(--green2)}.stat i{width:42px;height:42px;border-radius:12px;background:#edf4ef;color:var(--green);display:grid;place-items:center;font-style:normal;font-weight:800}.stat.warning{border-color:#f0d7c5}.stat.warning i{background:#fff0e6;color:var(--orange)}.dashboard-grid{display:grid;grid-template-columns:1.25fr .85fr;gap:18px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 3px 12px rgba(30,45,39,.025)}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.panel h3,.panel p{margin:0}.panel h3{font-size:1.02rem}.panel-head p,.section-head p{color:var(--muted);font-size:.84rem;margin-top:3px}.text-btn{background:none;color:var(--green2);padding:3px}.herd-content{display:flex;align-items:center;gap:35px;padding:24px 8px 5px}.donut{width:170px;aspect-ratio:1;border-radius:50%;background:conic-gradient(var(--green2) 0 47%,var(--lime) 47% 70%,#79aab2 70% 88%,#d69463 88%);display:grid;place-items:center;position:relative}.donut:before{content:"";position:absolute;width:105px;aspect-ratio:1;background:#fff;border-radius:50%}.donut div{z-index:1;text-align:center}.donut strong,.donut span{display:block}.donut strong{font-size:1.7rem}.donut span{font-size:.75rem;color:var(--muted)}.legend{flex:1}.legend>div{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:10px;padding:7px 0}.legend p b,.legend p small{display:block}.legend p small{color:var(--muted);font-size:.74rem}.dot{width:9px;height:9px;border-radius:50%}.cows{background:var(--green2)}.calves{background:var(--lime)}.heifers{background:#79aab2}.bulls{background:#d69463}.count{background:#fff0e6;color:var(--orange);border-radius:20px;padding:3px 9px;font-weight:800}.alert-row{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}.alert-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#edf4ef;color:var(--green)}.urgent .alert-icon{background:#fff0e6;color:var(--orange)}.alert-row b,.alert-row small{display:block}.alert-row b{font-size:.87rem}.alert-row small,.alert-row time{color:var(--muted);font-size:.74rem}.urgent time{color:var(--orange);font-weight:800}.full-btn{width:100%;background:#edf4ef;color:var(--green);margin-top:14px}.timeline{margin-top:13px}.timeline>div{display:grid;grid-template-columns:14px 1fr auto;gap:12px;align-items:start;padding:10px 0}.timeline span{width:9px;height:9px;background:var(--lime);border-radius:50%;margin-top:5px;box-shadow:0 0 0 5px #f2f6df}.timeline b,.timeline small{display:block}.timeline b{font-size:.86rem}.timeline small,.timeline time{font-size:.74rem;color:var(--muted)}.bars{margin-top:20px;display:grid;gap:15px}.bars>div{display:grid;grid-template-columns:110px 1fr 85px;align-items:center;gap:10px;font-size:.78rem}.bars i{height:8px;background:linear-gradient(90deg,var(--green2) var(--w),#edf0ed var(--w));border-radius:10px}.bars b{text-align:right}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.section-head h2{margin:0;font-size:1.65rem}.toolbar{display:flex;gap:10px;margin-bottom:14px}.toolbar input{flex:1;border:1px solid var(--line);border-radius:10px;padding:12px 14px;font:inherit;background:#fff}.table-wrap,.cost-table{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:15px}table{width:100%;border-collapse:collapse;min-width:760px}th{text-align:left;color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;background:#f8f9f7}th,td{padding:15px 18px;border-bottom:1px solid var(--line)}td{font-size:.88rem}td small{display:block;color:var(--muted)}.animal-list-name{font-weight:700;color:var(--ink)}.pill{display:inline-block;background:#edf0ed;color:#52605a;border-radius:20px;padding:5px 10px;font-size:.72rem;font-weight:800}.active-pill{background:#2e7d32;color:#fff}.sold-pill{background:#c62828;color:#fff}.culled-pill{background:#f9a825;color:#1f2d27}.dead-pill{background:#5f6368;color:#fff}.transferred-pill{background:#f9a825;color:#1f2d27}.attention-pill{background:#f9a825;color:#1f2d27}.card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:17px}.lot-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:21px;position:relative;overflow:hidden}.lot-color{position:absolute;inset:0 auto 0 0;width:5px}.green{background:var(--green2)}.gold{background:#d7a642}.blue{background:#6094a0}.rust{background:#b96642}.lot-card h3,.lot-card p{margin:0}.lot-card p{color:var(--muted);font-size:.82rem}.lot-card>div{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:7px;align-items:end;margin:24px 0}.lot-card>div strong{font-size:1.25rem}.lot-card>div small{color:var(--muted);font-size:.72rem}.lot-card footer{border-top:1px solid var(--line);padding-top:12px;color:var(--muted);font-size:.76rem}.health-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:18px}.task{display:grid;grid-template-columns:55px 1fr auto;align-items:center;gap:14px;border-top:1px solid var(--line);padding:16px 0}.task:first-of-type{margin-top:15px}.task time{text-align:center;background:#f0f4e5;color:var(--green);border-radius:9px;padding:6px;font-weight:800;line-height:1}.task time small{font-size:.6rem}.task p{color:var(--muted);font-size:.8rem;margin-top:3px}.stock>div{display:flex;justify-content:space-between;gap:10px;padding:17px 0;border-bottom:1px solid var(--line)}.stock p b,.stock p small{display:block}.stock p b{font-size:.86rem}.stock p small{font-size:.74rem;color:var(--muted)}.stock strong{font-size:.85rem}.stock .low{color:var(--orange)}.cost-stats{grid-template-columns:repeat(3,1fr)}.cost-table{padding:0}.cost-table .panel-head{padding:20px}.modal{position:fixed;inset:0;background:rgba(12,25,20,.58);display:none;place-items:center;padding:20px;z-index:50}.modal.open{display:grid}.modal-card{width:min(480px,100%);background:#fff;border-radius:18px;padding:27px;position:relative;box-shadow:0 30px 80px rgba(0,0,0,.25)}.modal-card h2{margin:3px 0 20px}.modal-card label{display:grid;gap:6px;margin:13px 0;font-size:.82rem;font-weight:700}.modal-card select,.modal-card input{width:100%;border:1px solid var(--line);border-radius:9px;padding:11px;font:inherit;background:#fff}.close{position:absolute;right:18px;top:14px;border:0;background:none;font-size:1.7rem;cursor:pointer}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.toast{position:fixed;right:24px;bottom:24px;background:var(--green);color:#fff;padding:14px 18px;border-radius:10px;box-shadow:var(--shadow);transform:translateY(90px);opacity:0;transition:.3s;z-index:60}.toast.show{transform:none;opacity:1}.auth-screen{position:fixed;inset:0;z-index:100;background:radial-gradient(circle at 20% 10%,#2b654f 0,var(--green) 42%,#102f25 100%);display:grid;place-items:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .2s}.auth-screen.ready{opacity:1;pointer-events:auto}body.authenticated .auth-screen{opacity:0;pointer-events:none}.auth-card{width:min(430px,100%);background:#fff;border-radius:22px;padding:30px;box-shadow:0 30px 80px rgba(0,0,0,.28)}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:30px}.auth-brand strong,.auth-brand small{display:block}.auth-brand strong{font-size:1.12rem}.auth-brand small{color:var(--muted);font-size:.75rem}.auth-card h1{margin:4px 0 7px;font-size:2rem}.auth-intro{color:var(--muted);margin:0 0 22px}.auth-card label{display:grid;gap:7px;margin:14px 0;font-size:.82rem;font-weight:750}.auth-card input{border:1px solid var(--line);border-radius:10px;padding:12px 13px;font:inherit;outline:none}.auth-card input:focus{border-color:var(--green2);box-shadow:0 0 0 3px rgba(36,92,73,.10)}.auth-submit{width:100%;margin-top:7px;padding:13px}.auth-submit:disabled{opacity:.65;cursor:wait}.auth-message{min-height:22px;margin:15px 0 0;color:var(--muted);font-size:.82rem}.auth-message.error{color:#a64024}.auth-footer{display:block;margin-top:22px;color:#8a948f;text-align:center}@media(max-width:1050px){.stats{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.health-grid{grid-template-columns:1fr}}@media(max-width:720px){.sidebar{transform:translateX(-100%);transition:.25s;width:250px}.sidebar.open{transform:none}.menu{display:block}.topbar{height:82px;padding:0 16px}.topbar .eyebrow,.user-role{display:none}.topbar h1{font-size:1.15rem}main{margin-left:0}.view{padding:18px 14px 35px}.welcome{align-items:flex-start;padding:21px;min-height:185px}.welcome .primary{position:absolute;bottom:20px;left:20px}.welcome h2{font-size:1.4rem}.stats{grid-template-columns:1fr 1fr;gap:10px}.stat{min-height:118px;padding:15px}.stat strong{font-size:1.25rem}.stat i{display:none}.herd-content{flex-direction:column}.donut{width:150px}.legend{width:100%}.card-grid,.cost-stats{grid-template-columns:1fr}.section-head{align-items:flex-start;gap:14px}.section-head .primary{padding:10px;font-size:.8rem}.toolbar{flex-direction:column}.top-actions{gap:8px}.icon-btn{display:none}.logout-btn{padding:7px 9px}.health-grid{display:block}.health-grid .panel{margin-bottom:14px}.task{grid-template-columns:48px 1fr}.task .pill{grid-column:2}.bars>div{grid-template-columns:90px 1fr}.bars b{grid-column:2}.activity-panel{display:none}.auth-card{padding:24px}}

@media(max-width:1100px){.welcome{grid-template-columns:minmax(0,1fr) auto;column-gap:18px}.welcome-embossed-logo{display:none}}@media(max-width:760px){.welcome{grid-template-columns:1fr;row-gap:14px}.welcome>.primary{justify-self:start}}


/* Tablet/desktop: navegación lateral colapsable híbrida.
   Una sola sidebar: hover con puntero; botón ☰/tap para fijarla abierta. */
@media (min-width:721px) and (max-width:1180px){
  .sidebar{
    width:70px;
    padding:28px 10px;
    transition:width .22s ease, box-shadow .22s ease;
  }
  main{
    margin-left:70px;
    transition:margin-left .22s ease;
  }
  .sidebar .brand{
    gap:11px;
    padding-left:5px;
    padding-right:5px;
    white-space:nowrap;
    overflow:hidden;
  }
  .sidebar .brand > span:last-child,
  .sidebar .nav-item:not(#nav-inventory-static) > :not(:first-child){
    transition:opacity .12s ease;
  }
  .sidebar:not(:hover):not(.tablet-expanded) .brand > span:last-child{
    opacity:0;
    width:0;
    overflow:hidden;
  }
  .sidebar:not(:hover):not(.tablet-expanded) .nav-item{
    padding-left:12px;
    padding-right:12px;
    white-space:nowrap;
    overflow:hidden;
    font-size:0;
  }
  .sidebar:not(:hover):not(.tablet-expanded) .nav-item > span{
    width:26px;
    font-size:16px;
  }
  .sidebar:not(:hover):not(.tablet-expanded) .static-pro-badge{display:none!important}
  .sidebar:hover,.sidebar.tablet-expanded{
    width:242px;
    box-shadow:12px 0 28px rgba(16,47,37,.16);
  }
  .sidebar:hover .brand > span:last-child,
  .sidebar.tablet-expanded .brand > span:last-child{opacity:1;width:auto}
  .sidebar:hover .nav-item,
  .sidebar.tablet-expanded .nav-item{font-size:16px}
  .menu{display:block}
}

/* Tablet: evitar restos de texto en Gestión económica al colapsar. */
@media (min-width:721px) and (max-width:1180px){
  .sidebar:not(:hover):not(.tablet-expanded) .nav-item[data-view="costs"]{
    color:transparent!important;
    text-indent:0!important;
  }
  .sidebar:not(:hover):not(.tablet-expanded) .nav-item[data-view="costs"] > span{
    color:#bdd0c8!important;
    display:inline-grid!important;
    place-items:center;
  }
  .sidebar:not(:hover):not(.tablet-expanded) .nav-item[data-view="costs"].active > span{
    color:#fff!important;
  }
}

/* Sistema iconográfico ST Ganadería — fuente única de estilos */
.sidebar .nav-item{display:flex;align-items:center;gap:14px}
.sidebar .nav-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex:0 0 32px;margin:0;color:currentColor}
.sidebar .nav-icon svg{display:block;width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sidebar .nav-icon .solid{fill:currentColor;stroke:none}
.sidebar .nav-cattle svg{width:31px;height:27px;fill:currentColor;stroke:currentColor}
.sidebar .nav-cross svg{width:29px;height:29px}
.sidebar .nav-calendar svg{width:29px;height:29px}
.sidebar .nav-gear svg{width:29px;height:29px}
@media (min-width:721px) and (max-width:1180px){
 .sidebar:not(:hover):not(.tablet-expanded) .nav-item{gap:0}
 .sidebar:not(:hover):not(.tablet-expanded) .nav-icon{width:30px;height:30px;flex-basis:30px}
 .sidebar:not(:hover):not(.tablet-expanded) .nav-icon svg{width:23px;height:23px}
 .sidebar:hover .nav-item,.sidebar.tablet-expanded .nav-item{gap:14px}
}


/* Animales: recurso SVG independiente aprobado */
.sidebar .nav-cattle.nav-icon-mask{
  width:32px;
  height:28px;
  flex:0 0 32px;
  background:currentColor;
  -webkit-mask:url("./icons/animals-brahman.svg") center/contain no-repeat;
  mask:url("./icons/animals-brahman.svg") center/contain no-repeat;
}
@media (min-width:721px) and (max-width:1180px){
 .sidebar:not(:hover):not(.tablet-expanded) .nav-cattle.nav-icon-mask{width:28px;height:24px;flex-basis:28px}
}
