/* ============================================================
   GeekDeal Digest — stylesheet compartilhado
   ============================================================ */

:root{
  --bg:#12141a;
  --card:#1c1f28;
  --text:#e8e9ee;
  --muted:#a2a7b8;
  --accent:#7fb2ff;
  --border:#2c3140;
}

*{box-sizing:border-box;margin:0;padding:0}

body{
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.65;
  font-size:16px;
}

a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}

/* ---------- Header ---------- */
header{
  background:var(--card);
  border-bottom:1px solid var(--border);
  padding:1rem 1.5rem;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:1rem;
  justify-content:space-between;
  position:sticky;
  top:0;
  z-index:100;
}

.logo{
  font-size:1.25rem;
  font-weight:700;
  color:var(--text);
  text-decoration:none;
}
.logo:hover{text-decoration:none;color:var(--accent)}

nav{display:flex;flex-wrap:wrap;gap:1.25rem}
nav a{
  color:var(--muted);
  font-size:.95rem;
  text-decoration:none;
}
nav a:hover{color:var(--accent);text-decoration:none}

/* ---------- Layout ---------- */
.container{
  max-width:1100px;
  margin:0 auto;
  padding:2rem 1.5rem;
}

main{min-height:60vh}

h1{font-size:2.25rem;line-height:1.2;margin-bottom:.75rem}
h2{font-size:1.5rem;margin:2.5rem 0 .75rem;color:var(--accent)}
h3{font-size:1.15rem;margin:1.5rem 0 .5rem}
p{margin-bottom:1rem}
ul,ol{padding-left:1.5rem;margin-bottom:1rem}
li{margin-bottom:.5rem}

.subtitle{color:var(--muted);font-size:1.1rem;margin-bottom:1.5rem}
.updated{color:var(--muted);font-size:.9rem;margin-bottom:1.5rem}

/* ---------- Hero ---------- */
.hero{
  padding:3rem 0 2rem;
  border-bottom:1px solid var(--border);
  margin-bottom:2rem;
}
.hero h1{font-size:2.75rem;max-width:800px}
.hero p{font-size:1.15rem;color:var(--muted);max-width:700px}

/* ---------- Botões ---------- */
.btn{
  display:inline-block;
  padding:.7rem 1.4rem;
  border-radius:6px;
  font-weight:600;
  font-size:.95rem;
  text-decoration:none;
  transition:opacity .15s;
}
.btn:hover{text-decoration:none;opacity:.85}
.btn-primary{background:var(--accent);color:#0d1017}
.btn-secondary{background:var(--card);color:var(--text);border:1px solid var(--border)}

/* ---------- Grid de cards ---------- */
.card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:1.25rem;
  margin:1.5rem 0;
}

/* ---------- Deal card ---------- */
.deal-card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:10px;
  padding:1.25rem;
  display:flex;
  flex-direction:column;
  gap:.6rem;
}

.deal-card-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:.5rem;
}

.deal-store{
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--muted);
}

.deal-badge{
  background:#2d4a2d;
  color:#8fe08f;
  font-size:.8rem;
  font-weight:700;
  padding:.15rem .5rem;
  border-radius:4px;
}

.deal-title{
  font-size:1.05rem;
  font-weight:600;
  line-height:1.35;
  margin:0;
}

.deal-prices{display:flex;align-items:baseline;gap:.6rem}
.deal-price-now{font-size:1.4rem;font-weight:700;color:var(--text)}
.deal-price-was{font-size:.95rem;color:var(--muted);text-decoration:line-through}

.deal-meta{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  font-size:.8rem;
  color:var(--muted);
}

.deal-score{
  background:var(--bg);
  border:1px solid var(--border);
  padding:.1rem .45rem;
  border-radius:4px;
}

.deal-card-bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:.75rem;
  margin-top:auto;
  padding-top:.75rem;
  border-top:1px solid var(--border);
}

.deal-link-label{font-size:.75rem;color:var(--muted)}

