/* ==========================================================================
   Blog — estilos estruturais. Todas as cores/medidas vêm de CSS custom
   properties definidas pelo Theme (ver base.html). Tokens derivados abaixo.
   ========================================================================== */
:root{
  --muted: color-mix(in srgb, var(--ink) 55%, var(--paper));
  --faint: color-mix(in srgb, var(--ink) 34%, var(--paper));
  --hairline: color-mix(in srgb, var(--ink) 12%, var(--paper));
  --accent-soft: color-mix(in srgb, var(--accent) 12%, transparent);
  --surface-2: color-mix(in srgb, var(--ink) 4%, var(--surface));
  --shadow: 0 1px 2px rgba(0,0,0,.05), 0 12px 40px -14px rgba(0,0,0,.18);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--font-meta);line-height:1.55;-webkit-font-smoothing:antialiased;
}
a{color:var(--link);text-decoration:none;transition:color .2s}
a:visited{color:var(--link-visited)}
a:hover{color:var(--link-hover)}
img{max-width:100%;height:auto}
picture{display:contents}

/* -------- layout -------- */
.site{width:100%;max-width:var(--container-width);margin:0 auto;padding:0 16px}
.blog{background:var(--surface);border:1px solid var(--hairline);border-radius:14px;overflow:hidden;
  margin-top:var(--banner-gap)}

/* -------- banner + topo -------- */
.topwrap{position:relative}
.banner{height:var(--banner-height);border-bottom:1px solid var(--hairline);
  background:var(--banner-image, linear-gradient(115deg,var(--accent-soft),transparent 60%),
    repeating-linear-gradient(135deg,transparent 0 22px,color-mix(in srgb,var(--ink) 3%,transparent) 22px 23px));
  background-size:cover;background-position:center}
/* modo transparente / degradê: banner atrás do título */
.topwrap.mode-transparent .head,.topwrap.mode-gradient .head{position:relative}
.topwrap.mode-transparent .banner,.topwrap.mode-gradient .banner{
  position:absolute;inset:0;height:auto;border-bottom:0}
.topwrap.mode-gradient .banner::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to top, var(--surface) 0%, color-mix(in srgb,var(--surface) 40%,transparent) 45%, transparent 100%)}

.head{padding:calc(var(--banner-pad-top) + 4px) 34px 16px;position:relative;z-index:1}
.wordmark{height: 40px;font-family:var(--font-display),sans-serif;font-weight:var(--font-display-weight);
  font-size:var(--font-display-size);line-height:.95;margin:0;letter-spacing:.005em;color:var(--ink);
  text-shadow:var(--title-shadow,none)}
.wordmark a{color:inherit}
.wordmark .hi{color:var(--title-hi-color);font-weight:var(--title-hi-weight)}
.subtitle{font-family:var(--font-body),serif;font-style:italic;color:var(--subtitle-color,var(--muted));
  font-size:1.05rem;margin-top:var(--title-sub-gap,6px);text-shadow:var(--subtitle-shadow,none)}
.logo-img{max-height:calc(var(--font-display-size) + 6px);width:auto}

.hbtns{position:absolute;top:calc(var(--banner-pad-top) + 6px);right:34px;display:flex;gap:9px;z-index:2}
.hbtn{width:34px;height:34px;border-radius:50%;border:1px solid var(--hairline);background:var(--paper);
  display:flex;align-items:center;justify-content:center;color:var(--muted);cursor:pointer;transition:.18s;
  overflow:hidden;padding:0}
.hbtn:hover{border-color:var(--accent);color:var(--link);transform:translateY(-1px)}
.hbtn img{width:20px;height:20px;object-fit:contain}

/* -------- nav + busca -------- */
.nav{display:flex;align-items:center;gap:6px;padding:0 34px;border-top:1px solid var(--hairline);
  border-bottom:1px solid var(--hairline);min-height:50px;flex-wrap:wrap;background:var(--surface);position:relative}
.nav.sticky{position:sticky;top:0;z-index:30}
.menu-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:9px 8px;margin-right:4px}
.menu-toggle .bar{width:24px;height:2.5px;background:var(--ink);border-radius:2px;
  transition:transform .3s ease,opacity .2s ease}
.menu-links{display:flex;align-items:center;gap:2px}
.nav a.mi{font-family:var(--font-meta);font-size:.9rem;font-weight:600;color:var(--muted);
  padding:14px 12px;position:relative;transition:.15s;letter-spacing:.01em}
.nav a.mi:hover{color:var(--ink)}
.nav a.mi.active{color:var(--ink)}
.nav a.mi.active::after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;background:var(--accent)}
.nav .grow{flex:1}
.search{display:flex;align-items:center;gap:8px;color:var(--faint);border-bottom:1px solid var(--hairline);
  padding:5px 2px 6px;min-width:140px}
