:root{
    --bg:#33332d;
    --card:#403f38;
    --text:#ffffff;
    --muted:#c7c6bf;
    --accent:#e68c3a;
    --line:#514f45;
    --font-mono:'IBM Plex Mono',Consolas,monospace;

    --bs-body-bg:var(--bg);
    --bs-body-color:var(--text);
    --bs-border-color:var(--line);
    --bs-link-color:var(--accent);
    --bs-link-hover-color:var(--text);
}

body{
    font-family:'IBM Plex Sans',Inter,sans-serif;
    background:var(--bg);
}

a{
    text-decoration:none;
}

.navbar{
    border-bottom:3px solid var(--accent);
}

.navbar-brand{
    font-weight:700;
    letter-spacing:.5px;
    color:var(--text) !important;
}

.navbar-nav .nav-link{
    color:var(--muted) !important;
}

.navbar-nav .nav-link:hover{
    color:var(--text) !important;
}

.navbar-toggler{
    border-color:var(--muted) !important;
}

.navbar-toggler-icon{
    filter:invert(1);
}

.eyebrow{
    color:var(--accent);
    font-family:var(--font-mono);
    font-size:.8rem;
    letter-spacing:2px;
    text-transform:uppercase;
}

/* blog listing */
.post-card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:12px;
    padding:24px;
    transition:border-color .2s, transform .2s;
    color:var(--text);
    display:block;
}

.post-card:hover{
    border-color:var(--accent);
    transform:translateY(-3px);
}

.post-card .post-date{
    font-family:var(--font-mono);
    color:var(--muted);
    font-size:.78rem;
    letter-spacing:.5px;
    text-transform:uppercase;
}

.post-card .post-title{
    display:block;
    font-size:1.2rem;
    font-weight:700;
    color:var(--text);
    margin:8px 0 6px;
}

.post-card:hover .post-title{
    color:var(--accent);
}

.post-card .post-excerpt{
    color:var(--muted);
    font-size:.92rem;
    margin-bottom:0;
}

/* article page */
.article-header{
    border-bottom:1px solid var(--line);
    padding-bottom:24px;
    margin-bottom:32px;
}

.article-header h1{
    font-weight:800;
    font-size:2rem;
}

.article-meta{
    font-family:var(--font-mono);
    color:var(--muted);
    font-size:.88rem;
    margin-top:10px;
}

.article-body{
    font-size:1.04rem;
    line-height:1.8;
}

.article-body h3{
    font-weight:700;
    margin-top:2.2rem;
    margin-bottom:1rem;
    scroll-margin-top:90px;
}

.article-body p{
    margin-bottom:1.1rem;
    color:var(--text);
}

.article-body ul{
    color:var(--text);
    margin-bottom:1.1rem;
}

.article-body a{
    color:var(--accent);
}

.article-body img{
    max-width:100%;
    border-radius:10px;
    margin:1.2rem 0;
}

.toc-card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:12px;
    padding:20px;
    position:sticky;
    top:24px;
}

.toc-card .toc-title{
    color:var(--muted);
    font-family:var(--font-mono);
    font-size:.78rem;
    letter-spacing:1.5px;
    text-transform:uppercase;
    margin-bottom:12px;
}

.toc-card ul{
    list-style:none;
    padding:0;
    margin:0;
}

.toc-card li{
    margin-bottom:10px;
}

.toc-card a{
    color:var(--text);
    font-size:.88rem;
}

.toc-card a:hover{
    color:var(--accent);
}

.comments-card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:12px;
    padding:20px;
    margin-top:2rem;
}

.back-link{
    color:var(--muted);
    font-size:.88rem;
}

.back-link:hover{
    color:var(--accent);
}

footer.site-footer{
    border-top:1px solid var(--line);
    padding:32px 0;
    color:var(--muted);
    text-align:center;
    font-size:.85rem;
}

/* ── Comentários ─────────────────────────────────────────────────────────── */
.comments-section{
    border-top:1px solid var(--line);
    padding-top:2rem;
}

.comment-item{
    border-bottom:1px solid var(--line);
    padding:16px 0;
}

.comment-item:last-child{
    border-bottom:none;
}

.comment-meta{
    display:flex;
    align-items:baseline;
    gap:12px;
    margin-bottom:6px;
}

.comment-author{
    font-size:.92rem;
    color:var(--text);
}

.comment-date{
    font-family:var(--font-mono);
    font-size:.75rem;
    color:var(--muted);
}

.comment-body{
    color:var(--muted);
    font-size:.92rem;
    margin:0;
    line-height:1.6;
    white-space:pre-wrap;
    word-break:break-word;
}

