:root{--paper:#f6f2e6;--paper-line:#ded4b8;--ink:#20301f;--ink-soft:#4d5c46;--green-deep:#1c2b1c;--green-mid:#33472f;--yolk:#e2a233;--yolk-deep:#c1811a;--rust:#a8492f;--card:#fffdf7}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:repeating-linear-gradient(var(--paper) 0px, var(--paper) 33px, var(--paper-line) 34px);background-color:var(--paper);color:var(--ink);font-family:Inter,sans-serif}#root{padding-bottom:64px}.wrap{max-width:1080px;margin:0 auto;padding:0 28px}.login-screen{justify-content:center;align-items:center;min-height:100vh;padding:40px 20px;display:flex}.login-loading{color:var(--ink-soft);font-family:IBM Plex Mono,monospace;font-size:13px}.login-card{background:var(--card);border:1px solid var(--paper-line);border-top:6px solid var(--yolk);width:100%;max-width:420px;padding:34px 32px 28px;box-shadow:0 18px 40px #20301f21}.login-brand{border-bottom:2px solid var(--green-deep);margin-bottom:24px;padding-bottom:20px;position:relative}.login-egg{background:radial-gradient(circle at 34% 32%, #fff7e2 0%, var(--yolk) 58%, var(--yolk-deep) 100%);border-radius:50%/60% 60% 40% 40%;width:38px;height:48px;margin-bottom:16px;display:block}.login-title{color:var(--green-deep);margin:0 0 8px;font-family:Fraunces,serif;font-size:26px;font-weight:600;line-height:1.12}.login-sub{color:var(--ink-soft);margin:0;font-family:IBM Plex Mono,monospace;font-size:11.5px}.login-field{margin-bottom:16px;display:block}.login-field>span{color:var(--ink);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.login-field input{border:1px solid var(--paper-line);width:100%;color:var(--ink);background:#fff;padding:10px 12px;font-family:IBM Plex Mono,monospace;font-size:14px}.login-field input:focus{border-color:var(--yolk-deep);outline:none;box-shadow:0 0 0 2px #e2a23340}.login-pass{display:flex;position:relative}.login-pass input{padding-right:70px}.login-toggle{text-transform:uppercase;letter-spacing:.05em;color:var(--yolk-deep);cursor:pointer;background:0 0;border:none;padding:4px 6px;font-family:IBM Plex Mono,monospace;font-size:11px;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.login-toggle:hover{color:var(--rust)}.login-error{border-left:3px solid var(--rust);color:var(--rust);background:#fdeeea;margin:0 0 14px;padding:10px 12px;font-size:13px;line-height:1.5}.login-foot{color:var(--ink-soft);text-align:center;margin:18px 0 0;font-family:IBM Plex Mono,monospace;font-size:11px;line-height:1.6}.login-foot b{color:var(--yolk-deep)}.session-bar{z-index:2;justify-content:flex-end;align-items:center;gap:16px;margin-bottom:14px;display:flex;position:relative}.session-user{color:var(--paper);align-items:center;gap:8px;font-family:IBM Plex Mono,monospace;font-size:12px;display:flex}.session-user em{color:#a9bba3;font-style:normal}.session-dot{background:var(--yolk);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #e2a23340}.session-logout{text-transform:uppercase;letter-spacing:.06em;color:var(--paper);cursor:pointer;background:0 0;border:1px solid #f6f2e659;padding:5px 11px;font-family:IBM Plex Mono,monospace;font-size:11px;transition:background .15s,border-color .15s}.session-logout:hover{background:var(--yolk);border-color:var(--yolk);color:var(--green-deep)}header.app-header{background:var(--green-deep);color:var(--paper);border-bottom:6px solid var(--yolk);margin-bottom:6px;padding:36px 0 30px;position:relative;overflow:hidden}header.app-header:after{content:"";background:radial-gradient(circle at 35% 35%, var(--yolk) 0%, var(--yolk-deep) 55%, transparent 72%);opacity:.9;border-radius:50%;width:220px;height:220px;position:absolute;top:-60px;right:-60px}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--yolk);margin:0 0 10px;font-family:IBM Plex Mono,monospace;font-size:12px}h1{z-index:1;max-width:760px;margin:0 0 14px;font-family:Fraunces,serif;font-size:clamp(32px,5vw,52px);font-weight:600;line-height:1.02;position:relative}.meta-row{color:#cdd8c6;z-index:1;flex-wrap:wrap;gap:22px 34px;font-family:IBM Plex Mono,monospace;font-size:12.5px;display:flex;position:relative}.meta-row span b{color:var(--paper);font-weight:600}.tabs-bar{border-bottom:2px solid var(--green-deep);gap:4px;margin:28px 0 0;display:flex}.tab-btn{letter-spacing:.03em;text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--paper-line);cursor:pointer;background:0 0;border-bottom:none;align-items:center;gap:10px;padding:13px 20px 11px;font-family:IBM Plex Mono,monospace;font-size:13px;transition:color .15s,background .15s,border-color .15s;display:flex;position:relative;top:2px}.tab-btn .tab-num{color:var(--yolk-deep);border:1px solid var(--yolk-deep);padding:1px 6px;font-size:10.5px}.tab-btn:hover:not(.active){color:var(--ink);border-color:var(--ink-soft)}.tab-btn.active{background:var(--card);color:var(--green-deep);border-color:var(--green-deep);border-bottom:2px solid var(--card);font-weight:600}.tab-btn.active .tab-num{background:var(--yolk);border-color:var(--yolk);color:var(--green-deep)}.tab-btn-separate{border-left:2px dashed var(--paper-line);margin-left:16px}.notice{background:var(--card);border:1px solid var(--paper-line);border-left:4px solid var(--rust);color:var(--ink-soft);margin:26px 0 34px;padding:16px 20px;font-size:14.5px;line-height:1.55}.notice b{color:var(--rust);font-weight:600}.notice.error{border-left-color:var(--rust)}.notice.loading{border-left-color:var(--yolk-deep)}.filters-bar{background:var(--card);border:1px solid var(--paper-line);border-left:4px solid var(--yolk-deep);margin:26px 0 30px;padding:16px 20px}.filters-row{flex-wrap:wrap;align-items:flex-end;gap:18px;display:flex}.filters-row+.filters-row{border-top:1px dashed var(--paper-line);margin-top:14px;padding-top:14px}.filter-field{flex-direction:column;gap:5px;display:flex}.filter-field label{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);font-family:IBM Plex Mono,monospace;font-size:10.5px}.filter-field input,.filter-field select{border:1px solid var(--paper-line);color:var(--ink);background:#fff;min-width:150px;padding:7px 9px;font-family:IBM Plex Mono,monospace;font-size:13px}.filter-field input:focus,.filter-field select:focus{border-color:var(--yolk-deep);outline:none;box-shadow:0 0 0 2px #e2a23340}.filters-clear{border:1px solid var(--paper-line);color:var(--rust);text-transform:uppercase;letter-spacing:.03em;cursor:pointer;background:0 0;align-self:center;padding:8px 14px;font-family:IBM Plex Mono,monospace;font-size:12px}.filters-clear:hover{border-color:var(--rust);background:#fdeeea}.filters-presets{align-items:center}.filter-preset{border:1px solid var(--paper-line);color:var(--ink-soft);cursor:pointer;background:0 0;padding:5px 11px;font-family:IBM Plex Mono,monospace;font-size:11.5px;transition:border-color .15s,color .15s}.filter-preset:hover{border-color:var(--green-mid);color:var(--green-mid)}.filters-count{color:var(--ink-soft);margin-left:auto;font-family:IBM Plex Mono,monospace;font-size:12px}.kpis{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:38px;display:grid}.kpi{background:var(--card);border:1px solid var(--paper-line);padding:20px 18px 18px;position:relative}.kpi:before{content:"";background:var(--yolk);width:100%;height:3px;position:absolute;top:0;left:0}.kpi .label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:10px;font-family:IBM Plex Mono,monospace;font-size:11px}.kpi .value{color:var(--green-deep);font-family:Fraunces,serif;font-size:30px;font-weight:600;line-height:1}.kpi .unit{color:var(--ink-soft);font-size:14px;font-weight:500}.kpi .sub{color:var(--ink-soft);margin-top:8px;font-size:12.5px}.kpi.mort .value{color:var(--rust)}.kpi.mort:before{background:var(--rust)}.section-title{align-items:baseline;gap:12px;margin:0 0 16px;display:flex}.section-title .num{color:var(--yolk-deep);border:1px solid var(--yolk-deep);padding:2px 7px;font-family:IBM Plex Mono,monospace;font-size:12px}.section-title h2{color:var(--green-deep);margin:0;font-family:Fraunces,serif;font-size:22px;font-weight:600}.chart-card{background:var(--card);border:1px solid var(--paper-line);margin-bottom:42px;padding:22px 22px 10px 12px}.chart-legend-note{color:var(--ink-soft);padding:0 10px 14px;font-family:IBM Plex Mono,monospace;font-size:11.5px}.chart-wrap{height:340px;position:relative}.chart-wrap.donut-wrap{height:280px}.chart-empty{height:100%;color:var(--ink-soft);text-align:center;justify-content:center;align-items:center;padding:0 20px;font-family:IBM Plex Mono,monospace;font-size:13px;display:flex}table{border-collapse:collapse;background:var(--card);border:1px solid var(--paper-line);width:100%;font-family:IBM Plex Mono,monospace;font-size:13px}thead th{background:var(--green-deep);color:var(--paper);text-align:right;letter-spacing:.03em;padding:11px 14px;font-weight:500}thead th:first-child,thead th:nth-child(2){text-align:left}tbody td{text-align:right;border-bottom:1px solid var(--paper-line);color:var(--ink);padding:9px 14px}tbody td:first-child,tbody td:nth-child(2){text-align:left;color:var(--ink-soft)}tbody tr:nth-child(2n){background:#faf6ea}td.delta-up{color:#3f6b34}td.delta-down{color:var(--rust)}.prod-cell{color:var(--green-deep);font-weight:600}.mort-cell{color:var(--rust);font-weight:600}.row-actions{justify-content:flex-end;gap:6px;display:flex}.row-actions button{border:1px solid var(--paper-line);color:var(--ink-soft);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 8px;font-family:IBM Plex Mono,monospace;font-size:11px}.row-actions .edit-btn:hover{border-color:var(--green-mid);color:var(--green-mid)}.row-actions .delete-btn:hover{border-color:var(--rust);color:var(--rust)}footer.app-footer{border-top:1px solid var(--paper-line);color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:46px;padding-top:18px;font-family:IBM Plex Mono,monospace;font-size:11.5px;display:flex}.form-card{background:var(--card);border:1px solid var(--paper-line);margin-bottom:42px;padding:26px 26px 24px}.form-farm-tag{border-bottom:2px solid var(--green-deep);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:22px;padding-bottom:14px;display:flex}.form-farm-tag h3{color:var(--green-deep);margin:0 0 3px;font-family:Fraunces,serif;font-size:19px;font-weight:600}.form-farm-tag p{color:var(--ink-soft);margin:0;font-family:IBM Plex Mono,monospace;font-size:11.5px}.form-farm-tag .src{color:var(--yolk-deep);text-align:right;font-family:IBM Plex Mono,monospace;font-size:10.5px}.form-grid{grid-template-columns:1fr 1fr;gap:34px;display:grid}.field-row{grid-template-columns:1fr 1fr;align-items:center;gap:12px;margin-bottom:14px;display:grid}.field-row.full{grid-template-columns:1fr}.field-row label{color:var(--ink);font-size:13px;font-weight:600}.field-row input,.field-row select{border:1px solid var(--paper-line);width:100%;color:var(--ink);background:#fff;padding:8px 10px;font-family:IBM Plex Mono,monospace;font-size:13.5px}.field-row input:focus,.field-row select:focus{border-color:var(--yolk-deep);outline:none;box-shadow:0 0 0 2px #e2a23340}.field-inline-stack{flex-direction:column;gap:6px;display:flex}.field-inline-link{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-family:IBM Plex Mono,monospace;font-size:11px;text-decoration:underline}.field-inline-link:hover{color:var(--green-mid)}.field-hint{color:var(--ink-soft);margin:-9px 0 14px;font-family:IBM Plex Mono,monospace;font-size:11px;line-height:1.5}.subgroup-label{letter-spacing:.08em;text-transform:uppercase;color:var(--yolk-deep);border-bottom:1px dashed var(--paper-line);margin:20px 0 10px;padding-bottom:6px;font-family:IBM Plex Mono,monospace;font-size:11px}.egg-table{border-collapse:collapse;width:100%;margin-bottom:6px}.egg-table th{text-transform:uppercase;color:var(--ink-soft);text-align:right;padding:4px 6px;font-family:IBM Plex Mono,monospace;font-size:10.5px;font-weight:500}.egg-table th:first-child{text-align:left}.egg-table td{padding:4px 6px}.egg-table td:first-child{color:var(--ink);white-space:nowrap;font-size:12.5px}.egg-table input{border:1px solid var(--paper-line);text-align:right;background:#fff;width:100%;padding:6px 7px;font-family:IBM Plex Mono,monospace;font-size:12.5px}.egg-table-color th{padding:3px 4px;font-size:9.5px}.egg-table-color td{padding:3px 4px}.egg-table-color td:first-child{font-size:11.5px}.egg-table-color input{padding:5px 4px;font-size:11.5px}.egg-table-color th.egg-group-rojo{color:var(--rust)}.egg-table-color th.egg-group-blanco{color:var(--ink-soft)}.egg-table-color thead tr:first-child th.egg-group-rojo{border-bottom:2px solid var(--rust)}.egg-table-color thead tr:first-child th.egg-group-blanco{border-bottom:2px solid var(--paper-line)}.feed-row{grid-template-columns:1.3fr 1fr .8fr;align-items:center;gap:8px;margin-bottom:8px;display:grid}.feed-row span{color:var(--ink);font-size:12px}.feed-row input{border:1px solid var(--paper-line);background:#fff;padding:7px 8px;font-family:IBM Plex Mono,monospace;font-size:12.5px}.computed-panel{background:var(--green-deep);color:var(--paper);gap:34px;margin-top:8px;padding:16px 18px;display:flex}.computed-panel .c-item .c-label{text-transform:uppercase;letter-spacing:.06em;color:var(--yolk);margin-bottom:4px;font-family:IBM Plex Mono,monospace;font-size:10.5px}.computed-panel .c-item .c-value{font-family:Fraunces,serif;font-size:22px;font-weight:600}.editing-badge{background:var(--rust);color:var(--paper);letter-spacing:.03em;text-transform:uppercase;padding:4px 10px;font-family:IBM Plex Mono,monospace;font-size:11px;display:inline-block}.form-actions{gap:12px;margin-top:20px;display:flex}.grabar-btn{background:var(--yolk);width:100%;color:var(--green-deep);cursor:pointer;border:none;flex:1;margin-top:0;padding:14px 0;font-family:Fraunces,serif;font-size:16px;font-weight:600;transition:background .15s}.grabar-btn:hover{background:var(--yolk-deep);color:var(--paper)}.grabar-btn:disabled{opacity:.6;cursor:not-allowed}.cancelar-btn{border:1px solid var(--paper-line);color:var(--ink-soft);text-transform:uppercase;letter-spacing:.03em;cursor:pointer;background:0 0;flex:none;padding:0 20px;font-family:IBM Plex Mono,monospace;font-size:12.5px;transition:border-color .15s,color .15s}.cancelar-btn:hover{border-color:var(--rust);color:var(--rust)}.cancelar-btn:disabled{opacity:.6;cursor:not-allowed}.grabar-msg{text-align:center;min-height:16px;margin-top:10px;font-family:IBM Plex Mono,monospace;font-size:12px}.grabar-msg.ok{color:#3f6b34}.grabar-msg.err{color:var(--rust)}@media (width<=820px){.form-grid{grid-template-columns:1fr}.field-row{grid-template-columns:1fr;align-items:start;gap:5px}}@media (width<=760px){.kpis{grid-template-columns:repeat(2,1fr)}table{font-size:11.5px}thead th,tbody td{padding:8px}.tabs-bar{flex-wrap:wrap}.tab-btn{flex:auto;justify-content:center;padding:12px 12px 10px}}
