:root{--green:#176b45;--green-dark:#0e5135;--lime:#8cc66a;--ink:#1c2b24;--muted:#61736a;--line:#dce6df;--page:#f3f7f4;--panel:#fff;--danger:#a63232}*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--ink);font:14px/1.45 Inter,Segoe UI,Arial,sans-serif}.shell{min-height:100vh;display:flex}.sidebar{width:240px;background:#103f2b;color:#eaf4ee;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0}.brand{height:92px;display:flex;align-items:center;gap:10px;padding:20px 23px;border-bottom:1px solid #ffffff25;font-size:12px;letter-spacing:.7px}.brand b{font-size:17px;letter-spacing:0}.brand-mark{background:var(--lime);color:#173929;border-radius:50%;display:grid;place-items:center;width:36px;height:36px;font-size:21px;font-weight:800}nav{padding:18px 13px}nav a{display:block;color:#c6ddd0;text-decoration:none;border-radius:7px;padding:10px 12px;margin:3px 0;font-weight:600}nav a:hover,nav a.active{background:#236649;color:#fff}.profile{margin-top:auto;padding:20px 24px;border-top:1px solid #ffffff25}.profile b,.profile small{display:block}.profile small{opacity:.7;margin:2px 0 9px}.profile a{color:#d6eddc;font-size:12px}.main{width:calc(100% - 240px);margin-left:240px;padding:32px;max-width:1700px}.topbar,.section-title{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}.topbar h1{font-size:28px;margin:2px 0}.eyebrow{color:var(--green);font-weight:800;letter-spacing:1px;font-size:11px;margin:0 0 3px}.sidebar .eyebrow{color:#a9d58b}.muted,small{color:var(--muted);font-size:12px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.cards article,.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 3px 12px #143e2a0b}.cards article{padding:19px;border-top:3px solid #a5d27d}.cards span{display:block;color:var(--muted)}.cards strong{display:block;font-size:25px;margin:5px 0}.panel{padding:22px;margin-bottom:20px}.panel h2{font-size:19px;margin:0 0 12px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:650px}th{text-align:left;font-size:11px;letter-spacing:.45px;text-transform:uppercase;color:var(--muted);padding:10px 9px;border-bottom:1px solid var(--line)}td{padding:11px 9px;border-bottom:1px solid #edf1ee;vertical-align:middle}td small{display:block}.btn{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:6px;padding:9px 13px;font:700 13px inherit;cursor:pointer;text-decoration:none}.primary{background:var(--green);color:#fff}.primary:hover{background:var(--green-dark)}.ghost{border:1px solid var(--green);background:#fff;color:var(--green)}.pill{display:inline-block;background:#edf5ef;color:#2f6545;border-radius:12px;padding:3px 7px;font-size:11px;text-transform:capitalize}.in{color:var(--green);font-weight:700}.out{color:var(--danger);font-weight:700}.alert{padding:12px 14px;margin:0 0 19px;border-radius:7px;font-weight:600}.alert.success{background:#e8f5eb;color:#276341;border:1px solid #b7dbbe}.alert.error{background:#fff0f0;color:#8e2f2f;border:1px solid #efc0c0}.login-page{display:grid;place-items:center;min-height:100vh;background:linear-gradient(135deg,#103d2a,#1f724b)}.login-card{width:min(430px,calc(100% - 32px));padding:34px;background:#fff;border-radius:12px;box-shadow:0 17px 50px #0004}.login-card h1{font-size:27px;margin:4px 0 6px}.login-card>p:not(.eyebrow){color:var(--muted)}.login-card form{display:grid;gap:14px;margin-top:22px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.wide{grid-column:1/-1}label{font-weight:700;color:#384940;font-size:12px}input,select,textarea{display:block;width:100%;margin-top:5px;padding:9px 10px;border:1px solid #cbd8cf;border-radius:6px;color:var(--ink);background:#fff;font:14px inherit}textarea{resize:vertical}.two-columns{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px}.stack{display:grid;gap:20px;align-self:start}.check{display:flex;gap:9px;align-items:center;font-weight:600}.check input{display:inline;width:auto;margin:0}.table-search{width:min(310px,45%);margin:0}.search-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.search-form input,.search-form select{width:auto;min-width:180px;margin:0}.search-form input{flex:1}.movement-form{display:grid;gap:16px}.line-head,.movement-line{display:grid;gap:10px;align-items:center}.line-head{font-size:11px;color:var(--muted);text-transform:uppercase;font-weight:800;letter-spacing:.45px;padding:0 2px}.entry-head,.entry-line{grid-template-columns:2fr 1.25fr .7fr .9fr 1fr 32px}.exit-head,.exit-line{grid-template-columns:2fr .7fr 32px}.transfer-head,.transfer-line{grid-template-columns:2fr .7fr 1.4fr 32px}.simple-move-head,.simple-move-line{grid-template-columns:2fr 1fr .85fr 32px}.recipe-head,.recipe-line{grid-template-columns:2fr 1fr .75fr 1fr 32px}.line-list{display:grid;gap:9px}.movement-line{padding:9px;background:#f7faf7;border:1px solid var(--line);border-radius:8px}.movement-line input,.movement-line select{margin:0}.remove-line{border:0;background:#f7dddd;color:#9d3434;border-radius:6px;width:30px;height:34px;font-size:20px;cursor:pointer}.add-line{justify-self:start}.help-text{padding:11px 13px;background:#f0f7f0;border-left:3px solid #8fc86a;color:#3f5548;font-size:13px}.upload-form{display:flex;gap:13px;align-items:center;flex-wrap:wrap}.upload-form input{width:auto}.confirm-import{margin-top:16px}@media(max-width:980px){.sidebar{width:70px}.brand{padding:15px;justify-content:center}.brand>span:last-child,.profile{display:none}nav{padding:18px 8px}nav a{font-size:0;text-align:center;height:41px}nav a:before{content:'•';font-size:22px}.main{width:calc(100% - 70px);margin-left:70px;padding:22px}.cards{grid-template-columns:repeat(2,1fr)}.two-columns{grid-template-columns:1fr}.entry-head,.entry-line,.transfer-head,.transfer-line,.recipe-head,.recipe-line,.exit-head,.exit-line,.simple-move-head,.simple-move-line{grid-template-columns:1fr 1fr}.line-head{display:none}.movement-line{padding:13px}.remove-line{justify-self:end}.table-search{width:100%}.section-title{align-items:flex-start;flex-direction:column}.search-form input,.search-form select{width:100%}}@media(max-width:580px){.main{padding:16px;margin:0;width:100%}.sidebar{display:none}.cards{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.panel{padding:15px}.upload-form{align-items:stretch}.upload-form input,.upload-form .btn{width:100%}}
.brand{background-image:url("img/logo-biotecnologia.png");background-size:184px auto;background-position:center;background-repeat:no-repeat}.brand>*{opacity:0}.login-logo{display:block;width:min(260px,100%);height:auto;margin:0 auto 20px}
.sidebar{background:var(--page);color:var(--ink);border-right:1px solid var(--green);box-shadow:3px 0 12px rgba(20,62,42,.04)}.brand{border-bottom:1px solid #b9d7c0}.sidebar nav a{color:#234b36}.sidebar nav a:hover,.sidebar nav a.active{background:#dff0e4;color:#135d3a}.profile{border-top:1px solid #b9d7c0;color:#234b36}.profile a{color:var(--green)}.profile small{color:var(--muted)}
.subnav{display:flex;gap:8px;flex-wrap:wrap;margin:-8px 0 22px}.subnav a{border:1px solid var(--line);border-radius:999px;color:var(--green);padding:7px 11px;text-decoration:none;font-size:12px;font-weight:700;background:#fff}.subnav a.active,.subnav a:hover{background:var(--green);border-color:var(--green);color:#fff}.remittance-head,.remittance-line{grid-template-columns:1.55fr .85fr .65fr .8fr .85fr .6fr 32px}.currency-field{display:flex;align-items:center;gap:4px;border:1px solid #cbd8cf;border-radius:6px;background:#fff;padding:0 8px;color:var(--green);font-weight:800}.currency-field input{border:0!important;padding:9px 0!important;min-width:0}.remittance-line .lot-display{color:var(--muted);background:#f5f8f5}.bottom-fields{margin-top:4px}fieldset{border:1px solid var(--line);border-radius:8px;padding:12px;display:flex;gap:12px;flex-wrap:wrap}legend{font-weight:800;color:var(--muted);font-size:12px;padding:0 4px}fieldset .check{width:auto}.alert a{color:inherit;font-weight:800}
.sidebar nav{padding:12px 13px;overflow:auto}.sidebar nav a{padding:7px 10px;margin:1px 0;font-size:13px}.nav-section{margin:8px 0 12px}.nav-section strong{display:block;padding:0 10px 4px;color:#5f7a6a;font-size:10px;letter-spacing:.7px;text-transform:uppercase}
.menu-heading{display:block;margin:11px 0 4px;color:#5f7a6a;font-size:10px;letter-spacing:.7px;text-transform:uppercase}
.order-head,.order-line{grid-template-columns:1.6fr .82fr .9fr .75fr .72fr .62fr 32px}
@media(max-width:1180px){.order-head,.order-line{grid-template-columns:1.4fr .9fr .9fr .75fr .75fr .65fr 32px}.order-head{font-size:10px}}
@media(max-width:980px){.order-head,.order-line{grid-template-columns:1fr 1fr}.order-head{display:none}}
.password-wrap{position:relative;margin-top:5px}.password-wrap input{margin-top:0;padding-right:43px}.password-toggle{position:absolute;right:4px;top:4px;width:34px;height:32px;border:0;border-radius:5px;background:transparent;color:var(--green);font-size:0;cursor:pointer}.password-toggle:after{content:'👁';font-size:16px}.password-toggle:hover{background:#e6f2e8}.password-toggle:focus-visible{outline:2px solid var(--lime);outline-offset:1px}
.inline-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.inline-actions form{display:flex;gap:6px;align-items:center}.inline-actions .btn{min-width:94px;height:34px;padding:7px 10px}.danger{background:#9f3131;color:#fff}.danger:hover{background:#7d2020}.icon-delete{width:34px;height:34px;display:inline-grid;place-items:center;border:1px solid #d00000;border-radius:6px;background:#e11919;color:#fff;cursor:pointer;font-size:16px;box-shadow:0 1px 2px #8b000055}.icon-delete:hover{background:#b70d0d}.icon-delete svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.secure-delete-dialog{width:min(430px,calc(100% - 30px));border:0;border-radius:12px;padding:26px;box-shadow:0 20px 60px #0005}.secure-delete-dialog::backdrop{background:#102d20aa}.secure-delete-dialog h2{margin:0 0 6px}.secure-delete-dialog form{display:grid}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:4px}
@media(max-width:980px){.remittance-head,.remittance-line{grid-template-columns:1fr 1fr}.subnav{gap:6px}}
.remittance-head,.remittance-line[data-rem-line]{grid-template-columns:minmax(190px,1.2fr) minmax(185px,1.3fr) minmax(145px,.85fr) minmax(150px,.9fr) minmax(150px,.9fr) minmax(150px,.9fr) minmax(98px,.6fr) 32px}.remittance-line[data-extra-line]{grid-template-columns:minmax(185px,1.55fr) minmax(145px,.85fr) minmax(150px,.65fr) minmax(150px,.8fr) minmax(150px,.85fr) minmax(98px,.6fr) 32px}@media(max-width:1450px){.remittance-head{display:none}.remittance-line[data-rem-line],.remittance-line[data-extra-line]{grid-template-columns:repeat(2,minmax(0,1fr))}.remittance-line .remove-line{justify-self:end}}
.attendance-status{display:inline-block;border-radius:999px;padding:.24rem .55rem;font-size:.78rem;font-weight:700;white-space:nowrap}.attendance-status.green{background:#dff4e6;color:#12633c}.attendance-status.yellow{background:#fff5a8;color:#695900}.attendance-status.brown{background:#ead1c8;color:#6f2d20}.attendance-status.blue{background:#dce8ff;color:#194985}.attendance-status.orange,.attendance-status.amber{background:#fff1cb;color:#815700}.attendance-status.red{background:#fde0e0;color:#a02121}.attendance-status.purple{background:#eadcf4;color:#603a80}.attendance-status.navy{background:#dae0ef;color:#17315f}.attendance-status.pink{background:#fad7df;color:#9f2947}.attendance-status.none{background:#edf2ee;color:#52645a}.attendance-fill.green{background:#dff4e6!important}.attendance-fill.yellow{background:#fff5a8!important}.attendance-fill.brown{background:#ead1c8!important}.attendance-fill.blue{background:#dce8ff!important}.attendance-fill.orange{background:#fff1cb!important}.attendance-fill.pink{background:#fad7df!important}.attendance-fill.red,.attendance-row-falta td{background:#fde0e0!important}.attendance-fill.purple{background:#eadcf4!important}.attendance-fill.navy{background:#dae0ef!important}.attendance-cards{grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 18px}.attendance-cards article{padding:12px}.attendance-cards strong{font-size:20px}