.deal-cta{
  background:var(--accent);
  color:#0d1017;
  padding:.5rem 1rem;
  border-radius:6px;
  font-weight:600;
  font-size:.9rem;
  text-decoration:none;
  white-space:nowrap;
}
.deal-cta:hover{text-decoration:none;opacity:.85}

/* ---------- Article card ---------- */
.article-card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:10px;
  padding:1.25rem;
  display:flex;
  flex-direction:column;
  gap:.5rem;
}
.article-card h3{margin:0;font-size:1.1rem}
.article-card p{color:var(--muted);font-size:.9rem;margin:0}
.article-card .meta{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}

/* ---------- Filtros ---------- */
.filters{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin:1.5rem 0;
  align-items:center;
}

.store-filter{
  background:var(--card);
  border:1px solid var(--border);
  color:var(--muted);
  padding:.4rem .9rem;
  border-radius:20px;
  font-size:.85rem;
  text-decoration:none;
}
.store-filter:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}
.store-filter.active{background:var(--accent);color:#0d1017;border-color:var(--accent)}

select{
  background:var(--card);
  border:1px solid var(--border);
  color:var(--text);
  padding:.45rem .8rem;
  border-radius:6px;
  font-size:.9rem;
  font-family:inherit;
}

/* ---------- Disclosure ---------- */
.disclosure-block{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:8px;
  padding:1rem 1.25rem;
  margin:2.5rem 0 1.5rem;
  font-size:.9rem;
  color:var(--muted);
}

/* ---------- Estados ---------- */
.skeleton{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:10px;
  padding:1.25rem;
  min-height:180px;
}
.sk-line{
  height:12px;
  background:var(--border);
  border-radius:4px;
  margin-bottom:.75rem;
  animation:pulse 1.4s ease-in-out infinite;
}
.sk-w40{width:40%}
.sk-w60{width:60%}
.sk-w90{width:90%}
@keyframes pulse{0%,100%{opacity:.4}50%{opacity:.9}}

.empty-state,.error-state{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:10px;
  padding:2.5rem 1.5rem;
  text-align:center;
  color:var(--muted);
}
.error-state{border-color:#5a2d2d}

/* ---------- Tabela comparativa ---------- */
.compare-table{
  width:100%;
  border-collapse:collapse;
  margin:1.5rem 0;
  font-size:.9rem;
}
.compare-table th,
.compare-table td{
  border:1px solid var(--border);
  padding:.65rem .8rem;
  text-align:left;
}
.compare-table th{background:var(--card);font-weight:600}
.compare-table tr:nth-child(even){background:rgba(255,255,255,.02)}

/* ---------- Footer ---------- */
footer{
  background:var(--card);
  border-top:1px solid var(--border);
  margin-top:3rem;
  padding:2.5rem 1.5rem 1.5rem;
}

.footer-cols{
  max-width:1100px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:2rem;
}

.footer-cols h3{
  font-size:.95rem;
  margin:0 0 .75rem;
  color:var(--text);
}

.footer-cols a{
  display:block;
  color:var(--muted);
  font-size:.9rem;
  margin-bottom:.4rem;
  text-decoration:none;
}
.footer-cols a:hover{color:var(--accent)}

.copyright{
  max-width:1100px;
  margin:2rem auto 0;
  border-top:1px solid var(--border);
  padding-top:1.25rem;
  color:var(--muted);
  font-size:.85rem;
  text-align:center;
}

/* ---------- Responsivo ---------- */
@media(max-width:900px){
  .hero h1{font-size:2rem}
  h1{font-size:1.75rem}
}

@media(max-width:600px){
  header{padding:.9rem 1rem}
  nav{width:100%;gap:1rem}
  .container{padding:1.5rem 1rem}
  .hero{padding:2rem 0 1.5rem}
  .hero h1{font-size:1.6rem}
  .card-grid{grid-template-columns:1fr}
  .deal-card-bottom{flex-direction:column;align-items:stretch}
  .deal-cta{text-align:center}
}