.comment-form-card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:12px;
    padding:24px;
    margin-top:2rem;
}

.comment-input{
    background:var(--bg);
    border:1px solid var(--line);
    color:var(--text);
    border-radius:6px;
    font-size:.92rem;
}

.comment-input:focus{
    background:var(--bg);
    border-color:var(--accent);
    color:var(--text);
    box-shadow:none;
    outline:none;
}

.comment-input::placeholder{
    color:var(--muted);
    opacity:.7;
}

.btn-comment{
    display:inline-block;
    padding:10px 22px;
    background:var(--accent);
    color:var(--bg);
    font-family:var(--font-mono);
    font-weight:700;
    font-size:.88rem;
    border:none;
    border-radius:6px;
    cursor:pointer;
    text-decoration:none;
    transition:background .15s;
}

.btn-comment:hover{
    background:#f2a35c;
    color:var(--bg);
}

/* ── Admin ───────────────────────────────────────────────────────────────── */
.admin-label{
    font-size:.85rem;
    color:var(--muted);
    margin-bottom:4px;
}

.admin-sidebar-card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:12px;
    padding:20px;
}

.admin-sidebar-title{
    font-family:var(--font-mono);
    font-size:.78rem;
    letter-spacing:1.5px;
    text-transform:uppercase;
    color:var(--muted);
    margin-bottom:16px;
}

.admin-comment-item{
    border-top:1px solid var(--line);
    padding:10px 0;
}

.admin-comment-item:first-of-type{
    border-top:none;
}

.admin-table{
    color:var(--text);
    border-color:var(--line);
}

.admin-table thead th{
    font-family:var(--font-mono);
    font-size:.78rem;
    letter-spacing:1px;
    text-transform:uppercase;
    color:var(--muted);
    border-color:var(--line);
    background:var(--card);
}

.admin-table td{
    border-color:var(--line);
    vertical-align:middle;
    font-size:.9rem;
}

.badge-published{
    display:inline-block;
    padding:2px 10px;
    background:rgba(40,167,69,.15);
    color:#4dbb6d;
    border:1px solid rgba(40,167,69,.4);
    border-radius:20px;
    font-family:var(--font-mono);
    font-size:.72rem;
}

.badge-draft{
    display:inline-block;
    padding:2px 10px;
    background:rgba(255,193,7,.1);
    color:#ffc107;
    border:1px solid rgba(255,193,7,.3);
    border-radius:20px;
    font-family:var(--font-mono);
    font-size:.72rem;
}

.btn-table-action{
    background:none;
    border:1px solid var(--line);
    color:var(--muted);
    font-size:.82rem;
    padding:3px 10px;
    border-radius:4px;
    cursor:pointer;
    text-decoration:none;
    transition:border-color .15s,color .15s;
}

.btn-table-action:hover{
    border-color:var(--accent);
    color:var(--accent);
}

.btn-table-danger{
    background:none;
    border:1px solid rgba(220,53,69,.4);
    color:rgba(220,53,69,.8);
    font-size:.82rem;
    padding:3px 10px;
    border-radius:4px;
    cursor:pointer;
    transition:background .15s,color .15s;
}

.btn-table-danger:hover{
    background:rgba(220,53,69,.15);
    color:#dc3545;
}

.btn-outline-muted{
    display:inline-block;
    padding:8px 16px;
    background:none;
    border:1px solid var(--line);
    color:var(--muted);
    font-size:.88rem;
    border-radius:6px;
    text-decoration:none;
    cursor:pointer;
    transition:border-color .15s,color .15s;
}

.btn-outline-muted:hover{
    border-color:var(--text);
    color:var(--text);
}

/* markdown2 code blocks */
.article-body pre{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:8px;
    padding:16px;
    overflow-x:auto;
    margin:1.2rem 0;
}

.article-body code{
    font-family:var(--font-mono);
    font-size:.88rem;
    background:var(--card);
    padding:2px 6px;
    border-radius:4px;
    color:var(--accent);
}

.article-body pre code{
    background:none;
    padding:0;
    color:var(--text);
}

/* ── Analytics ───────────────────────────────────────────────────────────── */
.an-periods{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
}

.an-periods a{
    padding:5px 12px;
    border:1px solid var(--line);
    border-radius:20px;
    color:var(--muted);
    font-family:var(--font-mono);
    font-size:.78rem;
}

.an-periods a:hover,
.an-periods a.active{
    border-color:var(--accent);
    color:var(--accent);
}

.an-card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:12px;
    padding:18px 20px;
    height:100%;
}

