/* ═══════════════════════════════════════════════════════
   MAPA BONITO  ·  Texto sobreposto · Ruas na cor do accent
═══════════════════════════════════════════════════════ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden}

:root {
  --site-black:   #0A0A0A;
  --site-warm:    #FAFAF8;
  --site-mid:     #454545;
  --site-border:  #E0DDD8;
  --sb-bg:        #070d15;
  --sb-bg2:       #0c1520;
  --sb-border:    rgba(255,255,255,0.06);
  --sb-border-hi: rgba(255,255,255,0.13);
  --sb-text:      #d0c8b8;
  --sb-text-dim:  #5a5448;
  --sb-text-muted:#8a8070;
  --accent:       #C9A84C;
  --accent-dim:   rgba(201,168,76,0.15);
  --nav-h:        60px;
  --sb-w:         290px;
  --r:            5px;
  --r-lg:         8px;
  --trans:        0.18s ease;
}

body{font-family:'Jost',sans-serif;font-weight:400;background:var(--sb-bg);color:var(--sb-text);display:flex;flex-direction:column;}
a{text-decoration:none;}

/* ══ NAVBAR ══════════════════════════════════════════════ */
.site-nav{
  position:fixed;top:0;left:0;right:0;z-index:300;
  height:var(--nav-h);display:flex;align-items:center;
  justify-content:space-between;padding:0 3rem;
  background:rgba(250,250,248,0.97);
  border-bottom:1px solid var(--site-border);
  backdrop-filter:blur(10px);flex-shrink:0;
}
.nav-brand{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;color:var(--site-black);}
.nav-links{display:flex;gap:2rem;list-style:none;}
.nav-links a{font-size:0.72rem;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;color:var(--site-mid);transition:color var(--trans);}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--site-black);}
.nav-cta{font-size:0.7rem;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;color:var(--site-black);border:1px solid var(--site-black);padding:0.45rem 1.2rem;transition:background var(--trans),color var(--trans);}
.nav-cta:hover{background:var(--site-black);color:var(--site-warm);}
.nav-hamburger{display:none;}

/* ══ APP WRAPPER ═════════════════════════════════════════ */
.app-wrapper{display:flex;flex:1;margin-top:var(--nav-h);height:calc(100vh - var(--nav-h));overflow:hidden;}

/* ══ SIDEBAR ═════════════════════════════════════════════ */
.sidebar{width:var(--sb-w);min-width:var(--sb-w);height:100%;background:var(--sb-bg);border-right:1px solid var(--sb-border);display:flex;flex-direction:column;z-index:100;transition:transform var(--trans);}
.sidebar-logo{display:flex;align-items:center;gap:12px;padding:18px 18px 14px;border-bottom:1px solid var(--sb-border);flex-shrink:0;}
.logo-star{font-size:18px;color:var(--accent);animation:glow 4s ease-in-out infinite;}
@keyframes glow{0%,100%{opacity:1}50%{opacity:0.5}}
.logo-name{display:block;font-family:'Cormorant Garamond',serif;font-weight:500;font-size:17px;color:var(--accent);letter-spacing:0.04em;line-height:1.1;}
.logo-sub{display:block;font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:var(--sb-text-dim);margin-top:2px;}
.sidebar-scroll{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--sb-border) transparent;}
.sidebar-scroll::-webkit-scrollbar{width:3px;}
.sidebar-scroll::-webkit-scrollbar-thumb{background:var(--sb-border-hi);border-radius:2px;}
.sidebar-osm{padding:10px 18px;border-top:1px solid var(--sb-border);font-size:9px;color:var(--sb-text-dim);text-align:center;letter-spacing:0.04em;flex-shrink:0;}
.sidebar-osm a{color:var(--sb-text-dim);}
.sidebar-osm a:hover{color:var(--accent);}

/* Panels */
.panel{padding:14px 18px;border-bottom:1px solid var(--sb-border);}
.panel-label{font-size:8.5px;font-weight:500;letter-spacing:0.2em;text-transform:uppercase;color:var(--accent);opacity:0.7;margin-bottom:10px;}

