/* Vista Alegre V32.6 — public prelaunch experience + shared CAD viewer. */
.va-page,.va{
  --va-ink:#15382f;
  --va-text:#263b34;
  --va-muted:#50645a;
  --va-bg:#f4f7f3;
  --va-panel:#ffffff;
  --va-soft:#edf2ed;
  --va-line:#d9e2da;
  --va-accent:#1f5c4b;
  --va-accent-2:#2f7862;
  --va-gold:#80601f;
  --va-warn:#7a570c;
  --va-warn-bg:#fff4d8;
  --va-map:#e7eee7;
  --va-shadow:0 18px 50px rgba(27,63,49,.09);
  --va-shadow-sm:0 10px 26px rgba(27,63,49,.07);
}
.va-page[data-va-theme=dark],html[data-va-theme=dark] .va,html[data-tema=escuro] .va{
  --va-ink:#e7f5ec;
  --va-text:#eef6f0;
  --va-muted:#abc1b5;
  --va-bg:#101d18;
  --va-panel:#172820;
  --va-soft:#1d3228;
  --va-line:#344b40;
  --va-accent:#86c8a8;
  --va-accent-2:#a0d8bc;
  --va-gold:#e2c178;
  --va-warn:#f1cf81;
  --va-warn-bg:#3d341d;
  --va-map:#1d3428;
  --va-shadow:0 18px 50px rgba(0,0,0,.28);
  --va-shadow-sm:0 10px 26px rgba(0,0,0,.22);
}
.va-page *,.va *{box-sizing:border-box}
html:has(body.va-page){scroll-behavior:smooth}
body.va-page{margin:0;background:var(--va-bg);color:var(--va-text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif;line-height:1.6}
.va-page a,.va-page button,.va-page input,.va-page select,.va-page textarea{font:inherit}
.va-page a,.va-page button{touch-action:manipulation}
.va-page button{cursor:pointer}
.va-page [hidden]{display:none!important}
.va-page :focus-visible{outline:3px solid color-mix(in srgb,var(--va-gold) 88%,white);outline-offset:3px}
.va-skip{position:fixed;left:16px;top:-100px;z-index:1000;padding:10px 14px;border-radius:10px;background:#fff;color:#173e32;text-decoration:none}.va-skip:focus{top:12px}
.va{max-width:1320px;margin:auto;padding:0 36px}
.va h1,.va h2,.va h3,.va h4{margin:0;color:var(--va-ink);line-height:1.08;letter-spacing:-.04em}
.va h1{font-size:clamp(3.15rem,6.3vw,6.2rem);font-weight:650}
.va h2{font-size:clamp(2rem,3.6vw,3.5rem);font-weight:650}
.va h3{font-size:1.35rem}
.va p{color:var(--va-muted);overflow-wrap:anywhere}
.va-kicker{display:block;margin-bottom:10px;color:var(--va-gold);font-size:11px;font-weight:800;letter-spacing:.15em}
.va-top{
  position:sticky;top:0;z-index:90;
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;
  max-width:1320px;margin:auto;padding:13px 36px;
  border-bottom:1px solid color-mix(in srgb,var(--va-line) 86%,transparent);
  background:color-mix(in srgb,var(--va-bg) 88%,transparent);
  backdrop-filter:blur(18px);
}
.va-brand{display:flex;align-items:center;gap:10px;color:var(--va-ink);text-decoration:none}
.va-brand-mark{display:grid;width:38px;height:38px;place-items:center;border-radius:11px;background:var(--va-ink);color:var(--va-bg);font-weight:800}
.va-brand>span:last-child{display:grid;line-height:1.1}.va-brand b{font-size:13px}.va-brand small{margin-top:3px;color:var(--va-muted);font-size:10px}
.va-top nav{display:flex;justify-content:center;gap:5px}.va-top nav a,.va-top button{min-height:44px;border-radius:11px;padding:10px 13px;color:var(--va-text);font-size:12px;text-decoration:none}
.va-top nav a{display:flex;align-items:center}.va-top nav a:hover{background:var(--va-soft)}
.va-top button{border:1px solid var(--va-line);background:var(--va-panel)}
.va-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.9fr);align-items:center;gap:64px;min-height:720px;padding:72px 0 62px}
.va-copy{min-width:0}.va-status-row{display:flex;align-items:center;gap:12px;margin-bottom:26px;color:var(--va-muted);font-size:12px}
.va-status-pill{padding:7px 10px;border-radius:999px;background:var(--va-soft);color:var(--va-accent);font-size:10px;font-weight:800;letter-spacing:.12em}
.va-logo{display:block;width:190px;height:92px;margin:0 0 18px;object-fit:contain;object-position:left center}
.va-copy>p{max-width:670px;margin:24px 0 0;font-size:18px;line-height:1.72}
.va-hero-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:30px}
.va-primary,.va-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 18px;border-radius:13px;font-weight:700;font-size:13px;text-decoration:none}
.va-primary{background:var(--va-ink);color:var(--va-bg)!important;border:1px solid var(--va-ink)}
.va-primary:hover{transform:translateY(-1px);box-shadow:var(--va-shadow-sm)}
.va-secondary{border:1px solid var(--va-line);background:var(--va-panel);color:var(--va-text)!important}
.va-hero-note{font-size:11px!important;letter-spacing:.01em}
.va-hero-visual{min-width:0}
.va-hero-card{overflow:hidden;border:1px solid var(--va-line);border-radius:28px;background:var(--va-panel);box-shadow:var(--va-shadow)}
.va-hero-card-head,.va-hero-card-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 18px}
.va-hero-card-head{border-bottom:1px solid var(--va-line)}.va-hero-card-head span{font-size:10px;font-weight:800;letter-spacing:.13em;color:var(--va-muted)}.va-hero-card-head b{font-size:12px;color:var(--va-ink)}
.va-hero-plan{height:500px;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:16px;background:var(--va-map)}
.va-hero-plan svg{display:block;width:100%;height:100%}
.va-hero-card-foot{border-top:1px solid var(--va-line);font-size:11px;color:var(--va-muted)}
.va-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 24px}
.va-facts article{display:grid;gap:2px;min-width:0;padding:20px;border:1px solid var(--va-line);border-radius:17px;background:var(--va-panel)}
.va-facts span,.va-facts small{color:var(--va-muted);font-size:10px}.va-facts strong{font-size:24px;line-height:1.2;color:var(--va-ink);font-variant-numeric:tabular-nums}
.va-notice{display:grid;grid-template-columns:auto 1fr;gap:14px;margin:0 0 24px;padding:18px 20px;border:1px solid color-mix(in srgb,var(--va-gold) 35%,var(--va-line));border-radius:17px;background:var(--va-warn-bg);color:var(--va-warn)}
.va-notice-icon{display:grid;width:30px;height:30px;place-items:center;border:1px solid currentColor;border-radius:50%;font-weight:800}
.va-notice strong{font-size:13px}.va-notice p{margin:4px 0 0;color:inherit;font-size:12px;line-height:1.6}
.va-section{padding:82px 0;border-bottom:1px solid var(--va-line)}
.va-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:34px}
.va-section-head>div{max-width:780px}.va-section-head>p{max-width:440px;margin:0;font-size:13px;line-height:1.7}
.va-roadmap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.va-roadmap article{position:relative;display:flex;gap:14px;min-width:0;padding:20px;border:1px solid var(--va-line);border-radius:17px;background:var(--va-panel)}
.va-roadmap article>b{display:grid;flex:0 0 32px;width:32px;height:32px;place-items:center;border-radius:50%;background:var(--va-soft);color:var(--va-muted);font-size:10px}
.va-roadmap article div{display:grid;gap:5px}.va-roadmap strong{font-size:13px;color:var(--va-ink)}.va-roadmap span{font-size:11px;line-height:1.55;color:var(--va-muted)}
.va-roadmap article.done{border-color:color-mix(in srgb,var(--va-accent) 30%,var(--va-line))}.va-roadmap article.done>b{background:var(--va-accent);color:var(--va-bg)}
.va-roadmap article.current{box-shadow:0 0 0 2px color-mix(in srgb,var(--va-gold) 24%,transparent);border-color:var(--va-gold)}.va-roadmap article.current>b{background:var(--va-gold);color:#1d1b14}
.va-chip{display:inline-flex;align-items:center;min-height:35px;padding:7px 11px;border-radius:999px;background:var(--va-warn-bg);color:var(--va-warn);font-size:10px;font-weight:800;letter-spacing:.07em;white-space:nowrap}

/* Viewer */
.va-viewer-shell{border:1px solid var(--va-line);border-radius:22px;background:var(--va-panel);overflow:hidden;box-shadow:var(--va-shadow-sm)}
.va-viewer-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;padding:24px 24px 18px}
.va-viewer-head h3{font-size:28px}.va-viewer-head p{max-width:610px;margin:7px 0 0;font-size:12px;line-height:1.6}
.va-viewer-stats{display:grid;text-align:right}.va-viewer-stats strong{font-size:23px;color:var(--va-ink)}.va-viewer-stats span{font-size:10px;color:var(--va-muted)}
.va-toolbar-card{padding:14px 24px;border-top:1px solid var(--va-line);border-bottom:1px solid var(--va-line);background:var(--va-soft)}
.va-toolbar{display:grid;grid-template-columns:180px minmax(220px,1fr) auto auto;align-items:end;gap:10px}
.va-toolbar label{display:grid;gap:5px;color:var(--va-text);font-size:10px;font-weight:750;letter-spacing:.04em}.va-toolbar label span{color:var(--va-muted)}
.va-toolbar select,.va-toolbar input,.va button:not(.va-primary){min-height:44px;border:1px solid var(--va-line);border-radius:10px;background:var(--va-panel);color:var(--va-text);padding:8px 11px}
.va-toolbar select,.va-toolbar input{width:100%;font-size:13px}.va-search{min-width:0}
.va-zoom-group{display:flex;align-items:center;gap:5px}.va-zoom-group button{min-width:44px;padding:8px 10px}.va-zoom-group output{min-width:50px;text-align:center;color:var(--va-muted);font-size:11px}
.va-clear{font-size:11px;white-space:nowrap}
.va-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:11px 24px;border-bottom:1px solid var(--va-line);font-size:10px;color:var(--va-muted)}
.va-legend span{display:flex;align-items:center;gap:5px}.va-legend i{display:inline-block;width:9px;height:9px;border-radius:2px;background:#659276}.va-legend .pending{background:#d6a958}.va-legend .green{background:#bdd5ad}.va-legend .institutional{background:#d4c5ac}
.va-map-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.72fr);gap:0}
.va-stage{position:relative;height:720px;overflow:hidden;background:var(--va-map);border-right:1px solid var(--va-line);touch-action:pan-y}
.va-stage svg{display:block;width:100%;height:100%;user-select:none}.va-stage.is-zoomed{touch-action:none}
.va-stage path[data-va-key]{fill:#659276;stroke:#fff;stroke-width:.36;cursor:pointer;transition:fill .1s,stroke-width .1s}.va-stage path[data-va-key][data-pending=true]{fill:#d6a958;stroke:#654800}
.va-stage path[data-va-key].is-selected,.va-stage path[data-va-key]:focus{fill:#255c48;stroke:#102b20;stroke-width:1.5;outline:none}
.va-stage .va-labels{pointer-events:none;fill:#17352a;font:700 3px Arial}.va-stage:not(.is-zoomed) .va-labels{display:none}
.va-map-badge{position:absolute;left:14px;bottom:14px;display:grid;gap:2px;padding:9px 11px;border:1px solid var(--va-line);border-radius:10px;background:color-mix(in srgb,var(--va-panel) 92%,transparent);backdrop-filter:blur(8px);pointer-events:none}
.va-map-badge strong{font-size:10px;color:var(--va-ink)}.va-map-badge span{font-size:9px;color:var(--va-muted)}
.va-info{position:sticky;top:80px;align-self:start;min-width:0;padding:24px;background:var(--va-panel)}
.va-info h3{font-size:30px;margin:0 0 9px}.va-info .va-chip{margin-bottom:12px}
.va-info dl{margin:14px 0}.va-info dl div{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--va-line)}.va-info dt{font-size:10px;color:var(--va-muted)}.va-info dd{margin:0;max-width:55%;text-align:right;font-size:11px;font-weight:750;color:var(--va-text);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.va-info p{font-size:10px;line-height:1.6}
.va-document-note{font-weight:700;color:var(--va-warn)!important}
.va-technical{margin:0;border-top:1px solid var(--va-line);background:var(--va-panel)}
.va-technical>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:68px;padding:14px 24px;cursor:pointer;list-style:none}.va-technical>summary::-webkit-details-marker{display:none}
.va-technical>summary>span:first-child{display:grid;gap:2px}.va-technical>summary b{font-size:12px;color:var(--va-ink)}.va-technical>summary small{font-size:10px;color:var(--va-muted)}.va-technical-count{font-size:10px;color:var(--va-muted)}
.va-table-wrap{overflow:auto;border-top:1px solid var(--va-line)}.va table{width:100%;border-collapse:collapse;font-size:11px}.va th,.va td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--va-line);white-space:nowrap}.va th{color:var(--va-ink);font-size:10px}.va td.num{text-align:right;font-variant-numeric:tabular-nums}.va-status{padding:12px 14px;text-align:left;color:var(--va-muted)}
.va-pagination{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:12px 14px;font-size:10px;color:var(--va-muted)}.va-pagination button{min-height:40px}

