/* DSAT Booster — Modern theme v2. Barcha student sahifalarida (sidebar.php orqali) va auth sahifalarida ishlaydi. */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Outfit:wght@600;700;800&display=swap');

:root{
  --accent:#6366f1; --accent-2:#8b5cf6; --accent-glow:rgba(99,102,241,.28);
  --body-bg:#f5f6fc; --card-bg:#fff; --text-main:#0f172a; --text:#0f172a; --text-muted:#64748b; --muted:#64748b;
  --border:#e7e9f4; --topbar-bg:rgba(255,255,255,.82);
  --sb-bg:#11132b; --sb-bg2:#0b0d1f; --sb-text:#aab1c9; --sb-active-text:#fff; --sb-label:#5b6385;
  --m-radius:18px; --m-radius-sm:12px;
  --m-shadow:0 1px 2px rgba(15,23,42,.04),0 8px 24px -12px rgba(15,23,42,.14);
  --m-shadow-hover:0 2px 6px rgba(15,23,42,.05),0 18px 40px -14px rgba(99,102,241,.35);
  --m-ring:0 0 0 3px rgba(99,102,241,.28);
}
body{
  font-family:'Plus Jakarta Sans','Inter',system-ui,-apple-system,'Segoe UI',sans-serif!important;
  -webkit-font-smoothing:antialiased;letter-spacing:-.003em;
  background:radial-gradient(1100px 480px at 88% -8%,rgba(99,102,241,.11),transparent 60%),
             radial-gradient(900px 420px at -6% 8%,rgba(139,92,246,.08),transparent 55%),var(--body-bg)!important;
  background-attachment:fixed!important;
}
h1,h2,h3,h4,h5,.section-header{font-family:'Outfit','Plus Jakarta Sans',sans-serif;letter-spacing:-.02em;font-weight:800}
::selection{background:rgba(99,102,241,.22)}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#cdd2e6;border-radius:10px;border:2px solid transparent;background-clip:padding-box}

/* ===== YON MENYU ===== */
.dsat-sidebar{background:linear-gradient(180deg,var(--sb-bg) 0%,var(--sb-bg2) 100%)!important;border-right:0!important;box-shadow:8px 0 40px -18px rgba(8,10,30,.6)}
.dsat-sidebar-brand{padding-bottom:18px!important;border-bottom:1px solid rgba(255,255,255,.06)!important}
.brand-logo-circle{background:linear-gradient(135deg,var(--accent),var(--accent-2))!important;box-shadow:0 8px 22px -6px rgba(99,102,241,.7)!important}
.dsat-nav-label{font-size:10.5px!important;letter-spacing:.14em!important;text-transform:uppercase;color:var(--sb-label)!important;font-weight:700!important}
.dsat-sidebar-inner a{display:flex!important;align-items:center;gap:12px;margin:2px 10px!important;padding:9px 12px!important;border-radius:12px!important;border-left:0!important;
  color:var(--sb-text)!important;font-weight:600;font-size:13.5px;transition:background .18s,color .18s,transform .18s}
