/* ── Dashboard Hero ── */
.dash-hero {
  background: linear-gradient(135deg, var(--blue-700) 0%, var(--blue-500) 50%, var(--sky-400) 100%);
  border-radius: var(--radius-xl);
  padding: var(--space-8);
  color: white;
  position: relative; overflow: hidden;
  margin-bottom: var(--space-6);
}
.dash-hero::before {
  content:'';
  position:absolute; top:-60%; left:-15%;
  width:55%; height:220%;
  background: rgba(255,255,255,.07);
  border-radius: 50%;
}
.dash-hero::after {
  content:'';
  position:absolute; bottom:-40%; right:2%;
  width:45%; height:170%;
  background: rgba(255,255,255,.04);
  border-radius: 50%;
}
.dash-hero-text { position: relative; z-index:1; }
.dash-greeting  { font-size:var(--text-sm); opacity:.85; margin-bottom:2px; }
.dash-name      { font-size:var(--text-3xl); font-weight:var(--font-weight-black); line-height:1.1; }
.dash-sub       { font-size:var(--text-sm); opacity:.8; margin-top:4px; }
.dash-dates     { position:relative; z-index:1; display:flex; gap:var(--space-3); flex-wrap:wrap; margin-top:var(--space-5); }
.dash-date-chip {
  display:inline-flex; align-items:center; gap:var(--space-2);
  background:rgba(255,255,255,.18); backdrop-filter:blur(8px);
  padding:var(--space-2) var(--space-4); border-radius:var(--radius-full);
  font-size:var(--text-sm); font-weight:var(--font-weight-semi);
  border:1px solid rgba(255,255,255,.22);
}

/* ── Stats Grid ── */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--space-4);
  margin-bottom: var(--space-6);
}
.stat-card {
  background: var(--card-bg);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  padding: var(--space-5);
  display: flex; align-items: center; gap: var(--space-4);
  box-shadow: var(--card-shadow);
  transition: all var(--transition-base);
}
.stat-icon {
  width: 50px; height: 50px;
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.stat-blue  { background:var(--blue-100);            color:var(--blue-600); }
.stat-green { background:rgba(34,197,94,.12);        color:var(--success); }
.stat-sky   { background:rgba(14,165,233,.12);       color:var(--sky-500); }
.stat-amber { background:rgba(245,158,11,.12);       color:var(--warning); }
[data-theme="dark"] .stat-blue  { background:rgba(59,130,246,.15); color:var(--blue-400); }
[data-theme="dark"] .stat-green { background:rgba(34,197,94,.12);  color:var(--success); }
[data-theme="dark"] .stat-sky   { background:rgba(14,165,233,.12); color:var(--sky-400); }
[data-theme="dark"] .stat-amber { background:rgba(245,158,11,.10); color:var(--warning); }

.stat-value { font-size:var(--text-2xl); font-weight:var(--font-weight-black); color:var(--color-text); line-height:1; }
.stat-label { font-size:var(--text-xs);  color:var(--color-text-muted); margin-top:3px; }

/* ── Quick Actions ── */
.quick-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: var(--space-3);
}
.quick-btn {
  background: var(--card-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-5) var(--space-3);
  display: flex; flex-direction: column;
  align-items: center; gap: var(--space-3);
  cursor: pointer; text-align: center;
  transition: all var(--transition-base);
}
.quick-btn:hover {
  border-color: var(--color-primary);
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}
.quick-btn:active { transform: translateY(-1px); }
.quick-icon {
  width: 48px; height: 48px;
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  transition: all var(--transition-fast);
}
.quick-blue   { background:var(--blue-100);            color:var(--blue-600); }
.quick-sky    { background:rgba(14,165,233,.12);       color:var(--sky-500); }
.quick-green  { background:rgba(34,197,94,.12);        color:var(--success); }
.quick-amber  { background:rgba(245,158,11,.12);       color:var(--warning); }
.quick-purple { background:rgba(139,92,246,.12);       color:#8b5cf6; }
.quick-rose   { background:rgba(244,63,94,.10);        color:#f43f5e; }
[data-theme="dark"] .quick-blue   { background:rgba(59,130,246,.15); color:var(--blue-400); }
[data-theme="dark"] .quick-sky    { background:rgba(14,165,233,.12); color:var(--sky-400); }
[data-theme="dark"] .quick-purple { background:rgba(139,92,246,.15); color:#a78bfa; }
[data-theme="dark"] .quick-rose   { background:rgba(244,63,94,.12);  color:#fb7185; }

.quick-btn:hover .quick-icon {
  filter: brightness(1.1);
  transform: scale(1.08);
}
.quick-label {
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semi);
  color: var(--color-text);
}

/* ── Dashboard Grid ── */
.dashboard-grid {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: var(--space-6);
}

/* ── Progress card ── */
.progress-card {
  background: var(--card-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-5);
  box-shadow: var(--card-shadow);
}
.progress-card-header {
  display: flex; align-items: center; justify-content: space-between;
}

/* ── Events ── */
.events-list { display: flex; flex-direction: column; gap: var(--space-2); }
.event-row {
  display: flex; align-items: center; gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  background: var(--color-surface-2);
  border-radius: var(--radius-lg);
  cursor: pointer;
  transition: all var(--transition-fast);
  border-inline-start: 3px solid var(--color-primary);
  color: var(--color-text-muted);
}
.event-row:hover { background:var(--color-primary-bg); color:var(--color-primary); transform:translateX(-2px); }
.event-time { font-size:var(--text-xs); font-weight:var(--font-weight-bold); color:var(--color-primary); min-width:44px; }
.event-dot  { width:6px; height:6px; border-radius:50%; background:var(--color-primary); flex-shrink:0; }
.event-body { flex:1; min-width:0; }
.event-title { font-size:var(--text-sm); font-weight:var(--font-weight-semi); color:var(--color-text); }
.event-sub   { font-size:var(--text-xs); color:var(--color-text-muted); }

/* ── Tasks ── */
.tasks-list { display: flex; flex-direction: column; gap: var(--space-2); }
.task-row {
  display: flex; align-items: center; gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  background: var(--card-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  cursor: pointer;
  transition: all var(--transition-fast);
}
.task-row:hover { border-color:var(--color-primary); background:var(--color-primary-bg); }
.task-check {
  width:18px; height:18px; border-radius:4px;
  border:2px solid var(--color-border);
  flex-shrink:0;
  transition: border-color var(--transition-fast);
}
.task-row:hover .task-check { border-color:var(--color-primary); }
.task-title { flex:1; font-size:var(--text-sm); color:var(--color-text); }

/* Done banner */
.done-banner {
  display:flex; align-items:center; gap:var(--space-3);
  padding:var(--space-4) var(--space-5);
  background:rgba(34,197,94,.08);
  border:1px solid rgba(34,197,94,.2);
  border-radius:var(--radius-lg);
  color:var(--success);
  font-size:var(--text-sm);
  font-weight:var(--font-weight-semi);
}

/* Book spine */
.book-spine {
  width:40px; height:52px;
  background:linear-gradient(135deg,var(--blue-500),var(--sky-400));
  border-radius:4px 6px 6px 4px;
  display:flex; align-items:center; justify-content:center;
  color:white; flex-shrink:0;
  box-shadow:inset -3px 0 0 rgba(0,0,0,.15);
}

/* Responsive */
@media (max-width: 900px) {
  .dashboard-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .dash-name { font-size:var(--text-2xl); }
  .dash-hero { padding:var(--space-6); }
  .stats-grid { grid-template-columns:repeat(2,1fr); }
  .quick-grid { grid-template-columns:repeat(3,1fr); }
}
