/* ============================================================
   QuizAI – Dashboard Page Stylesheet  v1.0.0
   ============================================================ */

:root {
  --db-bg:        #07070E;
  --db-surface:   #111122;
  --db-surface-2: #181830;
  --db-border:    rgba(255,255,255,0.07);
  --db-border-2:  rgba(255,255,255,0.13);
  --db-accent:    #6C5CE7;
  --db-accent-2:  #A29BFE;
  --db-green:     #00CFA8;
  --db-red:       #FF6B6B;
  --db-orange:    #FDCB6E;
  --db-blue:      #74B9FF;
  --db-text-1:    #F2F2FF;
  --db-text-2:    #8888BB;
  --db-text-3:    #44445A;
  --db-grad:      linear-gradient(135deg, #6C5CE7 0%, #A29BFE 60%, #74B9FF 100%);
  --font-main:    'Sora', sans-serif;
  --font-hindi:   'Noto Sans Devanagari', sans-serif;
  --font-mono:    'JetBrains Mono', monospace;
  --rad-sm: 6px; --rad-md: 12px; --rad-lg: 18px; --rad-xl: 24px; --rad-full: 9999px;
  --ease-out: cubic-bezier(0.16,1,0.3,1);
  --t: 0.25s var(--ease-out);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; scroll-behavior: smooth; }
body { font-family: var(--font-main); background: var(--db-bg); color: var(--db-text-1); min-height: 100vh; overflow-x: hidden; -webkit-font-smoothing: antialiased; }
button { cursor: pointer; font-family: inherit; border: none; background: none; }
a { text-decoration: none; color: inherit; }

.db-page { min-height: 100vh; display: flex; flex-direction: column; position: relative; }

/* BACKGROUND */
.db-bg { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.db-grid {
  position: absolute; inset: 0;
  background-image: linear-gradient(rgba(108,92,231,0.04) 1px, transparent 1px), linear-gradient(90deg, rgba(108,92,231,0.04) 1px, transparent 1px);
  background-size: 54px 54px;
  mask-image: radial-gradient(ellipse 85% 85% at 50% 40%, black, transparent);
}
.db-orb { position: absolute; border-radius: 50%; filter: blur(80px); will-change: transform; }
.db-orb-1 { width: 500px; height: 500px; background: radial-gradient(circle, rgba(108,92,231,0.15) 0%, transparent 70%); top: -150px; left: -150px; animation: dbOrb1 14s ease-in-out infinite; }
.db-orb-2 { width: 400px; height: 400px; background: radial-gradient(circle, rgba(116,185,255,0.08) 0%, transparent 70%); bottom: -100px; right: -100px; animation: dbOrb2 18s ease-in-out infinite; }
@keyframes dbOrb1 { 0%,100%{transform:translate(0,0)} 50%{transform:translate(40px,30px)} }
@keyframes dbOrb2 { 0%,100%{transform:translate(0,0)} 50%{transform:translate(-30px,-40px)} }

/* TOP NAV */
.db-topnav { position: relative; z-index: 10; display: flex; align-items: center; justify-content: space-between; padding: 0 40px; height: 64px; border-bottom: 1px solid var(--db-border); background: rgba(7,7,14,0.7); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
.db-logo { display: flex; align-items: center; gap: 10px; }
.db-logo-mark { width: 32px; height: 32px; border-radius: 8px; background: var(--db-grad); position: relative; flex-shrink: 0; }
.db-logo-mark::after { content: ''; position: absolute; inset: 5px; border-radius: 4px; background: var(--db-bg); }
.db-logo-text { font-size: 18px; font-weight: 800; letter-spacing: -0.03em; background: var(--db-grad); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.db-nav-right { display: flex; align-items: center; gap: 12px; }
.db-nav-btn-primary { display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: #fff; background: var(--db-accent); padding: 7px 16px; border-radius: var(--rad-md); border: 1px solid rgba(255,255,255,0.1); transition: all var(--t); }
.db-nav-btn-primary:hover { background: #7B6CF0; transform: translateY(-1px); }
.db-nav-link { display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; color: var(--db-text-2); padding: 7px 14px; border-radius: var(--rad-md); border: 1px solid var(--db-border); background: rgba(255,255,255,0.03); transition: all var(--t); }
.db-nav-link:hover { color: var(--db-text-1); background: rgba(255,255,255,0.06); }

/* MAIN */
.db-main { position: relative; z-index: 1; flex: 1; max-width: 1100px; width: 100%; margin: 0 auto; padding: 32px 24px 60px; }

/* LOADING */
.db-loading { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; min-height: 400px; text-align: center; }
.db-loading[hidden] { display: none; }
.db-spinner { width: 44px; height: 44px; border: 3px solid rgba(108,92,231,0.2); border-top-color: var(--db-accent); border-radius: 50%; animation: spin 0.8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.db-loading p { font-size: 14px; color: var(--db-text-2); font-family: var(--font-hindi); }

/* CONTENT */
.db-content { display: flex; flex-direction: column; gap: 24px; animation: fadeIn 0.4s var(--ease-out); }
.db-content[hidden] { display: none; }
@keyframes fadeIn { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }

/* HEADER */
.db-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; }
.db-welcome { font-size: clamp(22px, 3vw, 30px); font-weight: 800; letter-spacing: -0.02em; color: var(--db-text-1); font-family: var(--font-hindi); }
.db-welcome-sub { font-size: 13px; color: var(--db-text-3); margin-top: 4px; font-family: var(--font-mono); }
.db-start-quiz-btn { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: #fff; background: linear-gradient(135deg, var(--db-accent), #4834D4); padding: 11px 22px; border-radius: var(--rad-md); border: 1px solid rgba(255,255,255,0.1); transition: all var(--t); }
.db-start-quiz-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(108,92,231,0.45); }

/* STATS GRID */
.db-stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.db-stat-card { background: var(--db-surface); border: 1px solid var(--db-border); border-radius: var(--rad-xl); padding: 20px; display: flex; align-items: center; gap: 16px; transition: all var(--t); }
.db-stat-card:hover { border-color: var(--db-border-2); transform: translateY(-2px); box-shadow: 0 8px 32px rgba(0,0,0,0.3); }
.db-stat-icon { width: 44px; height: 44px; border-radius: var(--rad-md); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.db-stat-icon-purple { background: rgba(108,92,231,0.12); color: var(--db-accent-2); border: 1px solid rgba(108,92,231,0.2); }
.db-stat-icon-blue   { background: rgba(116,185,255,0.1);  color: var(--db-blue);     border: 1px solid rgba(116,185,255,0.2); }
.db-stat-icon-green  { background: rgba(0,207,168,0.1);    color: var(--db-green);    border: 1px solid rgba(0,207,168,0.2); }
.db-stat-icon-orange { background: rgba(253,203,110,0.1);  color: var(--db-orange);   border: 1px solid rgba(253,203,110,0.2); }
.db-stat-info { display: flex; flex-direction: column; gap: 3px; }
.db-stat-num   { font-size: 26px; font-weight: 800; color: var(--db-text-1); font-family: var(--font-mono); line-height: 1; }
.db-stat-label { font-size: 11px; color: var(--db-text-3); text-transform: uppercase; letter-spacing: 0.05em; }

/* TWO COLUMN */
.db-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

/* CARD */
.db-card { background: var(--db-surface); border: 1px solid var(--db-border); border-radius: var(--rad-xl); padding: 20px 24px; }
.db-card-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.db-card-title { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: var(--db-text-1); }
.db-card-sub { font-size: 11px; color: var(--db-text-3); }

/* ATTEMPTS LIST */
.db-attempt-item { display: flex; align-items: center; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--db-border); }
.db-attempt-item:last-child { border-bottom: none; }
.db-attempt-icon { width: 38px; height: 38px; border-radius: var(--rad-md); background: rgba(108,92,231,0.1); border: 1px solid rgba(108,92,231,0.2); display: flex; align-items: center; justify-content: center; color: var(--db-accent-2); flex-shrink: 0; }
.db-attempt-info { flex: 1; }
.db-attempt-title { font-size: 13px; font-weight: 600; color: var(--db-text-1); }
.db-attempt-meta  { font-size: 11px; color: var(--db-text-3); font-family: var(--font-mono); margin-top: 2px; }
.db-attempt-score { font-size: 18px; font-weight: 800; font-family: var(--font-mono); }
.db-attempt-score.good { color: var(--db-green); }
.db-attempt-score.avg  { color: var(--db-orange); }
.db-attempt-score.bad  { color: var(--db-red); }

/* WEAK LIST */
.db-weak-item { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--db-border); }
.db-weak-item:last-child { border-bottom: none; }
.db-weak-topic { flex: 1; font-size: 13px; font-weight: 600; color: var(--db-text-1); font-family: var(--font-hindi); }
.db-weak-bar-wrap { width: 100px; height: 6px; background: rgba(255,255,255,0.06); border-radius: var(--rad-full); overflow: hidden; }
.db-weak-bar { height: 100%; background: var(--db-red); border-radius: var(--rad-full); }
.db-weak-pct { font-size: 11px; font-weight: 700; color: var(--db-red); font-family: var(--font-mono); min-width: 36px; text-align: right; }

/* SUGGESTIONS */
.db-suggestions { }
.db-suggestions[hidden] { display: none; }
.db-suggestions-list { display: flex; flex-direction: column; gap: 10px; }
.db-suggestion-item { display: flex; align-items: flex-start; gap: 12px; padding: 12px 16px; background: rgba(108,92,231,0.05); border: 1px solid rgba(108,92,231,0.15); border-radius: var(--rad-md); }
.db-sug-icon { font-size: 18px; flex-shrink: 0; margin-top: 1px; }
.db-sug-text { font-size: 13px; color: var(--db-text-2); font-family: var(--font-hindi); line-height: 1.6; }

/* EMPTY STATE */
.db-empty { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 32px 16px; text-align: center; }
.db-empty span { font-size: 13px; color: var(--db-text-3); }
.db-empty a { font-size: 13px; font-weight: 600; color: var(--db-accent-2); transition: color var(--t); }
.db-empty a:hover { color: #fff; }
.db-empty[hidden] { display: none; }

/* NOT LOGGED IN */
.db-not-logged { display: flex; flex-direction: column; align-items: center; gap: 16px; min-height: 400px; justify-content: center; text-align: center; }
.db-not-logged[hidden] { display: none; }
.db-nl-icon { font-size: 56px; }
.db-not-logged h2 { font-size: 22px; font-weight: 700; color: var(--db-text-1); font-family: var(--font-hindi); }
.db-not-logged p  { font-size: 14px; color: var(--db-text-2); }
.db-nl-actions { display: flex; gap: 10px; margin-top: 8px; }

/* Reuse qz-btn styles for dashboard buttons */
.qz-btn { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 600; padding: 10px 20px; border-radius: var(--rad-md); transition: all var(--t); text-decoration: none; }
.qz-btn-primary { color: #fff; background: var(--db-accent); border: 1px solid rgba(255,255,255,0.1); }
.qz-btn-primary:hover { background: #7B6CF0; transform: translateY(-2px); }
.qz-btn-ghost { color: var(--db-text-2); border: 1px solid var(--db-border); background: rgba(255,255,255,0.03); }
.qz-btn-ghost:hover { color: var(--db-text-1); background: rgba(255,255,255,0.06); }

@media (max-width: 900px) {
  .db-stats-grid { grid-template-columns: repeat(2, 1fr); }
  .db-two-col    { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .db-topnav { padding: 0 16px; }
  .db-main   { padding: 20px 14px 48px; }
  .db-stats-grid { grid-template-columns: 1fr 1fr; }
  .db-header { flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } }
:focus-visible { outline: 2px solid var(--db-accent-2); outline-offset: 3px; border-radius: var(--rad-sm); }
