/* Importação de fontes */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

/* Variáveis globais do tema */
:root {
    --bg-dark: #0f0f0f;
    --text-primary: #ffffff;
    --text-secondary: #a0a0a0;
    --card-bg: #161616;
    --border-color: #2a2a2a;
    --code-bg: #111111;
}

/* Reset básico */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* Estilos modernos para links */
/* Links globais neutros */
a {
    color: #e5e5e5;
    text-decoration: none;
    transition: all 0.3s ease;
    position: relative;
}

a:hover {
    color: #ffffff;
    text-decoration: underline;
    text-decoration-color: #ffffff;
    text-underline-offset: 3px;
}

/* Links em listas ficam mais destacados */
li a {
    color: #e5e5e5;
    font-weight: 500;
    border-radius: 4px;
    padding: 2px 6px;
    transition: all 0.3s ease;
}

li a:hover {
    background-color: rgba(255, 255, 255, 0.06);
    color: #ffffff;
    text-decoration: none;
    transform: translateY(-1px);
}

/* Links em parágrafos ficam mais sutis */
p a {
    color: #e5e5e5;
    border-bottom: 1px solid rgba(255,255,255,0.25);
    transition: all 0.3s ease;
}

p a:hover {
    color: #ffffff;
    border-bottom-color: #ffffff;
    text-decoration: none;
}

/* Estilos gerais do corpo */
body {
    font-family: 'Inter', sans-serif;
    background: var(--bg-dark);
    color: var(--text-primary);
    line-height: 1.6;
    min-height: 100vh;
}

/* ===== HOME HERO NOVO ===== */
.home-hero {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 3rem;
    align-items: stretch;
    margin-bottom: 4rem;
}

.home-hero.loading {
    display: flex;
    justify-content: center;
    padding: 4rem 0;
}

.hero-content h1 {
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.1;
    margin-bottom: 1.2rem;
}

.hero-highlight {
    color:#fff;
}

.hero-sub {
    font-size: 1.05rem;
    color: var(--text-secondary);
    max-width: 560px;
    margin-bottom: 2rem;
}

.hero-actions { display: flex; gap: 1rem; margin-bottom: 2.2rem; flex-wrap: wrap; }

