/* =====================================================================
   BR.NEWS — estilo (sistema Awesomic: zinc neutro + laranja ember)
   Fonte Cosmica -> fallback DM Sans / system. Bordas hairline, cantos generosos.
   ===================================================================== */
:root{
  --obsidian:#09090b; --graphite:#18181b; --slate:#27272a; --iron:#3f3f46;
  --steel:#52525b; --fog:#71717a; --ash:#a1a1aa; --mist:#d4d4d8; --cloud:#ececee;
  --paper:#f4f4f5; --snow:#ffffff; --ember:#ff5a00;
  --radius-card:36px; --radius-btn:14px; --radius-badge:12px; --radius-pill:10000px;
  --wrap:1200px; --gap:80px; --pad-card:28px;
  --font:'Cosmica','DM Sans',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--font); background:var(--paper); color:var(--graphite);
  font-size:15px; line-height:1.45; -webkit-font-smoothing:antialiased;
}
a{color:var(--obsidian); text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:var(--wrap); margin:0 auto; padding:0 20px}
.muted{color:var(--fog)}

/* ---- Navegação ---- */
.nav{position:sticky; top:0; z-index:20; background:rgba(244,244,245,.85); backdrop-filter:blur(8px); border-bottom:1px solid var(--cloud)}
.nav__in{display:flex; align-items:center; gap:16px; height:64px}
.brand{font-weight:700; font-size:20px; letter-spacing:-.02em; color:var(--obsidian)}
.brand span{color:var(--ember)}
.brand--center{display:block; text-align:center; margin-bottom:20px; font-size:24px}
.nav__search{flex:1}
.nav__search input{width:100%; height:40px; border:1px solid var(--cloud); border-radius:var(--radius-btn); padding:0 16px; background:var(--snow); font:inherit}
.nav__cta{border:1px solid var(--iron); border-radius:var(--radius-pill); padding:8px 18px; font-size:14px}