.dsat-sidebar-inner a i{width:32px;height:32px;flex:0 0 32px;display:inline-grid;place-items:center;border-radius:10px;background:rgba(255,255,255,.06);font-size:13px;transition:background .18s}
.dsat-sidebar-inner a:hover{background:rgba(255,255,255,.07)!important;color:#fff!important;transform:translateX(2px)}
.dsat-sidebar-inner a.active{background:linear-gradient(90deg,rgba(99,102,241,.32),rgba(139,92,246,.08))!important;color:#fff!important;box-shadow:inset 3px 0 0 #818cf8}
.dsat-sidebar-inner a.active i{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 6px 16px -4px rgba(99,102,241,.7)}
.dsat-sidebar-user{background:rgba(255,255,255,.05)!important;border:1px solid rgba(255,255,255,.07)!important;border-radius:14px!important}
.dsat-user-avatar{background:linear-gradient(135deg,var(--accent),var(--accent-2))!important}
.dsat-user-name{color:#fff!important;font-weight:700}

/* ===== KARTALAR ===== */
.stat-card,.widget-card,.task-card,.plan-section-card,.score-card,.card{
  background:var(--card-bg);border-radius:var(--m-radius)!important;border:1px solid var(--border)!important;box-shadow:var(--m-shadow)!important}
.stat-card,.widget-card,.task-card{transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s!important}
.stat-card:hover,.widget-card:hover,.task-card:hover{transform:translateY(-3px);box-shadow:var(--m-shadow-hover)!important}
.stat-card::before{content:'';position:absolute;inset:0 0 auto 0;height:3px;background:var(--stat-color,var(--accent));opacity:.9}
.plan-header,.adaptive-card-dark{border-radius:22px!important;box-shadow:0 20px 50px -22px rgba(79,70,229,.55)!important}

/* ===== TUGMA / FORMA ===== */
.btn{border-radius:var(--m-radius-sm);font-weight:700;transition:transform .15s,box-shadow .2s,filter .2s}
.btn:hover{filter:brightness(1.05)}.btn:active{transform:scale(.97)}
.btn-primary,.btn-hero-primary{background:linear-gradient(135deg,var(--accent),var(--accent-2))!important;border:0!important;color:#fff!important;box-shadow:0 10px 24px -10px rgba(99,102,241,.8)}
.form-control,.form-select{border-radius:var(--m-radius-sm);border:1px solid var(--border);padding:.62rem .9rem;background-color:#fff}
.form-control:focus,.form-select:focus,.btn:focus-visible,a:focus-visible{box-shadow:var(--m-ring)!important;outline:none;border-color:var(--accent)}

/* ===== TAB / PROGRESS / BADGE / JADVAL ===== */
.nav-pills .nav-link,.nav-tabs .nav-link{border-radius:999px;font-weight:700;padding:.5rem 1.05rem;color:var(--text-muted);transition:all .2s}
.nav-pills .nav-link:hover{background:rgba(99,102,241,.1)}
.nav-pills .nav-link.active{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 8px 18px -8px rgba(99,102,241,.8)}
.progress{height:10px;border-radius:999px;background:rgba(99,102,241,.12)}
.progress-bar{border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent-2))}
.badge{border-radius:999px;font-weight:700}
.table>:not(caption)>*>*{padding:.8rem 1rem}
.table thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);border-bottom-width:1px}
.modal-content{border:0;border-radius:22px;box-shadow:0 30px 80px -20px rgba(15,23,42,.45)}
.alert{border:0;border-radius:var(--m-radius-sm)}

#weeklyCalendarGrid{gap:12px}
.tab-pane .rounded-4{border-radius:var(--m-radius)!important}

@media (max-width:768px){
  .stat-card,.widget-card,.task-card{border-radius:16px!important}
  .nav-pills{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}
  .nav-pills::-webkit-scrollbar{display:none}.nav-pills .nav-link{white-space:nowrap}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ===== DASHBOARD v3: Hero / Stats / Launch ===== */
.nx-hero{display:grid;grid-template-columns:1.6fr 1fr;gap:28px;padding:34px;border-radius:28px;color:#fff;position:relative;overflow:hidden;
  background:radial-gradient(600px 300px at 90% 0%,rgba(168,85,247,.55),transparent 60%),radial-gradient(500px 300px at 0% 100%,rgba(56,189,248,.28),transparent 60%),linear-gradient(135deg,#1b1d4d,#2b2a86 55%,#4f46e5);
  box-shadow:0 30px 60px -28px rgba(49,46,129,.75)}
.nx-eyebrow{display:inline-block;font-size:12.5px;font-weight:700;letter-spacing:.02em;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.12);backdrop-filter:blur(6px)}
.nx-title{font-size:clamp(26px,3.4vw,40px);line-height:1.12;margin:16px 0 22px;color:#fff}
.nx-title span{background:linear-gradient(90deg,#fde68a,#f9a8d4);-webkit-background-clip:text;background-clip:text;color:transparent}
.nx-journey{max-width:520px}
.nx-journey-row{display:flex;justify-content:space-between;font-size:13px;opacity:.9;margin-bottom:8px}
.nx-journey-row b{font-size:18px}
.nx-track{height:12px;border-radius:999px;background:rgba(255,255,255,.16);overflow:hidden}
.nx-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#34d399,#fde68a);box-shadow:0 0 18px rgba(253,230,138,.6);transition:width 1s cubic-bezier(.16,1,.3,1)}
.nx-journey-foot{font-size:12.5px;opacity:.85;margin-top:9px}.nx-journey-foot em{font-style:normal;color:#6ee7b7;font-weight:700}
.nx-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.nx-btn{display:inline-flex;align-items:center;gap:9px;padding:12px 20px;border-radius:14px;font-weight:700;font-size:14px;text-decoration:none;transition:transform .18s,box-shadow .18s}
.nx-btn:hover{transform:translateY(-2px)}
.nx-btn-main{background:#fff;color:#3730a3;box-shadow:0 14px 28px -12px rgba(0,0,0,.45)}
.nx-btn-ghost{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25)}
.nx-hero-side{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:22px;padding:22px;backdrop-filter:blur(10px)}
.nx-ring{position:relative;width:150px;height:150px}.nx-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.nx-ring circle{fill:none;stroke-width:9;stroke-linecap:round}.nx-ring-bg{stroke:rgba(255,255,255,.16)}.nx-ring-fg{stroke:url(#nxg);stroke:#fde68a;filter:drop-shadow(0 0 8px rgba(253,230,138,.7))}
.nx-ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.nx-ring-center strong{font-family:'Outfit',sans-serif;font-size:40px;line-height:1}.nx-ring-center span{font-size:12px;opacity:.8;margin-top:4px}
.nx-side-meta{list-style:none;margin:0;padding:0;display:grid;gap:8px;width:100%;font-size:13px}
.nx-side-meta li{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.08);padding:8px 12px;border-radius:12px}.nx-side-meta i{width:18px;text-align:center;color:#fde68a}

.nx-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}
.nx-stat{display:flex;gap:14px;align-items:center;padding:18px;background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:var(--m-shadow);transition:transform .22s,box-shadow .22s}
.nx-stat:hover{transform:translateY(-3px);box-shadow:var(--m-shadow-hover)}
.nx-chip{flex:0 0 48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:18px;color:#fff;background:linear-gradient(135deg,var(--c),color-mix(in srgb,var(--c) 55%,#fff));box-shadow:0 10px 20px -10px var(--c)}
.nx-k{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}
.nx-v{font-family:'Outfit',sans-serif;font-size:30px;font-weight:800;line-height:1.15;color:var(--text-main)}
.nx-v-sm{font-size:19px}.nx-v-sm small{font-size:11px;color:var(--text-muted);font-weight:700}
.nx-sub{font-size:12px;color:var(--text-muted)}.nx-sub.up{color:#059669;font-weight:700}.nx-sub b{color:var(--text-main)}

.nx-launch{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-bottom:24px}
.nx-tile{position:relative;display:flex;flex-direction:column;gap:4px;padding:18px 16px 16px;background:#fff;border:1px solid var(--border);border-radius:20px;text-decoration:none;color:var(--text-main);box-shadow:var(--m-shadow);transition:transform .22s,box-shadow .22s,border-color .22s;overflow:hidden}
.nx-tile::after{content:'';position:absolute;inset:auto -30% -60% auto;width:120px;height:120px;border-radius:50%;background:var(--c);opacity:.08;transition:opacity .22s,transform .22s}
.nx-tile:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--c) 40%,var(--border));box-shadow:0 18px 36px -16px var(--c)}
.nx-tile:hover::after{opacity:.16;transform:scale(1.3)}
.nx-tile-ic{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;color:#fff;font-size:17px;margin-bottom:8px;background:linear-gradient(135deg,var(--c),color-mix(in srgb,var(--c) 60%,#fff));box-shadow:0 10px 18px -8px var(--c)}
.nx-tile strong{font-size:14px}.nx-tile small{font-size:12px;color:var(--text-muted)}
.nx-go{position:absolute;top:18px;right:16px;font-size:12px;color:var(--text-muted);transition:transform .2s,color .2s}.nx-tile:hover .nx-go{transform:translateX(4px);color:var(--c)}

@media (max-width:1200px){.nx-launch{grid-template-columns:repeat(3,1fr)}}
@media (max-width:992px){.nx-hero{grid-template-columns:1fr;padding:24px}.nx-stats{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.nx-stats{grid-template-columns:1fr}.nx-launch{grid-template-columns:repeat(2,1fr)}.nx-hero{border-radius:22px}}

/* ===== v4: BUTUN SAYT — sahifa sarlavhalari, auth, landing, umumiy komponentlar ===== */

/* Student sahifalari: bir xil "sahifa sarlavhasi" kartasi (menyu tugmasi + h2 + izoh) */
body.has-dsat-sidebar > .p-4{padding:22px 26px!important;max-width:1680px;margin:0 auto}
.p-4 > .d-flex:has(.dsat-toggle-btn),.bank-header,.page-header,.vocab-header,.page-top-bar{
  position:sticky;top:12px;z-index:30;padding:16px 22px;margin-bottom:24px!important;
  background:rgba(255,255,255,.86);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);
  border:1px solid var(--border);border-radius:22px;box-shadow:0 12px 32px -18px rgba(15,23,42,.25);
  background-image:linear-gradient(90deg,rgba(99,102,241,.07),transparent 40%)}
.dsat-toggle-btn{width:42px;height:42px;border-radius:13px;border:1px solid var(--border);background:#fff;color:var(--accent);margin-right:14px;transition:all .2s}
.dsat-toggle-btn:hover{background:var(--accent);color:#fff;transform:rotate(90deg)}
.p-4 > .d-flex h2.fw-bold{font-size:clamp(20px,2.4vw,27px);line-height:1.2;margin-bottom:2px!important}
.p-4 > .d-flex h2.fw-bold + p{font-size:13.5px;max-width:720px}

/* Kirish / ro'yxatdan o'tish */
.brand-panel{background:radial-gradient(520px 320px at 85% 0%,rgba(168,85,247,.5),transparent 60%),radial-gradient(480px 320px at 0% 100%,rgba(56,189,248,.28),transparent 60%),linear-gradient(145deg,#15173f,#2a2988 60%,#4f46e5)!important;color:#fff}
.brand-icon-box{background:linear-gradient(135deg,var(--accent),var(--accent-2))!important;box-shadow:0 12px 28px -8px rgba(99,102,241,.8)}
.brand-headline{font-family:'Outfit',sans-serif;letter-spacing:-.02em}
.stat-card-glass{background:rgba(255,255,255,.1)!important;border:1px solid rgba(255,255,255,.18)!important;border-radius:18px!important;backdrop-filter:blur(10px)}
.form-panel{background:#fff!important}
.form-container{max-width:440px}
.input-wrap input,.input-wrap select{border:1.5px solid var(--border)!important;border-radius:14px!important;padding:13px 16px 13px 46px!important;background:#f8f9ff!important;transition:all .2s}
.input-wrap:has(.btn-eye-toggle) input{padding-right:48px!important}
.input-wrap .input-icon{left:17px!important;width:18px;text-align:center;color:#94a3b8;font-size:14px}
.input-wrap:focus-within .input-icon{color:var(--accent)!important}
.input-wrap .btn-eye-toggle{right:12px!important;width:32px;height:32px;display:grid;place-items:center;border-radius:9px;padding:0!important}
.input-wrap .btn-eye-toggle:hover{background:rgba(99,102,241,.1);color:var(--accent)!important}
.input-wrap input:focus{background:#fff!important;border-color:var(--accent)!important;box-shadow:var(--m-ring)!important}
.form-container button[type=submit],.form-container .btn-submit{background:linear-gradient(135deg,var(--accent),var(--accent-2))!important;border:0!important;color:#fff!important;border-radius:14px!important;padding:14px!important;font-weight:800!important;box-shadow:0 14px 28px -12px rgba(99,102,241,.85)!important;transition:transform .18s,box-shadow .18s}
.form-container button[type=submit]:hover{transform:translateY(-2px)}

/* Landing (index.php) */
.navbar-landing{background:rgba(255,255,255,.8)!important;backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);border-bottom:1px solid var(--border);box-shadow:0 8px 30px -22px rgba(15,23,42,.35)}
.nav-link-custom{font-weight:700;border-radius:999px;transition:background .2s,color .2s}
.nav-link-custom:hover{background:rgba(99,102,241,.1);color:var(--accent)!important}
.hero-section{background:radial-gradient(700px 360px at 85% 0%,rgba(139,92,246,.18),transparent 60%),radial-gradient(600px 360px at 5% 20%,rgba(56,189,248,.14),transparent 60%),linear-gradient(180deg,#fff,#f5f6fc)!important}
.hero-title{font-family:'Outfit',sans-serif;font-weight:800;letter-spacing:-.03em;line-height:1.05}
.hero-badge,.section-tag{display:inline-block;border-radius:999px;padding:6px 14px;font-weight:800;font-size:12.5px;letter-spacing:.04em;background:rgba(99,102,241,.1)!important;color:#4338ca!important;border:1px solid rgba(99,102,241,.2)!important}
.section-headline{font-family:'Outfit',sans-serif;font-weight:800;letter-spacing:-.025em}
.feature-card,.testimonial-card{background:#fff!important;border:1px solid var(--border)!important;border-radius:22px!important;box-shadow:var(--m-shadow)!important;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s,border-color .25s}
.feature-card:hover,.testimonial-card:hover{transform:translateY(-6px);box-shadow:var(--m-shadow-hover)!important;border-color:rgba(99,102,241,.35)!important}
.feature-icon-box{background:linear-gradient(135deg,var(--accent),var(--accent-2))!important;color:#fff!important;border-radius:16px!important;box-shadow:0 12px 24px -10px rgba(99,102,241,.75)}
.footer-landing{background:linear-gradient(180deg,#11132b,#0b0d1f)!important;color:#aab1c9!important}

/* Umumiy komponentlar */
.list-group-item{border-color:var(--border);padding:.85rem 1.1rem}
.list-group-item:first-child{border-radius:var(--m-radius-sm) var(--m-radius-sm) 0 0}.list-group-item:last-child{border-radius:0 0 var(--m-radius-sm) var(--m-radius-sm)}
.accordion-item{border:1px solid var(--border);border-radius:var(--m-radius-sm)!important;overflow:hidden;margin-bottom:10px}
.accordion-button:not(.collapsed){background:rgba(99,102,241,.08);color:var(--accent);box-shadow:none}
.dropdown-menu{border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 40px -16px rgba(15,23,42,.3);padding:8px}
.dropdown-item{border-radius:9px;font-weight:600}.dropdown-item:hover{background:rgba(99,102,241,.1)}
.table-hover>tbody>tr:hover>*{background:rgba(99,102,241,.05)}
.page-link{border-radius:10px!important;margin:0 2px;border-color:var(--border);font-weight:700}.page-item.active .page-link{background:var(--accent);border-color:var(--accent)}
.form-check-input:checked{background-color:var(--accent);border-color:var(--accent)}
.toast,.offcanvas{border-radius:18px}
hr{border-color:var(--border);opacity:1}
a{transition:color .15s}
@media (max-width:768px){
  body.has-dsat-sidebar > .p-4{padding:14px!important}
  .p-4 > .d-flex:has(.dsat-toggle-btn),.bank-header,.page-header,.vocab-header,.page-top-bar{position:static!important;padding:12px 14px;border-radius:16px;flex-wrap:wrap;gap:10px}
}

/* ===== v5: maxsus sahifa sarlavhalari ===== */
.p-4 > .d-flex:first-child:has(h2.fw-bold):not(:has(.dsat-toggle-btn)){padding:16px 22px;margin-bottom:24px!important;background:rgba(255,255,255,.86);backdrop-filter:blur(14px);border:1px solid var(--border);border-radius:22px;box-shadow:0 12px 32px -18px rgba(15,23,42,.25);background-image:linear-gradient(90deg,rgba(99,102,241,.07),transparent 40%)}
.duel-header{border-radius:26px!important;box-shadow:0 26px 50px -24px rgba(225,29,72,.6)!important;background:radial-gradient(420px 220px at 90% 0%,rgba(251,146,60,.45),transparent 60%),linear-gradient(135deg,#e11d48,#9f1239)!important}
.reader-header-card{background:linear-gradient(160deg,rgba(99,102,241,.14),rgba(18,24,36,.95) 55%)!important;border:1px solid rgba(129,140,248,.25)!important;border-radius:22px!important;box-shadow:0 24px 50px -28px #000}
.book-headline{font-family:'Outfit',sans-serif;letter-spacing:-.02em}

/* ===== v6: Haftalik planner (study plan) ===== */
.pl{display:grid;grid-template-columns:1fr 290px;gap:22px;align-items:start}
.pl-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.pl-eyebrow{display:inline-flex;gap:7px;align-items:center;font-size:12px;font-weight:800;letter-spacing:.04em;padding:5px 12px;border-radius:999px;background:rgba(99,102,241,.1);color:#4338ca;border:1px solid rgba(99,102,241,.2)}
.pl-head h3{font-size:clamp(20px,2.4vw,26px);margin:10px 0 4px}.pl-head p{margin:0;color:var(--text-muted);font-size:13.5px}
.pl-btn,.pl-cta{display:inline-flex;align-items:center;gap:9px;border:0;cursor:pointer;font-weight:700;border-radius:14px;padding:11px 18px;font-size:14px;transition:transform .18s,box-shadow .18s}
.pl-btn{background:#fff;color:var(--accent);border:1px solid var(--border);box-shadow:var(--m-shadow)}.pl-btn:hover{transform:translateY(-2px)}
.pl-cta{margin-top:14px;width:100%;justify-content:center;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 14px 28px -12px rgba(99,102,241,.85)}.pl-cta:hover{transform:translateY(-2px)}
.pl-week{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-bottom:20px}
.pl-day{display:flex;flex-direction:column;gap:8px;padding:14px 12px;background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--m-shadow);transition:transform .2s,box-shadow .2s;min-width:0}
.pl-day:hover{transform:translateY(-3px);box-shadow:var(--m-shadow-hover)}
.pl-date{display:flex;flex-direction:column;align-items:center;line-height:1.15}.pl-date small{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}
.pl-date strong{font-family:'Outfit',sans-serif;font-size:30px;color:var(--text-main)}
.pl-topic{font-size:12.5px;font-weight:700;text-align:center;line-height:1.3;color:var(--text-main);overflow-wrap:anywhere}.pl-muted{color:var(--text-muted);font-weight:600}
.pl-bar{height:7px;border-radius:999px;background:rgba(99,102,241,.12);overflow:hidden}.pl-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent-2))}
.pl-count{font-size:11.5px;color:var(--text-muted);text-align:center}
.pl-day.is-today{background:linear-gradient(160deg,#1b1d4d,#3b37c9);border-color:transparent;box-shadow:0 22px 40px -20px rgba(79,70,229,.8)}
.pl-day.is-today .pl-date small,.pl-day.is-today .pl-count{color:rgba(255,255,255,.75)}.pl-day.is-today strong,.pl-day.is-today .pl-topic{color:#fff}
.pl-day.is-today .pl-bar{background:rgba(255,255,255,.2)}.pl-day.is-today .pl-bar i{background:linear-gradient(90deg,#34d399,#fde68a)}
.pl-day.is-empty{background:rgba(255,255,255,.55);box-shadow:none}
.pl-today{background:#fff;border:1px solid var(--border);border-radius:22px;box-shadow:var(--m-shadow);padding:20px}
.pl-today-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.pl-today-head h4{margin:0;font-size:18px}.pl-today-head span{font-size:12.5px;font-weight:700;color:var(--text-muted)}
.pl-task{display:flex;align-items:center;gap:14px;padding:12px;border:1px solid var(--border);border-radius:16px;margin-bottom:8px;background:#fbfbff;transition:border-color .2s,transform .2s}
.pl-task:hover{border-color:rgba(99,102,241,.4);transform:translateX(3px)}
.pl-task-ic{flex:0 0 42px;height:42px;border-radius:13px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 10px 18px -10px var(--accent)}
.pl-task-body{flex:1;min-width:0;display:flex;flex-direction:column}.pl-task-body strong{font-size:14px;overflow-wrap:anywhere}.pl-task-body small{font-size:12px;color:var(--text-muted)}
.pl-task-state{font-size:12px;font-weight:800;color:var(--text-muted);white-space:nowrap}
.pl-task.done{background:rgba(16,185,129,.06)}.pl-task.done .pl-task-ic{background:linear-gradient(135deg,#10b981,#34d399)}.pl-task.done .pl-task-state{color:#059669}.pl-task.done strong{text-decoration:line-through;opacity:.65}
.pl-empty{padding:18px;text-align:center;color:#059669;font-weight:700}
.pl-side{display:grid;gap:14px;position:sticky;top:90px}
.pl-exam{text-align:center;color:#fff;padding:24px 18px;border-radius:24px;background:radial-gradient(260px 160px at 90% 0%,rgba(168,85,247,.55),transparent 60%),linear-gradient(145deg,#1b1d4d,#3b37c9);box-shadow:0 24px 44px -22px rgba(79,70,229,.8)}
.pl-exam small{display:block;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;opacity:.8}
.pl-exam strong{font-family:'Outfit',sans-serif;font-size:64px;line-height:1.05}.pl-exam span{font-size:16px;font-weight:700;margin-left:6px}.pl-exam em{display:block;font-style:normal;font-size:13px;opacity:.8;margin-top:6px}
.pl-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:16px 18px;box-shadow:var(--m-shadow)}
.pl-card small{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}
.pl-big{font-family:'Outfit',sans-serif;font-size:34px;font-weight:800;margin:4px 0 8px}.pl-big span{font-size:15px;color:var(--text-muted);font-weight:700}
@media (max-width:1100px){.pl{grid-template-columns:1fr}.pl-side{position:static;grid-template-columns:repeat(3,1fr)}}
@media (max-width:820px){.pl-week{grid-template-columns:repeat(7,minmax(112px,1fr));overflow-x:auto;padding-bottom:6px}.pl-side{grid-template-columns:1fr}}

/* ===== v7: to'q sahifalar (battles, study-room, reading-books, reader) — och mavzu qoidalari ularga tegmaydi ===== */
body.dsat-dark-page{background:var(--bg-main,var(--bg-canvas,#0f172a))!important;background-image:none!important;color:#f8fafc}
body.dsat-dark-page .p-4 > .d-flex:has(.dsat-toggle-btn),
body.dsat-dark-page .page-header,body.dsat-dark-page .bank-header{background:rgba(255,255,255,.05)!important;background-image:none!important;border-color:rgba(255,255,255,.12)!important;box-shadow:none!important;backdrop-filter:none}
body.dsat-dark-page h1,body.dsat-dark-page h2,body.dsat-dark-page h3,body.dsat-dark-page h4,body.dsat-dark-page h5{color:#fff}
body.dsat-dark-page .text-muted,body.dsat-dark-page p.text-muted{color:#94a3b8!important}
body.dsat-dark-page .card,body.dsat-dark-page .stat-card,body.dsat-dark-page .widget-card{background:#131a2b!important;border-color:rgba(255,255,255,.1)!important;color:#e5e7eb}
body.dsat-dark-page .dsat-toggle-btn{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15);color:#c7d2fe}
body.dsat-dark-page .form-control,body.dsat-dark-page .form-select{background-color:rgba(255,255,255,.06);color:#fff;border-color:rgba(255,255,255,.15)}

/* Och sarlavha kartasida matn har doim o'qiladi (sahifa o'z oq rangini qo'ysa ham) */
body:not(.dsat-dark-page) .p-4 > .d-flex:has(.dsat-toggle-btn) :is(h1,h2,h3,h4,h5),
body:not(.dsat-dark-page) :is(.bank-header,.page-header,.vocab-header,.page-top-bar) :is(h1,h2,h3,.header-title,.bank-title,.vocab-title,.vocab-title-text){color:var(--text-main)!important}
body:not(.dsat-dark-page) .p-4 > .d-flex:has(.dsat-toggle-btn) :is(p,small,.text-muted),
body:not(.dsat-dark-page) :is(.bank-header,.page-header,.vocab-header,.page-top-bar) :is(p,small,.text-muted){color:var(--text-muted)!important}
