/* ============================== DASHBOARD =============================== */
.welcome{ font-size:20px; margin-bottom:2px }
.welcome b{ color:var(--blue-3) }
.welcome-row{ display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:18px; flex-wrap:wrap }
.welcome-date{ font-size:12px; color:var(--muted); text-align:right }

.shortcuts{ display:flex; gap:8px; overflow-x:auto; margin-bottom:18px; padding-bottom:2px }
.shortcut{ display:flex; align-items:center; gap:8px; padding:9px 14px; background:var(--panel); border:1px solid var(--line); border-radius:99px; font-size:12.5px; white-space:nowrap; flex:0 0 auto }
.shortcut:hover{ border-color:var(--blue-dim); color:var(--blue-3) }

.dash-grid{ display:grid; grid-template-columns:1fr 320px; gap:18px; align-items:start }
@media (max-width:980px){ .dash-grid{ grid-template-columns:1fr } }

.carousel{ position:relative; border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--line); aspect-ratio:16/7; background:var(--panel-2) }
.carousel-track{ display:flex; height:100%; transition:transform .35s ease }
.carousel-slide{ min-width:100%; height:100%; display:flex; align-items:center; justify-content:center; text-align:center; position:relative;
  background-size:cover; background-position:center; padding:20px }
.carousel-slide::before{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(6,11,20,.15), rgba(6,11,20,.75)) }
.carousel-slide .txt{ position:relative; z-index:1 }
.carousel-slide h3{ font-size:clamp(22px,4vw,34px); color:#fff; text-shadow:0 2px 10px rgba(0,0,0,.5) }
.carousel-slide span{ color:var(--blue-3); font-size:12px; letter-spacing:.14em }
.carousel-nav{ position:absolute; top:50%; transform:translateY(-50%); width:32px; height:32px; border-radius:50%; background:rgba(6,11,20,.55); border:1px solid rgba(255,255,255,.2); color:#fff; display:grid; place-items:center; z-index:2 }
.carousel-nav.prev{ left:10px } .carousel-nav.next{ right:10px }
.carousel-dots{ position:absolute; bottom:12px; left:0; right:0; display:flex; justify-content:center; gap:6px; z-index:2 }
.carousel-dots span{ width:6px; height:6px; border-radius:99px; background:rgba(255,255,255,.4) }
.carousel-dots span.active{ background:#fff; width:18px }

.promo-scroll{ display:flex; gap:12px; overflow-x:auto; margin:18px 0; padding-bottom:2px }
.promo-card{ flex:0 0 auto; width:220px; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:14px; position:relative; overflow:hidden }
.promo-card::before{ content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--gold-dim),var(--gold-2)) }
.promo-card .pav{ font-size:30px }
.promo-card b{ display:block; margin-top:6px; font-size:12.5px }
.promo-card p{ margin:4px 0 0; font-size:11px; color:var(--muted); line-height:1.5 }
.promo-card p b{ display:inline; color:var(--text) }

.section-title{ display:flex; align-items:center; justify-content:space-between; margin:22px 0 12px }
.section-title h2{ font-size:16px }
.section-title a{ font-size:12px; color:var(--blue-3) }

.news-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px }
@media (max-width:980px){ .news-grid{ grid-template-columns:1fr } }
.news-card{ background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column }
.news-thumb{ aspect-ratio:16/10; background-size:cover; background-position:center; position:relative }
.news-thumb .browser-chrome{ position:absolute; top:0; left:0; right:0; background:rgba(6,11,20,.75); font-size:9px; color:#ddd; padding:5px 8px; display:flex; gap:5px; align-items:center }
.news-body{ padding:14px 14px 16px; display:flex; flex-direction:column; gap:8px; flex:1 }
.news-body h4{ font-size:13.5px; line-height:1.4 }
.news-meta{ display:flex; gap:10px; font-size:10.5px; color:var(--muted) }
.news-excerpt{ font-size:12px; color:var(--muted); line-height:1.55; flex:1 }
.news-foot{ display:flex; align-items:center; justify-content:space-between; font-size:11px; color:var(--muted); border-top:1px solid var(--line-soft); padding-top:10px }
.news-foot a{ color:var(--blue-3); font-weight:600 }

/* ID card widget — fundo sempre escuro por design (como um crachá), então o
   texto interno usa cores fixas em vez das variáveis de tema (que mudam no claro) */
.id-card{ background:linear-gradient(160deg,#0c1a2c,#0a1424); border:1px solid var(--line); border-radius:var(--radius-lg); padding:16px; position:relative; overflow:hidden; color:#eef4ff }
.id-card::after{ content:''; position:absolute; inset:0; background:repeating-linear-gradient(115deg, rgba(255,255,255,.02) 0 2px, transparent 2px 6px) }
.id-head{ display:flex; align-items:center; justify-content:space-between; position:relative; z-index:1 }
.id-head b{ font-family:var(--font-display); font-size:13px; letter-spacing:.05em; color:var(--blue-3) }
.id-badge{ width:30px; height:30px }
.id-body{ display:flex; gap:14px; margin-top:14px; position:relative; z-index:1 }
.id-photo{ width:72px; height:72px; border-radius:var(--radius-sm); background:var(--panel-3); display:grid; place-items:center; font-size:32px; border:1px solid var(--line) }
.id-fields div{ font-size:10px; color:#9fb3cf; margin-top:7px }
.id-fields div:first-child{ margin-top:0 }
.id-fields b{ display:block; color:#eef4ff; font-size:12.5px; letter-spacing:.02em }
.id-strip{ margin-top:14px; padding-top:10px; border-top:1px dashed #24354d; display:flex; justify-content:space-between; align-items:center; position:relative; z-index:1 }
.id-strip .dots{ letter-spacing:3px; color:#9fb3cf; font-size:11px }
.id-strip .eyebrow{ color:#9fb3cf }

.online-row{ display:flex; align-items:center; gap:9px; padding:8px 0; font-size:12.5px }
.online-row b{ font-weight:600 }

.list-row{ display:flex; align-items:center; justify-content:space-between; padding:11px 0; border-bottom:1px solid var(--line-soft); font-size:13px }
.list-row:last-child{ border:none }