.hero-btn {
    padding: 0.85rem 1.4rem;
    font-size: 0.95rem;
    font-weight: 600;
    border-radius: 10px;
    border: 1px solid var(--border-color);
    background: var(--card-bg);
    color: var(--text-primary);
    cursor: pointer;
    transition: all .25s ease;
}
.hero-btn.primary {
    background:#0f0f0f;
    color:#fff;
    border:1px solid #2a2a2a;
    box-shadow:none;
}
.hero-btn.primary:hover { transform: translateY(-2px); background:#161616; filter:none; }
.hero-btn.ghost { background: transparent; }
.hero-btn.ghost:hover { background: var(--card-bg); }

.hero-stats { display: grid; grid-template-columns: repeat(auto-fit,minmax(110px,1fr)); gap: 1rem; }
.stat { background: var(--card-bg); padding: 1rem 1rem 0.9rem; border:1px solid var(--border-color); border-radius: 12px; position: relative; overflow: hidden; }
.stat:before { content:""; position:absolute; inset:0; background: radial-gradient(circle at top left,rgba(255,255,255,0.08),transparent 70%); opacity:0; transition:.4s; }
.stat:hover:before { opacity:1; }
.stat-value { display:block; font-size:1.55rem; font-weight:700; line-height:1; margin-bottom:0.4rem; color:#fff; }
.stat-label { font-size:0.72rem; letter-spacing: .5px; text-transform:uppercase; color: var(--text-secondary); font-weight:600; }

.hero-aside { background: linear-gradient(145deg,#242424,#1c1c1c); border:1px solid var(--border-color); border-radius: 16px; padding: 1.6rem 1.5rem 1.8rem; position:relative; overflow:hidden; }
.hero-aside:after { content:""; position:absolute; width:160%; height:160%; top:-40%; left:-35%; background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.08), transparent 65%); pointer-events:none; }
.hero-aside-inner { position:relative; }
.hero-aside h3 { font-size:1rem; font-weight:600; margin-bottom:0.9rem; letter-spacing:1px; text-transform:uppercase; color:#fff; }
.hero-aside p { font-size:0.9rem; color: var(--text-secondary); margin-bottom:1rem; }
.hero-principles { list-style:none; display:flex; flex-direction:column; gap:0.5rem; font-size:0.85rem; color:#ddd; }
.hero-principles li { padding:0.55rem 0.7rem; background:#202020; border:1px solid #2d2d2d; border-radius:8px; line-height:1.3; font-weight:500; }
.hero-principles li:hover { border-color: #3a3a3a; }

/* ===== ÚLTIMAS PUBLICAÇÕES ===== */
.home-latest { margin-bottom: 3rem; }
.latest-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.5rem; }
.latest-header h2 { font-size:1.4rem; font-weight:600; }
.see-all-btn { background:transparent; border:1px solid var(--border-color); color: var(--text-secondary); padding:0.55rem 1rem; border-radius:8px; cursor:pointer; font-size:0.8rem; font-weight:600; letter-spacing:.5px; text-transform:uppercase; transition:.25s; }
.see-all-btn:hover { color: var(--text-primary); border-color: #3a3a3a; }
.latest-grid { display:grid; grid-template-columns: repeat(auto-fill,minmax(220px,1fr)); gap:1.2rem; }
.latest-card { background: var(--card-bg); border:1px solid var(--border-color); border-radius:14px; padding:1rem 1rem 1.1rem; display:flex; flex-direction:column; gap:.65rem; cursor:pointer; position:relative; transition:.3s; }
.latest-card:before { content:""; position:absolute; inset:0; background:linear-gradient(135deg,rgba(255,255,255,0.08),transparent 60%); opacity:0; transition:.4s; }
.latest-card:hover { transform:translateY(-4px); border-color: #3a3a3a; }
.latest-card:hover:before { opacity:1; }
.latest-meta { display:flex; justify-content:space-between; font-size:.65rem; font-weight:600; text-transform:uppercase; letter-spacing:.5px; }
.latest-badge { padding: .25rem .5rem; border-radius:6px; font-size:.55rem; font-weight:700; background:#333; color:#eee; letter-spacing:.5px; }
.badge-article { background:#0f0f0f; color:#e5e5e5; border:1px solid #2c2c2c; }
.badge-note { background:#272727; color:#d5d5d5; }
.latest-title { font-size:0.95rem; line-height:1.25; font-weight:600; flex-grow:1; }
.latest-bottom { display:flex; justify-content:space-between; align-items:center; font-size:0.7rem; color: var(--text-secondary); }
.latest-lang { display:flex; gap:.3rem; align-items:center; font-weight:500; }
.latest-open { color: #e5e5e5; font-weight:600; font-size:0.65rem; letter-spacing:.5px; }
.latest-card:hover .latest-open { text-decoration:underline; }

@media (max-width: 980px) {
  .home-hero { grid-template-columns: 1fr; }
  .hero-content h1 { font-size: 2.4rem; }
  .hero-aside { order:2; }
}
@media (max-width: 620px) {
  .hero-stats { grid-template-columns: repeat(2,1fr); }
  .latest-grid { grid-template-columns: repeat(auto-fill,minmax(160px,1fr)); }
  .hero-content h1 { font-size: 2.1rem; }
}

/* ===== HEADER MODERNO ===== */
.site-header { position:sticky; top:0; z-index:50; backdrop-filter:blur(14px); background:rgba(18,18,18,0.78); border-bottom:1px solid rgba(255,255,255,0.06); }
.header-inner { max-width:1300px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; padding:1rem 2rem; }
.brand { display:flex; align-items:center; gap:.45rem; font-weight:600; cursor:pointer; user-select:none; }
.brand-icon { display:none; }
.brand-name { font-size:1.28rem; letter-spacing:.5px; }
.brand-accent { color:#fff; font-weight:700; }
.main-nav { display:flex; align-items:center; gap:.35rem; }
.main-nav a { position:relative; padding:.65rem 1.05rem; font-size:.82rem; font-weight:500; color:var(--text-secondary); border-radius:8px; letter-spacing:.5px; transition:.25s; }
.main-nav a:hover { color:var(--text-primary); background:rgba(255,255,255,.05); }
.main-nav a.active { background:#111; color:#fff; box-shadow:0 0 0 1px #2a2a2a inset; }

@media (max-width:720px){
    .header-inner { padding:.85rem 1rem; }
    .brand-name { font-size:1.05rem; }
        .brand-icon { display:none; }
    .main-nav a { padding:.55rem .85rem; font-size:.75rem; }
}

/* Conteúdo principal */
main {
    max-width: 800px;
    margin: 0 auto;
    padding: 3rem 1rem;
}

/* Publicações na página inicial */
.publications-header {
    text-align: center;
    margin-bottom: 3rem;
}

.publications-header h2 {
    font-size: 2rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.publications-header p {
    color: var(--text-secondary);
    font-size: 1.1rem;
}

.publications-list {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.publication-item {
    background: var(--card-bg);
    border-radius: 12px;
    padding: 2rem;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 1px solid var(--border-color);
}

.publication-item:hover {
    transform: translateY(-2px);
    border-color: #5a5a5a;
    box-shadow: 0 8px 25px rgba(255, 255, 255, 0.06);
}

.publication-date {
    color: var(--text-secondary);
    font-size: 0.9rem;
    margin-bottom: 1rem;
}

.publication-title {
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: 1rem;
    line-height: 1.4;
}

.publication-meta {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.publication-language {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: #0f0f0f;
    color: #e5e5e5;
    padding: 0.25rem 0.75rem;
    border-radius: 6px;
    font-size: 0.8rem;
    font-weight: 600;
}

.language-icon {
    font-size: 1rem;
}

.reading-time { display:inline-flex; align-items:center; gap:.5rem; background:#0f0f0f; color:#fff; padding:.5rem 1rem; border-radius:50px; font-size:.9rem; font-weight:600; border:1px solid #2a2a2a; box-shadow: 0 2px 8px rgba(255,255,255,0.06); }
.reading-time:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(255,255,255,0.1); }
.back-button {
    background: var(--card-bg);
    color: var(--text-primary);
    border: 1px solid var(--border-color);
    padding: 0.75rem 1.5rem;
    border-radius: 8px;
    cursor: pointer;
    font-size: 0.9rem;
    margin-bottom: 2rem;
    transition: all 0.3s ease;
}

.back-button:hover {
    background: var(--border-color);
}

/* Estilos das anotações */
.note {
    max-width: 100%;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Títulos das anotações */
.note h3 {
    font-size: 1.8rem;
    margin-bottom: 1rem;
    color: var(--text-primary);
}

.note h4 {
    font-size: 1.3rem;
    margin-top: 1.5rem;
    margin-bottom: 0.75rem;
    color: var(--text-primary);
}

.note h5 {
    font-size: 1.1rem;
    margin-top: 1.25rem;
    margin-bottom: 0.5rem;
    color: #e5e5e5;
}

/* Parágrafos */
.note p {
    margin-bottom: 0.875rem;
    color: var(--text-secondary);
    line-height: 1.5;
}

/* Links específicos dentro das notas */
.note a { color: #e5e5e5 !important; text-decoration: none; font-weight: 500; position: relative; transition: all 0.3s ease; border-bottom: 1px solid rgba(255,255,255,0.25); }
.note a:hover { color: #ffffff !important; border-bottom-color: #ffffff; text-decoration: none; }

/* Links em listas dentro das notas */
.note li a { color: #e5e5e5 !important; background: rgba(255,255,255,0.06); padding: 2px 8px; border-radius: 4px; border: 1px solid rgba(255,255,255,0.15); font-weight: 500; transition: all 0.3s ease; }
.note li a:hover { color: #ffffff !important; background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.25); transform: translateY(-1px); box-shadow: none; }

/* Links externos com indicador */
.note a[href^="http"]:after {
    content: " ↗";
    font-size: 0.8em;
    opacity: 0.7;
}

.note a[href^="http"]:hover:after {
    opacity: 1;
}

/* Blocos de código */
.note pre {
    background: var(--code-bg) !important;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 1.25rem;
    margin: 1.25rem 0;
    overflow-x: auto;
    position: relative;
}

/* Força consistência visual em todos os blocos de código - APENAS para blocos sem syntax highlighting */
.note pre:not(.hljs),
.note pre:not(.hljs) *,
.note code:not([class*="language-"]),
.note code:not([class*="language-"]) * {
    background: var(--code-bg) !important;
    color: var(--text-primary) !important;
}

/* Exceções para elementos específicos */
.note pre code .hljs-comment,
.note pre code .comment {
    color: var(--text-secondary) !important;
}

.note p code {
    background: var(--code-bg) !important;
    color: #e5e5e5 !important;
}

/* Remove qualquer estilo de syntax highlighting externo para blocos genéricos */
.note pre code {
    background: var(--code-bg) !important;
    color: var(--text-primary) !important;
}

/* Foco acessível global em neutro */
:focus-visible { outline: 2px solid rgba(255,255,255,0.6); outline-offset: 2px; border-radius: 6px; }

/* Estilos específicos para linguagens de programação */
.note pre code.language-javascript,
.note pre code.language-js {
    color: var(--text-primary) !important;
}

.note pre code.language-python {
    color: var(--text-primary) !important;
}

.note pre code.language-go {
    color: var(--text-primary) !important;
}

.note pre code.language-java {
    color: var(--text-primary) !important;
}

.note pre code.language-dockerfile {
    color: var(--text-primary) !important;
}

.note pre code.language-sql {
    color: var(--text-primary) !important;
}

/* Tokens de syntax highlighting para linguagens específicas */
.note pre code.language-javascript .hljs-keyword,
.note pre code.language-js .hljs-keyword,
.note pre code.language-python .hljs-keyword,
.note pre code.language-go .hljs-keyword,
.note pre code.language-java .hljs-keyword,
.note pre code.language-dockerfile .hljs-keyword,
.note pre code.language-sql .hljs-keyword {
    color: #c792ea !important; /* Roxo para palavras-chave */
}

.note pre code.language-javascript .hljs-string,
.note pre code.language-js .hljs-string,
.note pre code.language-python .hljs-string,
.note pre code.language-go .hljs-string,
.note pre code.language-java .hljs-string,
.note pre code.language-dockerfile .hljs-string,
.note pre code.language-sql .hljs-string {
    color: #c3e88d !important; /* Verde claro para strings */
}

.note pre code.language-javascript .hljs-number,
.note pre code.language-js .hljs-number,
.note pre code.language-python .hljs-number,
.note pre code.language-go .hljs-number,
.note pre code.language-java .hljs-number,
.note pre code.language-dockerfile .hljs-number,
.note pre code.language-sql .hljs-number {
    color: #f78c6c !important; /* Laranja para números */
}

.note pre code.language-javascript .hljs-function,
.note pre code.language-js .hljs-function,
.note pre code.language-python .hljs-function,
.note pre code.language-go .hljs-function,
.note pre code.language-java .hljs-function {
    color: #82aaff !important; /* Azul para funções */
}

.note pre code.language-javascript .hljs-comment,
.note pre code.language-js .hljs-comment,
.note pre code.language-python .hljs-comment,
.note pre code.language-go .hljs-comment,
.note pre code.language-java .hljs-comment,
.note pre code.language-dockerfile .hljs-comment,
.note pre code.language-sql .hljs-comment {
    color: #546e7a !important; /* Cinza para comentários */
}

.note pre code.language-javascript .hljs-variable,
.note pre code.language-js .hljs-variable,
.note pre code.language-python .hljs-variable,
.note pre code.language-go .hljs-variable,
.note pre code.language-java .hljs-variable {
    color: #ffcb6b !important; /* Amarelo para variáveis */
}

.note pre code.language-sql .hljs-built_in {
    color: #ff9800 !important; /* Laranja para funções SQL built-in */
}

/* Comandos específicos do Docker/Dockerfile */
.note pre code.language-dockerfile .hljs-keyword {
    color: #00bcd4 !important; /* Azul ciano para comandos Docker (FROM, RUN, COPY, etc.) */
}

.note pre code.language-dockerfile .hljs-built_in {
    color: #00bcd4 !important; /* Azul ciano para comandos Docker built-in */
}

.note pre code.language-dockerfile .hljs-title {
    color: #ffeb3b !important; /* Amarelo para nomes de imagens */
}

.note pre code.language-dockerfile .hljs-variable {
    color: #4caf50 !important; /* Verde para variáveis de ambiente */
}

.note pre code.language-dockerfile .hljs-meta {
    color: #9c27b0 !important; /* Roxo para metadados */
}

/* Highlighting adicional para Docker mesmo sem hljs perfeito */
.note pre code.language-dockerfile {
    color: #ffffff !important;
}

/* Padrões específicos que podem não ser detectados pelo hljs */
.note pre code.language-dockerfile span:contains("FROM"),
.note pre code.language-dockerfile span:contains("RUN"),
.note pre code.language-dockerfile span:contains("COPY"),
.note pre code.language-dockerfile span:contains("WORKDIR"),
.note pre code.language-dockerfile span:contains("EXPOSE"),
.note pre code.language-dockerfile span:contains("ENV"),
.note pre code.language-dockerfile span:contains("CMD"),
.note pre code.language-dockerfile span:contains("ENTRYPOINT") {
    color: #00bcd4 !important;
    font-weight: bold;
}

/* Classes para highlighting manual do Docker */
.note pre code .docker-command {
    color: #00bcd4 !important; /* Azul ciano para comandos */
    font-weight: bold;
}

.note pre code .docker-comment {
    color: #546e7a !important; /* Cinza para comentários */
    font-style: italic;
}

.note pre code .docker-string {
    color: #c3e88d !important; /* Verde claro para strings */
}

.note pre code .docker-variable {
    color: #4caf50 !important; /* Verde para variáveis */
    font-weight: bold;
}

.note pre code .docker-number {
    color: #f78c6c !important; /* Laranja para números */
}

.note pre code .docker-flag {
    color: #ff9800 !important; /* Laranja escuro para flags */
}

/* Tokens adicionais para melhor destacamento */
.note pre code.language-javascript .hljs-title,
.note pre code.language-js .hljs-title,
.note pre code.language-python .hljs-title,
.note pre code.language-go .hljs-title,
.note pre code.language-java .hljs-title {
    color: #82aaff !important; /* Azul para títulos de função */
}

.note pre code.language-javascript .hljs-literal,
.note pre code.language-js .hljs-literal,
.note pre code.language-python .hljs-literal,
.note pre code.language-go .hljs-literal,
.note pre code.language-java .hljs-literal {
    color: #ff5370 !important; /* Vermelho para literais */
}

.note pre code.language-python .hljs-built_in,
.note pre code.language-java .hljs-built_in {
    color: #ffcb6b !important; /* Amarelo para built-ins */
}

.note pre code.language-go .hljs-type {
    color: #c792ea !important; /* Roxo para tipos em Go */
}

/* Regras específicas para Java */
.note pre code.language-java .hljs-class {
    color: #82aaff !important; /* Azul para classes */
}

.note pre code.language-java .hljs-type {
    color: #c792ea !important; /* Roxo para tipos */
}

.note pre code.language-java .hljs-annotation {
    color: #ffcb6b !important; /* Amarelo para anotações como @Override */
}

.note pre code.language-java .hljs-params {
    color: #f07178 !important; /* Rosa para parâmetros */
}

.note pre code.language-java .hljs-meta {
    color: #ffcb6b !important; /* Amarelo para metadados */
}

.note pre code.language-java .hljs-operator {
    color: #89ddff !important; /* Azul claro para operadores */
}

.copy-btn {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: #0f0f0f;
    color: #e5e5e5;
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.8rem;
    font-weight: 600;
    transition: all 0.3s ease;
}

.copy-btn:hover {
    background: #161616;
}

/* Listas */
.note ul, .note ol {
    margin: 0.75rem 0;
    padding-left: 2rem;
}

.note li {
    margin-bottom: 0.375rem;
    color: var(--text-secondary);
}

/* Citações */
.note blockquote {
    border-left: 4px solid #2a2a2a;
    padding: 1rem 1.5rem;
    margin: 1rem 0;
    background: var(--card-bg);
    border-radius: 0 8px 8px 0;
}

/* Texto em negrito */
.note strong {
    color: var(--text-primary);
}

/* Espaçamento entre elementos */
.note h4 + p {
    margin-top: 0.5rem;
}

.note p + table {
    margin-top: 0.75rem;
}

.note table + h4 {
    margin-top: 1.25rem;
}

.note table + p {
    margin-top: 0.875rem;
}

.note pre + p {
    margin-top: 0.875rem;
}

.note p + pre {
    margin-top: 0.75rem;
}

.note h4 + h5 {
    margin-top: 0.75rem;
}

.note h5 + p {
    margin-top: 0.25rem;
}

.note table + table {
    margin-top: 0.75rem;
}

/* Estilos de tabelas */
.note table,
.tables {
    width: 100%;
    border-collapse: collapse;
    margin: 1rem 0;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}

.note table th,
.note table td,
.tables th,
.tables td {
    padding: 0.75rem 1rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    text-align: left;
}

.note table th,
.tables th {
    background: linear-gradient(135deg, #374151, #1f2937);
    color: white;
    font-weight: 700;
    font-size: 0.85rem;
    text-transform: uppercase;
}

.note table tbody tr,
.tables tbody tr {
    transition: background 0.3s ease;
}

.note table tbody tr:hover,
.tables tbody tr:hover {
    background: rgba(255, 255, 255, 0.06);
}

.note table code,
.tables code {
    background: rgba(30, 30, 30, 0.8);
    padding: 0.15rem 0.3rem;
    border-radius: 3px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.8rem;
    color: #e5e5e5;
    border: 1px solid rgba(255, 255, 255, 0.12);
}

/* Cantos arredondados das tabelas */
.note table th:first-child {
    border-top-left-radius: 12px;
}

.note table th:last-child {
    border-top-right-radius: 12px;
}

.note table tbody tr:last-child td:first-child {
    border-bottom-left-radius: 12px;
}

.note table tbody tr:last-child td:last-child {
    border-bottom-right-radius: 12px;
}

/* Cards de linguagens */
.languages-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    margin-top: 2rem;
}

.language-card {
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    padding: 2rem;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.language-card:hover {
    transform: translateY(-4px);
    border-color: #3a3a3a;
    box-shadow: 0 12px 30px rgba(255, 255, 255, 0.08);
}

.language-card .language-icon {
    font-size: 4rem;
    margin-bottom: 1rem;
    display: block;
}

.language-card .language-name {
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
    color: var(--text-primary);
}

.language-card .language-notes-count {
    color: var(--text-secondary);
    font-size: 0.9rem;
}

.article-reading-time {
    color: #e5e5e5;
    font-size: 0.8rem;
    font-weight: 500;
    margin-top: 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

/* Cabeçalho de estudos */
.studies-header {
    text-align: center;
    margin-bottom: 2rem;
}

.studies-header h2 {
    font-size: 2rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.studies-header p {
    color: var(--text-secondary);
    font-size: 1.1rem;
}

/* Lista de anotações de linguagem */
.language-notes-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 2rem;
}

.language-notes-header h2 {
    font-size: 2rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.notes-list {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.note-item {
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 1.5rem;
    cursor: pointer;
    transition: all 0.3s ease;
}

.note-item:hover {
    transform: translateY(-2px);
    border-color: #3a3a3a;
    box-shadow: 0 6px 20px rgba(255, 255, 255, 0.08);
}

.note-title {
    font-size: 1.2rem;
    font-weight: 500;
    color: var(--text-primary);
}

/* Rodapé */
footer {
    text-align: center;
    padding: 2rem;
    border-top: 1px solid var(--border-color);
}

.social-links {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
}

.social-link {
    color: var(--text-secondary);
    transition: all 0.3s ease;
    padding: 0.5rem;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.social-link:hover {
    color: #ffffff;
    background: var(--card-bg);
    transform: translateY(-2px);
}

/* === Artigos - Nova Seção === */
.articles-header {
    max-width: 900px;
    margin: 0 auto 1.5rem;
}

.articles-filters {
    margin-top: 1.25rem;
}

.filter-group {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    justify-content: center;
}

.filter-btn {
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    color: var(--text-secondary);
    padding: 0.45rem 0.9rem;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.5px;
    border-radius: 20px;
    cursor: pointer;
    transition: all 0.25s ease;
    text-transform: uppercase;
}

.filter-btn:hover {
    color: var(--text-primary);
    border-color: #3a3a3a;
}

.filter-btn.active {
    background: #0f0f0f;
    color: var(--bg-dark);
    border-color: #3a3a3a;
}

.articles-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 2rem;
    margin-top: 2.25rem;
}

.article-card {
    position: relative;
    background: linear-gradient(145deg, var(--card-bg), #242424);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 1.6rem 1.5rem 1.4rem;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.35s cubic-bezier(.4,.2,.2,1);
    display: flex;
    flex-direction: column;
    min-height: 230px;
}

.article-card:before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 85% 15%, rgba(255,255,255,0.08), transparent 60%);
    opacity: 0;
    transition: opacity 0.4s ease;
    pointer-events: none;
}

.article-card:hover:before { opacity: 1; }

.article-card:hover {
    transform: translateY(-6px) scale(1.015);
    border-color: #3a3a3a;
    box-shadow: 0 10px 30px -5px rgba(255,255,255,0.12), 0 4px 8px -2px rgba(0,0,0,0.4);
}

.article-card-inner { flex: 1; display: flex; flex-direction: column; }

.article-card-meta {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.article-badge {
    background: rgba(255,255,255,0.06);
    color: #e5e5e5;
    padding: 0.35rem 0.6rem;
    border-radius: 6px;
    font-weight: 600;
    border: 1px solid #333;
}

.article-date {
    color: var(--text-secondary);
    font-weight: 500;
}

.article-card-title {
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.35;
    margin: 0 0 0.65rem;
    color: var(--text-primary);
    position: relative;
}

.article-card-desc {
    color: var(--text-secondary);
    font-size: 0.9rem;
    line-height: 1.5;
    margin: 0 0 1.1rem;
    flex-grow: 1;
}

.article-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    font-size: 0.75rem;
}

.article-reading {
    display: inline-flex;
    gap: 0.35rem;
    align-items: center;
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border-color);
    padding: 0.35rem 0.6rem;
    border-radius: 6px;
    color: var(--text-secondary);
    font-weight: 500;
}

.article-reading .icon { font-size: 0.85rem; }

.article-open {
    color: #e5e5e5;
    font-weight: 600;
    font-size: 0.8rem;
    letter-spacing: 0.5px;
    transition: color 0.25s ease;
}

.article-card:hover .article-open { color: #ffffff; }

/* Estado vazio melhorado */
.no-content.enhanced {
    grid-column: 1 / -1;
    text-align: center;
    padding: 3rem 2rem;
    background: var(--card-bg);
    border: 1px dashed var(--border-color);
    border-radius: 16px;
}

.no-content.enhanced h3 { font-size: 1.5rem; margin-bottom: 0.75rem; }
.no-content.enhanced p { color: var(--text-secondary); }

/* === Área de Estudos Aprimorada === */
.studies-languages-header { max-width: 1000px; margin: 0 auto 1.5rem; }

.languages-controls { margin-top: 1.25rem; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }

.languages-search-wrapper { position: relative; }
.languages-search-wrapper input {
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    padding: 0.75rem 2.2rem 0.75rem 1rem;
    border-radius: 10px;
    color: var(--text-primary);
    min-width: 260px;
    font-size: 0.9rem;
    transition: all .25s ease;
}
.languages-search-wrapper input:focus { outline: none; border-color: #3a3a3a; box-shadow: 0 0 0 3px rgba(255,255,255,0.06); }
.search-icon { position: absolute; right: 0.8rem; top: 50%; transform: translateY(-50%); font-size: 1rem; opacity: .6; pointer-events:none; }

.languages-sorting { display: flex; gap: .6rem; }
.sort-btn { background: var(--card-bg); border:1px solid var(--border-color); color: var(--text-secondary); padding:.55rem .9rem; font-size:.7rem; font-weight:600; letter-spacing:.5px; border-radius:8px; text-transform:uppercase; cursor:pointer; transition:all .25s ease; }
.sort-btn:hover { color: var(--text-primary); border-color: #3a3a3a; }
.sort-btn.active { background: #0f0f0f; color: #fff; border-color: #3a3a3a; }

.languages-grid.enhanced { gap: 2.2rem; }
.language-card.enhanced { padding: 1.7rem 1.4rem 1.4rem; display:flex; flex-direction:column; align-items:stretch; text-align:left; }
.language-card.enhanced:hover { transform: translateY(-6px); box-shadow: 0 12px 32px -4px rgba(251,191,36,0.18), 0 4px 10px -2px rgba(0,0,0,0.5); }

.language-card-top { display:flex; gap:1rem; align-items:center; margin-bottom:.75rem; }
.language-icon-wrapper { position:relative; width:64px; height:64px; display:flex; align-items:center; justify-content:center; }
.language-icon-main { font-size:2.9rem; }

.language-progress { position:absolute; inset:0; border-radius:50%; background: conic-gradient(#ffffff calc(var(--progress)*1%), rgba(255,255,255,0.06) 0); display:flex; align-items:center; justify-content:center; }
.language-progress:after { content:''; position:absolute; inset:6px; background: #0f0f0f; border-radius:50%; }
.language-progress-value { position:relative; font-size:.85rem; font-weight:600; color: #e5e5e5; }
.language-meta { flex:1; }
.language-info-line { display:flex; flex-wrap:wrap; gap:.75rem; font-size:.7rem; text-transform:uppercase; letter-spacing:.5px; font-weight:600; color: var(--text-secondary); }
.language-last-date { background: rgba(255,255,255,0.05); padding:.3rem .55rem; border-radius:6px; }

.language-tags { display:flex; flex-wrap:wrap; gap:.4rem; margin:.4rem 0 .8rem; }
.lang-tag { background: rgba(255,255,255,0.06); color: #e5e5e5; font-size:.6rem; text-transform:uppercase; letter-spacing:.5px; padding:.35rem .55rem; border-radius:6px; border:1px solid #333; font-weight:600; }

.language-card-footer { margin-top:auto; display:flex; }
.open-language-btn { background:#0f0f0f; color:#fff; font-weight:600; font-size:.75rem; letter-spacing:.5px; padding:.65rem 1rem; border:1px solid #2a2a2a; border-radius:8px; cursor:pointer; transition: all .25s ease; }
.open-language-btn:hover { filter: brightness(1.08); transform: translateY(-2px); }
.open-language-btn:active { transform: translateY(0); }

.no-languages-results { grid-column:1/-1; text-align:center; padding:3rem 2rem; background: var(--card-bg); border:1px dashed var(--border-color); border-radius:14px; color: var(--text-secondary); }

@media (max-width: 680px) {
  .languages-controls { flex-direction:column; align-items:stretch; }
  .languages-sorting { justify-content:center; }
  .language-card-top { flex-direction:row; }
  .language-icon-wrapper { width:56px; height:56px; }
}

/* Responsividade */
@media (max-width: 640px) {
    .articles-grid { grid-template-columns: 1fr; }
    .article-card { min-height: auto; }
    .article-card-title { font-size: 1.15rem; }
}

@media (max-width: 768px) {
    header {
        padding: 1.5rem 1rem;
    }
    
    header h1 {
        font-size: 2rem;
    }
    
    main {
        padding: 2rem 1rem;
    }
    
    .publication-item {
        padding: 1.5rem;
    }
    
    .publication-title {
        font-size: 1.3rem;
    }
    
    nav {
        flex-direction: column;
        gap: 1rem;
    }

    /* Tabelas responsivas */
    .note table,
    .tables {
        font-size: 0.8rem;
        margin: 1rem 0;
        border-radius: 6px;
    }
    
    .note table th,
    .tables th {
        padding: 0.625rem 1rem;
        font-size: 0.75rem;
    }
    
    .note table td,
    .tables td {
        padding: 0.5rem 1rem;
        font-size: 0.8rem;
        line-height: 1.3;
    }
}

@media (max-width: 480px) {
    .note table,
    .tables {
        font-size: 0.75rem;
        margin: 0.75rem 0;
    }
    
    .note table th,
    .tables th {
        padding: 0.5rem 0.75rem;
        font-size: 0.7rem;
    }
    
    .note table td,
    .tables td {
        padding: 0.4rem 0.75rem;
        font-size: 0.75rem;
    }
}

/* Elementos ocultos */
.no-content {
    text-align: center;
    padding: 4rem 2rem;
    color: var(--text-secondary);
}

.no-content h3 {
    font-size: 2rem;
    margin-bottom: 1rem;
    color: var(--text-primary);
}

.no-content p {
    font-size: 1.1rem;
    max-width: 500px;
    margin: 0 auto;
    line-height: 1.6;
}

/* Estados de visibilidade dos containers */
/* visibilidade dos containers é controlada via JavaScript */

/* ===== TEMPO DE LEITURA ===== */

.note-header {
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--border-color);
}

.reading-time-icon { font-size: 1rem; }
.reading-time-text { font-weight: 600; letter-spacing: 0.5px; }

/* ===== SEÇÃO DE COMENTÁRIOS (DISQUS) ===== */

.comments-section {
    margin-top: 2.5rem;
    padding-top: 2rem;
    border-top: 2px solid var(--border-color);
    border-radius: 0;
}

.comments-title {
    color: var(--text-primary);
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.comments-title::before {
    content: '';
    width: 4px;
    height: 24px;
    background: linear-gradient(135deg, rgba(255,255,255,0.6), rgba(255,255,255,0.2));
    border-radius: 2px;
    flex-shrink: 0;
}

/* Customização do Disqus para tema escuro */
#disqus_thread {
    margin-top: 1rem;
}

/* Mensagem quando Disqus está carregando */
#disqus_thread:empty::before {
    content: '💬 Carregando comentários...';
    color: var(--text-secondary);
    font-style: italic;
    display: block;
    text-align: center;
    padding: 2rem;
    background: var(--card-bg);
    border-radius: 8px;
    border: 1px solid var(--border-color);
}

/* Responsividade da seção de comentários */
@media (max-width: 768px) {
    .comments-section {
        margin-top: 3rem;
        padding-top: 2rem;
    }
    
    .comments-title {
        font-size: 1.3rem;
    }
}

/* === Tema v2 e ajustes finais === */
/* removido tema colorido, mantendo neutro preto */

/* Corrigir sobreposição do ring e do ícone */
.language-icon-wrapper { position: relative; }
.language-icon-main { position: relative; z-index: 1; }
.language-icon-main img { width: 48px; height: 48px; object-fit: contain; border-radius: 10px; background: transparent; display: block; }
.language-progress { z-index: 0; }
.language-progress:after { z-index: 0; }

/* (ring já definido acima em branco) */
.language-progress-value { color: #e5e5e5 !important; font-size: .75rem !important; letter-spacing: .5px; }

/* Botões, badges e elementos com gradiente na v2 */
/* Ajustes já aplicados diretamente (antes dependiam de body.v2) */
.open-language-btn { background: #0f0f0f; color: #fff; box-shadow: none; }
.filter-btn.active { background: #0f0f0f; color: #fff; border-color: #3a3a3a; }
.lang-tag { background: rgba(255,255,255,0.06); color: #e5e5e5; border: 1px solid #333; filter: none; }
/* mantido acima: .article-badge com fundo neutro e borda #333 */
/* hover de article-card já definido acima */
.article-open { color: #e5e5e5; }
.article-card:hover .article-open { color: #ffffff; }

/* Ajustes visuais gerais */
.article-reading { backdrop-filter: blur(2px); }
.open-language-btn:hover { background:#161616; }
