/* ============================================================
   GUIA DO VOCACIONADO — Public CSS v2.0
   Design: Academia Moderna · Soft Premium
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700;800&family=Lora:ital,wght@0,400;0,600;1,400&display=swap');

/* ─── TOKENS ─────────────────────────────────────────────── */
#gdv-app {
  --primary:        #1e2d5a;
  --primary-light:  #2a3f7e;
  --primary-glow:   rgba(30,45,90,.08);
  --accent:         #d4a017;
  --accent-light:   #fef3c7;
  --accent-hover:   #b8890e;
  --green:          #16a34a;
  --green-bg:       #dcfce7;
  --red:            #dc2626;
  --red-bg:         #fee2e2;
  --bg:             #f4f4f0;
  --surface:        #ffffff;
  --surface2:       #f9f8f6;
  --surface3:       #f0ede8;
  --border:         #e8e4de;
  --border-strong:  #d0cbc3;
  --text:           #1a1a2e;
  --text-2:         #4a4a6a;
  --text-muted:     #7a7a9a;
  --sidebar-w:      230px;
  --radius-sm:      8px;
  --radius:         14px;
  --radius-lg:      20px;
  --radius-xl:      28px;
  --shadow-sm:      0 2px 8px rgba(30,45,90,.06);
  --shadow:         0 4px 20px rgba(30,45,90,.09);
  --shadow-lg:      0 12px 40px rgba(30,45,90,.13);

  font-family: 'Sora', sans-serif;
  font-size:   15px;
  color:       var(--text);
  background:  var(--bg);
  position:    fixed;
  inset:       0;
  z-index:     9000;
  overflow:    hidden;
  display:     flex;
  box-sizing:  border-box;
}
#gdv-app, #gdv-app * { box-sizing: border-box; }

/* ─── DARK MODE ──────────────────────────────────────────── */
#gdv-app.gdv-dark {
  --bg:          #111827;
  --surface:     #1f2937;
  --surface2:    #1a2332;
  --surface3:    #243044;
  --border:      #2d3748;
  --border-strong:#374151;
  --text:        #f1f5f9;
  --text-2:      #cbd5e1;
  --text-muted:  #64748b;
  --primary-glow:rgba(255,255,255,.04);
  --shadow-sm:   0 2px 8px rgba(0,0,0,.3);
  --shadow:      0 4px 20px rgba(0,0,0,.4);
  --shadow-lg:   0 12px 40px rgba(0,0,0,.5);
}