.search input{border:0;background:transparent;font-family:var(--font-meta);font-size:.85rem;color:var(--ink);
  outline:none;width:100%}
.search input::placeholder{color:var(--faint)}

/* -------- listagem de posts -------- */
.list{padding:14px 34px 30px}
.list.style-cols{display:grid;grid-template-columns:1fr 1fr;gap:8px 26px}
.list.style-cols .entry.feature{grid-column:1 / -1}

.entry{padding:26px 0;border-bottom:1px solid var(--hairline)}
.entry:last-child{border-bottom:0}
.thumb{display:block;width:100%;aspect-ratio:72/33;border-radius:10px;object-fit:cover;border:1px solid var(--hairline);
  background:linear-gradient(120deg,var(--accent-soft),color-mix(in srgb,var(--ink) 5%,var(--surface)))}
.entry h2.t{font-family:var(--font-display),sans-serif;font-weight:var(--font-display-weight);
  font-size:1.85rem;line-height:1.05;margin:16px 0 4px;text-wrap:balance}
.entry h2.t a{color:var(--ink)}
.entry h2.t a:hover{color:var(--link)}
.meta{font-family:var(--font-meta);font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--faint);display:flex;gap:8px;align-items:center;margin-bottom:12px}
.meta .d{width:3px;height:3px;border-radius:50%;background:var(--faint)}
.excerpt{font-family:var(--font-body),serif;font-size:var(--font-body-size);line-height:1.6;
  color:color-mix(in srgb,var(--ink) 82%,var(--paper));max-width:62ch;margin:0 0 18px}
.excerpt p{margin:0 0 10px}.excerpt p:last-child{margin-bottom:0}
.excerpt hr{display:none}

/* estilo imagem à esquerda */
.list.style-left .entry:not(.feature){display:grid;grid-template-columns:200px 1fr;gap:20px;align-items:start}
.list.style-left .entry:not(.feature) .thumb{aspect-ratio:1/1}
.list.style-left .entry:not(.feature) h2.t{margin-top:0}

/* estilo duas colunas (cards compactos) */
.list.style-cols .entry:not(.feature){border-bottom:0;padding:14px 0}
.list.style-cols .entry:not(.feature) h2.t{font-size:1.4rem}
.list.style-cols .entry:not(.feature) .excerpt{font-size:.95rem;-webkit-line-clamp:3;display:-webkit-box;
  -webkit-box-orient:vertical;overflow:hidden}

.readmore{font-family:var(--font-meta);font-size:.82rem;font-weight:600;color:var(--btn-bg);
  border:1px solid var(--btn-bg);background:transparent;border-radius:var(--readmore-radius);padding:10px 18px;
  cursor:pointer;display:inline-block;transition:.18s}
.readmore:hover{background:var(--btn-bg);color:var(--btn-text)}
.readmore.filled{background:var(--btn-bg);color:var(--btn-text)}
.readmore.filled:hover{background:var(--btn-hover)}

.older,.pagination{text-align:center;padding:24px 0 6px}
.older a{font-family:var(--font-meta);font-weight:600;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--link)}
.pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:8px;
  border-top:1px solid var(--hairline);padding-top:18px;font-family:var(--font-meta)}
.pagination a,.pagination span{font-weight:600;font-size:.8rem;color:var(--link)}
.pagination .disabled{color:var(--faint)}
.pagination .pages{color:var(--muted);letter-spacing:.06em}

/* -------- artigo -------- */
.article{padding:26px 34px 12px}
.backlink{display:inline-block;font-family:var(--font-meta);font-weight:600;font-size:.8rem;
  letter-spacing:.04em;color:var(--muted);margin-bottom:6px;transition:color .15s}
.backlink:hover{color:var(--link)}
.article h1{font-family:var(--font-display),sans-serif;font-weight:var(--font-display-weight);
  font-size:2.6rem;line-height:1.02;margin:6px 0 8px;text-wrap:balance}
.mainthumb{width:100%;aspect-ratio:72/33;object-fit:cover;border-radius:10px;margin:18px 0 22px;border:1px solid var(--hairline)}
/* imagem do topo em tamanho natural, centralizada e sem corte */
.mainthumb.contain{width:auto;max-width:100%;aspect-ratio:auto;object-fit:contain;display:block;margin-left:auto;margin-right:auto}
.prose{font-family:var(--font-body),serif;font-size:1.05rem;line-height:var(--font-body-lh);
  color:color-mix(in srgb,var(--ink) 88%,var(--paper))}