/* Search */
.search-row{position:relative;}
.search-wrap{display:flex;align-items:center;background:var(--sb-bg2);border:1px solid var(--sb-border-hi);border-radius:var(--r);overflow:hidden;transition:border-color var(--trans),box-shadow var(--trans);}
.search-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);}
.si{padding:0 8px;color:var(--sb-text-dim);flex-shrink:0;}
.search-input{flex:1;background:none;border:none;outline:none;padding:9px 4px;font-family:'Jost',sans-serif;font-size:12px;font-weight:300;color:var(--sb-text);min-width:0;}
.search-input::placeholder{color:var(--sb-text-dim);}
.search-btn{background:var(--accent);border:none;padding:0 11px;min-height:36px;color:#06100a;cursor:pointer;display:flex;align-items:center;transition:background var(--trans);flex-shrink:0;}
.search-btn:hover{background:color-mix(in srgb,var(--accent) 80%,white);}

.autocomplete{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;background:#111c2a;border:1px solid var(--sb-border-hi);border-radius:var(--r);z-index:400;box-shadow:0 12px 40px rgba(0,0,0,0.7);overflow:hidden;}
.autocomplete.open{display:block;}
.ac-item{display:flex;align-items:flex-start;gap:8px;padding:9px 12px;cursor:pointer;border-bottom:1px solid rgba(255,255,255,0.03);transition:background var(--trans);}
.ac-item:last-child{border-bottom:none;}
.ac-item:hover{background:var(--accent-dim);}
.ac-pin{color:var(--accent);opacity:0.7;flex-shrink:0;margin-top:1px;}
.ac-name{font-size:12px;font-weight:400;color:var(--sb-text);}
.ac-region{font-size:10px;color:var(--sb-text-muted);margin-top:1px;}

/* Theme pills */
.theme-pills{display:flex;flex-wrap:wrap;gap:5px;}
.pill{display:flex;align-items:center;gap:5px;padding:4px 9px;border-radius:100px;border:1px solid var(--sb-border-hi);background:var(--sb-bg2);color:var(--sb-text-muted);font-family:'Jost',sans-serif;font-size:10px;font-weight:400;letter-spacing:0.04em;cursor:pointer;transition:all var(--trans);white-space:nowrap;}
.pill:hover{border-color:var(--accent);color:var(--sb-text);}
.pill.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);}
.pill-dot{width:9px;height:9px;border-radius:50%;border:1px solid rgba(255,255,255,0.12);flex-shrink:0;}

/* Accent */
.accent-row{display:flex;gap:7px;flex-wrap:wrap;align-items:center;}
.ac{width:24px;height:24px;border-radius:50%;border:2px solid transparent;background:var(--c);cursor:pointer;flex-shrink:0;transition:transform var(--trans),border-color var(--trans),box-shadow var(--trans);}
.ac:hover{transform:scale(1.15);}
.ac.active{border-color:white;box-shadow:0 0 0 3px var(--accent-dim);transform:scale(1.1);}
.ac-custom{background:conic-gradient(red,yellow,lime,cyan,blue,magenta,red);display:flex;align-items:center;justify-content:center;color:white;cursor:pointer;position:relative;}
.ac-custom input{position:absolute;opacity:0;width:0;height:0;pointer-events:none;}
.ac-custom svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,0.8));pointer-events:none;}

/* Font grid */
.font-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;}
.font-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px 6px;background:var(--sb-bg2);border:1px solid var(--sb-border-hi);border-radius:var(--r);cursor:pointer;transition:all var(--trans);min-height:54px;justify-content:center;}
.font-btn:hover{border-color:var(--sb-text-muted);}
.font-btn.active{border-color:var(--accent);background:var(--accent-dim);}
.font-btn>span:first-child{color:var(--sb-text);display:block;line-height:1.1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.fn{font-family:'Jost',sans-serif;font-size:8px;font-weight:300;letter-spacing:0.1em;color:var(--sb-text-dim);text-transform:uppercase;}

/* Sliders */
.slider-row{display:flex;align-items:center;gap:10px;}
.slider-val{font-size:12px;font-weight:400;color:var(--accent);min-width:40px;font-variant-numeric:tabular-nums;text-align:right;}
.slider{flex:1;-webkit-appearance:none;height:2px;border-radius:1px;outline:none;cursor:pointer;background:linear-gradient(to right,var(--accent) var(--pct,50%),var(--sb-border-hi) var(--pct,50%));}
.slider::-webkit-slider-thumb{-webkit-appearance:none;width:13px;height:13px;border-radius:50%;background:var(--accent);border:2px solid var(--sb-bg);box-shadow:0 0 0 2px var(--accent-dim);transition:box-shadow var(--trans);}
.slider::-webkit-slider-thumb:hover{box-shadow:0 0 0 4px var(--accent-dim);}
.zoom-hints{display:flex;justify-content:space-between;margin-top:5px;font-size:9px;letter-spacing:0.08em;color:var(--sb-text-dim);text-transform:uppercase;}

/* Fields */
.field-stack{display:flex;flex-direction:column;gap:7px;}
.field-label{display:block;font-size:9px;letter-spacing:0.12em;text-transform:uppercase;color:var(--sb-text-dim);margin-bottom:3px;}
.field-input{width:100%;background:var(--sb-bg2);border:1px solid var(--sb-border-hi);border-radius:var(--r);padding:7px 10px;font-family:'Jost',sans-serif;font-size:12px;font-weight:300;color:var(--sb-text);outline:none;transition:border-color var(--trans),box-shadow var(--trans);}
.field-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);}
.field-input::placeholder{color:var(--sb-text-dim);}
.field-input[readonly]{color:var(--sb-text-muted);cursor:default;}