/* ─── SIDEBAR ─────────────────────────────────────────────── */
.gdv-sidebar {
  width:         var(--sidebar-w);
  min-width:     var(--sidebar-w);
  background:    linear-gradient(180deg, #1a2744 0%, #1e3566 50%, #1a2e5c 100%);
  height:        100vh;
  display:       flex;
  flex-direction:column;
  flex-shrink:   0;
  overflow:      hidden;
  z-index:       100;
  transition:    transform .3s cubic-bezier(.4,0,.2,1);
}

.gdv-sidebar-logo {
  padding:       22px 18px 18px;
  display:       flex;
  align-items:   center;
  gap:           10px;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.gdv-logo-icon { font-size: 1.7rem; }
.gdv-logo-text {
  color:         #fff;
  font-size:     .82rem;
  font-weight:   700;
  line-height:   1.35;
  letter-spacing: .2px;
}

.gdv-nav { list-style:none; flex:1; padding:14px 12px; margin:0; overflow-y:auto; overflow-x:hidden; }
.gdv-nav li { margin-bottom: 3px; }
.gdv-nav-link {
  display:       flex;
  align-items:   center;
  gap:           10px;
  padding:       10px 14px;
  border-radius: var(--radius-sm);
  text-decoration:none;
  color:         rgba(255,255,255,.62);
  transition:    all .2s ease;
  font-weight:   500;
  font-size:     .85rem;
  cursor:        pointer;
}
.gdv-nav-link:hover {
  background:  rgba(255,255,255,.1);
  color:       rgba(255,255,255,.9);
}
.gdv-nav-link.active {
  background:  linear-gradient(135deg, var(--accent) 0%, #e8c840 100%);
  color:       #1a1a2e;
  font-weight: 700;
  box-shadow:  0 4px 14px rgba(212,160,23,.35);
}
.gdv-nav-icon  { font-size: .95rem; width: 20px; text-align:center; flex-shrink:0; }
.gdv-nav-label { white-space:nowrap; }

.gdv-sidebar-footer {
  padding:     14px 12px;
  display:     flex;
  gap:         8px;
  border-top:  1px solid rgba(255,255,255,.15);
  flex-shrink: 0;
  background:  #1a2744;
}
.gdv-dark-toggle, .gdv-dark-toggle-mobile {
  background:  rgba(255,255,255,.1);
  border:      none;
  border-radius:var(--radius-sm);
  width:       34px; height:34px;
  cursor:      pointer;
  display:     flex; align-items:center; justify-content:center;
  font-size:   1rem;
  transition:  background .2s;
  color:       #fff;
}
.gdv-dark-toggle:hover { background: rgba(255,255,255,.2); }
.gdv-logout-btn {
  background:  rgba(255,255,255,.1);
  border-radius:var(--radius-sm);
  width:       34px; height:34px;
  display:     flex; align-items:center; justify-content:center;
  text-decoration:none;
  font-size:   1rem;
  transition:  background .2s;
}
.gdv-logout-btn:hover { background: rgba(220,38,38,.45); }

/* ─── MOBILE HEADER ──────────────────────────────────────── */
.gdv-mobile-header {
  display:     none;
  position:    absolute;
  top:0; left:0; right:0;
  z-index:     200;
  background:  #1a2744;
  color:       #fff;
  padding:     0 16px;
  height:      54px;
  align-items: center;
  justify-content:space-between;
  gap:         12px;
}
.gdv-hamburger {
  background:none; border:none; color:#fff;
  font-size:1.3rem; cursor:pointer; padding:0;
}
.gdv-mobile-logo { font-weight:700; font-size:.88rem; flex:1; text-align:center; color:#fff; }

/* ─── MAIN AREA ───────────────────────────────────────────── */
.gdv-main {
  flex:           1;
  min-width:      0;
  height:         100vh;
  overflow-y:     auto;
  background:     var(--bg);
  padding:        32px 40px;
  scrollbar-width:thin;
  scrollbar-color:var(--border) transparent;
}
.gdv-main::-webkit-scrollbar { width:5px; }
.gdv-main::-webkit-scrollbar-thumb { background:var(--border); border-radius:10px; }

/* ─── VIEWS ───────────────────────────────────────────────── */
.gdv-view { display:none; max-width:900px; margin:0 auto; }
.gdv-view.active { display:block; animation:gdvFadeUp .35s cubic-bezier(.4,0,.2,1); }
@keyframes gdvFadeUp {
  from { opacity:0; transform:translateY(14px); }
  to   { opacity:1; transform:translateY(0); }
}
.gdv-view-header {
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:12px; margin-bottom:24px;
}
.gdv-view-header h2 {
  font-size:1.25rem; font-weight:800; color:var(--text); margin:0;
  letter-spacing:-.3px;
}

/* ─── WELCOME ─────────────────────────────────────────────── */
.gdv-welcome-header {
  background:    var(--surface);
  border-radius: var(--radius-lg);
  padding:       24px 28px;
  display:       flex;
  justify-content:space-between;
  align-items:   center;
  gap:           20px;
  margin-bottom: 16px;
  box-shadow:    var(--shadow-sm);
  border:        1px solid var(--border);
  flex-wrap:     wrap;
}
.gdv-welcome-text h1 {
  font-family:  'Sora', sans-serif;
  font-size:    1.4rem;
  font-weight:  800;
  color:        var(--text);
  line-height:  1.3;
  margin:       0 0 6px;
  letter-spacing:-.4px;
}
.gdv-accent { color:var(--accent); }
.gdv-welcome-sub {
  color:      var(--text-2);
  font-size:  .88rem;
  margin:     0 0 4px;
}
.gdv-streak-info {
  color:      var(--text-muted);
  font-size:  .82rem;
  margin:     0;
}
.gdv-streak-info strong { color:var(--text-2); }

.gdv-level-badge {
  background:    linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%);
  border-radius: var(--radius);
  padding:       14px 20px;
  display:       flex;
  align-items:   center;
  gap:           12px;
  flex-shrink:   0;
  min-width:     150px;
  box-shadow:    0 4px 16px rgba(30,45,90,.25);
}
.gdv-level-icon { font-size:1.8rem; }
.gdv-level-name { font-weight:700; color:#fff; font-size:.9rem; margin:0; }
.gdv-level-num  { font-size:.75rem; color:rgba(255,255,255,.65); margin-top:2px; }

/* ─── PROGRESS BAR ────────────────────────────────────────── */
.gdv-progress-wrap {
  background:    var(--surface);
  border-radius: var(--radius);
  padding:       14px 20px;
  margin-bottom: 20px;
  border:        1px solid var(--border);
  box-shadow:    var(--shadow-sm);
}
.gdv-progress-label {
  display:flex; justify-content:space-between;
  font-size:.8rem; font-weight:600; color:var(--text-muted);
  margin-bottom:8px;
}
.gdv-progress-pct { color:var(--primary); font-weight:700; }
.gdv-progress-bar {
  height:10px; background:var(--surface3);
  border-radius:99px; overflow:hidden;
}
.gdv-progress-fill {
  height:100%;
  background:linear-gradient(90deg, var(--primary), var(--accent));
  border-radius:99px; transition:width .8s cubic-bezier(.4,0,.2,1);
}

/* ─── SECTION LABEL ───────────────────────────────────────── */
.gdv-section-label {
  font-weight:700; color:var(--text-muted);
  text-transform:uppercase; font-size:.7rem;
  letter-spacing:1.2px; margin-bottom:12px;
}

/* ─── DISCIPLINE BANNERS ──────────────────────────────────── */
.gdv-discipline-banners { display:flex; flex-direction:column; gap:8px; }

.gdv-disc-banner {
  background:    var(--surface);
  border:        1px solid var(--border);
  border-radius: var(--radius);
  overflow:      hidden;
  transition:    box-shadow .2s, transform .15s;
  border-left:   4px solid var(--disc-color, var(--primary));
}
.gdv-disc-banner:hover { box-shadow:var(--shadow); transform:translateY(-1px); }
.gdv-disc-banner.gdv-completed { border-left-color:var(--green); }
.gdv-disc-banner.gdv-completed .gdv-db-header { background:rgba(220,252,231,.4); }

.gdv-db-header {
  display:       flex;
  align-items:   center;
  gap:           14px;
  padding:       14px 18px;
  cursor:        pointer;
  user-select:   none;
  transition:    background .15s;
}
.gdv-db-header:hover { background:var(--surface2); }
.gdv-db-icon  { font-size:1.5rem; flex-shrink:0; }
.gdv-db-info  { flex:1; min-width:0; }
.gdv-db-name  { font-weight:700; font-size:.92rem; color:var(--text); }
.gdv-db-range { font-size:.75rem; color:var(--text-muted); margin-top:2px; }

.gdv-db-right { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.gdv-done-chip {
  background:var(--green-bg); color:var(--green);
  font-size:.72rem; font-weight:700;
  padding:4px 10px; border-radius:20px;
}
.gdv-done-label { cursor:pointer; display:flex; align-items:center; }
.gdv-done-label input { display:none; }
.gdv-check-pill {
  background:var(--surface2);
  border:2px solid var(--border);
  color:var(--text-muted);
  font-size:.75rem; font-weight:600;
  padding:5px 13px; border-radius:20px;
  transition:all .2s; white-space:nowrap;
  display:inline-block; cursor:pointer;
}
.gdv-done-label input:checked + .gdv-check-pill {
  background:var(--green-bg); border-color:#86efac; color:var(--green);
}
.gdv-panel-arrow { color:var(--text-muted); font-size:.8rem; }

/* ─── ARTICLES PANEL ──────────────────────────────────────── */
.gdv-articles-panel {
  padding:    0 18px 18px;
  border-top: 1px solid var(--border);
}
.gdv-chapter-title {
  font-weight:700; color:var(--primary); font-size:.75rem;
  text-transform:uppercase; letter-spacing:.6px;
  padding:14px 0 8px; display:flex; align-items:center; gap:6px;
}
.gdv-section-title {
  font-weight:600; color:var(--text-muted); font-size:.78rem;
  padding:5px 0 4px 12px;
  border-left:2px solid var(--border); margin-bottom:6px;
}
.gdv-article-item {
  border:1px solid var(--border); border-radius:var(--radius-sm);
  margin-bottom:6px; overflow:hidden; transition:all .2s;
}
.gdv-article-item.gdv-art-read {
  border-color:#86efac; background:rgba(220,252,231,.2);
}
.gdv-art-header {
  display:flex; align-items:center; justify-content:space-between;
  padding:9px 14px;
  background:var(--surface2); border-bottom:1px solid var(--border);
}
.gdv-art-num {
  font-weight:700; font-size:.85rem;
  color:var(--primary); font-family:'Lora',serif;
}
.gdv-art-check-label { cursor:pointer; }
.gdv-art-check-label input { display:none; }
.gdv-art-check-btn { font-size:1rem; transition:all .2s; }
.gdv-art-body {
  padding:12px 14px;
  font-family:'Lora',serif;
  font-size:.85rem; line-height:1.8; color:var(--text);
}
.gdv-no-content-box {
  padding:20px; text-align:center;
  color:var(--text-muted); font-size:.85rem;
  background:var(--surface2); border-radius:var(--radius-sm); margin-top:10px;
}
.gdv-no-content-box a { color:var(--primary); font-weight:600; }

/* ─── NO PROGRAM ──────────────────────────────────────────── */
.gdv-no-program { text-align:center; padding:60px 20px; }
.gdv-no-program-icon { font-size:3.5rem; margin-bottom:14px; }
.gdv-no-program h2 { font-size:1.35rem; font-weight:800; color:var(--text); margin:0 0 8px; }
.gdv-no-program p  { color:var(--text-muted); margin:0 0 28px; font-size:.9rem; }

.gdv-program-cards {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:16px; max-width:720px; margin:0 auto;
}
.gdv-program-card {
  background:var(--surface); border:2px solid var(--border);
  border-radius:var(--radius-lg); padding:24px 20px; text-align:center;
  transition:all .25s; cursor:pointer;
}
.gdv-program-card:hover {
  border-color:var(--primary); transform:translateY(-3px); box-shadow:var(--shadow-lg);
}
.gdv-pc-duration { font-size:2.6rem; font-weight:800; color:var(--primary); line-height:1; }
.gdv-pc-duration small { font-size:.88rem; font-weight:500; color:var(--text-muted); display:block; }
.gdv-pc-name  { font-weight:700; font-size:.9rem; margin:8px 0 5px; color:var(--text); }
.gdv-pc-desc  { font-size:.8rem; color:var(--text-muted); margin-bottom:12px; }
.gdv-start-date { margin:8px 0; width:100%; }
.gdv-btn-choose-program {
  background:linear-gradient(135deg,var(--primary),var(--primary-light));
  color:#fff; border:none; border-radius:var(--radius-sm);
  padding:10px 18px; width:100%;
  font-weight:700; font-size:.85rem; cursor:pointer;
  transition:all .2s; margin-top:6px; font-family:inherit;
  box-shadow:0 4px 14px rgba(30,45,90,.25);
}
.gdv-btn-choose-program:hover { opacity:.9; transform:translateY(-1px); }

/* ─── CRONOGRAMA ──────────────────────────────────────────── */
.gdv-program-info-bar {
  background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius); padding:12px 18px;
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  margin-bottom:20px; font-size:.85rem; box-shadow:var(--shadow-sm);
}
.gdv-week-grid {
  display:grid; grid-template-columns:repeat(7,1fr);
  gap:8px; overflow-x:auto; padding-bottom:4px;
}
.gdv-day-col { min-width:110px; }
.gdv-day-header {
  text-align:center; font-weight:700; font-size:.68rem;
  text-transform:uppercase; letter-spacing:.5px;
  color:var(--text-muted); padding:8px;
  background:var(--surface);
  border-radius:var(--radius-sm) var(--radius-sm) 0 0;
  border:1px solid var(--border); border-bottom:none;
}
.gdv-today-col .gdv-day-header {
  background:linear-gradient(135deg,var(--primary),var(--primary-light));
  color:#fff; border-color:var(--primary);
}
.gdv-sched-item {
  background:var(--surface); border:1px solid var(--border);
  padding:8px 9px; font-size:.72rem; border-top:none;
}
.gdv-sched-item:last-child { border-radius:0 0 var(--radius-sm) var(--radius-sm); }
.gdv-sched-name {
  display:block; font-weight:600; margin:2px 0;
  color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.gdv-sched-row { display:flex; gap:4px; align-items:center; margin-top:4px; }
.gdv-sched-time {
  width:52px; font-size:.72rem; padding:3px 6px;
  border:1px solid var(--border); border-radius:6px;
  background:var(--surface2); color:var(--text); font-family:inherit;
}
.gdv-sched-toggle-label { cursor:pointer; }
.gdv-sched-toggle-label input { display:none; }
.gdv-sched-chk {
  display:inline-flex; width:20px; height:20px;
  border:2px solid var(--border); border-radius:6px;
  align-items:center; justify-content:center;
  font-size:.7rem; color:transparent; transition:all .2s;
}
.gdv-sched-toggle-label input:checked + .gdv-sched-chk {
  background:var(--primary); border-color:var(--primary); color:#fff;
}
.gdv-sched-footer { display:flex; align-items:center; gap:16px; margin-top:16px; flex-wrap:wrap; }

/* ─── QUESTÕES ────────────────────────────────────────────── */
.gdv-q-controls { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.gdv-q-placeholder {
  text-align:center; padding:70px 20px; color:var(--text-muted);
  background:var(--surface); border-radius:var(--radius-lg);
  border:1px solid var(--border);
}
.gdv-q-ph-icon { font-size:3rem; margin-bottom:12px; }
.gdv-question-card {
  background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-lg); padding:28px;
  box-shadow:var(--shadow);
}
.gdv-q-meta { display:flex; gap:8px; margin-bottom:16px; flex-wrap:wrap; }
.gdv-q-tag {
  background:var(--surface2); border:1px solid var(--border);
  border-radius:20px; padding:3px 11px;
  font-size:.72rem; font-weight:600; color:var(--text-muted);
}
.gdv-q-tag-tf {
  background:var(--accent-light); border-color:#fcd34d; color:#92400e;
}
.gdv-q-text {
  font-family:'Lora',serif;
  font-size:.95rem; line-height:1.8;
  color:var(--text); margin-bottom:22px;
}
.gdv-q-options { display:flex; flex-direction:column; gap:10px; }
.gdv-q-option {
  display:flex; align-items:flex-start; gap:14px;
  padding:13px 16px;
  border:2px solid var(--border); border-radius:var(--radius);
  cursor:pointer; transition:all .2s;
  background:var(--surface); font-size:.88rem;
}
.gdv-q-option:hover:not(.answered) {
  border-color:var(--primary); background:var(--primary-glow);
}
.gdv-q-option.correct { border-color:var(--green); background:var(--green-bg); }
.gdv-q-option.wrong   { border-color:var(--red);   background:var(--red-bg); }
.gdv-q-letter {
  width:28px; height:28px; border-radius:50%;
  background:var(--surface2); border:2px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:.75rem; flex-shrink:0; transition:all .2s;
}
.gdv-q-option.correct .gdv-q-letter { background:var(--green); color:#fff; border-color:var(--green); }
.gdv-q-option.wrong   .gdv-q-letter { background:var(--red);   color:#fff; border-color:var(--red); }
.gdv-q-opts-tf { flex-direction:row; gap:14px; }
.gdv-q-opts-tf .gdv-q-option { flex:1; justify-content:center; text-align:center; }
.gdv-q-opts-tf .gdv-q-option .gdv-q-letter { display:none; }
.gdv-q-explanation {
  margin-top:18px; padding:16px;
  background:var(--surface2); border-radius:var(--radius);
  border-left:4px solid var(--accent);
  font-size:.85rem; line-height:1.65;
}
.gdv-q-actions { display:flex; gap:10px; margin-top:18px; }

/* ─── POMODORO / TIMER ────────────────────────────────────── */
.gdv-pomodoro-wrap { display:flex; justify-content:center; padding:8px 0; }
.gdv-pomodoro-card {
  background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-xl); padding:28px 32px;
  width:100%; max-width:480px;
  box-shadow:var(--shadow-lg);
}

/* TABS */
.gdv-pom-tabs {
  display:flex; gap:0;
  background:var(--surface2); border-radius:var(--radius);
  padding:4px; margin-bottom:22px; border:1px solid var(--border);
}
.gdv-pom-tab {
  flex:1; padding:9px 6px;
  border:none; border-radius:var(--radius-sm);
  background:transparent; color:var(--text-muted);
  font-size:.77rem; font-weight:600; font-family:inherit;
  cursor:pointer; transition:all .2s;
}
.gdv-pom-tab:hover { color:var(--text); }
.gdv-pom-tab.active {
  background:var(--surface); color:var(--primary);
  box-shadow:0 1px 6px rgba(30,45,90,.12);
  font-weight:700;
}

/* PANELS — visibility controlled by JS via style.display */
.gdv-pom-panel { margin-bottom:20px; }

/* PRESETS */
.gdv-pom-presets { display:flex; gap:8px; justify-content:center; flex-wrap:wrap; }
.gdv-preset-btn {
  padding:8px 18px; border:2px solid var(--border);
  border-radius:20px; background:var(--surface2); color:var(--text-muted);
  font-size:.82rem; font-weight:600; font-family:inherit;
  cursor:pointer; transition:all .2s;
}
.gdv-preset-btn:hover { border-color:var(--primary); color:var(--text); }
.gdv-preset-btn.active {
  background:var(--primary); border-color:var(--primary); color:#fff;
  box-shadow:0 4px 12px rgba(30,45,90,.25);
}

/* CUSTOM TIME INPUTS */
.gdv-time-inputs {
  display:flex; align-items:center; justify-content:center;
  gap:6px; margin-bottom:16px;
}
.gdv-time-input-group { display:flex; flex-direction:column; align-items:center; gap:5px; }
.gdv-time-input-group label {
  font-size:.68rem; font-weight:700; color:var(--text-muted);
  text-transform:uppercase; letter-spacing:.8px;
}
.gdv-time-field {
  width:76px; text-align:center;
  font-size:1.7rem; font-weight:700;
  padding:8px 4px;
  border:2px solid var(--border); border-radius:var(--radius);
  background:var(--surface2); color:var(--text);
  font-family:'Sora',sans-serif;
  -moz-appearance:textfield;
  transition:border-color .2s;
}
.gdv-time-field::-webkit-inner-spin-button,
.gdv-time-field::-webkit-outer-spin-button { -webkit-appearance:none; }
.gdv-time-field:focus { outline:none; border-color:var(--primary); }
.gdv-time-sep {
  font-size:1.8rem; font-weight:800; color:var(--text-muted);
  margin-top:18px; line-height:1;
}

/* DIRECTION TOGGLE */
.gdv-dir-toggle { display:flex; gap:8px; justify-content:center; }
.gdv-dir-btn {
  padding:8px 16px; border:2px solid var(--border);
  border-radius:var(--radius-sm); background:var(--surface2);
  color:var(--text-muted); font-size:.8rem; font-weight:600;
  font-family:inherit; cursor:pointer; transition:all .2s;
}
.gdv-dir-btn.active {
  background:var(--primary); border-color:var(--primary); color:#fff;
}

/* FREE MODE */
.gdv-free-info {
  display:flex; align-items:center; gap:14px;
  padding:16px; background:var(--surface2);
  border-radius:var(--radius); border-left:4px solid var(--accent);
}
.gdv-free-icon { font-size:2rem; flex-shrink:0; }
.gdv-free-info p { font-size:.83rem; color:var(--text-2); margin:0; line-height:1.55; }

/* DISCIPLINE ROW */
.gdv-pom-disc-row {
  display:flex; align-items:center; gap:10px; justify-content:center;
  margin-bottom:20px; font-size:.82rem; font-weight:600; color:var(--text-muted);
}

/* RING */
.gdv-timer-ring-wrap {
  position:relative; width:200px; height:200px; margin:0 auto 22px;
}
.gdv-timer-svg { width:100%; height:100%; transform:rotate(-90deg); }
.gdv-ring-bg   { fill:none; stroke:var(--surface3); stroke-width:12; }
.gdv-ring-prog {
  fill:none; stroke:var(--accent); stroke-width:12;
  stroke-linecap:round; stroke-dasharray:597; stroke-dashoffset:0;
  transition:stroke-dashoffset .5s linear;
  filter:drop-shadow(0 0 8px rgba(212,160,23,.4));
}
.gdv-timer-inner {
  position:absolute; inset:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
}
.gdv-timer-digits {
  font-size:2.8rem; font-weight:800; color:var(--text);
  letter-spacing:-2px; font-family:'Sora',sans-serif;
}
.gdv-timer-mode-label { font-size:.8rem; color:var(--text-muted); font-weight:600; margin-top:2px; }

/* CONTROLS */
.gdv-pom-btns { display:flex; justify-content:center; gap:16px; margin-bottom:24px; }
.gdv-pom-ctrl {
  width:52px; height:52px; border-radius:50%;
  border:2px solid var(--border); background:var(--surface2);
  font-size:1.1rem; cursor:pointer; transition:all .2s;
  display:flex; align-items:center; justify-content:center;
  color:var(--text); box-shadow:var(--shadow-sm);
}
.gdv-pom-ctrl:hover:not(:disabled) {
  background:var(--primary); border-color:var(--primary); color:#fff;
  box-shadow:0 4px 16px rgba(30,45,90,.3); transform:translateY(-1px);
}
.gdv-pom-ctrl:disabled { opacity:.3; cursor:default; }

/* STATS */
.gdv-pom-stats-row {
  display:flex; justify-content:center; gap:0;
  border-top:1px solid var(--border);
  padding-top:16px;
}
.gdv-pom-stat-item {
  flex:1; text-align:center;
  border-right:1px solid var(--border);
  padding:0 12px;
}
.gdv-pom-stat-item:last-child { border-right:none; }
.gdv-pom-stat-item strong {
  display:block; font-size:1.5rem; font-weight:800; color:var(--primary); font-family:'Sora',sans-serif;
}
.gdv-pom-stat-item small { font-size:.7rem; color:var(--text-muted); font-weight:500; }

/* ─── DASHBOARD ───────────────────────────────────────────── */
.gdv-dash-grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
  gap:12px; margin-bottom:20px;
}
.gdv-dash-card {
  background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius); padding:18px 14px;
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:6px;
  box-shadow:var(--shadow-sm); transition:all .2s;
}
.gdv-dash-card:hover { box-shadow:var(--shadow); transform:translateY(-2px); }
.gdv-dash-icon  { font-size:1.7rem; }
.gdv-dash-num   { font-size:1.8rem; font-weight:800; color:var(--primary); font-family:'Sora',sans-serif; }
.gdv-dash-label { font-size:.72rem; color:var(--text-muted); font-weight:600; line-height:1.3; }
.gdv-dash-section { margin-bottom:20px; }
.gdv-dash-section h3 {
  font-size:.92rem; font-weight:700; color:var(--text);
  margin:0 0 12px; padding-bottom:8px;
  border-bottom:2px solid var(--border);
}
.gdv-disc-bars { display:flex; flex-direction:column; gap:10px; }
.gdv-disc-bar-item {
  display:grid; grid-template-columns:120px 1fr 46px;
  gap:10px; align-items:center; font-size:.82rem;
}
.gdv-disc-bar-track {
  height:9px; background:var(--surface3); border-radius:99px; overflow:hidden;
}
.gdv-disc-bar-fill {
  height:100%;
  background:linear-gradient(90deg, var(--primary), var(--accent));
  border-radius:99px; transition:width .8s ease;
}
.gdv-disc-bar-pct { font-weight:700; font-size:.75rem; text-align:right; color:var(--text-muted); }
.gdv-badges-row { display:flex; flex-wrap:wrap; gap:8px; }
.gdv-badge-pill {
  background:var(--accent-light); border:1px solid #fcd34d;
  border-radius:20px; padding:6px 14px; font-size:.78rem;
  display:flex; align-items:center; gap:7px; color:#92400e; font-weight:600;
}
.gdv-history-grid { display:flex; flex-wrap:wrap; gap:4px; }
.gdv-hist-cell {
  width:16px; height:16px; border-radius:4px;
  background:var(--surface3); border:1px solid var(--border);
}
.gdv-hist-cell.has-data { background:var(--primary); border-color:var(--primary); }

/* ─── SHARED COMPONENTS ───────────────────────────────────── */
.gdv-btn {
  display:inline-flex; align-items:center; gap:7px;
  padding:9px 18px; border-radius:var(--radius-sm);
  border:2px solid var(--border); background:var(--surface);
  cursor:pointer; font-size:.83rem; font-weight:600;
  font-family:inherit; transition:all .2s;
  text-decoration:none; color:var(--text);
}
.gdv-btn:hover { background:var(--surface2); box-shadow:var(--shadow-sm); }
.gdv-btn-primary {
  background:linear-gradient(135deg,var(--primary),var(--primary-light));
  color:#fff; border-color:var(--primary);
  box-shadow:0 4px 14px rgba(30,45,90,.2);
}
.gdv-btn-primary:hover { opacity:.92; transform:translateY(-1px); box-shadow:0 6px 20px rgba(30,45,90,.3); }
.gdv-btn-sm { padding:6px 12px; font-size:.77rem; }

.gdv-select, .gdv-input {
  border:2px solid var(--border); border-radius:var(--radius-sm);
  padding:9px 13px; font-size:.85rem; font-family:inherit;
  transition:border-color .2s; background:var(--surface); color:var(--text);
}
.gdv-select:focus, .gdv-input:focus { outline:none; border-color:var(--primary); }
.gdv-textarea { width:100%; resize:vertical; min-height:80px; }
.gdv-loading {
  text-align:center; padding:48px; color:var(--text-muted);
  font-size:.9rem; letter-spacing:.3px;
}
.gdv-info-box {
  background:var(--surface); border:1px solid var(--border);
  border-left:4px solid var(--accent); border-radius:var(--radius);
  padding:14px 18px; color:var(--text-2); font-size:.85rem;
  box-shadow:var(--shadow-sm);
}

/* ─── MODAL ───────────────────────────────────────────────── */
.gdv-modal-overlay {
  position:fixed; inset:0;
  background:rgba(10,10,30,.6); z-index:10000;
  backdrop-filter:blur(6px);
}
.gdv-modal {
  position:fixed; inset:0; z-index:10001;
  display:flex; align-items:center; justify-content:center; padding:20px;
}
.gdv-modal-inner {
  background:var(--surface); border-radius:var(--radius-xl); padding:32px;
  max-width:700px; width:100%; max-height:88vh; overflow-y:auto;
  box-shadow:0 28px 60px rgba(0,0,0,.25);
}
.gdv-modal-inner h3 { font-size:1.15rem; font-weight:800; margin:0 0 18px; color:var(--text); }

/* ─── RESPONSIVE ──────────────────────────────────────────── */
@media (max-width: 900px) {
  #gdv-app { flex-direction:column; overflow:auto; }
  .gdv-sidebar {
    position:fixed; top:0; left:0; bottom:0;
    transform:translateX(-100%); z-index:10100;
    box-shadow:6px 0 24px rgba(0,0,0,.25);
  }
  .gdv-sidebar.open { transform:translateX(0); }
  .gdv-mobile-header { display:flex; position:fixed; z-index:10050; }
  .gdv-main { width:100%; padding:70px 18px 28px; height:100vh; overflow-y:auto; }
  .gdv-week-grid { grid-template-columns:repeat(7,115px); }
  .gdv-welcome-header { padding:18px; }
  .gdv-welcome-text h1 { font-size:1.2rem; }
}
@media (max-width: 540px) {
  .gdv-main { padding:65px 12px 20px; }
  .gdv-welcome-header { flex-direction:column; }
  .gdv-level-badge { min-width:unset; width:100%; }
  .gdv-dash-grid { grid-template-columns:repeat(2,1fr); }
  .gdv-program-cards { grid-template-columns:1fr; max-width:320px; }
  .gdv-disc-bar-item { grid-template-columns:80px 1fr 38px; }
  .gdv-q-opts-tf { flex-direction:column; }
  .gdv-pom-stat-item strong { font-size:1.2rem; }
}
