/* Premium visual layer — loaded after the base stylesheets */
:root{
  --accent:var(--blue,#4466ed);
  --accent-deep:color-mix(in srgb,var(--accent) 68%,#0b1230);
  --accent-glow:color-mix(in srgb,var(--accent) 35%,transparent);
  --navy:#0e1530;--navy-2:#18214a;
  --card-shadow:0 1px 2px rgba(16,24,56,.04),0 12px 32px -12px rgba(16,24,56,.12);
  --ease:cubic-bezier(.22,1,.36,1);
}
html{scroll-behavior:smooth}
body{background:radial-gradient(1200px 520px at 90% -10%,color-mix(in srgb,var(--accent) 9%,transparent),transparent 60%),radial-gradient(900px 480px at -5% 110%,#7c5cff14,transparent 60%),var(--canvas);-webkit-font-smoothing:antialiased}
::selection{background:var(--accent);color:#fff}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#c9d0e4;border-radius:10px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#a8b2d0;background-clip:padding-box;border:2px solid transparent}

/* Keyframes */
@keyframes pf-rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes pf-fade{from{opacity:0}to{opacity:1}}
@keyframes pf-slide{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:none}}
@keyframes pf-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes pf-shine{from{transform:translateX(-120%)}to{transform:translateX(220%)}}
@keyframes pf-gradient{0%{background-position:0 50%}50%{background-position:100% 50%}100%{background-position:0 50%}}
@keyframes pf-pop{0%{transform:scale(.92);opacity:0}60%{transform:scale(1.03)}100%{transform:scale(1);opacity:1}}
@keyframes pf-pulse{0%{box-shadow:0 0 0 0 var(--accent-glow)}100%{box-shadow:0 0 0 12px transparent}}

/* Sidebar */
.sidebar{background:linear-gradient(180deg,var(--navy) 0%,var(--navy-2) 100%);border-right:0;box-shadow:8px 0 40px -12px rgba(10,16,48,.45);color:#c7d0ee}
.sidebar::before{content:"";position:absolute;inset:0;background:radial-gradient(260px 200px at 0 0,color-mix(in srgb,var(--accent) 38%,transparent),transparent 70%);pointer-events:none}
.sidebar>*{position:relative}
.sidebar-brand{color:#fff}
.sidebar-brand-logo{filter:drop-shadow(0 2px 8px rgba(0,0,0,.35))}
.sidebar .nav-caption{color:#7f8bb5;letter-spacing:1.4px}
.sidebar nav{overflow-y:auto;scrollbar-width:thin;scrollbar-color:#2e3a6b transparent}
.sidebar .nav-link{color:#aab4d6;position:relative;overflow:hidden;animation:pf-slide .55s var(--ease) backwards;transition:background .25s,color .25s,transform .25s var(--ease)}
.sidebar .nav-link:nth-child(1){animation-delay:.03s}.sidebar .nav-link:nth-child(2){animation-delay:.06s}.sidebar .nav-link:nth-child(3){animation-delay:.09s}.sidebar .nav-link:nth-child(4){animation-delay:.12s}.sidebar .nav-link:nth-child(5){animation-delay:.15s}.sidebar .nav-link:nth-child(6){animation-delay:.18s}.sidebar .nav-link:nth-child(7){animation-delay:.21s}.sidebar .nav-link:nth-child(8){animation-delay:.24s}.sidebar .nav-link:nth-child(n+9){animation-delay:.27s}
.sidebar .nav-link:hover{background:rgba(255,255,255,.07);color:#fff;transform:translateX(4px)}
.sidebar .nav-link.active{background:linear-gradient(100deg,var(--accent),var(--accent-deep));color:#fff;box-shadow:0 8px 20px -6px var(--accent-glow)}
.sidebar .nav-link.active::after{content:"";position:absolute;inset:0;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.22),transparent);animation:pf-shine 3.2s ease-in-out infinite}
.sidebar .nav-link span{transition:transform .3s var(--ease)}.sidebar .nav-link:hover span{transform:scale(1.18) rotate(-6deg)}
.sidebar-bottom{border-top:1px solid rgba(255,255,255,.08)}
.sidebar-bottom .user-mini strong{color:#fff}.sidebar-bottom .user-mini small{color:#8e9acb}
.sidebar .avatar{background:linear-gradient(135deg,var(--accent),#8b5cf6);color:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.1)}

/* Topbar */
.topbar{background:rgba(255,255,255,.72);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid rgba(220,226,240,.8);position:sticky;top:0;z-index:5}
.top-avatar{background:linear-gradient(135deg,var(--accent),#8b5cf6)!important;color:#fff!important}

/* Page + headings */
.page-content{animation:pf-fade .5s ease both}
.page-heading{animation:pf-rise .6s var(--ease) both}
.page-heading h1{color:var(--ink)}
.eyebrow{letter-spacing:1.6px}

/* Cards */
.stat-card,.section-card{border:1px solid rgba(226,231,243,.9);border-radius:16px;box-shadow:var(--card-shadow);animation:pf-rise .6s var(--ease) backwards;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .3s}
.section-card:hover{box-shadow:0 1px 2px rgba(16,24,56,.05),0 20px 44px -16px rgba(16,24,56,.16)}
.stat-card{position:relative;overflow:hidden}
.stat-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--accent),#8b5cf6,#22c1c3);background-size:200% 100%;animation:pf-gradient 6s ease infinite;opacity:.9}
.stat-card::after{content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 14%,transparent),transparent 70%)}
.stat-card:hover{transform:translateY(-6px);box-shadow:0 24px 48px -18px var(--accent-glow)}
.stats-grid .stat-card:nth-child(1),.section-card:nth-of-type(1){animation-delay:.05s}.stats-grid .stat-card:nth-child(2),.section-card:nth-of-type(2){animation-delay:.12s}.stats-grid .stat-card:nth-child(3),.section-card:nth-of-type(3){animation-delay:.19s}.stats-grid .stat-card:nth-child(4),.section-card:nth-of-type(4){animation-delay:.26s}.section-card:nth-of-type(n+5){animation-delay:.3s}

/* Buttons */
.button{border-radius:10px;position:relative;overflow:hidden;transition:transform .25s var(--ease),box-shadow .25s,background .25s,filter .25s}
.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(0) scale(.98)}
.button.primary{background:linear-gradient(135deg,var(--accent),var(--accent-deep));box-shadow:0 10px 22px -8px var(--accent-glow),inset 0 1px 0 rgba(255,255,255,.22)}
.button.primary:hover{background:linear-gradient(135deg,var(--accent),var(--accent-deep));filter:brightness(1.08);box-shadow:0 14px 28px -8px var(--accent-glow)}
.button.primary::after{content:"";position:absolute;inset:0;width:45%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:translateX(-120%)}
.button.primary:hover::after{animation:pf-shine .9s ease}
.button:disabled{opacity:.5;cursor:not-allowed;transform:none;filter:grayscale(.3)}

/* Forms */
.record-form input,.record-form select,.record-form textarea,.inline-answer input,.inline-answer select,.stack-form input{height:42px;border-radius:10px;border:1px solid #dfe5f2;background:#fbfcff;transition:border-color .2s,box-shadow .25s,background .2s,transform .2s}
.record-form textarea{height:auto}
.record-form input:hover,.record-form select:hover,.record-form textarea:hover{border-color:#c4cde6}
.record-form input:focus,.record-form select:focus,.record-form textarea:focus,.inline-answer input:focus,.stack-form input:focus{background:#fff;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow)}
.record-form label{transition:color .2s}.record-form label:focus-within{color:var(--accent-deep)}
.record-form.staff-module-form{grid-template-columns:1fr}
.staff-module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:8px}
.staff-module-grid label{display:flex;align-items:center;gap:9px;min-height:42px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--paper);line-height:1.35}
.staff-module-grid input[type=checkbox]{flex:0 0 16px;width:16px;height:16px;margin:0}
.staff-module-grid input:disabled+span{opacity:.58}
.staff-module-grid .muted{display:block;font-size:10px}
.staff-role-selection{min-width:0;margin:0;padding:0;border:0}
.staff-role-selection legend{margin:0 0 8px;font-weight:600}
.staff-role-assignment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:14px}
.staff-role-assignment-card{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}
.staff-role-assignment-card>div small{display:block;margin-top:4px;color:var(--muted)}
.staff-role-assignment-form{display:grid;gap:10px}
.staff-role-assignment-form .button{justify-self:start}
.staff-create-card{overflow:hidden;border:1px solid #e0e7f5;background:linear-gradient(145deg,#fff 0%,#f9faff 100%);box-shadow:0 12px 34px rgba(37,54,96,.08)}
.staff-create-card>.section-heading{margin:0;padding:22px 24px;border-bottom:1px solid #edf0f6;background:linear-gradient(110deg,#f3f5ff,#fbfaff)}
.staff-create-card>.section-heading h2{margin:0 0 5px;color:#263550;font-size:18px}
.staff-create-card>.section-heading p{max-width:680px;line-height:1.55}
.staff-create-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 22px;padding:24px}
.staff-create-form .staff-create-field{min-width:0;align-content:start;gap:8px;color:#46536b;font-size:12px}
.staff-create-form .staff-create-field-title{font-size:12px;font-weight:700;line-height:1.4}
.staff-create-form .staff-create-field input,.staff-create-form .staff-create-field select{height:46px;padding:0 13px;border-color:#dce3ef;border-radius:10px;background:#fff;font-size:13px}
.staff-create-form .staff-role-selection{grid-column:1/-1;min-width:0;padding:0;border:0}
.staff-create-form .staff-role-selection legend{margin:0 0 10px;color:#35425c;font-size:12px;font-weight:700}
.staff-create-form .staff-module-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.staff-create-form .staff-module-grid label{min-height:52px;padding:12px 14px;border-color:#e0e6f0;border-radius:11px;background:#fff;color:#4a5770;font-size:12px;font-weight:600;transition:border-color .16s,background .16s,box-shadow .16s}
.staff-create-form .staff-module-grid label:focus-within{border-color:#8294ef;background:#f8f9ff;box-shadow:0 0 0 3px rgba(68,102,237,.1)}
.staff-create-form .staff-module-grid input[type=checkbox]{accent-color:#4965df}
.staff-create-form .field-hint{display:block;margin-top:9px;line-height:1.5}
.staff-create-form .form-submit{grid-column:1/-1;justify-content:flex-end;align-items:center;margin-top:1px;padding-top:18px;border-top:1px solid #edf0f6}
.staff-create-form .form-submit .button{min-width:160px;min-height:44px;border-radius:10px}
@media(max-width:700px){.staff-create-card>.section-heading{padding:19px}.staff-create-form{grid-template-columns:minmax(0,1fr);gap:16px;padding:19px}.staff-create-form .staff-role-selection,.staff-create-form .form-submit{grid-column:auto}.staff-create-form .staff-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.staff-create-form .staff-module-grid{grid-template-columns:minmax(0,1fr)}.staff-create-form .form-submit .button{width:100%}}
.settings-accordion{margin:0 0 16px;padding:0 18px;border:1px solid var(--line);border-radius:14px;background:var(--paper);box-shadow:var(--card-shadow)}
.settings-accordion>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px;cursor:pointer;list-style:none}
.settings-accordion>summary::-webkit-details-marker{display:none}
.settings-accordion>summary::after{content:"＋";flex:0 0 auto;color:var(--accent);font-size:20px;font-weight:700}
.settings-accordion[open]>summary::after{content:"−"}
.settings-accordion>summary h2,.settings-accordion>summary h3{margin:0 0 4px;color:var(--ink);font:700 15px Manrope,sans-serif}
.settings-accordion>summary h3{font-size:13px}
.settings-toggle-hint{color:var(--muted);font-size:10px}
.settings-accordion-content{padding:0 0 17px}
.settings-accordion-content>.section-card{margin:0;padding:0;border:0;box-shadow:none}
.email-verification-categories{display:grid;gap:10px}
.email-verification-category{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--canvas)}
.email-verification-category>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;cursor:pointer;list-style:none}
.email-verification-category>summary::-webkit-details-marker{display:none}
.email-verification-category>summary>span:first-child{display:grid;gap:3px}
.email-verification-category>summary small{color:var(--muted);font-size:11px}
.email-verification-category>summary::after{content:"＋";color:var(--accent);font-size:18px;font-weight:700}
.email-verification-category[open]>summary::after{content:"−"}
.email-verification-category>.table-wrap{border-top:1px solid var(--line)}
.nested-settings-accordion{margin-top:9px;padding:0 14px;background:var(--canvas);box-shadow:none}
.nested-settings-accordion>summary{min-height:58px}
.settings-reset-form{margin-top:10px}
.batch-staff-details{min-width:190px}
.batch-staff-details>summary{cursor:pointer;color:var(--accent-deep);font-size:11px;font-weight:700}
.batch-staff-controls{display:grid;gap:10px;min-width:240px;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--paper);white-space:normal}
.batch-staff-controls>form,.batch-staff-list>form{display:flex;align-items:center;gap:7px}
.batch-staff-controls select{min-width:0;flex:1;height:34px;border:1px solid var(--line);border-radius:7px;padding:0 8px}
.batch-staff-list{display:grid;gap:6px}
.batch-staff-list>form{justify-content:space-between;padding-top:6px;border-top:1px solid var(--line);font-size:10px}

/* Tables */
.table-wrap{border-radius:12px}
thead th{background:linear-gradient(#f9faff,#f3f5fc);color:#7b86a3;position:sticky;top:0}
tbody tr{transition:background .2s,transform .25s var(--ease),box-shadow .25s}
tbody tr:hover{background:color-mix(in srgb,var(--accent) 5%,#fff);box-shadow:inset 3px 0 0 var(--accent)}
tbody tr{animation:pf-fade .5s ease backwards}
tbody tr:nth-child(2){animation-delay:.04s}tbody tr:nth-child(3){animation-delay:.08s}tbody tr:nth-child(4){animation-delay:.12s}tbody tr:nth-child(5){animation-delay:.16s}tbody tr:nth-child(n+6){animation-delay:.2s}
.status{transition:transform .2s var(--ease)}tr:hover .status{transform:scale(1.06)}
input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;cursor:pointer}

/* Alerts & notifications */
.alert{border-radius:12px;animation:pf-pop .5s var(--ease) both;box-shadow:var(--card-shadow)}
dialog{border:0;border-radius:18px;box-shadow:0 30px 80px -20px rgba(10,16,48,.5)}dialog[open]{animation:pf-pop .35s var(--ease)}dialog::backdrop{background:rgba(10,16,48,.5);backdrop-filter:blur(4px)}

/* Login */
.login-page{background:linear-gradient(125deg,#0e1530,#1b2a6b 40%,#3a2a8f 70%,#0e1530);background-size:300% 300%;animation:pf-gradient 18s ease infinite;position:relative;overflow:hidden}
.login-page::before,.login-page::after{content:"";position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;animation:pf-float 9s ease-in-out infinite}
.login-page::before{width:380px;height:380px;background:#4466ed;top:-100px;left:-80px}
.login-page::after{width:340px;height:340px;background:#8b5cf6;bottom:-90px;right:-60px;animation-delay:-4s}
.login-card{position:relative;z-index:1;border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-radius:22px;box-shadow:0 40px 90px -20px rgba(4,8,30,.6);animation:pf-rise .8s var(--ease) both}
.login-card .button.primary,.login-card .full-width{height:46px}
.brand-mark{animation:pf-float 5s ease-in-out infinite}

/* Coupons */
.coupon-picker{display:grid;gap:10px;grid-column:1/-1}
.coupon-picker>label{display:grid;gap:6px}
.coupon-suggest small{display:block;margin-bottom:7px;color:#7b86a3;font-size:10px;letter-spacing:.8px;text-transform:uppercase;font-weight:700}
.coupon-chips{display:flex;flex-wrap:wrap;gap:9px}
.coupon-chip{position:relative;display:inline-flex;align-items:center;gap:9px;padding:7px 12px 7px 14px;border:1.5px dashed color-mix(in srgb,var(--accent) 55%,#fff);border-radius:11px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 8%,#fff),#fff);color:var(--accent-deep);font:600 11px "DM Sans",sans-serif;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s,background .25s,border-color .2s;animation:pf-pop .45s var(--ease) backwards}
.coupon-chip b{font-family:Manrope,sans-serif;letter-spacing:.8px;font-size:12px}
.coupon-chip span{padding:3px 7px;border-radius:20px;background:var(--accent);color:#fff;font-size:9.5px;font-weight:700;letter-spacing:.4px}
.coupon-chip:hover{transform:translateY(-3px) rotate(-1deg);box-shadow:0 12px 22px -10px var(--accent-glow);border-style:solid}
.coupon-chip.active{background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;border-style:solid;border-color:transparent;animation:pf-pulse 1.2s ease-out}
.coupon-chip.active span{background:#fff;color:var(--accent-deep)}
.coupon-preview{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;padding:12px 15px;border-radius:12px;font-size:12px;animation:pf-pop .35s var(--ease) backwards}
.coupon-preview[hidden]{display:none}
.coupon-preview.ok{background:linear-gradient(135deg,#e8f8f1,#f3fcf8);border:1px solid #bfe9d7;color:#1b6f55}
.coupon-preview.ok .minus{color:#c4532f}
.coupon-preview.ok .pay{margin-left:auto;padding:5px 12px;border-radius:20px;background:#19896b;color:#fff;box-shadow:0 8px 16px -8px #19896b}
.coupon-preview.ok .pay b{font-size:14px}
.coupon-preview.warn{background:#fff6e8;border:1px solid #f3dcae;color:#9a6a12}
.coupon-preview.neutral{background:#f1f4fc;border:1px solid #dde4f5;color:#5b6784}
.bulk-fee-form{padding:16px;margin-bottom:14px;border:1px solid #e3e8f7;border-radius:14px;background:linear-gradient(135deg,#fbfcff,#f4f6ff)}
#bulk-fee-summary{padding:7px 12px;border-radius:20px;background:var(--blue-soft);color:var(--accent-deep);font-size:12px;transition:transform .2s var(--ease)}

@media(max-width:700px){.coupon-preview.ok .pay{margin-left:0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* Card hover � lift, glow, icon motion */
a.stat-card{display:block;color:inherit;cursor:pointer}
.stat-card:hover{transform:translateY(-8px) scale(1.02);border-color:color-mix(in srgb,var(--accent) 45%,#fff);box-shadow:0 28px 50px -18px var(--accent-glow),0 0 0 1px color-mix(in srgb,var(--accent) 25%,transparent)}
.stat-card:hover::after{transform:scale(2.4);transition:transform .6s var(--ease)}
.stat-card::after{transition:transform .6s var(--ease)}
.stat-card .stat-icon{transition:transform .4s var(--ease),background .3s,color .3s}
.stat-card:hover .stat-icon{transform:rotate(-10deg) scale(1.2);background:var(--accent);color:#fff}
.stat-card>strong{transition:transform .35s var(--ease),color .3s}
.stat-card:hover>strong{transform:translateX(4px);color:var(--accent-deep)}
.section-card:hover{transform:translateY(-3px)}

body.teacher-view-only form[method="post"]:not(:has(input[name="action"][value="create_student"])):not(:has(input[name="action"][value="create_batch"])):not(:has(input[name="action"][value="create_class"])):not(:has(input[name="action"][value="create_exam"])):not(:has(input[name="action"][value="create_question"])):not(:has(input[name="action"][value="import_exam_questions"])):not(:has(input[name="action"][value="create_material"])):not(:has(input[name="action"][value="create_doubt"])):not(:has(input[name="action"][value="create_certificate"])):not(:has(input[name="action"][value="create_certificate_legacy"])):not(:has(input[name="action"][value="create_payment"])):not(:has(input[name="action"][value="create_offline_assessment"])):not(:has(input[name="action"][value="save_live_class_resource"])):not(:has(input[name="action"][value="change_own_password"])):not(:has(input[name="action"][value="mark_notification_read"])):not(:has(input[name="action"][value="mark_all_notifications_read"])):not(:has(input[name="action"][value="update_own_staff_photo"])):not(:has(input[name="action"][value="logout"])){display:none!important}
body.teacher-view-only a[href*="page=exam_edit"]{display:none!important}

.stats-grid .student-dashboard-counter{--student-card-accent:#4264d8;border-color:#e0e7f4;background:linear-gradient(145deg,#fff 0%,#f5f8ff 100%);box-shadow:0 10px 26px rgba(31,48,83,.08)}
.stats-grid .student-dashboard-counter:nth-child(4n+2){--student-card-accent:#16836f;background:linear-gradient(145deg,#fff 0%,#f2faf8 100%)}
.stats-grid .student-dashboard-counter:nth-child(4n+3){--student-card-accent:#8053c7;background:linear-gradient(145deg,#fff 0%,#f8f5fc 100%)}
.stats-grid .student-dashboard-counter:nth-child(4n){--student-card-accent:#b56b20;background:linear-gradient(145deg,#fff 0%,#fff8ef 100%)}
.stats-grid .student-dashboard-counter::before{height:4px;background:linear-gradient(90deg,var(--student-card-accent),color-mix(in srgb,var(--student-card-accent) 40%,#fff));opacity:1}
.stats-grid .student-dashboard-counter::after{background:radial-gradient(circle,color-mix(in srgb,var(--student-card-accent) 12%,transparent),transparent 70%)}
.stats-grid .student-dashboard-counter .stat-top{color:#536078}
.stats-grid .student-dashboard-counter .stat-icon{background:color-mix(in srgb,var(--student-card-accent) 10%,#fff);color:var(--student-card-accent)}
.stats-grid .student-dashboard-counter>strong{color:#202d47}
.stats-grid .student-dashboard-counter>small{color:#748097}
.stats-grid .student-dashboard-counter:hover{border-color:color-mix(in srgb,var(--student-card-accent) 38%,#fff);box-shadow:0 20px 38px rgba(31,48,83,.13),0 0 0 1px color-mix(in srgb,var(--student-card-accent) 12%,transparent)}
.stats-grid .student-dashboard-counter:hover .stat-icon{background:var(--student-card-accent);color:#fff}
.stats-grid .student-dashboard-counter:hover>strong{color:var(--student-card-accent)}

.avatar img,.account-menu summary>img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.account-menu{position:relative}
.account-menu summary{display:flex;align-items:center;gap:9px;list-style:none;cursor:pointer}
.account-menu summary::-webkit-details-marker{display:none}
.account-summary-text{display:grid;gap:2px;min-width:90px}
.account-summary-text strong{max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--ink)}
.account-summary-text small{font-size:9px;color:var(--muted)}
.account-menu-chevron{color:var(--muted);font-size:13px}
.account-menu-panel{position:absolute;right:0;top:calc(100% + 10px);z-index:10;width:min(290px,85vw);padding:9px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 18px 45px #17234424;animation:pf-pop .2s var(--ease) both}
.account-menu-panel>a,.account-menu-panel>.logout-form{display:flex;align-items:center;min-height:39px;padding:0 11px;border-radius:8px;color:#5c6880;font-size:11px;font-weight:600}
.account-menu-panel>a:hover{background:var(--blue-soft);color:var(--blue)}
.account-menu-panel>.logout-form{padding:0}
.account-menu-panel>.logout-form .logout-button{width:100%;justify-content:flex-start;border:0;background:transparent}
.account-menu-identity{display:flex;align-items:center;gap:10px;padding:9px 8px 12px;margin-bottom:4px;border-bottom:1px solid var(--line)}
.account-menu-identity>span:last-child{display:grid;gap:3px;min-width:0}
.account-menu-identity strong{font-size:12px;color:var(--ink)}
.account-menu-identity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px}
.notification-panel-heading{display:flex;align-items:center;justify-content:space-between;padding:4px 7px 9px}
.notification-panel-heading>strong{padding:0}
.notification-read-all{border:0;background:transparent;color:var(--blue);font:600 10px "DM Sans",sans-serif;cursor:pointer}
.notification-panel-heading form{margin:0}
.notification-item{margin:0}
.account-profile-details{display:flex;align-items:center;gap:20px;margin:12px 0 18px}
.account-profile-photo{width:96px;height:96px;object-fit:cover;border-radius:24px;border:1px solid var(--line);box-shadow:0 8px 24px #243a6814}
.account-profile-initial{display:grid;place-items:center;background:var(--blue-soft);color:var(--blue);font:800 35px Manrope,sans-serif}
.account-profile-details>div{display:grid;gap:10px}
.account-profile-details p{display:grid;gap:3px;margin:0}
.account-profile-details p span{color:var(--muted);font-size:10px}
.account-profile-details p strong{color:var(--ink);font-size:12px}
.profile-photo-form{display:flex;align-items:end;gap:14px;padding-top:15px;border-top:1px solid var(--line)}
.profile-photo-form label{display:grid;gap:7px;max-width:400px;color:var(--ink);font-size:11px;font-weight:600}
.profile-photo-form input{font:11px "DM Sans",sans-serif}
@media(max-width:700px){.account-summary-text,.account-menu-chevron{display:none}.account-menu-panel{right:-4px}.account-profile-details{align-items:flex-start;gap:13px}.account-profile-photo{width:74px;height:74px;border-radius:18px}.profile-photo-form{align-items:stretch;flex-direction:column}.profile-photo-form .button{align-self:flex-start}}
.email-test-form{display:flex;align-items:end;gap:10px;padding-top:14px;margin-top:14px;border-top:1px solid var(--line)}
.email-test-form label{display:grid;gap:6px;min-width:min(320px,100%);font-size:11px;font-weight:600;color:var(--ink)}
.email-test-form input{height:36px;padding:0 10px;border:1px solid var(--line);border-radius:7px;font:12px "DM Sans",sans-serif}
.email-template-form{display:grid;gap:14px}
.email-template-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 14px;padding:15px;border:1px solid var(--line);border-radius:12px}
.email-template-card legend{padding:0 7px;font:700 12px Manrope,sans-serif;color:var(--ink)}
.email-template-card label{display:grid;gap:6px;font-size:11px;font-weight:600;color:var(--ink)}
.email-template-card .wide-field{grid-column:1/-1}
.email-template-card input,.email-template-card textarea{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--ink);font:12px "DM Sans",sans-serif}
.email-template-card textarea{resize:vertical}
.email-template-card .email-event-toggle{display:flex;align-items:center;gap:7px;font-weight:500}
.email-template-card .email-event-toggle input{width:auto}
.verification-resend{margin-top:19px;padding-top:14px;border-top:1px solid var(--line)}
.verification-resend summary{cursor:pointer;color:var(--blue);font-size:11px;font-weight:600}
.verification-resend .stack-form{margin-top:12px}
@media(max-width:700px){.email-test-form{align-items:stretch;flex-direction:column}.email-test-form label{min-width:0}.email-template-card{grid-template-columns:1fr}.email-template-card .wide-field{grid-column:auto}}
.email-consent-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:18px;background:rgba(17,27,49,.62);backdrop-filter:blur(5px);animation:pf-pop .2s var(--ease) both}
.email-consent-dialog{width:min(100%,420px);padding:30px;border:1px solid rgba(255,255,255,.75);border-radius:20px;background:var(--paper);box-shadow:0 28px 85px rgba(8,15,35,.35);text-align:center}
.email-consent-icon{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 15px;border-radius:18px;background:var(--blue-soft);color:var(--blue);font-size:24px}
.email-consent-dialog .eyebrow{margin:0 0 7px}
.email-consent-dialog h2{margin:0 0 10px;font:800 21px Manrope,sans-serif;letter-spacing:-.5px;color:var(--ink)}
.email-consent-dialog .muted strong{display:block;margin-top:6px;color:var(--ink);overflow-wrap:anywhere}
.email-consent-actions{display:grid;gap:9px;margin-top:22px}
.email-consent-actions form{margin:0}
.email-consent-actions .button:not(.primary){width:100%;border:1px solid var(--line);background:var(--paper);color:var(--muted)}
/* Auth pages scroll when the card is taller than the screen. */
.login-page{display:flex;overflow-x:hidden;overflow-y:auto}
.login-page .login-card{margin:auto}
/* Competition vacancies, tabs, images. */
.competition-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.competition-tabs a{padding:9px 16px;border:1px solid #dde3f0;border-radius:999px;background:#fff;color:#33415f;font-weight:700;font-size:13px}
.competition-tabs a.active{background:var(--blue,#2f5bea);border-color:transparent;color:#fff}
.vacancy-picker{margin:12px 0;padding:12px 14px;border:1px solid #dde3f0;border-radius:12px;display:grid;gap:8px;max-height:200px;overflow:auto}
.vacancy-picker legend{padding:0 6px;font-weight:700;font-size:13px}
.check-option{display:flex;align-items:center;gap:8px;font-size:13px}
.check-option input{width:auto;margin:0}
.option-field,.file-field{display:grid;gap:6px}
.competition-thumb{max-width:60px;max-height:60px;border-radius:6px;object-fit:cover;border:1px solid #dde3f0}
.vacancy-chips{display:flex;flex-wrap:wrap;gap:6px}
.vacancy-chip{padding:3px 10px;border-radius:999px;background:#eef2ff;color:#2f4bb8;font-size:12px;font-weight:700}
.vacancy-admission,.vacancy-join-form{margin:14px 0;padding:14px;border:1px solid #dde3f0;border-radius:12px;background:#fff}
.vacancy-join-form{display:flex;flex-wrap:wrap;gap:10px;align-items:end}
.competition-group-title{margin:22px 0 10px;font-size:17px}
.inline-form input,.inline-form select{max-width:100%}

/* Keep administrator workspace text comfortable to read across dashboard pages. */
.app-shell.admin-view .page-content{font-size:15px;line-height:1.6}
.app-shell.admin-view .page-heading h1{font-size:30px;letter-spacing:-.6px}
.app-shell.admin-view .page-heading .eyebrow{font-size:11px;color:#65728a}
.app-shell.admin-view .muted{color:#5f6b7e;font-size:13px;line-height:1.65}
.app-shell.admin-view .section-heading h2{font-size:17px}
.app-shell.admin-view .stat-top{color:#59667a;font-size:12px}
.app-shell.admin-view .stat-card>small{color:#667287;font-size:12px}
.app-shell.admin-view .empty-state{color:#5d697d}
.app-shell.admin-view .empty-state strong{font-size:14px}
.app-shell.admin-view .empty-state p{font-size:13px}
.app-shell.admin-view .detail-list article{font-size:13px;line-height:1.6}
.app-shell.admin-view .detail-list article p{color:#5e6a7d;line-height:1.65}
.app-shell.admin-view th{color:#58657a;font-size:11px}
.app-shell.admin-view td{color:#4e5b70;font-size:13px;line-height:1.5}
.app-shell.admin-view .record-form label,.app-shell.admin-view .stack-form label{color:#4f5c70;font-size:13px}
.app-shell.admin-view .record-form input,.app-shell.admin-view .record-form select,.app-shell.admin-view .record-form textarea,.app-shell.admin-view .inline-answer input,.app-shell.admin-view .inline-answer select,.app-shell.admin-view .stack-form input{color:#303d52;font-size:13px}
.app-shell.admin-view .field-hint{color:#5f6b7e;font-size:12px;line-height:1.55}
.app-shell.admin-view .button{font-size:13px}
.app-shell.admin-view .text-link{font-size:13px}
.app-shell.admin-view .status{font-size:11px}
.app-shell.admin-view .breadcrumb{color:#5d697e;font-size:13px}
.app-shell.admin-view .breadcrumb strong{color:#28364c}
.app-shell.admin-view .role-pill{color:#4d5a70;font-size:10px}
.app-shell.admin-view .notification-menu summary{font-size:12px}
.app-shell.admin-view .notification-item span,.app-shell.admin-view .notification-item small{color:#5b687c;font-size:12px;line-height:1.5}
.app-shell.admin-view .notification-item b{font-size:13px}
.app-shell.admin-view .notification-read-all{font-size:12px}
.app-shell.admin-view .account-summary-text strong{font-size:12px}
.app-shell.admin-view .account-summary-text small,.app-shell.admin-view .account-menu-identity small{color:#59667a;font-size:11px}
.app-shell.admin-view .account-menu-panel>a{color:#45536a;font-size:13px}
@media(min-width:701px){
    .app-shell.admin-view .sidebar .nav-link{color:#d0d9f0;font-size:13px}
    .app-shell.admin-view .sidebar .nav-caption{color:#b5c0df;font-size:11px}
    .app-shell.admin-view .sidebar-brand small{color:#c1cbe2;font-size:10px}
    .app-shell.admin-view .sidebar-bottom .user-mini small{color:#c1cbe2;font-size:11px}
}
@media(max-width:700px){
    .app-shell.admin-view .page-heading h1{font-size:24px}
}