:root{--bg:#f6f7f3;--card:#fffdf7;--ink:#162018;--muted:#617168;--line:#dbe1d7;--green:#17643a;--orange:#b86616;--red:#a3362b;--blue:#44546a;--cream:#fbf8ee;--shadow:0 14px 32px rgba(28,42,32,.08)}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#f8faf5,#eef2ec);font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink)}.wrap{max-width:1360px;margin:auto;padding:24px}.top{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.title h1{margin:0;font-size:32px;letter-spacing:-.02em}.title p{margin:8px 0 0;color:var(--muted)}.controls{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.btn,.fileLabel{border:1px solid var(--line);background:#fff;border-radius:14px;padding:11px 14px;font-weight:800;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.04)}.btn.primary,.fileLabel{background:var(--green);border-color:var(--green);color:white}.btn:disabled{opacity:.45;cursor:not-allowed}.fileLabel input{display:none}.notice{background:#fff7e8;border:1px solid #f1d3a5;color:#6d3e05;border-radius:16px;padding:12px 14px;margin:14px 0;font-size:14px}.validationPanel{background:#fff;border:1px solid var(--line);border-left:5px solid var(--orange);border-radius:16px;padding:12px 14px;margin:14px 0;font-size:14px;box-shadow:0 6px 18px rgba(0,0,0,.04)}.validationPanel.ok{border-left-color:var(--green)}.validationPanel.error{border-left-color:var(--red)}.validationPanel strong{display:block;margin-bottom:6px}.validationPanel ul{margin:0;padding-left:18px;color:var(--muted)}.validationPanel li+li{margin-top:4px}.hidden{display:none!important}.grid{display:grid;gap:14px}.section{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow);margin-top:16px}.section h2{margin:0 0 6px;font-size:20px}.section .intro{color:var(--muted);margin:0 0 14px}.story{display:grid;grid-template-columns:1fr 1.08fr 1fr;gap:14px;align-items:stretch}.storyCard{background:#fff;border:1px solid var(--line);border-radius:20px;padding:16px;min-height:170px}.storyCard h3{margin:0 0 10px;font-size:16px;color:#243228}.storyMetric{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.storyMetric:first-of-type{border-top:0}.storyMetric span{color:var(--muted);font-size:13px}.storyMetric strong{text-align:right;font-size:16px}.arrowCard{display:flex;align-items:center;justify-content:center;color:var(--muted);font-weight:900}.kpiRow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:14px}.kpi{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:16px;box-shadow:var(--shadow)}.kpi.primary{background:#112218;color:#f5fff6}.kpi .label{font-size:12px;color:var(--muted);font-weight:900;text-transform:uppercase;letter-spacing:.04em}.kpi.primary .label{color:#bcd9c3}.kpi .value{font-size:29px;font-weight:950;margin-top:8px;letter-spacing:-.02em}.kpi .sub{margin-top:8px;color:var(--muted);font-size:13px;line-height:1.35}.kpi.primary .sub{color:#d8eadb}.layout{display:grid;grid-template-columns:1.05fr .95fr;gap:16px}.bars{display:grid;gap:12px}.barRow{display:grid;grid-template-columns:230px 1fr 110px;gap:12px;align-items:center}.barTrack{height:14px;border-radius:999px;background:#edf1ea;overflow:hidden}.barFill{height:100%;border-radius:999px;background:var(--green)}.warnFill{background:var(--orange)}.badFill{background:var(--red)}.riskGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.riskCard{background:#fff;border:1px solid var(--line);border-radius:20px;padding:16px}.riskTop{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.riskTop h3{margin:0;font-size:16px}.riskValue{font-size:28px;font-weight:950;margin:8px 0 2px}.riskSub{color:var(--muted);font-size:13px;line-height:1.45}.zoneBar{position:relative;height:18px;border-radius:999px;background:#edf1ea;overflow:hidden;margin:14px 0 8px}.zoneFill{position:absolute;left:0;top:0;height:100%;border-radius:999px;background:var(--green)}.zoneFill.warn{background:var(--orange)}.zoneFill.bad{background:var(--red)}.thresholdLine{position:absolute;top:-3px;width:3px;height:24px;background:#101912;border-radius:999px}.thresholdLine.second{background:#6b3f13}.zoneLabels{display:grid;grid-template-columns:1fr 1fr 1fr;color:var(--muted);font-size:11px}.zoneLabels.four{grid-template-columns:1fr 1fr 1fr 1fr}.zoneLabels span:nth-child(2){text-align:center}.zoneLabels span:nth-child(3){text-align:right}.zoneLabels.four span:nth-child(3){text-align:center}.zoneLabels.four span:nth-child(4){text-align:right}.excess{font-weight:950;color:var(--red)}.remaining{font-weight:950;color:var(--orange)}.decision{display:grid;grid-template-columns:1fr 1fr;gap:14px}.decisionBox{border:1px solid var(--line);background:#fff;border-radius:18px;padding:15px}.decisionBox h3{margin:0 0 8px;font-size:15px}.decisionBox .big{font-size:30px;font-weight:950;margin:6px 0}.decisionBox p{color:var(--muted);margin:4px 0;font-size:13px}.status{display:inline-flex;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:900}.ok{background:#e2f3e7;color:var(--green)}.warn{background:#fff0d7;color:var(--orange)}.bad{background:#f8dedb;color:var(--red)}.chartSvg{width:100%;height:285px;overflow:visible}.legend{display:flex;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:13px;margin-top:8px}.legend span:before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--blue);margin-right:6px}.legend span:nth-child(2):before{background:var(--green)}.legend span:nth-child(3):before{background:var(--orange)}.whatsapp{white-space:pre-wrap;background:#101912;color:#edf7ef;border-radius:18px;padding:16px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;line-height:1.5;font-size:14px}.tableWrap{overflow:auto}table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}th:first-child,td:first-child{text-align:left}th{background:#f3f6ef;color:#314139;font-size:12px;text-transform:uppercase}.miniNote,.exportStamp{color:var(--muted);font-size:12px;margin-top:10px}.warnText{color:var(--orange);font-weight:800}.dangerText{color:var(--red);font-weight:900}
.flowChartGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:10px}.flowSubChart{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px}.flowSubChart h3{margin:0 0 8px;font-size:15px;color:#243228}.flowLegend{display:flex;gap:14px;flex-wrap:wrap;margin:8px 0 4px;color:var(--muted);font-size:12px}.flowLegend span:before{content:"";display:inline-block;width:18px;height:3px;border-radius:999px;background:var(--legend-color);margin-right:7px;vertical-align:middle}.flowChartSvg{width:100%;height:285px;overflow:visible}.flowGrid{stroke:rgba(97,113,104,.16);stroke-width:1}.flowAxisLabel{fill:rgba(97,113,104,.86);font-size:11px}.flowStem{stroke-width:2.2;stroke-linecap:round;opacity:.72}.flowPoint{stroke:#fff;stroke-width:1.5}
.materialViz{display:grid;gap:14px;margin-top:12px}.materialBarRow{display:grid;grid-template-columns:170px 1fr 120px;gap:12px;align-items:center}.materialLabel{font-weight:900}.materialTrack{height:28px;border-radius:999px;background:#edf1ea;overflow:hidden;position:relative}.materialFill{height:100%;border-radius:999px;background:var(--blue)}.materialFill.cnsl{background:var(--green)}.materialFill.tourteaux{background:var(--orange)}.materialValue{text-align:right;font-weight:950}.materialSummary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}.materialMini{border:1px solid var(--line);background:#fff;border-radius:16px;padding:12px}.materialMini span{display:block;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.materialMini strong{display:block;font-size:22px;margin-top:6px}.materialNote{color:var(--muted);font-size:13px;line-height:1.4;margin-top:10px}
@media(max-width:1120px){.story,.layout,.decision{grid-template-columns:1fr}.kpiRow{grid-template-columns:repeat(2,1fr)}.top{display:block}.controls{justify-content:flex-start;margin-top:14px}.arrowCard{display:none}}@media(max-width:1120px){.materialSummary{grid-template-columns:1fr}.materialBarRow{grid-template-columns:1fr}.materialValue{text-align:left}}@media(max-width:620px){.kpiRow{grid-template-columns:1fr}.wrap{padding:14px}.barRow{grid-template-columns:1fr}.riskTop{display:block}.kpi .value{font-size:25px}.storyMetric{display:block}.storyMetric strong{text-align:left;display:block;margin-top:4px}}
@media(max-width:900px){.riskGrid,.flowChartGrid{grid-template-columns:1fr}.story{grid-template-columns:1fr}.layout{grid-template-columns:1fr}}
