/* Atelier: grelha editorial, dois azuis, marfim e vermelho com significado. */
:root { --navy:#14284b; --blue:#305fe7; --ivory:#f4f2e9; --ink:#171c24; --muted:#626875; --line:#cbd0d8; --red:#b7293d; --paper:#fffef8; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--ivory); font:14px/1.5 Arial,Helvetica,sans-serif; }
a { color:inherit; text-decoration:none; }
button,input,select { font:inherit; }
button { cursor:pointer; }
button,a,input,select { -webkit-tap-highlight-color:transparent; }
button:disabled { opacity:.5; cursor:not-allowed; }
:focus-visible { outline:3px solid var(--blue); outline-offset:4px; }
h1,h2,h3,p { margin:0; }
h1,h2 { letter-spacing:-1.5px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.skip { position:absolute; top:-60px; left:20px; padding:10px; background:var(--paper); z-index:100; }
.skip:focus { top:10px; }
.masthead { max-width:1440px; margin:auto; display:flex; justify-content:space-between; align-items:center; padding:27px 54px 25px; gap:25px; }
.wordmark { color:var(--navy); font-size:28px; line-height:1; font-weight:800; letter-spacing:-1.3px; }
.wordmark>span { color:var(--blue); }
.wordmark small { display:block; font-size:9px; letter-spacing:6px; margin-top:9px; font-weight:600; }
.masthead-note { margin-left:auto; font:9px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:1.6px; color:var(--muted); }
.refresh { border:1px solid var(--line); background:transparent; padding:11px 14px; font-size:11px; color:var(--navy); }
.refresh span { margin-left:18px; font-size:18px; }
.navigation { display:flex; max-width:1332px; margin:auto; border-top:1px solid var(--ink); border-bottom:1px solid var(--line); padding:0; }
.navigation a { flex:1; padding:17px 20px; font-size:12px; white-space:nowrap; border-right:1px solid var(--line); position:relative; }
.navigation a:last-child { border-right:0; }
.navigation a>span { font:10px ui-monospace,SFMono-Regular,monospace; color:var(--muted); margin-right:18px; }
.navigation a.active { background:var(--navy); color:var(--paper); }
.navigation a.active>span { color:#adc5ff; }
.navigation a.active::after { content:''; position:absolute; right:16px; top:22px; width:5px; height:5px; background:#ef6477; }
.navigation a:hover:not(.active) { background:#e5eafb; }
main { max-width:1440px; margin:auto; padding:34px 54px 50px; min-height:65vh; }
footer { max-width:1332px; border-top:1px solid var(--ink); margin:0 auto; padding:21px 0; display:flex; gap:20px; justify-content:space-between; color:var(--muted); font:9px ui-monospace,SFMono-Regular,monospace; }
.footer-rule { color:var(--blue); }
.eyebrow,.mono { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }
.eyebrow { text-transform:uppercase; color:var(--muted); font-size:10px; letter-spacing:1.3px; display:flex; align-items:center; gap:12px; }
.eyebrow::before { content:''; height:5px; width:5px; background:var(--red); }
.hero { display:grid; grid-template-columns:1.04fr 1fr; border-bottom:1px solid var(--line); }
.hero-copy { padding:32px 40px 35px 0; }
.hero h1 { font:normal 69px/.98 Georgia,'Times New Roman',serif; letter-spacing:-3.8px; margin:25px 0 22px; }
.hero h1 em { color:var(--blue); font-weight:normal; }
.hero-copy>p { font-size:13px; color:var(--muted); max-width:340px; line-height:1.8; }
.hero-actions { margin-top:25px; display:flex; gap:19px; align-items:center; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:25px; padding:13px 17px; background:var(--navy); border:1px solid var(--navy); color:var(--paper); font-size:11px; min-height:42px; }
.button:hover { background:var(--blue); border-color:var(--blue); }
.button.light { background:transparent; border-color:var(--line); color:var(--navy); }
.button.light:hover { border-color:var(--blue); }
.link-button { background:none; border:0; padding:6px 0; color:var(--blue); font-size:12px; }
.hero-tally { font:10px ui-monospace,SFMono-Regular,monospace; color:var(--muted); }
.decision-map { border-left:1px solid var(--line); padding:27px 0 23px 30px; min-width:0; }
.map-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; font-size:11px; }
.map-heading strong { font-weight:600; }
.map-heading span { color:var(--muted); font:9px ui-monospace,SFMono-Regular,monospace; }
.plot { position:relative; height:265px; margin:31px 19px 47px 54px; border-left:1px solid var(--navy); border-bottom:1px solid var(--navy); background:linear-gradient(#14284b0b 1px,transparent 1px),linear-gradient(90deg,#14284b0b 1px,transparent 1px); background-size:25% 25%; }
.plot::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg,transparent 48%,#305fe714 49%,#305fe714 51%,transparent 52%); pointer-events:none; }
.axis-x { position:absolute; right:0; bottom:-38px; font:9px ui-monospace,SFMono-Regular,monospace; color:var(--muted); }
.axis-y { position:absolute; left:-54px; top:20px; writing-mode:vertical-rl; transform:rotate(180deg); font:9px ui-monospace,SFMono-Regular,monospace; color:var(--muted); }
.tick { position:absolute; color:var(--muted); font:8px ui-monospace,SFMono-Regular,monospace; }
.tick.y { left:-34px; transform:translateY(50%); }.tick.x { bottom:-16px; transform:translateX(-50%); }
.map-point { position:absolute; height:14px; width:14px; padding:0; border:2px solid var(--ivory); border-radius:50%; background:var(--blue); transform:translate(-50%,50%); z-index:2; }
.map-point.commercial { border-radius:0; background:var(--navy); }
.map-point.industrial { background:var(--red); border-radius:0; transform:translate(-50%,50%) rotate(45deg); }
.map-point:hover,.map-point:focus-visible { outline:2px solid var(--ink); outline-offset:3px; z-index:5; }
.map-point span { display:none; position:absolute; top:19px; right:0; min-width:175px; padding:9px; background:var(--navy); color:white; text-align:left; font-size:10px; box-shadow:0 4px 12px #14284b22; }
.map-point:hover span,.map-point:focus-visible span { display:block; }
.map-point.industrial span { transform:rotate(-45deg); }
.plot-legend { display:flex; gap:18px; font-size:9px; color:var(--muted); flex-wrap:wrap; }
.plot-legend i { display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--blue); margin-right:6px; }
.plot-legend i.dark { background:var(--navy); border-radius:0; }.plot-legend i.red { background:var(--red); border-radius:0; }
.map-note { margin-top:14px; font-size:10px; color:var(--muted); line-height:1.6; }
.portfolio-band { display:grid; grid-template-columns:1.3fr 1fr 1fr; padding:24px 0; border-bottom:1px solid var(--ink); gap:20px; }
.band-number { font-size:31px; font-weight:600; letter-spacing:-1.4px; line-height:1.1; }
.band-number.blue { color:var(--blue); }.band-label { font-size:10px; color:var(--muted); margin-top:8px; max-width:300px; }
.band-number small { font-size:12px; font-weight:400; letter-spacing:0; }
.section-header { display:flex; align-items:end; justify-content:space-between; gap:20px; padding:30px 0 18px; }
.section-header h2 { font:normal 32px Georgia,serif; letter-spacing:-1.3px; }
.section-header p { color:var(--muted); font-size:11px; margin-top:6px; }
.table-wrap { overflow:auto; position:relative; }
.ledger { width:100%; border-collapse:collapse; text-align:left; }
.ledger th { padding:11px 12px; border-top:1px solid var(--ink); border-bottom:1px solid var(--line); color:var(--muted); font:9px ui-monospace,SFMono-Regular,monospace; letter-spacing:.6px; white-space:nowrap; }
.ledger td { padding:18px 12px; border-bottom:1px solid var(--line); vertical-align:middle; font-size:12px; }
.ledger td:first-child,.ledger th:first-child { padding-left:0; }.ledger tr:hover td { background:#ffffff50; }
.ledger .code { color:var(--blue); font:10px ui-monospace,SFMono-Regular,monospace; }
.ledger .name { font-weight:600; font-size:13px; }.ledger .sub { display:block; font-size:10px; color:var(--muted); margin-top:5px; }
.ledger .num { white-space:nowrap; font-variant-numeric:tabular-nums; }.ledger .saving { color:var(--blue); font-weight:600; }
.arrow-button { background:transparent; border:1px solid var(--line); height:32px; width:32px; font-size:18px; color:var(--navy); }.arrow-button:hover { background:var(--blue); color:white; }
.principle { display:grid; grid-template-columns:45px 1fr auto; align-items:center; gap:20px; margin-top:27px; border-left:3px solid var(--red); padding:17px 20px; background:#e9ecf2; }
.principle-symbol { font:32px Georgia,serif; color:var(--blue); }.principle strong { font-size:12px; }.principle p { color:var(--muted); font-size:11px; margin-top:4px; }
.page-top { padding:17px 0 25px; border-bottom:1px solid var(--ink); display:flex; justify-content:space-between; align-items:end; gap:20px; }
.page-top h1 { font:normal 49px/1.1 Georgia,serif; letter-spacing:-2px; margin-top:15px; }.page-top p { font-size:12px; color:var(--muted); margin-top:12px; max-width:660px; }
.filters { display:flex; align-items:center; gap:12px; margin:24px 0; flex-wrap:wrap; }
input,select { border:1px solid var(--line); background:var(--paper); color:var(--ink); padding:11px 13px; font-size:12px; min-height:40px; max-width:100%; }
.filters input { flex:1; min-width:190px; }.count { margin-left:auto; font:10px ui-monospace,SFMono-Regular,monospace; color:var(--muted); }
.project-ribbon { display:flex; gap:26px; padding:20px 0; align-items:center; flex-wrap:wrap; border-bottom:1px solid var(--line); }
.project-ribbon label { font:10px ui-monospace,SFMono-Regular,monospace; }.project-ribbon select { min-width:220px; }
.ribbon-info { margin-left:auto; display:flex; gap:30px; font-size:12px; }.ribbon-info small { color:var(--muted); display:block; font-size:9px; margin-bottom:4px; }
.atelier { display:grid; grid-template-columns:285px minmax(0,1fr); gap:37px; padding-top:30px; }
.scenario-stack { border-top:1px solid var(--ink); }.scenario-option { display:block; width:100%; text-align:left; background:transparent; border:0; border-bottom:1px solid var(--line); padding:20px 15px; color:var(--ink); }
.scenario-option.selected { background:var(--navy); color:var(--paper); }.scenario-option:hover:not(.selected) { background:#e4eafb; }
.scenario-option .ordinal { font:10px ui-monospace,SFMono-Regular,monospace; color:var(--blue); display:block; margin-bottom:14px; }.scenario-option.selected .ordinal { color:#a7bfff; }
.scenario-option h3 { font:normal 24px/1.12 Georgia,serif; letter-spacing:-.6px; margin-bottom:15px; }
.scenario-option .option-value { font-size:23px; font-weight:600; letter-spacing:-.5px; }.scenario-option small { display:block; margin-top:3px; font-size:10px; opacity:.85; }
.scenario-option.rejected .ordinal { color:var(--red); }.scenario-option.selected.rejected .ordinal { color:#ff94a3; }
.stack-note { margin-top:18px; font-size:10px; line-height:1.8; color:var(--muted); }
.decision-heading { display:flex; align-items:start; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); padding-bottom:22px; }
.decision-heading h2 { font:normal 37px/1.1 Georgia,serif; letter-spacing:-1.5px; margin-top:10px; }
.status { font:9px ui-monospace,SFMono-Regular,monospace; letter-spacing:1px; color:var(--blue); text-transform:uppercase; }.status.bad { color:var(--red); }.decision-heading p { font-size:11px; color:var(--muted); margin-top:12px; max-width:530px; }
.net-value { text-align:right; white-space:nowrap; font-size:34px; letter-spacing:-1.6px; color:var(--blue); }.net-value small { display:block; font-size:10px; letter-spacing:0; color:var(--muted); }
.budget-pair { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 0; }.budget-pair small { display:block; font:9px ui-monospace,SFMono-Regular,monospace; color:var(--muted); margin-bottom:7px; }.budget-pair strong { font-size:22px; font-weight:500; letter-spacing:-.8px; }.budget-pair .end strong { color:var(--blue); }.budget-pair .connector { color:var(--muted); font-size:24px; }.budget-pair .end { text-align:right; }
.waterfall { border:1px solid var(--line); padding:18px 22px; background:#fffef850; }
.waterfall h3 { font:10px ui-monospace,SFMono-Regular,monospace; font-weight:normal; letter-spacing:.8px; margin-bottom:16px; }.water-row { display:grid; grid-template-columns:130px 1fr 95px; gap:13px; align-items:center; margin:13px 0; font-size:10px; }.water-row:last-child { border-top:1px solid var(--line); padding-top:13px; font-weight:600; }
.water-track { position:relative; height:17px; background:linear-gradient(90deg,transparent calc(50% - .5px),#9ba5b5 calc(50% - .5px),#9ba5b5 calc(50% + .5px),transparent calc(50% + .5px)); }.water-bar { height:8px; position:absolute; top:4px; background:var(--blue); }.water-bar.plus { background:var(--red); }.water-value { text-align:right; font-variant-numeric:tabular-nums; }.water-foot { font-size:9px; color:var(--muted); margin-top:14px; }
.resource-section { margin-top:26px; }.resource-section h3 { font:normal 24px Georgia,serif; letter-spacing:-.5px; margin-bottom:15px; }.resource-line { display:grid; grid-template-columns:140px 1fr 90px; align-items:center; gap:14px; padding:15px 0; border-bottom:1px solid var(--line); font-size:11px; }.resource-line .delta { text-align:right; color:var(--blue); font-weight:600; }.dumbbell { height:27px; position:relative; margin:0 7px; }.dumbbell::before { content:''; position:absolute; left:0; right:0; top:13px; height:1px; background:var(--line); }.dumbbell .span { position:absolute; top:11px; height:4px; background:var(--blue); }.dumbbell i { position:absolute; top:8px; height:10px; width:10px; border-radius:50%; transform:translateX(-50%); border:2px solid var(--blue); background:var(--ivory); }.dumbbell i.after { background:var(--blue); }.resource-labels { display:flex; justify-content:space-between; font-size:9px; color:var(--muted); }.chart-caption { font-size:9px; color:var(--muted); margin-top:13px; }
.history { margin-top:35px; border-top:1px solid var(--ink); padding:16px 0; }.history summary { cursor:pointer; font-size:12px; }.history p { font-size:11px; margin:14px 0; color:var(--muted); }
.source-columns { display:grid; grid-template-columns:1fr 1fr; gap:40px; margin:27px 0; }.source-columns h2 { font:normal 31px Georgia,serif; letter-spacing:-1px; margin:13px 0; }.source-columns p { font-size:12px; color:var(--muted); line-height:1.8; }.source-columns article { border-left:2px solid var(--blue); padding-left:20px; }.source-columns article:last-child { border-color:var(--red); }
.report-tools { display:flex; gap:12px; padding:22px 0; flex-wrap:wrap; }.report-tools .button { margin-left:auto; }.report-sheet { max-width:900px; margin:10px auto 0; background:var(--paper); border-top:5px solid var(--navy); padding:42px 50px; box-shadow:0 10px 40px #14284b08; }.report-head { display:flex; justify-content:space-between; align-items:start; gap:20px; padding-bottom:25px; border-bottom:1px solid var(--ink); }.report-meta { font:9px/1.8 ui-monospace,SFMono-Regular,monospace; text-align:right; color:var(--muted); }.report-sheet h2 { font:normal 43px/1.1 Georgia,serif; margin:25px 0 12px; letter-spacing:-1.6px; }.report-sheet p { font-size:12px; line-height:1.8; color:var(--muted); }.report-section { margin-top:25px; }.report-section h3 { font-size:13px; margin-bottom:12px; }.report-section li { font-size:11px; color:var(--muted); line-height:1.8; }.report-stamp { border:1px solid var(--blue); color:var(--blue); padding:10px; margin-top:18px; font-size:11px; }.report-stamp.bad { border-color:var(--red); color:var(--red); }.report-foot { border-top:1px solid var(--line); margin-top:25px; padding-top:17px; font:9px/1.8 ui-monospace,SFMono-Regular,monospace; color:var(--muted); overflow-wrap:anywhere; }
.loading,.empty { padding:70px 20px; text-align:center; }.empty h1 { font:36px Georgia,serif; margin-bottom:17px; }.empty p { color:var(--muted); max-width:600px; margin:0 auto 20px; }
dialog { width:min(800px,92vw); max-height:88vh; padding:38px; color:var(--ink); background:var(--ivory); border:1px solid var(--navy); }dialog::backdrop { background:#101e3a80; }.close { position:absolute; right:15px; top:10px; background:none; border:0; font-size:28px; }.dossier-title { font:36px Georgia,serif; margin:15px 0; }.dossier-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; border-block:1px solid var(--line); padding:17px 0; margin:20px 0; }.dossier-grid small { display:block; font-size:10px; color:var(--muted); }.dossier-text { font-size:12px; line-height:1.8; }.dossier-text h3 { margin-top:21px; }.toast { position:fixed; bottom:25px; left:50%; transform:translateX(-50%); background:var(--navy); color:white; padding:12px 20px; opacity:0; pointer-events:none; z-index:30; }.toast.show { opacity:1; }
@media(max-width:1100px) { .masthead { padding-inline:30px; }.navigation { margin-inline:30px; }.navigation a { padding:16px 12px; }.navigation a>span { margin-right:10px; }.navigation a.active::after { display:none; }main { padding-inline:30px; }footer { margin-inline:30px; }.hero h1 { font-size:60px; }.atelier { grid-template-columns:235px minmax(0,1fr); gap:25px; }.water-row { grid-template-columns:110px 1fr 85px; }.resource-line { grid-template-columns:115px 1fr 65px; }.net-value { font-size:29px; } }
@media(max-width:760px) { .masthead { padding:24px 20px; }.wordmark { font-size:25px; }.masthead-note { display:none; }.refresh { font-size:10px; }.navigation { margin:0 20px; overflow:auto; }.navigation a { flex:none; padding:15px 17px; }.navigation a>span { margin-right:10px; }main { padding:23px 20px 35px; }.hero { grid-template-columns:1fr; }.hero-copy { padding:18px 0 28px; }.hero h1 { font-size:52px; }.hero-copy>p { max-width:400px; }.decision-map { border-left:0; border-top:1px solid var(--line); padding:23px 0; }.plot { height:235px; }.portfolio-band { grid-template-columns:1fr 1fr; }.portfolio-band>div:first-child { grid-column:1/-1; }.band-number { font-size:29px; }.section-header { align-items:start; }.section-header h2 { font-size:27px; }.section-header .link-button { white-space:nowrap; }.ledger { min-width:650px; }.principle { grid-template-columns:28px 1fr; gap:12px; padding:15px; }.principle>.button { grid-column:2; justify-self:start; }.page-top { flex-direction:column; align-items:start; }.page-top h1 { font-size:40px; }.ribbon-info { margin-left:0; gap:25px; }.project-ribbon select { width:100%; }.atelier { grid-template-columns:1fr; gap:25px; }.scenario-stack { display:grid; grid-template-columns:1fr; }.scenario-option { padding:17px; }.scenario-option h3 { font-size:24px; margin-bottom:8px; }.scenario-option .ordinal { margin-bottom:8px; }.scenario-option .option-value { font-size:21px; }.stack-note { margin-top:10px; }.decision-heading { flex-direction:column; }.net-value { text-align:left; }.budget-pair strong { font-size:19px; }.waterfall { padding:15px 12px; }.water-row { grid-template-columns:90px 1fr 80px; gap:8px; font-size:9px; }.resource-line { grid-template-columns:95px 1fr 65px; gap:9px; font-size:10px; }.source-columns { grid-template-columns:1fr; gap:25px; }.report-tools>* { width:100%; }.report-sheet { padding:25px 20px; }.report-head { flex-direction:column; }.report-meta { text-align:left; }.report-sheet h2 { font-size:32px; }.report-sheet .ledger { min-width:0; }.report-sheet .ledger td,.report-sheet .ledger th { padding:12px 5px; font-size:10px; }.dossier-grid { grid-template-columns:1fr 1fr; }dialog { padding:30px 22px; }footer { margin-inline:20px; flex-direction:column; gap:10px; } }
@media(prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; } }
@media print { body { background:white; }.masthead,.navigation,footer,.page-top,.report-tools,.skip,.toast { display:none!important; }main { padding:0; }.report-sheet { padding:12mm; box-shadow:none; max-width:none; border:0; }.report-section { break-inside:avoid; }.report-sheet .ledger { min-width:0; }dialog { display:none; }@page { size:A4; margin:8mm; } }
