:root{
  --green:#1B7754;
  --green-deep:#0e5138;
  --green-dark:#0a3d2a;
  --lime:#79AB2B;
  --yellow:#F7D21E;
  --yellow-soft:#FFE772;
  --orange:#E77C00;
  --red:#BE2800;
  --gray:#5C6062;
  --ink:#173027;
  --muted:#6f7f78;
  --paper:#F7F9F6;
  --white:#FFFFFF;
  --shadow:0 18px 60px rgba(9,56,39,.18);
  --radius:24px;
  --font:Inter,Segoe UI,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;background:#081d15;font-family:var(--font);color:var(--ink);overflow:hidden}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
#app{width:100%;height:100%;position:relative;background:radial-gradient(circle at 50% 20%,#174e3b 0,#091b14 65%)}
#viewport{position:absolute;inset:0;display:grid;place-items:center;padding:44px 10px 28px}
#stage{position:relative;width:min(calc(100vw - 20px),calc((100vh - 74px)*16/9));height:min(calc(100vh - 74px),calc((100vw - 20px)*9/16));aspect-ratio:16/9;overflow:hidden;border-radius:16px;background:var(--paper);box-shadow:0 30px 100px rgba(0,0,0,.36)}
.slide{position:absolute;inset:0;background:var(--paper);overflow:hidden;display:flex;flex-direction:column}
.slide.enter-transform{animation:enterTransform .48s cubic-bezier(.2,.85,.25,1)}
.slide.enter-fade{animation:enterFade .42s ease}
.slide.enter-blur{animation:enterBlur .52s ease}
@keyframes enterTransform{from{opacity:0;transform:translateX(3.5%) scale(.975)}to{opacity:1;transform:none}}
@keyframes enterFade{from{opacity:0}to{opacity:1}}
@keyframes enterBlur{from{opacity:0;filter:blur(18px);transform:scale(1.01)}to{opacity:1;filter:blur(0);transform:none}}

/* toolbar */
.toolbar{position:absolute;left:12px;right:12px;top:8px;height:34px;z-index:60;display:flex;align-items:center;gap:7px;pointer-events:none}
.toolbar>*{pointer-events:auto}
.toolbar .spacer{flex:1}
.fs-toolbar-brand{width:32px;height:32px;border-radius:10px;background:#fff;border:1px solid rgba(255,255,255,.22);overflow:hidden;display:grid;place-items:center;box-shadow:0 5px 16px rgba(0,0,0,.18);flex:0 0 auto}
.fs-toolbar-brand img{width:100%;height:100%;object-fit:cover}
.toolbtn{height:32px;padding:0 11px;border:1px solid rgba(255,255,255,.15);background:rgba(6,33,24,.78);color:#fff;border-radius:10px;backdrop-filter:blur(12px);font-size:12px;font-weight:700;letter-spacing:.01em;display:inline-flex;align-items:center;gap:6px}
.toolbtn:hover{background:rgba(27,119,84,.95)}
.toolbtn.primary{background:var(--yellow);color:#183125;border-color:transparent}
.toolbtn.primary:hover{background:#ffe141}
.toolbtn.active{outline:2px solid var(--yellow);outline-offset:1px}
.toolselect{height:32px;border:1px solid rgba(255,255,255,.15);background:rgba(6,33,24,.78);color:#fff;border-radius:10px;padding:0 8px;font-size:12px;font-weight:700}
#slideCounter{color:rgba(255,255,255,.88);font-size:12px;min-width:54px;text-align:center}
.progress-shell{position:absolute;bottom:8px;left:12px;right:12px;height:5px;background:rgba(255,255,255,.16);border-radius:999px;z-index:50;overflow:hidden}
.progress-bar{height:100%;background:linear-gradient(90deg,var(--yellow),var(--lime));width:0;transition:width .25s ease}

/* common slide chrome */
.slide-header{height:13.8%;display:flex;align-items:center;gap:18px;padding:1.5% 3.2% 1.25%;background:#fff;border-bottom:1px solid #dfe9e4;position:relative;z-index:2}
.brand-chip{width:8.3%;height:100%;background:var(--green);border-radius:0 0 18px 0;position:absolute;left:0;top:0}
.brand-chip img{width:72%;height:72%;object-fit:contain;position:absolute;left:12%;top:11%}
.header-copy{margin-left:7.2%;min-width:0}
.eyebrow{font-size:clamp(9px,1vw,15px);letter-spacing:.15em;text-transform:uppercase;color:var(--green);font-weight:800;margin-bottom:.1em}
.slide-title{font-size:clamp(21px,3vw,48px);line-height:1.03;font-weight:850;color:var(--green);letter-spacing:-.035em;margin:0}
.slide-subtitle{font-size:clamp(10px,1.1vw,17px);color:var(--muted);margin-top:.35em}
.header-accent{margin-left:auto;width:14%;height:9px;border-radius:99px;background:linear-gradient(90deg,var(--yellow) 0 70%,var(--lime) 70%)}
.slide-body{flex:1;position:relative;padding:2.2% 3.2% 3.2%;min-height:0}
.slide-footer{height:3.9%;position:absolute;left:3.2%;right:3.2%;bottom:1.2%;display:flex;align-items:center;justify-content:space-between;color:#74867e;font-size:clamp(6px,.65vw,10px);z-index:15}
.slide-footer .footer-left{display:flex;align-items:center;gap:.7em;min-width:0;max-width:44%}
.slide-footer .source{opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fs-footer-logo{width:clamp(12px,1.25vw,20px);height:clamp(12px,1.25vw,20px);object-fit:cover;border-radius:4px;background:#fff;flex:0 0 auto}
.slide-footer .unit-badge{padding:.35em .75em;border-radius:99px;background:#e8f1ed;color:var(--green);font-weight:800}
.editable[contenteditable="true"]{outline:1px dashed rgba(231,124,0,.65);outline-offset:3px;border-radius:4px;cursor:text}
.editable[contenteditable="true"]:focus{outline:2px solid var(--orange);background:rgba(255,231,114,.22)}
.edit-mode .editable{transition:background .15s}
.edit-mode .editable:hover{background:rgba(255,231,114,.16)}
.edit-pill{display:none}
.edit-mode .edit-pill{display:inline-flex}

/* cover */
.cover{background:linear-gradient(120deg,#0d5d40 0%,#27834b 45%,#79ab2b 100%);color:#fff}
.cover::before{content:"";position:absolute;right:-8%;top:-35%;width:58%;height:110%;background:var(--yellow);clip-path:polygon(28% 0,100% 0,100% 72%,0 100%);opacity:.98}
.cover::after{content:"";position:absolute;right:-5%;bottom:-15%;width:44%;height:66%;background:#fff;clip-path:ellipse(69% 58% at 75% 72%)}
.cover-content{position:relative;z-index:3;height:100%;padding:8.2% 6.3%;display:grid;grid-template-columns:1.12fr .88fr;align-items:center}
.cover .kicker{font-size:clamp(11px,1.25vw,19px);font-weight:800;letter-spacing:.2em;opacity:.86;margin-bottom:1em}
.cover h1{font-size:clamp(36px,5.2vw,82px);line-height:.98;letter-spacing:-.05em;margin:0 0 .32em;font-weight:900;max-width:760px}
.cover h2{font-size:clamp(22px,2.7vw,42px);margin:0 0 .32em;font-weight:750;color:var(--yellow-soft)}
.cover .date{display:inline-flex;margin-top:1.2em;font-size:clamp(14px,1.6vw,25px);font-weight:800;background:rgba(255,255,255,.13);padding:.55em 1em;border:1px solid rgba(255,255,255,.25);border-radius:999px}
.cover-brand{align-self:start;justify-self:end;width:66%;margin-top:2%}
.cover-brand img{width:100%;filter:drop-shadow(0 5px 8px rgba(0,0,0,.12))}
.cover .mini-note{position:absolute;left:6.3%;bottom:6.5%;font-size:clamp(9px,.9vw,14px);opacity:.78;z-index:4}

/* agenda */
.agenda-grid{height:100%;display:grid;grid-template-columns:.9fr 1.1fr;gap:4%;align-items:center}
.agenda-intro{padding-left:2%}
.agenda-intro .big-number{font-size:clamp(88px,13vw,205px);font-weight:900;line-height:.8;color:#e7efe9;letter-spacing:-.1em}
.agenda-intro h3{font-size:clamp(24px,3.3vw,52px);color:var(--green);margin:-.2em 0 .35em;line-height:1}
.agenda-intro p{font-size:clamp(11px,1.1vw,17px);color:var(--muted);max-width:430px;line-height:1.45}
.agenda-list{display:grid;gap:1.1%;align-content:center;height:92%}
.agenda-item{display:grid;grid-template-columns:9% 1fr 7%;gap:3%;align-items:center;padding:1.55% 2.2%;border:1px solid #dce8e2;background:#fff;border-radius:16px;box-shadow:0 8px 18px rgba(17,70,51,.05);cursor:pointer;transition:.2s}
.agenda-item:hover{transform:translateX(-5px);border-color:#b7d0c4;box-shadow:0 12px 28px rgba(17,70,51,.1)}
.agenda-item .n{font-size:clamp(15px,1.7vw,26px);font-weight:900;color:var(--yellow);-webkit-text-stroke:.5px rgba(27,119,84,.3)}
.agenda-item strong{display:block;color:var(--green);font-size:clamp(12px,1.45vw,22px);margin-bottom:.2em}
.agenda-item small{font-size:clamp(8px,.8vw,12px);color:var(--muted)}
.agenda-item .arrow{font-size:clamp(15px,1.8vw,28px);color:var(--lime);font-weight:900}

/* rules */
.rules-grid{height:100%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:2.5%}
.rule-card{background:#fff;border:1px solid #dbe7e1;border-radius:20px;padding:6% 7%;display:grid;grid-template-columns:auto 1fr;gap:6%;align-content:center;box-shadow:0 10px 30px rgba(15,70,48,.06);position:relative;overflow:hidden}
.rule-card::after{content:"";position:absolute;right:-26px;bottom:-26px;width:86px;height:86px;background:var(--yellow);border-radius:50%;opacity:.13}
.rule-icon{width:clamp(36px,4vw,64px);height:clamp(36px,4vw,64px);border-radius:18px;background:var(--green);display:grid;place-items:center;font-size:clamp(20px,2.3vw,36px);box-shadow:inset 0 -8px 16px rgba(0,0,0,.08)}
.rule-card h3{margin:0 0 .35em;font-size:clamp(13px,1.55vw,24px);color:var(--green)}
.rule-card p{margin:0;font-size:clamp(9px,.96vw,14px);line-height:1.42;color:#53665e}

/* safety moment */
.safety-moment .slide-body{padding:0}
.safety-hero{height:100%;background:linear-gradient(135deg,rgba(11,83,56,.94),rgba(121,171,43,.88)),url('assets/lrv-plant.webp') center/cover;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;padding:4.5% 6% 6%;color:#fff}
.safety-hero h2{font-size:clamp(44px,6vw,92px);line-height:.94;margin:0 0 .28em;letter-spacing:-.055em}
.safety-topic{font-size:clamp(16px,2vw,30px);font-weight:700;color:var(--yellow-soft);max-width:650px}
.safety-prompts{display:grid;gap:4%;}
.safety-prompt{background:rgba(255,255,255,.93);color:var(--ink);border-radius:20px;padding:6%;font-size:clamp(12px,1.4vw,22px);font-weight:700;box-shadow:var(--shadow);position:relative}
.safety-prompt::before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background:var(--yellow);border-radius:20px 0 0 20px}

/* safety metrics */
.safety-metrics{height:100%;display:grid;grid-template-columns:1.2fr .8fr;gap:4%}
.days-list{display:grid;gap:3%;align-content:center}
.days-card{display:grid;grid-template-columns:17% 1fr auto;align-items:center;background:#fff;border:1px solid #dce8e2;border-radius:18px;padding:2.6% 3.2%;box-shadow:0 8px 24px rgba(13,79,54,.06)}
.days-card .unit{font-size:clamp(16px,1.8vw,28px);font-weight:900;color:var(--green)}
.days-card .name{font-size:clamp(9px,.9vw,14px);color:var(--muted)}
.days-card .days{font-size:clamp(28px,3.6vw,56px);font-weight:900;color:var(--green);letter-spacing:-.04em}
.days-card .days small{font-size:.25em;color:var(--muted);font-weight:700;letter-spacing:0}
.safety-callout{border-radius:28px;background:linear-gradient(145deg,var(--green),#0d5139);padding:10%;color:#fff;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.safety-callout::before{content:"";position:absolute;width:180px;height:180px;background:var(--yellow);border-radius:50%;right:-70px;top:-70px;opacity:.95}
.safety-callout .shield{font-size:clamp(32px,5vw,76px);margin-bottom:.22em;position:relative}
.safety-callout p{font-size:clamp(15px,1.7vw,27px);line-height:1.3;font-weight:750;position:relative;margin:0}

/* section */
.section-slide{background:#0e5f41;color:#fff}
.section-slide .section-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.85) contrast(1.03)}
.section-slide .section-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,72,49,.94) 0%,rgba(27,119,84,.84) 42%,rgba(27,119,84,.17) 100%)}
.section-slide .section-accent{position:absolute;top:-23%;right:-6%;width:40%;height:62%;background:var(--yellow);clip-path:ellipse(65% 55% at 65% 40%)}
.section-copy{position:relative;z-index:3;height:100%;display:flex;flex-direction:column;justify-content:center;padding:0 7%;max-width:65%}
.section-copy .unit-large{font-size:clamp(15px,1.7vw,26px);font-weight:900;color:var(--yellow);letter-spacing:.22em;margin-bottom:.7em}
.section-copy h2{font-size:clamp(48px,7vw,108px);line-height:.9;letter-spacing:-.06em;margin:0 0 .3em}
.section-copy p{font-size:clamp(15px,1.75vw,28px);opacity:.9;margin:0}
.section-logo{position:absolute;left:7%;bottom:8%;z-index:3;width:23%}
.section-logo img{width:100%}

/* KPI */
.kpi-layout{height:100%;display:grid;grid-template-columns:31% 37% 32%;gap:2.2%;align-items:stretch}
.kpi-card{background:#fff;border-radius:20px;border:1px solid #dce8e2;box-shadow:0 10px 30px rgba(13,79,54,.06);padding:6%;display:flex;flex-direction:column;justify-content:center}
.kpi-card .label{font-size:clamp(8px,.8vw,12px);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:800}
.kpi-card .big{font-size:clamp(28px,3.9vw,60px);font-weight:900;letter-spacing:-.055em;color:var(--green);margin:.15em 0}
.kpi-card .meta{font-size:clamp(9px,.95vw,14px);color:var(--muted)}
.kpi-left{display:grid;grid-template-rows:1fr .82fr .82fr;gap:4%}
.kpi-row-two{display:grid;grid-template-columns:1fr 1fr;gap:4%}
.donut-wrap{background:#fff;border-radius:24px;border:1px solid #dce8e2;display:grid;place-items:center;position:relative;box-shadow:0 10px 30px rgba(13,79,54,.06)}
.donut{width:68%;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;position:relative;background:conic-gradient(var(--green) calc(var(--value)*1%),#e8eee9 0)}
.donut::after{content:"";width:72%;height:72%;border-radius:50%;background:#fff;position:absolute}
.donut-center{position:relative;z-index:2;text-align:center}
.donut-center .v{font-size:clamp(31px,4vw,64px);font-weight:900;color:var(--green);letter-spacing:-.06em}
.donut-center .t{font-size:clamp(8px,.85vw,13px);color:var(--muted);font-weight:700}
.causes{display:grid;grid-template-columns:1fr 1fr;gap:4%;height:100%}
.cause-card{background:#fff;border:1px solid #dce8e2;border-radius:18px;padding:6%;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.cause-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:7px;background:var(--green)}
.cause-card.warn::before{background:var(--yellow)}
.cause-card .cause-name{font-size:clamp(10px,1.1vw,17px);font-weight:850;color:var(--green)}
.cause-card .cause-pct{font-size:clamp(21px,2.6vw,40px);font-weight:900;letter-spacing:-.04em}
.cause-card .cause-meta{font-size:clamp(7px,.7vw,11px);color:var(--muted);line-height:1.5}
.kpi-insight{position:absolute;left:3.2%;right:3.2%;bottom:5.1%;height:8.2%;display:flex;align-items:center;background:#edf4f0;border-radius:12px;padding:0 1.4%;font-size:clamp(9px,.9vw,14px);font-weight:700;color:#315c4c;border-left:5px solid var(--lime)}

/* predictive */
.predictive-grid{height:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:2%}
.tech-card{background:#fff;border:1px solid #dce8e2;border-radius:20px;padding:5%;box-shadow:0 10px 30px rgba(13,79,54,.06);display:flex;flex-direction:column;min-width:0;position:relative}
.tech-title{font-size:clamp(13px,1.45vw,22px);font-weight:850;color:var(--green);margin-bottom:4%}
.week-bars{display:grid;grid-template-columns:repeat(3,1fr);gap:4%;align-items:end;height:42%}
.week-bar{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6%}
.week-bar .bar-shell{height:76%;width:58%;background:#edf1ee;border-radius:999px;display:flex;align-items:flex-end;overflow:hidden;position:relative}
.week-bar .fill{width:100%;height:calc(var(--pct)*1%);background:linear-gradient(180deg,var(--lime),var(--green));border-radius:999px;min-height:0}
.week-bar.empty .fill{height:0}
.week-bar .pct{font-size:clamp(9px,.85vw,13px);font-weight:800;color:var(--green)}
.week-bar .wk{font-size:clamp(7px,.7vw,11px);color:var(--muted);font-weight:800}
.tech-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:3%;margin-top:auto}
.tech-stat{background:#f3f7f5;border-radius:12px;padding:8% 4%;text-align:center}
.tech-stat strong{display:block;font-size:clamp(16px,1.75vw,27px);color:var(--green)}
.tech-stat small{font-size:clamp(6px,.65vw,10px);color:var(--muted);text-transform:uppercase;font-weight:800}
.tech-stat.pending strong{color:var(--orange)}
.predictive-insight{position:absolute;left:3.2%;right:3.2%;bottom:5%;background:#fff6ce;border-left:5px solid var(--yellow);padding:.9% 1.3%;border-radius:10px;font-size:clamp(8px,.84vw,13px);font-weight:700;color:#65570d}

/* tables / rdp */
.rdp-layout{height:100%;display:grid;grid-template-columns:25% 75%;gap:2%}
.rdp-summary{display:grid;align-content:start;gap:3%;padding-top:1%}
.rdp-stat{background:#fff;border:1px solid #dce8e2;border-radius:17px;padding:6%;display:grid;grid-template-columns:1fr auto;align-items:center}
.rdp-stat .rname{font-size:clamp(9px,.95vw,14px);font-weight:800;color:var(--green)}
.rdp-stat .rnum{font-size:clamp(22px,2.6vw,40px);font-weight:900;color:var(--green)}
.rdp-note{background:linear-gradient(145deg,var(--green),var(--green-deep));color:#fff;border-radius:18px;padding:8%;font-size:clamp(9px,.9vw,14px);line-height:1.45}
.table-wrap{background:#fff;border:1px solid #dce8e2;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;min-height:0}
.table-tabs{display:flex;gap:1px;background:#dce8e2}
.table-tab{flex:1;border:0;background:#f4f7f5;padding:1.25% 1%;font-size:clamp(8px,.8vw,12px);font-weight:850;color:#5e7069}
.table-tab.active{background:var(--green);color:#fff}
.table-scroll{overflow:auto;flex:1}
table.data{width:100%;border-collapse:collapse;font-size:clamp(6px,.62vw,9.4px);table-layout:fixed}
table.data th{position:sticky;top:0;background:#edf4f0;color:var(--green);text-transform:uppercase;letter-spacing:.04em;font-size:.9em;text-align:left;padding:.7em .65em;border-bottom:1px solid #cddbd4;z-index:2}
table.data td{padding:.58em .65em;border-bottom:1px solid #e5ece8;color:#41564d;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
table.data tr:nth-child(even) td{background:#fafcfb}
table.data td:nth-child(3), table.data th:nth-child(3){text-align:center;width:7%}
table.data td:nth-child(8), table.data th:nth-child(8){text-align:center;width:8%}
.crit-badge{display:inline-flex;min-width:1.8em;justify-content:center;padding:.15em .45em;border-radius:99px;font-weight:900;color:#fff}
.crit-X{background:#76208b}.crit-A{background:#c93609}.crit-B{background:#efd425;color:#554a00}.crit-C{background:#75ab2e}

/* critical */
.critical-grid{height:100%;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:2.4%}
.critical-card{background:#fff;border:1px solid #dce8e2;border-radius:20px;overflow:hidden;box-shadow:0 8px 22px rgba(13,79,54,.05);display:flex;flex-direction:column}
.critical-card .band{padding:2.4% 4%;font-size:clamp(11px,1.15vw,18px);font-weight:900;color:#123527;background:var(--yellow)}
.critical-card.orange .band{background:var(--orange);color:#fff}
.critical-card.red .band{background:var(--red);color:#fff}
.critical-card.neutral .band{background:#edf0ef;color:#2e3a36}
.critical-content{display:grid;grid-template-columns:1.4fr .85fr .85fr 1.4fr;flex:1;align-items:stretch}
.critical-cell{padding:7% 6%;border-right:1px solid #e5ece8;display:flex;flex-direction:column;justify-content:center;min-width:0}
.critical-cell:last-child{border-right:0}
.critical-cell label{font-size:clamp(6px,.65vw,10px);color:var(--muted);text-transform:uppercase;font-weight:800;margin-bottom:.55em}
.critical-cell strong{font-size:clamp(8px,.82vw,13px);line-height:1.28;color:#33483f;word-break:break-word}

/* analytical */
.analytical-body{padding:0;overflow:hidden}
.analytical-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.analytical-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,51,35,.84) 0%,rgba(7,51,35,.45) 45%,rgba(7,51,35,.12) 100%)}
.analytical-copy{position:absolute;left:4.4%;top:8%;bottom:10%;width:41%;display:flex;flex-direction:column;justify-content:center;color:#fff}
.analytical-copy .unit-tag{font-size:clamp(9px,.9vw,14px);font-weight:900;letter-spacing:.14em;color:var(--yellow);margin-bottom:3%}
.analytical-copy h3{font-size:clamp(28px,4.2vw,66px);line-height:.94;letter-spacing:-.05em;margin:0 0 .4em}
.analytical-copy p{font-size:clamp(10px,1vw,16px);line-height:1.4;opacity:.9;margin:0}
.metric-stack{position:absolute;right:4%;top:8%;bottom:10%;width:43%;display:grid;grid-template-columns:1fr 1fr;gap:4%}
.metric-card{background:rgba(255,255,255,.95);border-radius:18px;padding:7%;box-shadow:0 14px 30px rgba(0,0,0,.14);display:flex;flex-direction:column;justify-content:center;backdrop-filter:blur(6px)}
.metric-card .metric-label{font-size:clamp(8px,.8vw,12px);font-weight:900;color:var(--green);letter-spacing:.08em;text-transform:uppercase}
.metric-card .metric-value{font-size:clamp(23px,2.7vw,42px);font-weight:900;letter-spacing:-.05em;color:#173d2f;margin:.12em 0}
.metric-card .metric-area{font-size:clamp(8px,.8vw,12px);line-height:1.25;color:var(--muted)}
.metric-card .trend{position:absolute}
.metric-card[data-trend="up"]{border-top:7px solid var(--orange)}
.metric-card[data-trend="down"]{border-top:7px solid var(--green)}

/* RCA */
.rca-layout{height:100%;display:grid;grid-template-columns:31% 69%;gap:2%}
.rca-left{display:grid;grid-template-rows:1fr 1fr;gap:4%}
.stack-card{background:#fff;border:1px solid #dce8e2;border-radius:20px;padding:6%;display:grid;grid-template-columns:38% 1fr;gap:6%;align-items:center}
.stack-bar{height:80%;width:58%;justify-self:center;border-radius:12px;overflow:hidden;display:flex;flex-direction:column-reverse;background:#edf1ee;box-shadow:inset 0 0 0 1px #dde6e1}
.stack-seg{display:grid;place-items:center;color:#fff;font-weight:900;font-size:clamp(8px,.8vw,12px);min-height:2px}
.seg-green{background:var(--green)}.seg-orange{background:var(--orange)}.seg-red{background:var(--red)}.seg-gray{background:#656b6a}
.stack-copy h3{font-size:clamp(12px,1.3vw,20px);color:var(--green);margin:0 0 .7em}
.legend-row{display:flex;align-items:center;gap:7px;font-size:clamp(7px,.7vw,10px);color:var(--muted);margin:.5em 0}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}
.rca-table{height:100%;display:flex;flex-direction:column;background:#fff;border:1px solid #dce8e2;border-radius:20px;overflow:hidden}
.rca-table-head{padding:2.5% 3%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e0e9e4}
.rca-table-head h3{margin:0;font-size:clamp(12px,1.35vw,21px);color:var(--green)}
.rca-table-head small{font-size:clamp(7px,.7vw,10px);color:var(--muted)}
.status-pill{font-size:.9em;font-weight:900;padding:.25em .6em;border-radius:99px;color:#fff}
.status-atrasado{background:var(--red)}.status-andamento{background:var(--yellow);color:#5a4c00}.status-concluido{background:var(--green)}
.rca-insight{position:absolute;left:3.2%;right:3.2%;bottom:5.2%;background:#fff6ce;border-left:5px solid var(--yellow);padding:.8% 1.2%;border-radius:10px;font-size:clamp(8px,.8vw,12px);font-weight:700}

/* bulletins */
.bulletins-grid{height:100%;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:2.4%}
.bulletin{position:relative;border-radius:20px;overflow:hidden;box-shadow:0 12px 30px rgba(13,79,54,.1);background:#092d20;cursor:zoom-in}
.bulletin img{width:100%;height:100%;object-fit:cover;filter:saturate(.95)}
.bulletin::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(6,39,27,.92) 0%,rgba(6,39,27,.1) 58%)}
.bulletin-copy{position:absolute;left:5%;right:5%;bottom:6%;z-index:2;color:#fff}
.bulletin-copy h3{font-size:clamp(11px,1.22vw,19px);margin:0 0 .2em}
.bulletin-copy p{font-size:clamp(7px,.75vw,11px);margin:0;opacity:.86}
.bulletin-value{position:absolute;right:4%;top:5%;z-index:2;background:var(--yellow);color:#173027;border-radius:99px;padding:.45em .8em;font-size:clamp(8px,.8vw,12px);font-weight:900}

/* GPE */
.gpe-layout{height:100%;display:grid;grid-template-columns:29% 42% 29%;gap:2%}
.gpe-current{display:grid;grid-template-rows:auto 1fr;gap:4%}
.gpe-total{background:linear-gradient(145deg,var(--green),var(--green-deep));color:#fff;border-radius:22px;padding:8%;position:relative;overflow:hidden}
.gpe-total::after{content:"";position:absolute;right:-32px;top:-32px;width:100px;height:100px;border-radius:50%;background:var(--yellow)}
.gpe-total label{font-size:clamp(7px,.7vw,11px);text-transform:uppercase;letter-spacing:.12em;font-weight:800;opacity:.8}
.gpe-total strong{display:block;font-size:clamp(31px,3.6vw,56px);line-height:1;margin-top:.25em}
.gpe-mix{display:grid;grid-template-columns:1fr 1fr;gap:4%}
.gpe-mini{background:#fff;border:1px solid #dce8e2;border-radius:17px;padding:8%;display:flex;flex-direction:column;justify-content:center}
.gpe-mini label{font-size:clamp(7px,.7vw,10px);color:var(--muted);font-weight:800}
.gpe-mini strong{font-size:clamp(19px,2.1vw,33px);color:var(--green);margin:.12em 0}
.gpe-mini small{font-size:clamp(6px,.62vw,9px);color:var(--muted);line-height:1.35}
.gpe-period{background:#fff;border:1px solid #dce8e2;border-radius:22px;padding:5%;display:flex;flex-direction:column;min-width:0}
.gpe-period-head{display:flex;justify-content:space-between;align-items:flex-start}
.gpe-period h3{font-size:clamp(11px,1.2vw,18px);color:var(--green);margin:0}
.gpe-period .period-total{font-size:clamp(19px,2.2vw,34px);font-weight:900;color:var(--green)}
.spark-group{display:grid;grid-template-rows:1fr 1fr;gap:5%;flex:1;margin-top:4%}
.spark-card{background:#f4f8f6;border-radius:15px;padding:4%}
.spark-head{display:flex;align-items:center;justify-content:space-between;font-size:clamp(7px,.7vw,10px);font-weight:800;color:var(--muted)}
.spark-head strong{color:var(--green);font-size:1.5em}
.spark-card svg{width:100%;height:72%;overflow:visible}
.gpe-returns{display:grid;grid-template-rows:1fr 1fr;gap:4%}
.return-card{border-radius:22px;padding:8%;background:#fff;border:1px solid #dce8e2;display:flex;flex-direction:column;justify-content:center}
.return-card.highlight{background:linear-gradient(145deg,#f7d21e,#ffe772);border:0}
.return-card label{font-size:clamp(7px,.72vw,11px);text-transform:uppercase;letter-spacing:.1em;font-weight:850;color:#667870}
.return-card strong{font-size:clamp(25px,3vw,47px);color:var(--green);line-height:1.05;margin:.15em 0}
.return-card.highlight strong{color:#3f3c14}
.return-card small{font-size:clamp(7px,.7vw,10px);color:#667870;line-height:1.45}
.gpe-insight{position:absolute;left:3.2%;right:3.2%;bottom:5.2%;font-size:clamp(8px,.82vw,12px);font-weight:700;background:#edf4f0;border-left:5px solid var(--lime);padding:.8% 1.2%;border-radius:10px}

/* close */
.close-body{height:100%;display:grid;grid-template-rows:1fr auto;gap:4%}
.close-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:3%;align-items:stretch}
.close-card{background:#fff;border:1px solid #dce8e2;border-radius:22px;padding:8%;box-shadow:0 12px 30px rgba(13,79,54,.06);position:relative;overflow:hidden}
.close-card::before{content:"";position:absolute;left:0;top:0;right:0;height:8px;background:var(--green)}
.close-card:nth-child(2)::before{background:var(--lime)}
.close-card:nth-child(3)::before{background:var(--yellow)}
.close-card h3{font-size:clamp(17px,1.8vw,28px);color:var(--green);margin:0 0 1em}
.close-card ul{padding:0;margin:0;list-style:none;display:grid;gap:1em}
.close-card li{font-size:clamp(10px,1vw,15px);line-height:1.4;color:#4d6258;padding-left:1.5em;position:relative}
.close-card li::before{content:"✓";position:absolute;left:0;color:var(--lime);font-weight:900}
.close-callout{background:linear-gradient(120deg,var(--green),#0b4e36);color:#fff;border-radius:20px;padding:2.2% 3%;display:flex;align-items:center;justify-content:space-between}
.close-callout strong{font-size:clamp(13px,1.4vw,22px)}
.close-callout span{font-size:clamp(8px,.8vw,12px);opacity:.8}

/* panel / modal */
.panel-backdrop{position:absolute;inset:0;background:rgba(3,22,15,.45);z-index:90;display:none;backdrop-filter:blur(3px)}
.panel-backdrop.open{display:block}
.side-panel{position:absolute;top:0;right:0;width:min(480px,94vw);height:100%;background:#f7f9f6;z-index:100;transform:translateX(103%);transition:.28s ease;box-shadow:-20px 0 60px rgba(0,0,0,.24);display:flex;flex-direction:column}
.side-panel.open{transform:translateX(0)}
.panel-head{padding:18px 18px 14px;border-bottom:1px solid #dce8e2;background:#fff;display:flex;align-items:center;gap:12px}
.panel-head h2{margin:0;font-size:19px;color:var(--green)}
.panel-head .panel-spacer{flex:1}
.panel-close{border:0;background:#eaf2ee;color:var(--green);border-radius:10px;width:34px;height:34px;font-weight:900}
.panel-body{padding:16px;overflow:auto;flex:1}
.panel-actions{padding:12px 16px;border-top:1px solid #dce8e2;background:#fff;display:flex;gap:8px;justify-content:flex-end}
.repo-card{background:#fff;border:1px solid #dce8e2;border-radius:16px;padding:14px;margin-bottom:10px}
.repo-card.active{border:2px solid var(--lime)}
.repo-card h3{font-size:14px;color:var(--green);margin:0 0 6px}
.repo-meta{font-size:11px;color:var(--muted);line-height:1.5}
.repo-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.smallbtn{border:1px solid #d2e0d9;background:#fff;color:var(--green);border-radius:8px;padding:7px 9px;font-size:11px;font-weight:800}
.smallbtn:hover{background:#edf4f0}
.smallbtn.danger{color:var(--red)}
.json-editor{width:100%;min-height:60vh;resize:vertical;border:1px solid #cadbd2;border-radius:12px;padding:12px;background:#0d251c;color:#d9f2e5;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre;tab-size:2}
.form-row{display:grid;gap:5px;margin-bottom:12px}
.form-row label{font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.form-row input,.form-row select{border:1px solid #cadbd2;border-radius:10px;padding:10px;background:#fff;color:var(--ink)}

.modal{position:absolute;inset:0;z-index:110;background:rgba(2,18,12,.88);display:none;align-items:center;justify-content:center;padding:4%}
.modal.open{display:flex}
.modal-content{max-width:94vw;max-height:88vh;background:#fff;border-radius:18px;overflow:auto;box-shadow:0 30px 90px rgba(0,0,0,.45);position:relative}
.modal-content img{display:block;max-width:92vw;max-height:84vh;width:auto;height:auto}
.modal-close{position:fixed;right:4%;top:3%;z-index:2;width:42px;height:42px;border-radius:50%;border:0;background:#fff;color:var(--green);font-size:22px;font-weight:900}
.overview-grid{width:min(1180px,92vw);height:min(720px,86vh);display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:18px;overflow:auto;background:#0b2b20;border-radius:18px}
.overview-item{aspect-ratio:16/9;background:#f4f7f5;border-radius:12px;padding:10px;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;border:2px solid transparent;box-shadow:0 7px 18px rgba(0,0,0,.18)}
.overview-item:hover{border-color:var(--yellow)}
.overview-item.active{border-color:var(--lime)}
.overview-item strong{font-size:12px;color:var(--green);line-height:1.2}
.overview-item small{font-size:9px;color:var(--muted)}

.toast{position:absolute;left:50%;bottom:28px;transform:translate(-50%,20px);z-index:130;background:#0a3828;color:#fff;padding:10px 14px;border-radius:10px;opacity:0;pointer-events:none;transition:.25s;font-size:12px;font-weight:700;box-shadow:0 12px 30px rgba(0,0,0,.2)}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* presentation mode */
.presentation .toolbar{opacity:0;transition:.2s}
.presentation .toolbar:hover{opacity:1}
.presentation #viewport{padding:0}
.presentation #stage{width:min(100vw,calc(100vh*16/9));height:min(100vh,calc(100vw*9/16));border-radius:0}
.presentation .progress-shell{bottom:0;left:0;right:0;height:3px;opacity:.65}

@media (max-width:850px){
  .toolbar .optional{display:none}
  .fs-toolbar-brand{width:30px;height:30px}
  #viewport{padding-top:43px}
  .rules-grid{gap:1.5%}
  .slide-body{padding-left:2.5%;padding-right:2.5%}
}
@media (prefers-reduced-motion:reduce){.slide{animation:none!important}.side-panel{transition:none}}