/* Validation / closing */
.va-validation-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.va-validation article{padding:28px;border:1px solid var(--va-line);border-radius:20px;background:var(--va-panel)}
.va-validation article>span{font-size:10px;font-weight:800;letter-spacing:.12em;color:var(--va-accent)}.va-validation article.pending>span{color:var(--va-gold)}
.va-validation h3{margin:9px 0 16px;font-size:24px}.va-validation ul{margin:0;padding-left:20px;color:var(--va-muted)}.va-validation li{margin:8px 0;font-size:12px;line-height:1.6}
.va-contact{display:flex;align-items:flex-end;justify-content:space-between;gap:40px}.va-contact>div{max-width:820px}.va-contact p{max-width:690px;margin:16px 0 0;font-size:13px}.va-contact .va-primary{flex:none}
.va-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1320px;margin:auto;padding:28px 36px;color:var(--va-muted);font-size:10px}.va-footer>div{display:grid}.va-footer strong{color:var(--va-ink);font-size:12px}.va-footer a{color:inherit;text-decoration:none}

/* Admin/shared */
.va-admin{padding:24px}.va-admin .va-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:30px}
.va-param-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}.va-panel{margin:20px 0;padding:24px;background:var(--va-panel);border:1px solid var(--va-line);border-radius:16px}.va-panel label{display:grid;gap:6px;font-size:12px}.va-panel input,.va-panel select{min-height:44px;padding:8px 10px;border:1px solid var(--va-line);border-radius:10px;background:var(--va-panel);color:var(--va-text)}
.va-study-sum{font-size:28px;color:var(--va-ink);font-variant-numeric:tabular-nums}.va-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.va-status{min-height:26px}.va-spinner{padding:40px;color:var(--va-muted)}.va-error{border-left:4px solid #b74332;padding:20px;background:var(--va-panel);color:var(--va-text)}

@media(max-width:1050px){
  .va-hero{grid-template-columns:1fr .85fr;gap:36px;min-height:640px}
  .va-hero-plan{height:430px}
  .va-roadmap{grid-template-columns:1fr 1fr}
  .va-toolbar{grid-template-columns:160px minmax(180px,1fr) auto}.va-clear{grid-column:1/-1;justify-self:start}
  .va-map-grid{grid-template-columns:minmax(0,1fr)}.va-stage{height:620px;border-right:0;border-bottom:1px solid var(--va-line)}.va-info{position:static}
}
@media(max-width:760px){
  .va{padding:0 18px}.va-top{grid-template-columns:1fr auto;padding:10px 18px}.va-top nav{display:none}.va-brand-mark{width:34px;height:34px}
  .va-hero{grid-template-columns:1fr;gap:30px;min-height:0;padding:42px 0}.va-logo{width:160px;height:78px}.va-copy>p{font-size:16px}.va-hero-plan{height:390px}
  .va-facts{grid-template-columns:1fr 1fr}.va-facts article{padding:16px}.va-facts strong{font-size:21px}
  .va-section{padding:58px 0}.va-section-head{align-items:flex-start;flex-direction:column;gap:12px;margin-bottom:24px}.va-roadmap{grid-template-columns:1fr}
  .va-viewer-head{align-items:flex-start;flex-direction:column;padding:20px}.va-viewer-stats{text-align:left}.va-toolbar-card{padding:12px 20px}.va-toolbar{grid-template-columns:1fr 1fr}.va-search{grid-column:1/-1}.va-zoom-group{grid-column:1/-1}.va-clear{grid-column:1/-1}
  .va-legend{padding:10px 20px}.va-stage{height:540px}.va-info{padding:20px}.va-technical>summary{padding:12px 20px}
  .va-validation-grid{grid-template-columns:1fr}.va-contact{align-items:flex-start;flex-direction:column}.va-footer{align-items:flex-start;flex-direction:column;padding:24px 18px}
  .va-param-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
  .va h1{font-size:3rem}.va h2{font-size:2.15rem}.va-status-row{align-items:flex-start;flex-direction:column;gap:7px}
  .va-hero-actions{display:grid;grid-template-columns:1fr}.va-primary,.va-secondary{width:100%}
  .va-hero-plan{height:320px}.va-facts{grid-template-columns:1fr}.va-notice{grid-template-columns:1fr}.va-notice-icon{width:28px;height:28px}
  .va-toolbar{grid-template-columns:1fr}.va-stage{height:470px}.va-zoom-group{flex-wrap:wrap}
  .va-technical>summary{align-items:flex-start;flex-direction:column;gap:6px}.va-param-grid{grid-template-columns:1fr}.va-admin{padding:10px}.va-panel{padding:18px}
}
@media(prefers-reduced-motion:reduce){html:has(body.va-page){scroll-behavior:auto}.va-page *{transition:none!important;animation:none!important}}
@media print{
  .va-top,.va-footer,.va-toolbar-card,.va-technical,.va-hero-actions{display:none!important}
  body.va-page,.va{--va-ink:#172d22;--va-text:#172d22;--va-muted:#39473e;--va-panel:white;--va-bg:white;--va-soft:#fff;--va-line:#777;background:white;color:#172d22}
  .va{max-width:none;padding:0}.va-hero{display:block;min-height:0;padding:0}.va-hero-visual{display:none}.va-section{padding:6mm 0}.va-map-grid{display:block}.va-stage{height:170mm;border:1px solid #777}.va-info{break-inside:avoid}.va-validation-grid{display:block}.va-validation article{margin-bottom:5mm;break-inside:avoid}@page{size:A4;margin:15mm}
}

/* Preserve component typography, gestures and motion preferences in the shared app. */
.va{color:var(--va-text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;line-height:1.6}
.va input,.va select,.va textarea{max-width:100%;min-width:0;font-size:16px}
.va-stage svg{touch-action:none}
.va button:disabled{opacity:.5;cursor:not-allowed}
.va-technical>summary:focus-visible{outline:3px solid var(--va-accent);outline-offset:-3px}
@media(prefers-reduced-motion:reduce){.va *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}


/* UI33.3: keep the desktop introduction and primary actions in the first screen. */
@media screen and (min-width:1000px){
 .va-page .va{max-width:1392px;padding-inline:40px}
 .va-page .va-top{max-width:1392px;padding-inline:40px}
 .va-page .va-hero{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:48px;min-height:0;padding:40px 0}
 .va-page .va h1{font-size:clamp(46px,4.25vw,64px);line-height:1.06;max-width:640px;text-wrap:balance}
 .va-page .va-status-row{margin-bottom:14px}
 .va-page .va-logo{width:150px;height:70px;margin-bottom:14px}
 .va-page .va-copy>p{font-size:16px;line-height:1.65;margin-top:18px;max-width:600px}
 .va-page .va-hero-actions{margin-top:22px}
 .va-page .va-hero-plan{height:400px}
 .va-page .va-hero-card{border-radius:20px}
 .va-page .va-section{padding:56px 0}
 .va-page .va h2{font-size:clamp(30px,3vw,42px)}
}

/* UI36: the standalone study follows the same restrained typography and spacing. */
@media screen {
 .va-page .va h1{font-size:clamp(38px,4.2vw,58px);line-height:1.1;letter-spacing:-.04em;text-wrap:balance}
 .va-page .va h2{font-size:clamp(30px,3vw,40px);line-height:1.15;text-wrap:balance}
 .va-page .va-copy>p{font-size:16px;line-height:1.7}
 .va-page .va-section{padding:56px 0}
 .va-page .va-hero-card{border-radius:18px;box-shadow:none}
 .va-page .va-facts article{border-radius:12px}
 .va-page .va-section-head{gap:28px;margin-bottom:28px}
 .va-page .va-section-head>p{font-size:14px;line-height:1.7}
 .va-page .va-contact p{font-size:15px;line-height:1.65}
 .va-page .va-footer{font-size:12px;line-height:1.6}
}
@media screen and (min-width:761px) and (max-width:999px){
 .va-page .va{padding-inline:28px}
 .va-page .va-top{grid-template-columns:minmax(0,1fr) auto;gap:8px 20px;padding-inline:28px}
 .va-page .va-top nav{grid-column:1/-1;grid-row:2;justify-content:flex-start;flex-wrap:wrap}
 .va-page .va-hero{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;min-height:0;padding:32px 0}
 .va-page .va h1{font-size:40px}
 .va-page .va-logo{width:150px;height:70px;margin-bottom:14px}
 .va-page .va-status-row{flex-wrap:wrap;gap:8px;margin-bottom:16px}
 .va-page .va-hero-actions{margin-top:22px}
 .va-page .va-hero-plan{height:360px}
 .va-page .va-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media screen and (max-width:760px){
 .va-page .va-hero{padding:28px 0;gap:24px}
 .va-page .va h1{font-size:clamp(34px,8vw,42px)}
 .va-page .va h2{font-size:30px}
 .va-page .va-section{padding:40px 0}
 .va-page .va-section-head{gap:14px;margin-bottom:24px}
 .va-page .va-status-row{margin-bottom:18px}
 .va-page .va-copy>p{margin-top:18px}
 .va-page .va-hero-actions{margin-top:22px}
 .va-page .va-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .va-page .va-facts article{padding:14px;overflow-wrap:anywhere}
 .va-page .va-facts strong{font-size:22px}
}