/* Export */
.panel-export{display:flex;flex-direction:column;gap:7px;}
.btn-primary{width:100%;background:var(--accent);color:#05090f;border:none;border-radius:var(--r);padding:11px 14px;font-family:'Jost',sans-serif;font-size:10px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;transition:all var(--trans);}
.btn-primary:hover{background:color-mix(in srgb,var(--accent) 80%,white);transform:translateY(-1px);box-shadow:0 4px 16px var(--accent-dim);}
.btn-ghost{width:100%;background:transparent;color:var(--accent);border:1px solid var(--accent-dim);border-radius:var(--r);padding:10px 14px;font-family:'Jost',sans-serif;font-size:10px;font-weight:400;letter-spacing:0.14em;text-transform:uppercase;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;transition:all var(--trans);}
.btn-ghost:hover{background:var(--accent-dim);border-color:var(--accent);transform:translateY(-1px);}
.btn-back{display:block;text-align:center;font-family:'Jost',sans-serif;font-size:10px;font-weight:400;letter-spacing:0.14em;text-transform:uppercase;color:var(--sb-text-muted);padding:6px;transition:color var(--trans);}
.btn-back:hover{color:var(--site-warm);}

/* ══ CANVAS ══════════════════════════════════════════════ */
.canvas{flex:1;display:flex;align-items:center;justify-content:center;background:#040911;background-image:radial-gradient(ellipse 60% 50% at 30% 60%,rgba(201,168,76,0.04) 0%,transparent 70%),radial-gradient(ellipse 50% 60% at 75% 30%,rgba(20,50,100,0.1) 0%,transparent 70%);position:relative;overflow:hidden;padding:24px;}
.canvas::before{content:'';position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,0.012) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.012) 1px,transparent 1px);background-size:40px 40px;}

/* ══ POSTER ══════════════════════════════════════════════ */
.poster-stage{display:flex;align-items:center;justify-content:center;width:100%;height:100%;}
.poster{
  position:relative;
  width:min(100%, calc((100vh - var(--nav-h) - 48px) * 0.75));
  aspect-ratio:3/4;
  border-radius:2px;overflow:hidden;
  box-shadow:0 0 0 1px rgba(255,255,255,0.07),0 20px 60px rgba(0,0,0,0.7),0 60px 120px rgba(0,0,0,0.4);
  animation:rise 0.6s cubic-bezier(0.16,1,0.3,1) both;
}
@keyframes rise{from{opacity:0;transform:translateY(20px) scale(0.97)}to{opacity:1;transform:none}}

/* ── MAP: cobre o poster inteiro ── */
#map{
  position:absolute;
  inset:0;
  width:100%;height:100%;
  z-index:1;
}
/* Oculta UI padrão do MapLibre */
#map .maplibregl-control-container,
#map .maplibregl-ctrl-attrib,
#map .maplibregl-ctrl-logo { display:none!important; }

/* ── POSTER FOOTER: sobreposto ao mapa, parte inferior ── */
.poster-footer{
  position:absolute;
  bottom:0;left:0;right:0;
  z-index:10;
  padding:20px 28px 28px;
  display:flex;flex-direction:column;align-items:center;gap:4px;
  /* Gradiente para legibilidade — começa transparente no topo */
  background:linear-gradient(to bottom, transparent 0%, var(--poster-footer-bg,rgba(6,14,28,0.88)) 40%);
}