/* ---- Hero ---- */
.hero{padding:72px 0 40px; text-align:center}
.hero__title{font-size:56px; line-height:1.12; font-weight:600; letter-spacing:-.02em; color:var(--obsidian); margin:0 0 12px}
.hero__title span{color:var(--ember)}
.hero__sub{color:var(--steel); font-size:18px; margin:0 auto 28px; max-width:620px}
.hero__search{display:flex; gap:8px; max-width:640px; margin:0 auto}
.hero__search input{flex:1; height:52px; border:1px solid var(--cloud); border-radius:var(--radius-btn); padding:0 20px; background:var(--snow); font:inherit; font-size:16px}
.hero__search button{height:52px; padding:0 26px; border:0; border-radius:var(--radius-btn); background:var(--obsidian); color:#fff; font:inherit; font-weight:500; cursor:pointer}

/* ---- Blocos / grid ---- */
.block{margin:48px 0}
.block__title{font-size:20px; font-weight:600; color:var(--obsidian); margin:0 0 16px}
.grid{display:grid; gap:16px}
.grid--3{grid-template-columns:repeat(3,1fr)}
.cols{display:grid; grid-template-columns:1fr 320px; gap:32px}
.cols__side .block{margin:0 0 32px}

/* ---- Cards ---- */
.card{display:block; background:var(--snow); border:1px solid var(--cloud); border-radius:var(--radius-card); overflow:hidden}
.card:hover{text-decoration:none; border-color:var(--mist)}
.card__img{height:170px; background-size:cover; background-position:center; background-color:var(--mist)}
.card__body{padding:var(--pad-card)}
.card__title{font-size:18px; font-weight:600; margin:0 0 8px; color:var(--obsidian)}
.card__meta{color:var(--fog); font-size:13px; margin:0}

/* ---- Listas / rows ---- */
.list{display:flex; flex-direction:column; gap:12px}
.row{display:flex; gap:16px; background:var(--snow); border:1px solid var(--cloud); border-radius:24px; padding:18px 20px}
.row:hover{border-color:var(--mist); text-decoration:none}
.row__thumb{width:96px; height:72px; border-radius:14px; background-size:cover; background-position:center; background-color:var(--mist); flex:none}
.row__title{font-size:16px; font-weight:600; margin:0 0 4px; color:var(--obsidian)}
.row__excerpt{color:var(--steel); margin:0 0 6px; font-size:14px}
.row__meta{color:var(--fog); font-size:13px; margin:0; display:flex; gap:8px; align-items:center; flex-wrap:wrap}
.src{margin-left:auto; color:var(--iron)}

/* ---- Ranking / timeline / related ---- */
.ranking,.timeline,.related,.pubs{list-style:none; margin:0; padding:0}
.ranking li,.related li{display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px solid var(--cloud)}
.ranking li span,.related li span{color:var(--fog)}
.ranking{counter-reset:r}
.ranking li{counter-increment:r}
.ranking li a::before{content:counter(r) ". "; color:var(--ash)}
.timeline li{display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px solid var(--cloud)}

/* ---- Chips / tags / badges ---- */
.chips{display:flex; flex-wrap:wrap; gap:8px}
.chip{display:inline-block; border:1px solid var(--cloud); border-radius:var(--radius-badge); padding:4px 10px; font-size:13px; color:var(--graphite); background:var(--snow)}
.chip--pessoa{border-color:var(--mist)}
.chip--organizacao{background:var(--iron); color:#fafafa; border-color:var(--iron)}
.chip--local{background:var(--paper)}
.badge{background:var(--ember); color:#fff; border-radius:var(--radius-badge); padding:2px 8px; font-size:12px}
.tag{display:inline-block; border-radius:var(--radius-badge); padding:2px 8px; font-size:12px; background:var(--cloud); color:var(--iron)}
.tag--positivo{background:#e7f6ec; color:#1a7f45}
.tag--negativo{background:#fdeaea; color:#b42318}
.tag--neutro,.tag--informativo{background:var(--cloud); color:var(--iron)}
.tag--critico,.tag--controverso{background:#fff1e6; color:#b4530a}

/* ---- Perfil de entidade ---- */
.profile__head{background:var(--snow); border:1px solid var(--cloud); border-radius:var(--radius-card); padding:32px}
.profile__name{font-size:40px; font-weight:600; letter-spacing:-.02em; color:var(--obsidian); margin:10px 0 8px}
.profile__desc{color:var(--steel); font-size:16px; max-width:720px}

/* ---- Matéria ---- */
.post{max-width:760px; margin:40px auto}
.post__title{font-size:40px; line-height:1.15; font-weight:600; letter-spacing:-.02em; color:var(--obsidian); margin:0 0 12px}
.post__meta{color:var(--fog); display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:20px}
.post__img{height:360px; border-radius:var(--radius-card); background-size:cover; background-position:center; background-color:var(--mist); margin-bottom:24px}
.post__summary{background:var(--snow); border:1px solid var(--cloud); border-radius:24px; padding:24px; margin-bottom:20px}
.post__summary-label{display:inline-block; font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--ember); margin-bottom:8px}
.post__original{margin:24px 0}
.post__pubs .pubs li{padding:6px 0; border-bottom:1px solid var(--cloud)}

/* ---- Botões / forms ---- */
.btn{display:inline-block; border:1px solid var(--iron); border-radius:var(--radius-btn); padding:12px 18px; font:inherit; font-size:14px; background:var(--snow); color:var(--graphite); cursor:pointer}
.btn--dark{background:var(--obsidian); color:#fff; border-color:var(--obsidian)}
.btn--block{width:100%}
.btn--sm{padding:6px 12px; font-size:13px}
.form{display:flex; flex-direction:column; gap:14px}
.form label{display:flex; flex-direction:column; gap:6px; font-size:14px; color:var(--steel)}
.form input,.form select{height:44px; border:1px solid var(--cloud); border-radius:var(--radius-btn); padding:0 14px; font:inherit; background:var(--snow)}
.form--inline{flex-direction:row; flex-wrap:wrap; align-items:center}
.form--inline input,.form--inline select{height:44px}
.filters{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:20px}
.filters input,.filters select{height:44px; border:1px solid var(--cloud); border-radius:var(--radius-btn); padding:0 14px; font:inherit; background:var(--snow)}
.filters button{height:44px; padding:0 20px; border:0; border-radius:var(--radius-btn); background:var(--obsidian); color:#fff; cursor:pointer}

/* ---- Alertas ---- */
.alert{background:#fff1e6; border:1px solid #ffd5b8; color:#b4530a; border-radius:var(--radius-btn); padding:12px 16px}
.alert--ok{background:#e7f6ec; border-color:#bfe6cd; color:#1a7f45}

/* ---- Tabela ---- */
.tbl{width:100%; border-collapse:collapse; background:var(--snow); border:1px solid var(--cloud); border-radius:16px; overflow:hidden}
.tbl th,.tbl td{text-align:left; padding:12px 14px; border-bottom:1px solid var(--cloud); font-size:14px; vertical-align:top}
.tbl th{background:var(--paper); font-weight:600; color:var(--iron)}

/* ---- Admin ---- */
.admin{display:grid; grid-template-columns:240px 1fr; min-height:100vh}
.side{background:var(--snow); border-right:1px solid var(--cloud); padding:24px 20px; display:flex; flex-direction:column}
.side .brand{margin-bottom:28px}
.side__nav{display:flex; flex-direction:column; gap:4px}
.side__nav a{padding:10px 12px; border-radius:12px; color:var(--iron)}
.side__nav a:hover{background:var(--paper); text-decoration:none}
.side__out{margin-top:auto; color:var(--fog)}
.admin__main{padding:32px 40px}
.admin__head{margin-bottom:24px}
.admin__head h1{font-size:28px; font-weight:600; margin:0}
.stats{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:32px}
.stat{background:var(--snow); border:1px solid var(--cloud); border-radius:24px; padding:20px}
.stat b{display:block; font-size:28px; font-weight:600; color:var(--obsidian)}
.stat span{color:var(--fog); font-size:13px}
.stat--wide{margin-bottom:12px}

/* ---- Auth ---- */
.auth{display:flex; align-items:center; justify-content:center; min-height:100vh}
.auth__box{width:360px; background:var(--snow); border:1px solid var(--cloud); border-radius:var(--radius-card); padding:32px}
.auth__title{font-size:22px; font-weight:600; margin:0 0 16px; text-align:center}

/* ---- Footer / vazio ---- */
.foot{border-top:1px solid var(--cloud); margin-top:64px; padding:32px 0; color:var(--fog); font-size:13px}
.empty{text-align:center; padding:80px 0}
.empty h1{font-size:64px; margin:0; color:var(--mist)}

/* ---- Responsivo ---- */
@media (max-width:900px){
  .grid--3{grid-template-columns:1fr}
  .cols{grid-template-columns:1fr}
  .hero__title{font-size:40px}
  .admin{grid-template-columns:1fr}
  .side{flex-direction:row; align-items:center; gap:12px; border-right:0; border-bottom:1px solid var(--cloud)}
  .side__nav{flex-direction:row}
  .stats{grid-template-columns:repeat(2,1fr)}
  .admin__main{padding:20px}
}