.prose p{max-width:100%}
.prose a{color:var(--link);text-decoration:underline;text-underline-offset:2px}
.prose img{border-radius:8px;margin:8px 0}
.prose blockquote{border-left:3px solid var(--accent);margin:16px 0;padding:6px 0 6px 18px;color:var(--muted)}
/* <hr> é marcador de corte do bashblog — não renderiza na página do post */
.prose hr{display:none}
.taglist{margin:22px 0 4px;display:flex;gap:10px 8px;flex-wrap:wrap}
.taglist a{font-family:var(--font-meta);font-size:.72rem;font-weight:600;color:var(--link);background:var(--accent-soft);
  border-radius:999px;padding:7px 12px}

/* -------- página avulsa -------- */
.page-body{padding:26px 34px 30px}
.page-body h1{font-family:var(--font-display),sans-serif;font-weight:var(--font-display-weight);font-size:2.4rem;margin:4px 0 16px}

/* -------- arquivo / tags -------- */
.archive,.tagindex{padding:22px 34px 30px}
.archive h1,.tagindex h1{font-family:var(--font-display),sans-serif;font-weight:var(--font-display-weight);font-size:2.2rem;margin:6px 0 18px}
.archive .yr{font-family:var(--font-meta);font-weight:700;color:var(--faint);letter-spacing:.1em;margin:22px 0 8px}
.archive ul,.tagindex ul{list-style:none;margin:0;padding:0}
.archive li{padding:7px 0;border-bottom:1px solid var(--hairline);display:flex;gap:12px;align-items:baseline}
.archive li .dt{font-family:var(--font-meta);font-size:.72rem;color:var(--faint);min-width:92px}
.tagindex li{display:inline-block;margin:0 8px 14px 0}
.tagindex li a{background:var(--accent-soft);border-radius:999px;padding:8px 13px;font-weight:600;font-size:.85rem}

/* -------- comentários (exibição) -------- */
.comments{padding:20px 34px 34px;border-top:1px solid var(--hairline)}
.comments h3{font-family:var(--font-display),sans-serif;font-weight:var(--font-display-weight);font-size:1.6rem;margin:0 0 4px}
.comments .sub{color:var(--muted);font-size:.85rem;margin-bottom:18px}
.cmt{padding:16px 0;border-top:1px solid var(--hairline)}
.cmt .who{display:flex;align-items:center;gap:9px;margin-bottom:6px;flex-wrap:wrap}
.cmt .av{width:30px;height:30px;border-radius:50%;background:var(--accent-soft);border:1px solid var(--hairline);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-meta);font-weight:700;font-size:.75rem;color:var(--link);flex:none}
.cmt .name{font-family:var(--font-meta);font-weight:600;font-size:.9rem}
.cmt .abadge{font-family:var(--font-meta);font-size:.62rem;font-weight:600;color:var(--link);background:var(--accent-soft);padding:4px 7px;border-radius:999px}
.cmt .when{font-size:.75rem;color:var(--faint);margin-left:auto}
.cmt p{font-family:var(--font-body),serif;font-size:.95rem;line-height:1.6;margin:0 0 6px;color:color-mix(in srgb,var(--ink) 86%,var(--paper))}
.cmt .child{margin-left:20px;padding-left:16px;border-left:2px solid var(--hairline);margin-top:4px}

/* -------- rodapé -------- */
.foot{background:var(--footer-bg);color:var(--footer-text);text-align:center;font-family:var(--font-meta);
  font-size:.78rem;padding:22px 34px;border-top:1px solid var(--hairline);margin-top:22px;border-radius:0 0 14px 14px}
.foot a{color:var(--footer-text);text-decoration:underline}
.foot .contact{margin-top:6px}

/* -------- toggle de tema -------- */
.theme-toggle{position:fixed;bottom:18px;right:18px;z-index:60;width:42px;height:42px;border-radius:50%;
  border:1px solid var(--hairline);background:var(--surface);color:var(--ink);cursor:pointer;font-size:16px;
  box-shadow:0 6px 20px -8px rgba(0,0,0,.4)}

