:root{--green:#073d25;--green2:#09693a;--orange:#f58220;--ink:#14271d;--muted:#68776f;--line:#e6ede8;--bg:#f6f9f6;--shadow:0 8px 24px #1539220c}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:Inter,'Segoe UI',Arial,sans-serif;color:var(--ink);font-size:14px}button,input,select{font:inherit}button{cursor:pointer}.shell{display:flex;min-height:100vh}.side{width:256px;background:#063923;color:white;flex-shrink:0;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{background:#fff;margin:20px 18px 8px;padding:10px 14px;border-radius:12px;min-height:86px;display:grid;place-items:center}.brand img{max-width:100%;max-height:67px;object-fit:contain}.side-caption{margin:10px 22px 24px;font-size:10px;font-weight:750;letter-spacing:1.6px;line-height:1.7;color:#b8ddc4}.side nav{display:grid;gap:5px;padding:0 12px}.side nav button{color:#d9eadf;border:0;background:none;border-radius:9px;text-align:left;padding:13px 14px;font-size:17px;display:flex;gap:13px;align-items:center}.side nav button span{font-size:13px;font-weight:570}.side nav button:hover,.side nav button.active{background:#19834a;color:white}.side-bottom{margin-top:auto;padding:25px 20px;color:#b4d1bf}.side-alert{font-size:10px;color:#ffdd93;font-weight:bold;letter-spacing:.6px;padding:10px 0}.side-bottom small{font-size:10px}.main{min-width:0;flex:1}.top{height:73px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:22px;padding:0 35px}.breadcrumb{font-weight:750;letter-spacing:.2px;color:#17452d;font-size:12px}.breadcrumb span{padding:0 9px;color:#b6c8b9}.breadcrumb b{color:#6a7c70}.top-right{margin-left:auto;display:flex;align-items:center;gap:20px}.online{font-size:11px;color:#217944;background:#eaf8ef;padding:9px 12px;border-radius:40px;font-weight:bold}.user{width:38px;height:38px;background:#e8f1eb;border-radius:50%;display:grid;place-items:center;color:var(--green2);font-weight:850}#hamb{display:none;background:transparent;border:0;font-size:24px;color:var(--green)}.content{padding:24px 34px 15px;max-width:1660px;margin:auto}.hero{height:234px;border-radius:18px;background:linear-gradient(90deg,#073d25 0%,#073d25 32%,#073d25c9 58%,#073d2520 100%),url('assets/campo.webp') center 43%/cover;display:flex;align-items:center;padding:30px 40px;color:white;overflow:hidden}.eyebrow{font-size:10px;letter-spacing:2px;color:#ffb95d;font-weight:850}.hero h1{font-size:30px;line-height:1.15;margin:10px 0 8px;letter-spacing:-.8px}.hero p{color:#d7eade;margin:0 0 19px;font-size:12px}.hero-btns,.buttonrow{display:flex;gap:10px;flex-wrap:wrap}.primary,.outline,.outline-dark,.smallprimary{border:0;border-radius:8px;background:var(--orange);padding:11px 17px;color:white;font-weight:750;font-size:12px}.primary:hover,.smallprimary:hover{background:#de6d0e}.outline{background:#ffffff17;border:1px solid #ffffff80}.outline-dark{background:white;color:var(--green2);border:1px solid #a9bfb0}.smallprimary{font-size:11px;padding:8px 11px}.notice{padding:10px 16px;margin:16px 0;background:#fff8e8;border:1px solid #fae7bc;color:#806020;border-radius:9px;font-size:12px}.notice strong{color:#71501a}.page{display:none}.page.active{display:block}.section-head{display:flex;align-items:end;justify-content:space-between;margin:20px 0 14px}.kicker{font-size:10px;letter-spacing:1.7px;color:#e1781b;font-weight:850}.section-head h2{margin:4px 0 0;font-size:22px;letter-spacing:-.4px}.smallmuted,.sub,.hint{color:#7c8b80;font-size:12px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.kpi{border:1px solid #e7ede8;background:white;box-shadow:var(--shadow);border-radius:13px;padding:19px;display:flex;gap:14px;align-items:center;min-height:109px}.ki{width:48px;height:48px;display:grid;place-items:center;border-radius:12px;font-size:25px;font-weight:bold;flex-shrink:0}.ki.green{background:#e4f7e7;color:#2f9a4b}.ki.orange{background:#fff0dd;color:#e78520}.ki.blue{background:#e8f2ff;color:#3d83cc}.ki.pink{background:#f4e9ff;color:#8856be}.kpi small{color:#66776b;font-size:11px;display:block;white-space:nowrap}.kpi strong{display:block;font-size:25px;font-weight:850;margin:6px 0 4px;white-space:nowrap}.kpi em{font-style:normal;color:#9aaba0;font-size:10px}.two-col{display:grid;grid-template-columns:1.45fr 1fr;gap:16px;margin-top:18px}.two-col.lower{grid-template-columns:1fr 1fr}.panel{border-radius:13px;background:white;border:1px solid var(--line);box-shadow:var(--shadow);padding:20px;min-width:0}.panel h3{font-size:16px;margin:0 0 14px}.panel p{line-height:1.6;color:#657a69;font-size:12px}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:8px}.panel-title h3{margin:0}.link{border:0;background:transparent;color:var(--green2);font-size:11px;font-weight:bold}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;min-width:455px}th{font-size:10px;text-transform:uppercase;letter-spacing:.3px;background:#f7faf7;color:#809084;padding:11px 12px}td{padding:13px 12px;border-bottom:1px solid #eff3ef;color:#31463a;font-size:12px}td:first-child{font-weight:750;color:#184d2e}tr:last-child td{border-bottom:0}.pill{border-radius:30px;background:#eaf7ec;color:#328a4f;font-size:10px;font-weight:bold;padding:6px 9px;white-space:nowrap}.chip{font-size:10px;background:#eaf8ed;padding:7px 9px;border-radius:5px;color:#188042;font-weight:bold}.trace-art{display:flex;align-items:center;gap:15px;border:1px dashed #c9dfce;background:#f5fbf6;padding:14px;border-radius:10px;margin:12px 0}.trace-art img{height:100px;width:100px;object-fit:contain;background:white;border-radius:8px}.trace-art b{display:block;font-size:14px}.trace-art span{display:block;font-size:11px;color:#779184;margin:8px 0 14px}.qrpanel>small{color:#96a99a;font-size:10px}.movement{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #edf2ed;font-size:12px}.movement:last-child{border-bottom:0}.moveicon{padding:6px;background:#edf8ee;color:#219448;border-radius:8px;font-size:16px}.moveicon.out{background:#fff0e7;color:#e58130}.movement div{flex:1;min-width:0}.movement small{display:block;color:#879589;margin-top:3px}.movement strong{white-space:nowrap;color:#18864a}.movement strong.out{color:#dc7b33}.actiongrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.actiongrid button{border:1px solid #e4ede6;border-radius:10px;background:#f9fbf9;padding:18px 12px;font-size:23px;color:var(--green2);display:flex;align-items:center;gap:13px;text-align:left}.actiongrid button:hover{border-color:#8abc9a}.actiongrid span{font-size:12px;color:#315b40;font-weight:750}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:end}.formgrid button{justify-self:start}.formgrid label,.single{display:flex;flex-direction:column;gap:7px;color:#536c5b;font-size:12px;font-weight:700}input,select{border:1px solid #d9e6dc;background:white;border-radius:9px;padding:12px;color:#213c2b;width:100%;min-width:0}input:focus,select:focus{outline:2px solid #9bcfa9}.spaced{margin-top:17px}.single{margin:0 0 14px}.full{width:100%}.sticker{border:2px solid #184b30;border-radius:7px;max-width:350px;background:white;padding:16px;margin:0 auto;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}.label-logo{width:100%;max-width:250px}.sticker>b{font-size:10px;letter-spacing:.5px}.sticker #labelDetails{align-self:stretch;text-align:left;line-height:1.8;border-top:1px dashed #b3cbb9;border-bottom:1px dashed #b3cbb9;padding:9px 3px;font-size:12px}.sampleqr{width:105px;height:105px;object-fit:contain}.sticker small{font-size:9px;color:#777}.report-cards{grid-template-columns:repeat(3,1fr);margin:12px 0 18px}footer{border-top:1px solid #e1ebe3;color:#9aa89d;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;font-size:10px;margin-top:26px;padding:22px 0}footer b{color:#28663f}#toast{position:fixed;bottom:22px;right:22px;max-width:350px;background:#104b30;color:#fff;padding:14px 20px;border-radius:10px;box-shadow:0 10px 25px #0003;display:none;font-size:12px;z-index:9}#toast.show{display:block}@media(max-width:1250px){.kpis{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.content{padding:20px}}@media(max-width:800px){.side{position:fixed;left:-265px;z-index:5;transition:left .2s;box-shadow:5px 0 20px #0002}.side.open{left:0}.top{height:62px;padding:0 16px}#hamb{display:block}.breadcrumb{font-size:10px}.online{display:none}.content{padding:12px}.hero{height:auto;min-height:232px;padding:25px;background:linear-gradient(90deg,#073d25ef,#073d258a),url('assets/campo.webp') center/cover}.hero h1{font-size:27px}.kpis{gap:9px}.kpi{padding:14px;min-height:105px;gap:10px}.kpi strong{font-size:20px}.kpi small{font-size:10px;white-space:normal}.ki{width:37px;height:37px;font-size:18px}.panel{padding:15px}.formgrid{grid-template-columns:1fr}.two-col.lower{grid-template-columns:1fr}.report-cards{grid-template-columns:1fr}.section-head h2{font-size:20px}}@media(max-width:430px){.kpis{grid-template-columns:1fr 1fr}.kpi{flex-direction:column;align-items:flex-start}.kpi em{display:none}.hero-btns button{padding:10px}.trace-art img{width:78px;height:78px}.sticker{max-width:100%}}@media print{body{background:white}body *{visibility:hidden!important}#printArea,#printArea *{visibility:visible!important}#printArea{position:absolute;left:0;top:0;width:90mm;max-width:90mm;border:1px solid black;box-shadow:none;margin:0;padding:5mm}#printArea img.label-logo{max-width:70mm}.sticker{font-size:10px}@page{size:100mm 150mm;margin:5mm}}

/* Firebase Authentication */
.login-overlay{position:fixed;inset:0;background:#f2f7f2;z-index:9999;display:grid;place-items:center;padding:20px}.login-overlay[hidden]{display:none}.login-box{background:#fff;padding:32px;max-width:400px;width:100%;border-radius:18px;box-shadow:0 15px 55px #0c3d2430;display:flex;flex-direction:column;gap:12px}.login-box img{max-width:230px;max-height:110px;object-fit:contain;align-self:center}.login-box h2{text-align:center;margin:8px 0 0;color:#103c26}.login-box p{text-align:center;color:#6c8073;margin:0 0 10px;font-size:14px}.login-box label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#365944}.login-box input{padding:12px;border:1px solid #d6e4d9;border-radius:10px;background:white;font:inherit}.login-box button{justify-content:center}.login-box small{color:#bd3a29;min-height:14px}.logout{border:1px solid #dee8df;background:white;color:#24523a;border-radius:9px;padding:7px 12px;cursor:pointer}@media(max-width:600px){.login-box{padding:24px}}
