:root{font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:#172018;background:#f5f7f3}
*{box-sizing:border-box}body{margin:0}.container{width:min(1120px,92%);margin:auto}.topbar{background:#183b22;color:#fff;padding:14px 0;position:sticky;top:0}.nav{display:flex;align-items:center;justify-content:space-between}.brand{color:#fff;text-decoration:none;font-weight:800}.hero{padding:54px 0 30px;max-width:760px}.hero h1{font-size:clamp(2.2rem,6vw,4rem);margin:.2rem 0}.eyebrow{text-transform:uppercase;letter-spacing:.09em;font-size:.78rem;font-weight:800;color:#52725b}.btn{display:inline-block;background:#206b35;color:white;text-decoration:none;border:0;border-radius:10px;padding:10px 15px;font-weight:700;cursor:pointer}.btn.ghost{background:#e7efe8;color:#183b22}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.card,.panel,.metric,.empty{background:white;border:1px solid #dfe5df;border-radius:14px;padding:16px}.card{display:flex;flex-direction:column;gap:7px;color:inherit;text-decoration:none}.header-row,.section-title,.actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.header-row{margin:28px 0}.actions{justify-content:flex-end}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px;margin:20px 0 30px}.metric span{display:block;color:#647267;font-size:.82rem}.metric strong{font-size:1.25rem}.section-panel{margin:12px 0}.section-title h3{margin:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th,td{border-bottom:1px solid #e6ebe6;padding:10px;text-align:right}th:first-child,td:first-child{text-align:left}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.form-grid label{display:flex;flex-direction:column;gap:6px;font-weight:700}.form-grid input,.form-grid select{padding:10px;border:1px solid #cbd5cc;border-radius:8px;font:inherit}.form-grid small,.muted{color:#6b786d;font-weight:400}.message{margin-top:18px;background:#e5f4e8;border:1px solid #b9d8c0;padding:12px;border-radius:10px}.inline{display:inline}.link{border:0;background:none;padding:0;text-decoration:underline;cursor:pointer}.danger{color:#9b2d30}.nowrap{white-space:nowrap}.note{margin:24px 0}.footer{padding:34px 0;color:#738076;font-size:.85rem}@media(max-width:700px){.header-row{align-items:flex-start;flex-direction:column}.actions{width:100%;justify-content:flex-start}}

/* Fase 2: parcela y agroclima */
.message.error{background:#fdecec;border-color:#efc4c5;color:#81272b}.message.success{background:#e5f4e8;border-color:#b9d8c0}.field-error{color:#9b2d30;margin-top:6px}.empty-state{margin:12px 0}.badge{display:inline-flex;align-items:center;width:max-content;padding:5px 9px;border-radius:999px;background:#e8f2ea;color:#215b31;font-size:.78rem;font-weight:800}.badge.pending{background:#f4f0df;color:#6d5b19}.map-large{height:560px;border:1px solid #ccd8ce;border-radius:14px;margin:14px 0;z-index:1}.map-medium{height:440px;border:1px solid #ccd8ce;border-radius:14px;margin:12px 0 28px;z-index:1}.map-toolbar{display:grid;grid-template-columns:minmax(220px,420px) 1fr;gap:18px;align-items:end}.map-toolbar input{width:100%;padding:10px;border:1px solid #cbd5cc;border-radius:8px;font:inherit}.map-help{color:#5f6c61;font-size:.9rem;line-height:1.45}.map-metrics{margin-top:12px}.form-actions{margin:18px 0;justify-content:flex-end}.agro-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:16px 0}.agro-card{background:#fff;border:1px solid #dfe5df;border-radius:14px;padding:16px}.agro-card span{display:block;color:#647267;font-size:.82rem;margin-bottom:5px}.agro-card strong{font-size:1.18rem}.small-strong{font-size:.98rem!important}.source-note,.roadmap-box{margin:16px 0 24px}.roadmap-box h3{margin-top:0}.cards .card .badge{margin-top:6px}
@media(max-width:700px){.map-toolbar{grid-template-columns:1fr}.map-large{height:450px}.map-medium{height:360px}.form-actions{justify-content:flex-start}}

/* Fase 3: muestreo multipunto del polígono */
.footer-source{margin-top:8px;max-width:920px;line-height:1.45}.compact-table{min-width:650px}.point-table{min-width:1060px}.leaflet-tooltip{font-weight:800}.message.warning{background:#fff5dd;border-color:#ead196;color:#6d5411}

/* Fase 4: panel de monitoreo inspirado en flujos de agricultura de precisión */
.monitor-header{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:28px 0 16px}.monitor-header h1{margin:.15rem 0}.monitor-shell{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(280px,.8fr);gap:14px;align-items:stretch}.monitor-map-card,.field-sidebar{background:#fff;border:1px solid #dfe5df;border-radius:16px;overflow:hidden}.monitor-map-topline{display:flex;align-items:center;justify-content:space-between;padding:13px 15px;border-bottom:1px solid #e7ece7}.monitor-map-topline div{display:flex;flex-direction:column;gap:2px}.monitor-map-topline span{font-size:.8rem;color:#6b786d}.status-live,.status-muted{font-size:.78rem!important;font-weight:800;border-radius:999px;padding:5px 8px}.status-live{background:#e6f3e9;color:#1f6a37}.status-muted{background:#eef1ee;color:#667168}.monitor-map{height:520px;z-index:1}.indicator-strip{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));border-top:1px solid #e7ece7;background:#fbfcfb}.indicator-chip{border:0;border-right:1px solid #e7ece7;background:#fbfcfb;padding:10px 8px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:7px;text-align:left;cursor:pointer}.indicator-chip:last-child{border-right:0}.indicator-chip>span{grid-row:1/3;font-size:1.1rem;align-self:center}.indicator-chip strong{font-size:.85rem}.indicator-chip small{font-size:.72rem;color:#728077}.indicator-chip.active{background:#edf5ef;box-shadow:inset 0 3px 0 #206b35}.indicator-chip.disabled{opacity:.55;cursor:not-allowed}.field-sidebar{padding:16px;display:flex;flex-direction:column;gap:16px}.field-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.field-card-head h2{margin:.25rem 0}.field-kicker{text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;font-weight:800;color:#647267}.field-icon{font-size:1.7rem}.field-facts{margin:0;display:flex;flex-direction:column;border-top:1px solid #e6ebe6}.field-facts>div{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #e6ebe6}.field-facts dt{color:#647267;font-size:.82rem}.field-facts dd{margin:0;font-weight:700;text-align:right;font-size:.86rem}.freshness-box{margin-top:auto;background:#f4f7f3;border:1px solid #dfe5df;border-radius:12px;padding:13px}.freshness-box>strong{display:block;margin:.35rem 0 .25rem}.freshness-box p{margin:.2rem 0 .8rem;color:#667168;font-size:.82rem;line-height:1.4}.freshness-row{display:flex;justify-content:space-between;gap:8px;font-size:.78rem;padding:5px 0;border-top:1px solid #e2e8e2}.monitor-section{margin:30px 0}.monitor-kpis{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:10px;margin:15px 0}.monitor-kpis article{background:#fff;border:1px solid #dfe5df;border-radius:13px;padding:13px}.monitor-kpis span,.monitor-kpis small{display:block;color:#667168;font-size:.75rem}.monitor-kpis strong{display:block;font-size:1.18rem;margin:3px 0}.monitor-grid-two{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.8fr);gap:12px;margin:12px 0}.compact-title{align-items:flex-start}.compact-title h3{margin:0}.chart-panel{min-height:390px}.chart-wrap{height:300px;margin-top:10px}.indicator-list{display:flex;flex-direction:column}.indicator-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;align-items:baseline;padding:11px 0;border-bottom:1px solid #e7ece7}.indicator-list>div:last-child{border-bottom:0}.indicator-list span{font-size:.84rem}.indicator-list strong{font-size:1rem}.indicator-list small{grid-column:1/3;color:#748078;font-size:.73rem}.indicator-pending{opacity:.6}.monitor-table{min-width:900px}.monitor-table th,.monitor-table td{text-align:right}.monitor-table th:first-child,.monitor-table td:first-child{text-align:left}.roadmap-box{margin-top:18px}.leaflet-popup-content{line-height:1.5}
@media(max-width:1000px){.monitor-shell,.monitor-grid-two{grid-template-columns:1fr}.field-sidebar{min-height:auto}.freshness-box{margin-top:0}.monitor-kpis{grid-template-columns:repeat(3,minmax(130px,1fr))}.monitor-map{height:470px}}
@media(max-width:700px){.monitor-header{align-items:flex-start;flex-direction:column}.monitor-kpis{grid-template-columns:repeat(2,minmax(120px,1fr))}.indicator-strip{grid-template-columns:repeat(2,1fr)}.indicator-chip{border-bottom:1px solid #e7ece7}.monitor-map{height:380px}}

/* Fase 5: vegetación Sentinel-2. Arquitectura visual tipo plataforma de monitoreo de campo. */
.monitor-actions{flex-wrap:wrap}.monitor-actions .btn:disabled{opacity:.5;cursor:not-allowed}.layer-strip{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));border-top:1px solid #e7ece7;background:#fbfcfb}.layer-chip{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:8px;padding:11px 12px;text-decoration:none;color:inherit;border-right:1px solid #e7ece7}.layer-chip:last-child{border-right:0}.layer-chip>span{grid-row:1/3;font-size:1.1rem;align-self:center}.layer-chip strong{font-size:.86rem}.layer-chip small{font-size:.72rem;color:#728077}.layer-chip.active{background:#edf5ef;box-shadow:inset 0 3px 0 #206b35}.layer-chip.disabled{opacity:.5}.satellite-freshness{margin-top:auto}.climate-freshness{margin-top:0}.vegetation-section{scroll-margin-top:90px}.vegetation-title{align-items:flex-end}.index-selector{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:9px;margin:15px 0}.index-pill{display:flex;flex-direction:column;gap:3px;text-decoration:none;color:inherit;background:#fff;border:1px solid #dfe5df;border-radius:12px;padding:11px 12px;min-height:64px}.index-pill strong{font-size:.95rem}.index-pill small{font-size:.72rem;color:#6f7b72;line-height:1.3}.index-pill.active{border-color:#6ea57b;background:#edf5ef;box-shadow:inset 0 0 0 1px #6ea57b}.date-timeline-wrap{background:#fff;border:1px solid #dfe5df;border-radius:14px;padding:12px 14px;margin:10px 0 14px}.timeline-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.timeline-head span{font-size:.78rem}.date-timeline{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.date-pill{min-width:72px;display:flex;flex-direction:column;align-items:center;text-decoration:none;color:inherit;border:1px solid #dfe5df;border-radius:10px;padding:7px 10px;background:#fafbfa}.date-pill span{font-weight:800;font-size:.82rem}.date-pill small{font-size:.7rem;color:#748078}.date-pill.active{background:#206b35;color:#fff;border-color:#206b35}.date-pill.active small{color:#dceade}.sat-kpis{display:grid;grid-template-columns:repeat(6,minmax(135px,1fr));gap:10px;margin:14px 0}.sat-kpis article{background:#fff;border:1px solid #dfe5df;border-radius:13px;padding:13px}.sat-kpis span,.sat-kpis small{display:block;color:#667168;font-size:.75rem}.sat-kpis strong{display:block;font-size:1.2rem;margin:3px 0}.satellite-grid{grid-template-columns:minmax(0,1.5fr) minmax(300px,.85fr)}.satellite-table{min-width:1050px}.selected-row{background:#f0f6f1}.text-left{text-align:left!important}.satellite-empty{padding:22px}.point-details{margin:12px 0}.point-details summary{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer}.point-details[open] summary{margin-bottom:12px}.source-note{line-height:1.45}.field-sidebar code,.satellite-empty code{font-size:.82em}.monitor-map-card{position:relative}
@media(max-width:1050px){.sat-kpis{grid-template-columns:repeat(3,minmax(130px,1fr))}.index-selector{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.layer-strip{grid-template-columns:repeat(2,1fr)}.index-selector{grid-template-columns:repeat(2,1fr)}.sat-kpis{grid-template-columns:repeat(2,minmax(120px,1fr))}.timeline-head{align-items:flex-start;flex-direction:column}.monitor-actions{width:100%;justify-content:flex-start}.monitor-actions form{display:inline-block}}
.index-legend{background:rgba(255,255,255,.94);padding:8px 10px;border-radius:9px;border:1px solid #d6ded7;box-shadow:0 1px 5px rgba(0,0,0,.12);min-width:130px}.index-legend strong{font-size:.76rem}.legend-bar{height:9px;border-radius:99px;margin:5px 0;background:linear-gradient(90deg,#777a7d,#c7b07a,#ded172,#a3bf57,#579f40,#1f7a33,#075023)}.legend-scale{display:flex;justify-content:space-between;font-size:.64rem;color:#657168}

/* Fase 6: productor como entidad raíz; parcelas independientes y cuota 2x2 */
.top-actions{display:flex;align-items:center;gap:8px}.producer-hero{max-width:820px}.producer-card-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.quota-mini{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:7px}.quota-mini span{display:flex;justify-content:space-between;background:#f3f6f3;border-radius:8px;padding:8px;font-size:.82rem}.producer-header{align-items:flex-end}.quota-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px;margin:18px 0 30px}.quota-card{background:#fff;border:1px solid #dfe5df;border-radius:14px;padding:16px}.quota-card span,.quota-card small{display:block;color:#667168}.quota-card strong{display:block;font-size:1.7rem;margin:4px 0}.quota-card.quota-full{background:#fff7e8;border-color:#e7d49b}.limit-badge{background:#fff0cc;color:#705510}.producer-section{margin:30px 0}.field-wide{grid-column:1/-1}.field-wide ul{list-style:none;padding:0;margin:6px 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.field-wide li label{display:flex;flex-direction:row;align-items:center;gap:8px;background:#f7f9f7;border:1px solid #dfe5df;padding:10px;border-radius:9px}.field-wide input[type=checkbox]{width:auto}.parcel-meta-toolbar{grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) 1.4fr}.linked-costeos-panel{margin:14px 0 24px}.linked-list{display:flex;flex-wrap:wrap;gap:9px;margin-top:10px}.linked-list a{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:inherit;background:#f4f7f4;border:1px solid #dfe5df;border-radius:10px;padding:9px 11px;min-width:220px}.linked-list span{font-size:.78rem;color:#68756b}
@media(max-width:700px){.top-actions{gap:5px}.top-actions .btn{padding:8px 10px;font-size:.82rem}.quota-grid{grid-template-columns:1fr}.parcel-meta-toolbar{grid-template-columns:1fr}}
.danger-btn{background:#9b2d30}.danger-btn:hover{filter:brightness(.95)}

/* Fase 7: eliminación visible + mercado de futuros de maíz */
.over-limit-message{line-height:1.55}.producer-entity-grid{align-items:stretch}.producer-entity-card{padding:0!important;overflow:hidden;display:flex;flex-direction:column}.entity-card-main{display:flex;flex-direction:column;gap:8px;padding:16px;text-decoration:none;color:inherit;flex:1}.entity-card-main:hover{background:#fbfcfb}.entity-card-actions{display:flex;align-items:center;gap:6px;padding:9px 12px;border-top:1px solid #e5eae5;background:#fafbfa}.entity-card-actions form{margin:0}.mini-action{appearance:none;border:0;background:transparent;color:#1d6433;text-decoration:none;font:inherit;font-size:.78rem;font-weight:800;padding:5px 7px;cursor:pointer;border-radius:7px}.mini-action:hover{background:#edf4ef}.danger-link{color:#9b2d30}.danger-link:hover{background:#fff0f0}.market-hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin:28px 0 18px}.market-hero h1{margin:.3rem 0}.market-hero p{max-width:760px}.market-meta-row{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 18px}.market-meta-row span{background:#f4f7f4;border:1px solid #dfe5df;border-radius:999px;padding:7px 10px;font-size:.78rem}.market-kpis{display:grid;grid-template-columns:repeat(6,minmax(135px,1fr));gap:10px;margin:14px 0 20px}.market-kpis article{background:#fff;border:1px solid #dfe5df;border-radius:13px;padding:13px}.market-kpis span,.market-kpis small{display:block;color:#667168;font-size:.75rem}.market-kpis strong{display:block;font-size:1.16rem;margin:3px 0}.market-grid-two{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.8fr);gap:12px}.market-panel{margin:14px 0}.market-analysis p{line-height:1.55}.market-warning{background:#fff7e8;border:1px solid #ead39b;color:#6c5217;padding:12px;border-radius:10px;font-size:.82rem;line-height:1.45}.market-up{color:#17753a}.market-down{color:#a32e35}.market-ticker{display:block;color:#748078;margin-top:2px}.freshness-tag{display:inline-block;border-radius:999px;padding:4px 7px;font-size:.72rem;font-weight:800}.freshness-tag.fresco{background:#e7f4e9;color:#23673a}.freshness-tag.revisar{background:#fff2cf;color:#775a12}.freshness-tag.rezagado{background:#fbe4e4;color:#8a2f32}.market-table{min-width:1180px}.market-help code{background:#f2f4f2;padding:2px 5px;border-radius:5px}
@media(max-width:1100px){.market-kpis{grid-template-columns:repeat(3,minmax(130px,1fr))}.market-grid-two{grid-template-columns:1fr}}
@media(max-width:700px){.market-hero{align-items:flex-start;flex-direction:column}.market-kpis{grid-template-columns:repeat(2,minmax(120px,1fr))}}

/* Fase 8: mercado de maíz - alcance de bases y lectura de contratos */
.basis-alert{display:flex;gap:16px;align-items:flex-start;background:#fff4f4;border:3px solid #cf2f35;border-radius:16px;padding:18px 20px;margin:12px 0 18px;box-shadow:0 6px 18px rgba(183,36,42,.12)}
.basis-alert-icon{flex:0 0 38px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#b7242a;color:#fff;font-size:1.35rem;font-weight:900}
.basis-alert h2{margin:0 0 7px;color:#9f2025;font-size:1.18rem}.basis-alert p{margin:6px 0;line-height:1.5}.basis-formula{font-weight:800;color:#7e2024;background:#fff;border-radius:9px;padding:9px 11px;border:1px solid #efc2c4}.basis-small{font-size:.82rem;color:#6f494b}
.price-flow-card{background:#fff;border:1px solid #dfe5df;border-radius:15px;padding:16px 18px;margin:0 0 16px}.price-flow-card h2{margin:0 0 12px;font-size:1.05rem}.price-flow{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap}.flow-step{min-width:145px;border:1px solid #d9e1da;border-radius:12px;padding:11px;text-align:center;background:#f8faf8}.flow-step span{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#e5eee7;color:#1c6335;font-size:.72rem;font-weight:900;margin-bottom:5px}.flow-step strong,.flow-step small{display:block}.flow-step small{margin-top:3px;color:#6a756c;font-size:.7rem}.flow-step-danger{border:2px solid #d33439;background:#fff1f1}.flow-step-danger strong{color:#a5252a}.flow-step-danger span{background:#d33439;color:#fff}.flow-arrow{font-size:1.3rem;font-weight:900;color:#b1bab2}
.contract-focus{display:grid;grid-template-columns:minmax(280px,1.4fr) minmax(260px,1fr) auto;gap:16px;align-items:center;background:linear-gradient(135deg,#f7fbf7,#fff);border:1px solid #d9e4db;border-left:6px solid #1d6a38;border-radius:15px;padding:17px 18px;margin:14px 0}.contract-kicker{display:block;color:#68746b;font-size:.74rem;text-transform:uppercase;letter-spacing:.07em;font-weight:800}.contract-focus h2{margin:4px 0 3px;font-size:1.27rem}.contract-code{font-size:.8rem;color:#667168}.contract-focus-prices{display:grid;grid-template-columns:1fr 1fr;gap:9px}.contract-focus-prices>div{background:#fff;border:1px solid #e0e6e1;border-radius:10px;padding:10px}.contract-focus-prices span,.contract-focus-prices small{display:block;color:#69746b;font-size:.68rem}.contract-focus-prices strong{font-size:1.1rem}.contract-basis-badge{background:#fff0f0;color:#a2262b;border:2px solid #d43b40;border-radius:999px;padding:9px 12px;font-size:.75rem;font-weight:900;text-align:center}.market-kpis-compact{grid-template-columns:repeat(4,minmax(140px,1fr))}
.market-warning-red{background:#fff0f0!important;border:2px solid #d43b40!important;color:#8e2428!important}.contracts-panel{border-top:4px solid #1d6a38}.contract-legend{display:flex;gap:12px;flex-wrap:wrap;align-items:center;background:#f1f6ff;border:1px solid #c9d9f2;border-radius:10px;padding:10px 12px;margin:8px 0 14px;font-size:.79rem;color:#28486e}.contract-name-cell{min-width:210px}.contract-name-cell small{display:block;color:#6f7a72;margin-top:3px}.ticker-chip{display:inline-block;background:#eef2ef;border:1px solid #d7ded8;padding:4px 7px;border-radius:7px;font-size:.75rem;color:#334c3a}.reference-price small{display:block;color:#a02b30;font-size:.66rem;font-weight:800;margin-top:2px}.market-table-readable{min-width:1350px}.market-table-footnote{background:#fff4f4;border-left:5px solid #cf2f35;border-radius:8px;padding:10px 12px;margin-top:12px;color:#7d2c2f;font-size:.78rem;line-height:1.45}
@media(max-width:1050px){.contract-focus{grid-template-columns:1fr}.contract-basis-badge{justify-self:start}.market-kpis-compact{grid-template-columns:repeat(2,minmax(140px,1fr))}}
@media(max-width:700px){.basis-alert{flex-direction:column}.contract-focus-prices{grid-template-columns:1fr}.market-kpis-compact{grid-template-columns:1fr}.flow-arrow{transform:rotate(90deg)}}

/* Fase 8.1: mercado visual inspirado en la jerarquía del reporte semanal de commodities */
.market-dashboard{padding-bottom:12px}.market-report-hero{margin:24px 0 18px;background:linear-gradient(100deg,#123c73 0%,#1f6fb2 58%,#2f9e44 100%);color:#fff;border-radius:20px;padding:28px 30px;display:flex;justify-content:space-between;gap:24px;align-items:flex-end;box-shadow:0 10px 28px rgba(18,60,115,.22);overflow:hidden;position:relative}.market-report-hero:after{content:'🌽';position:absolute;right:26%;bottom:-35px;font-size:115px;opacity:.08;transform:rotate(-16deg)}.market-report-hero-copy{position:relative;z-index:1}.market-report-chip{display:inline-block;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.35);padding:7px 11px;border-radius:999px;font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.market-report-hero h1{color:#fff;font-size:2.2rem;line-height:1.05;margin:12px 0 9px}.market-report-hero p{max-width:780px;margin:0;line-height:1.55;font-size:1rem;color:rgba(255,255,255,.93)}.market-hero-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.market-hero-meta span{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.28);padding:7px 10px;border-radius:9px;font-size:.75rem}.market-refresh-form{position:relative;z-index:2;flex:0 0 auto}.market-refresh-btn{border:0;background:#fff;color:#123c73;border-radius:12px;padding:12px 16px;font-weight:900;cursor:pointer;box-shadow:0 5px 14px rgba(0,0,0,.18)}.market-refresh-btn:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(0,0,0,.22)}
.market-alerta-alcance{display:flex;gap:16px;align-items:flex-start;background:#fff1f2;border:3px solid #dc2626;border-radius:18px;padding:20px 22px;margin:18px 0;box-shadow:0 7px 20px rgba(220,38,38,.14);animation:marketPulse 2.2s ease-in-out 2}.market-alert-symbol{flex:0 0 48px;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#b91c1c;color:#fff;font-size:1.8rem;font-weight:900;box-shadow:0 4px 12px rgba(185,28,28,.25)}.market-alert-title{font-size:.76rem;font-weight:950;letter-spacing:.14em;color:#b91c1c;margin:1px 0 4px}.market-alerta-alcance h2{margin:0 0 8px;color:#991b1b;font-size:1.42rem;line-height:1.2}.market-alerta-alcance p{margin:7px 0;line-height:1.5;color:#6f2024}.market-alert-mini{font-size:.78rem!important;color:#7f1d1d!important}.market-basis-equation{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin:14px 0 10px}.eq-box{min-width:135px;padding:10px 12px;border-radius:12px;text-align:center;font-weight:900;border:2px solid}.eq-box small{display:block;font-size:.68rem;font-weight:700;margin-top:2px}.eq-blue{background:#eff6ff;border-color:#1f6fb2;color:#123c73}.eq-red{background:#fef2f2;border-color:#dc2626;color:#991b1b}.eq-orange{background:#fff7ed;border-color:#ea580c;color:#9a3412}.eq-green{background:#eefbf1;border-color:#2f9e44;color:#176b2b}.eq-sign{font-size:1.45rem;font-weight:950;color:#b91c1c}
@keyframes marketPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.003);box-shadow:0 10px 28px rgba(220,38,38,.22)}}
.market-flow-card,.market-contract-deck-panel,.market-report-card{background:#fff;border-radius:18px;padding:20px 22px;margin:18px 0;box-shadow:0 8px 22px rgba(20,50,80,.08);border-left:8px solid #2f9e44}.market-flow-card{border:2px dashed #dc2626;border-left:8px solid #dc2626}.market-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:13px}.market-section-heading h2{margin:2px 0 0;color:#123c73;font-size:1.35rem}.market-section-heading p{margin:5px 0 0}.market-section-kicker{font-size:.71rem;text-transform:uppercase;letter-spacing:.1em;font-weight:900;color:#2f9e44}.market-section-pill{display:inline-block;background:#fff1f2;color:#991b1b;border:1px solid #fecaca;border-radius:999px;padding:6px 10px;font-size:.72rem;font-weight:900;white-space:nowrap}.market-section-pill-blue{background:#e8f1ff;color:#123c73;border-color:#bfd4f6}.market-flow-wrap{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:center}.market-flow-box{min-width:170px;max-width:210px;background:#f8fafc;border:2px solid #cbd5e1;border-radius:14px;padding:14px;text-align:center;color:#1e3a8a}.market-flow-box>span{display:inline-grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#e8f1ff;color:#123c73;font-size:.78rem;font-weight:950;margin-bottom:6px}.market-flow-box strong,.market-flow-box small{display:block}.market-flow-box small{color:#64748b;font-size:.7rem;margin-top:3px}.market-flow-box-red{background:#fef2f2;border-color:#dc2626;color:#991b1b}.market-flow-box-red>span{background:#dc2626;color:#fff}.market-flow-box-green{background:#f0fdf4;border-color:#2f9e44;color:#176b2b}.market-flow-box-green>span{background:#2f9e44;color:#fff}.market-flow-arrow{font-size:1.6rem;color:#dc2626;font-weight:950}
.market-source-strip{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:9px;margin:16px 0}.market-source-strip span{display:flex;flex-direction:column;background:#f8fbff;border:1px solid #dbe4f0;border-radius:11px;padding:10px 12px;font-size:.76rem;color:#43566e}.market-source-strip b{color:#123c73;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}
.market-contract-spotlight{display:grid;grid-template-columns:auto minmax(260px,1.2fr) minmax(160px,.6fr) minmax(170px,.65fr) auto;gap:14px;align-items:center;background:linear-gradient(135deg,#fffdf3 0%,#fff 55%,#eef8f1 100%);border:1px solid #e0e5d8;border-left:8px solid #e0ad1b;border-radius:18px;padding:18px 20px;margin:18px 0;box-shadow:0 8px 20px rgba(99,82,25,.09)}.spotlight-corn{font-size:2.25rem}.spotlight-kicker{display:block;color:#7a6c37;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900}.spotlight-main h2{margin:3px 0;color:#123c73;font-size:1.35rem}.spotlight-code{font-size:.78rem;color:#667168}.spotlight-code code{background:#eef2ef;border:1px solid #d7ded8;padding:3px 6px;border-radius:6px;color:#334c3a}.spotlight-price{background:#fff;border:1px solid #dce3de;border-radius:12px;padding:11px}.spotlight-price span,.spotlight-price small{display:block;font-size:.68rem;color:#6b756d}.spotlight-price strong{display:block;font-size:1.28rem;color:#123c73;margin:2px 0}.spotlight-price-mxn strong{color:#176b2b}.spotlight-base{background:#fff1f2;border:2px solid #dc2626;color:#991b1b;border-radius:12px;padding:10px 12px;text-align:center;font-weight:950}.spotlight-base small{font-size:.66rem}
.market-kpis-visual{grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.market-kpis-visual article{box-shadow:0 5px 15px rgba(20,50,80,.06);border-left:5px solid #2f9e44}.market-kpis-visual .market-kpi-blue{border-left-color:#1f6fb2}.market-kpis-visual .market-kpi-green{border-left-color:#2f9e44}.market-kpis-visual strong{font-size:1.25rem}.market-up{color:#15803d!important}.market-down{color:#b91c1c!important}
.market-contract-deck-panel{border-left-color:#1f6fb2}.market-contract-help{color:#566575;margin:-2px 0 13px;font-size:.86rem}.market-contract-deck{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.market-contract-card{position:relative;border:1px solid #dbe4f0;border-radius:13px;padding:13px;background:#f9fbff;min-height:125px}.market-contract-card.is-nearby{background:#fffdf1;border:2px solid #e0ad1b}.nearby-badge{position:absolute;top:8px;right:8px;background:#e0ad1b;color:#4d3c04;border-radius:999px;padding:3px 7px;font-size:.62rem;font-weight:950}.contract-card-name{font-weight:900;color:#123c73;padding-right:47px;line-height:1.25}.market-contract-card code{display:inline-block;margin:6px 0;background:#edf2f7;border-radius:6px;padding:3px 6px;font-size:.72rem}.contract-card-price{font-weight:950;color:#176b2b;font-size:1.15rem}.contract-card-price small{font-size:.66rem;color:#69746b}.contract-card-move{font-size:.73rem;font-weight:900;margin-top:3px}.contract-code-guide{margin-top:12px;background:#eef5ff;border:1px solid #cbdcf3;color:#27496e;border-radius:9px;padding:9px 11px;font-size:.75rem;line-height:1.5}
.market-grid-visual{gap:16px}.market-chart-card{border-left-color:#2f9e44}.market-analysis-card{border-left-color:#1f6fb2}.market-analysis-card p{line-height:1.55}.market-red-callout{margin-top:12px;background:#fff1f2;border:2px solid #dc2626;border-radius:10px;padding:12px;color:#8f1d22;font-size:.82rem;line-height:1.45}.market-contracts-report{border-left-color:#2f9e44}.market-contract-legend{background:#eef5ff!important;border-color:#c6d8f0!important;color:#27496e!important}.market-report-table th{background:#123c73!important;color:#fff!important;border-color:#2a5583!important;padding:10px 8px!important}.market-report-table tbody tr:nth-child(even){background:#f7fbff}.market-report-table td{border-color:#dbe4f0!important}.market-report-table tbody tr:hover{background:#eef8f1}.market-report-table .reference-price{background:#fffaf0}.market-table-footnote{background:#fff1f2!important;border-left:6px solid #dc2626!important;color:#7f1d1d!important}.market-bottom-note{margin:18px 0 4px;background:#123c73;color:#fff;border-radius:12px;padding:13px 15px;font-size:.78rem;line-height:1.45}.market-bottom-note strong{color:#fff}.market-chart-card .chart-wrap{height:430px}
@media(max-width:1150px){.market-contract-spotlight{grid-template-columns:auto 1fr 1fr}.spotlight-base{grid-column:2/-1;justify-self:start}.market-source-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:850px){.market-report-hero{align-items:flex-start;flex-direction:column}.market-refresh-form{width:100%}.market-refresh-btn{width:100%}.market-kpis-visual{grid-template-columns:repeat(2,1fr)}.market-source-strip{grid-template-columns:1fr 1fr}.market-contract-spotlight{grid-template-columns:1fr}.spotlight-corn{display:none}.spotlight-base{grid-column:auto;justify-self:stretch}.market-flow-arrow{transform:rotate(90deg)}}
@media(max-width:600px){.market-report-hero{padding:22px 18px}.market-report-hero h1{font-size:1.7rem}.market-alerta-alcance{flex-direction:column;padding:16px}.market-basis-equation{align-items:stretch;flex-direction:column}.eq-sign{text-align:center;line-height:1}.market-source-strip{grid-template-columns:1fr}.market-kpis-visual{grid-template-columns:1fr}.market-section-heading{flex-direction:column}.market-flow-box{width:100%;max-width:none}.market-contract-deck{grid-template-columns:1fr}.market-chart-card .chart-wrap{height:340px}}

/* Fase 10: barra superior contextual por parcela */
.app-command-bar{padding:9px 0;z-index:1200;box-shadow:0 2px 10px rgba(18,45,27,.12)}
.app-command-bar .command-nav{width:min(1540px,97%);margin:auto;gap:16px;justify-content:flex-start}
.command-brand{font-size:1.05rem;white-space:nowrap;flex:0 0 auto}
.command-center{display:flex;align-items:flex-end;justify-content:flex-end;gap:8px;min-width:0;flex:1}
.command-select-wrap,.command-costeo{display:flex;flex-direction:column;gap:3px;min-width:0}
.command-label{font-size:.62rem;line-height:1;text-transform:uppercase;letter-spacing:.08em;color:#c7d9ca;font-weight:800;padding-left:3px}
.command-select-row{display:flex;align-items:center;gap:4px;min-width:0}
.command-select{height:40px;max-width:250px;min-width:180px;border:1px solid #bfcfc1;border-radius:9px;background:#fff;color:#183b22;padding:0 30px 0 10px;font:inherit;font-size:.82rem;font-weight:750;cursor:pointer;box-shadow:0 2px 5px rgba(0,0,0,.07)}
.command-select-costeo{max-width:220px;min-width:165px}
.command-select:focus{outline:3px solid rgba(117,187,132,.22);border-color:#78a681}
.command-icon-link{height:40px;min-width:34px;display:grid;place-items:center;border-radius:9px;background:#edf4ee;color:#183b22;text-decoration:none;font-weight:900;border:1px solid #cddace}
.command-button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:9px;padding:7px 11px;background:#edf4ee;color:#183b22;text-decoration:none;font:inherit;font-size:.79rem;font-weight:850;white-space:nowrap;cursor:pointer;box-shadow:0 2px 5px rgba(0,0,0,.05)}
.command-button small{display:inline-block;font-size:.61rem;font-weight:800;opacity:.7;border-left:1px solid currentColor;padding-left:6px}
button.command-button{appearance:none}
.command-button:hover,.command-icon-link:hover{transform:translateY(-1px);background:#fff}
.command-button.command-active{outline:2px solid rgba(255,255,255,.88);outline-offset:2px;box-shadow:0 0 0 3px rgba(31,111,178,.16),0 3px 8px rgba(0,0,0,.10)}
.command-weather{background:#eef6fb;color:#224f67;border-color:#c9dee9}
.command-satellite{background:#eef7f0;color:#185c2a;border-color:#c8dfcd}
.command-market{background:#f6f1dc;color:#54450a;border-color:#e7db9f}
.command-cost-button{background:#f1f5ee;color:#294d31;border-color:#cfdece;max-width:220px;overflow:hidden;text-overflow:ellipsis}
.command-muted{background:#eef1ee;color:#506056;border-color:#d7ded8}
.command-disabled{opacity:.55;cursor:not-allowed;box-shadow:none}
.command-inline-form{margin:0;display:inline-flex;align-items:flex-end}
.command-button:disabled{opacity:.5;cursor:not-allowed;transform:none!important}
@media(max-width:1250px){
  .app-command-bar .command-nav{align-items:flex-start;flex-direction:column;gap:7px;padding:1px 0}
  .command-center{width:100%;justify-content:flex-start;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
  .command-label{display:none}
  .command-select,.command-select-costeo{min-width:190px;max-width:230px}
}
@media(max-width:700px){
  .app-command-bar{position:sticky;padding:7px 0}
  .app-command-bar .command-nav{width:96%}
  .command-brand{font-size:.95rem}
  .command-center{gap:6px}
  .command-select{height:38px;min-width:170px;font-size:.76rem}
  .command-icon-link,.command-button{min-height:38px;height:38px;font-size:.73rem;padding:6px 9px}
  .command-button small{display:none}
}


/* Fase 11 · Escenarios interactivos */
.command-scenarios{background:#f2effb;color:#493678;border-color:#d9cff0}
.scenario-shell{display:grid;gap:18px}
.scenario-hero{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;background:linear-gradient(135deg,#f5f8f5,#eef4f0);border:1px solid #dbe5dc;border-radius:18px;padding:20px 22px}
.scenario-hero h1{margin:3px 0 6px}.scenario-hero p{margin:0}.scenario-badge{background:#e9f3eb;color:#1d6434;border:1px solid #cfe1d2;border-radius:999px;padding:7px 11px;font-weight:850;white-space:nowrap}
.scenario-kpis{display:grid;grid-template-columns:repeat(5,minmax(135px,1fr));gap:10px}.scenario-kpi{background:#fff;border:1px solid #dfe6e0;border-radius:14px;padding:13px 14px}.scenario-kpi span{display:block;color:#6b756d;font-size:.75rem}.scenario-kpi strong{display:block;margin-top:4px;font-size:1.16rem}.scenario-kpi.is-profit strong{color:#17753a}.scenario-kpi.is-loss strong{color:#b91c1c}
.scenario-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr);gap:16px;align-items:start}.scenario-card{background:#fff;border:1px solid #dde5de;border-radius:18px;padding:18px 20px;box-shadow:0 7px 20px rgba(22,55,31,.06)}.scenario-card h2{margin:0 0 4px}.scenario-card-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.scenario-card-header p{margin:3px 0 0}
.scenario-presets{display:flex;gap:8px;flex-wrap:wrap}.scenario-preset{border:1px solid #d6ded7;background:#f7faf7;color:#304d37;border-radius:999px;padding:7px 11px;font-weight:800;cursor:pointer}.scenario-preset.is-active{background:#1f6f3a;color:#fff;border-color:#1f6f3a}.scenario-preset:hover{transform:translateY(-1px)}
.scenario-chart-wrap{position:relative;width:100%;overflow:hidden}.scenario-svg{width:100%;height:auto;display:block;min-height:360px}.scenario-legend{display:flex;gap:13px;flex-wrap:wrap;font-size:.76rem;color:#566259;margin-top:8px}.scenario-legend span{display:inline-flex;align-items:center;gap:5px}.legend-line{width:20px;height:3px;border-radius:3px;display:inline-block}.legend-revenue{background:#3b82f6}.legend-cost{background:#45a766}.legend-loss{width:14px;height:10px;background:#ffd8dd;border:1px solid #ef7180}.legend-profit{width:14px;height:10px;background:#dcefdc;border:1px solid #82bd88}
.scenario-formula{margin-top:12px;background:#f7f8f7;border-top:1px solid #dde2dd;border-bottom:1px solid #dde2dd;padding:11px 12px;text-align:center;color:#475149;font-size:.9rem}.scenario-formula strong{color:#1a3622}.scenario-reading{margin-top:12px;padding:11px 13px;border-radius:11px;background:#eef6f0;border-left:5px solid #2f9e44;line-height:1.45}.scenario-reading.loss{background:#fff1f2;border-left-color:#dc2626;color:#7f1d1d}
.scenario-controls{display:grid;gap:17px}.scenario-control label{display:flex;justify-content:space-between;gap:10px;align-items:baseline;font-weight:800}.scenario-control label small{color:#677168;font-weight:600}.scenario-control output{font-size:1rem;color:#173f23;font-weight:900}.scenario-control input[type=range]{width:100%;accent-color:#23723c;margin-top:8px}.scenario-scale{display:flex;justify-content:space-between;font-size:.67rem;color:#889189}.scenario-reset{width:100%;margin-top:3px}.scenario-note{font-size:.75rem;line-height:1.45;color:#667168;background:#f6f8f6;border-radius:10px;padding:10px 11px}
.scenario-table{width:100%;border-collapse:collapse;font-size:.81rem}.scenario-table th,.scenario-table td{padding:9px 8px;border-bottom:1px solid #e2e7e3;text-align:right}.scenario-table th:first-child,.scenario-table td:first-child{text-align:left}.scenario-table th{color:#5d685f;font-size:.72rem}.scenario-table tr.is-current{background:#f1f7f2}.scenario-status{display:inline-block;border-radius:999px;padding:3px 7px;font-size:.67rem;font-weight:900;background:#e7f4e9;color:#23673a}.scenario-status.loss{background:#fbe4e4;color:#8a2f32}
@media(max-width:1050px){.scenario-kpis{grid-template-columns:repeat(3,1fr)}.scenario-layout{grid-template-columns:1fr}}
@media(max-width:650px){.scenario-hero{flex-direction:column}.scenario-kpis{grid-template-columns:1fr 1fr}.scenario-card{padding:15px}.scenario-svg{min-height:290px}.scenario-card-header{flex-direction:column}.scenario-kpis .scenario-kpi:last-child{grid-column:1/-1}}

/* Fase 12 · Barra superior en dos niveles + mercado físico SNIIM */
.app-command-bar-v2{padding:8px 0 7px;box-shadow:0 3px 14px rgba(14,42,23,.15)}
.command-shell{width:min(1540px,97%);margin:auto;display:grid;gap:7px}
.command-row{display:flex;align-items:center;min-width:0}
.command-context-row{gap:18px;justify-content:space-between}
.command-context-group{display:flex;align-items:flex-end;justify-content:flex-end;gap:9px;min-width:0;flex:1}
.command-tools-row{border-top:1px solid rgba(255,255,255,.13);padding-top:7px;gap:12px}
.command-tools-label{font-size:.64rem;text-transform:uppercase;letter-spacing:.11em;color:#bcd0c0;font-weight:900;white-space:nowrap}
.command-tools{display:flex;align-items:center;gap:7px;min-width:0;flex-wrap:wrap}
.command-tools-divider{width:1px;height:29px;background:rgba(255,255,255,.18);margin:0 2px}
.command-sniim{background:#fff0df;color:#714313;border-color:#edcaa4}
.command-sniim:hover{background:#fff8ef!important}
.command-market{background:#fff6d8;color:#574604;border-color:#e7d795}
.command-context-row .command-select-wrap,.command-context-row .command-costeo{min-width:210px}
.command-context-row .command-select{min-width:230px;max-width:330px}
.command-context-row .command-select-costeo{min-width:210px;max-width:310px}
@media(max-width:980px){
  .command-context-row{align-items:flex-start;flex-direction:column;gap:7px}
  .command-context-group{width:100%;justify-content:flex-start;overflow-x:auto;padding-bottom:2px}
  .command-tools-row{align-items:flex-start;flex-direction:column;gap:6px}
  .command-tools{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px;scrollbar-width:thin}
  .command-tools-label{display:none}
  .command-tools-divider{flex:0 0 1px}
}
@media(max-width:620px){
  .command-shell{width:96%}
  .command-context-group{gap:6px}
  .command-context-row .command-select,.command-context-row .command-select-costeo{min-width:190px;max-width:230px}
}

.sniim-dashboard{display:grid;gap:16px;margin-top:24px}
.sniim-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:22px 24px;border-radius:18px;background:linear-gradient(120deg,#123c73 0%,#1e6c85 55%,#2d8b57 100%);color:#fff;box-shadow:0 8px 24px rgba(20,62,91,.14)}
.sniim-hero h1{margin:.25rem 0 .45rem;font-size:clamp(1.8rem,3vw,2.6rem)}
.sniim-hero p{margin:0;max-width:820px;line-height:1.55;color:#eef7f2}
.sniim-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.12);border-radius:999px;padding:6px 10px;font-size:.74rem;font-weight:900;letter-spacing:.04em}
.sniim-meta{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:13px;font-size:.78rem;color:#e2f0e6}
.sniim-refresh{border:0;border-radius:10px;background:#fff;color:#154728;padding:10px 14px;font:inherit;font-weight:900;cursor:pointer;white-space:nowrap}
.sniim-refresh:hover{transform:translateY(-1px)}
.sniim-source-note{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:flex-start;background:#eef5ff;border-left:6px solid #1f6fb2;border-radius:12px;padding:14px 16px;color:#27496e}
.sniim-source-note strong{display:block;margin-bottom:3px}
.sniim-source-icon{font-size:1.4rem}
.sniim-distinction{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;background:#fff;border:1px solid #dbe5de;border-radius:16px;padding:16px 18px}
.sniim-distinction-box{border-radius:12px;padding:13px 15px;background:#f7faf8;border:1px solid #dfe7e1}
.sniim-distinction-box strong{display:block;color:#1d3f27;margin-bottom:3px}.sniim-distinction-box small{color:#68736a;line-height:1.4}.sniim-distinction-arrow{font-size:1.4rem;color:#78837b;font-weight:900}
.sniim-kpis{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:10px}
.sniim-kpi{background:#fff;border:1px solid #dce5de;border-radius:14px;padding:13px 14px;border-top:4px solid #2f9e44}.sniim-kpi:nth-child(2){border-top-color:#1f6fb2}.sniim-kpi:nth-child(3){border-top-color:#d99b23}.sniim-kpi:nth-child(4){border-top-color:#2f9e44}.sniim-kpi:nth-child(5){border-top-color:#8a66b3}.sniim-kpi span{display:block;color:#68736a;font-size:.74rem}.sniim-kpi strong{display:block;font-size:1.16rem;margin-top:4px;color:#173e24}.sniim-kpi small{display:block;color:#879087;margin-top:2px;font-size:.69rem}
.sniim-filter-panel{background:#fff;border:1px solid #dce5de;border-radius:16px;padding:15px 17px}.sniim-filter-grid{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end}.sniim-filter-grid label{display:grid;gap:5px;font-weight:800;font-size:.78rem;color:#445248}.sniim-filter-grid select{height:42px;border:1px solid #cbd8cd;border-radius:9px;padding:0 10px;background:#fff;font:inherit}.sniim-filter-actions{display:flex;gap:7px}.sniim-filter-actions .btn{height:42px;display:inline-flex;align-items:center}
.sniim-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:14px}.sniim-card{background:#fff;border:1px solid #dce5de;border-radius:16px;padding:16px 18px}.sniim-card h2{margin:0 0 4px;color:#123c73}.sniim-card p{margin:.2rem 0 .8rem;color:#6a756d}.sniim-chart{height:340px}.sniim-table-wrap{overflow:auto}.sniim-table{min-width:1040px;font-size:.8rem}.sniim-table th{background:#123c73;color:#fff;text-align:center;padding:9px 8px}.sniim-table td{text-align:right;padding:9px 8px}.sniim-table th:first-child,.sniim-table td:first-child{text-align:left}.sniim-table tbody tr:nth-child(even){background:#f7fbff}.sniim-table .sniim-market-cell{text-align:left;font-weight:800;color:#204b2d}.sniim-table .sniim-origin-cell{text-align:left}.sniim-price-ref{font-weight:900;color:#0f6a2f;background:#f0f8f2}.sniim-footnote{font-size:.76rem;line-height:1.45;color:#657168;background:#f6f8f6;border-radius:10px;padding:10px 12px;margin-top:10px}.sniim-error-help{display:grid;gap:10px}.sniim-official-link{display:inline-flex;align-items:center;gap:7px;width:max-content;text-decoration:none;font-weight:900;color:#164d29;background:#e8f3eb;border:1px solid #c7ddcd;border-radius:9px;padding:9px 12px}
@media(max-width:1000px){.sniim-kpis{grid-template-columns:repeat(3,1fr)}.sniim-grid{grid-template-columns:1fr}.sniim-filter-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.sniim-hero{flex-direction:column;padding:18px}.sniim-refresh{width:100%}.sniim-kpis{grid-template-columns:1fr 1fr}.sniim-kpis .sniim-kpi:last-child{grid-column:1/-1}.sniim-filter-grid{grid-template-columns:1fr}.sniim-distinction{grid-template-columns:1fr}.sniim-distinction-arrow{transform:rotate(90deg);text-align:center}.sniim-chart{height:300px}}

/* Fase 12.1 · estado explícito cuando una serie SNIIM está vacía */
.sniim-chart-empty{
  min-height:260px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
  text-align:center;
  color:#64748b;
  background:#f8fafc;
  border:1px dashed #cbd5e1;
  border-radius:12px;
  font-weight:700;
}

/* Fase 13 · Pulso Maíz automático */
.command-pulso{background:#e9f0ff;color:#183f73;border-color:#bdcfee}
.command-pulso:hover{background:#f5f8ff!important}
.pulse-dashboard{display:grid;gap:16px;margin-top:24px}
.pulse-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:23px 25px;border-radius:18px;background:linear-gradient(120deg,#123c73 0%,#1f6fb2 48%,#2f9e44 100%);color:#fff;box-shadow:0 8px 24px rgba(18,60,115,.16)}
.pulse-eyebrow{font-size:.69rem;font-weight:900;letter-spacing:.12em;color:#dfeeff}.pulse-hero h1{font-size:clamp(2rem,3.5vw,3rem);margin:.25rem 0 .45rem}.pulse-hero p{max-width:900px;margin:0;color:#eef7ff;line-height:1.55}.pulse-meta{margin-top:12px;font-size:.76rem;color:#dce9e0}.pulse-refresh{border:0;border-radius:11px;background:#fff;color:#164e2d;padding:11px 15px;font:inherit;font-weight:900;white-space:nowrap;cursor:pointer}.pulse-refresh:hover{transform:translateY(-1px)}
.pulse-kpis{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:10px}.pulse-kpi{background:#fff;border:1px solid #dce5de;border-radius:14px;padding:13px 14px;border-top:4px solid #1f6fb2}.pulse-kpi span{display:block;color:#6b756e;font-size:.73rem}.pulse-kpi strong{display:block;margin-top:4px;color:#173e24;font-size:1.12rem}.pulse-kpi small{display:block;margin-top:3px;color:#7c877f;font-size:.68rem}.pulse-kpi-main.alcista{border-top-color:#2f9e44}.pulse-kpi-main.bajista{border-top-color:#c43a3a}.pulse-kpi-main.mixto{border-top-color:#c3912d}
.pulse-method-note{background:#fff9e8;border:1px solid #ead9a7;border-left:6px solid #c3912d;border-radius:12px;padding:13px 15px;color:#654f1d;line-height:1.5}.pulse-errors{background:#fff5f5;border:1px solid #edc7c7;border-radius:11px;padding:10px 13px;color:#813535}.pulse-errors summary{cursor:pointer;font-weight:800}.pulse-errors ul{margin:.55rem 0 .1rem 1.2rem}
.pulse-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.pulse-panel{background:#fff;border:1px solid #dce5de;border-radius:16px;padding:17px 18px}.pulse-panel-wide{padding-bottom:19px}.pulse-panel-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:11px}.pulse-panel-head h2{margin:5px 0 0;color:#123c73}.pulse-tag{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:.65rem;font-weight:900;letter-spacing:.07em}.pulse-tag.mexico{background:#e9f5ec;color:#21693a}.pulse-tag.usa{background:#eaf1fb;color:#174e87}.pulse-tag.world{background:#f1ebf8;color:#67448d}.pulse-tag.source{background:#eef1ee;color:#45564a}.pulse-count{font-size:.72rem;color:#768178;background:#f4f7f5;padding:5px 8px;border-radius:999px}.pulse-news-list{display:grid;gap:10px}.pulse-news-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pulse-news-item{border:1px solid #e0e6e1;border-radius:12px;padding:12px 13px;background:#fbfcfb}.pulse-news-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.pulse-impact{border-radius:999px;padding:3px 7px;font-size:.63rem;font-weight:900}.pulse-impact.soporte{background:#e5f5e8;color:#176632}.pulse-impact.presion{background:#fde7e7;color:#9b2929}.pulse-impact.vigilar{background:#fff3d7;color:#7c5d13}.pulse-date{font-size:.67rem;color:#7b857e}.pulse-news-item h3{font-size:.93rem;line-height:1.32;margin:8px 0 4px}.pulse-news-item h3 a{color:#173f70;text-decoration:none}.pulse-news-item h3 a:hover{text-decoration:underline}.pulse-news-meta{font-size:.69rem;color:#68766d;font-weight:700}.pulse-news-item p{font-size:.78rem;line-height:1.45;margin:8px 0;color:#4d5951}.pulse-auto-note{font-size:.68rem;color:#748078;background:#f2f5f3;border-radius:8px;padding:7px 8px}.pulse-empty{padding:22px;text-align:center;background:#f7f9f8;border:1px dashed #cbd5ce;border-radius:11px;color:#738078;font-weight:700}
.pulse-source-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.pulse-source-status{border:1px solid #dce5de;border-radius:11px;padding:10px 11px;display:grid;gap:3px}.pulse-source-status strong{font-size:.78rem}.pulse-source-status span{font-size:.7rem}.pulse-source-status.ok{background:#f1f8f3;color:#25663a}.pulse-source-status.bad{background:#fff4f4;color:#8a3535}.pulse-source-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.pulse-source-links a{display:inline-flex;padding:7px 9px;border-radius:8px;background:#edf3fb;color:#164d7a;text-decoration:none;font-size:.72rem;font-weight:800}.pulse-license-note{margin:11px 0 0!important;font-size:.72rem!important;color:#6c776f!important}
@media(max-width:1100px){.pulse-kpis{grid-template-columns:repeat(3,1fr)}.pulse-columns{grid-template-columns:1fr}.pulse-source-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.pulse-hero{flex-direction:column;padding:18px}.pulse-refresh{width:100%}.pulse-kpis{grid-template-columns:1fr 1fr}.pulse-kpi-main{grid-column:1/-1}.pulse-news-grid{grid-template-columns:1fr}.pulse-source-grid{grid-template-columns:1fr}}

/* Fase 13.1 · Pulso Maíz en español */
.pulse-original-title{margin-top:-1px;color:#879089;font-size:.62rem;line-height:1.35}
.pulse-spanish-label{display:inline-flex;margin-top:8px;padding:3px 7px;border-radius:999px;background:#e8f3ea;color:#23633a;font-size:.61rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.pulse-source-open{display:inline-flex;margin-top:8px;color:#174e87;text-decoration:none;font-size:.67rem;font-weight:800}.pulse-source-open:hover{text-decoration:underline}

/* Fase 14 · sentimiento de mercado */
.pulse-tag.sentiment{background:#eef2ff;color:#4a4291}.pulse-sentiment-panel{display:grid;grid-template-columns:minmax(0,2fr) minmax(230px,.8fr);gap:14px}.pulse-sentiment-main,.pulse-textual-box{background:#fff;border:1px solid #dce5de;border-radius:16px;padding:17px 18px}.pulse-ismm-row{display:grid;grid-template-columns:160px 1fr;gap:18px;align-items:center}.pulse-ismm-value{display:grid;gap:2px;padding:14px;border-radius:14px;text-align:center;background:#f4f7f5}.pulse-ismm-value strong{font-size:2rem;line-height:1}.pulse-ismm-value span{font-size:.75rem;font-weight:900}.pulse-ismm-value.alcista{background:#e9f6ec;color:#176632}.pulse-ismm-value.bajista{background:#fdeaea;color:#922f2f}.pulse-ismm-value.mixto{background:#fff4d8;color:#775914}.pulse-ismm-track{position:relative;height:16px;border-radius:999px;background:linear-gradient(90deg,#d95a5a 0%,#f1d179 40%,#e8e9df 50%,#b8db97 70%,#2f9e44 100%);overflow:visible}.pulse-ismm-center{position:absolute;left:50%;top:-4px;width:2px;height:24px;background:#56615a}.pulse-ismm-marker{position:absolute;top:50%;width:18px;height:18px;border-radius:50%;background:#173f70;border:3px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.25);transform:translate(-50%,-50%)}.pulse-ismm-labels{display:flex;justify-content:space-between;margin-top:8px;color:#748078;font-size:.66rem}.pulse-sentiment-note{margin:13px 0 0!important;color:#66736b!important;font-size:.72rem!important;line-height:1.45}.pulse-textual-box{display:flex;flex-direction:column;justify-content:center}.pulse-textual-label{font-size:.7rem;color:#6b756e}.pulse-textual-box>strong{font-size:2rem;color:#173f70;margin-top:5px}.pulse-textual-box>small{color:#7c877f;font-size:.68rem}.pulse-textual-box p{font-size:.72rem!important;line-height:1.45;color:#66736b!important;margin:12px 0 0!important}.pulse-sentiment-grid{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(0,1.4fr);gap:14px}.pulse-category-list{display:grid;gap:8px}.pulse-category-row{display:flex;justify-content:space-between;gap:10px;align-items:center;border-bottom:1px solid #edf1ee;padding:8px 0}.pulse-category-row:last-child{border-bottom:0}.pulse-category-row>div:first-child{display:grid;gap:2px}.pulse-category-row strong{font-size:.78rem}.pulse-category-row small{font-size:.65rem;color:#7a857e}.pulse-category-score{min-width:58px;text-align:center;border-radius:999px;padding:5px 8px;font-size:.72rem;font-weight:900;background:#f1f4f2}.pulse-category-score.alcista{background:#e5f5e8;color:#176632}.pulse-category-score.bajista{background:#fde7e7;color:#9b2929}.pulse-category-score.mixto{background:#fff3d7;color:#7c5d13}.pulse-sentiment-chart{height:250px}.pulse-text-sentiment{display:inline-flex;margin-top:7px;border-radius:999px;padding:4px 7px;font-size:.62rem;font-weight:800}.pulse-text-sentiment.positivo{background:#e8f5ea;color:#23633a}.pulse-text-sentiment.negativo{background:#fde9e9;color:#943333}.pulse-text-sentiment.neutral{background:#eef1ee;color:#5f6b63}
@media(max-width:900px){.pulse-sentiment-panel,.pulse-sentiment-grid{grid-template-columns:1fr}.pulse-ismm-row{grid-template-columns:1fr}.pulse-ismm-value{max-width:220px}}

/* Fase 14.1: cobertura nacional maíz blanco/amarillo */
.pulse-maize-type{display:inline-flex;margin-left:6px;padding:2px 6px;border-radius:999px;background:#fff3cf;color:#6a5413;font-size:.60rem;font-weight:900;vertical-align:middle}.pulse-mexico-split{display:flex;gap:7px;flex-wrap:wrap;margin-top:7px}.pulse-mexico-split span{display:inline-flex;padding:4px 7px;border-radius:999px;background:#f4f7f5;color:#4c5b51;font-size:.64rem;font-weight:800}


/* Fase 15 · frescura persistente de fuentes */
.pulse-freshness-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:14px 0 16px}
.pulse-freshness-card{border:1px solid #dce6df;border-left:5px solid #8b9890;border-radius:14px;background:#fff;padding:14px;min-width:0}
.pulse-freshness-card.ok{border-left-color:#2d8b4e;background:#fbfefc}.pulse-freshness-card.error{border-left-color:#b82f35;background:#fffafa}.pulse-freshness-card.warn{border-left-color:#c28b19;background:#fffdf8}
.pulse-freshness-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.pulse-freshness-top strong{color:#143f2a;font-size:.96rem}.pulse-freshness-badge{font-size:.72rem;font-weight:800;white-space:nowrap;color:#607067}
.pulse-freshness-card.ok .pulse-freshness-badge{color:#237440}.pulse-freshness-card.error .pulse-freshness-badge{color:#a8262e}.pulse-freshness-main{font-size:1.25rem;font-weight:900;color:#153d29;margin:11px 0}
.pulse-freshness-card dl{margin:0;display:grid;gap:5px}.pulse-freshness-card dl div{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #edf1ee;padding-top:5px}.pulse-freshness-card dt{font-size:.72rem;color:#758078}.pulse-freshness-card dd{margin:0;font-size:.76rem;font-weight:800;text-align:right;color:#33433a}.pulse-freshness-card p{font-size:.74rem;color:#65736b;margin:9px 0 0}

/* Fase 15.1 · FIX Banxico robusto en fines de semana y días inhábiles */
.market-fix-status{display:grid;grid-template-columns:auto minmax(210px,.7fr) minmax(0,1.4fr);gap:14px;align-items:center;border:1px solid #dbe5de;border-left:6px solid #2f9e44;border-radius:15px;background:#fff;padding:14px 16px;box-shadow:0 4px 14px rgba(21,58,35,.05)}
.market-fix-status.is-previous{border-left-color:#d89a25;background:#fffdf8}.market-fix-icon{font-size:1.7rem}.market-fix-main{display:grid;gap:2px}.market-fix-kicker{font-size:.67rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#6c786f}.market-fix-main strong{font-size:1.35rem;color:#123f28}.market-fix-main small{font-size:.75rem;color:#657169}.market-fix-note{display:grid;justify-items:start;gap:5px}.market-fix-note p{margin:0;font-size:.76rem;line-height:1.45;color:#5f6b63}.market-fix-badge{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:.66rem;font-weight:900}.market-fix-badge.current{background:#e7f5ea;color:#216d38}.market-fix-badge.previous{background:#fff0cf;color:#7a5814}
@media(max-width:800px){.market-fix-status{grid-template-columns:auto 1fr}.market-fix-note{grid-column:1/-1}}

/* Fase 16 · Resúmenes automáticos + encabezado ampliado + patrocinio opcional */
.app-command-bar-v2{padding:11px 0 8px}
.command-context-row{min-height:64px;padding:1px 0 3px}
.command-brand-area{display:flex;align-items:center;gap:14px;min-width:0}
.command-brand-stack{display:flex!important;flex-direction:column;align-items:flex-start;gap:2px;line-height:1.05;white-space:nowrap}
.command-brand-stack>span{font-size:1.12rem;font-weight:900;letter-spacing:-.01em}
.command-brand-stack>small{font-size:.64rem;color:#c7d7ca;font-weight:650;letter-spacing:.015em}
.command-sponsor{display:flex;flex-direction:column;gap:1px;max-width:250px;padding:7px 10px;border-radius:10px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.15);color:#fff;text-decoration:none;line-height:1.15}
.command-sponsor small{font-size:.55rem;text-transform:uppercase;letter-spacing:.1em;color:#b9cdbd;font-weight:900}
.command-sponsor strong{font-size:.74rem}.command-sponsor span{font-size:.61rem;color:#dce7de;white-space:normal}
.command-sponsor:hover{background:rgba(255,255,255,.13)}

.auto-analysis{display:grid;grid-template-columns:auto 1fr;gap:14px;margin:18px 0 22px;padding:17px 18px;border:1px solid #d8e4da;border-left:6px solid #2e7d46;border-radius:15px;background:linear-gradient(135deg,#fbfdfb,#f2f7f3)}
.auto-analysis-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#e8f2ea;font-size:1.25rem}
.auto-analysis-kicker{font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;font-weight:900;color:#52725b;margin-bottom:3px}
.auto-analysis h3{margin:0 0 8px;font-size:1.18rem;color:#183b22}
.auto-analysis ul{margin:0;padding-left:1.15rem;display:grid;gap:6px;color:#34433a;line-height:1.47}
.auto-analysis-note{margin:11px 0 0;padding-top:10px;border-top:1px solid #dce6dd;color:#667168;font-size:.79rem;line-height:1.45}
.auto-analysis-favorable{border-left-color:#2f9e44}.auto-analysis-favorable .auto-analysis-icon{background:#e3f4e7}
.auto-analysis-atencion{border-left-color:#d79a22;background:linear-gradient(135deg,#fffdf8,#fff8e9)}.auto-analysis-atencion .auto-analysis-icon{background:#fff0c9}
.auto-analysis-alerta{border-left-color:#c2413c;background:linear-gradient(135deg,#fffafa,#fff0f0)}.auto-analysis-alerta .auto-analysis-icon{background:#fde3e3}
.auto-analysis-neutral{border-left-color:#597a8c}.auto-analysis-neutral .auto-analysis-icon{background:#eaf1f4}

@media(max-width:1100px){.command-sponsor{display:none}}
@media(max-width:980px){.command-brand-area{width:100%;justify-content:space-between}.command-context-row{min-height:auto}.command-brand-stack>small{white-space:normal}.auto-analysis{grid-template-columns:1fr}.auto-analysis-icon{width:36px;height:36px}}
@media(max-width:620px){.command-brand-stack>span{font-size:1rem}.command-brand-stack>small{font-size:.6rem}.auto-analysis{padding:14px}.auto-analysis h3{font-size:1.05rem}}


/* Fase 16.1 · encabezado visible y análisis automático reforzado */
.app-command-bar-v2{padding:13px 0 9px}
.command-context-row{min-height:78px;padding:2px 0 5px;align-items:center}
.command-brand-stack>span{font-size:1.28rem}
.command-brand-stack>small{font-size:.70rem;line-height:1.25;max-width:330px;color:#d7e4da}
.command-platform-promise{display:grid;gap:2px;padding:8px 14px;border-left:1px solid rgba(255,255,255,.17);border-right:1px solid rgba(255,255,255,.17);color:#fff;min-width:210px}
.command-platform-promise strong{font-size:.80rem;letter-spacing:.03em}
.command-platform-promise span{font-size:.64rem;color:#c9dacd;white-space:nowrap}
.auto-analysis{margin:24px 0 26px;padding:20px 22px;border-width:1px;border-left-width:7px;box-shadow:0 8px 24px rgba(24,59,34,.08)}
.auto-analysis-icon{width:48px;height:48px;font-size:1.5rem;border:1px solid rgba(24,59,34,.08)}
.auto-analysis-kicker{font-size:.72rem;letter-spacing:.12em}
.auto-analysis h3{font-size:1.28rem;margin:2px 0 10px}
.auto-analysis li{font-size:.90rem}
.auto-analysis-note{font-size:.80rem}
@media(max-width:1180px){.command-platform-promise{display:none}}
@media(max-width:980px){.command-context-row{min-height:auto}.command-brand-stack>span{font-size:1.12rem}}

/* Fase 17 · Portada ejecutiva y navegación centrada en parcelas */
.home-executive-hero{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:20px;align-items:stretch;margin:34px 0 18px;padding:30px;border-radius:24px;background:linear-gradient(135deg,#f7faf7 0%,#edf5ef 100%);border:1px solid #dbe5dd;overflow:hidden;position:relative}
.home-executive-hero:after{content:"🌽";position:absolute;right:36%;bottom:-42px;font-size:150px;opacity:.035;transform:rotate(-12deg);pointer-events:none}
.home-hero-copy{position:relative;z-index:1}.home-hero-copy h1{font-size:clamp(2.1rem,4vw,4.1rem);line-height:.98;letter-spacing:-.045em;margin:.25rem 0 .8rem;color:#16251a}.home-hero-copy>p:not(.eyebrow){max-width:780px;font-size:1.03rem;line-height:1.55;color:#526158}.home-hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.home-profile-card{display:flex;flex-direction:column;justify-content:center;gap:7px;background:#173f28;color:#fff;border-radius:18px;padding:22px;min-width:0}.home-profile-label{text-transform:uppercase;letter-spacing:.1em;font-size:.62rem;font-weight:900;color:#b9cfbf}.home-profile-card strong{font-size:1.15rem;line-height:1.3}.home-profile-card small{color:#d6e3d9;line-height:1.45}.home-profile-card a{color:#fff;font-weight:850;text-decoration:none;margin-top:4px}.home-profile-card a:hover{text-decoration:underline}
.home-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:18px 0 36px}.home-kpi-card{display:flex;flex-direction:column;gap:3px;min-width:0;padding:15px 16px;background:#fff;border:1px solid #dce5de;border-radius:15px;text-decoration:none;color:inherit;transition:.18s ease}.home-kpi-card:hover{transform:translateY(-2px);border-color:#b9d1c0;box-shadow:0 8px 20px rgba(25,66,39,.07)}.home-kpi-card span,.home-kpi-card small{color:#66756c}.home-kpi-card span{font-size:.72rem;font-weight:800}.home-kpi-card strong{font-size:1.14rem;color:#183c25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-kpi-card small{font-size:.68rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-section{scroll-margin-top:160px;margin:42px 0}.home-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:16px}.home-section-head>div{max-width:830px}.home-section-kicker{display:block;color:#587560;font-size:.66rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px}.home-section-head h2{font-size:1.75rem;margin:0;color:#183c25}.home-section-head p{margin:6px 0 0;color:#68766d;line-height:1.5}.home-parcel-grid,.home-cost-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.home-parcel-card,.home-cost-card{background:#fff;border:1px solid #dce5de;border-radius:18px;overflow:hidden;min-width:0;box-shadow:0 3px 12px rgba(19,57,31,.035)}.home-parcel-card.is-active,.home-cost-card.is-active{border-color:#4b9460;box-shadow:0 0 0 2px rgba(47,130,68,.10)}.home-card-main{display:block;padding:18px;text-decoration:none;color:inherit}.home-card-icon{font-size:1.45rem;margin-bottom:7px}.home-card-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.home-card-title-row small{font-size:.66rem;color:#748078;font-weight:800}.home-card-title-row h3{font-size:1.12rem;margin:2px 0 0;color:#173f28}.home-active-pill{display:inline-flex;flex:0 0 auto;padding:4px 8px;border-radius:999px;background:#e6f4e9;color:#27703c;font-size:.64rem;font-weight:900}.home-card-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:15px}.home-card-metrics span{display:flex;flex-direction:column;gap:2px;padding:9px;background:#f5f8f5;border-radius:10px;min-width:0}.home-card-metrics b{font-size:.9rem;color:#203d29}.home-card-metrics small{font-size:.61rem;color:#758078}.home-card-status{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}.home-card-status span{padding:5px 8px;border-radius:999px;background:#edf4ef;color:#4c6655;font-size:.66rem;font-weight:800}.home-linked-costs{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:11px 16px;background:#fbfcfb;border-top:1px solid #edf1ee}.home-linked-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.07em;font-weight:900;color:#748078}.home-cost-chip,.home-empty-chip{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:.67rem}.home-cost-chip{background:#e9f3eb;color:#246b38;text-decoration:none;font-weight:850}.home-cost-chip:hover{background:#dcecdf}.home-empty-chip{background:#f1f3f1;color:#778079}.home-card-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:9px 13px;border-top:1px solid #e6ece7;background:#f8faf8}.home-card-actions a,.home-card-actions button{appearance:none;border:0;background:transparent;color:#1f6636;text-decoration:none;font:inherit;font-size:.72rem;font-weight:850;padding:6px 8px;border-radius:7px;cursor:pointer}.home-card-actions a:hover,.home-card-actions button:hover{background:#e9f2eb}.home-card-actions form{margin:0}.home-card-actions .danger-link{color:#9c3134}.home-card-actions .danger-link:hover{background:#fdeaea}
.home-cost-card{padding-top:18px}.home-cost-card>.home-card-title-row{padding:0 18px}.home-cost-finance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:15px 18px}.home-cost-finance span{display:flex;flex-direction:column;gap:3px;padding:10px;border-radius:11px;background:#f4f7f4}.home-cost-finance small{font-size:.64rem;color:#748078}.home-cost-finance strong{font-size:.98rem;color:#1c4027}.home-cost-finance .positive{background:#eaf6ed}.home-cost-finance .positive strong{color:#20703a}.home-cost-finance .negative{background:#fceaea}.home-cost-finance .negative strong{color:#9b3033}.home-linked-parcels{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:0 18px 15px}.home-linked-parcels>span{font-size:.65rem;text-transform:uppercase;letter-spacing:.07em;font-weight:900;color:#748078}.home-linked-parcels a{padding:5px 8px;border-radius:999px;background:#edf3f8;color:#315d76;text-decoration:none;font-size:.67rem;font-weight:850}.home-linked-parcels small{color:#7a857e}.home-add-card{min-height:230px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:24px;text-align:center;text-decoration:none;color:#365442;border:2px dashed #cfdcd2;border-radius:18px;background:#fbfcfb;transition:.18s ease}.home-add-card:hover{border-color:#78a887;background:#f2f8f4}.home-add-card>span{font-size:2.1rem}.home-add-card strong{font-size:1rem}.home-add-card small{color:#77837b}
.home-tools-section{padding-top:4px}.home-tool-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.home-tool-card{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"step icon" "title title" "copy copy" "open open";column-gap:8px;align-content:start;min-height:188px;padding:17px;border-radius:17px;border:1px solid #dce5de;background:#fff;text-decoration:none;color:inherit;overflow:hidden;transition:.18s ease}.home-tool-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(22,60,33,.08)}.home-tool-step{grid-area:step;align-self:center;justify-self:start;width:26px;height:26px;display:grid;place-items:center;border-radius:999px;background:#edf1ee;color:#58705f;font-size:.68rem;font-weight:900}.home-tool-icon{grid-area:icon;justify-self:end;font-size:1.35rem}.home-tool-card strong{grid-area:title;font-size:1.02rem;color:#173f28;margin-top:16px}.home-tool-card small{grid-area:copy;color:#6c786f;line-height:1.45;margin-top:5px}.home-tool-card b{grid-area:open;margin-top:14px;color:#216b39;font-size:.75rem}.home-tool-card.weather{border-top:4px solid #7aaac3}.home-tool-card.satellite{border-top:4px solid #6da174}.home-tool-card.futures{border-top:4px solid #d4aa43}.home-tool-card.sniim{border-top:4px solid #d79d68}.home-tool-card.pulse{border-top:4px solid #7d9dcb}.home-tool-card.scenarios{border-top:4px solid #9b84bd}
.home-help-strip{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin:42px 0 8px;padding:18px;border-radius:16px;background:#173f28;color:#fff}.home-help-strip>div{display:grid;gap:2px;text-align:center;min-width:150px}.home-help-strip strong{font-size:.8rem}.home-help-strip span{font-size:.67rem;color:#c9dbce}.home-help-arrow{font-size:1.15rem!important;color:#8fb79b!important}

/* Fase 17 · centrar selectores de parcela/costeo en la franja superior */
.command-context-row{display:grid;grid-template-columns:minmax(230px,.8fr) minmax(520px,1.35fr) minmax(210px,.65fr);column-gap:18px;align-items:center}.command-brand-area{justify-self:start}.command-context-group{grid-column:2;justify-self:center;justify-content:center;align-items:flex-end;width:100%;max-width:760px}.command-platform-promise{grid-column:3;justify-self:end}.parcel-command{min-width:260px}.command-costeo{min-width:250px}.command-select{min-width:0;width:100%}

@media(max-width:1180px){.home-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.command-context-row{display:flex;flex-wrap:wrap}.command-context-group{order:3;max-width:none;justify-content:center}.command-platform-promise{display:none}}
@media(max-width:900px){.home-executive-hero{grid-template-columns:1fr}.home-profile-card{padding:17px}.home-parcel-grid,.home-cost-grid{grid-template-columns:1fr}.home-tool-flow{grid-template-columns:repeat(2,minmax(0,1fr))}.home-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-section{scroll-margin-top:205px}.command-context-group{display:grid;grid-template-columns:1fr 1fr;align-items:end;overflow:visible}.parcel-command,.command-costeo{min-width:0;width:100%}}
@media(max-width:620px){.home-executive-hero{margin-top:18px;padding:20px;border-radius:18px}.home-hero-copy h1{font-size:2.35rem}.home-hero-actions .btn{flex:1 1 100%;text-align:center}.home-kpi-grid{grid-template-columns:1fr 1fr;gap:8px}.home-kpi-card{padding:12px}.home-kpi-card:nth-child(5){grid-column:1/-1}.home-section-head{align-items:flex-start;flex-direction:column}.home-section-head .btn{width:100%;text-align:center}.home-card-metrics,.home-cost-finance{grid-template-columns:1fr 1fr}.home-card-metrics span:last-child,.home-cost-finance span:last-child{grid-column:1/-1}.home-tool-flow{grid-template-columns:1fr}.home-tool-card{min-height:150px}.home-help-strip{display:grid;grid-template-columns:1fr}.home-help-arrow{transform:rotate(90deg)}.command-context-group{grid-template-columns:1fr}.command-select-row{width:100%}.command-tools{padding-bottom:4px}.command-tools-row{align-items:flex-start}}

/* Fase 18 · identidad agronómica y galería comercial */
.agronomic-form-card{margin:18px 0;padding:20px}.agronomic-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.agronomic-form-grid label{display:flex;flex-direction:column;gap:6px;min-width:0}.agronomic-form-grid label strong{font-size:.78rem;color:#203d29}.agronomic-form-grid label small{font-size:.66rem;color:#748078;line-height:1.4}.agronomic-form-grid input,.agronomic-form-grid select,.agronomic-form-grid textarea{width:100%}.agronomic-span-2{grid-column:span 2}.agronomic-map-help{display:block}.home-agronomic-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.home-agronomic-tags span{display:inline-flex;padding:5px 8px;border-radius:999px;background:#f3efe3;color:#6b5a2b;font-size:.64rem;font-weight:850}.home-parcel-cover{position:relative;display:block;height:155px;overflow:hidden;background:#edf1ed}.home-parcel-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}.home-parcel-cover:hover img{transform:scale(1.025)}.home-parcel-cover span{position:absolute;left:10px;bottom:10px;padding:5px 8px;border-radius:999px;background:rgba(13,48,26,.82);color:#fff;font-size:.64rem;font-weight:850;backdrop-filter:blur(4px)}

.parcel-gallery-preview{margin:24px 0}.gallery-preview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.gallery-preview-item{position:relative;display:block;min-height:140px;border-radius:13px;overflow:hidden;background:#eef3ef;text-decoration:none;color:#173f28}.gallery-preview-item img{width:100%;height:160px;object-fit:cover;display:block}.gallery-preview-item>span:not(.video-preview-icon){position:absolute;left:8px;right:8px;bottom:8px;padding:5px 7px;border-radius:8px;background:rgba(255,255,255,.88);font-size:.67rem;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-preview-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px dashed #b9cabb;padding:16px;text-align:center}.video-preview-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#173f28;color:#fff;font-size:1.1rem}.video-preview-card small{color:#748078}.gallery-empty-cta{display:flex;align-items:center;justify-content:center;gap:11px;flex-direction:column;min-height:145px;border:2px dashed #cfdcd2;border-radius:14px;background:#fbfcfb;text-decoration:none;color:#355441;text-align:center;padding:20px}.gallery-empty-cta>span{font-size:1.8rem}.gallery-empty-cta small{color:#77837b;max-width:540px}

.gallery-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:10px 0 22px;padding:24px;border-radius:20px;background:linear-gradient(135deg,#173f28,#256f3d);color:#fff}.gallery-hero h1{margin:.25rem 0 .4rem;color:#fff;font-size:2.1rem}.gallery-hero p{margin:0;max-width:820px;color:#d8e6db;line-height:1.5}.gallery-hero-actions{display:flex;gap:8px;flex-wrap:wrap}.agronomic-summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:0 0 22px}.agronomic-summary-strip>div{display:flex;flex-direction:column;gap:4px;padding:13px 14px;background:#fff;border:1px solid #dce5de;border-radius:13px}.agronomic-summary-strip span{font-size:.65rem;color:#728078;text-transform:uppercase;letter-spacing:.06em;font-weight:800}.agronomic-summary-strip strong{font-size:.9rem;color:#173f28}.gallery-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.7fr);gap:16px}.gallery-upload-panel,.gallery-guidance{padding:20px}.gallery-upload-form{display:grid;grid-template-columns:1fr 1fr;gap:13px}.gallery-field{display:flex;flex-direction:column;gap:6px}.gallery-field>strong{font-size:.76rem;color:#203d29}.gallery-field-wide{grid-column:1/-1}.gallery-upload-form>button{justify-self:start}.gallery-guidance ul{padding-left:18px;line-height:1.7;color:#4f5f55}.upload-preview{grid-column:1/-1;padding:10px;border-radius:13px;background:#f4f7f4}.upload-preview img,.upload-preview video{display:block;max-width:100%;max-height:300px;margin:auto;border-radius:10px}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.gallery-card{background:#fff;border:1px solid #dce5de;border-radius:16px;overflow:hidden;min-width:0}.gallery-card.is-cover{box-shadow:0 0 0 2px rgba(47,130,68,.18);border-color:#69a978}.gallery-media-box{position:relative;background:#eef1ee;aspect-ratio:4/3;overflow:hidden}.gallery-media-box img,.gallery-media-box video{width:100%;height:100%;object-fit:cover;display:block}.gallery-cover-badge{position:absolute;top:9px;left:9px;padding:5px 8px;border-radius:999px;background:#216b39;color:#fff;font-size:.64rem;font-weight:900}.gallery-card-body{padding:13px;display:flex;flex-direction:column;gap:5px}.gallery-card-body strong{color:#173f28}.gallery-card-body p{margin:0;color:#5f6e64;line-height:1.45;font-size:.78rem}.gallery-card-body small{color:#7c867f}.gallery-section{margin-top:30px}

.commercial-hero{position:relative;min-height:290px;display:flex;align-items:flex-end;margin:8px 0 24px;padding:28px;border-radius:22px;overflow:hidden;background:linear-gradient(135deg,#173f28,#39844d)}.commercial-hero.has-cover{background-image:var(--commercial-cover);background-size:cover;background-position:center}.commercial-hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,39,20,.88),rgba(10,42,22,.35))}.commercial-hero-content{position:relative;z-index:1;max-width:760px;color:#fff}.commercial-kicker{font-size:.68rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#cae0cf}.commercial-hero h1{font-size:3rem;color:#fff;margin:.25rem 0}.commercial-hero p{font-size:1.05rem;color:#e0ebe3}.commercial-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.commercial-tags span{padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.25);font-size:.7rem;font-weight:850}.commercial-layout{display:grid;grid-template-columns:minmax(290px,.72fr) minmax(0,1.6fr);gap:18px;align-items:start}.commercial-product-card{padding:20px;position:sticky;top:150px}.commercial-product-card h2{margin:.25rem 0 14px}.commercial-facts{margin:0}.commercial-facts>div{display:flex;justify-content:space-between;gap:15px;padding:10px 0;border-bottom:1px solid #e8ece9}.commercial-facts dt{color:#6c7b72;font-size:.72rem}.commercial-facts dd{margin:0;text-align:right;color:#1e3d28;font-weight:850;font-size:.77rem}.commercial-note{padding:12px;border-radius:10px;background:#f5f7f5;color:#66736b;font-size:.7rem;line-height:1.45}.commercial-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.commercial-gallery-grid figure{margin:0;border-radius:16px;overflow:hidden;background:#fff;border:1px solid #dce5de}.commercial-gallery-grid img{width:100%;height:280px;object-fit:cover;display:block}.commercial-gallery-grid figcaption{padding:12px;display:flex;flex-direction:column;gap:4px}.commercial-gallery-grid figcaption span{color:#66756c;font-size:.74rem;line-height:1.4}.commercial-video{margin-top:18px;padding:18px}.commercial-video video{width:100%;max-height:520px;border-radius:13px;background:#111;margin:10px 0}.commercial-video p{color:#647269}

@media(max-width:900px){.agronomic-form-grid{grid-template-columns:1fr 1fr}.gallery-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-layout,.commercial-layout{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.commercial-product-card{position:static}.agronomic-summary-strip{grid-template-columns:1fr 1fr}.commercial-gallery-grid img{height:240px}}
@media(max-width:620px){.agronomic-form-grid{grid-template-columns:1fr}.agronomic-span-2{grid-column:auto}.gallery-hero{align-items:flex-start;flex-direction:column;padding:20px}.gallery-hero h1{font-size:1.65rem}.gallery-hero-actions{width:100%}.gallery-hero-actions .btn{flex:1 1 100%;text-align:center}.agronomic-summary-strip{grid-template-columns:1fr}.gallery-layout{display:block}.gallery-guidance{margin-top:12px}.gallery-upload-form{grid-template-columns:1fr}.gallery-field-wide{grid-column:auto}.gallery-grid{grid-template-columns:1fr}.gallery-preview-grid{grid-template-columns:1fr 1fr}.gallery-preview-item img{height:125px}.commercial-hero{min-height:240px;padding:20px}.commercial-hero h1{font-size:2rem}.commercial-gallery-grid{grid-template-columns:1fr}.commercial-gallery-grid img{height:auto;max-height:420px}.home-parcel-cover{height:190px}}


/* Fase 19 · acceso multiusuario */
.command-account{min-width:130px;display:flex;flex-direction:column;gap:4px;}
.command-account-row{display:flex;align-items:center;gap:6px;}
.command-user{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:9px 10px;font-weight:700;color:#fff;white-space:nowrap;}
.command-logout{border:0;cursor:pointer;font:inherit;}
.login-body{min-height:100vh;margin:0;background:linear-gradient(145deg,#0e3e25 0%,#174d2f 48%,#eff4ef 48%,#f7faf7 100%);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;}
.login-card{width:min(430px,100%);background:#fff;border:1px solid #dbe5dc;border-radius:22px;padding:34px;box-shadow:0 18px 60px rgba(12,46,28,.18);}
.login-brand{font-size:1.3rem;color:#153f29;margin-bottom:20px;}
.login-card h1{margin:0 0 8px;font-size:2rem;color:#17251c;}
.login-form{display:grid;gap:9px;margin-top:24px;}
.login-form input{width:100%;box-sizing:border-box;border:1px solid #cbd8cd;border-radius:10px;padding:12px 13px;font-size:1rem;}
.login-submit{margin-top:10px;width:100%;}
.login-note{font-size:.84rem;color:#6a786f;margin:18px 0 0;text-align:center;}
@media(max-width:900px){.command-account{width:100%;}.command-account-row{justify-content:flex-start}.command-user{flex:1;overflow:hidden;text-overflow:ellipsis;}}
