/* Energy Analyzer — camada visual autossuficiente.
   Mantém a identidade TRL7, mas não depende da folha institucional para
   estrutura, legibilidade ou responsividade. */

:root {
  --ink:#12202b; --ink-2:#2b3b47; --muted:#5e6c77; --line:#dce3e8;
  --paper:#fff; --soft:#f4f7f8; --navy:#0b1b27; --navy-2:#122c3d;
  --orange:#d9682b; --orange-dark:#a94817; --orange-strong:#b4501c; --blue:#497b9c;
  --ok:#237a57; --warn:#9b5a18; --danger:#a43b36;
  --wrap:min(1120px,calc(100% - 40px));
  --display:"Space Grotesk",Inter,system-ui,sans-serif;
  --sans:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box} html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none} img{display:block;max-width:100%} p{margin:0}
h1,h2,h3{margin:0;font-family:var(--display);line-height:1.12;letter-spacing:-.025em;text-wrap:balance}
:focus-visible{outline:3px solid rgba(73,123,156,.45);outline-offset:3px}
.skip{position:fixed;left:16px;top:-80px;z-index:100;padding:10px 14px;background:#fff;border:1px solid var(--line);border-radius:5px}.skip:focus{top:12px}

.header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}
.nav{width:var(--wrap);min-height:74px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{display:inline-flex;align-items:center;gap:11px}.brand-logo{width:44px;height:44px;border-radius:7px;flex:0 0 auto}.brand-name{display:flex;flex-direction:column;line-height:1.05}.brand-name strong{font-family:var(--display);font-size:19px;letter-spacing:.02em}.brand-name small{margin-top:4px;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.menu{display:flex;align-items:center;gap:25px;color:#42515c;font-size:14px;font-weight:600}.menu a{position:relative;padding:7px 0}.menu a:hover,.menu a[aria-current="page"]{color:var(--orange-dark)}
.menu .ihm-link{padding:10px 15px;color:#fff;background:var(--navy);border-radius:5px}.menu .ihm-link:hover{color:#fff;background:var(--navy-2)}
.mobile-nav{display:none;position:relative}.mobile-nav summary{list-style:none;cursor:pointer;width:48px;height:48px;border:1px solid var(--line);border-radius:5px;display:grid;place-items:center;font-size:20px;font-weight:700}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-panel{position:absolute;right:0;top:56px;width:min(300px,calc(100vw - 40px));padding:8px;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 18px 45px rgba(18,32,43,.16)}.mobile-panel a{display:block;padding:14px 12px;border-bottom:1px solid var(--line);font-weight:600}.mobile-panel a:last-child{border-bottom:0}.mobile-panel a[aria-current="page"]{color:var(--orange-dark)}

.product-bar{background:#fff;border-bottom:1px solid var(--line)}.product-bar-inner{width:var(--wrap);min-height:48px;margin:0 auto;display:flex;align-items:center;gap:19px;overflow-x:auto;white-space:nowrap;font-size:13px}.product-bar strong{margin-right:auto;font-family:var(--display);color:var(--ink)}.product-bar a{color:var(--muted);font-weight:600}.product-bar a:hover,.product-bar a[aria-current="page"]{color:var(--orange-dark)}

.page-hero{background:var(--soft);border-bottom:1px solid var(--line)}.page-hero-inner{width:var(--wrap);margin:0 auto;padding:clamp(48px,6vw,76px) 0}.kicker,.overline{display:block;color:var(--orange-dark);font-size:12px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.kicker{margin-bottom:20px}.overline{margin-bottom:13px}.page-hero h1{max-width:25ch;font-size:clamp(2rem,3.9vw,3.2rem)}.page-hero p{max-width:69ch;margin-top:20px;color:var(--muted);font-size:clamp(1.02rem,1.4vw,1.14rem)}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:26px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 20px;border:1px solid transparent;border-radius:5px;font-weight:700;text-align:center}.btn-dark{color:#fff;background:var(--navy);border-color:var(--navy)}.btn-dark:hover{background:var(--navy-2)}.btn-primary{color:#fff;background:var(--orange);border-color:var(--orange)}.btn-primary:hover{background:#e27d47}.btn-outline{color:var(--ink);border-color:var(--line);background:#fff}.btn-outline:hover{border-color:var(--ink-2)}.text-link{display:inline-flex;align-items:center;gap:8px;color:var(--orange-dark);font-weight:700}.text-link:hover{text-decoration:underline;text-underline-offset:4px}

.section{width:var(--wrap);margin:0 auto;padding:clamp(46px,6.5vw,84px) 0}.section.compact{padding:clamp(38px,5vw,58px) 0}.band,.cta-band{background:var(--soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.section-head{max-width:720px;margin-bottom:38px}.section-head h2{font-size:clamp(1.7rem,3.2vw,2.5rem)}.section-head p{max-width:64ch;margin-top:15px;color:var(--muted);font-size:1.05rem}
.proof{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}.proof div{padding:24px 24px 26px 0}.proof div+div{padding-left:24px;border-left:1px solid var(--line)}.proof strong{display:block;font-family:var(--display);font-size:clamp(1.35rem,2.3vw,1.9rem);line-height:1.05}.proof span{display:block;margin-top:10px;color:var(--muted);font-size:.91rem;line-height:1.45}
.editorial-list{border-top:1px solid var(--ink)}.editorial-item{display:grid;grid-template-columns:minmax(220px,.72fr) 1.28fr;gap:clamp(20px,4vw,60px);padding:26px 0;border-bottom:1px solid var(--line)}.editorial-item h3{font-size:1.24rem}.editorial-item p{color:var(--muted)}.editorial-item .meta{display:block;margin-top:8px;color:var(--ink-2);font-size:.9rem;font-weight:600}.editorial-item .links{display:flex;flex-wrap:wrap;gap:16px;margin-top:12px}
.situations{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}.situation{padding:26px 26px 30px 0}.situation+.situation{padding-left:26px;border-left:1px solid var(--line)}.situation span{display:block;margin-bottom:18px;color:var(--orange-dark);font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.situation h3{font-size:1.2rem}.situation p{margin-top:10px;color:var(--muted)}
.story-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(26px,4vw,56px)}.story-column{padding-top:18px;border-top:2px solid var(--orange)}.story-column h3{font-size:1.14rem}.story-column p{margin-top:11px;color:var(--muted)}
.work-note{display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(32px,6vw,88px);align-items:start}.work-note h2{font-size:clamp(1.7rem,3.2vw,2.6rem)}.work-note .copy{display:grid;gap:16px;color:var(--muted);font-size:1.04rem}.work-note .copy strong{color:var(--ink)}

.table-wrap{overflow-x:auto;border:1px solid var(--line);background:#fff}table.data{border-collapse:collapse;width:100%;min-width:640px;font-size:.95rem}table.data th,table.data td{text-align:left;vertical-align:top;padding:15px 18px;border-bottom:1px solid var(--line)}table.data th{font-size:11.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--orange-dark);background:var(--soft)}table.data td:first-child{font-family:var(--display);font-weight:600;color:var(--ink)}table.data td{color:var(--muted)}table.data tbody tr:last-child td{border-bottom:0}
.status{display:inline-flex;align-items:center;gap:7px;color:var(--ink-2);font-size:.86rem;font-weight:700;white-space:nowrap}.status::before{content:"";width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:var(--muted)}.status.ok::before{background:var(--ok)}.status.test::before{background:var(--blue)}.status.pending::before{background:var(--warn)}
.architecture{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.arch-node{position:relative;min-width:0;padding:18px;border:1px solid var(--line);border-radius:5px;background:#fff}.arch-node strong{display:block;font-family:var(--display);font-size:1rem}.arch-node span{display:block;margin-top:8px;color:var(--muted);font-size:.87rem}.arch-node:not(:last-child)::after{content:"→";position:absolute;right:-10px;top:50%;z-index:2;transform:translate(50%,-50%);width:24px;height:24px;display:grid;place-items:center;background:var(--soft);color:var(--orange-dark);font-weight:800}
.analysis-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--ink)}.analysis-item{padding:24px 24px 26px 0;border-bottom:1px solid var(--line)}.analysis-item:nth-child(even){padding-left:24px;border-left:1px solid var(--line)}.analysis-item h3{font-size:1.12rem}.analysis-item p{margin-top:8px;color:var(--muted)}
.research-list{counter-reset:research;border-top:1px solid var(--ink)}.research-item{counter-increment:research;display:grid;grid-template-columns:70px minmax(220px,.75fr) 1.25fr;gap:28px;padding:28px 0;border-bottom:1px solid var(--line)}.research-item::before{content:"0" counter(research);font-family:var(--display);font-size:1.25rem;color:var(--orange-dark)}.research-item h3{font-size:1.18rem}.research-item p{color:var(--muted)}
.callout{padding:22px 24px;border-left:3px solid var(--orange);background:var(--soft)}.callout h3{font-size:1.08rem}.callout p{margin-top:8px;color:var(--muted)}
.cta-inner{width:var(--wrap);margin:0 auto;padding:clamp(38px,5vw,58px) 0;display:flex;align-items:center;justify-content:space-between;gap:28px}.cta-inner h2{font-size:clamp(1.5rem,2.8vw,2.2rem)}.cta-inner p{max-width:65ch;margin-top:10px;color:var(--muted)}
.footer{background:#fff;border-top:1px solid var(--line)}.footer-inner{width:var(--wrap);margin:0 auto;padding:48px 0 34px;display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:42px}.footer h2{font-size:.9rem;text-transform:uppercase;letter-spacing:.08em}.footer ul{list-style:none;padding:0;margin:14px 0 0}.footer li{margin:8px 0}.footer a{color:var(--muted)}.footer a:hover{color:var(--orange-dark)}.footer-brand .mark{display:flex;align-items:center;gap:11px}.footer-brand .mark img{border-radius:7px}.footer-brand .mark div{display:flex;flex-direction:column}.footer-brand .mark small{color:var(--muted);font-size:.78rem}.footer-brand p{margin-top:16px;max-width:46ch;color:var(--muted);font-size:.92rem}.footer-bottom{width:var(--wrap);margin:0 auto;padding:18px 0 26px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:.82rem}

@media(max-width:900px){.menu{display:none}.mobile-nav{display:block}.product-bar-inner strong{margin-right:0}.proof{grid-template-columns:repeat(2,1fr)}.proof div:nth-child(3){border-left:0}.architecture{grid-template-columns:1fr}.arch-node:not(:last-child)::after{content:"↓";right:50%;top:auto;bottom:-17px}.analysis-grid{grid-template-columns:1fr}.analysis-item:nth-child(even){padding-left:0;border-left:0}.research-item{grid-template-columns:46px 1fr}.research-item p{grid-column:2}.footer-inner{grid-template-columns:1.4fr 1fr 1fr}.footer-inner>div:last-child{grid-column:2/4}.cta-inner{align-items:flex-start;flex-direction:column}}
@media(max-width:680px){.editorial-item,.work-note{grid-template-columns:1fr}.situations,.story-columns{grid-template-columns:1fr}.situation{padding:22px 0}.situation+.situation{padding-left:0;border-left:0;border-top:1px solid var(--line)}.footer-inner{grid-template-columns:1fr 1fr}.footer-inner>div:first-child,.footer-inner>div:last-child{grid-column:1/-1}.footer-bottom{flex-direction:column}}
@media(max-width:560px){.proof{grid-template-columns:1fr}.proof div+div{padding-left:0;border-left:0;border-top:1px solid var(--line)}.product-bar-inner{gap:14px}.research-item{grid-template-columns:1fr}.research-item p{grid-column:auto}.research-item::before{margin-bottom:-15px}.footer-inner{grid-template-columns:1fr}.footer-inner>div{grid-column:auto!important}.nav{min-height:68px}.brand-name small{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.001ms!important;transition-duration:.001ms!important}}

/* Relatorio publico + QR */
.report-access{display:grid;grid-template-columns:170px minmax(0,1fr);gap:28px;align-items:center;margin-top:24px;padding:24px;border:1px solid var(--line);background:var(--soft);border-radius:6px}
.report-qr{display:block;width:160px;padding:10px;background:#fff;border:1px solid var(--line);border-radius:6px}
.report-qr svg{display:block;width:100%;height:auto}
.report-access h3{font-size:1.28rem}
.report-access p{margin-top:9px;color:var(--muted)}
.report-access .actions{margin-top:16px}
.report-contact{margin-top:14px!important;color:var(--ink-2)!important;font-size:.92rem}
@media(max-width:680px){.report-access{grid-template-columns:1fr}.report-qr{width:160px}}

/* Resultado visual real */
.result-image-section{padding-top:34px}
.result-hero-image{margin:26px 0 0;border:1px solid var(--line);background:#fff;border-radius:6px;overflow:hidden;box-shadow:0 14px 40px rgba(11,27,39,.08)}
.result-hero-image img{display:block;width:100%;height:auto;background:#fff}
.result-hero-image figcaption{padding:16px 18px 18px;color:var(--ink-2);font-size:.94rem;line-height:1.55;border-top:1px solid var(--line)}
.result-hero-image figcaption strong{color:var(--ink)}

/* Contraste garantido (WCAG AA) independente de trl7-theme.css.
   Os seletores são prefixados por `body` para vencer a folha institucional
   (que pinta .cta-band de navy com texto branco) sem depender da ordem de
   carregamento nem de !important. Branco sobre --orange-strong = 5,1:1. */
body .cta-band{color:var(--ink);background:var(--soft)}
body .cta-band .cta-inner h2{color:var(--ink)}
body .cta-band .cta-inner p{color:var(--ink-2)}
body .btn-primary{color:#fff;background:var(--orange-strong);border-color:var(--orange-strong)}
body .btn-primary:hover,body .btn-primary:focus-visible{color:#fff;background:var(--orange-dark);border-color:var(--orange-dark)}
body .btn-dark,body .btn-dark:hover{color:#fff}
body .btn-dark{background:var(--navy);border-color:var(--navy)}
body .btn-outline{color:var(--ink);background:#fff;border-color:var(--line)}
body .btn-outline:hover{color:var(--ink);border-color:var(--ink-2)}

/* Gráficos de resultados reais (PNG/WebP com SVG de origem em assets/results/) */
.result-stack{display:grid;grid-template-columns:1fr;gap:32px;margin-top:32px}
.result-figure{margin:0;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff;box-shadow:0 10px 30px rgba(11,27,39,.06)}
.result-figure picture,.result-figure img{display:block;width:100%;height:auto;background:#fff}
.result-figure figcaption{padding:16px 20px 20px;border-top:1px solid var(--line);color:var(--ink-2);font-size:.95rem;line-height:1.6}
.result-figure figcaption strong{display:block;margin-bottom:4px;color:var(--ink);font-family:var(--display);font-size:1.02rem}
.result-hero{margin-top:26px}
.result-comment{padding:22px 24px;border-left:3px solid var(--orange);background:var(--soft)}
.result-comment h3{font-size:1.12rem}
.result-comment p{margin-top:8px;color:var(--ink-2)}
.report-qr img{display:block;width:100%;height:auto;image-rendering:pixelated}
.report-contact a{color:inherit;text-decoration:underline;text-underline-offset:2px}
@media(max-width:680px){.result-figure figcaption{padding:14px 14px 16px;font-size:.9rem}.result-stack{gap:24px}}
