/* Astudy Global Premium Design System — vNext
   One visual language for dashboard, blog, forms, overlays and mobile.
*/
:root{
  --p-bg:#f5f7fb;
  --p-surface:rgba(255,255,255,.88);
  --p-surface-solid:#fff;
  --p-surface-soft:#f8f9fc;
  --p-text:#151827;
  --p-muted:#737b8f;
  --p-faint:#98a0b1;
  --p-line:rgba(19,25,40,.09);
  --p-line-strong:rgba(19,25,40,.14);
  --p-primary:#7567f8;
  --p-primary-2:#5d50dc;
  --p-cyan:#2fc8d7;
  --p-green:#24b995;
  --p-danger:#e65f76;
  --p-warning:#d9a443;
  --p-radius:20px;
  --p-shadow:0 16px 48px rgba(19,25,40,.07);
  --p-shadow-lg:0 28px 80px rgba(19,25,40,.12);
  --p-ease:cubic-bezier(.2,.75,.2,1);
}
html{scrollbar-width:thin;scrollbar-color:#8b82f4 rgba(117,103,248,.08);background:var(--p-bg)}
html::-webkit-scrollbar{width:11px;height:11px}
html::-webkit-scrollbar-track{background:linear-gradient(180deg,#eef1f7,#f7f8fb)}
html::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#8d84fa,#5e52df);border:3px solid #eef1f7;border-radius:999px}
html::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#9d95ff,#5145ce)}
*{scrollbar-color:#8177ee transparent;scrollbar-width:thin}
::selection{background:rgba(117,103,248,.2);color:var(--p-text)}
body{background:
  radial-gradient(circle at 88% 2%,rgba(117,103,248,.08),transparent 24%),
  radial-gradient(circle at 5% 95%,rgba(47,200,215,.06),transparent 22%),
  var(--p-bg);color:var(--p-text);line-height:1.65}
body.dark{--p-bg:#080b12;--p-surface:rgba(19,24,36,.82);--p-surface-solid:#111625;--p-surface-soft:#151b2a;--p-text:#f3f5fa;--p-muted:#98a1b4;--p-faint:#737d92;--p-line:rgba(255,255,255,.08);--p-line-strong:rgba(255,255,255,.13);--p-shadow:0 18px 55px rgba(0,0,0,.22);--p-shadow-lg:0 30px 90px rgba(0,0,0,.35);background:radial-gradient(circle at 88% 0,rgba(117,103,248,.13),transparent 25%),radial-gradient(circle at 5% 95%,rgba(47,200,215,.07),transparent 22%),#080b12;color:var(--p-text)}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-2;background-image:linear-gradient(rgba(117,103,248,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(117,103,248,.018) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,black,transparent 78%)}
button,a,input,select,textarea{transition:color .18s var(--p-ease),background .18s var(--p-ease),border-color .18s var(--p-ease),box-shadow .18s var(--p-ease),transform .18s var(--p-ease),opacity .18s var(--p-ease)}
button{font-family:inherit}
a{color:inherit}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:0;box-shadow:0 0 0 4px rgba(117,103,248,.13)!important;border-color:rgba(117,103,248,.55)!important}
input,select,textarea{color:var(--p-text)}
input::placeholder,textarea::placeholder{color:#9aa2b3;opacity:1}

/* App shell */
.sidebar{backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
.brand-logo-img{object-fit:contain!important;filter:drop-shadow(0 8px 18px rgba(77,67,220,.2))!important}
.brand .logo,.auth-brand .logo,.auth-showcase .logo{display:grid!important;place-items:center!important;overflow:hidden!important}
.nav{position:relative;isolation:isolate}
.nav:before{content:"";position:absolute;inset:4px;border-radius:12px;background:linear-gradient(90deg,rgba(117,103,248,.12),rgba(47,200,215,.04));opacity:0;z-index:-1;transition:opacity .2s}
.nav:hover:before,.nav.active:before{opacity:1}
.nav.active{box-shadow:inset -3px 0 #8d84fa,0 8px 24px rgba(0,0,0,.08)!important}

/* Top bar */
.topbar{min-height:58px;border:1px solid var(--p-line);border-radius:18px;box-shadow:var(--p-shadow);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.searchbox{position:relative;box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 8px 28px rgba(20,25,40,.04)!important}
.searchbox:focus-within{border-color:rgba(117,103,248,.45);box-shadow:0 0 0 4px rgba(117,103,248,.07),0 12px 35px rgba(20,25,40,.06)!important}
.searchbox kbd,.command-foot kbd{font:600 9px/1 Vazirmatn,sans-serif;color:#858da0;background:var(--p-surface-soft);border:1px solid var(--p-line);padding:5px 7px;border-radius:7px;white-space:nowrap}
.icon-btn,.profile-pill{border:1px solid var(--p-line)!important;box-shadow:var(--p-shadow)!important}
.icon-btn:hover,.profile-pill:hover{transform:translateY(-2px);border-color:rgba(117,103,248,.25)!important}
.server-badge{font-size:10px;color:#239b7e;background:rgba(36,185,149,.09);border:1px solid rgba(36,185,149,.15);padding:7px 10px;border-radius:999px;white-space:nowrap}

/* Hero / KPI */
.ultra-hero{box-shadow:var(--p-shadow-lg)!important}
.ultra-hero:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,transparent 0 55%,rgba(255,255,255,.035) 70%,transparent 100%);animation:heroSheen 8s linear infinite}
@keyframes heroSheen{0%{transform:translateX(-55%)}45%,100%{transform:translateX(55%)}}
.status-pulse{display:inline-block;width:7px;height:7px;border-radius:50%;background:#6ff0d2;box-shadow:0 0 0 6px rgba(111,240,210,.09);margin-left:6px;vertical-align:middle;animation:pulse 2.2s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 10px rgba(111,240,210,0)}}
.hero-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.hero-actions button,.quick-actions button{position:relative;overflow:hidden}
.hero-actions button:after,.quick-actions button:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.13) 50%,transparent 80%);transform:translateX(-120%);transition:transform .5s var(--p-ease)}
.hero-actions button:hover:after,.quick-actions button:hover:after{transform:translateX(120%)}
.hero-micro{display:flex;gap:24px;flex-wrap:wrap}
.hero-micro span{display:flex;gap:5px;align-items:center}
.quick-actions>button{min-height:82px;text-align:right;border-radius:17px!important;padding:15px!important;display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;column-gap:11px;align-items:center}
.quick-actions>button [data-icon]{grid-row:1/3;width:38px;height:38px;border-radius:12px}
.quick-actions>button b{font-size:12px;align-self:end}
.quick-actions>button small{font-size:10px;color:var(--p-muted);align-self:start}
.quick-actions>button:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(19,25,40,.10)!important}
.stats .card{min-height:136px;display:flex;flex-direction:column;justify-content:center}
.stats .stat strong{font-variant-numeric:tabular-nums}
.progress{background:rgba(117,103,248,.08)!important}
.progress i{background:linear-gradient(90deg,var(--p-primary),var(--p-cyan))!important}

/* Universal cards */
.card,.pro-card,.level-card,.recommendation,.activity-card,.timer-card,.tic-status-card,.tic-game-card,.focus-shell,.coach-hero,.coach-item,.mission,.flash-review{border:1px solid var(--p-line)!important;box-shadow:var(--p-shadow)!important;background:var(--p-surface)!important;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px)}
.card:hover,.pro-card:hover,.mission:hover,.coach-item:hover{box-shadow:0 22px 58px rgba(19,25,40,.10)!important}
.advanced-grid,.analytics-grid,.pro-grid,.mission-grid{gap:15px!important}
.section-head h2,.section-head h3,.page-title h2{letter-spacing:-.02em}
.section-head{min-height:34px}
.section-head .link,.link{cursor:pointer;color:var(--p-primary)!important;font-weight:700}
.link:hover{text-decoration:underline}

/* Forms */
label{color:var(--p-muted)}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input[type=date],input[type=time],input[type=url],select,textarea{border:1px solid var(--p-line);background:var(--p-surface-solid);border-radius:13px;min-height:44px;padding:10px 12px;box-shadow:inset 0 1px 1px rgba(19,25,40,.025)}
input:hover,select:hover,textarea:hover{border-color:var(--p-line-strong)}
input[type=checkbox]{accent-color:var(--p-primary)}
.primary{background:linear-gradient(135deg,var(--p-primary),var(--p-primary-2))!important;color:#fff!important;border:1px solid rgba(255,255,255,.08)!important;box-shadow:0 12px 28px rgba(117,103,248,.22)!important}
.primary:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(117,103,248,.28)!important}
.secondary{background:var(--p-surface-soft)!important;color:var(--p-text)!important;border:1px solid var(--p-line)!important}
.secondary:hover{transform:translateY(-2px);border-color:rgba(117,103,248,.28)!important}

/* Charts / analytics */
.chart,.large-chart{border-radius:16px;background:linear-gradient(180deg,rgba(117,103,248,.035),transparent);position:relative}
.large-chart{min-height:260px;padding:20px}
.bar{background:linear-gradient(180deg,#8e84fa,#5c50dc)!important;box-shadow:0 10px 24px rgba(92,80,220,.18)!important}
.score-card{text-align:center}
.score-ring{width:150px;height:150px;margin:20px auto;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--p-primary) 0deg, var(--p-cyan) 230deg, rgba(117,103,248,.10) 230deg);position:relative}
.score-ring:after{content:"";position:absolute;inset:10px;border-radius:50%;background:var(--p-surface-solid);box-shadow:inset 0 0 0 1px var(--p-line)}
.score-ring>div{position:relative;z-index:1}.score-ring strong{font-size:34px}.score-meta{display:flex;justify-content:space-around;color:var(--p-muted);font-size:10px}
.recommendation{display:flex;gap:15px;align-items:center;margin-top:15px}.rec-icon,.insight-icon{width:45px;height:45px;flex:0 0 45px;border-radius:14px;background:linear-gradient(135deg,rgba(117,103,248,.16),rgba(47,200,215,.12));border:1px solid rgba(117,103,248,.12)}

/* Tasks / plan */
.tasks{gap:9px!important}.task{background:var(--p-surface)!important;border-color:var(--p-line)!important;box-shadow:0 7px 24px rgba(19,25,40,.04);transition:.2s var(--p-ease)}
.task:hover{transform:translateX(-3px);border-color:rgba(117,103,248,.25)!important}.task:has(input:checked){opacity:.72}.task:has(input:checked) label,.task:has(input:checked) span{text-decoration:line-through}
.draggable-task.drag-over{outline:2px dashed rgba(117,103,248,.4);outline-offset:3px}

/* Subjects */
.subjects-grid{gap:15px!important}.subject-card{position:relative;overflow:hidden}.subject-card:before{content:"";position:absolute;inset:auto -20px -40px auto;width:130px;height:130px;border-radius:50%;background:rgba(117,103,248,.06);pointer-events:none}.subject-card .percent{color:var(--p-primary)}

/* Timer */
.timer-circle{border:1px solid rgba(117,103,248,.10);background:radial-gradient(circle,#fff 58%,rgba(117,103,248,.08) 59%,rgba(47,200,215,.13) 64%,#fff 65%)!important;box-shadow:0 25px 70px rgba(117,103,248,.13)!important}
body.dark .timer-circle{background:radial-gradient(circle,#111625 58%,rgba(117,103,248,.08) 59%,rgba(47,200,215,.13) 64%,#111625 65%)!important}
.timer-controls button{min-width:105px}

/* Ranking / tables */
.table-head{background:var(--p-surface-soft);border-radius:12px 12px 0 0}.table-row{border-color:var(--p-line)!important}.table-row:hover{background:rgba(117,103,248,.035)}.me{background:rgba(117,103,248,.08)!important;border:1px solid rgba(117,103,248,.10)}
.ranking-row{border-color:var(--p-line)!important}.ranking-row:hover{background:rgba(117,103,248,.035);border-radius:12px;padding-inline:8px}
.avatar{box-shadow:inset 0 0 0 1px var(--p-line)}

/* Calendar / missions / exams / flashcards */
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.calendar-grid>*{min-height:68px;padding:9px;border:1px solid var(--p-line);border-radius:12px;background:var(--p-surface);box-shadow:0 5px 20px rgba(19,25,40,.03)}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.calendar-toolbar button{border:1px solid var(--p-line);background:var(--p-surface);border-radius:11px;padding:8px 11px}
.mission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.mission{padding:17px;border-radius:18px}.mission-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:rgba(117,103,248,.10);color:var(--p-primary)}.mission-progress{height:7px;border-radius:999px;background:rgba(117,103,248,.08);overflow:hidden}.mission-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--p-primary),var(--p-cyan));border-radius:inherit}
.level-card{padding:18px;border-radius:20px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px}.level-card strong{font-size:32px}.level-progress{height:9px;background:rgba(117,103,248,.08);border-radius:999px;overflow:hidden}.level-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--p-primary),var(--p-cyan));border-radius:inherit}
.achievement-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.achievement{padding:14px;border:1px solid var(--p-line);border-radius:15px;background:var(--p-surface-soft)}
.exam-list{display:grid;gap:9px}.exam-row{display:grid;grid-template-columns:1fr auto;gap:15px;padding:14px;border:1px solid var(--p-line);border-radius:14px;background:var(--p-surface)}
.flash-review{min-height:240px}.card-list{display:grid;gap:8px}.card-list>*{border:1px solid var(--p-line);border-radius:13px;padding:13px;background:var(--p-surface-soft)}

/* Focus / coach / game */
.focus-shell{min-height:560px;border-radius:26px;position:relative;overflow:hidden}.focus-dim{position:absolute;inset:0;background:radial-gradient(circle at center,transparent 0 20%,rgba(5,8,18,.04) 55%,rgba(5,8,18,.20));pointer-events:none}.focus-orb{width:230px;height:230px;border-radius:50%;margin:70px auto 30px;background:radial-gradient(circle at 35% 30%,#b7b0ff,rgba(117,103,248,.18) 45%,transparent 70%);filter:blur(1px);box-shadow:0 0 80px rgba(117,103,248,.14)}.focus-header,.focus-actions,.focus-tools{position:relative;z-index:2}.coach-hero{padding:28px;border-radius:24px;position:relative;overflow:hidden}.coach-orb{position:absolute;left:-50px;top:-50px;width:220px;height:220px;border-radius:50%;background:rgba(117,103,248,.10);filter:blur(5px)}.coach-plan{display:grid;gap:10px}.coach-item{padding:15px;border-radius:16px}.tic-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:15px}.tic-board{width:min(390px,100%);aspect-ratio:1;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tic-cell{border:1px solid var(--p-line);border-radius:17px;background:var(--p-surface);font-size:clamp(28px,7vw,60px);font-weight:900;color:var(--p-primary);box-shadow:var(--p-shadow);cursor:pointer}.tic-cell:hover{transform:translateY(-2px);border-color:rgba(117,103,248,.35)}.tic-game-top,.tic-progress-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.tic-lock-badge{padding:6px 9px;border-radius:999px;background:rgba(217,164,67,.10);color:#b98928;font-size:10px}.tic-progress{height:8px;border-radius:999px;background:rgba(117,103,248,.08);overflow:hidden}.tic-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--p-primary),var(--p-cyan));border-radius:inherit}

/* Search / command palette */
.search-results{position:absolute;top:calc(100% + 9px);right:0;left:0;z-index:80;padding:7px;border:1px solid var(--p-line);border-radius:16px;background:var(--p-surface-solid);box-shadow:var(--p-shadow-lg);backdrop-filter:blur(18px)}.search-results>*{padding:11px;border-radius:11px}.search-results>*:hover{background:rgba(117,103,248,.07)}
.command-palette{position:fixed;inset:0;z-index:500;display:grid;place-items:start center;padding-top:12vh}.command-palette[hidden]{display:none!important}.command-backdrop{position:absolute;inset:0;background:rgba(5,8,18,.58);backdrop-filter:blur(10px)}.command-card{position:relative;width:min(650px,calc(100% - 28px));border:1px solid rgba(255,255,255,.10);border-radius:22px;background:var(--p-surface-solid);box-shadow:0 35px 120px rgba(0,0,0,.28);overflow:hidden}.command-head{display:flex;align-items:center;gap:10px;padding:14px;border-bottom:1px solid var(--p-line)}.command-head input{border:0;background:transparent;box-shadow:none!important;outline:0;width:100%;min-height:42px}.command-results{max-height:390px;overflow:auto;padding:8px}.command-item{display:flex;align-items:center;gap:11px;padding:12px;border-radius:12px;cursor:pointer}.command-item:hover,.command-item.selected{background:rgba(117,103,248,.09)}.command-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:rgba(117,103,248,.09);color:var(--p-primary)}.command-foot{display:flex;justify-content:flex-end;gap:14px;padding:10px 14px;color:var(--p-faint);font-size:9px;border-top:1px solid var(--p-line)}

/* Modals / toast */
.modal,.pro-modal{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.modal-card,.pro-modal-card{box-shadow:0 35px 110px rgba(0,0,0,.22)!important}.modal-close,.pro-close{transition:.18s}.modal-close:hover,.pro-close:hover{transform:rotate(6deg) scale(1.05)}
.toast{min-width:250px;max-width:min(430px,calc(100% - 28px));padding:13px 16px!important;border:1px solid rgba(255,255,255,.09);box-shadow:0 18px 55px rgba(0,0,0,.22)!important;display:flex;align-items:center;gap:9px;font-size:12px}

/* Auth */
.auth-screen{background:radial-gradient(circle at 10% 10%,rgba(117,103,248,.20),transparent 25%),radial-gradient(circle at 90% 80%,rgba(47,200,215,.14),transparent 24%),#070b16!important}.auth-card{box-shadow:0 35px 120px rgba(0,0,0,.32)!important;border:1px solid rgba(255,255,255,.09)!important}.auth-tabs{background:rgba(117,103,248,.06)!important;border:1px solid rgba(117,103,248,.10)!important}.auth-tabs button.active{background:linear-gradient(135deg,#7567f8,#5d50dc)!important;color:#fff!important;box-shadow:0 9px 25px rgba(117,103,248,.2)}.auth-card input,.auth-card select{background:rgba(255,255,255,.055)!important;color:#fff!important;border-color:rgba(255,255,255,.10)!important}.auth-card input::placeholder{color:#818aa0}.auth-submit{min-height:48px}

/* Blog family */
.blog-page{min-height:100vh!important;background:radial-gradient(circle at 10% 0,rgba(117,103,248,.16),transparent 28%),radial-gradient(circle at 90% 20%,rgba(47,200,215,.09),transparent 27%),#080b14!important;color:#eef1ff!important}.blog-header{box-shadow:0 10px 35px rgba(0,0,0,.12)!important}.blog-logo{background:linear-gradient(145deg,#111a35,#080e21)!important;border:1px solid rgba(255,255,255,.10)!important}.blog-logo img{object-fit:contain!important}.blog-hero,.featured-post,.post-card,.blog-write,.my-posts,.admin-post,.admin-filters{box-shadow:0 18px 60px rgba(0,0,0,.13)!important}.blog-search:focus-within{border-color:rgba(117,103,248,.55)!important;box-shadow:0 0 0 4px rgba(117,103,248,.08)}.post-card,.featured-post,.admin-post{transform:translateZ(0)}.post-card:hover,.featured-post:hover{transform:translateY(-5px)!important}.article-content{letter-spacing:-.005em}.article-content a{color:#aaa2ff;text-decoration:underline;text-underline-offset:3px}.article-loading{min-height:240px;display:grid;place-items:center;color:#8f98b0}

/* Footer */
.site-footer{border-top:1px solid var(--p-line)!important;color:var(--p-faint)!important}.site-footer-credit{opacity:.6!important}

/* Responsive */
@media(max-width:1100px){.tic-wrap{grid-template-columns:1fr}.mission-grid{grid-template-columns:repeat(2,1fr)}.achievement-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.topbar{border-radius:15px}.stats{grid-template-columns:repeat(2,1fr)}.grid2,.advanced-grid,.analytics-grid{grid-template-columns:1fr!important}.calendar-grid{gap:5px}.calendar-grid>*{min-height:55px;padding:6px}.level-card{grid-template-columns:1fr}.achievement-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.stats{grid-template-columns:1fr}.mission-grid{grid-template-columns:1fr}.achievement-grid{grid-template-columns:1fr 1fr}.topbar h1{font-size:21px}.searchbox{width:auto;flex:1}.server-badge{display:none}.profile-pill .grade{display:none}.hero-micro{gap:11px;font-size:10px}.timer-circle{width:240px;height:240px}.timer-circle strong{font-size:46px}.blog-container,.admin-container,.article-container{width:min(100% - 24px,1180px)}}
@media(max-width:430px){.topbar{gap:7px}.top-actions{gap:5px}.profile-pill{padding:8px}.quick-actions>button{min-height:72px}.hero-micro{justify-content:space-between}.achievement-grid{grid-template-columns:1fr}.calendar-grid{grid-template-columns:repeat(7,minmax(38px,1fr));overflow:auto}.calendar-grid>*{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
