:root{
  --bg:#f4f6f9; --card:#ffffff; --ink:#1a2230; --muted:#6b7684; --line:#e4e8ee;
  --brand:#2d7dd2; --brand-ink:#0f3d6b; --hot:#e74c3c; --shadow:0 1px 3px rgba(20,30,50,.08);
}
@media (prefers-color-scheme: dark){
  :root{ --bg:#0e1420; --card:#161d2b; --ink:#e7ecf3; --muted:#8b97a8; --line:#25303f;
         --brand:#4a9eeb; --brand-ink:#cfe4fb; --shadow:0 1px 3px rgba(0,0,0,.4); }
}
*{ box-sizing:border-box; }
html,body{ margin:0; }
body{
  background:var(--bg); color:var(--ink);
  font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
.wrap{ width:100%; max-width:920px; margin:0 auto; padding:0 16px; }

/* Topbar */
.topbar{ background:var(--card); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:10; }
.topbar-in{ display:flex; align-items:center; justify-content:space-between; height:58px; }
.brand{ font-weight:800; font-size:20px; text-decoration:none; color:var(--ink); letter-spacing:-.3px; }
.brand span{ color:var(--brand); margin-left:4px; }
.nav{ display:flex; gap:6px; align-items:center; }
.nav a{ text-decoration:none; color:var(--muted); font-weight:600; font-size:15px;
  padding:8px 12px; border-radius:8px; }
.nav a.on{ color:var(--brand-ink); background:color-mix(in srgb,var(--brand) 14%,transparent); }
.nav a.tg{ color:#fff; background:var(--brand); }
.subtitle{ color:var(--muted); font-size:13.5px; margin:14px 0 4px; }

/* Filtros / chips */
.filters{ display:flex; flex-wrap:wrap; gap:8px; margin:16px 0; }
.chip{ text-decoration:none; font-size:13.5px; font-weight:600; color:var(--muted);
  background:var(--card); border:1px solid var(--line); padding:6px 12px; border-radius:999px; }
.chip.on{ color:#fff; background:var(--c,var(--brand)); border-color:transparent; }

/* Feed */
.feed{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.item{ background:var(--card); border:1px solid var(--line); border-left:4px solid var(--line);
  border-radius:12px; padding:14px 16px; box-shadow:var(--shadow); }
.item.imp3{ border-left-color:var(--hot); }
.item.imp2{ border-left-color:var(--brand); }
.item-head{ display:flex; align-items:center; gap:10px; margin-bottom:6px; flex-wrap:wrap; }
.badge{ font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.4px;
  color:#fff; background:var(--c,var(--brand)); padding:3px 8px; border-radius:6px; }
.hot{ font-size:12px; font-weight:700; color:var(--hot); }
.when{ margin-left:auto; color:var(--muted); font-size:12.5px; }
.title{ font-size:18px; line-height:1.3; margin:2px 0 6px; letter-spacing:-.2px; }
.body{ margin:0; color:var(--ink); font-size:16.5px; line-height:1.5; }
.media{ margin-top:10px; width:100%; max-width:100%; border-radius:10px; display:block; }
.src{ margin-top:8px; color:var(--muted); font-size:12.5px; }
.src-link{ color:var(--muted); text-decoration:none; font-weight:600; }
.src-link:hover{ color:var(--brand); text-decoration:underline; }
.empty{ color:var(--muted); text-align:center; padding:48px 12px; }
.empty.small{ padding:22px 12px; font-size:13.5px; }

/* Home 50/50 — notícias + calendário */
.wrap.wide{ max-width:1180px; }
.home-grid{ display:grid; grid-template-columns:1fr; gap:22px; margin-top:16px; }
@media(min-width:840px){
  .home-grid{ grid-template-columns:minmax(0,1.35fr) minmax(300px,1fr); align-items:start; }
  .col-cal .cal-panel{ position:sticky; top:74px; max-height:calc(100vh - 90px); overflow-y:auto; }
}
.col-news .filters{ margin-top:0; }

/* Painel de calendário (coluna direita da home) */
.cal-panel{ background:var(--card); border:1px solid var(--line); border-radius:12px;
  box-shadow:var(--shadow); overflow:hidden; }
.cal-panel-head{ display:flex; align-items:center; justify-content:space-between;
  padding:13px 15px 6px; }
.cal-panel-head h2{ font-size:15.5px; margin:0; }
.cal-full{ font-size:12.5px; font-weight:600; color:var(--brand); text-decoration:none; white-space:nowrap; }
.cal-full.block{ display:block; text-align:center; padding:12px; border-top:1px solid var(--line);
  margin-top:4px; }
.cal-note{ color:var(--muted); font-size:12px; margin:0 15px 8px; }
.cal-mini-day{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.4px;
  color:var(--muted); background:color-mix(in srgb,var(--line) 40%,transparent);
  padding:6px 15px; display:flex; align-items:center; gap:7px; }
.cal-mini-day.today{ color:var(--brand-ink); }
.cal-mini-row{ display:flex; align-items:center; gap:9px; padding:8px 15px;
  border-bottom:1px solid var(--line); font-size:13.5px; }
.cm-hora{ font-variant-numeric:tabular-nums; color:var(--muted); width:38px; flex:none; }
.cm-flag{ flex:none; }
.cm-ev{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:600; }
.cm-imp{ flex:none; color:var(--c); font-size:9px; letter-spacing:1px; }

/* Paginação */
.pager{ display:flex; justify-content:space-between; gap:12px; margin:22px 0 8px; }
.pager a{ text-decoration:none; color:var(--brand-ink); font-weight:600;
  background:var(--card); border:1px solid var(--line); padding:8px 14px; border-radius:8px; }

/* Calendário */
.cal-day{ margin:20px 0; }
.cal-daytitle{ font-size:15px; margin:0 0 8px; padding-bottom:6px; border-bottom:2px solid var(--line);
  display:flex; align-items:center; gap:8px; }
.cal-daytitle.today{ color:var(--brand-ink); border-bottom-color:var(--brand); }
.tag-hoje{ font-size:11px; font-weight:700; color:#fff; background:var(--brand);
  padding:2px 7px; border-radius:999px; }
.cal-scroll{ overflow-x:auto; }
table.cal{ width:100%; border-collapse:collapse; background:var(--card); border:1px solid var(--line);
  border-radius:10px; overflow:hidden; font-size:14px; min-width:560px; }
table.cal th{ text-align:left; font-size:11.5px; text-transform:uppercase; letter-spacing:.4px;
  color:var(--muted); background:color-mix(in srgb,var(--line) 40%,transparent);
  padding:8px 10px; border-bottom:1px solid var(--line); }
table.cal td{ padding:9px 10px; border-bottom:1px solid var(--line); vertical-align:middle; }
table.cal tr:last-child td{ border-bottom:none; }
.imp-s3{ background:color-mix(in srgb,var(--hot) 7%,transparent); }
.c-hora{ font-variant-numeric:tabular-nums; color:var(--muted); white-space:nowrap; }
.cur{ font-size:12px; color:var(--muted); font-weight:600; }
.c-ev{ font-weight:600; }
.stars{ color:var(--c); letter-spacing:1px; font-size:11px; }
.c-num{ font-variant-numeric:tabular-nums; text-align:right; color:var(--muted); white-space:nowrap; }
.c-num.has{ color:var(--ink); font-weight:700; }

/* Rodapé */
.foot{ margin-top:40px; padding:22px 0; border-top:1px solid var(--line); color:var(--muted);
  font-size:12.5px; text-align:center; }
.foot .muted{ display:block; margin-top:4px; opacity:.8; }

@media (max-width:520px){
  .topbar-in{ flex-direction:column; align-items:flex-start; height:auto; padding:9px 0; gap:7px; }
  .brand{ font-size:18px; }
  .nav{ width:100%; gap:4px; }
  .nav a{ padding:7px 10px; font-size:14px; }
  .nav a.tg{ margin-left:auto; }
  .title{ font-size:16.5px; }
}