/* -------- caixa de comentário / login -------- */
.messages{margin:14px 0}
.msg{padding:10px 14px;border-radius:9px;font:14px var(--font-meta);margin-bottom:8px}
.msg.success{background:var(--accent-soft);color:var(--link)}
.msg.error{background:rgba(178,58,46,.12);color:#B23A2E}
.compose,.loginprompt{background:var(--surface-2);border:1px solid var(--hairline);border-radius:12px;padding:16px;margin-bottom:22px}
.compose textarea{width:100%;min-height:80px;border:1px solid var(--hairline);background:var(--surface);border-radius:9px;
  padding:11px 13px;font:15px/1.5 var(--font-body),serif;color:var(--ink);resize:vertical;outline:none}
.compose textarea:focus{border-color:var(--accent)}
.compose .cfoot{display:flex;align-items:center;gap:12px;margin-top:10px;flex-wrap:wrap}
.pub{background:var(--btn-bg);color:var(--btn-text);border:0;border-radius:9px;padding:11px 18px;
  font:600 14px var(--font-meta);cursor:pointer}
.pub:hover{background:var(--btn-hover)}
.loginprompt .soc-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.soc{font:600 13px var(--font-meta);background:var(--surface);border:1px solid var(--hairline);border-radius:9px;
  padding:10px 14px;color:var(--ink);text-decoration:none;transition:.15s}
.soc:hover{border-color:var(--accent);color:var(--link)}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.reply-btn{background:none;border:0;color:var(--muted);font:600 12.5px var(--font-meta);cursor:pointer;padding:0;margin-top:2px}
.reply-btn:hover{color:var(--link)}
.replybox{margin:10px 0;background:var(--surface-2);border:1px solid var(--hairline);border-radius:10px;padding:12px}
.replybox textarea{width:100%;min-height:56px;border:1px solid var(--hairline);background:var(--surface);border-radius:8px;
  padding:9px 11px;font:14px/1.5 var(--font-body),serif;color:var(--ink);resize:vertical;outline:none}
.replybox .send{margin-top:8px;background:var(--btn-bg);color:var(--btn-text);border:0;border-radius:8px;
  padding:9px 14px;font:600 12.5px var(--font-meta);cursor:pointer}

/* -------- páginas de conta (allauth) -------- */
.account-body{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--paper);padding:24px}
.account-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--hairline);border-radius:14px;
  padding:30px;box-shadow:var(--shadow)}
.account-brand{display:block;font-family:var(--font-display),sans-serif;font-size:2rem;margin-bottom:18px;color:var(--ink);text-decoration:none}
.account-brand .hi{color:var(--title-hi-color);font-weight:var(--title-hi-weight)}
.account-card h1{font-family:var(--font-display),sans-serif;font-weight:var(--font-display-weight);font-size:1.7rem;margin:0 0 14px}
.account-card form{display:flex;flex-direction:column;gap:12px}
.account-card input[type=text],.account-card input[type=email],.account-card input[type=password]{width:100%;
  border:1px solid var(--hairline);background:var(--surface-2);border-radius:9px;padding:11px 13px;
  font:15px var(--font-meta);color:var(--ink);outline:none}
.account-card button,.account-card [type=submit]{background:var(--btn-bg);color:var(--btn-text);border:0;border-radius:9px;
  padding:12px 16px;font:600 14px var(--font-meta);cursor:pointer}
.account-card a{color:var(--link)}

/* -------- popups dos botões do topo -------- */
.popup-bg{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;z-index:100}
.popup-bg.open{display:flex}
.popup-bg .box{background:#fff;border-radius:10px;padding:12px;max-width:451px;width:70%;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.popup-bg .box img{display:block;border-radius:6px}
.popup-bg .x{position:absolute;top:-16px;right:-16px;width:32px;height:32px;border-radius:50%;background:#fff;border:2px solid #999;
  cursor:pointer;font-weight:bold;line-height:28px;text-align:center}

@media (max-width:640px){
  .head{padding:calc(var(--banner-pad-top) + 4px) 18px 14px}
  .hbtns{right:18px}
  .nav,.list,.article,.comments,.page-body,.archive,.tagindex{padding-left:18px;padding-right:18px}
  .list.style-cols{grid-template-columns:1fr}
  .list.style-left .entry:not(.feature){grid-template-columns:120px 1fr;gap:14px}
  .entry h2.t{font-size:1.5rem}.article h1{font-size:2rem}

  /* menu sanduíche */
  .menu-toggle{display:inline-flex}
  .menu-links{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;
    background:var(--surface);border-bottom:1px solid var(--hairline);overflow:hidden;
    max-height:0;opacity:0;transform:translateY(-6px);
    transition:max-height .3s ease,opacity .25s ease,transform .25s ease;
    z-index:40;box-shadow:0 14px 26px -14px rgba(0,0,0,.35)}
  .nav.open .menu-links{max-height:75vh;opacity:1;transform:translateY(0)}
  .menu-links a.mi{padding:14px 20px;border-top:1px solid var(--hairline)}
  .menu-links a.mi.active::after{display:none}
  .nav.open .b1{transform:translateY(7.5px) rotate(45deg)}
  .nav.open .b2{opacity:0}
  .nav.open .b3{transform:translateY(-7.5px) rotate(-45deg)}
}
