/* Hoy shares the existing palette and typography. */
.today-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:24px 0 18px; }
.today-heading h1.today-date { font-family:'Manrope',sans-serif; font-size:clamp(26px,5vw,40px); font-weight:600; line-height:1.2; letter-spacing:-.035em; margin:0; min-width:0; }
.today-muted { color:var(--text-dim); font-size:13px; line-height:1.65; }
.today-date time { display:block; }
.today-date time::first-letter { text-transform:uppercase; }
.today-top { display:grid; grid-template-columns:1.1fr 1fr; gap:18px; }
.today-panel { border:1px solid var(--card-border); background:var(--card); border-radius:20px; padding:26px; min-width:0; }
.today-solar { background:radial-gradient(ellipse at 90% 10%,var(--shadow-glow),transparent 65%),var(--card); }
.today-kicker { color:var(--text-dim); text-transform:uppercase; letter-spacing:.13em; font-size:10px; font-weight:600; }
.today-solar-event { font-family:'Fraunces',serif; font-size:clamp(26px,4vw,38px); font-weight:300; margin:14px 0 3px; }
.today-solar-time { font-size:32px; font-variant-numeric:tabular-nums; color:var(--dawn); }
.today-solar-details { display:flex; gap:24px; margin:20px 0; flex-wrap:wrap; }
.today-solar-details strong { display:block; color:var(--text); font-size:15px; font-weight:500; }
.today-panel h2 { font-family:'Fraunces',serif; font-weight:400; font-size:23px; }
.today-panel-head { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:14px; }
.today-link { border:0; background:none; color:var(--dawn); cursor:pointer; font:inherit; font-size:12px; min-height:44px; padding:4px; text-align:left; }
.today-row { display:flex; align-items:center; gap:12px; padding:13px 0; border-bottom:1px solid var(--line); }
.today-row:last-child { border-bottom:0; }
.today-row-content { flex:1; min-width:0; overflow-wrap:anywhere; }
.today-row-name { font-size:14px; font-weight:500; line-height:1.5; }
.today-row .btn { padding:9px 13px; min-height:44px; font-size:12px; flex-shrink:0; }
.today-clock { display:block; color:var(--dawn); font-variant-numeric:tabular-nums; font-size:13px; margin-top:3px; }
.today-dot { width:9px; height:9px; border-radius:50%; flex-shrink:0; background:var(--dawn); }
.today-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--card-border); border-radius:16px; overflow:hidden; margin:18px 0; }
.today-stat { padding:20px 24px; background:var(--bg); min-width:0; }
.today-stat-value { font-family:'Fraunces',serif; font-size:28px; margin:6px 0; overflow-wrap:anywhere; }
.today-bottom { display:grid; grid-template-columns:1.1fr 1fr; gap:18px; }
.today-categories { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.today-category { border:1px solid var(--card-border); border-radius:12px; background:var(--input-bg); color:var(--text); font:inherit; font-size:12px; padding:12px 14px; cursor:pointer; min-height:44px; }
.today-category[aria-pressed=true] { border-color:var(--dawn); background:var(--gradient-1); }
.today-note { border-top:1px solid var(--line); padding-top:16px; margin-top:18px; }
.today-check { width:44px; height:44px; display:grid; place-items:center; flex-shrink:0; border:1px solid var(--card-border); border-radius:50%; background:var(--input-bg); color:var(--text); cursor:pointer; font-size:20px; }
.today-check[aria-pressed=true] { color:var(--bg); background:var(--alertness); border-color:var(--alertness); }
.today-check[aria-pressed=true] + .today-row-content { color:var(--text-dim); }
#view-today button:focus-visible { outline:2px solid var(--dawn); outline-offset:4px; }
.today-offline { color:var(--noon); margin-top:12px; font-size:12px; }
@media (max-width:1100px) and (min-width:721px) {
  .topbar { flex-wrap:wrap; gap:18px; }
  .topbar-controls { flex-wrap:wrap; }
}
@media (max-width:720px) {
  .today-heading { margin-top:20px; align-items:start; flex-direction:column; gap:8px; }
  .today-top,.today-bottom { grid-template-columns:1fr; gap:12px; }
  .today-panel { padding:20px; border-radius:16px; }
  .today-stats { gap:0; }
  .today-stat { padding:15px 10px; }
  .today-stat-value { font-size:22px; }
  .today-stat .today-muted { font-size:10px; }
  .today-stat .today-kicker { font-size:9px; letter-spacing:.04em; }
}
