/* Órbita · by Universe — visual base (identidade Universe; cada projeto troca as cores da marca) */
:root{
  --p:#f26b21;            /* cor principal do projeto */
  --bg:#0b0b0d;           /* fundo escuro */
  --panel:#141417;
  --panel2:#1c1c20;
  --line:#ffffff1a;
  --fg:#f2f0ec;
  --muted:#8e8b93;
  --ok:#2fbf71;--warn:#e7b02e;--bad:#e24c4c;
  --head:'Poppins',system-ui,sans-serif;--body:'Lato',system-ui,sans-serif;
  --r:10px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:var(--body);background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;overflow:hidden}
a{color:inherit;text-decoration:none}
img,video{display:block;max-width:100%}
button{font:inherit;color:inherit;cursor:pointer}
input,select,textarea{font:inherit;color:var(--fg)}
h1,h2,h3,.head{font-family:var(--head);letter-spacing:-.01em}
.tag{font-family:var(--head);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.tag.p{color:var(--p)}
.muted{color:var(--muted)}
.hide{display:none!important}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#ffffff22;border-radius:8px}

/* botões */
.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--panel2);border-radius:99px;padding:10px 18px;font-family:var(--head);font-size:13px;font-weight:600;transition:background .2s,border-color .2s,color .2s}
.btn:hover{border-color:#ffffff40;background:#26262b}
.btn.pri{background:var(--p);border-color:var(--p);color:#fff}
.btn.pri:hover{filter:brightness(1.08)}
.btn.ghost{background:transparent}
.btn.sm{padding:7px 12px;font-size:12px}
.btn.danger:hover{background:var(--bad);border-color:var(--bad)}
.btn svg{width:16px;height:16px;flex:0 0 auto}
.iconbtn{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#0009;display:grid;place-items:center;backdrop-filter:blur(8px);transition:background .2s}
.iconbtn:hover{background:var(--p);border-color:var(--p)}
.iconbtn svg{width:18px;height:18px}

#toast{position:fixed;left:50%;bottom:90px;transform:translate(-50%,20px);background:#fff;color:#111;font-family:var(--head);font-size:13px;font-weight:600;padding:12px 18px;border-radius:99px;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;z-index:999}
#toast.on{opacity:1;transform:translate(-50%,0)}

/* ===================== GERENCIADOR DE PROJETOS ===================== */
.home{height:100%;overflow:auto;padding:40px 48px 80px}
.home-top{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:46px}
.brand{display:flex;align-items:center;gap:14px}
.brand .mark{width:38px;height:38px;border-radius:50%;border:2px solid var(--p);position:relative}
.brand .mark::after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:var(--p);top:-5px;left:50%;margin-left:-5px;animation:orbit 6s linear infinite;transform-origin:5px 24px}
@keyframes orbit{to{transform:rotate(360deg)}}
.brand b{font-family:var(--head);font-size:22px;font-weight:700;letter-spacing:.06em}
.brand span{display:block;font-size:11px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase}
.home h1{font-size:clamp(30px,4vw,48px);font-weight:600;margin:0 0 8px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px;margin-top:30px}
.pcard{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:transform .3s,border-color .3s}
.pcard:hover{transform:translateY(-4px);border-color:#ffffff33}
.pcard .cv{aspect-ratio:16/9;background:#222 center/cover;position:relative}
.pcard .cv img.lg{position:absolute;left:16px;bottom:14px;max-height:34px;max-width:50%;filter:drop-shadow(0 2px 8px #0008)}
.pcard .bd{padding:18px 18px 16px;display:flex;flex-direction:column;gap:4px;flex:1}
.pcard h3{font-size:18px;font-weight:600}
.pcard .act{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.pcard.new{border-style:dashed;align-items:center;justify-content:center;min-height:280px;cursor:pointer;color:var(--muted);gap:12px;font-family:var(--head);font-weight:600}
.pcard.new:hover{color:var(--fg)}
.pcard.new i{width:56px;height:56px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-style:normal;font-size:26px}

/* ===================== EDITOR ===================== */
.editor{display:grid;grid-template-columns:250px 1fr;height:100%}
.ed-side{background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:auto}
.ed-side .top{padding:22px 20px 16px;border-bottom:1px solid var(--line)}
.ed-side .top a{font-size:12px;color:var(--muted)}
.ed-side .top h2{font-size:17px;margin-top:10px;line-height:1.2}
.ed-nav{padding:12px 10px;display:flex;flex-direction:column;gap:2px}
.ed-nav a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;font-size:14px;color:#cfccd4;transition:background .2s,color .2s}
.ed-nav a svg{width:17px;height:17px;opacity:.8}
.ed-nav a:hover{background:#ffffff0d;color:#fff}
.ed-nav a.on{background:var(--p);color:#fff}
.ed-side .bottom{margin-top:auto;padding:16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.ed-main{overflow:auto;padding:34px 44px 120px}
.ed-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px;flex-wrap:wrap}
.ed-head h1{font-size:28px;font-weight:600}
.ed-head p{color:var(--muted);margin-top:6px;max-width:640px;font-size:14px}
.box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:18px}
.box h3{font-size:15px;font-weight:600;margin-bottom:14px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media (max-width:1100px){.grid3,.grid4{grid-template-columns:1fr 1fr}}
.f{display:flex;flex-direction:column;gap:6px}
.f label{font-size:12px;color:var(--muted);font-family:var(--head);font-weight:500}
.f input,.f select,.f textarea{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px 12px;outline:none;transition:border-color .2s;width:100%}
.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--p)}
.f textarea{min-height:84px;resize:vertical}
.f input[type=color]{padding:4px;height:42px}
.hint{font-size:12px;color:var(--muted);margin-top:4px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.list{display:flex;flex-direction:column;gap:8px}
.item{display:grid;gap:10px;align-items:center;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px}
.x{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:none;display:grid;place-items:center;color:var(--muted)}
.x:hover{background:var(--bad);color:#fff;border-color:var(--bad)}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.thumb{position:relative;border-radius:10px;overflow:hidden;background:#222;aspect-ratio:4/3;border:1px solid var(--line)}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb .x{position:absolute;right:6px;top:6px;background:#000a}
.thumb input{position:absolute;left:6px;right:6px;bottom:6px;width:auto;background:#000b;border:0;border-radius:6px;padding:6px 8px;font-size:12px}
.drop{border:1.5px dashed #ffffff30;border-radius:12px;padding:26px;text-align:center;color:var(--muted);cursor:pointer;transition:border-color .2s,background .2s}
.drop:hover,.drop.over{border-color:var(--p);background:#f26b210d;color:var(--fg)}
.imgpick{display:flex;gap:12px;align-items:center}
.imgpick .pv{width:120px;height:80px;border-radius:8px;background:#222 center/contain no-repeat;border:1px solid var(--line);flex:0 0 auto}
.edmap{height:460px;border-radius:12px;overflow:hidden;border:1px solid var(--line);position:relative}
.hotspot-ed{position:relative;border-radius:12px;overflow:hidden;cursor:crosshair;background:#222}
.hotspot-ed img{width:100%}
.hs{position:absolute;width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:50%;background:var(--p);color:#fff;font-family:var(--head);font-weight:700;font-size:12px;display:grid;place-items:center;box-shadow:0 0 0 3px #fff8}
table.units{width:100%;border-collapse:collapse;font-size:13px}
table.units th{text-align:left;font-family:var(--head);font-weight:500;color:var(--muted);padding:8px 6px;border-bottom:1px solid var(--line);font-size:12px}
table.units td{padding:4px 6px;border-bottom:1px solid #ffffff0a}
table.units input,table.units select{background:transparent;border:1px solid transparent;border-radius:6px;padding:6px;width:100%}
table.units input:hover,table.units select:hover{border-color:var(--line)}
.stpill{border:0;border-radius:99px;padding:5px 12px;font-family:var(--head);font-size:11px;font-weight:600;color:#fff;min-width:96px}
.st-disponivel{background:var(--ok)}.st-reservado{background:var(--warn);color:#111}.st-vendido{background:var(--bad)}

/* ===================== APRESENTAÇÃO ===================== */
.viewer{position:fixed;inset:0;background:#000;overflow:hidden}
.v-stage{position:absolute;inset:0 0 64px 0;overflow:hidden}
.v-sec{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .6s,visibility .6s}
.v-sec.on{opacity:1;visibility:visible}
.v-nav{position:absolute;left:0;right:0;bottom:0;height:64px;background:#0b0b0de6;backdrop-filter:blur(14px);border-top:1px solid var(--line);display:flex;align-items:stretch;z-index:20}
.v-nav .lg{display:flex;align-items:center;padding:0 22px;border-right:1px solid var(--line);flex:0 0 auto}
.v-nav .lg img{max-height:30px;max-width:130px}
.v-nav .lg b{font-family:var(--head);font-size:15px;letter-spacing:.04em}
.v-tabs{display:flex;flex:1;overflow-x:auto;scrollbar-width:none}
.v-tabs::-webkit-scrollbar{display:none}
.v-tabs button{flex:1 0 auto;min-width:96px;background:none;border:0;border-right:1px solid #ffffff0d;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-family:var(--head);font-size:11px;font-weight:500;color:#bdbac2;letter-spacing:.03em;padding:0 10px;position:relative;transition:color .2s,background .2s}
.v-tabs button svg{width:19px;height:19px}
.v-tabs button:hover{color:#fff;background:#ffffff08}
.v-tabs button.on{color:#fff}
.v-tabs button.on::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--p)}
.v-tools{display:flex;align-items:center;gap:8px;padding:0 14px;border-left:1px solid var(--line)}
.v-tools .iconbtn{width:36px;height:36px}

.v-title{position:absolute;left:34px;bottom:34px;z-index:5;pointer-events:none}
.v-title h2{font-size:clamp(28px,3.4vw,46px);font-weight:700;text-transform:uppercase;letter-spacing:.01em;text-shadow:0 2px 20px #0008}
.v-title .bar{width:60px;height:3px;background:var(--p);margin-top:10px}

/* Início */
.hero{position:absolute;inset:0}
.hero .bgimg{position:absolute;inset:-4%;background:#111 center/cover;animation:kb 28s ease-in-out infinite alternate}
@keyframes kb{to{transform:scale(1.08) translate(-1.5%,-1%)}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#000c 0%,#0006 40%,transparent 70%),linear-gradient(0deg,#000a,transparent 40%)}
.hero .in{position:absolute;left:6vw;top:50%;transform:translateY(-50%);z-index:2;max-width:560px}
.hero .in img.lg{max-height:110px;max-width:360px;margin-bottom:28px}
.hero h1{font-size:clamp(40px,5.5vw,84px);font-weight:700;line-height:.95;letter-spacing:-.03em}
.hero .slogan{font-size:clamp(16px,1.5vw,20px);margin-top:18px;color:#ffffffd0;letter-spacing:.02em}
.facts{display:flex;gap:0;margin-top:36px;border:1px solid #ffffff2a;border-radius:12px;overflow:hidden;background:#0006;backdrop-filter:blur(8px);width:max-content;max-width:100%}
.facts div{padding:14px 20px;border-right:1px solid #ffffff1a}
.facts div:last-child{border-right:0}
.facts b{display:block;font-family:var(--head);font-size:20px;font-weight:700;color:var(--p)}
.facts span{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#ffffffb0}
.cta-explore{display:inline-flex;margin-top:30px}

/* Galeria */
.gal{position:absolute;inset:0;display:flex;flex-direction:column;background:#000}
.gal .main{flex:1;position:relative;overflow:hidden}
.gal .main img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .6s}
.gal .main img.on{opacity:1}
.gal .main .bgblur{position:absolute;inset:-40px;background:center/cover;filter:blur(40px) brightness(.45);transition:background-image .6s}
.gal .cap{position:absolute;left:34px;bottom:24px;z-index:3;font-family:var(--head);font-size:14px;font-weight:500;text-shadow:0 2px 10px #000}
.gal .arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3}
.gal .arrow.l{left:20px}.gal .arrow.r{right:20px}
.gal .strip{height:108px;display:flex;gap:10px;padding:14px 20px;overflow-x:auto;background:#0b0b0d;justify-content:safe center}
.gal .strip img{height:80px;width:120px;object-fit:cover;border-radius:6px;opacity:.5;cursor:pointer;border:2px solid transparent;transition:opacity .2s,border-color .2s;flex:0 0 auto}
.gal .strip img.on{opacity:1;border-color:var(--p)}
.gal .cats{position:absolute;top:22px;left:50%;transform:translateX(-50%);z-index:3;display:flex;gap:6px;background:#0008;padding:5px;border-radius:99px;backdrop-filter:blur(8px)}
.gal .cats button{background:none;border:0;border-radius:99px;padding:7px 14px;font-family:var(--head);font-size:12px;font-weight:600}
.gal .cats button.on{background:var(--p)}

/* Mapa 3D (entorno, solar) */
.map3d{position:absolute;inset:0}
.maplibregl-ctrl-attrib{font-size:10px}
.compass{position:absolute;left:24px;top:24px;z-index:6;width:92px;height:92px;border-radius:50%;border:2px solid #ffffff55;background:radial-gradient(#ffffff26,#0003);backdrop-filter:blur(6px);display:grid;place-items:center;font-family:var(--head);font-weight:700;font-style:italic;font-size:15px;color:#fff;text-shadow:0 1px 6px #000a;cursor:pointer}
.map-nav{position:absolute;left:24px;top:128px;z-index:6;width:92px;display:grid;grid-template-columns:1fr 1fr;gap:6px}
.map-nav button{height:40px;border-radius:12px;border:1px solid #ffffff44;background:#0006;backdrop-filter:blur(6px);color:#fff;font-size:20px;cursor:pointer;touch-action:none;user-select:none}
.map-nav button:hover{background:var(--p);border-color:var(--p)}
.compass i{position:absolute;inset:4px;border-radius:50%;border-top:3px solid var(--p);transition:transform .2s}
/* o MapLibre move o marcador via transform: a animação fica no filho, senão o nome desliza atrás do mapa */
.poi-mk{cursor:pointer}
.poi-mk>div{display:flex;flex-direction:column;align-items:center;transform-origin:bottom center;transition:transform .2s}
.poi-mk:hover>div,.poi-mk.on>div{transform:scale(1.18)}
.poi-mk span{font-family:var(--head);font-size:12px;font-weight:600;color:#fff;text-shadow:0 1px 4px #000,0 0 2px #000;white-space:nowrap;margin-bottom:2px}
.poi-mk i{width:22px;height:22px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--c);border:2px solid #fff;box-shadow:0 2px 8px #0006}
.proj-mk{display:flex;align-items:center;gap:8px;background:var(--p);color:#fff;padding:6px 14px 6px 6px;border-radius:99px;font-family:var(--head);font-size:13px;font-weight:700;box-shadow:0 6px 20px #0006;position:relative;animation:pulse 2s infinite;white-space:nowrap}
.proj-mk::after{content:"";position:absolute;left:50%;top:100%;width:2px;height:62px;background:linear-gradient(var(--p),transparent);margin-left:-1px}
.proj-mk img{width:24px;height:24px;border-radius:50%;background:#0003;padding:3px;object-fit:contain;filter:brightness(0) invert(1)}
@keyframes pulse{50%{box-shadow:0 0 0 16px #f26b2100,0 4px 18px #0008}}
.cat-panel{position:absolute;left:24px;right:24px;bottom:20px;z-index:6;display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;height:170px}
.cat-col{background:#0b0b0dcc;backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;min-height:0}
.cat-col h4{font-family:var(--head);font-size:14px;font-weight:600;padding:10px 14px;background:#00000066;display:flex;align-items:center;gap:8px;cursor:pointer}
.cat-col h4 i{width:9px;height:9px;border-radius:50%;background:var(--c)}
.cat-col h4.off{opacity:.4}
.cat-col ul{list-style:none;overflow:auto;padding:4px 0}
.cat-col li{padding:6px 14px;font-size:13px;color:#d6d3da;cursor:pointer}
.cat-col li:hover,.cat-col li.on{background:#ffffff12;color:#fff}
.poi-card{position:absolute;right:24px;top:24px;z-index:7;width:300px;background:#0b0b0de6;border:1px solid var(--line);border-radius:14px;overflow:hidden;backdrop-filter:blur(12px);transform:translateX(30px);opacity:0;pointer-events:none;transition:opacity .35s,transform .35s}
.poi-card.on{opacity:1;transform:none;pointer-events:auto}
.poi-card .ph{aspect-ratio:16/10;background:#222 center/cover}
.poi-card .bd{padding:14px 16px 16px}
.poi-card h4{font-family:var(--head);font-size:17px;margin-bottom:4px}
.poi-card .dist{color:var(--p);font-family:var(--head);font-weight:600;font-size:14px;margin-top:8px}

/* Solar */
.sun-ui{position:absolute;left:24px;bottom:22px;z-index:6;background:#0b0b0dd9;border:1px solid var(--line);border-radius:14px;padding:16px 20px;backdrop-filter:blur(12px);width:min(560px,calc(100% - 48px))}
.sun-ui .rowt{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;gap:12px}
.sun-ui .hour{font-family:var(--head);font-size:30px;font-weight:700}
.sun-ui input[type=range]{width:100%;accent-color:var(--p)}
.sun-ui .seasons{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}
.sun-ui .seasons button{background:#ffffff10;border:1px solid var(--line);border-radius:99px;padding:6px 12px;font-family:var(--head);font-size:12px;font-weight:600}
.sun-ui .seasons button.on{background:var(--p);border-color:var(--p)}
.sun-ui .info{display:flex;gap:18px;margin-top:12px;font-size:12px;color:var(--muted)}
.sun-ui .info b{color:var(--fg);font-family:var(--head)}
.sun-ui .play{width:42px;height:42px}

/* Implantação */
.impl{position:absolute;inset:0;display:grid;grid-template-columns:minmax(300px,30%) 1fr;background:#0b0b0d}
.impl .side{padding:40px 30px;overflow:auto;border-right:1px solid var(--line);background:linear-gradient(180deg,#000,#0b0b0d)}
.impl .side h3{font-size:13px;letter-spacing:.3em;text-transform:uppercase;text-align:center;background:var(--p);padding:14px;border-radius:6px;margin-bottom:22px;font-weight:600}
.impl ol{list-style:none;display:flex;flex-direction:column;gap:4px}
.impl li{display:flex;gap:12px;align-items:center;padding:6px 8px;border-radius:6px;cursor:pointer;font-family:var(--head);font-size:14px;font-weight:500;color:#d8d5dc;text-transform:uppercase;letter-spacing:.02em;transition:background .2s,color .2s}
.impl li b{width:28px;height:28px;border:1px solid #ffffff55;border-radius:4px;display:grid;place-items:center;font-size:12px;flex:0 0 auto}
.impl li:hover,.impl li.on{background:var(--p);color:#fff}
.impl li.on b{border-color:#fff}
.impl .plan{position:relative;overflow:hidden;display:grid;place-items:center;background:#f2f1ee;cursor:grab}
.impl .plan .zoomwrap{position:relative;transform-origin:0 0;will-change:transform}
.impl .plan img{max-width:none;display:block;user-select:none;-webkit-user-drag:none}
.impl .hs{transition:transform .3s,box-shadow .3s}
.impl .hs.on{transform:scale(1.4);box-shadow:0 0 0 6px #f26b2155}

/* Unidades */
div.units{position:absolute;inset:0;display:grid;grid-template-columns:1fr 340px;background:radial-gradient(ellipse at 40% 30%,#1d1d22,#09090b)}
.units .u3d{position:absolute;inset:0}
.units .umode{position:absolute;right:20px;top:20px;z-index:7;display:flex;gap:4px;background:#0b0b0dcc;border:1px solid var(--line);border-radius:99px;padding:4px;backdrop-filter:blur(8px)}
.units .umode button{border:0;background:none;color:#fff;font-family:var(--head);font-size:13px;padding:7px 14px;border-radius:99px;cursor:pointer}
.units .umode button.on{background:var(--p)}
.units .stage{position:relative;overflow:auto;display:flex;align-items:flex-end;justify-content:center;gap:34px;padding:40px 30px 230px}
.tower{display:flex;flex-direction:column;align-items:center}
.tower h4{font-family:var(--head);font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:12px}
.tower .roof{height:14px;background:linear-gradient(#3a3a40,#2a2a2f);border-radius:4px 4px 0 0;width:100%}
.tower .floors{display:flex;flex-direction:column;gap:3px;background:#2a2a2f;padding:4px;border-radius:0 0 3px 3px}
.floor{display:flex;gap:3px;align-items:stretch}
.floor .fl{width:34px;font-family:var(--head);font-size:10px;color:var(--muted);display:grid;place-items:center}
.u{height:26px;min-width:64px;border-radius:3px;border:0;font-family:var(--head);font-size:11px;font-weight:600;color:#fff;transition:transform .15s,opacity .3s,filter .2s;position:relative}
.u:hover{transform:scale(1.08);z-index:2;filter:brightness(1.15)}
.u.dim{opacity:.12}
.u.sel{outline:2px solid #fff;outline-offset:2px;z-index:3}
.u.disponivel{background:var(--ok)}.u.reservado{background:var(--warn);color:#111}.u.vendido{background:var(--bad)}
.units .filters{position:absolute;left:24px;right:364px;bottom:20px;display:grid;grid-template-columns:1.2fr 1fr 1.2fr;gap:12px}
.units .fbox{background:#0b0b0dd9;border:1px solid var(--line);border-radius:10px;padding:12px 16px;backdrop-filter:blur(10px)}
.units .fbox h5{font-family:var(--head);font-size:13px;font-weight:600;margin-bottom:10px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chips button{background:#ffffff10;border:1px solid var(--line);border-radius:6px;padding:6px 10px;font-family:var(--head);font-size:12px;font-weight:600;transition:background .2s,border-color .2s}
.chips button.on{border-color:var(--p);background:#f26b2133}
.chips button.disponivel.on{background:#2fbf7140;border-color:var(--ok)}
.chips button.reservado.on{background:#e7b02e40;border-color:var(--warn)}
.chips button.vendido.on{background:#e24c4c40;border-color:var(--bad)}
.units .detail{background:#0b0b0d;border-left:1px solid var(--line);overflow:auto;display:flex;flex-direction:column}
.units .detail .empty{margin:auto;padding:30px;text-align:center;color:var(--muted);font-size:14px}
.units .detail .pl{background:#fff;aspect-ratio:4/3;display:grid;place-items:center;cursor:zoom-in}
.units .detail .pl img{max-height:100%;object-fit:contain}
.units .detail .hd{padding:14px 20px;font-family:var(--head);font-size:26px;font-weight:700;border-top:4px solid var(--p);background:#16161a}
.units .detail dl{padding:8px 20px 20px}
.units .detail dt{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:14px}
.units .detail dd{font-family:var(--head);font-size:16px;font-weight:500;margin-top:2px}
.legend{display:flex;gap:14px;font-size:12px;color:var(--muted);position:absolute;top:22px;left:24px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px}
.counter{position:absolute;top:18px;right:364px;display:flex;gap:10px}
.counter div{background:#0b0b0dd9;border:1px solid var(--line);border-radius:10px;padding:8px 14px;text-align:center}
.counter b{display:block;font-family:var(--head);font-size:20px}
.counter span{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* Plantas */
.plantas{position:absolute;inset:0;display:grid;grid-template-columns:minmax(320px,34%) 1fr;background:#0b0b0d}
.plantas .side{padding:46px 36px;display:flex;flex-direction:column;gap:20px;overflow:auto;background:#000}
.plantas .area{font-family:var(--head);font-weight:200;font-size:clamp(70px,9vw,130px);line-height:.9;letter-spacing:-.04em}
.plantas .area sup{font-size:.35em;font-weight:300}
.plantas .typ{font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:var(--p);border-bottom:1px solid var(--line);padding-bottom:14px}
.plantas .suites{font-family:var(--head);font-size:22px;letter-spacing:.3em;text-transform:uppercase}
.plantas .desc{color:#cfccd4;font-size:15px;line-height:1.6}
.plantas .main{position:relative;display:flex;flex-direction:column;background:var(--p)}
.plantas .tabs{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid #0003;background:#0002}
.plantas .tabs button{background:none;border:0;padding:14px 20px;font-family:var(--head);font-size:13px;font-weight:600}
.plantas .tabs button.on{background:#000;color:#fff}
.plantas .img{flex:1;display:grid;place-items:center;padding:30px;cursor:zoom-in;min-height:0}
.plantas .img img{max-height:100%;max-width:100%;object-fit:contain;filter:drop-shadow(0 20px 40px #0005)}

/* Diferenciais */
.difs{position:absolute;inset:0;overflow:auto;background:center/cover;padding:50px 5vw 40px}
.difs::before{content:"";position:fixed;inset:0;background:#000b;pointer-events:none}
.difs .cols{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:26px}
.difs .col{background:#fff;color:#111;border-radius:6px;padding:34px 36px;box-shadow:0 30px 80px #0007}
.difs .col h3{text-align:center;font-size:15px;font-weight:600;letter-spacing:.35em;text-transform:uppercase;margin-bottom:26px}
.difs ul{list-style:none;display:flex;flex-direction:column;gap:14px}
.difs li{display:flex;gap:16px;align-items:center;font-size:14px;letter-spacing:.02em;text-transform:uppercase}
.difs li svg{width:24px;height:24px;flex:0 0 auto;color:var(--p)}

/* Vistas */
.vistas{position:absolute;inset:0;background:#000}
.vistas .img{position:absolute;inset:0;background:center/cover;transition:opacity .5s}
.vistas .floors{position:absolute;right:24px;top:50%;transform:translateY(-50%);background:#0b0b0de6;border-radius:6px;overflow:hidden;display:flex;flex-direction:column;z-index:3;min-width:96px}
.vistas .floors .hd{padding:14px 12px;text-align:center;font-family:var(--head);font-size:11px;font-weight:700;color:var(--p);letter-spacing:.08em;text-transform:uppercase}
.vistas .floors button{background:none;border:0;padding:12px 18px;font-family:var(--head);font-weight:700;font-size:20px;color:var(--p)}
.vistas .floors button.on{background:var(--p);color:#fff}

/* Tour 360 */
.tour{position:absolute;inset:0;background:#000}
.tour canvas{display:block;cursor:grab}
.tour .grid{position:absolute;inset:0;overflow:auto;padding:50px 5vw;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px;align-content:start;background:#0b0b0d}
.tour .t{position:relative;aspect-ratio:2/1;border:1px solid var(--p);padding:10px;cursor:pointer;transition:transform .3s}
.tour .t:hover{transform:translateY(-4px)}
.tour .t div{position:absolute;inset:10px;background:center/cover;filter:brightness(.6);transition:filter .3s}
.tour .t:hover div{filter:brightness(.9)}
.tour .t span{position:absolute;left:0;right:0;bottom:18px;text-align:center;font-family:var(--head);font-weight:700;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--p);text-shadow:0 1px 6px #000}
.tour .t i{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:58px;height:58px;border:2px solid #fff;border-radius:50%;display:grid;place-items:center;font-style:normal;font-family:var(--head);font-weight:700;font-size:14px}
.tour .back{position:absolute;left:24px;top:24px;z-index:3}
.tour .tname{position:absolute;left:50%;top:24px;transform:translateX(-50%);z-index:3;font-family:var(--head);font-weight:600;background:#0009;padding:8px 16px;border-radius:99px;backdrop-filter:blur(8px)}

/* Vídeos */
.videos{position:absolute;inset:0;display:grid;grid-template-columns:1fr 300px;background:#000}
.videos .player{display:grid;place-items:center;background:#000}
.videos .player iframe,.videos .player video{width:100%;height:100%;border:0}
.videos .lst{overflow:auto;border-left:1px solid var(--line);background:#0b0b0d}
.videos .lst button{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:16px 18px;font-family:var(--head);font-size:14px;font-weight:500}
.videos .lst button.on{background:var(--p)}

/* Ficha técnica */
.ficha{position:absolute;inset:0;overflow:auto;display:grid;grid-template-columns:1fr 1fr;background:#0b0b0d}
.ficha .ph{background:center/cover}
.ficha .tx{padding:60px 5vw;overflow:auto}
.ficha dl{display:grid;grid-template-columns:auto 1fr;gap:14px 26px;margin-top:30px}
.ficha dt{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.ficha dd{font-family:var(--head);font-size:16px;font-weight:500}
.ficha .about{color:#cfccd4;line-height:1.7;margin-top:20px;max-width:560px}

/* visualizador de imagem em tela cheia */
.lbx{position:fixed;inset:0;background:#000f;z-index:100;display:grid;place-items:center;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.lbx.on{opacity:1;visibility:visible}
.lbx img{max-width:94vw;max-height:90vh;object-fit:contain}
.lbx .iconbtn{position:absolute;right:20px;top:20px}

.empty-sec{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:var(--muted);padding:40px}
.empty-sec b{display:block;font-family:var(--head);font-size:20px;color:var(--fg);margin-bottom:8px}

@media (max-width:900px){
  .editor{grid-template-columns:1fr}.ed-side{display:none}
  .units{grid-template-columns:1fr}.units .detail{display:none}.units .filters{right:24px;grid-template-columns:1fr}
  .impl,.plantas,.ficha,.videos{grid-template-columns:1fr}
}

/* ===================== EDITOR (claro e leve) ===================== */
.editor{--bg:#f5f4f1;--panel:#ffffff;--panel2:#f1efeb;--line:#e7e4de;--fg:#1c1b1f;--muted:#8a8690;
  display:flex;flex-direction:column;height:100%;background:var(--bg);color:var(--fg);grid-template-columns:none}
.ed-top{height:60px;flex:0 0 auto;display:flex;align-items:center;gap:20px;padding:0 20px;background:#fff;border-bottom:1px solid var(--line)}
.ed-back{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);font-family:var(--head);font-weight:500}
.ed-back svg{width:16px;height:16px}
.ed-back:hover{color:var(--fg)}
.ed-title{flex:1;display:flex;align-items:baseline;gap:12px;min-width:0}
.ed-title b{font-family:var(--head);font-size:16px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ed-title span{font-size:12px;color:var(--muted)}
.ed-title .saved{color:#2f9e63}
.ed-body{flex:1;min-height:0;display:grid;grid-template-columns:200px 1fr 440px}
.ed-body.wide{grid-template-columns:200px 1fr}
.ed-rail{background:#fff;border-right:1px solid var(--line);padding:14px 10px;overflow:auto;display:flex;flex-direction:column;gap:2px}
.ed-rail a{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:9px;font-size:13.5px;color:#55525a;transition:background .15s,color .15s}
.ed-rail a svg{width:17px;height:17px;flex:0 0 auto;opacity:.75}
.ed-rail a span{flex:1}
.ed-rail a i{width:7px;height:7px;border-radius:50%;border:1.5px solid #cfcbc4}
.ed-rail a i.done{background:#2f9e63;border-color:#2f9e63}
.ed-rail a:hover{background:var(--panel2);color:var(--fg)}
.ed-rail a.on{background:#1c1b1f;color:#fff}
.ed-rail a.on svg{opacity:1}
.ed-rail a.on i{border-color:#ffffff66}
.ed-preview{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:26px;min-width:0;background:radial-gradient(ellipse at 50% 40%,#ffffff,#ecebe7)}
.ed-device{width:100%;aspect-ratio:16/9;max-height:100%;border-radius:12px;overflow:hidden;box-shadow:0 30px 70px #00000026,0 0 0 1px #00000014;background:#000}
.ed-frame{width:100%;height:100%;border:0;display:block}
.ed-cap{margin-top:14px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-family:var(--head);font-weight:600}
.editor .ed-main{background:#fff;border-left:1px solid var(--line);overflow:auto;padding:26px 26px 100px}
.ed-body.wide .ed-main{border-left:0;background:var(--bg);padding:30px 40px 100px}
.editor .ed-head{margin-bottom:20px;align-items:flex-start}
.editor .ed-head h1{font-size:21px}
.editor .ed-head p{font-size:13px;line-height:1.5}
.editor .box{background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;padding:20px 0 6px;margin:0}
.ed-body.wide .box{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:16px}
.editor .box h3{font-size:13px;letter-spacing:.02em}
.editor .f input,.editor .f select,.editor .f textarea{background:var(--panel2);border-color:transparent}
.editor .f input:focus,.editor .f select:focus,.editor .f textarea:focus{background:#fff;border-color:var(--p)}
.editor .item{background:var(--panel2);border-color:transparent}
.editor .item input,.editor .item select{background:#fff;border:1px solid var(--line);border-radius:7px;padding:8px 10px}
.editor .btn{background:#fff;border-color:var(--line)}
.editor .btn:hover{background:var(--panel2);border-color:#d8d4cd}
.editor .btn.pri{background:var(--p);border-color:var(--p);color:#fff}
.editor .btn.ghost{background:transparent}
.editor .x{border-color:var(--line);background:#fff}
.editor .drop{border-color:#d9d5ce;background:#fbfaf8}
.editor .thumb{background:var(--panel2);border-color:var(--line)}
.editor .thumb input{background:#ffffffe6;color:#1c1b1f}
.editor .thumb select{background:#ffffffe6!important;color:#1c1b1f}
.editor .imgpick .pv{background-color:var(--panel2)}
.editor table.units td{border-color:#f0eee9}
.editor table.units input,.editor table.units select{color:var(--fg)}
.editor .edmap{border-color:var(--line)}
.ed-main .grid3,.ed-main .grid4{grid-template-columns:1fr 1fr}
.ed-body.wide .grid3{grid-template-columns:repeat(3,1fr)}
.ed-body.wide .grid4{grid-template-columns:repeat(4,1fr)}
.ed-main .thumbs{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
/* apresentação dentro da prévia: barra um pouco menor */
.viewer.preview .v-nav .lg{padding:0 14px}
@media (max-width:1200px){.ed-body{grid-template-columns:64px 1fr 400px}.ed-body.wide{grid-template-columns:64px 1fr}.ed-rail a span,.ed-rail a i{display:none}.ed-rail a{justify-content:center}}
.ed-body{grid-template-rows:minmax(0,1fr);grid-template-columns:200px 1fr 470px}
.ed-body > *{min-height:0;min-width:0}
.ed-device{flex:0 0 auto}
.editor .item > *{min-width:0}
.editor .item input{width:100%}
#app{height:100%}
.ed-device{aspect-ratio:auto;position:relative}
.ed-frame{width:1600px;height:900px;transform-origin:0 0;position:absolute;left:0;top:0}
.proj-mk{width:max-content}
.nudge{display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--panel2);border-radius:12px;padding:12px}
.nudge .row{gap:6px;flex-wrap:nowrap}
.nudge select{background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:12px}
.seg{display:inline-flex;background:var(--panel2);border-radius:99px;padding:4px;gap:2px}
.seg button{background:none;border:0;border-radius:99px;padding:8px 16px;font-family:var(--head);font-size:12px;font-weight:600;color:var(--muted)}
.seg button.on{background:#fff;color:var(--fg);box-shadow:0 1px 4px #0002}

/* ===================== VIDRO (apresentação) ===================== */
/* barra de abas flutuante e painéis translúcidos com desfoque, como vidro fosco */
.viewer{--nb:112px;--glass:linear-gradient(180deg,#ffffff30,#ffffff12);--glass-b:1px solid #ffffff45;--glass-sh:inset 0 1px 0 #ffffff55,0 10px 40px #0005;--glass-f:blur(22px) saturate(1.5)}
.v-stage{inset:0}
.v-nav{left:50%;right:auto;bottom:16px;transform:translateX(-50%);height:84px;max-width:calc(100% - 32px);border:var(--glass-b);border-radius:30px;background:var(--glass);backdrop-filter:var(--glass-f);-webkit-backdrop-filter:var(--glass-f);box-shadow:var(--glass-sh);padding:0 10px}
.v-nav .lg{border-right:1px solid #ffffff30;padding:0 18px 0 12px}
.v-tabs{flex:0 1 auto;gap:4px;padding:0 8px;align-items:center}
.v-tabs button{flex:0 0 auto;min-width:70px;border:0;padding:6px 4px;gap:5px;color:#fff;font-size:10px;text-shadow:0 1px 3px #0008}
.v-tabs button svg{width:44px;height:44px;padding:11px;border-radius:14px;background:linear-gradient(180deg,#ffffff38,#ffffff10);border:1px solid #ffffff55;box-shadow:inset 0 1px 0 #ffffff66,0 2px 8px #0003;transition:background .2s,transform .2s}
.v-tabs button:hover{background:none}
.v-tabs button:hover svg{background:#ffffff4d;transform:translateY(-2px)}
.v-tabs button.on::before{display:none}
.v-tabs button.on svg{background:var(--p);border-color:#ffffff88}
.v-tools{border-left:1px solid #ffffff30}
.v-tools .iconbtn{background:#ffffff1f;border:1px solid #ffffff45;border-radius:12px}
.viewer .maplibregl-ctrl-bottom-right{bottom:calc(var(--nb) - 6px)}
.v-title{bottom:calc(var(--nb) + 16px)}
.gal .cap{bottom:calc(var(--nb) + 8px)}
.cat-panel,.units .filters{bottom:calc(var(--nb) + 6px)}
.sun-ui{bottom:calc(var(--nb) + 6px)}
.cat-col,.sun-ui,.poi-card,.units .fbox,.counter div,.units .umode,.map-nav button{background:var(--glass);border:var(--glass-b);backdrop-filter:var(--glass-f);-webkit-backdrop-filter:var(--glass-f);box-shadow:var(--glass-sh)}
.cat-col h4{background:#ffffff14}
.cat-col li{color:#fff;text-shadow:0 1px 3px #0009}
.units .detail{padding-bottom:var(--nb)}
.viewer.preview{--nb:104px}

/* abas agrupadas + sub-barra */
.v-tabs button{min-width:86px}
.v-tabs button.open svg{background:#ffffff59;border-color:#fff}
.v-sub{position:absolute;left:50%;bottom:calc(var(--nb) + 4px);transform:translate(-50%,12px);z-index:21;display:flex;gap:6px;padding:8px;border-radius:22px;background:var(--glass);border:var(--glass-b);backdrop-filter:var(--glass-f);-webkit-backdrop-filter:var(--glass-f);box-shadow:var(--glass-sh);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
.v-sub.on{opacity:1;pointer-events:auto;transform:translate(-50%,0)}
.v-sub button{display:flex;align-items:center;gap:8px;border:0;background:#ffffff1a;color:#fff;font-family:var(--head);font-size:13px;font-weight:500;padding:10px 16px;border-radius:14px;cursor:pointer;white-space:nowrap;text-shadow:0 1px 3px #0008;transition:background .2s}
.v-sub button svg{width:18px;height:18px}
.v-sub button:hover{background:#ffffff38}
.v-sub button.on{background:var(--p)}
/* galeria: miniaturas flutuando acima da barra */
.gal .strip{position:absolute;left:0;right:0;bottom:calc(var(--nb) + 4px);z-index:3;height:86px;padding:6px 20px;background:none}
.gal .strip img{height:64px;width:96px;box-shadow:0 4px 14px #0008}
.gal .cap{bottom:calc(var(--nb) + 100px)}

/* entorno: alternar pontos / sol */
.e-mode{position:absolute;left:50%;top:20px;transform:translateX(-50%);z-index:7;display:flex;gap:4px;padding:5px;border-radius:99px;background:var(--glass);border:var(--glass-b);backdrop-filter:var(--glass-f);-webkit-backdrop-filter:var(--glass-f);box-shadow:var(--glass-sh)}
.e-mode button{display:flex;align-items:center;gap:7px;border:0;background:none;color:#fff;font-family:var(--head);font-size:13px;font-weight:600;padding:8px 16px;border-radius:99px;cursor:pointer;text-shadow:0 1px 3px #0008}
.e-mode button svg{width:16px;height:16px}
.e-mode button.on{background:var(--p)}

.v-sec.has-mode:not(.sun-mode)>.sun-ui{display:none}
.v-sec.sun-mode>.cat-panel,.v-sec.sun-mode>.poi-card{display:none}

/* abas internas de um grupo (ex.: Projeto) no topo da tela */
.v-inner{position:absolute;left:50%;top:20px;transform:translateX(-50%);z-index:21;display:none;gap:4px;padding:5px;border-radius:99px;background:var(--glass);border:var(--glass-b);backdrop-filter:var(--glass-f);-webkit-backdrop-filter:var(--glass-f);box-shadow:var(--glass-sh)}
.v-inner.on{display:flex}
.v-inner button{display:flex;align-items:center;gap:7px;border:0;background:none;color:#fff;font-family:var(--head);font-size:13px;font-weight:600;padding:8px 16px;border-radius:99px;cursor:pointer;text-shadow:0 1px 3px #0008}
.v-inner button svg{width:16px;height:16px}
.v-inner button.on{background:var(--p)}
/* abertura: fotos/vídeos se revezando com transição suave */
.hero-bg{position:absolute;inset:0;overflow:hidden;background:#111}
.hero-bg .slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0;opacity:0;transition:opacity 1.4s ease}
.hero-bg .slide.bgimg{inset:-4%;width:auto;height:auto}
.hero-bg .slide.on{opacity:1}
.hero-bg iframe.slide{inset:50% auto auto 50%;width:max(100vw,177.78vh);height:max(100vh,56.25vw);transform:translate(-50%,-50%);pointer-events:none}
/* tela touch grande: nada importante no alto — seletores na lateral direita, controles do mapa à esquerda, no meio da altura */
.e-mode,.v-inner,.units .umode{left:auto;right:20px;top:50%;transform:translateY(-50%);flex-direction:column;border-radius:24px;padding:6px}
.e-mode button,.v-inner button,.units .umode button{flex-direction:column;gap:6px;padding:14px 12px;min-width:92px;border-radius:18px;font-size:12px;justify-content:center}
.e-mode button svg,.v-inner button svg{width:22px;height:22px}
.v-sec .compass{top:calc(50% - 150px)}
.v-sec .map-nav{top:calc(50% - 46px)}
.map-nav button{height:52px}
.poi-card{right:136px}
.units .umode{right:360px}
/* sol na lateral direita: régua de horário vertical + calendário (mês e clima) */
.sun-side{position:absolute;right:24px;top:50%;transform:translateY(-58%);z-index:7;display:flex;flex-direction:column;align-items:center;gap:14px;padding:18px 14px;border-radius:28px;background:var(--glass);border:var(--glass-b);backdrop-filter:var(--glass-f);-webkit-backdrop-filter:var(--glass-f);box-shadow:var(--glass-sh)}
.sun-side .track{position:relative;width:46px;height:min(40vh,380px);cursor:pointer;touch-action:none}
.sun-side .track::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:4px;margin-left:-2px;border-radius:4px;background:linear-gradient(#ffd27a,#fff 45%,#f29a3a 80%,#3b3f6b)}
.sun-side .fill{display:none}
.sun-side .knob{position:absolute;left:50%;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;background:#fff;box-shadow:0 0 0 6px #ffffff40,0 0 24px #ffd27a;pointer-events:none}
.sun-side .hlbl{position:absolute;right:58px;transform:translateY(-50%);font-family:var(--head);font-size:26px;font-weight:700;color:#fff;text-shadow:0 2px 10px #000a;white-space:nowrap;pointer-events:none}
.sun-side .sbtns{display:flex;flex-direction:column;gap:8px}
.sun-side .sbtn{width:56px;height:56px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(180deg,#ffffff38,#ffffff10);border:1px solid #ffffff55;color:#fff;cursor:pointer}
.sun-side .sbtn svg{width:24px;height:24px}
.sun-side .sinfo{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;color:#fff;text-shadow:0 1px 3px #0009;text-align:center;max-width:90px}
.sun-side .sinfo b{font-family:var(--head);font-size:14px}
.sun-pop{position:absolute;right:calc(100% + 12px);bottom:0;width:300px;padding:16px;border-radius:22px;background:#15151acc;border:var(--glass-b);backdrop-filter:var(--glass-f);-webkit-backdrop-filter:var(--glass-f);box-shadow:var(--glass-sh);display:none}
.sun-pop.on{display:block}
.sun-pop h5{font-family:var(--head);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#ffffffaa;margin:4px 0 10px;text-align:center}
.sun-pop .mgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:14px}
.sun-pop .mgrid button{height:44px;border-radius:12px;border:1px solid #ffffff30;background:#ffffff14;color:#fff;font-family:var(--head);font-weight:600;font-size:14px;cursor:pointer}
.sun-pop .wlist{display:flex;flex-direction:column;gap:6px}
.sun-pop .wlist button{display:flex;align-items:center;gap:14px;height:56px;padding:0 14px;border-radius:14px;border:1px solid #ffffff30;background:#ffffff14;color:#fff;font-family:var(--head);font-size:15px;cursor:pointer;text-align:left}
.sun-pop .wlist i{font-style:normal;font-size:26px;width:34px;text-align:center}
.sun-pop button.on{background:var(--p);border-color:var(--p)}
/* com o sol na direita, o cartão do ponto vai para o alto à direita, mais para dentro */
.poi-card{right:150px}
.weather-fx{position:absolute;inset:0;pointer-events:none;z-index:2}
/* sol do lado esquerdo; bússola e giro vão para a direita */
.sun-side{right:auto;left:24px}
.sun-side .hlbl{right:auto;left:58px}
.sun-pop{right:auto;left:calc(100% + 12px)}
.v-sec .compass{left:auto;right:24px}
.v-sec .map-nav{left:auto;right:24px}
.poi-card{right:132px}
.units .umode{right:auto;left:24px}

/* entorno: colunas por categoria, entre o painel do sol e a bússola */
.cat-panel{left:140px;right:140px;height:150px}
.map-nav button.go{grid-column:1/-1;height:auto;padding:10px 6px;display:flex;flex-direction:column;align-items:center;gap:4px;font-family:var(--head);font-size:11px;font-weight:600;background:var(--p);border-color:#ffffff88}
.map-nav button.go svg{width:22px;height:22px}

/* bússola nova: canto superior direito */
.compass2{position:absolute;right:20px;top:20px;z-index:7;width:118px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;filter:drop-shadow(0 6px 18px #0006)}
.compass2 svg{width:110px;height:110px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffffff40,#ffffff12 60%,#0000001a);backdrop-filter:var(--glass-f);-webkit-backdrop-filter:var(--glass-f)}
.compass2 .cp-ring{fill:none;stroke:#ffffff70;stroke-width:1.2}
.compass2 .cp-tick{stroke:#ffffffb0;stroke-width:1}
.compass2 text{font-family:var(--head);font-weight:700;text-anchor:middle;fill:#fff;font-size:11px}
.compass2 .cp-n{fill:var(--p);font-size:14px}
.compass2 .cp-needle{fill:var(--p)}
.compass2 .cp-tail{fill:#ffffffaa}
.compass2 .cp-mark{fill:#fff}
.compass2 span{font-family:var(--head);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#fff;text-shadow:0 1px 4px #000a}
.go-proj{position:absolute;right:20px;top:172px;z-index:7;display:flex;align-items:center;gap:8px;height:44px;padding:0 16px;border-radius:99px;border:var(--glass-b);background:var(--p);color:#fff;font-family:var(--head);font-size:13px;font-weight:600;cursor:pointer;box-shadow:var(--glass-sh)}
.go-proj svg{width:18px;height:18px}
/* vidro fumê: legível sobre prédios brancos e céu claro */
.viewer{--glass:linear-gradient(180deg,#3c3c44a6,#141418bf);--glass-b:1px solid #ffffff38}
.v-tabs button svg{background:linear-gradient(180deg,#ffffff2e,#ffffff0d)}
.v-tabs button{text-shadow:0 1px 3px #000c}
.units .fbox button,.units .chips button{color:#fff}
/* Entorno ↔ Unidades na mesma vista */
.entorno-sec .u-filters,.entorno-sec .u-card{display:none}
.entorno-sec.u-mode .cat-panel,.entorno-sec.u-mode .poi-card{display:none}
.entorno-sec.u-mode .u-filters{display:grid}
.u-filters{position:absolute;left:140px;right:140px;bottom:calc(var(--nb) + 6px);z-index:6;grid-template-columns:1.1fr 1fr 1.4fr;gap:10px}
.u-filters .fbox{padding:12px 16px;border-radius:18px;background:var(--glass);border:var(--glass-b);backdrop-filter:var(--glass-f);-webkit-backdrop-filter:var(--glass-f);box-shadow:var(--glass-sh);color:#fff}
.u-filters h5{font-family:var(--head);font-size:13px;font-weight:600;margin-bottom:8px}
.u-filters .minlbl{font-size:13px;margin-bottom:4px}
.u-filters input[type=range]{width:100%;accent-color:var(--p)}
.u-filters .rg{display:flex;justify-content:space-between;font-size:11px;opacity:.7}
.u-filters .chips{display:flex;flex-wrap:wrap;gap:6px}
.u-filters .chips button{height:40px;padding:0 14px;border-radius:12px;border:1px solid #ffffff35;background:#ffffff14;color:#fff;font-family:var(--head);font-size:13px;font-weight:600;cursor:pointer}
.u-filters .chips button.on{background:var(--p);border-color:var(--p)}
.u-filters .chips button.disponivel.on{background:#22c27a;border-color:#22c27a}
.u-filters .chips button.reservado.on{background:#f28c28;border-color:#f28c28}
.u-filters .chips button.vendido.on{background:#e03b3b;border-color:#e03b3b}
.u-card{position:absolute;right:20px;top:232px;bottom:calc(var(--nb) + 6px);width:330px;z-index:8;overflow:auto;border-radius:22px;background:var(--glass);border:var(--glass-b);backdrop-filter:var(--glass-f);-webkit-backdrop-filter:var(--glass-f);box-shadow:var(--glass-sh);color:#fff}
.entorno-sec.u-mode .u-card.on{display:block}
.u-card .x{position:absolute;right:10px;top:10px;z-index:2;width:36px;height:36px;border-radius:50%;border:0;background:#0008;color:#fff;display:grid;place-items:center;cursor:pointer}
.u-card .pl{background:#fff;aspect-ratio:4/3;display:grid;place-items:center;cursor:zoom-in;border-radius:22px 22px 0 0;overflow:hidden}
.u-card .pl img{max-width:100%;max-height:100%;object-fit:contain}
.u-card .hd{display:flex;align-items:center;gap:10px;padding:14px 18px 6px;font-family:var(--head);font-size:24px;font-weight:700}
.u-card .hd i{width:12px;height:12px;border-radius:50%}
.u-card .hd span{margin-left:auto;font-size:12px;font-weight:600;opacity:.8}
.u-card dl{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;padding:8px 18px 18px}
.u-card dl .full{grid-column:1/-1}
.u-card dt{font-size:10px;letter-spacing:.14em;text-transform:uppercase;opacity:.65}
.u-card dd{font-family:var(--head);font-size:15px;font-weight:500;margin-top:2px}
/* bússola à esquerda, em cima do sol; botão do empreendimento no canto direito */
.compass2{right:auto;left:20px;top:16px}
.sun-side{top:168px;transform:none}
.sun-side .track{height:min(34vh,330px)}
.go-proj{top:20px}
.u-card{top:80px}
.poi-card{right:20px;top:80px}

/* etiqueta do prédio presa ao topo do modelo */
.proj-mk.floating{position:absolute;left:0;top:0;z-index:5;animation:none;will-change:transform}
.proj-mk.floating::after{height:22px}

/* Áreas comuns */
.areas{position:absolute;inset:0;display:grid;grid-template-columns:1fr 320px;background:radial-gradient(ellipse at 40% 30%,#1d1d22,#09090b)}
.areas .plan{position:relative;overflow:hidden;cursor:grab;touch-action:none}
.areas .zoomwrap{position:absolute;left:0;top:0;transform-origin:0 0}
.areas .hs{position:absolute;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;background:#fff;color:#111;display:grid;place-items:center;font-family:var(--head);font-weight:700;font-size:14px;box-shadow:0 4px 14px #0008;cursor:pointer;transition:transform .2s}
.areas .hs.has360{background:var(--p);color:#fff;box-shadow:0 0 0 6px #ffffff40,0 4px 14px #0008}
.areas .hs.on,.areas .hs:hover{transform:scale(1.25)}
.a-side{padding:26px 22px calc(var(--nb) + 10px);overflow:auto;background:#0b0b0de6;border-left:1px solid var(--line);color:#fff}
.a-side h3{font-family:var(--head);font-size:13px;letter-spacing:.3em;text-transform:uppercase;margin-bottom:14px}
.a-side h5{font-family:var(--head);font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.6;margin:20px 0 8px}
.a-side ol,.a-side ul{list-style:none;display:flex;flex-direction:column;gap:4px}
.a-side li{display:flex;align-items:center;gap:10px;padding:12px;border-radius:12px;cursor:pointer;font-size:14px}
.a-side li:hover,.a-side li.on{background:#ffffff14}
.a-side li b{width:26px;height:26px;border-radius:50%;background:#ffffff1f;display:grid;place-items:center;font-family:var(--head);font-size:12px;flex:0 0 auto}
.b360{margin-left:auto;font-style:normal;font-family:var(--head);font-size:11px;font-weight:700;padding:3px 8px;border-radius:99px;background:var(--p);color:#fff}
.a-side ul .b360{margin:0}
.a-pano{position:absolute;inset:0;z-index:20}
.a-pbar{position:absolute;left:20px;top:20px;z-index:21;display:flex;align-items:center;gap:12px;padding:6px 18px 6px 6px;border-radius:99px;background:var(--glass);border:var(--glass-b);backdrop-filter:var(--glass-f);-webkit-backdrop-filter:var(--glass-f);color:#fff;font-family:var(--head)}
.a-pbar span{font-size:12px;opacity:.7}
.u-card .u360{margin:0 18px 18px;width:calc(100% - 36px);justify-content:center}
.areas .hs{transform:scale(calc(1 / var(--s,1)))}
.areas .hs.on,.areas .hs:hover{transform:scale(calc(1.25 / var(--s,1)))}
/* bússola mais visível: disco escuro de vidro */
.compass2 svg{background:radial-gradient(circle at 35% 30%,#3a3a42e6,#121216eb);border:1px solid #ffffff55;box-shadow:0 6px 20px #0008}
.compass2 .cp-ring{stroke:#ffffffcc}
.compass2 .cp-tick{stroke:#ffffffe0}
.compass2 text{font-size:12px}
.compass2 span{background:#121216d9;padding:3px 10px;border-radius:99px;text-shadow:none}
/* barra mais compacta */
.viewer{--nb:84px}
.v-nav{height:64px;bottom:10px;border-radius:22px;padding:0 6px}
.v-tabs button{min-width:64px;padding:4px 2px;gap:3px;font-size:10px}
.v-tabs button svg{width:34px;height:34px;padding:8px;border-radius:11px}
.v-nav .lg{padding:0 12px 0 8px}
.v-nav .lg img{max-height:24px}
.v-tools{gap:6px;padding:0 8px}
.v-tools .iconbtn{width:32px;height:32px}
.viewer.preview{--nb:80px}

/* escolher foto do local */
.ph-ov{position:fixed;inset:0;z-index:100;background:#0008;display:grid;place-items:center;padding:20px}
.ph-box{background:#fff;color:#1d1d1f;border-radius:18px;padding:22px;width:min(920px,100%);max-height:86vh;overflow:auto}
.ph-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.ph-it{border:2px solid transparent;border-radius:12px;overflow:hidden;background:#f2f1ee;padding:0;cursor:pointer;text-align:left}
.ph-it:hover{border-color:var(--p)}
.ph-it img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.ph-it span{display:block;font-size:11px;padding:6px 8px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* pinos de referência em destaque: etiqueta em pílula com a cor da categoria + pino maior */
.poi-mk>div{filter:drop-shadow(0 4px 10px #000a)}
.poi-mk span{font-size:13px;font-weight:700;color:#fff;text-shadow:none;background:var(--c);padding:5px 12px;border-radius:99px;border:2px solid #fff;margin-bottom:4px;box-shadow:0 4px 14px #0007}
.poi-mk i{width:28px;height:28px;border-width:3px}
.poi-mk.on span{background:#fff;color:#111}
/* pinos limpos: só o pino colorido; o nome aparece ao passar o mouse, ao tocar ou quando selecionado */
.poi-mk span{opacity:0;transform:translateY(6px);transition:opacity .2s,transform .2s;pointer-events:none;background:#141418e6;border:1px solid var(--c)}
.poi-mk:hover span,.poi-mk.on span{opacity:1;transform:none}
.poi-mk.on span{background:var(--c);color:#fff;border-color:#fff}
.poi-mk i{width:24px;height:24px;border-width:3px;background:var(--c);box-shadow:0 0 0 4px #ffffff40,0 3px 10px #0009}
/* painel do sol redesenhado: faixa do céu (madrugada → dia → pôr do sol → noite), hora dentro do painel */
.sun-side{width:76px;padding:14px 0 12px;gap:10px;border-radius:38px;background:linear-gradient(180deg,#26272ef0,#151519f0);border:1px solid #ffffff2a}
.sun-side .track{width:76px;height:min(36vh,340px)}
.sun-side .track::before{width:8px;margin-left:-4px;border-radius:8px;background:linear-gradient(#2c3560 0%,#f6a75a 10%,#ffe6a8 22%,#ffffff 45%,#ffe6a8 72%,#f08a3c 88%,#2c3560 100%);box-shadow:0 0 12px #ffd27a33}
.sun-side .knob{width:26px;height:26px;margin:-13px 0 0 -13px;background:radial-gradient(circle,#fff 40%,#ffe2a0);box-shadow:0 0 0 5px #ffffff26,0 0 22px 6px #ffcf7a88}
.sun-side .hlbl{left:50%;right:auto;transform:translate(-50%,-50%);margin-top:-34px;font-size:13px;font-weight:700;padding:3px 8px;border-radius:99px;background:#000a;text-shadow:none}
.sun-side .sbtn{width:46px;height:46px;border-radius:50%;background:#ffffff14;border:1px solid #ffffff30}
.sun-side .sbtn:hover{background:var(--p)}
.sun-side .sinfo{max-width:70px;font-size:10px;gap:3px;opacity:.9}
.sun-side .sinfo b{font-size:13px;color:var(--p)}
/* botão do empreendimento vai para a barra inferior (o do mapa fica escondido) */
.viewer .go-proj{display:none}
.v-tools .go-btn{background:var(--p);border-color:#ffffff88}
/* régua do sol neutra (sem cores) */
.sun-side .track::before{width:4px;margin-left:-2px;background:#ffffff40;box-shadow:none}
.sun-side .knob{width:24px;height:24px;margin:-12px 0 0 -12px;background:#fff;box-shadow:0 0 0 5px #ffffff22,0 2px 8px #0008}
.sun-side .sinfo b{color:#fff}
/* bússola clean: só o círculo, o N e a agulha */
.compass2{width:72px}
.compass2 svg{width:64px;height:64px;background:#141418cc;border:1px solid #ffffff33;box-shadow:0 4px 14px #0006}
.compass2 .cp-tick,.compass2 .cp-l,.compass2 .cp-tail,.compass2 .cp-mark,.compass2 span{display:none}
.compass2 .cp-ring{stroke:#ffffff26}
.compass2 .cp-n{fill:#fff;font-size:15px}
.compass2 .cp-needle{fill:#fff}
.sun-side{top:104px}
/* categorias com cor: faixa colorida no topo de cada coluna e nos itens */
.cat-col{border-top:3px solid var(--c)}
.cat-col h4 i{width:12px;height:12px;box-shadow:0 0 0 3px #ffffff22}
.cat-col li:hover,.cat-col li.on{background:color-mix(in srgb,var(--c) 30%,transparent)}
/* painel do sol translúcido (vidro) */
.sun-side{background:#16161a73;backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);border:1px solid #ffffff30}
.compass2 svg{background:#16161a73;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
/* sem barra de rolagem nas colunas de categoria */
.cat-col ul{scrollbar-width:none}
.cat-col ul::-webkit-scrollbar{display:none}
/* sem etiqueta com o nome em cima do prédio */
.proj-mk.floating{display:none}

/* filtros de unidade menores e discretos */
.u-filters{left:50%;right:auto;transform:translateX(-50%);display:flex !important;gap:8px;max-width:calc(100% - 300px)}
.u-filters .fbox{padding:8px 12px;border-radius:14px;background:#16161a80}
.u-filters h5{font-size:10px;letter-spacing:.14em;text-transform:uppercase;opacity:.7;margin-bottom:6px;font-weight:600}
.u-filters .minlbl{font-size:12px;margin-bottom:2px}
.u-filters input[type=range]{width:150px}
.u-filters .chips button{height:30px;padding:0 10px;border-radius:10px;font-size:11px}
.entorno-sec:not(.u-mode) .u-filters{display:none !important}
/* cartão da unidade */
.u-tabs{display:flex;gap:4px;padding:8px 12px 0}
.u-tabs button{flex:1;height:32px;border-radius:10px;border:1px solid #ffffff30;background:#ffffff10;color:#fff;font-family:var(--head);font-size:12px;font-weight:600;cursor:pointer}
.u-tabs button.on{background:var(--p);border-color:var(--p)}
.u-card .pl.photo{background:#000}
.u-card .pl.photo img{width:100%;height:100%;object-fit:cover}
.u-card .price dd{font-size:20px;color:var(--p)}
/* info do sol limpa: mês + nascer/pôr */
.sun-side .sinfo{gap:2px}
.sun-side .sinfo span{font-size:11px;opacity:.75}
.sun-side .sinfo span:nth-of-type(1)::before{content:"↑ "}
.sun-side .sinfo span:nth-of-type(2)::before{content:"↓ "}
/* título da seção discreto no rodapé, à esquerda da barra */
.v-title{left:24px;bottom:26px}
.v-title h2{font-size:13px;font-weight:600;letter-spacing:.3em;opacity:.85;text-shadow:0 1px 6px #000a}
.v-title .bar{width:28px;height:2px;margin-top:6px}
.sun-side{top:auto;bottom:calc(var(--nb) + 14px);transform:none}
/* abas: destaque ao passar o mouse */
.v-tabs button{transition:color .2s,transform .2s}
.v-tabs button:hover{transform:translateY(-3px)}
.v-tabs button:hover svg{background:#ffffff40;border-color:#fff;box-shadow:0 0 0 3px #ffffff22,0 6px 16px #0006}
.v-tabs button:hover{color:#fff}
/* troca de aba: escurece e revela */
.v-veil{position:absolute;inset:0;z-index:15;background:#000;opacity:0;pointer-events:none}
.v-veil.go{animation:veil .9s ease}
@keyframes veil{0%{opacity:0}25%{opacity:.85}100%{opacity:0}}
/* abrir o empreendimento: fade-in da apresentação */
.viewer{animation:vin 1.2s ease}
@keyframes vin{from{opacity:0;filter:blur(6px)}to{opacity:1;filter:none}}
.sun-side{top:50%;bottom:auto;transform:translateY(-50%)}
.v-nav{bottom:48px}.viewer{--nb:122px}.viewer.preview{--nb:118px}
.v-nav{bottom:28px}.viewer{--nb:102px}.viewer.preview{--nb:98px}
/* barra do modo unidades no topo */
.u-bar{position:absolute;left:50%;top:18px;transform:translateX(-50%);z-index:8;display:none;gap:10px}
.entorno-sec.u-mode .u-bar{display:flex}
.u-grp{display:flex;gap:2px;padding:4px;border-radius:99px;background:#16161a80;border:1px solid #ffffff30;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.u-grp button{border:0;background:none;color:#fff;font-family:var(--head);font-size:12px;font-weight:600;padding:8px 16px;border-radius:99px;cursor:pointer}
.u-grp button.on{background:var(--p)}
/* botão lateral do empreendimento (liga/desliga a rotação em volta do prédio) */
.go-side{position:absolute;right:20px;top:50%;transform:translateY(-50%);z-index:20;width:52px;height:52px;border-radius:16px;display:grid;place-items:center;color:#fff;cursor:pointer;background:#16161a80;border:1px solid #ffffff40;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 6px 20px #0006;transition:background .2s,transform .2s}
.go-side svg{width:24px;height:24px}
.go-side:hover{transform:translateY(-50%) scale(1.06)}
.go-side.on{background:var(--p);border-color:#ffffffaa}
.u-card.on~.go-side,.entorno-sec.u-mode~.go-side{right:20px}
.u-card{right:86px}.poi-card{right:86px}
/* botão do empreendimento dentro da barra, à esquerda das abas */
.v-nav .go-side{position:static;transform:none;width:44px;height:44px;border-radius:13px;margin:0 6px 0 10px;align-self:center;box-shadow:none}
.v-nav .go-side:hover{transform:scale(1.06)}
.v-nav .go-side svg{width:20px;height:20px}
.u-card,.poi-card{right:20px}

/* editor: desenhar unidades na planta */
.fp-ed{position:relative;border-radius:12px;overflow:hidden;cursor:crosshair;background:#f2f1ee;max-width:900px;user-select:none}

/* tabela de unidades na apresentação */
.u-filters .u-open{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#fff;cursor:pointer;font-family:var(--head);font-size:12px;font-weight:600;min-width:110px}
.u-filters .u-open svg{width:20px;height:20px}
.u-filters .u-open:hover{background:var(--p)}
.u-table{position:absolute;inset:0;z-index:30;background:#000a;display:grid;place-items:center;padding:24px}
.ut-box{width:min(1100px,100%);max-height:calc(100% - 120px);display:flex;flex-direction:column;border-radius:22px;background:#16161af0;border:1px solid #ffffff30;color:#fff;overflow:hidden}
.ut-head{display:flex;align-items:center;gap:14px;padding:16px 20px;border-bottom:1px solid #ffffff20}
.ut-head h3{font-family:var(--head);font-size:18px;margin-right:auto}
.ut-head input{background:#ffffff14;border:1px solid #ffffff30;border-radius:10px;padding:9px 12px;color:#fff;font-size:14px;width:220px}
.ut-scroll{overflow:auto}
.ut-box table{width:100%;border-collapse:collapse;font-size:14px}
.ut-box th{position:sticky;top:0;background:#1e1e23;text-align:left;font-family:var(--head);font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.8;padding:10px 12px}
.ut-box td{padding:6px 12px;border-top:1px solid #ffffff10}
.ut-box td input,.ut-box td select{width:100%;background:#ffffff10;border:1px solid #ffffff25;border-radius:8px;padding:8px 10px;color:#fff;font-size:14px}
.ut-box td select option{color:#111}
.ut-box select.st-disponivel{background:#22c27a55;border-color:#22c27a}
.ut-box select.st-reservado{background:#f28c2855;border-color:#f28c28}
.ut-box select.st-vendido{background:#e03b3b55;border-color:#e03b3b}
/* pinos discretos: menores e translúcidos; ficam fortes ao passar o mouse ou selecionar */
.poi-mk i{width:19px;height:19px;border-width:2px;opacity:.88;box-shadow:0 2px 6px #0006}
.poi-mk:hover i,.poi-mk.on i{opacity:1;width:22px;height:22px}
.go-side.saved{box-shadow:0 0 0 4px #ffffffaa,0 0 20px var(--p)}
/* toque: o mapa recebe todos os gestos (sem rolar/zoom da página) */
.map3d,.map3d canvas{touch-action:none;-webkit-user-select:none;user-select:none}
.viewer{-webkit-tap-highlight-color:transparent}
.v-tabs button,.go-side,.u-grp button,.cat-col li,.chips button{touch-action:manipulation}
/* transições de aba mais suaves */
.v-veil.go{animation:veil 1.2s cubic-bezier(.65,0,.35,1)}
@keyframes veil{0%{opacity:0}35%{opacity:.6}100%{opacity:0}}
.v-sec{transition:opacity .9s cubic-bezier(.65,0,.35,1),visibility .9s}
/* ===== filtros de unidade: uma barra só, limpa ===== */
.u-filters{gap:0;padding:6px;border-radius:22px;background:#15161acc;border:1px solid #ffffff26;backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);box-shadow:0 12px 40px #0006;align-items:stretch}
.u-filters .fbox{background:none!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;border-radius:0;padding:8px 18px;position:relative;display:flex;flex-direction:column;justify-content:center}
.u-filters .fbox+.fbox::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:1px;background:#ffffff1f}
.u-filters h5{font-size:9.5px;letter-spacing:.18em;opacity:.55;margin-bottom:8px}
.u-filters .minlbl{font-family:var(--head);font-size:14px;font-weight:600}
.u-filters input[type=range]{width:160px;height:4px;margin-top:8px}
.u-filters .chips{gap:4px;flex-wrap:nowrap}
.u-filters .chips button{height:30px;padding:0 12px;border-radius:99px;border:1px solid transparent;background:#ffffff12;font-size:11.5px;font-weight:600;white-space:nowrap;transition:background .2s}
.u-filters .chips button:hover{background:#ffffff26}
.u-filters .chips button.disponivel::before,.u-filters .chips button.reservado::before,.u-filters .chips button.vendido::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:1px}
.u-filters .chips button.disponivel::before{background:#14e07f}.u-filters .chips button.reservado::before{background:#ff9a1f}.u-filters .chips button.vendido::before{background:#ff2e2e}
.u-filters .chips button.disponivel.on{background:#14e07f33;border-color:#14e07f}.u-filters .chips button.reservado.on{background:#ff9a1f33;border-color:#ff9a1f}.u-filters .chips button.vendido.on{background:#ff2e2e33;border-color:#ff2e2e}
.u-filters .u-open{margin-left:6px;min-width:0;padding:0 18px!important;flex-direction:row!important;gap:8px;border-radius:16px!important;background:var(--p)!important;font-size:12.5px}
.u-filters .u-open::before{display:none}
.u-filters .u-open svg{width:16px;height:16px}
/* ===== tabela de unidades ===== */
.u-table{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:vin .35s ease}
.ut-box{background:#121317f2;border-color:#ffffff1f;box-shadow:0 30px 80px #000a}
.ut-head{gap:18px;padding:18px 22px}
.ut-head h3{font-size:20px;margin:0}
.ut-head p{font-size:11.5px;opacity:.5;margin-top:2px}
.ut-head>div:first-child{margin-right:auto}
.ut-sum{display:flex;gap:8px}
.ut-sum span{display:flex;align-items:center;gap:7px;padding:6px 12px;border-radius:99px;background:#ffffff0d;font-size:12px}
.ut-sum span b{font-family:var(--head);font-size:15px}
.ut-sum .disponivel b{color:#14e07f}.ut-sum .reservado b{color:#ff9a1f}.ut-sum .vendido b{color:#ff2e2e}
.ut-head input{border-radius:99px;padding:9px 16px;width:200px}
.ut-box th{background:#16171c;font-size:10px;opacity:.6;padding:12px 14px}
.ut-box td{padding:8px 14px;border-top:1px solid #ffffff0a}
.ut-box tr:hover td{background:#ffffff06}
.ut-box td:first-child b{font-family:var(--head);font-size:16px}
.ut-box td input{background:transparent;border:1px solid transparent;border-radius:10px;padding:8px 10px;transition:border-color .2s,background .2s}
.ut-box td input:hover{border-color:#ffffff22}
.ut-box td input:focus{border-color:var(--p);background:#ffffff0a;outline:none}
.ut-st{display:inline-flex;gap:3px;padding:3px;border-radius:99px;background:#ffffff0d}
.ut-st button{border:0;background:none;color:#ffffffa0;font-family:var(--head);font-size:11px;font-weight:600;padding:6px 11px;border-radius:99px;cursor:pointer;transition:background .2s,color .2s}
.ut-st button:hover{color:#fff}
.ut-st button.disponivel.on{background:#14e07f;color:#062b18}.ut-st button.reservado.on{background:#ff9a1f;color:#3a2000}.ut-st button.vendido.on{background:#ff2e2e;color:#fff}
.ut-box td{white-space:nowrap}.ut-box td:nth-child(7) input{min-width:220px}
.u-filters{max-width:calc(100% - 200px);overflow-x:auto;scrollbar-width:none}.u-filters::-webkit-scrollbar{display:none}.u-filters .fbox,.u-filters .u-open{flex:0 0 auto}
/* Entorno ↔ Unidades: painéis trocam com fade (sem corte) */
.entorno-sec .cat-panel,.entorno-sec .u-filters,.entorno-sec .u-bar{display:flex!important;transition:opacity .6s ease,transform .6s ease,visibility .6s}
.entorno-sec .cat-panel{display:grid!important}
.entorno-sec:not(.u-mode) .u-filters,.entorno-sec:not(.u-mode) .u-bar,.entorno-sec.u-mode .cat-panel{opacity:0;visibility:hidden;pointer-events:none}
.entorno-sec:not(.u-mode) .u-filters{transform:translate(-50%,16px)}
.entorno-sec.u-mode .cat-panel{transform:translateY(16px)}
.entorno-sec:not(.u-mode) .u-bar{transform:translate(-50%,-12px)}
/* botão da tabela: discreto, dentro da barra */
.u-filters .u-open{margin:4px 4px 4px 8px;padding:0 16px!important;height:auto;min-width:0;border-radius:16px!important;background:#ffffff14!important;border:1px solid #ffffff2a!important;display:flex;flex-direction:column!important;align-items:center;justify-content:center;gap:4px;color:#fff;font-family:var(--head);font-size:11px;font-weight:600;cursor:pointer;transition:background .2s}
.u-filters .u-open:hover{background:var(--p)!important;border-color:var(--p)!important}
.u-filters .u-open svg{width:18px;height:18px}
/* tabela agrupada por andar */
.ut-box th{padding:12px 16px}
.ut-box td{padding:7px 16px}
.ut-box tr.ut-floor td{position:sticky;top:38px;background:#1b1c21;font-family:var(--head);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#ffffff99;padding:9px 16px;border-top:1px solid #ffffff14}
.ut-box tbody tr:not(.ut-floor) td:first-child{border-left:3px solid transparent}
.ut-box tr.ur-disponivel td:first-child{border-left-color:#14e07f}.ut-box tr.ur-reservado td:first-child{border-left-color:#ff9a1f}.ut-box tr.ur-vendido td:first-child{border-left-color:#ff2e2e}
.ut-unit{display:flex;flex-direction:column;line-height:1.15}
.ut-unit b{font-family:var(--head);font-size:16px}
.ut-unit span{font-size:11px;opacity:.55}
.ut-money{display:flex;align-items:center;gap:4px}
.ut-money span{font-size:12px;opacity:.5}
.ut-money input{width:120px}
.ut-box td:nth-child(3) input{width:90px}
.ut-box td:nth-child(5) input{min-width:260px}
.ut-st button{padding:6px 10px;font-size:10.5px}
.u-bar{flex-wrap:wrap;justify-content:center;max-width:calc(100% - 240px)}
/* atmosfera como no Space: véu de névoa clara que cresce para o horizonte + leve brilho/bloom */
.map3d::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
  background:linear-gradient(180deg,rgba(225,234,242,.78) 0%,rgba(225,234,242,.45) 18%,rgba(230,236,240,.14) 42%,rgba(240,240,236,0) 62%),
             radial-gradient(ellipse at 50% 55%,rgba(255,250,240,0) 40%,rgba(235,240,245,.18) 100%);
  mix-blend-mode:screen;transition:opacity 1s}
.map3d canvas{filter:saturate(1.08) contrast(.94) brightness(1.04)}
.viewer.night .map3d::after{opacity:0}
/* atmosfera mais viva e enevoada (Space) */
.map3d::after{background:linear-gradient(180deg,rgba(232,240,247,.92) 0%,rgba(228,237,245,.62) 22%,rgba(230,238,244,.26) 45%,rgba(240,242,240,.06) 65%,rgba(240,240,236,0) 80%);mix-blend-mode:normal}
.map3d canvas{filter:saturate(1.22) contrast(.96) brightness(1.06)}
/* névoa mais leve e azulada, só no horizonte (não lava a cidade) */
.map3d::after{background:linear-gradient(180deg,rgba(190,212,232,.55) 0%,rgba(200,218,234,.28) 16%,rgba(210,224,236,.08) 32%,rgba(220,228,236,0) 45%);mix-blend-mode:normal}
.map3d canvas{filter:saturate(1.18) contrast(1.02) brightness(1.02)}
/* login */
.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 30% 20%,#23242b,#0b0b0d);padding:20px}
.login form{width:min(380px,100%);display:flex;flex-direction:column;gap:12px;padding:32px;border-radius:22px;background:#16171cf0;border:1px solid #ffffff1f;color:#fff}
.login h2{font-family:var(--head);font-size:24px;margin-top:14px}
.login input{background:#ffffff10;border:1px solid #ffffff2a;border-radius:12px;padding:12px 14px;color:#fff;font-size:15px}
.login .btn{justify-content:center;height:46px}
/* desempenho: sem filtro de cor sobre o canvas do mapa (recalculava a tela inteira a cada quadro) */
.map3d canvas{filter:none}
/* névoa só uma faixa fina no horizonte (céu limpo) */
.map3d::after{background:linear-gradient(180deg,rgba(200,220,240,.35) 0%,rgba(210,226,240,.12) 10%,rgba(220,230,240,0) 22%)}

/* controle do sol fino e discreto */
.sun-side{width:44px;padding:10px 0 8px;gap:6px;border-radius:22px;background:#16161a4d;border:1px solid #ffffff1f}
.sun-side .track{width:44px;height:min(30vh,260px)}
.sun-side .track::before{width:2px;margin-left:-1px;background:#ffffff4d}
.sun-side .knob{width:14px;height:14px;margin:-7px 0 0 -7px;box-shadow:0 0 0 3px #ffffff22,0 1px 4px #0008}
.sun-side .hlbl{margin-top:-22px;font-size:10.5px;padding:2px 6px;background:#0008}
.sun-side .sbtn{width:30px;height:30px}
.sun-side .sbtn svg{width:15px;height:15px}
.sun-side .sinfo{font-size:8.5px;max-width:42px}
.sun-side .sinfo b{font-size:10.5px}

/* aba que esconde o painel de pontos */
.cat-toggle{position:absolute;left:50%;bottom:calc(var(--nb, 80px) + 182px);transform:translateX(-50%);z-index:7;display:flex;align-items:center;gap:6px;padding:4px 12px 4px 10px;border-radius:99px;background:#16161a99;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid #ffffff2a;color:#fff;font-size:11px;font-weight:600;cursor:pointer;transition:bottom .45s ease,opacity .3s}
.cat-toggle i{width:8px;height:8px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg) translate(-2px,-2px);transition:transform .3s}
.entorno-sec .cat-panel{transition:opacity .45s ease,transform .45s ease,visibility .45s}
.entorno-sec.cats-off .cat-panel{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(40px)}
.entorno-sec.cats-off .cat-toggle{bottom:calc(var(--nb, 80px) + 14px)}
.entorno-sec.cats-off .cat-toggle i{transform:rotate(-135deg) translate(-2px,-2px)}
.entorno-sec.u-mode .cat-toggle{opacity:0;pointer-events:none}
/* aba dos pontos: pílula com ícone de pino e brilho suave */
.cat-toggle{gap:8px;padding:7px 16px 7px 12px;font-size:12px;letter-spacing:.02em;background:linear-gradient(180deg,#2a2b31e6,#17181ce6);border:1px solid #ffffff26;box-shadow:0 6px 18px #0006,inset 0 1px 0 #ffffff1a}
.cat-toggle:hover{background:linear-gradient(180deg,#34353de6,#1d1e23e6);border-color:var(--p,#e8a54b)}
.cat-toggle i{width:16px;height:16px;border:0;transform:none;background:var(--p,#e8a54b);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5 7 13 7 13s7-8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5 7 13 7 13s7-8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") center/contain no-repeat}
.entorno-sec.cats-off .cat-toggle i{transform:none}
.cat-toggle::after{content:"";width:6px;height:6px;margin-left:2px;border-right:1.5px solid #fff9;border-bottom:1.5px solid #fff9;transform:rotate(45deg) translateY(-2px);transition:transform .3s}
.entorno-sec.cats-off .cat-toggle::after{transform:rotate(-135deg) translate(-2px,-1px)}

/* céu atrás do mapa: em pitch alto o MapLibre deixa o fundo vazio (era a faixa preta) */
.map3d{background:linear-gradient(180deg,#e9eef1 0%,#e4e9eb 100%)}
.map3d .maplibregl-canvas{background:transparent}
/* bloom */
.orb-bloom{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;mix-blend-mode:screen;filter:brightness(.66) contrast(7) blur(14px) saturate(.6)}
/* configurações de qualidade */
.q-btn{position:absolute;left:24px;top:96px;z-index:8;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#16161a80;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid #ffffff2a;color:#fff;cursor:pointer}
.q-btn svg{width:18px;height:18px}
.q-panel{position:absolute;left:76px;top:96px;z-index:9;width:min(420px,calc(100% - 100px));padding:6px 0 10px;border-radius:14px;background:#111216e6;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid #ffffff22;color:#fff;font-size:12px;display:none;box-shadow:0 12px 40px #0008}
.q-panel.on{display:block}
.q-hd{display:flex;justify-content:space-between;align-items:center;padding:8px 16px 10px;font-family:var(--head);font-size:13px;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid #ffffff14;margin-bottom:4px}
.q-hd button{background:none;border:0;color:#fff;font-size:16px;cursor:pointer}
.q-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 16px}
.q-row>span{text-transform:uppercase;letter-spacing:.06em;font-size:11px;opacity:.85}
.q-opts{display:flex;gap:2px}
.q-opts button{background:none;border:0;color:#ffffff70;font-size:11.5px;font-weight:600;padding:4px 7px;border-radius:6px;cursor:pointer;text-transform:uppercase}
.q-opts button.on{color:#6cc4ff;background:#ffffff10}
.q-row input[type=range]{width:160px}

/* botão do empreendimento: cor normal; ao clicar, um pulso rápido */
.viewer .v-nav .go-side,.viewer .v-nav .go-side.on{background:#ffffff14;color:#fff;box-shadow:none;border-color:#ffffff30}
.v-nav .go-side.pulse{animation:goPulse .7s ease}
@keyframes goPulse{0%{transform:scale(1);box-shadow:0 0 0 0 #e8a54b99}35%{transform:scale(.9);background:#e8a54b}100%{transform:scale(1);box-shadow:0 0 0 14px #e8a54b00}}

/* abas: cor normal sempre; ao clicar, só um pulso */
.viewer .v-tabs button.on svg,.viewer .v-tabs button svg{background:#ffffff14;border-color:#ffffff30}
.viewer .v-tabs button.pulse svg{animation:goPulse .7s ease}

/* abas: nada é cortado (sem rolagem na barra); pulso só com escala, sem anel */
.viewer .v-tabs{overflow:visible}
.viewer .v-tabs button:hover{transform:none}
.viewer .v-tabs button:hover svg{transform:none}
.viewer .v-tabs button.pulse svg,.viewer .v-tabs .tab-emp.pulse svg{animation:tabPulse .55s ease}
@keyframes tabPulse{0%{transform:scale(1)}35%{transform:scale(.86);background:#e8a54b}100%{transform:scale(1)}}
.viewer .v-tabs .tab-emp{position:static;transform:none;width:auto;height:auto;margin:0;background:none!important;border:0;box-shadow:none!important}
/* iPad/tablet: barra inteira na tela, sem cortar a primeira aba */
@media (max-width:1366px){
  .viewer .v-nav{max-width:calc(100% - 24px)}
  .viewer .v-nav .lg{display:none}
  .viewer .v-tabs{padding:0 4px;gap:0}
  .viewer .v-tabs button{min-width:62px;padding:6px 2px;font-size:9.5px}
  .viewer .v-tools{gap:4px}
}

.orb-dust{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;mix-blend-mode:screen}

/* tabela de unidades clean */
.u-table .ut-box{background:#111215f2;border:1px solid #ffffff14}
.u-table thead th{font-size:10px;letter-spacing:.14em;color:#ffffff66;font-weight:600;border-bottom:1px solid #ffffff10}
.u-table tbody td{border-bottom:1px solid #ffffff08;padding-top:9px;padding-bottom:9px}
.u-table .ut-floor td{background:none;color:#ffffff55;font-size:10px;padding-top:18px;border-bottom:0}
.u-table input{background:none;border:0;border-bottom:1px solid transparent;border-radius:0;color:#fff;padding:3px 0}
.u-table input:hover:not(:disabled),.u-table input:focus{border-bottom-color:#ffffff30;outline:none}
.u-table .ut-money span{color:#ffffff55}
.ut-chip{border:0;border-radius:99px;padding:4px 12px;font-size:11px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;background:#ffffff0d;color:#ddd}
.ut-chip::before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor}
.ut-chip.disponivel{color:#3fd68a}.ut-chip.reservado{color:#f5a742}.ut-chip.vendido{color:#f15b5b}
.ut-chip:disabled{cursor:default}

/* ===== Editor com a cara da Universe: preto, laranja e branco ===== */
.editor{--bg:#f4f3f0;--panel:#ffffff;--panel2:#f2f1ee;--line:#e8e5df;--fg:#141416;--muted:#8c8892;--uo:#f26b21}
.ed-top{background:#0e0e10;border-bottom:1px solid #ffffff12;color:#fff}
.ed-top .ed-back{color:#ffffff80}.ed-top .ed-back:hover{color:#fff}
.ed-title b{color:#fff;letter-spacing:.01em}
.ed-title span{color:#ffffff66}
.ed-title .saved{color:#5fd39a}
.ed-title .saved::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:#5fd39a;margin-right:6px;vertical-align:middle}
.ed-top .btn{background:#ffffff10;border:1px solid #ffffff22;color:#fff}
.ed-top .btn:hover{background:var(--uo);border-color:var(--uo)}
.ed-rail{background:#0e0e10;border-right:1px solid #ffffff10;padding:16px 10px}
.ed-rail a{color:#ffffffa6;font-size:13px;padding:10px 12px;border-radius:10px}
.ed-rail a svg{opacity:.6}
.ed-rail a:hover{background:#ffffff0c;color:#fff}
.ed-rail a.on{background:linear-gradient(90deg,#f26b2124,#f26b2108);color:#fff;box-shadow:inset 3px 0 0 var(--uo)}
.ed-rail a.on svg{color:var(--uo);opacity:1}
.ed-rail a i{border-color:#ffffff30}
.ed-rail a i.done{background:var(--uo);border-color:var(--uo)}
.ed-preview{background:radial-gradient(ellipse at 50% 35%,#ffffff 0%,#efeee9 70%)}
.ed-cap{letter-spacing:.24em;color:#a9a5ad}
.ed-device{box-shadow:0 30px 70px #0000002e,0 0 0 1px #00000010}
.ed-form,.ed-body>section:last-child{background:#fff}
.ed-head h1{font-size:26px;font-weight:700;letter-spacing:-.01em}
.ed-head h1::after{content:'';display:block;width:28px;height:3px;border-radius:3px;background:var(--uo);margin-top:10px}
.editor label,.editor .f>span,.editor .hint{color:#7d7983}
.editor input:not([type=color]):not([type=range]):not([type=checkbox]),.editor select,.editor textarea{background:#f6f5f2;border:1px solid #ebe8e2;border-radius:10px;transition:border-color .15s,background .15s}
.editor input:focus,.editor select:focus,.editor textarea:focus{border-color:var(--uo);background:#fff;outline:none;box-shadow:0 0 0 3px #f26b211f}
/* seletor de cor: bolinha + código */
.editor input[type=color]{-webkit-appearance:none;appearance:none;width:100%;height:46px;padding:5px;border:1px solid #ebe8e2;border-radius:12px;background:#f6f5f2;cursor:pointer}
.editor input[type=color]::-webkit-color-swatch-wrapper{padding:0}
.editor input[type=color]::-webkit-color-swatch{border:0;border-radius:8px;box-shadow:inset 0 0 0 1px #00000014}
.editor .btn.pri,.editor .btn.sm.pri{background:var(--uo);border-color:var(--uo);color:#fff}
.editor .btn.pri:hover{filter:brightness(1.08)}
.editor .btn:not(.pri){border-radius:10px}
.editor .seg{background:#f1efeb;border-radius:12px;padding:4px}
.editor .seg button.on{background:#141416;color:#fff;box-shadow:none}
/* miniatura do logo claro em fundo escuro (dá para ver o logo branco) */
.editor .logo-thumb,.editor .thumb.logo{background:#141416}
.editor .imgpick .pv{background-color:#1a1a1d;background-size:contain;background-repeat:no-repeat;background-position:center;border-radius:12px;border:1px solid #ffffff10}

/* ===== Páginas brancas + botões neumorphism (home, login e editor) ===== */
.home,.editor{--nb-bg:#ffffff;--nb-s1:#d9dbe0;--nb-s2:#ffffff}
.home{background:#fff;color:#141416;--fg:#141416;--muted:#8c8892;--line:#ecebe8;--panel:#fff;--panel2:#f7f7f8}
.home .brand b{color:#141416}.home .brand span{color:#8c8892}
.home .muted{color:#7d7983}
.home .tag.p{background:#f26b2114;color:#f26b21;border:0}
.pcard{background:#fff;border:0;border-radius:20px;box-shadow:10px 10px 24px #e0e2e6,-10px -10px 24px #ffffff}
.pcard:hover{transform:translateY(-4px);box-shadow:14px 14px 30px #d8dade,-14px -14px 30px #ffffff}
.pcard h3{color:#141416}
.pcard.new{border:0;color:#8c8892}
.pcard.new i{border:0;box-shadow:inset 4px 4px 10px #e0e2e6,inset -4px -4px 10px #ffffff;color:#f26b21}
.editor .ed-body,.editor .ed-main,.editor .ed-form{background:#fff}
.editor .ed-preview{background:#fff}
.editor .ed-device{box-shadow:16px 16px 40px #dcdee2,-16px -16px 40px #ffffff}
.ed-body.wide .box{background:#fff;border:0;box-shadow:10px 10px 26px #e3e5e9,-10px -10px 26px #ffffff;border-radius:20px}
/* botões: alto relevo suave; pressionado: baixo relevo */
.home .btn,.editor .ed-body .btn,.editor .ed-main .btn{background:#fff;color:#141416;border:0;border-radius:14px;box-shadow:5px 5px 12px #dfe1e5,-5px -5px 12px #ffffff;transition:box-shadow .2s,transform .1s,color .2s}
.home .btn:hover,.editor .ed-body .btn:hover{background:#fff;color:#f26b21;box-shadow:7px 7px 16px #d8dade,-7px -7px 16px #ffffff}
.home .btn:active,.editor .ed-body .btn:active{box-shadow:inset 4px 4px 10px #dfe1e5,inset -4px -4px 10px #ffffff;transform:translateY(1px)}
.home .btn.pri,.editor .ed-body .btn.pri{background:#f26b21;color:#fff;box-shadow:5px 5px 14px #f26b2147,-5px -5px 12px #ffffff}
.home .btn.pri:hover,.editor .ed-body .btn.pri:hover{color:#fff;filter:brightness(1.06)}
.home .btn.ghost,.editor .ed-body .btn.ghost{background:#fff}
.editor .ed-body .btn:disabled{opacity:.45;box-shadow:none}
.editor .seg{background:#fff;box-shadow:inset 4px 4px 10px #e3e5e9,inset -4px -4px 10px #ffffff;border-radius:16px;padding:5px}
.editor .seg button{border-radius:12px}
.editor .seg button.on{background:#fff;color:#f26b21;box-shadow:4px 4px 10px #dfe1e5,-4px -4px 10px #ffffff}
.editor input:not([type=color]):not([type=range]):not([type=checkbox]),.editor select,.editor textarea{background:#fff;border:0;border-radius:12px;box-shadow:inset 3px 3px 8px #e6e8ec,inset -3px -3px 8px #ffffff}
.editor input[type=color]{background:#fff;border:0;box-shadow:inset 3px 3px 8px #e6e8ec,inset -3px -3px 8px #ffffff}
.editor .box{border-top-color:#f0efec}
.editor .item{background:#fff;border:0;border-radius:14px;box-shadow:4px 4px 12px #e6e8ec,-4px -4px 12px #ffffff}
.editor{--bg:#ffffff}
.editor .ed-body.wide,.editor .ed-body.wide>*:not(.ed-rail){background:#fff}
.editor .drop{background:#fff;border:0;border-radius:18px;box-shadow:inset 5px 5px 14px #e6e8ec,inset -5px -5px 14px #ffffff;min-height:150px;padding:26px}
.editor .drop svg{width:34px!important;height:34px!important;color:#f26b21;margin-bottom:8px}
.editor .drop:hover{box-shadow:inset 7px 7px 18px #e0e2e6,inset -7px -7px 18px #ffffff}

/* ======================================================================
   ESTILO ÓRBITA 1.1 — vidro fosco (glassmorphism): perolado, translúcido,
   brilho na borda de cima, sombra macia. Vale para editor, lista e imersão.
   ====================================================================== */
:root{--g-bg:radial-gradient(120% 90% at 20% 0%,#f4f6f8 0%,#e6eaee 45%,#d9dee4 100%);
  --g-glass:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,.38));
  --g-edge:1px solid rgba(255,255,255,.85);
  --g-sh:inset 0 1px 1px rgba(255,255,255,.95),inset 0 -6px 14px rgba(30,40,60,.05),0 10px 30px rgba(40,50,70,.12),0 2px 6px rgba(40,50,70,.06);
  --g-blur:blur(18px) saturate(1.35);
  --g-or:linear-gradient(180deg,rgba(255,160,100,.95),rgba(242,107,33,.92));}
/* ---------- páginas (lista de projetos e editor) ---------- */
.home,.editor,.editor .ed-body,.editor .ed-body.wide,.editor .ed-body.wide>*:not(.ed-rail),.editor .ed-main,.editor .ed-form,.editor .ed-preview{background:var(--g-bg)!important}
.home{background-attachment:fixed}
.ed-top{background:rgba(255,255,255,.55);backdrop-filter:var(--g-blur);-webkit-backdrop-filter:var(--g-blur);border-bottom:1px solid rgba(255,255,255,.8);box-shadow:0 4px 20px rgba(40,50,70,.06);color:#141416}
.ed-title b{color:#141416}.ed-title span{color:#8a8f98}.ed-top .ed-back{color:#7c818b}.ed-top .ed-back:hover{color:#141416}
.ed-rail{background:rgba(255,255,255,.4);backdrop-filter:var(--g-blur);-webkit-backdrop-filter:var(--g-blur);border-right:1px solid rgba(255,255,255,.75)}
.ed-rail a{color:#5d6370}.ed-rail a:hover{background:rgba(255,255,255,.55);color:#141416}
.ed-rail a.on{background:var(--g-glass);color:#141416;box-shadow:var(--g-sh);border:var(--g-edge)}
.ed-rail a.on svg{color:#f26b21}
.ed-rail a i{border-color:#c7ccd3}.ed-rail a i.done{background:#f26b21;border-color:#f26b21}
.ed-body>section:last-child,.editor .ed-form{background:rgba(255,255,255,.35)!important;backdrop-filter:var(--g-blur)}
.ed-device{border-radius:22px;overflow:hidden;box-shadow:0 30px 60px rgba(40,50,70,.18),0 0 0 1px rgba(255,255,255,.9)!important}
/* botões: pílula de vidro com brilho em cima */
.home .btn,.editor .btn,.ed-top .btn{background:var(--g-glass)!important;border:var(--g-edge)!important;color:#1d2027!important;border-radius:999px!important;box-shadow:var(--g-sh)!important;backdrop-filter:var(--g-blur);-webkit-backdrop-filter:var(--g-blur);transition:transform .15s,box-shadow .2s,filter .2s}
.home .btn:hover,.editor .btn:hover,.ed-top .btn:hover{transform:translateY(-1px);filter:brightness(1.03);box-shadow:inset 0 1px 1px #fff,0 14px 34px rgba(40,50,70,.16)!important;color:#f26b21!important}
.home .btn:active,.editor .btn:active{transform:translateY(1px);box-shadow:inset 0 3px 10px rgba(40,50,70,.15)!important}
.home .btn.pri,.editor .btn.pri,.ed-top .btn.pri{background:var(--g-or)!important;color:#fff!important;border:1px solid rgba(255,210,180,.9)!important;box-shadow:inset 0 1px 1px rgba(255,255,255,.7),inset 0 -6px 12px rgba(160,50,0,.15),0 10px 26px rgba(242,107,33,.35)!important}
.home .btn.pri:hover,.editor .btn.pri:hover{color:#fff!important}
/* campos: vidro afundado */
.editor input:not([type=color]):not([type=range]):not([type=checkbox]),.editor select,.editor textarea,.editor input[type=color]{background:rgba(255,255,255,.5)!important;border:1px solid rgba(255,255,255,.9)!important;border-radius:14px!important;box-shadow:inset 0 2px 6px rgba(40,50,70,.08)!important}
.editor input:focus,.editor select:focus,.editor textarea:focus{border-color:#f7a26b!important;box-shadow:inset 0 2px 6px rgba(40,50,70,.08),0 0 0 4px rgba(242,107,33,.15)!important}
/* segmentado (ex.: Selecionar / Criar / Cortar) */
.editor .seg{background:rgba(255,255,255,.35)!important;border:var(--g-edge);border-radius:999px!important;box-shadow:inset 0 2px 8px rgba(40,50,70,.08)!important;padding:4px}
.editor .seg button{border-radius:999px!important}
.editor .seg button.on{background:var(--g-glass)!important;color:#f26b21!important;box-shadow:var(--g-sh)!important;border:var(--g-edge)}
/* cartões e caixas */
.pcard,.ed-body.wide .box,.editor .item,.editor .drop{background:var(--g-glass)!important;border:var(--g-edge)!important;box-shadow:var(--g-sh)!important;backdrop-filter:var(--g-blur);-webkit-backdrop-filter:var(--g-blur);border-radius:24px!important}
.editor .item{border-radius:16px!important}
.editor .drop{box-shadow:inset 0 2px 10px rgba(40,50,70,.08)!important}
.pcard:hover{transform:translateY(-4px)}
.editor .edmap{border-radius:22px;border:var(--g-edge);box-shadow:var(--g-sh)}
.editor .imgpick .pv{background-color:#1d2027}
/* ---------- imersão (apresentação): vidro fosco claro sobre a cena ---------- */
.viewer{--glass:linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,255,255,.12));--glass-b:1px solid rgba(255,255,255,.55);
  --glass-sh:inset 0 1px 1px rgba(255,255,255,.75),inset 0 -8px 18px rgba(0,0,0,.05),0 14px 40px rgba(10,15,25,.28);--glass-f:blur(24px) saturate(1.45)}
.v-nav{border-radius:999px!important}
.v-tabs button svg{background:linear-gradient(180deg,rgba(255,255,255,.45),rgba(255,255,255,.12))!important;border:1px solid rgba(255,255,255,.7)!important;box-shadow:inset 0 1px 1px rgba(255,255,255,.9),0 4px 10px rgba(0,0,0,.15)!important;border-radius:50%!important}
.v-tools .iconbtn,.q-btn,.compass2,.cat-toggle{background:linear-gradient(180deg,rgba(255,255,255,.4),rgba(255,255,255,.12))!important;border:1px solid rgba(255,255,255,.65)!important;box-shadow:inset 0 1px 1px rgba(255,255,255,.9),0 8px 22px rgba(0,0,0,.22)!important;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);color:#fff}
.cat-toggle{border-radius:999px!important}
.sun-side,.q-panel,.u-card,.poi-card,.cat-col,.u-filters .fbox,.u-bar .u-grp,.sun-pop{background:var(--glass)!important;border:var(--glass-b)!important;box-shadow:var(--glass-sh)!important;backdrop-filter:var(--glass-f)!important;-webkit-backdrop-filter:var(--glass-f)!important}
.q-panel,.u-card,.poi-card,.sun-pop{border-radius:26px!important}
.u-bar .u-grp{border-radius:999px!important}
.u-bar .u-grp button.on,.q-opts button.on,.chips button.on{background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(255,255,255,.5))!important;color:#1d2027!important;box-shadow:inset 0 1px 1px #fff,0 4px 12px rgba(0,0,0,.18)!important;border-radius:999px}
.q-opts button.on{color:#f26b21!important}
.viewer .v-nav{background:linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,255,255,.12))!important;border:1px solid rgba(255,255,255,.55)!important;box-shadow:inset 0 1px 1px rgba(255,255,255,.75),0 14px 40px rgba(10,15,25,.3)!important;backdrop-filter:blur(24px) saturate(1.45)!important;-webkit-backdrop-filter:blur(24px) saturate(1.45)!important}
.viewer .v-tabs button{color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.45)}
.viewer .cat-toggle{color:#fff}
.home{background:var(--g-bg)!important}
/* interação: luz que segue o mouse */
.home,.editor .ed-body{position:relative}
.home::before,.editor .ed-body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(520px circle at var(--px,50%) var(--py,30%),rgba(255,255,255,.75),rgba(255,255,255,0) 60%),
             radial-gradient(900px circle at calc(100% - var(--px,50%)) calc(100% - var(--py,30%)),rgba(242,107,33,.07),transparent 60%);transition:background .2s}
.home>*,.editor .ed-body>*{position:relative;z-index:1}
:is(.btn,.pcard,.box,.item,.ed-rail a,.v-tabs button,.cat-col,.q-panel,.u-card,.poi-card,.cat-toggle,.q-btn,.seg button){position:relative;overflow:hidden;isolation:isolate}
:is(.btn,.pcard,.box,.item,.ed-rail a,.cat-col,.q-panel,.u-card,.poi-card,.cat-toggle,.q-btn,.seg button)::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;opacity:0;transition:opacity .25s;
  background:radial-gradient(140px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.65),rgba(255,255,255,0) 70%)}
:is(.btn,.pcard,.box,.item,.ed-rail a,.cat-col,.q-panel,.u-card,.poi-card,.cat-toggle,.q-btn,.seg button):hover::after{opacity:1}
.btn.pri::after{background:radial-gradient(120px circle at var(--mx,50%) var(--my,50%),rgba(255,230,210,.6),transparent 70%)!important}
.viewer .v-nav::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(200px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.35),transparent 70%)}
.viewer .v-nav:hover::after{opacity:1}
.viewer .v-tabs button:hover svg{transform:translateY(-2px) scale(1.06)!important;box-shadow:inset 0 1px 1px #fff,0 8px 18px rgba(0,0,0,.25)!important;transition:transform .2s,box-shadow .2s}
.pcard{transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.pcard:hover{transform:translateY(-6px) scale(1.01)}
/* filtros de unidades: uma pílula de vidro só, leve e fina */
.viewer .u-filters{background:linear-gradient(180deg,rgba(255,255,255,.26),rgba(255,255,255,.08))!important;border:1px solid rgba(255,255,255,.5)!important;border-radius:999px!important;
  box-shadow:inset 0 1px 1px rgba(255,255,255,.7),0 10px 30px rgba(10,15,25,.22)!important;backdrop-filter:blur(22px) saturate(1.4)!important;-webkit-backdrop-filter:blur(22px) saturate(1.4)!important;
  padding:6px 8px!important;gap:0!important;align-items:center}
.viewer .u-filters .fbox{background:none!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;padding:4px 16px!important;border-radius:0!important;position:relative}
.viewer .u-filters .fbox+.fbox::before{content:'';position:absolute;left:0;top:18%;bottom:18%;width:1px;background:rgba(255,255,255,.28)}
.viewer .u-filters h5{font-size:9px!important;letter-spacing:.16em;opacity:.65;margin-bottom:3px!important;font-weight:500!important}
.viewer .u-filters .minlbl{font-size:12px!important;font-weight:500;margin-bottom:0!important}
.viewer .u-filters input[type=range]{width:120px!important;height:16px;accent-color:#fff}
.viewer .u-filters .chips{gap:4px}
.viewer .u-filters .chips button{height:26px!important;padding:0 10px!important;border-radius:999px!important;font-size:11px!important;font-weight:500!important;background:rgba(255,255,255,.1)!important;border:1px solid rgba(255,255,255,.22)!important}
.viewer .u-filters .chips button:hover{background:rgba(255,255,255,.22)!important}
.viewer .u-filters .chips button.on{background:rgba(255,255,255,.85)!important;color:#1d2027!important;border-color:#fff!important}
.viewer .u-filters .u-open{background:rgba(255,255,255,.12)!important;border:1px solid rgba(255,255,255,.3)!important;border-radius:999px!important;flex-direction:row!important;gap:6px;height:34px!important;padding:0 14px!important;margin:0 2px 0 8px!important;font-size:12px;font-weight:500}
.viewer .u-filters .u-open:hover{background:rgba(255,255,255,.28)!important;border-color:#fff!important}
.viewer .u-filters .u-open svg{width:14px!important;height:14px!important}
/* luz correndo na borda ao clicar */
@property --la{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes litRun{from{--la:0deg;opacity:1}85%{opacity:1}to{--la:360deg;opacity:0}}
.viewer .v-tabs button.pulse svg{animation:none!important}
.viewer .v-tabs button.lit svg,.viewer .v-tools .iconbtn.lit{border:1.5px solid transparent!important;
  background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,.2)) padding-box,
    conic-gradient(from var(--la),transparent 0 55%,rgba(255,255,255,.2) 65%,#fff 80%,#ffc89a 88%,#f26b21 94%,transparent 100%) border-box!important;
  box-shadow:inset 0 1px 1px #fff,0 0 18px rgba(255,180,120,.55),0 6px 16px rgba(0,0,0,.2)!important;animation:litRun .9s cubic-bezier(.4,0,.2,1)}
/* barra: borda luminosa laranja → violeta → azul, com halo, ao clicar */
@keyframes navLit{0%{opacity:0;--la:0deg}15%{opacity:1}75%{opacity:1}100%{opacity:0;--la:200deg}}
.viewer .v-nav::before{content:'';position:absolute;inset:-1px;border-radius:inherit;padding:1.5px;pointer-events:none;opacity:0;z-index:3;
  background:conic-gradient(from var(--la) at 50% 50%,#ff7a2f,#ff9a5a 20%,#c86cff 45%,#5b7bff 65%,#3aa0ff 80%,#ff7a2f);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.viewer .v-nav.lit::before{animation:navLit 1.5s ease-out}
.viewer .v-nav.lit{box-shadow:inset 0 1px 1px rgba(255,255,255,.75),-40px 0 60px -18px rgba(255,110,40,.75),40px 0 60px -18px rgba(70,110,255,.75),0 14px 40px rgba(10,15,25,.3)!important;transition:box-shadow .35s}
.viewer .v-nav{transition:box-shadow 1.2s ease}
/* abas só com ícone */
.viewer .v-tabs button{font-size:0!important;min-width:0!important;padding:6px 7px!important;gap:0!important}
.viewer .v-tabs button svg{width:44px!important;height:44px!important;padding:12px!important}
.viewer .v-nav{height:66px!important;padding:0 10px!important}
@media (max-width:1366px){.viewer .v-tabs button{min-width:0!important}}
/* barra: vidro bem transparente; botões em destaque (vidro mais denso, brilho e sombra) */
.viewer .v-nav{background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.03))!important;border:1px solid rgba(255,255,255,.35)!important;
  backdrop-filter:blur(10px) saturate(1.3)!important;-webkit-backdrop-filter:blur(10px) saturate(1.3)!important;box-shadow:inset 0 1px 1px rgba(255,255,255,.45),0 10px 30px rgba(10,15,25,.18)!important}
.viewer .v-tabs button svg,.viewer .v-tools .iconbtn{background:linear-gradient(180deg,rgba(255,255,255,.62),rgba(255,255,255,.26))!important;border:1px solid rgba(255,255,255,.95)!important;color:#fff;
  box-shadow:inset 0 1.5px 1px #fff,inset 0 -6px 10px rgba(0,0,0,.08),0 8px 18px rgba(0,0,0,.28)!important;backdrop-filter:blur(16px) saturate(1.5);-webkit-backdrop-filter:blur(16px) saturate(1.5)}
.viewer .v-tabs button svg{stroke-width:2.2}
.viewer .v-tabs button:hover svg,.viewer .v-tools .iconbtn:hover{background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(255,255,255,.45))!important;color:#f26b21}
.viewer .compass2{background:none!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}

/* ===== tema grafite/ardósia vítreo (referência "Source btn") — editor e lista ===== */
:root{--s-bg:radial-gradient(120% 100% at 15% 30%,#8b949d 0%,#6c757f 40%,#4d5660 100%);
  --s-panel:linear-gradient(160deg,rgba(255,255,255,.14),rgba(255,255,255,.05));
  --s-edge:1px solid rgba(255,255,255,.22);
  --s-btn:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,.06));
  --s-btn-sh:inset 0 1.5px 0 rgba(255,255,255,.55),inset 0 -1px 0 rgba(0,0,0,.25),0 0 0 1px rgba(30,36,44,.35),0 8px 18px rgba(20,26,34,.35);
  --s-in:inset 0 2px 8px rgba(20,26,34,.35),inset 0 0 0 1px rgba(255,255,255,.12)}
.home,.editor,.editor .ed-body,.editor .ed-body.wide,.editor .ed-body.wide>*:not(.ed-rail),.editor .ed-main,.editor .ed-form,.editor .ed-preview{background:var(--s-bg)!important;background-attachment:fixed!important;color:#eef1f4}
.home::before,.editor .ed-body::before{background:radial-gradient(520px circle at var(--px,50%) var(--py,30%),rgba(255,255,255,.14),transparent 60%)!important}
.ed-top{background:rgba(40,46,54,.35)!important;border-bottom:1px solid rgba(255,255,255,.14)!important;color:#fff}
.ed-title b{color:#fff!important}.ed-title span{color:#c3c9d0!important}.ed-top .ed-back{color:#c3c9d0!important}
.ed-rail{background:rgba(40,46,54,.22)!important;border-right:1px solid rgba(255,255,255,.12)!important}
.ed-rail a{color:#dfe4e9!important}.ed-rail a:hover{background:rgba(255,255,255,.08)!important;color:#fff!important}
.ed-rail a.on{background:var(--s-btn)!important;color:#fff!important;border:0!important;box-shadow:var(--s-btn-sh)!important}
.ed-rail a i{border-color:rgba(255,255,255,.35)!important}
.ed-body>section:last-child,.editor .ed-form{background:rgba(40,46,54,.18)!important}
.editor h1,.editor h2,.editor h3,.editor b,.home h1,.home h3,.pcard h3,.editor label,.editor .f>span{color:#f3f5f7!important}
.editor p,.editor .hint,.editor .muted,.home .muted,.home p,.ed-head p,.home .brand span{color:#c9cfd6!important}
.home .brand b{color:#fff!important}
/* cartões/caixas: placa de vidro grafite com cantos grandes */
.pcard,.ed-body.wide .box,.editor .item,.editor .drop,.editor .edmap{background:var(--s-panel)!important;border:var(--s-edge)!important;border-radius:28px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 18px 40px rgba(20,26,34,.25)!important;backdrop-filter:blur(10px)}
.editor .item{border-radius:20px!important}
.editor .box{border-top-color:rgba(255,255,255,.12)!important}
/* botões: pílula de vidro com aro claro e brilho em cima */
.home .btn,.editor .btn,.ed-top .btn{background:var(--s-btn)!important;color:#f3f5f7!important;border:0!important;border-radius:999px!important;box-shadow:var(--s-btn-sh)!important;text-shadow:0 1px 1px rgba(0,0,0,.25)}
.home .btn:hover,.editor .btn:hover,.ed-top .btn:hover{background:linear-gradient(180deg,rgba(255,255,255,.32),rgba(255,255,255,.1))!important;color:#fff!important}
.home .btn:active,.editor .btn:active{box-shadow:inset 0 3px 8px rgba(20,26,34,.45),0 0 0 1px rgba(30,36,44,.35)!important}
.home .btn.pri,.editor .btn.pri,.ed-top .btn.pri{background:linear-gradient(180deg,#ff9a5c,#f26b21)!important;color:#fff!important;box-shadow:inset 0 1.5px 0 rgba(255,255,255,.55),0 0 0 1px rgba(160,60,10,.4),0 8px 20px rgba(242,107,33,.35)!important}
/* campos: vidro afundado escuro */
.editor input:not([type=color]):not([type=range]):not([type=checkbox]),.editor select,.editor textarea,.editor input[type=color]{background:rgba(30,36,44,.28)!important;color:#fff!important;border:0!important;box-shadow:var(--s-in)!important;border-radius:16px!important}
.editor select option{color:#111}
.editor input::placeholder{color:#aeb6bf}
.editor .seg{background:rgba(30,36,44,.25)!important;border:0!important;box-shadow:var(--s-in)!important}
.editor .seg button{color:#dfe4e9!important}
.editor .seg button.on{background:var(--s-btn)!important;color:#fff!important;box-shadow:var(--s-btn-sh)!important;border:0!important}
.pcard.new{color:#dfe4e9!important}
/* clique no ícone: volta o zoom (sem a luz cobrindo o ícone) */
.viewer .v-tabs button.lit svg,.viewer .v-tools .iconbtn.lit{background:linear-gradient(180deg,rgba(255,255,255,.62),rgba(255,255,255,.26))!important;border:1px solid rgba(255,255,255,.95)!important;animation:iconZoom .45s cubic-bezier(.3,1.6,.5,1)!important}
@keyframes iconZoom{0%{transform:scale(1)}40%{transform:scale(1.22)}100%{transform:scale(1)}}
/* tabela de unidades no tema grafite vítreo */
.u-table{background:rgba(20,24,30,.35)!important;backdrop-filter:blur(6px)}
.u-table .ut-box{background:radial-gradient(120% 100% at 15% 20%,rgba(139,148,157,.92),rgba(108,117,127,.92) 45%,rgba(77,86,96,.94))!important;border:1px solid rgba(255,255,255,.25)!important;border-radius:30px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 30px 80px rgba(10,14,20,.5)!important;backdrop-filter:blur(20px)!important;color:#f3f5f7}
.u-table .ut-head{border-bottom:1px solid rgba(255,255,255,.14)!important}
.u-table .ut-head p,.u-table thead th{color:#d3d9df!important}
.u-table thead th{background:transparent!important}
.u-table .ut-floor td{background:rgba(255,255,255,.06)!important;color:#e6eaee!important}
.u-table tbody td{border-bottom:1px solid rgba(255,255,255,.08)!important;background:transparent!important}
.u-table tbody tr:hover td{background:rgba(255,255,255,.06)!important}
.u-table input{color:#fff!important}
.u-table .ut-unit span,.u-table .ut-money span{color:#d3d9df!important}
.u-table .ut-sum span,.u-table .ut-head input,.u-table .iconbtn{background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,.06))!important;border:0!important;border-radius:999px!important;color:#fff!important;
  box-shadow:inset 0 1.5px 0 rgba(255,255,255,.55),inset 0 -1px 0 rgba(0,0,0,.2),0 0 0 1px rgba(30,36,44,.35),0 6px 14px rgba(20,26,34,.3)!important}
.u-table .ut-head input{padding:10px 16px!important;box-shadow:inset 0 2px 8px rgba(20,26,34,.35),inset 0 0 0 1px rgba(255,255,255,.12)!important;background:rgba(30,36,44,.25)!important}
.u-table .ut-head input::placeholder{color:#c9cfd6}
.u-table .ut-chip{background:rgba(20,26,34,.28)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.u-table .ut-scroll{scrollbar-color:rgba(255,255,255,.35) transparent}
/* clique: sem cores — só o zoom suave do ícone */
.viewer .v-nav.lit::before{animation:none!important;opacity:0!important}
.viewer .v-nav.lit{box-shadow:inset 0 1px 1px rgba(255,255,255,.45),0 10px 30px rgba(10,15,25,.18)!important}
.viewer .v-nav .tab-emp.pulse svg,.viewer .v-nav .go-side.pulse,.viewer .v-tabs button.pulse svg{animation:iconZoom .45s cubic-bezier(.3,1.6,.5,1)!important;background:linear-gradient(180deg,rgba(255,255,255,.62),rgba(255,255,255,.26))!important}
.viewer .v-nav .tab-emp.pulse,.viewer .v-nav .go-side.pulse{animation:none!important;background:none!important}
/* créditos do mapa: só o "i", discreto (o crédito ao OpenStreetMap é obrigatório) */
.viewer .maplibregl-ctrl-attrib{background:transparent!important;box-shadow:none!important}
.viewer .maplibregl-ctrl-attrib:not(.maplibregl-compact-show) .maplibregl-ctrl-attrib-inner{display:none}
.viewer .maplibregl-ctrl-attrib-button{background-color:rgba(255,255,255,.35)!important;opacity:.55;transform:scale(.8)}
/* sem a mancha de luz que segue o mouse */
.home::before,.editor .ed-body::before{display:none!important}
:is(.btn,.pcard,.box,.item,.ed-rail a,.cat-col,.q-panel,.u-card,.poi-card,.cat-toggle,.q-btn,.seg button)::after{display:none!important}
.viewer .v-nav::after{display:none!important}
/* volta a posição dos painéis flutuantes (o efeito de luz tinha mudado para relative) */
.viewer .cat-toggle,.viewer .q-btn,.viewer .q-panel,.viewer .u-card,.viewer .poi-card{position:absolute!important;overflow:visible!important}
/* botões da navegação = "Source btn": vidro grafite, aro branco fino e brilhante, ícone branco */
.viewer .v-tabs button svg,.viewer .v-tools .iconbtn,.viewer .v-tabs button.lit svg,.viewer .v-tabs button.pulse svg{
  background:radial-gradient(120% 90% at 50% 100%,rgba(190,200,210,.55),rgba(120,130,142,.35) 55%,rgba(95,104,115,.3))!important;
  border:1.5px solid rgba(255,255,255,.92)!important;color:#fff!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6),inset 0 -8px 14px rgba(255,255,255,.18),0 0 0 1px rgba(40,46,54,.45),0 6px 14px rgba(10,15,25,.3)!important;
  backdrop-filter:blur(14px) saturate(1.2)!important;-webkit-backdrop-filter:blur(14px) saturate(1.2)!important}
.viewer .v-tabs button:hover svg,.viewer .v-tools .iconbtn:hover{background:radial-gradient(120% 90% at 50% 100%,rgba(210,218,226,.65),rgba(135,145,157,.42) 55%,rgba(105,114,125,.36))!important;color:#fff!important}
/* barra de trás: vidro quase transparente */
.viewer .v-nav{background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.02))!important;border:1px solid rgba(255,255,255,.3)!important;
  backdrop-filter:blur(6px) saturate(1.15)!important;-webkit-backdrop-filter:blur(6px) saturate(1.15)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 8px 24px rgba(10,15,25,.12)!important}
.ed-rail a.on svg,.ed-rail a svg{color:#fff!important}
.editor .seg button.on{color:#fff!important}
/* nitidez: sem translate(-50%) (meio pixel deixa tudo borrado) e aro limpo */
.viewer .v-nav{left:0!important;right:0!important;margin:0 auto!important;width:max-content!important;transform:none!important}
.viewer .v-tabs button svg,.viewer .v-tools .iconbtn{box-shadow:inset 0 1px 0 rgba(255,255,255,.55),inset 0 -6px 12px rgba(255,255,255,.14),0 4px 10px rgba(10,15,25,.28)!important;border:1.5px solid #fff!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.viewer .v-tabs button svg{width:42px!important;height:42px!important;padding:11px!important;stroke-width:1.8!important;shape-rendering:geometricPrecision}
.viewer .v-tools .iconbtn svg{stroke-width:1.8!important}
.viewer .v-tabs button:hover svg{transform:none!important}
/* botões em grafite mais escuro (lê bem sobre fundo claro ou escuro), aro fino claro */
.viewer .v-tabs button svg,.viewer .v-tools .iconbtn,.viewer .v-tabs button.lit svg,.viewer .v-tabs button.pulse svg{
  background:radial-gradient(110% 90% at 50% 100%,rgba(150,160,172,.85),rgba(88,97,108,.88) 55%,rgba(62,69,78,.9))!important;
  border:1px solid rgba(255,255,255,.75)!important;color:#fff!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),inset 0 -5px 10px rgba(255,255,255,.1),0 4px 12px rgba(10,15,25,.35)!important}
.viewer .v-tabs button:hover svg,.viewer .v-tools .iconbtn:hover{background:radial-gradient(110% 90% at 50% 100%,rgba(170,180,192,.9),rgba(100,110,122,.9) 55%,rgba(72,80,90,.92))!important}
.viewer .v-nav{background:rgba(40,46,54,.12)!important;backdrop-filter:blur(4px)!important;-webkit-backdrop-filter:blur(4px)!important}
/* Projeto igual aos outros (sem estado claro) */
.viewer .v-tabs .tab-emp,.viewer .v-tabs .tab-emp.on,.viewer .v-tabs button.on{background:none!important;box-shadow:none!important}
.viewer .v-tabs .tab-emp svg,.viewer .v-tabs button.on svg{background:radial-gradient(110% 90% at 50% 100%,rgba(150,160,172,.85),rgba(88,97,108,.88) 55%,rgba(62,69,78,.9))!important;border:1px solid rgba(255,255,255,.75)!important}
/* clique: afunda e volta macio (sem salto) */
@keyframes iconPress{0%{transform:scale(1)}30%{transform:scale(.9);filter:brightness(1.18)}100%{transform:scale(1);filter:none}}
.viewer .v-tabs button.lit svg,.viewer .v-tabs button.pulse svg,.viewer .v-tools .iconbtn.lit,.viewer .v-nav .tab-emp.pulse svg{animation:iconPress .6s cubic-bezier(.25,.8,.3,1)!important}
.viewer .v-tabs button svg,.viewer .v-tools .iconbtn{transition:transform .35s cubic-bezier(.25,.8,.3,1),filter .35s,background .35s!important}
.viewer .v-tabs button:hover svg,.viewer .v-tools .iconbtn:hover{transform:translateY(-2px)!important}
/* barra: só o contorno de vidro */
.viewer .v-nav{background:rgba(255,255,255,.03)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border:1px solid rgba(255,255,255,.28)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.25)!important}
/* ===== barra de navegação: vidro branco (padrão) e personalizável pelos --nv-* ===== */
.viewer .v-nav{background:rgba(var(--nv-bar,255,255,255),var(--nv-bar-a,.18))!important;border:1px solid rgba(255,255,255,.55)!important;
  backdrop-filter:blur(var(--nv-blur,18px)) saturate(1.4)!important;-webkit-backdrop-filter:blur(var(--nv-blur,18px)) saturate(1.4)!important;
  box-shadow:inset 0 1px 1px rgba(255,255,255,.6),0 12px 34px rgba(10,15,25,.22)!important}
.viewer .v-tabs button svg,.viewer .v-tools .iconbtn,.viewer .v-tabs .tab-emp svg,.viewer .v-tabs button.on svg,.viewer .v-tabs button.lit svg,.viewer .v-tabs button.pulse svg{
  background:linear-gradient(180deg,rgba(var(--nv-btn,255,255,255),calc(var(--nv-btn-a,.55) + .1)),rgba(var(--nv-btn,255,255,255),calc(var(--nv-btn-a,.55) * .4)))!important;
  border:1px solid rgba(255,255,255,.85)!important;color:var(--nv-ico,#fff)!important;
  box-shadow:inset 0 1.5px 1px rgba(255,255,255,.9),inset 0 -6px 10px rgba(0,0,0,.06),0 6px 16px rgba(0,0,0,.22)!important;backdrop-filter:blur(12px)!important;-webkit-backdrop-filter:blur(12px)!important}
.viewer .v-tabs button.on svg{color:var(--nv-on,#f26b21)!important}
.viewer .v-tabs button:hover svg,.viewer .v-tools .iconbtn:hover{filter:brightness(1.08)}
/* animações do clique (escolhidas em Marca e cores) */
.viewer .v-tabs button.lit svg,.viewer .v-tabs button.pulse svg,.viewer .v-tools .iconbtn.lit{animation:none!important}
@keyframes nvZoom{0%{transform:scale(1)}40%{transform:scale(1.2)}100%{transform:scale(1)}}
@keyframes nvPress{0%{transform:scale(1)}35%{transform:scale(.86)}100%{transform:scale(1)}}
@keyframes nvGlow{0%{box-shadow:0 0 0 0 rgba(255,255,255,.9),inset 0 1.5px 1px #fff}100%{box-shadow:0 0 0 14px rgba(255,255,255,0),inset 0 1.5px 1px #fff}}
@keyframes nvWave{0%{transform:scale(1)}25%{transform:scale(1.12) rotate(-6deg)}55%{transform:scale(.96) rotate(4deg)}100%{transform:scale(1) rotate(0)}}
@keyframes nvSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.viewer[data-nav-anim=zoom] .v-tabs button.lit svg,.viewer[data-nav-anim=zoom] .v-tools .iconbtn.lit{animation:nvZoom .5s cubic-bezier(.3,1.5,.5,1)!important}
.viewer[data-nav-anim=afundar] .v-tabs button.lit svg,.viewer[data-nav-anim=afundar] .v-tools .iconbtn.lit{animation:nvPress .5s cubic-bezier(.25,.8,.3,1)!important}
.viewer[data-nav-anim=brilho] .v-tabs button.lit svg,.viewer[data-nav-anim=brilho] .v-tools .iconbtn.lit{animation:nvGlow .7s ease-out!important}
.viewer[data-nav-anim=onda] .v-tabs button.lit svg,.viewer[data-nav-anim=onda] .v-tools .iconbtn.lit{animation:nvWave .6s ease!important}
.viewer[data-nav-anim=girar] .v-tabs button.lit svg,.viewer[data-nav-anim=girar] .v-tools .iconbtn.lit{animation:nvSpin .6s cubic-bezier(.4,0,.2,1)!important}
.ed-rail a i{display:none!important}
/* campos de imagem: miniatura em cima, botões em linha embaixo (nada cortado) */
.editor .grid3:has(.imgpick){grid-template-columns:repeat(auto-fill,minmax(170px,1fr))!important}
.editor .imgpick{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:10px!important}
.editor .imgpick .pv{width:100%!important;height:96px!important}
.editor .imgpick .row{display:flex!important;flex-wrap:wrap!important;gap:6px!important}
.editor .imgpick .btn{padding:6px 12px!important;font-size:11.5px!important}
.editor .ed-body>section:last-child,.editor .ed-form{overflow-x:hidden}

/* painel Mês e clima: vidro grafite mais fechado, compacto, ícones de linha */
.sun-side .sun-pop{width:286px;padding:14px 14px 16px;background:rgba(22,24,30,.78)!important;backdrop-filter:blur(22px) saturate(1.3)!important;-webkit-backdrop-filter:blur(22px) saturate(1.3)!important;border:1px solid rgba(255,255,255,.14)!important;border-radius:22px!important}
.sun-side .sun-pop.on{display:block;animation:spIn .18s ease-out}
@keyframes spIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.sun-side .sun-pop h5{font-size:10px;letter-spacing:.22em;color:rgba(255,255,255,.55);margin:2px 0 8px;text-align:left;padding-left:2px}
.sun-side .sun-pop .mgrid{grid-template-columns:repeat(6,1fr);gap:4px;margin-bottom:14px}
.sun-side .sun-pop .mgrid button{height:32px;border-radius:9px;border:0;background:rgba(255,255,255,.06);color:rgba(255,255,255,.82);font-size:12px;font-weight:600;transition:background .15s,color .15s}
.sun-side .sun-pop .mgrid button:hover{background:rgba(255,255,255,.14);color:#fff}
.sun-side .sun-pop .wlist{flex-direction:row;gap:4px}
.sun-side .sun-pop .wlist button{flex:1;flex-direction:column;justify-content:center;gap:5px;height:62px;padding:0;border-radius:12px;border:0;background:rgba(255,255,255,.06);color:rgba(255,255,255,.82);font-size:10px;font-weight:600;text-align:center;transition:background .15s,color .15s}
.sun-side .sun-pop .wlist button:hover{background:rgba(255,255,255,.14);color:#fff}
.sun-side .sun-pop .wlist i{width:22px;height:22px;font-size:0}
.sun-side .sun-pop .wlist i svg{width:22px;height:22px;display:block}
.sun-side .sun-pop button.on{background:rgba(255,255,255,.92)!important;color:#15171c!important;border-color:transparent!important;box-shadow:0 4px 14px rgba(0,0,0,.25)}

/* identidade Universe Space */
.brand .mark{width:54px;height:34px;border:0!important;border-radius:0}
.brand .mark::after{display:none}
.brand .mark svg{width:100%;height:100%;display:block}
.brand b{font-weight:800;letter-spacing:.04em}
.brand b em{font-style:normal;background:linear-gradient(180deg,#ffa800,#ff4a00);-webkit-background-clip:text;background-clip:text;color:transparent}

/* 'Mostrar pontos' só no Entorno (some em Unidades e no Projeto) */
.entorno-sec.u-mode .cat-toggle,.entorno-sec.orb-on .cat-toggle{display:none!important}
/* legibilidade sobre fundo claro: base grafite por baixo do vidro, ícone e texto com sombra */
.viewer .v-nav{background:linear-gradient(rgba(var(--nv-bar,255,255,255),var(--nv-bar-a,.18)),rgba(var(--nv-bar,255,255,255),var(--nv-bar-a,.18))),rgba(24,28,35,.30)!important}
.viewer .v-tabs button svg,.viewer .v-tools .iconbtn,.viewer .v-tabs .tab-emp svg,.viewer .v-tabs button.on svg,.viewer .v-tabs button.lit svg,.viewer .v-tabs button.pulse svg{
  background:linear-gradient(180deg,rgba(var(--nv-btn,255,255,255),calc(var(--nv-btn-a,.55) * .55)),rgba(var(--nv-btn,255,255,255),calc(var(--nv-btn-a,.55) * .15))),rgba(28,33,41,.42)!important}
.viewer .v-tabs button svg,.viewer .v-tools .iconbtn svg{filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.55))}
/* hover igual em todos os botões (antes o ativo não reagia) */
.viewer .v-tabs button:hover svg,.viewer .v-tabs button.on:hover svg,.viewer .v-tabs .tab-emp:hover svg,.viewer .v-tools .iconbtn:hover{
  background:linear-gradient(180deg,rgba(255,255,255,.30),rgba(255,255,255,.06)),rgba(42,62,96,.62)!important;filter:none!important;transition:background .18s,transform .18s!important}
/* filtros de unidades, pontos e distâncias: texto com sombra e fundo levemente escuro */
.u-filters .fbox,.u-bar .u-grp,.cat-col,.poi-card{background:linear-gradient(rgba(255,255,255,.12),rgba(255,255,255,.04)),rgba(24,28,35,.38)!important}
.u-filters,.u-filters *,.cat-col li,.cat-col li *,.cat-col h4,.poi-card{text-shadow:0 1px 2px rgba(0,0,0,.6)}
.cat-col li span,.cat-col li small,.cat-col li em{color:rgba(255,255,255,.85)!important}

/* sol: sem horários de nascer/pôr; calendário maior, logo abaixo da régua */
.sun-side{overflow:visible!important}
.sun-side .sinfo{display:none!important}
.sun-side .sbtns{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%)}
.sun-side .sbtns .sbtn{width:52px!important;height:52px!important;border-radius:50%!important;background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,.06)),rgba(24,28,35,.45)!important;border:1px solid rgba(255,255,255,.5)!important;box-shadow:0 8px 22px rgba(0,0,0,.3)!important;backdrop-filter:blur(14px)}
.sun-side .sbtns .sbtn svg{width:24px!important;height:24px!important;filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.5))}
.q-sep{margin:10px 16px 2px;padding-top:10px;border-top:1px solid rgba(255,255,255,.14);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.q-panel{max-height:calc(100vh - 140px);overflow:auto}
.orb-fps{position:absolute;right:14px;top:14px;z-index:9;padding:4px 10px;border-radius:99px;background:rgba(20,24,30,.6);color:#9effa8;font:600 12px/1.4 ui-monospace,monospace;pointer-events:none}
/* botão "Empreendimento" no mapa do editor: grafite (antes ficava branco sobre branco) */
.editor .go-proj{background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,.04)),rgba(24,28,35,.72)!important;color:#fff!important;border:1px solid rgba(255,255,255,.35)!important}
/* botão selecionado: ícone na cor escolhida em Marca e cores (Cor do botão ativo) */
.viewer .v-tabs button.on svg,.viewer .v-tabs .tab-emp.on svg{color:var(--nv-on,#f26b21)!important}
.viewer .v-tabs button.on svg path,.viewer .v-tabs .tab-emp.on svg path{stroke:var(--nv-on,#f26b21)!important}
/* painel Mês e clima no mesmo vidro da barra de navegação (mais claro) */
.sun-side .sun-pop{background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,.08)),rgba(24,28,35,.26)!important;border:1px solid rgba(255,255,255,.55)!important;
  backdrop-filter:blur(18px) saturate(1.4)!important;-webkit-backdrop-filter:blur(18px) saturate(1.4)!important;box-shadow:inset 0 1px 1px rgba(255,255,255,.6),0 12px 34px rgba(10,15,25,.22)!important}
.sun-side .sun-pop h5{color:#fff!important;opacity:.85;text-shadow:0 1px 2px rgba(0,0,0,.5)}
.sun-side .sun-pop .mgrid button,.sun-side .sun-pop .wlist button{background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,.08)),rgba(28,33,41,.28)!important;border:1px solid rgba(255,255,255,.6)!important;
  color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.5);box-shadow:inset 0 1px 1px rgba(255,255,255,.7),0 3px 8px rgba(0,0,0,.15)}
.sun-side .sun-pop .wlist i svg{filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.5))}
.sun-side .sun-pop .mgrid button:hover,.sun-side .sun-pop .wlist button:hover{background:linear-gradient(180deg,rgba(255,255,255,.4),rgba(255,255,255,.14)),rgba(28,33,41,.2)!important}
.sun-side .sun-pop button.on{background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(255,255,255,.75))!important;color:var(--nv-on,#f26b21)!important;text-shadow:none;border-color:#fff!important}
.sun-side .sun-pop button.on i svg{filter:none}
/* painel Mês e clima: mesmo cinza-ardósia da tabela de unidades, mais translúcido */
.sun-side .sun-pop{background:radial-gradient(120% 100% at 15% 20%,rgba(139,148,157,.55),rgba(108,117,127,.55) 45%,rgba(77,86,96,.6))!important;border:1px solid rgba(255,255,255,.25)!important;
  backdrop-filter:blur(16px) saturate(1.2)!important;-webkit-backdrop-filter:blur(16px) saturate(1.2)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 18px 44px rgba(10,14,20,.35)!important}
.sun-side .sun-pop .mgrid button,.sun-side .sun-pop .wlist button{background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,.06))!important;border:0!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 2px 6px rgba(10,14,20,.15)!important}
.sun-side .sun-pop .mgrid button:hover,.sun-side .sun-pop .wlist button:hover{background:linear-gradient(180deg,rgba(255,255,255,.32),rgba(255,255,255,.12))!important}
.sun-side .sun-pop button.on{background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(255,255,255,.78))!important}
/* tabela: disponibilidade em três botões e campos de vaga/observação visíveis */
.u-table .ut-seg{display:inline-flex;gap:3px;padding:3px;border-radius:999px;background:rgba(20,26,34,.25);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.u-table .ut-seg button{border:0;border-radius:999px;padding:5px 11px;font:600 11px/1 var(--head);color:rgba(255,255,255,.7);background:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background .15s,color .15s}
.u-table .ut-seg button::before{content:'';width:7px;height:7px;border-radius:50%;opacity:.6}
.u-table .ut-seg .disponivel::before{background:#3fd68a}.u-table .ut-seg .reservado::before{background:#f5a742}.u-table .ut-seg .vendido::before{background:#f15b5b}
.u-table .ut-seg button:hover{background:rgba(255,255,255,.12);color:#fff}
.u-table .ut-seg button.on{color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.u-table .ut-seg button.on::before{background:#fff!important;opacity:1}
.u-table .ut-seg .disponivel.on{background:#2fbf77}.u-table .ut-seg .reservado.on{background:#e8962c}.u-table .ut-seg .vendido.on{background:#e04848}
.u-table input.ut-in{width:100%;max-width:170px;padding:7px 12px!important;border-radius:10px!important;border:0!important;background:rgba(255,255,255,.1)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);color:#fff!important;font-size:13px}
.u-table input.ut-in:hover:not(:disabled){background:rgba(255,255,255,.16)!important}
.u-table input.ut-in:focus{background:rgba(255,255,255,.2)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5);outline:none}
.u-table input.ut-in::placeholder{color:rgba(255,255,255,.5)}
.u-table input.ut-in:disabled{background:none!important;box-shadow:none}
.u-table input:disabled{opacity:1}
/* tabela: cabeçalho e faixa do andar fixos com fundo sólido (as linhas não aparecem por baixo ao rolar) */
.u-table thead th{background:rgb(104,113,123)!important;z-index:3;box-shadow:0 1px 0 rgba(255,255,255,.12)}
.u-table .ut-floor td{background:rgb(116,125,135)!important;z-index:2;top:38px}
.u-table thead th{opacity:1!important;color:rgba(235,240,245,.8)!important}
/* imagem aberta: por cima da apresentação, fundo desfocado (sem tela preta/branca) */
.lbx{background:rgba(18,22,28,.45)!important;backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);cursor:zoom-out}
.lbx .lbx-in{max-width:92vw;max-height:88vh;padding:10px;border-radius:24px;background:radial-gradient(120% 100% at 15% 20%,rgba(139,148,157,.45),rgba(77,86,96,.5));border:1px solid rgba(255,255,255,.3);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 30px 80px rgba(0,0,0,.45);transform:scale(.96);transition:transform .3s}
.lbx.on .lbx-in{transform:none}
.lbx .lbx-in img{display:block;max-width:calc(92vw - 20px);max-height:calc(88vh - 20px);border-radius:16px;object-fit:contain}
.lbx .iconbtn{background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,.08)),rgba(24,28,35,.4)!important;border:1px solid rgba(255,255,255,.55)!important;color:#fff!important}
/* cartão da unidade no tom da plataforma */
.u-card .pl{background:rgba(255,255,255,.06)!important;padding:12px}
.u-card .pl img{border-radius:14px}
.u-card .pl.photo{padding:0}
.u-tabs button{background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,.06))!important;border:0!important;color:#fff!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 2px 6px rgba(10,14,20,.15);text-shadow:0 1px 2px rgba(0,0,0,.4)}
.u-tabs button:hover{background:linear-gradient(180deg,rgba(255,255,255,.32),rgba(255,255,255,.12))!important}
.u-tabs button.on{background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(255,255,255,.78))!important;color:var(--nv-on,#f26b21)!important;text-shadow:none}
.u-card .price dd{color:#fff!important}
.u-card dt{color:rgba(255,255,255,.65)!important}
.u-card .u360{background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(255,255,255,.78))!important;color:var(--nv-on,#f26b21)!important;border:0!important}
.u-card .x{background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,.08)),rgba(24,28,35,.4)!important;border:1px solid rgba(255,255,255,.55)!important;color:#fff!important}
.u-card .pl:not(.photo){aspect-ratio:auto!important;min-height:120px}
/* nome do ponto no mapa: etiqueta pequena de vidro (antes grande, tapava a vista) */
.poi-mk span{font-size:10.5px!important;font-weight:600!important;padding:3px 9px!important;border-radius:99px!important;margin-bottom:3px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.2),rgba(255,255,255,.05)),rgba(24,28,35,.6)!important;border:1px solid rgba(255,255,255,.4)!important;color:#fff!important;
  box-shadow:0 2px 8px rgba(0,0,0,.25)!important;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:inline-flex;align-items:center;gap:5px;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.poi-mk span::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--c);flex:none}
.poi-mk:hover>div,.poi-mk.on>div{transform:scale(1.06)!important}
/* card do ponto: distância em branco (a cor da marca deste projeto é quase preta) e linha de baixo legível */
.poi-card .dist{color:#fff!important;font-size:15px!important;text-shadow:0 1px 2px rgba(0,0,0,.4);display:flex;align-items:center;gap:7px}
.poi-card .dist::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--nv-on,#f26b21);box-shadow:0 0 0 3px rgba(255,255,255,.25);flex:none}
.poi-card .dist+.muted{color:rgba(255,255,255,.72)!important;padding-left:15px;text-shadow:0 1px 2px rgba(0,0,0,.4)}
.poi-card h3,.poi-card h4,.poi-card b{color:#fff}
/* painel Mês/Clima e botão do calendário com o mesmo vidro fosco da régua do sol */
.sun-side .sun-pop,.sun-side .sbtns .sbtn{background:linear-gradient(rgba(255,255,255,.34),rgba(255,255,255,.12))!important;border:1px solid rgba(255,255,255,.55)!important;
  backdrop-filter:blur(24px) saturate(1.45)!important;-webkit-backdrop-filter:blur(24px) saturate(1.45)!important;
  box-shadow:inset 0 1px 1px rgba(255,255,255,.75),inset 0 -8px 18px rgba(0,0,0,.05),0 14px 40px rgba(10,15,25,.28)!important}
.sun-side .sun-pop .mgrid button,.sun-side .sun-pop .wlist button{background:linear-gradient(180deg,rgba(255,255,255,.26),rgba(255,255,255,.1))!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 2px 6px rgba(10,14,20,.12)!important}
/* ===== PADRÃO ÚNICO (igual à barra de ícones): painel = vidro da barra; botão = botão de ícone; selecionado = texto/ícone laranja ===== */
.viewer :is(.u-filters .fbox,.u-bar .u-grp,.u-card,.sun-side,.sun-side .sun-pop,.poi-card,.cat-col,.q-panel){
  background:linear-gradient(rgba(var(--nv-bar,255,255,255),var(--nv-bar-a,.18)),rgba(var(--nv-bar,255,255,255),var(--nv-bar-a,.18))),rgba(24,28,35,.30)!important;
  border:1px solid rgba(255,255,255,.55)!important;backdrop-filter:blur(var(--nv-blur,18px)) saturate(1.4)!important;-webkit-backdrop-filter:blur(var(--nv-blur,18px)) saturate(1.4)!important;
  box-shadow:inset 0 1px 1px rgba(255,255,255,.6),0 12px 34px rgba(10,15,25,.22)!important}
.viewer :is(.sun-side .sbtns .sbtn,.u-card .x,.cat-toggle,.q-btn,.u-filters .chips button,.u-filters .chip,.u-filters .btn,.u-filters>button,.u-tabs button,.sun-side .sun-pop .mgrid button,.sun-side .sun-pop .wlist button,.u-card .u360),.lbx .iconbtn{
  background:linear-gradient(180deg,rgba(var(--nv-btn,255,255,255),calc(var(--nv-btn-a,.55) * .55)),rgba(var(--nv-btn,255,255,255),calc(var(--nv-btn-a,.55) * .15))),rgba(28,33,41,.42)!important;
  border:1px solid rgba(255,255,255,.85)!important;color:var(--nv-ico,#fff)!important;text-shadow:0 1px 2px rgba(0,0,0,.45);
  box-shadow:inset 0 1.5px 1px rgba(255,255,255,.9),inset 0 -6px 10px rgba(0,0,0,.06),0 6px 16px rgba(0,0,0,.22)!important}
.viewer :is(.sun-side .sbtns .sbtn,.u-card .x,.cat-toggle,.q-btn,.u-filters .chips button,.u-filters .chip,.u-filters .btn,.u-filters>button,.u-tabs button,.sun-side .sun-pop .mgrid button,.sun-side .sun-pop .wlist button,.u-card .u360):hover,.lbx .iconbtn:hover{
  background:linear-gradient(180deg,rgba(255,255,255,.30),rgba(255,255,255,.06)),rgba(42,62,96,.62)!important}
.viewer :is(.u-filters .chips button.on,.u-filters .chip.on,.u-tabs button.on,.sun-side .sun-pop button.on,.u-card .u360){color:var(--nv-on,#f26b21)!important;text-shadow:none;
  background:linear-gradient(180deg,rgba(var(--nv-btn,255,255,255),calc(var(--nv-btn-a,.55) * .55)),rgba(var(--nv-btn,255,255,255),calc(var(--nv-btn-a,.55) * .15))),rgba(28,33,41,.42)!important}
.viewer :is(.u-filters .chips button.on,.u-filters .chip.on,.u-tabs button.on,.sun-side .sun-pop button.on) svg{color:var(--nv-on,#f26b21)!important;filter:none!important}
.viewer :is(.sun-side .sbtns .sbtn,.u-card .x,.q-btn) svg{filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.55))}
.viewer .u-filters h5,.viewer .sun-side .sun-pop h5,.viewer .u-card dt{color:rgba(255,255,255,.8)!important;text-shadow:0 1px 2px rgba(0,0,0,.45)}
.viewer .u-filters,.viewer .u-card,.viewer .poi-card{color:#fff}
.viewer .u-card dd,.viewer .u-card .hd{text-shadow:0 1px 2px rgba(0,0,0,.4)}
.viewer .u-filters input[type=range]{accent-color:var(--nv-on,#f26b21)}
.viewer .u-filters .fbox{background:none!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.viewer .u-filters{background:linear-gradient(rgba(var(--nv-bar,255,255,255),var(--nv-bar-a,.18)),rgba(var(--nv-bar,255,255,255),var(--nv-bar-a,.18))),rgba(24,28,35,.30)!important;border:1px solid rgba(255,255,255,.55)!important;
  backdrop-filter:blur(var(--nv-blur,18px)) saturate(1.4)!important;-webkit-backdrop-filter:blur(var(--nv-blur,18px)) saturate(1.4)!important;box-shadow:inset 0 1px 1px rgba(255,255,255,.6),0 12px 34px rgba(10,15,25,.22)!important}
/* selecionado: fundo grafite mais fechado + laranja vivo e negrito (legível) */
.viewer :is(.u-filters .chips button.on,.u-filters .chip.on,.u-tabs button.on,.sun-side .sun-pop button.on){background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.02)),rgba(18,21,27,.72)!important;color:#ff8a3d!important;font-weight:700!important;border-color:#fff!important}
.viewer :is(.u-filters .chips button.on,.u-filters .chip.on,.u-tabs button.on,.sun-side .sun-pop button.on) svg{color:#ff8a3d!important}
/* seletor Imagens/Vídeos, filtros da galeria, Áreas comuns e selo 360° no padrão da barra */
.viewer :is(.v-inner,.gal .cats,.a-side){background:linear-gradient(rgba(255,255,255,.18),rgba(255,255,255,.18)),rgba(24,28,35,.30)!important;border:1px solid rgba(255,255,255,.55)!important;
  backdrop-filter:blur(18px) saturate(1.4)!important;-webkit-backdrop-filter:blur(18px) saturate(1.4)!important;box-shadow:inset 0 1px 1px rgba(255,255,255,.6),0 12px 34px rgba(10,15,25,.22)!important}
.viewer :is(.v-inner button,.gal .cats button){background:linear-gradient(180deg,rgba(255,255,255,.30),rgba(255,255,255,.08)),rgba(28,33,41,.42)!important;border:1px solid rgba(255,255,255,.85)!important;color:#fff!important;
  text-shadow:0 1px 2px rgba(0,0,0,.45);box-shadow:inset 0 1.5px 1px rgba(255,255,255,.9),0 4px 12px rgba(0,0,0,.2)!important}
.viewer :is(.v-inner button,.gal .cats button):hover{background:linear-gradient(180deg,rgba(255,255,255,.30),rgba(255,255,255,.06)),rgba(42,62,96,.62)!important}
.viewer :is(.v-inner button.on,.gal .cats button.on){background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.02)),rgba(18,21,27,.72)!important;color:#ff8a3d!important;font-weight:700!important;border-color:#fff!important}
.viewer :is(.v-inner button,.gal .cats button) svg{color:inherit!important}
.viewer .a-side{border-radius:26px 0 0 26px;margin:12px 0 12px 0}
.viewer .a-side li:hover,.viewer .a-side li.on{background:rgba(255,255,255,.14)}
.viewer .a-side li b{background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,.08)),rgba(28,33,41,.42);border:1px solid rgba(255,255,255,.7)}
.viewer .areas{background:radial-gradient(ellipse at 40% 30%,#3a4049,#1b1f25)}
.b360,.u-tabs .b360{background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.02)),rgba(18,21,27,.72)!important;color:#ff8a3d!important;border:1px solid #fff!important;font-weight:700}
/* filtros das unidades: botões maiores e com respiro (toque) */
.viewer .u-filters .chips{gap:10px!important;flex-wrap:nowrap}
.viewer .u-filters .chips button{min-width:46px;height:38px!important;padding:0 14px!important;font-size:13px!important;border-radius:999px!important}
/* ===== passeio 360° das áreas comuns ===== */
.areas .a-tour{position:absolute;left:0;top:0;bottom:0;right:320px;z-index:5;overflow:hidden;background:#111}
.areas .a-tour canvas{position:absolute;inset:0;width:100%!important;height:100%!important;cursor:grab;touch-action:none}
.areas.touring .plan{visibility:hidden}
.a-chip{position:absolute;left:20px;top:20px;z-index:4;display:flex;align-items:center;gap:9px;padding:9px 16px;border-radius:99px;font:600 13px/1 var(--head);color:#fff;
  background:linear-gradient(rgba(255,255,255,.18),rgba(255,255,255,.18)),rgba(24,28,35,.30);border:1px solid rgba(255,255,255,.55);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.6),0 8px 24px rgba(10,15,25,.22);text-shadow:0 1px 2px rgba(0,0,0,.4)}
.a-chip i{width:8px;height:8px;border-radius:50%;background:#ff7a2b;box-shadow:0 0 0 3px rgba(255,122,43,.3)}
.a-mini{position:absolute;left:20px;bottom:calc(var(--nb,110px) + 6px);z-index:4;width:220px;padding:8px 8px 34px;border-radius:20px;cursor:pointer;
  background:linear-gradient(rgba(255,255,255,.18),rgba(255,255,255,.18)),rgba(24,28,35,.30);border:1px solid rgba(255,255,255,.55);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.6),0 12px 30px rgba(10,15,25,.3);transition:transform .2s}
.a-mini:hover{transform:translateY(-3px)}
.a-mini img{display:block;width:100%;border-radius:13px}
.a-mini>i{position:absolute;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px rgba(0,0,0,.25);
  left:calc(8px + (100% - 16px) * var(--x,0));transform:none}
.a-mini>i.on{background:#ff7a2b;box-shadow:0 0 0 4px rgba(255,122,43,.35);animation:miniPulse 1.6s ease-in-out infinite}
@keyframes miniPulse{50%{box-shadow:0 0 0 7px rgba(255,122,43,.12)}}
.a-mini span{position:absolute;left:0;right:0;bottom:8px;display:flex;align-items:center;justify-content:center;gap:6px;font:600 12px/1 var(--head);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.45)}
.a-mini span svg{width:15px;height:15px}
/* portas dentro do 360° */
.pano-hs{position:absolute;inset:0;pointer-events:none;z-index:3}
.pano-door{position:absolute;left:0;top:0;pointer-events:auto;border:0;background:none;padding:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:8px;margin:-17px 0 0 -60px;width:120px}
.pano-door i{width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ff9a5a,#e8501c 60%,#b8340c);border:2px solid rgba(255,255,255,.85);box-shadow:0 4px 14px rgba(0,0,0,.4),0 0 0 6px rgba(255,255,255,.18);transition:transform .2s}
.pano-door:hover i{transform:scale(1.15)}
.pano-door span{padding:5px 11px;border-radius:99px;font:600 12px/1.2 var(--head);color:#fff;white-space:nowrap;background:rgba(20,24,30,.62);border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.a-mini .mm{position:relative}
.a-mini .mm>i{position:absolute;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px rgba(0,0,0,.25)}
.a-mini .mm>i.on{background:#ff7a2b;box-shadow:0 0 0 4px rgba(255,122,43,.35);animation:miniPulse 1.6s ease-in-out infinite}
.t-stage{position:relative;height:480px;border-radius:18px;overflow:hidden;background:#111}
.t-stage canvas{position:absolute;inset:0;width:100%!important;height:100%!important;cursor:crosshair}
.thumbs .thumb.on{outline:3px solid #ff7a2b;outline-offset:2px}
/* ícone de Áreas comuns um pouco maior */
.viewer .v-tabs .tab-areas svg path{transform:scale(1.22);transform-origin:12px 12px}
/* fechar na quina da imagem (perto da mão em telas touch grandes) */
.lbx .lbx-in{position:relative}
.lbx .lbx-in .lbx-x{position:absolute!important;right:-16px!important;top:-16px!important;left:auto!important;width:52px!important;height:52px!important;border-radius:50%!important;display:grid;place-items:center;z-index:2}
.lbx .lbx-in .lbx-x svg{width:22px;height:22px}
/* Vídeos: o vídeo ocupa a tela e a lista vira um cartão pequeno de vidro no canto */
.viewer .videos{grid-template-columns:1fr!important;background:radial-gradient(ellipse at 50% 40%,#2a3038,#111418)!important}
.viewer .videos .player{background:none!important;padding:24px 24px calc(var(--nb,110px) + 8px)}
.viewer .videos .player iframe,.viewer .videos .player video{border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,.45)}
.viewer .videos .lst{position:absolute;left:20px;top:20px;width:260px;max-height:40vh;border-radius:20px;padding:6px;border:1px solid rgba(255,255,255,.55)!important;
  background:linear-gradient(rgba(255,255,255,.18),rgba(255,255,255,.18)),rgba(24,28,35,.30)!important;backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);box-shadow:inset 0 1px 1px rgba(255,255,255,.6),0 12px 34px rgba(10,15,25,.3)}
.viewer .videos .lst button{border:0!important;border-radius:14px;padding:11px 14px!important;font-size:13px!important;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.4)}
.viewer .videos .lst button:hover{background:rgba(255,255,255,.12)}
.viewer .videos .lst button.on{background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.02)),rgba(18,21,27,.72)!important;color:#ff8a3d!important;font-weight:700}
.viewer .videos .lst:has(button:only-child){display:none}
/* Vistas: seletor de pavimento no padrão da barra */
.viewer .vistas .floors{background:linear-gradient(rgba(255,255,255,.18),rgba(255,255,255,.18)),rgba(24,28,35,.30)!important;border:1px solid rgba(255,255,255,.55)!important;border-radius:24px!important;padding:8px;gap:8px;
  backdrop-filter:blur(18px) saturate(1.4)!important;-webkit-backdrop-filter:blur(18px) saturate(1.4)!important;box-shadow:inset 0 1px 1px rgba(255,255,255,.6),0 12px 34px rgba(10,15,25,.3)!important;min-width:110px;max-height:70vh;overflow:auto}
.viewer .vistas .floors .hd{color:rgba(255,255,255,.85)!important;font-size:10px!important;letter-spacing:.18em;padding:6px 6px 2px!important;text-shadow:0 1px 2px rgba(0,0,0,.45)}
.viewer .vistas .floors button{height:46px;border-radius:16px!important;font-size:17px!important;color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.45);
  background:linear-gradient(180deg,rgba(255,255,255,.30),rgba(255,255,255,.08)),rgba(28,33,41,.42)!important;border:1px solid rgba(255,255,255,.85)!important;box-shadow:inset 0 1.5px 1px rgba(255,255,255,.9),0 4px 12px rgba(0,0,0,.2)!important;cursor:pointer}
.viewer .vistas .floors button:hover{background:linear-gradient(180deg,rgba(255,255,255,.30),rgba(255,255,255,.06)),rgba(42,62,96,.62)!important}
.viewer .vistas .floors button.on{background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.02)),rgba(18,21,27,.72)!important;color:#ff8a3d!important;border-color:#fff!important}
/* vista em vídeo de drone */
.vv-box{position:absolute;inset:0;overflow:hidden;background:#0d1015;touch-action:none;cursor:ns-resize}
.vv-box video.vv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.viewer .vv-box .floors{cursor:default}
.viewer .vv-box .vv-cur{font:800 30px/1 var(--head);color:#fff;text-align:center;padding:4px 0 6px;text-shadow:0 2px 8px rgba(0,0,0,.5)}
.vv-hint{position:absolute;left:50%;bottom:calc(var(--nb,110px) + 14px);transform:translateX(-50%);z-index:3;display:flex;align-items:center;gap:8px;padding:9px 16px;border-radius:99px;font:600 13px/1 var(--head);color:#fff;
  background:linear-gradient(rgba(255,255,255,.18),rgba(255,255,255,.18)),rgba(24,28,35,.30);border:1px solid rgba(255,255,255,.55);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:opacity .5s;animation:vvBob 1.8s ease-in-out infinite}
.vv-hint svg{width:16px;height:16px}
.vv-hint.off{opacity:0;pointer-events:none}
@keyframes vvBob{50%{transform:translate(-50%,-5px)}}
/* aba Projeto: sem os pins dos pontos de interesse */
.entorno-sec.orb-on .poi-mk{display:none!important}
/* roda de pavimentos (vista em vídeo) */
.viewer .vv-floors{min-width:120px!important;overflow:hidden!important;max-height:none!important}
.vv-win{position:relative;height:322px;overflow:hidden;-webkit-mask-image:linear-gradient(transparent,#000 22%,#000 78%,transparent);mask-image:linear-gradient(transparent,#000 22%,#000 78%,transparent)}
.vv-win::before{content:'';position:absolute;left:4px;right:4px;top:138px;height:46px;border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.02)),rgba(18,21,27,.55);border:1px solid rgba(255,255,255,.9);pointer-events:none}
.vv-wheel{position:absolute;left:0;right:0;top:138px;will-change:transform}
.viewer .vv-wheel button{display:block;width:100%;height:46px!important;margin:0!important;border:0!important;background:none!important;box-shadow:none!important;font:700 18px/46px var(--head)!important;color:#fff!important;cursor:pointer;transition:none;position:relative;z-index:1}
.viewer .vv-wheel button.on{color:#ff8a3d!important;font-size:22px!important}
/* galeria: setas grandes, contador, pausa e miniaturas em barra de vidro */
.viewer .gal .arrow{width:64px!important;height:64px!important;border-radius:50%!important;display:grid;place-items:center;background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,.08)),rgba(24,28,35,.4)!important;border:1px solid rgba(255,255,255,.7)!important;color:#fff!important;backdrop-filter:blur(14px);box-shadow:0 10px 30px rgba(0,0,0,.3)!important;transition:transform .2s}
.viewer .gal .arrow:hover{transform:translateY(-50%) scale(1.08)}
.viewer .gal .arrow svg{width:28px;height:28px}
.viewer .gal .arrow.l{left:28px}.viewer .gal .arrow.r{right:150px}
.viewer .gal .main{cursor:zoom-in}
.viewer .gal .ginfo{position:absolute;left:28px;bottom:calc(var(--nb) + 104px);z-index:4;display:flex;align-items:center;gap:12px;padding:6px 6px 6px 16px;border-radius:99px;
  background:linear-gradient(rgba(255,255,255,.18),rgba(255,255,255,.18)),rgba(24,28,35,.30);border:1px solid rgba(255,255,255,.55);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.viewer .gal .ginfo .cap{position:static!important;font-size:15px;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.viewer .gal .gcount{font:600 12px/1 var(--head);color:rgba(255,255,255,.75);letter-spacing:.06em}
.viewer .gal .gplay{width:34px!important;height:34px!important;border-radius:50%!important;display:grid;place-items:center}
.viewer .gal .gplay svg{width:15px;height:15px}
.viewer .gal .strip{left:50%!important;right:auto!important;transform:translateX(-50%);max-width:calc(100% - 340px);height:84px!important;padding:8px 10px!important;border-radius:22px;
  background:linear-gradient(rgba(255,255,255,.14),rgba(255,255,255,.14)),rgba(24,28,35,.30)!important;border:1px solid rgba(255,255,255,.45);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);justify-content:flex-start!important;scrollbar-width:none;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 40px,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(90deg,transparent,#000 40px,#000 calc(100% - 40px),transparent)}
.viewer .gal .strip img{height:66px!important;width:100px!important;border-radius:12px!important;opacity:.55;border:2px solid transparent!important;transition:opacity .2s,transform .2s,border-color .2s}
.viewer .gal .strip img:hover{opacity:.9;transform:translateY(-2px)}
.viewer .gal .strip img.on{opacity:1;border-color:#ff8a3d!important;transform:scale(1.06)}
/* abertura: números e botão sempre legíveis (antes usavam a cor da marca, que pode ser escura) */
.viewer .facts{background:linear-gradient(rgba(255,255,255,.14),rgba(255,255,255,.04)),rgba(18,21,27,.45)!important;border:1px solid rgba(255,255,255,.4)!important;border-radius:18px!important;backdrop-filter:blur(14px)!important;-webkit-backdrop-filter:blur(14px)!important}
.viewer .facts b{color:#fff!important;font-weight:600!important;letter-spacing:.01em;text-shadow:0 1px 3px rgba(0,0,0,.4)}
.viewer .facts span{color:rgba(255,255,255,.75)!important}
.viewer .cta-explore{background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,255,255,.82))!important;color:#16181d!important;border:0!important;box-shadow:0 10px 30px rgba(0,0,0,.3)!important}
.viewer .cta-explore svg{color:#16181d!important}
/* tela de espera do entorno */
.map-loading{position:absolute;inset:0;z-index:30;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 40%,#2b3038,#121418);transition:opacity .8s ease}
.map-loading.off{opacity:0;pointer-events:none}
.map-loading .ml-in{display:flex;flex-direction:column;align-items:center;gap:14px;color:#fff;font-family:var(--head)}
.map-loading b{font-size:18px;font-weight:600;letter-spacing:.04em}
.map-loading span{font-size:12px;color:rgba(255,255,255,.6)}
.map-loading .ml-bar{width:240px;height:4px;border-radius:4px;background:rgba(255,255,255,.12);overflow:hidden}
.map-loading .ml-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#ffa800,#ff4a00);border-radius:4px;transition:width .3s}
.map-loading .ml-orbit{width:64px;height:64px;border-radius:50%;border:2px solid rgba(255,168,0,.35);position:relative;animation:mlSpin 2.4s linear infinite}
.map-loading .ml-orbit i{position:absolute;top:-6px;left:50%;margin-left:-6px;width:12px;height:12px;border-radius:50%;background:#ff7a1a;box-shadow:0 0 14px #ff7a1a}
@keyframes mlSpin{to{transform:rotate(360deg)}}
.map-loading small{font:600 11px/1 var(--head);letter-spacing:.32em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-top:6px}
.map-loading .ml-frase{max-width:min(560px,86vw);min-height:58px;text-align:center;font:500 22px/1.35 var(--head);color:#fff;transition:opacity .45s,transform .45s}
.map-loading .ml-frase.out{opacity:0;transform:translateY(8px)}
.map-loading .ml-in>span{font-size:11px;letter-spacing:.12em;text-transform:uppercase}
/* logo Universe Space animada (planeta + anel girando, inclina com o mouse) */
.map-loading .ml-logo{width:132px;height:84px;perspective:600px;filter:drop-shadow(0 0 18px rgba(255,120,30,.35))}
.map-loading .ml-logo svg{width:100%;height:100%;overflow:visible;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .25s ease-out;animation:mlFloat 4s ease-in-out infinite}
.map-loading .ml-logo .rg{transform-origin:32px 19.6px;animation:mlRing 6s linear infinite}
.map-loading .ml-logo .pl{animation:mlPulse 2.6s ease-in-out infinite}
.map-loading .ml-logo .mo{filter:drop-shadow(0 0 3px #ffb347)}
@keyframes mlRing{to{transform:rotate(360deg)}}
@keyframes mlFloat{50%{translate:0 -5px}}
@keyframes mlPulse{50%{stroke-width:2.4}}
.map-loading .ml-sign{position:absolute;left:0;right:0;bottom:34px;display:flex;flex-direction:column;align-items:center;gap:6px;color:#fff}
.map-loading .ml-sign b{font:800 13px/1 var(--head);letter-spacing:.32em}
.map-loading .ml-sign b em{font-style:normal;background:linear-gradient(180deg,#ffa800,#ff4a00);-webkit-background-clip:text;background-clip:text;color:transparent}
.map-loading .ml-sign span{font-size:12px;color:rgba(255,255,255,.55);letter-spacing:.04em}
.map-loading .ml-logo .rg{animation:none!important}
.map-loading .ml-logo{margin-bottom:10px}
/* assinatura Universe Space fixa na apresentação */
.viewer .us-mark{position:absolute;right:22px;bottom:30px;z-index:25;display:flex;align-items:center;gap:8px;padding:7px 14px 7px 10px;border-radius:99px;pointer-events:auto;
  background:linear-gradient(rgba(255,255,255,.14),rgba(255,255,255,.04)),rgba(18,21,27,.45);border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);opacity:.92}
.viewer .us-mark svg{width:26px;height:17px}
.viewer .us-mark b{font:800 10.5px/1 var(--head);letter-spacing:.24em;color:#fff}
.viewer .us-mark b em{font-style:normal;color:#ff8a2b}
.viewer.preview .us-mark{bottom:12px;right:12px;transform:scale(.85);transform-origin:right bottom}
@media (max-width:900px){.viewer .us-mark{bottom:auto;top:12px;right:12px}}
/* ===== tela de espera no padrão da plataforma: foto desfocada + cartão de vidro grafite ===== */
.map-loading{background:#14171c!important}
.map-loading::before{content:'';position:absolute;inset:-40px;background:var(--ml-bg) center/cover no-repeat;filter:blur(26px) brightness(.55) saturate(1.1);transform:scale(1.05)}
.map-loading::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,rgba(20,24,30,.25),rgba(12,14,18,.75))}
.map-loading .ml-card{position:relative;z-index:1;padding:34px 46px 30px;border-radius:30px;min-width:min(520px,88vw);
  background:linear-gradient(rgba(255,255,255,.16),rgba(255,255,255,.04)),rgba(24,28,35,.38);border:1px solid rgba(255,255,255,.45);
  backdrop-filter:blur(22px) saturate(1.3);-webkit-backdrop-filter:blur(22px) saturate(1.3);box-shadow:inset 0 1px 1px rgba(255,255,255,.5),0 30px 80px rgba(0,0,0,.4)}
.map-loading .ml-sign{z-index:1}
.map-loading .ml-bar{background:rgba(255,255,255,.16)!important}
/* logo animada só com transform (roda na placa de vídeo, não trava enquanto carrega) */
.map-loading .ml-logo{position:relative;width:120px;height:76px;filter:drop-shadow(0 0 16px rgba(255,120,30,.4));animation:mlFloat2 4s ease-in-out infinite;will-change:transform}
.map-loading .ml-planet{position:absolute;left:50%;top:50%;width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:50%;border:3px solid #ff8a1a;
  background:radial-gradient(circle at 35% 30%,rgba(255,200,120,.25),rgba(255,90,0,.08) 60%,transparent 70%)}
.map-loading .ml-orb{position:absolute;left:50%;top:50%;width:112px;height:112px;margin:-56px 0 0 -56px;transform:scaleY(.36)}
.map-loading .ml-ring{position:absolute;inset:0;border-radius:50%;border:3px solid #ffa21a;box-sizing:border-box}
.map-loading .ml-spin{position:absolute;inset:0;animation:mlSpin2 2.8s linear infinite;will-change:transform}
.map-loading .ml-moon{position:absolute;left:50%;top:-6px;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:#ffd08a;box-shadow:0 0 12px #ffb347}
@keyframes mlSpin2{to{transform:rotate(360deg)}}
@keyframes mlFloat2{50%{transform:translateY(-5px)}}
/* ===== abertura com a Terra ===== */
.map-loading.with-intro{background:#02040a!important}
.map-loading.with-intro::before,.map-loading.with-intro::after{display:none}
.intro3d{position:absolute;inset:0;z-index:0;overflow:hidden}
.intro3d canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.intro-sun{position:absolute;left:8%;top:14%;width:240px;height:240px;margin:-120px 0 0 -120px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(255,255,255,.95) 0,rgba(200,225,255,.55) 8%,rgba(120,170,255,.18) 30%,transparent 65%);mix-blend-mode:screen;animation:sunPulse 5s ease-in-out infinite}
@keyframes sunPulse{50%{transform:scale(1.08);opacity:.9}}
.intro3d.diving .intro-sun{opacity:0;transition:opacity 1s}
.map-loading.with-intro .ml-card{position:absolute;left:50%;bottom:118px;transform:translateX(-50%);padding:18px 34px 16px;min-width:min(460px,86vw);background:linear-gradient(rgba(255,255,255,.1),rgba(255,255,255,.02)),rgba(10,14,22,.45)!important}
.map-loading.with-intro .ml-logo{display:none}
.map-loading.with-intro .ml-frase{font-size:19px;min-height:0}
/* foguete Universe Space cruzando o espaço (só transform: não trava) */
.intro-rocket{position:absolute;left:0;top:0;width:230px;z-index:2;pointer-events:none;will-change:transform;animation:rkFly 9s cubic-bezier(.45,.05,.4,1) infinite;filter:drop-shadow(0 6px 18px rgba(0,0,0,.6))}
.intro-rocket .rk-svg{display:block;width:100%;height:auto;position:relative;z-index:1}
.intro-rocket .rk-fire{position:absolute;left:-46px;top:50%;width:70px;height:16px;margin-top:-8px;border-radius:50%;
  background:radial-gradient(ellipse at 100% 50%,#fff 0,#ffd27a 18%,#ff7a1a 45%,rgba(255,60,0,0) 75%);animation:rkFire .12s ease-in-out infinite alternate;transform-origin:100% 50%}
@keyframes rkFire{to{transform:scaleX(.78) scaleY(.85);opacity:.85}}
@keyframes rkFly{
  0%{transform:translate(-30vw,78vh) rotate(-22deg) scale(.7)}
  55%{transform:translate(48vw,30vh) rotate(-12deg) scale(.9)}
  100%{transform:translate(118vw,-12vh) rotate(-24deg) scale(.55)}}
.intro3d.diving .intro-rocket{opacity:0;transition:opacity .6s}