.pf-title{
  font-size:clamp(18px,4.5vw,38px);font-weight:700;
  letter-spacing:0.18em;text-align:center;line-height:1;
  color:var(--poster-accent,#C9A84C);
  transition:font-family 0.15s,letter-spacing 0.2s;
  text-shadow:0 2px 20px rgba(0,0,0,0.6);
}
.pf-rule{width:46px;height:1px;margin:3px 0;background:var(--poster-accent,#C9A84C);}
.pf-sub{font-size:clamp(9px,1.6vw,14px);font-weight:300;letter-spacing:0.22em;text-align:center;color:var(--poster-accent,#C9A84C);opacity:0.9;text-shadow:0 1px 8px rgba(0,0,0,0.5);}
.pf-coords{font-size:clamp(7px,1.2vw,10px);letter-spacing:0.1em;opacity:0.6;text-align:center;color:var(--poster-accent,#C9A84C);text-shadow:0 1px 8px rgba(0,0,0,0.5);}

/* Tema cream: footer mais claro */
[data-theme="cream"] .poster-footer{
  background:linear-gradient(to bottom,transparent 0%,rgba(232,224,208,0.92) 40%);
}
[data-theme="cream"] .pf-title,[data-theme="cream"] .pf-sub,[data-theme="cream"] .pf-coords{color:var(--poster-accent,#2a1f0e);}
[data-theme="cream"] .pf-rule{background:var(--poster-accent,#2a1f0e);}

/* Poster background por tema */
[data-theme="dark-gold"]  #map{background:#0a1628;}
[data-theme="noir"]       #map{background:#0d0d0d;}
[data-theme="cream"]      #map{background:#f2ece0;}
[data-theme="forest"]     #map{background:#0d1f12;}
[data-theme="rouge"]      #map{background:#1a070b;}

/* Footer bg por tema (passa como CSS var) */
[data-theme="dark-gold"]  .poster-footer{--poster-footer-bg:rgba(6,14,28,0.90);}
[data-theme="noir"]       .poster-footer{--poster-footer-bg:rgba(5,5,5,0.90);}
[data-theme="blueprints"] .poster-footer{--poster-footer-bg:rgba(7,20,40,0.90);}
[data-theme="forest"]     .poster-footer{--poster-footer-bg:rgba(7,19,9,0.90);}
[data-theme="rouge"]      .poster-footer{--poster-footer-bg:rgba(14,3,6,0.90);}

/* ── MARKER STYLE ROW ────────────────────────────────────── */
.marker-style-row{display:flex;align-items:center;gap:6px;margin-top:10px;flex-wrap:wrap;}
.marker-btn{width:30px;height:30px;border-radius:var(--r);border:1px solid var(--sb-border-hi);background:var(--sb-bg2);color:var(--sb-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--trans);flex-shrink:0;}
.marker-btn:hover{border-color:var(--accent);color:var(--sb-text);}
.marker-btn.active{border-color:var(--accent);background:var(--accent-dim);color:var(--accent);}
.marker-clear{width:26px;height:26px;border-radius:var(--r);border:1px solid var(--sb-border);background:transparent;color:var(--sb-text-dim);cursor:pointer;display:flex;align-items:center;justify-content:center;margin-left:auto;transition:all var(--trans);}
.marker-clear:hover{border-color:#d4607a;color:#d4607a;}
.maplibre-marker-custom{cursor:default;filter:drop-shadow(0 2px 8px rgba(0,0,0,0.6));}

/* FAB */
.fab{display:none;position:absolute;top:14px;left:14px;width:42px;height:42px;background:rgba(7,13,21,0.9);border:1px solid var(--sb-border-hi);border-radius:var(--r);color:var(--accent);cursor:pointer;align-items:center;justify-content:center;backdrop-filter:blur(8px);z-index:50;}

/* Loading */
.overlay{display:none;position:fixed;inset:0;background:rgba(4,9,17,0.88);backdrop-filter:blur(6px);z-index:1000;align-items:center;justify-content:center;}
.overlay.show{display:flex;}
.overlay-inner{display:flex;flex-direction:column;align-items:center;gap:16px;}
.spinner{width:36px;height:36px;border:2px solid var(--sb-border-hi);border-top-color:var(--accent);border-radius:50%;animation:spin 0.75s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}
.overlay-inner p{font-size:11px;letter-spacing:0.15em;text-transform:uppercase;color:var(--sb-text-muted);}

/* Toast */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(10px);background:#1a2535;border:1px solid var(--sb-border-hi);border-radius:var(--r-lg);padding:9px 20px;font-size:11px;letter-spacing:0.06em;color:var(--sb-text);opacity:0;pointer-events:none;transition:opacity 0.25s,transform 0.25s;z-index:2000;white-space:nowrap;box-shadow:0 8px 32px rgba(0,0,0,0.5);}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* Responsive */
@media(max-width:768px){
  .site-nav{padding:0 1.2rem;}
  .nav-links,.nav-cta{display:none;}
  .nav-hamburger{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--site-black);cursor:pointer;padding:4px;}
  .sidebar{position:fixed;left:0;top:var(--nav-h);bottom:0;transform:translateX(-100%);box-shadow:4px 0 32px rgba(0,0,0,0.6);}
  .sidebar.open{transform:translateX(0);}
  .fab{display:flex;}
  .canvas{padding:12px;}
}