.an-kpi-label{
    font-family:var(--font-mono);
    font-size:.72rem;
    letter-spacing:1px;
    text-transform:uppercase;
    color:var(--muted);
}

.an-kpi-value{
    font-size:1.7rem;
    font-weight:700;
    color:var(--text);
    line-height:1.2;
    margin-top:6px;
    font-variant-numeric:tabular-nums;
}

.an-delta{
    font-family:var(--font-mono);
    font-size:.75rem;
}

.an-delta.up{ color:#4dbb6d; }
.an-delta.down{ color:#e5606d; }

.an-live{
    display:inline-block;
    width:8px;
    height:8px;
    border-radius:50%;
    background:#4dbb6d;
    margin-right:6px;
    box-shadow:0 0 0 0 rgba(77,187,109,.6);
    animation:an-pulse 2s infinite;
}

@keyframes an-pulse{
    70%{ box-shadow:0 0 0 8px rgba(77,187,109,0); }
    100%{ box-shadow:0 0 0 0 rgba(77,187,109,0); }
}

.an-chart{
    position:relative;
    height:260px;
}

.an-chart-sm{
    position:relative;
    height:200px;
}

#an-map{
    height:380px;
    border-radius:8px;
    background:var(--bg);
}

.an-bars{
    list-style:none;
    padding:0;
    margin:0;
}

.an-bar{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:6px 10px;
    margin-bottom:4px;
    font-size:.86rem;
    border-radius:4px;
    overflow:hidden;
}

.an-bar-fill{
    position:absolute;
    inset:0 auto 0 0;
    background:rgba(230,140,58,.16);
    border-radius:4px;
}

.an-bar-label,
.an-bar-value{
    position:relative;
}

.an-bar-label{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:var(--text);
}

.an-bar-sub{
    color:var(--muted);
    font-size:.78rem;
    margin-left:6px;
}

.an-bar-value{
    flex-shrink:0;
    font-family:var(--font-mono);
    font-size:.8rem;
    color:var(--muted);
}

.an-bar-value b{
    color:var(--text);
    font-weight:600;
}

.an-empty{
    color:var(--muted);
    font-size:.86rem;
    margin:0;
}

.an-kind{
    display:inline-block;
    padding:1px 8px;
    border:1px solid var(--line);
    border-radius:20px;
    font-family:var(--font-mono);
    font-size:.7rem;
    color:var(--muted);
    white-space:nowrap;
}

.an-kind-externo{ color:#6cb6e0; border-color:rgba(108,182,224,.4); }
.an-kind-interno{ color:var(--accent); border-color:rgba(230,140,58,.4); }
.an-kind-download{ color:#4dbb6d; border-color:rgba(77,187,109,.4); }

.an-table td,
.an-table th{
    font-size:.82rem;
    white-space:nowrap;
}

.an-table .an-wrap{
    white-space:normal;
    word-break:break-all;
}

.an-footnote{
    color:var(--muted);
    font-size:.78rem;
}

.an-footnote a{
    color:var(--muted);
    text-decoration:underline;
}

.leaflet-container{
    font-family:'IBM Plex Sans',sans-serif;
}

.an-flag{
    display:inline-block;
    width:20px;
    height:15px;
    margin-right:4px;
    border-radius:2px;
    vertical-align:-2px;
    object-fit:cover;
}

.an-flag-none{
    font-size:.85rem;
    line-height:15px;
    text-align:center;
}

.an-dark-tiles{
    filter:invert(1) hue-rotate(180deg) brightness(.85) contrast(.9) saturate(.6);
}

.an-unread{
    display:inline-block;
    min-width:18px;
    padding:0 6px;
    margin-left:4px;
    border-radius:9px;
    background:var(--accent);
    color:var(--bg);
    font-family:var(--font-mono);
    font-size:.72rem;
    font-weight:700;
    text-align:center;
}

.an-msg-unread{
    border-color:var(--accent);
}

.an-funnel-step{
    margin-bottom:14px;
}

.an-funnel-head{
    display:flex;
    justify-content:space-between;
    font-size:.86rem;
    margin-bottom:4px;
}

.an-funnel-head b{
    font-family:var(--font-mono);
}

.an-funnel-track{
    height:10px;
    background:var(--bg);
    border-radius:5px;
    overflow:hidden;
}

.an-funnel-fill{
    height:100%;
    background:var(--accent);
    border-radius:5px;
}

.an-net{
    display:inline-block;
    padding:1px 8px;
    border-radius:20px;
    font-family:var(--font-mono);
    font-size:.7rem;
    border:1px solid var(--line);
    color:var(--muted);
}

.an-net-org{ color:#4dbb6d; border-color:rgba(77,187,109,.4); }
.an-net-datacenter{ color:#e5606d; border-color:rgba(229,96,109,.4); }

/* ── Convite para contato ────────────────────────────────────────────────── */
.navbar-nav .nav-link.nav-contact{
    color:var(--accent) !important;
    font-weight:600;
}

.post-cta{
    margin-top:2.5rem;
    padding:24px;
    background:var(--card);
    border:1px solid var(--line);
    border-left:4px solid var(--accent);
    border-radius:8px;
}

.post-cta strong{
    display:block;
    font-size:1.05rem;
    margin-bottom:6px;
}

.post-cta p{
    color:var(--muted);
    font-size:.92rem;
    margin-bottom:14px;
}

/* ── Vagas ───────────────────────────────────────────────────────────────── */
.btn-outline-muted.active{
    border-color:var(--accent);
    color:var(--accent);
}

.job-search-active{
    border-color:var(--accent);
}

.job-meta{
    color:var(--muted);
    font-size:.8rem;
    line-height:1.5;
}

.job-meta b{
    color:var(--text);
    font-weight:600;
}

.job-filters{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    align-items:center;
}

.job-filters input[type=search]{
    flex:1 1 220px;
}

.job-filters select{
    flex:0 1 auto;
    width:auto;
}

.job-check{
    color:var(--muted);
    font-size:.85rem;
    display:flex;
    align-items:center;
    gap:6px;
}

.job-card{
    padding:14px 18px;
}

.job-card.job-descartado{
    opacity:.55;
}

.job-card.job-salvo{
    border-left:3px solid var(--accent);
}

.job-card.job-aplicado{
    border-left:3px solid #4dbb6d;
}

.job-card.job-revisar{
    border-left:3px solid #d29922;
}

.btn-job-review{
    font-size:.78rem;
    padding:3px 8px;
    border-radius:4px;
    border:1px solid rgba(210,153,34,.5);
    background:rgba(210,153,34,.08);
    color:#d29922;
    cursor:pointer;
    white-space:nowrap;
}
.btn-job-review:hover{
    background:rgba(210,153,34,.2);
}

.job-title{
    color:var(--text);
    font-weight:600;
    font-size:.98rem;
}

.job-title:hover{
    color:var(--accent);
}

.job-tags{
    color:var(--muted);
    font-family:var(--font-mono);
    font-size:.72rem;
    margin-top:2px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.job-remote{
    color:#7fd39a;
    font-weight:600;
}

.job-salary{
    color:#f2a35c;
}

.job-actions{
    display:flex;
    flex-direction:column;
    gap:4px;
    align-items:stretch;
    flex-shrink:0;
}

.job-actions button{
    width:100%;
}

/* Nas páginas de vagas os cartões ficam empilhados: altura pelo conteúdo
   (o height:100% de .an-card é para cartões lado a lado no analytics) */
.job-page .an-card{
    height:auto;
}

.robot-status{
    padding:10px 14px;
    border-radius:8px;
    font-size:.84rem;
    color:var(--muted);
    border:1px solid var(--line);
}

.robot-status b{
    color:var(--text);
}

.robot-ok{
    border-color:rgba(77,187,109,.4);
    background:rgba(77,187,109,.08);
}

.robot-bad{
    border-color:rgba(229,96,109,.45);
    background:rgba(229,96,109,.08);
}

.post-lang{
    display:inline-block;
    padding:0 6px;
    margin-right:4px;
    border:1px solid var(--accent);
    border-radius:4px;
    color:var(--accent);
    font-family:var(--font-mono);
    font-size:.7rem;
    vertical-align:2px;
}

/* ── Insights IA ───────────────────────────────── */
.insight-body{
    font-size:.9rem;
    line-height:1.75;
    color:var(--text);
}
.insight-body h1,.insight-body h2,.insight-body h3{
    font-size:1rem;
    font-weight:700;
    margin:1.2em 0 .4em;
    color:var(--accent);
}
.insight-body ul,.insight-body ol{
    padding-left:1.4em;
    margin:.4em 0;
}
.insight-body li{ margin:.2em 0; }
.insight-body strong{ color:var(--text); }
.insight-body code{
    background:var(--code-bg,#161b22);
    border-radius:3px;
    padding:1px 5px;
    font-size:.85em;
}
.insight-body blockquote{
    border-left:3px solid var(--accent);
    margin:0 0 .8em;
    padding:.4em 1em;
    color:var(--muted);
}
