
:root{
  --brand:#2A6FB8;
  --brand-600:#1E5A98;
  --accent:#66B2FF;
  --ink:#111111;
  --muted:#6B7280;
  --bg:#FFFFFF;
  --card:#F8FAF9;
  --ring:rgba(32,201,151,.35);
}
:root[data-theme="light"]{
  --bg:#FFFFFF; --ink:#111111; --card:#F8FAF9;
}
:root[data-theme="dark"]{
  --bg:#0b0f0e; --ink:#e8f1ee; --card:#0f1614;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell, Noto Sans, 'Helvetica Neue', Arial, 'Apple Color Emoji','Segoe UI Emoji';
  color:var(--ink);
  background:linear-gradient(180deg,var(--bg), color-mix(in oklab, var(--bg) 88%, #e6f5ee) 80%);
}
.header{
  position:sticky;
  top:0;
  background:var(--bg);
  border-bottom:1px solid color-mix(in oklab, var(--bg) 90%, #0f3d2e);
  z-index:10;
  opacity: 0.90; /* 95% de opacidade */
}
.container{max-width:1100px;margin:0 auto;padding:24px}
.brand{
  display:flex;gap:14px;align-items:center;
}
.logo-img{height:36px;width:auto;display:block}
.brand h1{margin:0;font-size:18px}
.sub{color:var(--muted);font-size:12px;margin-top:2px}
.toolbar{display:flex;gap:12px;align-items:center;margin-top:14px;flex-wrap:wrap}
.search{
  flex:1;display:flex;align-items:center;background:var(--card);border:1px solid color-mix(in oklab, var(--bg) 80%, #0f3d2e);
  border-radius:12px;padding:10px 12px;gap:8px;
}
.search input{border:0;outline:0;background:transparent;width:100%;font-size:14px;color:var(--ink)}
.btn{
  appearance:none;border:0;border-radius:12px;padding:10px 14px;background:var(--brand);color:#fff;font-weight:600;
  box-shadow:0 8px 18px rgba(42,111,184,.25);cursor:pointer
}
.grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;margin-top:18px
}
.card{
  background:#fff;border:1px solid #e1e7f2;border-radius:16px;padding:16px;display:flex;gap:12px;align-items:flex-start;
  transition:all .2s cubic-bezier(0.4, 0, 0.2, 1);
  opacity: 0.90;
  cursor: pointer;
  user-select: none;
}
.card:hover{
  transform:translateY(-4px) scale(1.02);
  box-shadow:0 12px 28px rgba(42,111,184,.2), 0 0 0 3px rgba(42,111,184,.08);
  border-color:#cbdaf1;
  opacity: 0.95;
}
.card:active{
  transform:translateY(-2px) scale(1.01);
  box-shadow:0 6px 16px rgba(42,111,184,.15);
}
.card .icon{
  width:36px;height:36px;border-radius:10px;background:var(--card);display:grid;place-items:center;border:1px solid #e2eaf6;
}
.card h3{margin:0 0 4px 0;font-size:15px}
.card p{margin:0;color:var(--muted);font-size:13px}
.badge{
  font-size:10px;
  padding:3px 7px;
  border-radius:999px;
  background:#eaf3ff;
  border:1px solid #d6e6ff;
  color:#1f4f84;
  position: absolute;
  bottom: 8px;
  right: 8px;
}
.footer{color:var(--muted);font-size:12px;margin-top:22px;text-align:center}
.kbd{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
     border:1px solid #e1e7f2;border-bottom-width:2px;border-radius:6px;padding:0 6px;background:#fff;color:#333;font-size:12px}
.theme-toggle{display:flex;gap:8px;align-items:center}
.theme-toggle .icon{display:grid;place-items:center}

/* Follow system when user has not chosen manually */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0b0f0e; --ink:#e8f1ee; --card:#0f1614;
  }
  .card{background:#0f1412;border-color:#16211e}
  .footer{color:#9fb1ab}
  .search{border-color:#16211e}
  .header{border-color:#121a18}
}


/* === Contel Blue Overrides === */
:root{
  --brand:#227CC0;
  --brand-600:#1E5A98;
  --accent:#66B2FF;
}

/* LIGHT: cards azuis #227CC0 */
.card{
  background:#227CC0;
  border-color:#1e6aa7;
}
.card h3{ color:#FFFFFF; }
.card p{ color:#E9F3FF; }
.card .icon{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.25);
  color:#FFFFFF;
}
.badge{
  background:#ffffff;
  border-color:#E6F0FA;
  color:#1E5A98;
}

/* DARK: remover verdes; usar acentos em azul */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0b0f12; --ink:#e8f1f7; --card:#0f141a;
  }
  .card{
    background:#0f141a;
    border-color:#18314a;
  }
  .card .icon{
    background:#121a22;
    border-color:#1a2a3a;
    color:#b9d6ff;
  }
  .badge{
    background: rgba(34,124,192,.16);
    border-color:#1a3a5a;
    color:#8ec6ff;
  }
  .search{ border-color:#1a2a3a; }
  .header{ border-color:#121a18; }
}

/* Explicit manual override wins over media when user escolhe */
:root[data-theme="light"] .card{
  background:#227CC0; border-color:#1e6aa7;
}
:root[data-theme="light"] .card h3{ color:#FFFFFF; }
:root[data-theme="light"] .card p{ color:#E9F3FF; }
:root[data-theme="light"] .card .icon{
  background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.25); color:#FFFFFF;
}
:root[data-theme="dark"] .card{
  background:#0f141a; border-color:#18314a;
}


/* === Background slideshow + overlay === */
:root{ --overlay: rgba(0,0,0,.55); } /* azul opaco no light */
:root[data-theme="dark"]{ --overlay: rgba(0,0,0,.55); } /* preto opaco no dark */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){ --overlay: rgba(0,0,0,.55); }
}

.bg{
  position: fixed; inset: 0;
  z-index: 0; pointer-events: none;
  overflow: hidden;
}
.bg-layer{
  position:absolute; inset:0;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  opacity:0; transition:opacity 1200ms ease;
  filter:saturate(0.85) contrast(1.05);
}
.bg-layer.show{ opacity:1; }
body > .header, body > .container{
  position: relative; z-index: 1;
}


/* === Civil Engineering vibe / palette === */
:root{
  --steel:#2B3640;
  --concrete:#E6E8EC;
  --sand:#D7C8B6;
  --copper:#B87333;
  --parallax-back: color-mix(in oklab, #227CC0 35%, #0b1a26 65%);
  --parallax-front: color-mix(in oklab, #66B2FF 40%, #0b1a26 60%);
  --tower-stroke: color-mix(in oklab, var(--ink) 75%, #6aa9e9 25%);
}
:root[data-theme="dark"]{
  --parallax-back: color-mix(in oklab, #1a2f45 70%, #0a0f14 30%);
  --parallax-front: color-mix(in oklab, #204d74 70%, #0a0f14 30%);
  --tower-stroke: color-mix(in oklab, var(--ink) 85%, #8ec6ff 15%);
}

/* Header melhorado (móvel + glass) */
.header{
  backdrop-filter:saturate(1.1) blur(10px);
  background: color-mix(in oklab, var(--bg) 75%, transparent);
  border-bottom: 1px solid color-mix(in oklab, var(--bg) 70%, #1a2a3a);
  transition: box-shadow .2s ease, transform .2s ease, background .2s ease;
}
.header.scrolled{
  box-shadow: 0 10px 30px rgba(0,0,0,.18);
  transform: translateY(-2px);
}
.header-inner{display:flex; align-items:center; gap:16px; justify-content:space-between; flex-wrap:wrap;}
.brand-text h1{font-size:20px}
@media (max-width: 720px){
  .brand-text .sub{display:none}
}

/* Theme toggle contextual */
.theme-toggle{
  background: linear-gradient(180deg, #1e6aa7, #227CC0);
  box-shadow: 0 10px 22px rgba(34,124,192,.28);
  display:flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0;
}
.theme-toggle .icon{width:24px;height:24px}
:root[data-theme="dark"] .theme-toggle{ background: linear-gradient(180deg, #0f141a, #1a2a3a);}

/* Parallax layers */
.parallax{
  position: fixed; inset: auto 0 0 0; height: 45vh; z-index:0; pointer-events:none;
}
.layer{ position:absolute; left:0; right:0; }
.layer-back{ bottom: -8vh; opacity:.55; transform:translateY(0); transition:transform .2s ease-out;}
.layer-front{ bottom: -3vh; opacity:.85; transform:translateY(0); transition:transform .2s ease-out;}
.tower-svg{ position:absolute; right:6%; bottom:8%; width:80px; height:auto; opacity:.9;}

/* Main comes above layers */
body > .header, body > .container, .main{ position:relative; z-index:1; }

/* Cards hover airy */
.card{ backdrop-filter:saturate(1.1) blur(2px); }

/* NPS widget */
.nps-fab{
  position: fixed; right:20px; bottom:20px; z-index:3;
  background:#0EA5A2; color:#fff; border:0; border-radius:999px;
  padding:12px 16px; font-weight:700; box-shadow:0 12px 30px rgba(14,165,162,.35);
  cursor:pointer;
}
:root[data-theme="dark"] .nps-fab{ background:#14B8A6; }
.nps-modal[hidden]{ display:none; }
.nps-modal{
  position:fixed; inset:0; z-index:4; display:grid; place-items:center;
  background:rgba(0,0,0,.45);
}
.nps-card{
  width:min(560px, calc(100vw - 32px));
  background:var(--bg); color:var(--ink);
  border:1px solid color-mix(in oklab, var(--bg) 80%, #1a2a3a);
  border-radius:16px; padding:16px; box-shadow:0 22px 50px rgba(0,0,0,.35);
}
.nps-head{ display:flex; align-items:center; justify-content:space-between; gap:12px;}
.nps-close{ background:transparent; border:0; font-size:22px; line-height:1; cursor:pointer; color:var(--ink);}
.nps-sub{ color:var(--muted); margin:.5rem 0 1rem; }
.nps-scale{ display:grid; grid-template-columns: repeat(11, 1fr); gap:8px; margin-bottom:12px;}
.nps-btn{
  border:1px solid #d8e6f8; border-radius:10px; padding:10px 0; background:#fff; cursor:pointer; font-weight:700;
}
.nps-btn[aria-pressed="true"]{
  background:#227CC0; border-color:#1e6aa7; color:#fff; box-shadow:0 8px 20px rgba(34,124,192,.28);
}
:root[data-theme="dark"] .nps-btn{ background:#0f141a; border-color:#18314a; color:#e8f1f7;}
:root[data-theme="dark"] .nps-btn[aria-pressed="true"]{ background:#145a8a; border-color:#1a3a5a; }
.nps-label{ display:block; font-size:13px; color:var(--muted); margin:6px 0; }
.nps-text{
  width:100%; border-radius:12px; border:1px solid color-mix(in oklab, var(--bg) 80%, #1a2a3a);
  background:var(--card); color:var(--ink); padding:10px 12px; outline:none;
}
.nps-actions{ display:flex; gap:10px; justify-content:flex-end; margin-top:12px;}
.btn.btn-secondary{ background:#6B7280; box-shadow:none;}
.nps-result{ margin-top:10px; color:#10B981; font-weight:700; }

/* === Favoritos === */
.favorite-btn{
  position: absolute;
  top: 8px;
  right: 8px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 6px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .2s ease;
  z-index: 2;
  color: rgba(255, 255, 255, 0.6);
}
.favorite-btn:hover{
  background: rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.9);
  transform: scale(1.1);
}
.favorite-btn.active{
  color: #FFD700;
}
.favorite-btn.active:hover{
  color: #FFA500;
}
.card{
  position: relative;
}

.section-title{
  font-size: 18px;
  font-weight: 700;
  margin: 32px 0 16px 0;
  color: var(--ink);
  opacity: 0.9;
}
.favorites-section .section-title{
  margin-top: 0;
}
.favorites-section, .others-section{
  margin-bottom: 24px;
}

/* Dark mode adjustments for favorite button */
:root[data-theme="dark"] .favorite-btn{
  color: rgba(255, 255, 255, 0.5);
}
:root[data-theme="dark"] .favorite-btn:hover{
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.8);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .favorite-btn{
    color: rgba(255, 255, 255, 0.5);
  }
  :root:not([data-theme="light"]) .favorite-btn:hover{
    background: rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.8);
  }
}
