/* NanoStudent unified UI bundle - generated 2026-07-18. */

:root{
  --bg:#f3f6fb;
  --surface:#ffffff;
  --surface-2:#f8fbff;
  --text:#0f172a;
  --muted:#64748b;
  --line:#dbe4ef;
  --primary:#2563eb;
  --primary-2:#1d4ed8;
  --primary-soft:#eff6ff;
  --success:#16a34a;
  --success-soft:#eaf8ef;
  --danger:#dc2626;
  --danger-soft:#feecec;
  --shadow:0 14px 40px rgba(15,23,42,.06);
  --radius:24px;
  --drawer:#ffffff;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:Inter,Cairo,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}
body.rtl{font-family:Cairo,Inter,sans-serif}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
img{max-width:100%}
.container{max-width:1280px;margin:0 auto;padding:0 20px}
.site-shell{min-height:100vh}
.topbar{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.82);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:82px}
.brand{display:flex;align-items:center;gap:14px;font-size:18px;font-weight:800}
.brand-mark{width:46px;height:46px;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;box-shadow:var(--shadow)}
.brand-mark.small{width:42px;height:42px;border-radius:14px}
.brand-text{font-size:18px}
.desktop-nav{display:flex;align-items:center;gap:8px;flex:1;justify-content:center}
.top-link{padding:10px 14px;border-radius:14px;color:var(--muted);font-weight:600}
.top-link:hover,.top-link.active{color:var(--text);background:var(--surface)}

/* Header update: show only Student Dashboard button in the main navigation */
.student-only-nav{justify-content:center}
.student-dashboard-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:230px;
  padding:13px 38px;
  border-radius:999px;
  background:#eaf2ff;
  color:#2563eb;
  font-weight:800;
  font-size:18px;
  line-height:1;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 10px 24px rgba(37,99,235,.12);
  transition:.2s ease;
  white-space:nowrap;
  text-align:center;
}
.student-dashboard-pill:hover,.student-dashboard-pill.active{
  background:#dbeafe;
  color:#1d4ed8;
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(37,99,235,.16);
}
body.dark .student-dashboard-pill{background:rgba(37,99,235,.16);color:#93c5fd;border:1px solid rgba(147,197,253,.22)}
body.dark .student-dashboard-pill:hover,body.dark .student-dashboard-pill.active{background:rgba(37,99,235,.24);color:#bfdbfe}
.topbar-actions{display:flex;align-items:center;gap:10px}
.menu-toggle,.lang-btn,.theme-btn,.secondary-btn,.primary-btn,.ghost-btn,.side-close{border:1px solid var(--line);background:var(--surface);color:var(--text);padding:11px 14px;border-radius:16px;cursor:pointer;transition:.2s ease}
.primary-btn{background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;border:none;box-shadow:0 12px 26px rgba(37,99,235,.22)}
.secondary-btn:hover,.ghost-btn:hover,.lang-btn:hover,.theme-btn:hover,.menu-toggle:hover,.side-close:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(15,23,42,.06)}
.badge{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:13px;font-weight:700}
.page-shell{padding:28px 20px 48px}
.flash{padding:16px 18px;border-radius:18px;margin-bottom:18px;border:1px solid var(--line)}
.flash.success{background:var(--success-soft);border-color:#b9e4c5;color:#166534}.flash.error{background:var(--danger-soft);border-color:#fecaca;color:#991b1b}
.side-drawer{position:fixed;top:92px;right:22px;width:320px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 118px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;background:var(--drawer);border:1px solid var(--line);border-radius:28px;box-shadow:0 30px 80px rgba(15,23,42,.16);padding:18px;z-index:60;transform:translateY(-8px) scale(.98);opacity:0;pointer-events:none;transition:.22s ease}
body.drawer-open .side-drawer{transform:none;opacity:1;pointer-events:auto}
.drawer-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.18);backdrop-filter:blur(2px);opacity:0;pointer-events:none;z-index:55;transition:.2s ease}
body.drawer-open .drawer-backdrop{opacity:1;pointer-events:auto}
.side-drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;position:sticky;top:0;z-index:2;background:var(--drawer);padding-bottom:10px}
.side-brand{display:flex;align-items:center;gap:12px}.side-brand-title{font-weight:800}.side-brand-sub{font-size:13px;color:var(--muted)}
.side-section-title{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#94a3b8;margin:10px 0 12px}
.side-nav{display:flex;flex-direction:column;gap:8px;padding-bottom:18px}
.side-link{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:18px;font-weight:700;color:var(--text);border:1px solid transparent}
.side-link:hover{background:var(--surface-2);border-color:var(--line)}
.side-link.active{background:var(--primary-soft);color:var(--primary);border-color:#bfdbfe}
.side-icon{width:22px;text-align:center;opacity:.9}
.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:24px;align-items:center;padding:10px 0 16px}
.hero-card,.panel,.card,.stat-card,.question-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.hero-card{padding:34px;background:linear-gradient(180deg,var(--surface),#fbfdff)}
.panel,.card,.stat-card,.question-card{padding:24px}
.stack{display:flex;flex-direction:column;gap:18px}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.eyebrow{display:inline-flex;padding:8px 12px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:13px;font-weight:700}
.hero h1,.page-title,.section-title{margin:0 0 14px;line-height:1.05;font-weight:800;letter-spacing:-.03em}
.hero h1{font-size:60px}.page-title{font-size:42px}.section-title{font-size:34px}.page-subtitle,.muted{color:var(--muted)}.page-subtitle{margin:-4px 0 18px;font-size:18px}
.actions,.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.field{display:flex;flex-direction:column;gap:8px}.field label{font-weight:700}.field input,.field select,.field textarea{width:100%;padding:14px 16px;border-radius:18px;border:1px solid var(--line);background:var(--surface);color:var(--text)}.field textarea{min-height:140px;resize:vertical}
.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:15px 12px;border-bottom:1px solid var(--line);text-align:start;vertical-align:top}.table th{font-size:12px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.tag{display:inline-flex;padding:7px 12px;border-radius:999px;background:#eef2ff;color:#4f46e5;font-size:12px;font-weight:700}.small{font-size:13px}.empty{padding:18px;color:var(--muted);text-align:center}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.stat-card{padding:24px}.stat-label{font-size:13px;color:var(--muted);margin-bottom:10px;font-weight:700}.stat-value{font-size:38px;font-weight:800;line-height:1}
.notice{padding:14px 16px;border-radius:18px;border:1px solid #bfdbfe;background:var(--primary-soft);color:var(--primary);font-weight:700}
.question-nav{position:sticky;top:96px;display:flex;gap:8px;flex-wrap:wrap;padding:14px;border:1px solid var(--line);background:var(--surface);border-radius:20px;margin-bottom:18px;box-shadow:var(--shadow)}
.question-nav a{width:38px;height:38px;border-radius:14px;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;font-weight:700;background:#fff}
.question-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}
.options-list{display:grid;gap:12px;margin-top:10px}
.option-tile{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:var(--surface-2);cursor:pointer;transition:.18s ease}
.option-tile:hover{border-color:#bfd6ff;background:#f5f9ff}
.option-tile input{margin-top:4px}
.result-answer{border:1px solid var(--line);border-radius:18px;padding:14px 16px;background:var(--surface-2);margin-top:10px}
.result-answer.correct{background:var(--success-soft);border-color:#a7dfb6;color:#166534}
.result-answer.wrong{background:var(--danger-soft);border-color:#fecaca;color:#991b1b}
.msg-list{display:flex;flex-direction:column;gap:12px;max-height:360px;overflow:auto}.msg{padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}.msg .meta{font-size:12px;color:var(--muted);margin-bottom:6px}.inline-form{display:inline}
.site-footer{padding:28px 0 38px;color:var(--muted)}.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:18px;align-items:center}.footer-brand{font-size:20px;font-weight:800;color:var(--text)}.footer-links{display:flex;gap:16px;flex-wrap:wrap}.footer-copy{text-align:end}

body.dark{
  --bg:#081120;--surface:#0f172a;--surface-2:#101b31;--text:#e5eefb;--muted:#9db0cf;--line:#22314a;--drawer:#0b1324;--shadow:0 20px 50px rgba(0,0,0,.28)
}
body.dark .topbar{background:rgba(8,17,32,.86)}
body.dark .top-link:hover,body.dark .top-link.active{background:#0f172a}
body.dark .menu-toggle,body.dark .lang-btn,body.dark .theme-btn,body.dark .secondary-btn,body.dark .ghost-btn,body.dark .side-close,body.dark .field input,body.dark .field select,body.dark .field textarea,body.dark .question-nav a{background:#0f172a;color:var(--text);border-color:var(--line)}
body.dark .option-tile{background:#0f172a}
body.dark .option-tile:hover{background:#12203a;border-color:#305b9d}
body.dark .result-answer.correct{background:rgba(22,163,74,.14);border-color:rgba(34,197,94,.32);color:#b7f7c6}
body.dark .result-answer.wrong{background:rgba(220,38,38,.14);border-color:rgba(248,113,113,.32);color:#fecaca}

@media (max-width:1100px){
  .desktop-nav{display:none}
  .hero,.grid.four,.grid.three,.grid.two,.stats-grid,.footer-grid{grid-template-columns:1fr}
  .hero h1{font-size:46px}.page-title{font-size:36px}
}
@media (max-width:720px){
  .container{padding:0 14px}
  .topbar-inner{min-height:auto;padding:12px 0;flex-wrap:wrap}
  .topbar-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}
  .brand{font-size:16px}.brand-mark{width:42px;height:42px}
  .page-shell{padding:22px 14px 42px}
  .hero h1{font-size:38px}
  .page-title{font-size:32px}
  .side-drawer{top:72px;right:12px;left:12px;bottom:12px;width:auto;max-width:none;max-height:none;overflow-y:auto}
  .footer-copy{text-align:start}
}

.auth-card{max-width:640px;margin:auto}
.auth-card .toolbar{justify-content:space-between;align-items:center}
.form-help{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px}
.form-note{font-size:13px;color:var(--muted)}
.inline-actions{display:flex;gap:10px;flex-wrap:wrap}
.hero-checks{display:grid;gap:12px;margin:20px 0 0;padding:0;list-style:none}
.hero-checks li{padding:12px 14px;border:1px solid var(--line);background:var(--surface-2);border-radius:18px;font-weight:600}
.content-page{max-width:900px;margin:auto}
.content-page .card{padding:32px}
.content-page h2{margin:24px 0 8px}
.list-clean{padding-inline-start:18px}
.list-clean li{margin-bottom:10px}
.print-shell{max-width:960px;margin:auto;background:#fff;color:#111;padding:24px}
.print-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid var(--line)}
.print-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}
.print-box{border:1px solid var(--line);border-radius:18px;padding:14px;background:#fff}
.print-question{border:1px solid var(--line);border-radius:18px;padding:18px;margin-bottom:16px;break-inside:avoid}
.print-options{margin:10px 0 0;padding-inline-start:20px}
.print-toolbar{display:flex;justify-content:flex-end;gap:12px;margin-bottom:18px}
.exam-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.kpi{padding:18px;border:1px solid var(--line);border-radius:20px;background:var(--surface-2)}
.kpi strong{display:block;font-size:28px}
.question-item,.question-builder .question-item{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:24px;margin-bottom:18px;box-shadow:var(--shadow)}
.field input[type='checkbox']{width:20px;height:20px}
.login-links{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}
.page-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.note-card{background:linear-gradient(180deg,var(--surface),#fbfdff)}
@media (max-width: 900px){
  .hero,.exam-summary,.print-meta,.stats-grid,.grid.two,.grid.three,.grid.four{grid-template-columns:1fr}
  .desktop-nav{display:none}
}
@media print{
  .topbar,.site-footer,.drawer-backdrop,.side-drawer,.print-toolbar,.question-nav,.toolbar .secondary-btn,.toolbar .ghost-btn,.menu-toggle,.topbar-actions,.flash{display:none!important}
  body,html{background:#fff}
  .page-shell,.container{padding:0!important;max-width:none!important}
  .question-card,.card,.print-question{box-shadow:none!important;border-color:#ddd!important}
}

:root{
  --primary:#2563eb;
  --primary-soft:#eaf2ff;
  --accent:#7c3aed;
}
body{background:linear-gradient(180deg,#f3f7ff 0%, #eef4ff 32%, #f8fbff 100%)}
.topbar{backdrop-filter:blur(14px)}
.brand-mark{background:linear-gradient(135deg,var(--primary),var(--accent));box-shadow:0 10px 24px rgba(37,99,235,.22)}
.primary-btn{background:linear-gradient(135deg,var(--primary),#3b82f6);box-shadow:0 12px 24px rgba(37,99,235,.18)}
.hero-card,.card,.question-card,.stat-card,.panel{border-color:#dbe7ff}
.page-title{font-size:44px}
.field input,.field select,.field textarea{font-size:15px}
.countdown-chip,.exam-timer-card,.launch-countdown,.waiting-card{border-radius:22px}
.countdown-chip{display:inline-flex;align-items:center;padding:8px 12px;margin-top:8px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-weight:700}
.tag-neutral{background:#eef2f7;color:#334155}
.tag-warn{background:#fff7ed;color:#9a3412}
.tag-danger{background:#fee2e2;color:#b91c1c}
.exam-timer-card{min-width:220px;padding:16px 18px;background:linear-gradient(180deg,#ffffff,#edf4ff);border:1px solid #cfe0ff;box-shadow:0 18px 40px rgba(37,99,235,.12)}
.exam-timer{font-size:34px;font-weight:800;letter-spacing:.04em;color:#1d4ed8}
.waiting-card{max-width:760px;margin:auto;padding:34px;background:linear-gradient(180deg,#ffffff,#f8fbff)}
.launch-countdown{font-size:54px;font-weight:800;letter-spacing:.05em;text-align:center;padding:20px;background:linear-gradient(180deg,#eff6ff,#dbeafe);border:1px solid #bfdbfe;color:#1d4ed8}
body.dark .exam-timer-card{background:linear-gradient(180deg,#0f172a,#12233f);border-color:#23406d}
body.dark .launch-countdown{background:linear-gradient(180deg,#0f172a,#162b4f);border-color:#2a4779;color:#bfdbfe}
body.dark .countdown-chip{background:#2a1d12;border-color:#7c2d12;color:#fdba74}

.page-shell{display:block}
.hero-card{position:relative;overflow:hidden}
.hero-card:after{content:"";position:absolute;inset:auto -60px -60px auto;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle, rgba(37,99,235,.14), rgba(37,99,235,0));pointer-events:none}
.exam-timer-card{min-width:220px;padding:18px 20px;border-radius:22px;background:linear-gradient(135deg,#eff6ff,#ffffff);border:1px solid #bfdbfe;box-shadow:var(--shadow)}
.exam-timer,.launch-countdown{font-size:34px;font-weight:800;letter-spacing:.04em;line-height:1.1}
.countdown-chip{display:inline-flex;margin-top:8px;padding:8px 12px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-weight:700;font-size:13px}
.tag-neutral{background:#eef2f7;color:#334155}.tag-warn{background:#fff7ed;color:#c2410c}.tag-danger{background:#fee2e2;color:#b91c1c}
.waiting-card{max-width:760px;margin:24px auto;padding:34px;text-align:center}
.exam-banner{padding:14px 18px;border-radius:18px;border:1px solid #bbf7d0;background:#f0fdf4;color:#166534;font-weight:700}
.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.feature-item{padding:22px;border:1px solid var(--line);border-radius:24px;background:var(--surface);box-shadow:var(--shadow)}
.feature-item h3{margin:0 0 8px}
body.dark .exam-timer-card{background:linear-gradient(135deg,#12203a,#0f172a);border-color:#305b9d}
body.dark .countdown-chip{background:#12203a;color:#bfdbfe}
body.dark .tag-neutral{background:#172233;color:#dbeafe}
body.dark .tag-warn{background:#3a2413;color:#fed7aa}
body.dark .tag-danger{background:#3b1317;color:#fecaca}
body.dark .exam-banner{background:#10261a;border-color:#1f7a46;color:#bbf7d0}
@media (max-width:1100px){.feature-grid{grid-template-columns:1fr}}

.google-signin-block{margin-top:6px;display:flex;flex-direction:column;gap:14px}
.divider{position:relative;text-align:center;color:var(--muted);font-size:13px;font-weight:700}
.divider:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--line)}
.divider span{position:relative;display:inline-block;padding:0 12px;background:var(--surface)}
.google-login-form{display:none}
.security-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.security-card{padding:18px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(180deg,var(--surface),#fbfdff)}
.security-card h3{margin:0 0 8px;font-size:18px}
.compliance-list{display:grid;gap:12px;margin-top:10px}
.compliance-item{display:flex;gap:10px;align-items:flex-start;padding:14px 16px;border-radius:18px;border:1px solid var(--line);background:var(--surface-2)}
.exam-guard{position:sticky;top:96px;z-index:20;margin-bottom:18px;padding:14px 16px;border-radius:18px;border:1px solid #fed7aa;background:#fff7ed;color:#9a3412;font-weight:700;display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap}
.guard-count{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#fff;border:1px solid #fdba74}
.cheat-badge{display:inline-flex;padding:7px 12px;border-radius:999px;background:#fff7ed;color:#9a3412;font-size:12px;font-weight:800}
.cheat-badge.good{background:#ecfdf5;color:#166534}
@media (max-width:1100px){.security-grid{grid-template-columns:1fr}}


.google-oauth-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:14px 16px;border:1px solid rgba(15,23,42,.12);border-radius:14px;background:#fff;color:#111827;font-weight:700;text-decoration:none;box-shadow:0 8px 24px rgba(15,23,42,.06)}
.google-oauth-btn:hover{transform:translateY(-1px)}
.google-g{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:#fff;border:1px solid rgba(15,23,42,.1);font-weight:800}
.google-signin-block{margin-top:16px}

.terms-check{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:var(--surface-2);font-size:14px;line-height:1.7}
.terms-check input{margin-top:3px;flex:0 0 auto}
.terms-check a{color:var(--primary);font-weight:700}

@media (max-width: 720px){.student-dashboard-pill{min-width:170px;padding:12px 24px;font-size:16px}}


/* Account settings */
.account-settings-card h2{margin-top:0;margin-bottom:16px;font-size:1.25rem;font-weight:800;color:var(--text)}
.profile-preview{width:112px;height:112px;border-radius:32px;background:linear-gradient(135deg,#2563eb,#7c3aed);display:flex;align-items:center;justify-content:center;color:#fff;font-size:2.4rem;font-weight:800;box-shadow:0 18px 45px rgba(37,99,235,.22);overflow:hidden;margin:8px 0 18px}
.profile-preview img{width:100%;height:100%;object-fit:cover;display:block}
.account-settings-card input[type="file"]{padding:14px;background:#fff;border:1px solid var(--border);border-radius:18px;width:100%}
.dark .account-settings-card input[type="file"]{background:rgba(15,23,42,.7)}

/* Profile photos across menus and tables */
.user-avatar{width:46px;height:46px;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;font-weight:800;box-shadow:0 10px 24px rgba(37,99,235,.22);flex:0 0 auto}
.user-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.user-avatar.side-avatar{width:54px;height:54px;border-radius:18px}
.user-avatar.table-avatar{width:38px;height:38px;border-radius:14px;font-size:14px;box-shadow:none}
.user-cell{display:flex;align-items:center;gap:12px;min-width:180px}
.user-cell-text{display:flex;flex-direction:column;gap:2px;line-height:1.35}
.user-cell-name{font-weight:800;color:var(--text)}
.user-cell-email{font-size:12px;color:var(--muted);direction:ltr;text-align:start}
.msg-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.msg .meta{font-size:12px;color:var(--muted);font-weight:700}

/* Final avatar/logo refinements */
.brand .brand-mark{flex:0 0 auto}
.topbar-user-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.avatar-fallback{background:linear-gradient(135deg,#2563eb,#7c3aed)!important;color:#fff!important;font-weight:800!important;box-shadow:0 10px 24px rgba(37,99,235,.22)!important;text-transform:uppercase}
.avatar-fallback span{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:.95rem}
.user-avatar.table-avatar.avatar-fallback span{font-size:.8rem}
.user-avatar.side-avatar.avatar-fallback span{font-size:1.05rem}
.user-cell .user-avatar{flex:0 0 auto!important}
.table .user-cell{white-space:normal}
.table .user-cell-name{display:inline-block}
.profile-preview{max-width:112px;max-height:112px}
.profile-preview img{width:100%!important;height:100%!important;max-width:112px!important;max-height:112px!important;object-fit:cover!important}
img[alt="Profile photo"], .user-avatar img{max-width:100%!important;max-height:100%!important;object-fit:cover!important}

/* Admin control center utilities */
.danger-btn{border:1px solid #fecaca;background:#fee2e2;color:#991b1b;padding:11px 14px;border-radius:16px;cursor:pointer;transition:.2s ease;text-decoration:none;display:inline-block;font-weight:700}
.danger-btn:hover{filter:brightness(.98);transform:translateY(-1px)}
.alert-note{padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:rgba(245,158,11,.08);color:var(--text);margin:12px 0;line-height:1.7}
body.dark .danger-btn{background:#3b1317;color:#fecaca;border-color:#7f1d1d}

/* School fees module */
.tag-success{background:#dcfce7;color:#166534}
body.dark .tag-success{background:#052e16;color:#bbf7d0}
.compact-form input,.compact-form select,.compact-form textarea{min-width:120px;max-width:220px}
.inline-actions form{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap}
@media(max-width:780px){.compact-form input,.compact-form select,.compact-form textarea{max-width:100%;width:100%}}
.row-between{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.check-row{display:flex;align-items:center;gap:10px;font-weight:700}.notice-card-unread{border-color:#93c5fd;box-shadow:0 12px 30px rgba(37,99,235,.10)}.danger-btn{background:#fee2e2;color:#991b1b;border:0;border-radius:12px;padding:10px 14px;font-weight:800;cursor:pointer}.inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.muted{color:var(--muted)}
@media(max-width:780px){.row-between{display:block}.inline-form select,.inline-form button{width:100%}}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}@media(max-width:780px){.grid-3,.grid-4{grid-template-columns:1fr}}


/* Finance UI hotfix: readable ledger cards instead of cramped wide table */
.finance-toolbar{justify-content:flex-end;flex-wrap:wrap}.finance-toolbar .ghost-btn{white-space:nowrap}.finance-alert-card .toolbar{align-items:center}.fee-ledger-list{display:grid;gap:18px;margin-top:12px}.fee-account-card{border:1px solid var(--line);border-radius:24px;background:linear-gradient(180deg,var(--surface),#fbfdff);padding:18px;box-shadow:0 10px 28px rgba(15,23,42,.04)}.fee-account-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px;flex-wrap:wrap}.fee-student-name{font-size:18px}.finance-form-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;gap:12px;align-items:end}.finance-form-grid .field{margin:0}.finance-form-grid input,.finance-form-grid select,.finance-form-grid textarea{width:100%;min-width:0}.readonly-money{padding:10px 12px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.readonly-money label{display:block;color:var(--muted);font-size:12px;font-weight:800}.readonly-money strong{font-size:15px;display:block}.finance-note-field{grid-column:span 2}.fee-actions-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:12px}.fee-actions-row .ghost-btn,.fee-actions-row .danger-btn{white-space:nowrap}.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table{min-width:720px}.card{overflow:hidden}.toolbar input,.toolbar select{max-width:100%}
@media(max-width:1180px){.finance-form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.finance-note-field{grid-column:span 4}}
@media(max-width:760px){.finance-form-grid{grid-template-columns:1fr}.finance-note-field{grid-column:auto}.fee-account-card{padding:14px}.fee-actions-row .ghost-btn,.fee-actions-row .danger-btn{width:100%;text-align:center}.finance-toolbar{justify-content:flex-start}.finance-toolbar .ghost-btn{width:100%;text-align:center}.stats-grid{grid-template-columns:1fr!important}}
body.rtl .fee-account-card, body.rtl .finance-form-grid{text-align:right}


/* 2026-07-04 UI hotfix v2: stronger responsive forms, RTL tables, finance cards */
.card{overflow:visible}
.toolbar{flex-wrap:wrap;gap:12px}
.toolbar .ghost-btn,.toolbar .secondary-btn,.toolbar .primary-btn{white-space:nowrap}
.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px}
.table{width:100%;border-collapse:separate;border-spacing:0;min-width:780px}
.table th,.table td{vertical-align:middle;padding:14px 12px;white-space:normal}
.table input,.table select,.table textarea{min-width:150px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text)}
.table button,.table .ghost-btn,.table .danger-btn{min-height:38px;display:inline-flex;align-items:center;justify-content:center}
.finance-toolbar{justify-content:flex-start;flex-wrap:wrap}
.finance-toolbar .ghost-btn{white-space:nowrap}
.finance-alert-card .toolbar{align-items:center;justify-content:flex-start}
.fee-ledger-list{display:grid;gap:18px;margin-top:12px}
.fee-account-card{border:1px solid var(--line);border-radius:24px;background:linear-gradient(180deg,var(--surface),#fbfdff);padding:20px;box-shadow:0 10px 28px rgba(15,23,42,.04);overflow:visible}
body.dark .fee-account-card{background:linear-gradient(180deg,#0f172a,#111827)}
.fee-account-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:16px;flex-wrap:wrap}
.fee-student-name{font-size:18px}
.finance-form-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important;gap:14px;align-items:end;width:100%}
.finance-form-grid .field{margin:0;min-width:0}
.finance-form-grid input,.finance-form-grid select,.finance-form-grid textarea{width:100%;min-width:0}
.readonly-money{padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.readonly-money label{display:block;color:var(--muted);font-size:12px;font-weight:800;margin-bottom:6px}
.readonly-money strong{font-size:16px;display:block;line-height:1.3}
.finance-note-field{grid-column:1 / -1!important}
.fee-actions-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:14px}
.fee-actions-row .ghost-btn,.fee-actions-row .danger-btn{white-space:nowrap}
.structure-link-list{display:grid;gap:14px;margin-top:14px}
.structure-link-card{display:grid;grid-template-columns:1.3fr 1fr 1fr auto;gap:14px;align-items:end;border:1px solid var(--line);border-radius:18px;padding:14px;background:rgba(255,255,255,.58)}
body.dark .structure-link-card{background:rgba(15,23,42,.7)}
.structure-student-name{font-weight:800;font-size:16px}
.structure-student-email{font-size:13px;color:var(--muted);margin-top:4px;word-break:break-word}
.structure-link-card .field{margin:0}
.structure-link-card select{width:100%;min-width:0;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text)}
body.rtl .fee-account-card,body.rtl .finance-form-grid,body.rtl .structure-link-card{text-align:right}
body.rtl .toolbar,body.rtl .fee-actions-row{direction:rtl}
@media(max-width:900px){.grid.two,.grid.three{grid-template-columns:1fr!important}.structure-link-card{grid-template-columns:1fr}.finance-form-grid{grid-template-columns:1fr!important}.fee-actions-row .ghost-btn,.fee-actions-row .danger-btn,.finance-toolbar .ghost-btn{width:100%;text-align:center}.stats-grid{grid-template-columns:1fr!important}.table{min-width:680px}}
@media print{.topbar,.side-drawer,.drawer-backdrop,.toolbar,.no-print{display:none!important}.card{box-shadow:none!important}}


/* NanoStudent Rewards redesign */
.reward-hero,.student-reward-hero{border-radius:28px;padding:28px;background:linear-gradient(135deg,#0f172a,#312e81 55%,#2563eb);color:#fff;box-shadow:0 24px 60px rgba(37,99,235,.20);display:flex;justify-content:space-between;gap:24px;align-items:center;margin:18px 0}.reward-hero h2,.student-reward-hero h2{margin:6px 0 8px;font-size:30px}.reward-hero p,.student-reward-hero p{color:rgba(255,255,255,.78);margin:0}.reward-kicker{display:inline-flex;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:6px 12px;font-weight:800}.reward-hero-stat{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:22px;padding:20px 28px;text-align:center;min-width:170px}.reward-hero-stat strong{display:block;font-size:34px}.reward-hero-stat span{color:rgba(255,255,255,.75)}
.reward-podium-card{background:linear-gradient(180deg,#fff,#f8fbff);border:1px solid #dbeafe;border-radius:24px;padding:20px;box-shadow:0 18px 45px rgba(15,23,42,.08)}.reward-podium-head{text-align:center;margin-bottom:16px}.reward-podium-head h3{margin:0;font-size:21px}.reward-podium-head p{margin:6px 0 0;color:#64748b}.reward-podium{display:flex;align-items:flex-end;justify-content:center;gap:14px;min-height:210px}.podium-place{flex:1;text-align:center;background:#fff;border:1px solid #e2e8f0;border-radius:22px;padding:14px 10px 0;box-shadow:0 12px 30px rgba(15,23,42,.08);position:relative;overflow:hidden}.podium-place.rank-1{order:2;transform:translateY(-18px);border-color:#facc15}.podium-place.rank-2{order:1}.podium-place.rank-3{order:3}.podium-avatar,.student-avatar-big,.avatar-mini{display:inline-grid;place-items:center;background:linear-gradient(135deg,#dbeafe,#ede9fe);color:#1e3a8a;font-weight:800}.podium-avatar{width:58px;height:58px;border-radius:50%;font-size:24px}.student-avatar-big{width:76px;height:76px;border-radius:28px;font-size:30px}.avatar-mini{width:38px;height:38px;border-radius:14px}.podium-medal{font-size:30px;margin-top:-8px}.podium-place strong{display:block;margin:6px 0;color:#0f172a}.podium-place span{color:#2563eb;font-weight:800}.podium-step{margin-top:12px;padding:14px;border-radius:18px 18px 0 0;background:linear-gradient(180deg,#f8fafc,#e2e8f0);font-size:26px;font-weight:800}.rank-1 .podium-step{background:linear-gradient(180deg,#fde68a,#f59e0b);color:#fff}.rank-2 .podium-step{background:linear-gradient(180deg,#e5e7eb,#94a3b8);color:#fff}.rank-3 .podium-step{background:linear-gradient(180deg,#fdba74,#c2410c);color:#fff}
.reward-award-card{border:1px solid #dbeafe}.reward-badge-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}.reward-badge-option{cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:18px;padding:12px;text-align:center;transition:.18s}.reward-badge-option:hover,.reward-badge-option:has(input:checked){border-color:#2563eb;box-shadow:0 12px 30px rgba(37,99,235,.12);transform:translateY(-2px)}.reward-badge-option input{display:none}.reward-badge-option strong{display:block;font-size:14px;margin-top:8px}.reward-badge-option small{color:#64748b}.reward-badge-icon{width:48px;height:48px;border-radius:16px;display:inline-grid;place-items:center;font-size:24px;background:#dbeafe;border:1px solid rgba(255,255,255,.6);box-shadow:inset 0 1px rgba(255,255,255,.4),0 10px 22px rgba(15,23,42,.08)}.reward-gold{background:linear-gradient(135deg,#fde68a,#f59e0b)}.reward-green{background:linear-gradient(135deg,#bbf7d0,#16a34a)}.reward-purple{background:linear-gradient(135deg,#ddd6fe,#7c3aed)}.reward-blue{background:linear-gradient(135deg,#bfdbfe,#2563eb)}.reward-navy{background:linear-gradient(135deg,#dbeafe,#1e3a8a)}.reward-orange{background:linear-gradient(135deg,#fed7aa,#ea580c)}.reward-teal{background:linear-gradient(135deg,#ccfbf1,#0d9488)}
.reward-student-list,.reward-feed{display:flex;flex-direction:column;gap:12px}.reward-student-row,.reward-feed-item{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:12px}.reward-student-row b{margin-inline-start:auto;color:#2563eb}.reward-student-row small,.reward-feed-item small{display:block;color:#64748b}.rank-pill{min-width:42px;text-align:center;font-weight:800;font-size:20px}.reward-feed-item p{margin:4px 0;color:#475569}.reward-feed-wide{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.student-reward-hero{background:#0b1029 url('/assets/img/reward-stars.svg');align-items:stretch}.student-reward-hero.compact{margin-top:12px}.hero-night{flex:1;background:linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.16);border-radius:24px;padding:22px}.hero-user{display:flex;align-items:center;gap:16px}.reward-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.reward-progress div{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:12px}.reward-progress strong{display:block;font-size:28px}.reward-progress span{color:rgba(255,255,255,.74)}.progress-bar{height:12px;border-radius:999px;background:rgba(255,255,255,.16);overflow:hidden}.progress-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#22c55e,#60a5fa)}.rank-card{min-width:220px;background:#fff;color:#0f172a;border-radius:24px;padding:28px;text-align:center;display:grid;place-items:center;box-shadow:0 20px 45px rgba(15,23,42,.12)}.rank-number{font-size:54px;font-weight:800;color:#2563eb}.earned-badges{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}.earned-badge{background:#fff;border:1px solid #e2e8f0;border-radius:20px;padding:16px;text-align:center}.earned-badge strong{display:block;margin:8px 0}.earned-badge small{color:#64748b}.filters-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}.grid.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}@media(max-width:1000px){.grid.three,.filters-row{grid-template-columns:1fr}.reward-hero,.student-reward-hero{flex-direction:column}.rank-card{width:100%}.reward-progress{grid-template-columns:1fr}.reward-podium{flex-direction:column;align-items:stretch}.podium-place.rank-1{transform:none}.podium-place{order:initial!important}.podium-step{border-radius:18px}}

/* Mobile drawer scroll fix - 2026-07-09 */
@supports not (height: 100dvh){
  .side-drawer{max-height:calc(100vh - 118px)}
}
body.drawer-open{overflow:hidden}
.side-drawer::-webkit-scrollbar{width:8px}
.side-drawer::-webkit-scrollbar-thumb{background:rgba(100,116,139,.35);border-radius:999px}
.side-drawer::-webkit-scrollbar-track{background:transparent}
@media (max-width:720px){
  body.drawer-open .side-drawer{display:block}
}

/* Student launch UX full fix - 2026-07-09 */
.topbar-icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:10px 13px;border:1px solid var(--line);border-radius:16px;background:var(--surface);font-weight:800;color:var(--text)}
.credit-chip{background:linear-gradient(135deg,#eff6ff,#fff);color:#1d4ed8;border-color:#bfdbfe}
.topbar-lang-menu{position:relative;display:inline-block}
.topbar-lang-menu summary{list-style:none;cursor:pointer;min-height:42px;display:inline-flex;align-items:center;justify-content:center;padding:10px 13px;border:1px solid var(--line);border-radius:16px;background:var(--surface);font-weight:800}
.topbar-lang-menu summary::-webkit-details-marker{display:none}
.topbar-lang-menu[open] summary{border-color:#bfdbfe;color:#1d4ed8;background:#eff6ff}
.topbar-lang-menu a{display:block;padding:10px 14px;white-space:nowrap;color:var(--text)}
.topbar-lang-menu[open]{z-index:70}
.side-logout-link{margin-top:8px;color:#b91c1c!important;background:#fff1f2;border-color:#fecdd3!important}
body.dark .topbar-icon-btn,body.dark .topbar-lang-menu summary{background:#0f172a;color:var(--text);border-color:var(--line)}
body.dark .credit-chip{background:rgba(37,99,235,.16);color:#bfdbfe}

.student-hero-smart{display:grid;grid-template-columns:1.4fr .6fr;gap:18px;align-items:stretch;margin-bottom:18px;padding:28px;border:1px solid #cfe0ff;border-radius:32px;background:linear-gradient(135deg,#ffffff,#eff6ff 55%,#e0e7ff);box-shadow:0 18px 50px rgba(37,99,235,.12);overflow:hidden;position:relative}
.student-hero-smart:after{content:"";position:absolute;width:260px;height:260px;inset:auto -90px -110px auto;border-radius:999px;background:radial-gradient(circle,rgba(37,99,235,.22),rgba(37,99,235,0));pointer-events:none}
.student-hero-content{position:relative;z-index:1}.student-hero-content h1{font-size:44px;line-height:1.05;margin:10px 0}.student-hero-content p{font-size:17px;color:#475569;max-width:680px}.student-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}.big-action{font-size:17px;padding:14px 22px}.student-hero-side{display:grid;place-items:center;position:relative;z-index:1}.credit-balance-card{width:100%;min-height:180px;border:1px solid rgba(37,99,235,.18);border-radius:26px;background:rgba(255,255,255,.72);box-shadow:0 18px 42px rgba(15,23,42,.08);padding:22px;display:flex;flex-direction:column;justify-content:center;text-align:center}.credit-balance-card span{color:#64748b;font-weight:800}.credit-balance-card strong{font-size:40px;color:#1d4ed8}.credit-balance-card a{color:#2563eb;font-weight:800}
.student-insight-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.student-insight{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow)}.student-insight span{display:block;color:var(--muted);font-size:13px;font-weight:800}.student-insight strong{display:block;font-size:28px;line-height:1.2;margin:6px 0}.student-insight small{display:block;color:var(--muted);font-size:12px;line-height:1.5}
.student-dashboard-grid{margin-top:18px}.daily-task-card,.suggested-test-card{background:linear-gradient(180deg,var(--surface),#fbfdff)}.daily-steps{display:grid;gap:10px;margin:16px 0}.daily-steps div{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2)}.daily-steps b{width:28px;height:28px;border-radius:10px;display:inline-grid;place-items:center;background:#dbeafe;color:#1d4ed8}.section-head-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.section-head-row h2,.section-head-row .section-title{margin:0}.section-head-row a{color:#2563eb;font-weight:800}.student-card-list{display:flex;flex-direction:column;gap:12px}.student-list-card{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:18px;background:var(--surface-2);padding:14px;overflow:hidden}.student-list-card strong{display:block}.student-list-card small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.student-card-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.message-card-clean p{margin:8px 0 0;color:var(--text)}.empty-state-smart{text-align:center;border:1px dashed #bfd6ff;border-radius:22px;background:#f8fbff;padding:26px}.empty-state-smart div{font-size:34px}.empty-state-smart h3{margin:8px 0}.empty-state-smart p{color:var(--muted);margin:0 0 14px}.score-pill{display:inline-flex;padding:8px 12px;border-radius:999px;font-weight:800}.score-pill.good{background:#dcfce7;color:#166534}.score-pill.mid{background:#fff7ed;color:#c2410c}.score-pill.low{background:#fee2e2;color:#991b1b}.soft-notice{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}

.credit-confirm-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.credit-confirm-panel>div{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:16px;box-shadow:var(--shadow)}.credit-confirm-panel span{display:block;color:var(--muted);font-size:13px;font-weight:800}.credit-confirm-panel strong{font-size:24px}.low-credit{color:#dc2626!important}.smart-practice-form{margin:auto}.upload-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;min-height:180px;padding:24px;border:2px dashed #bfd6ff;border-radius:24px;background:linear-gradient(180deg,#f8fbff,#eff6ff);cursor:pointer;transition:.18s}.upload-dropzone:hover{border-color:#2563eb;transform:translateY(-1px)}.upload-dropzone input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.upload-icon{font-size:34px}.upload-dropzone strong{font-size:17px}.upload-dropzone small{color:var(--muted)}.upload-dropzone em{font-style:normal;color:#2563eb;font-weight:800;word-break:break-all}.compact-upload{min-height:140px;padding:18px}

.practice-test-shell{max-width:980px;margin:auto}.practice-test-top{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:16px}.practice-status-box{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:10px}.practice-status-box div{border:1px solid var(--line);border-radius:18px;background:var(--surface-2);padding:12px;text-align:center}.practice-status-box span{display:block;color:var(--muted);font-size:12px;font-weight:800}.practice-status-box strong{display:block;color:#1d4ed8}.question-progress-wrap{position:sticky;top:96px;z-index:10;margin-bottom:16px;background:rgba(243,247,255,.86);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:22px;padding:12px}.question-progress-bar{height:10px;background:#dbeafe;border-radius:999px;overflow:hidden;margin-bottom:10px}.question-progress-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2563eb,#7c3aed);transition:.2s}.question-dots{display:flex;gap:8px;flex-wrap:wrap}.question-dot{width:38px;height:38px;border:1px solid var(--line);border-radius:14px;background:var(--surface);font-weight:800;cursor:pointer}.question-dot.active{background:#2563eb;color:#fff;border-color:#2563eb}.question-dot.answered:not(.active){background:#dcfce7;color:#166534;border-color:#bbf7d0}.practice-step{display:none}.practice-step.active{display:block}.practice-nav-actions{display:flex;gap:12px;justify-content:space-between;align-items:center}.submit-practice-btn{display:none}.practice-nav-actions button:disabled{opacity:.45;cursor:not-allowed;transform:none!important}.option-tile:has(input:checked){border-color:#2563eb;background:#eff6ff;box-shadow:0 12px 26px rgba(37,99,235,.10)}

.result-smart-hero{display:flex;gap:22px;align-items:center;background:linear-gradient(135deg,#ffffff,#eff6ff);margin-bottom:18px}.result-score-ring{width:170px;height:170px;border-radius:50%;display:grid;place-items:center;text-align:center;background:conic-gradient(#2563eb 0 var(--score-pct,75%),#dbeafe var(--score-pct,75%) 100%);position:relative;flex:none}.result-score-ring:after{content:"";position:absolute;inset:12px;border-radius:50%;background:var(--surface)}.result-score-ring strong,.result-score-ring span{position:relative;z-index:1}.result-score-ring strong{font-size:36px;color:#1d4ed8}.result-score-ring span{color:var(--muted);font-weight:800}.result-smart-copy h2{font-size:22px;line-height:1.45}.result-badge{display:inline-flex;padding:8px 12px;border-radius:999px;background:#fff7ed;color:#c2410c;font-weight:800}.result-actions-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.result-kpis{margin-bottom:18px}.weak-points-card{margin-bottom:18px}.result-question-card.is-wrong{border-color:#fecaca}.result-question-card.is-correct{border-color:#bbf7d0}

.credit-help-card{margin:18px 0}.credit-help-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.credit-help-grid div{border:1px solid var(--line);border-radius:18px;background:var(--surface-2);padding:14px}.credit-help-grid p{margin:8px 0 0;color:var(--muted);font-size:14px}.gift-code-card{background:linear-gradient(180deg,#fff,#f8fbff)}.cost-list .student-list-card{align-items:center}.pricing-section{margin:26px 0}.pricing-card h3{font-size:24px;margin:0}.pricing-focus-note{margin-bottom:18px}

.a4-print-shell{width:210mm;max-width:100%;min-height:297mm;padding:18mm;background:#fff;color:#111;border-radius:0}.professional-print-head{border-bottom:2px solid #111}.print-brand-block{display:flex;align-items:center;gap:12px}.print-brand-block h1{margin:0}.print-brand-block p{margin:2px 0 0;color:#555}.print-logo{box-shadow:none}.print-doc-title{text-align:end;display:flex;flex-direction:column;gap:4px}.professional-print-meta .print-box{display:flex;flex-direction:column;gap:4px}.professional-print-meta .print-box span{color:#333}

body.dark .student-hero-smart,body.dark .result-smart-hero,body.dark .daily-task-card,body.dark .suggested-test-card,body.dark .gift-code-card{background:linear-gradient(135deg,#0f172a,#101b31)}body.dark .student-hero-content p,body.dark .empty-state-smart p,body.dark .credit-help-grid p{color:var(--muted)}body.dark .credit-balance-card,body.dark .empty-state-smart,body.dark .upload-dropzone,body.dark .question-progress-wrap{background:#0f172a;border-color:var(--line)}body.dark .student-list-card,body.dark .daily-steps div,body.dark .credit-help-grid div{background:#101b31}body.dark .result-score-ring:after{background:#0f172a}
@media(max-width:900px){.student-hero-smart,.student-insight-grid,.credit-confirm-panel,.credit-help-grid{grid-template-columns:1fr}.practice-test-top,.result-smart-hero{flex-direction:column;align-items:stretch}.result-score-ring{margin:auto}.student-list-card{align-items:flex-start;flex-direction:column}.student-card-actions{justify-content:flex-start}.practice-status-box{grid-template-columns:1fr}.section-head-row{align-items:flex-start;flex-direction:column}}
@media(max-width:720px){.topbar-inner{flex-wrap:nowrap;min-height:64px}.brand-text{display:none}.compact-topbar-actions{width:auto;margin-inline-start:auto;gap:6px;flex-wrap:nowrap}.topbar-theme,.topbar-account-avatar{display:none}.topbar-icon-btn,.topbar-lang-menu summary,.menu-toggle{min-height:38px;padding:8px 10px;border-radius:14px}.credit-chip strong{font-size:13px}.page-title{font-size:30px}.student-hero-smart{padding:20px;border-radius:24px}.student-hero-content h1{font-size:32px}.student-hero-actions .primary-btn,.student-hero-actions .secondary-btn,.practice-nav-actions .primary-btn,.practice-nav-actions .secondary-btn{width:100%;justify-content:center}.question-progress-wrap{top:72px}.practice-nav-actions{flex-direction:column}.practice-nav-actions button{width:100%}.result-actions-row .primary-btn,.result-actions-row .secondary-btn,.result-actions-row .ghost-btn,.result-actions-row form{width:100%}.result-actions-row button{width:100%}.credit-help-grid{grid-template-columns:1fr}.a4-print-shell{width:100%;min-height:auto;padding:18px}.professional-print-head,.print-meta{grid-template-columns:1fr;flex-direction:column;text-align:start}.print-doc-title{text-align:start}}
@media print{body,html{background:#fff!important}.a4-print-shell{width:210mm;min-height:297mm;padding:16mm;margin:0 auto;box-shadow:none!important}.professional-print-head{break-inside:avoid}.print-question{break-inside:avoid;page-break-inside:avoid}.site-footer,.topbar,.side-drawer,.drawer-backdrop,.no-print,.print-toolbar,.toolbar,.flash{display:none!important}}
/* 2026-07-09 video polish: clearer current-page title and dark-mode readability */
body.dark .page-title, body.dark .section-title, body.dark .student-dashboard-pill{color:#eaf2ff}
body.dark .page-subtitle{color:#b7c7e5}
body.dark .page-shell{background:radial-gradient(circle at top, rgba(37,99,235,.12), transparent 34%), var(--bg)}
body.dark .card, body.dark .panel, body.dark .stat-card, body.dark .question-card{background:var(--surface);color:var(--text)}
body.dark .tag{background:#172554;color:#bfdbfe;border:1px solid rgba(147,197,253,.24)}
body.dark .tag-success{background:#052e16;color:#bbf7d0;border-color:#166534}
.parent-practice-card .score-pill{min-width:72px;justify-content:center}
@media(max-width:720px){.student-dashboard-pill{min-width:auto;max-width:150px;padding:11px 18px;font-size:14px;overflow:hidden;text-overflow:ellipsis}.parent-practice-card .student-card-actions{width:100%}.parent-practice-card .primary-btn,.parent-practice-card .ghost-btn{width:100%;justify-content:center;text-align:center}}
/* NanoStudent teacher video polish: prevent dashboard table overflow and improve compact action groups. */
.teacher-dashboard-list .student-list-card{align-items:center}.compact-actions{gap:8px;margin:0;flex-wrap:wrap;justify-content:flex-end}.teacher-credit-panel{margin-bottom:18px}@media(max-width:760px){.compact-actions{justify-content:flex-start}.teacher-dashboard-list .student-list-card{align-items:flex-start}.teacher-credit-panel{grid-template-columns:1fr}}


/* ======================================================================
   NanoStudent Professional Design System Polish — 2026-07-09
   Applies across admin, school, teacher, parent, accountant, and student.
   ====================================================================== */
:root{
  --font-ui: Inter, Cairo, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bg:#f5f7fb;
  --surface:#ffffff;
  --surface-2:#f8fafc;
  --surface-3:#eef4ff;
  --text:#0f172a;
  --muted:#667085;
  --line:#dfe7f3;
  --line-strong:#cbd7e8;
  --primary:#2563eb;
  --primary-2:#1d4ed8;
  --accent:#7c3aed;
  --warning:#f59e0b;
  --warning-soft:#fff7ed;
  --success:#16a34a;
  --success-soft:#ecfdf3;
  --danger:#dc2626;
  --danger-soft:#fff1f2;
  --info-soft:#eef6ff;
  --radius:22px;
  --radius-sm:14px;
  --radius-lg:30px;
  --shadow:0 16px 46px rgba(15,23,42,.075);
  --shadow-sm:0 8px 22px rgba(15,23,42,.055);
  --focus:0 0 0 4px rgba(37,99,235,.16);
}
html{scroll-behavior:smooth}
body{font-family:var(--font-ui);font-size:15.5px;line-height:1.72;background:radial-gradient(circle at 50% -10%,rgba(37,99,235,.12),transparent 35%),linear-gradient(180deg,#f7faff 0%,#f3f6fb 38%,#f8fbff 100%);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body.rtl{letter-spacing:0}
body.dark{--bg:#081120;--surface:#0f172a;--surface-2:#111c32;--surface-3:#13233d;--text:#eaf2ff;--muted:#a8b7d2;--line:#243550;--line-strong:#334968;--shadow:0 18px 50px rgba(0,0,0,.34);--shadow-sm:0 10px 28px rgba(0,0,0,.24);background:radial-gradient(circle at top,rgba(37,99,235,.14),transparent 34%),#081120}
.container{max-width:1320px}.page-shell{padding-top:34px}.site-shell{overflow-x:hidden}.topbar{border-bottom:1px solid rgba(203,213,225,.72);box-shadow:0 8px 32px rgba(15,23,42,.035)}body.dark .topbar{border-bottom-color:rgba(51,65,85,.72)}
.topbar-inner{min-height:76px}.brand{min-width:max-content}.brand-mark{font-weight:800;letter-spacing:-.04em}.brand-text{letter-spacing:-.02em}.student-dashboard-pill{border:1px solid rgba(37,99,235,.14);font-size:16px;min-width:210px;max-width:320px;overflow:hidden;text-overflow:ellipsis}.topbar-icon-btn,.credit-chip,.topbar-lang-menu summary{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:10px 13px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.78);color:var(--text);font-weight:800;box-shadow:var(--shadow-sm);cursor:pointer;transition:.18s ease}.topbar-icon-btn:hover,.credit-chip:hover,.topbar-lang-menu summary:hover{transform:translateY(-1px);border-color:#b9cff5}.credit-chip{color:#1d4ed8;background:linear-gradient(180deg,#eff6ff,#ffffff)}body.dark .topbar-icon-btn,body.dark .credit-chip,body.dark .topbar-lang-menu summary{background:#0f172a;border-color:var(--line);box-shadow:none}.topbar-avatar{width:42px;height:42px;border-radius:15px}.topbar-lang-menu{position:relative}.topbar-lang-menu summary{list-style:none}.topbar-lang-menu summary::-webkit-details-marker{display:none}.topbar-lang-menu a{z-index:80;background:var(--surface);padding:10px 14px;color:var(--text);box-shadow:var(--shadow-sm)}
.side-drawer{padding:18px 14px 18px 18px}.side-link{min-height:48px;padding:12px 14px;border-radius:16px;line-height:1.35}.side-link span:last-child{white-space:normal}.side-icon{flex:0 0 24px}.side-link:hover{transform:translateX(-1px)}body:not(.rtl) .side-link:hover{transform:translateX(1px)}.side-section-title{padding-inline:4px}.side-brand-title{font-size:15px}.side-brand-sub{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hero-card,.panel,.card,.stat-card,.question-card,.feature-item,.security-card{border:1px solid rgba(203,213,225,.82);box-shadow:var(--shadow);background:linear-gradient(180deg,var(--surface),rgba(255,255,255,.92));transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.card:hover,.panel:hover,.stat-card:hover,.question-card:hover{border-color:rgba(37,99,235,.24);box-shadow:0 18px 54px rgba(15,23,42,.09)}body.dark .hero-card,body.dark .panel,body.dark .card,body.dark .stat-card,body.dark .question-card,body.dark .feature-item,body.dark .security-card{background:linear-gradient(180deg,#0f172a,#101b31);border-color:var(--line)}
.page-title,.section-title,.hero h1{letter-spacing:-.045em}.page-title{font-size:clamp(30px,3vw,44px)}.section-title{font-size:clamp(26px,2.4vw,36px)}.page-subtitle{max-width:880px;color:var(--muted);line-height:1.75}.toolbar,.actions{row-gap:10px}.toolbar h1,.toolbar h2,.toolbar h3{margin-top:0}.row-between{align-items:center}.inline-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.inline-actions form{margin:0}.primary-btn,.secondary-btn,.ghost-btn,.danger-btn,.menu-toggle,.lang-btn,.theme-btn,.side-close,button{font-weight:800;line-height:1.25}.primary-btn,.secondary-btn,.ghost-btn,.danger-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:43px}.primary-btn:hover,.secondary-btn:hover,.ghost-btn:hover,.danger-btn:hover{transform:translateY(-1px)}.ghost-btn{background:rgba(255,255,255,.65)}.secondary-btn{background:linear-gradient(180deg,#ffffff,#f8fafc)}body.dark .secondary-btn,body.dark .ghost-btn{background:#0f172a}.danger-btn{background:var(--danger-soft)}
.field{gap:7px}.field label{font-size:13px;color:#344054}.field input,.field select,.field textarea{min-height:46px;border-radius:16px;border-color:var(--line);box-shadow:inset 0 1px 0 rgba(255,255,255,.55);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:#8bb7ff;box-shadow:var(--focus)}.field input::placeholder,.field textarea::placeholder{color:#98a2b3}.field textarea{line-height:1.7}body.dark .field label{color:#c8d5ef}body.dark .field input:focus,body.dark .field select:focus,body.dark .field textarea:focus{border-color:#4f83e7;box-shadow:0 0 0 4px rgba(59,130,246,.18)}input[type="file"]{border-radius:16px!important}input[type="file"]::file-selector-button{border:0;border-radius:12px;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;font-weight:800;padding:9px 13px;margin-inline-end:12px;cursor:pointer}
.table-wrap{border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:var(--shadow-sm);overflow:auto}.card>.table-wrap,.panel>.table-wrap{box-shadow:none}.table{min-width:760px}.table th{background:linear-gradient(180deg,#f8fafc,#f2f6fd);color:#475467;position:relative}.table th:first-child{border-start-start-radius:18px}.table th:last-child{border-start-end-radius:18px}.table td{color:#1f2937}.table tbody tr{transition:background .16s ease}.table tbody tr:hover{background:#f8fbff}.table tbody tr:last-child td{border-bottom:0}.table td .small,.table td .muted{line-height:1.55}body.dark .table-wrap{background:#0f172a;border-color:var(--line);box-shadow:none}body.dark .table th{background:#111f36;color:#c8d5ef}body.dark .table td{color:#eaf2ff}body.dark .table tbody tr:hover{background:#111c32}
.tag,.badge,.score-pill,.cheat-badge{border:1px solid transparent;font-weight:800;line-height:1.2}.tag{padding:7px 11px}.tag-warn{background:#fff7ed;color:#b45309;border-color:#fed7aa}.tag-danger{background:#fff1f2;color:#be123c;border-color:#fecdd3}.tag-success{background:#ecfdf3;color:#15803d;border-color:#bbf7d0}.tag-neutral{background:#f1f5f9;color:#334155;border-color:#e2e8f0}.notice,.flash,.alert-note,.soft-notice{box-shadow:var(--shadow-sm);line-height:1.75}.flash{font-weight:700}.empty,.empty-state-smart{color:var(--muted)}.empty-state-smart{background:linear-gradient(180deg,#fff,#f8fbff);border:1px dashed #c7d7ef}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.stat-card{position:relative;overflow:hidden}.stat-card:after{content:"";position:absolute;inset:auto -40px -48px auto;width:150px;height:150px;background:radial-gradient(circle,rgba(37,99,235,.10),transparent 70%);border-radius:999px}.stat-label{position:relative;z-index:1}.stat-value{position:relative;z-index:1;font-size:clamp(27px,3vw,38px);letter-spacing:-.04em}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.student-list-card,.parent-practice-card,.notice-card-unread,.compliance-item,.daily-steps div,.credit-help-grid div{border-color:var(--line)!important;box-shadow:var(--shadow-sm)}.student-list-card:hover,.parent-practice-card:hover{border-color:rgba(37,99,235,.28)!important}.upload-dropzone{box-shadow:var(--shadow-sm);background:linear-gradient(180deg,#ffffff,#f1f7ff)}.upload-dropzone:focus-within{box-shadow:var(--focus);border-color:#8bb7ff}.question-progress-wrap{box-shadow:var(--shadow-sm)}.option-tile{line-height:1.65}.option-tile:hover{transform:translateY(-1px)}.option-tile:has(input:checked){border-width:2px}.question-dot{transition:.16s ease}.question-dot:hover{transform:translateY(-1px)}.result-smart-hero{box-shadow:var(--shadow);border-color:#cfe0ff}.credit-balance-card{box-shadow:var(--shadow)}.pricing-card{position:relative;overflow:hidden}.pricing-card:after{content:"";position:absolute;inset:auto -50px -70px auto;width:190px;height:190px;border-radius:50%;background:radial-gradient(circle,rgba(124,58,237,.13),transparent 70%);pointer-events:none}.pricing-card>*{position:relative;z-index:1}
.site-footer{border-top:1px solid var(--line);background:rgba(255,255,255,.48);backdrop-filter:blur(10px)}body.dark .site-footer{background:rgba(8,17,32,.5)}.footer-links a{font-weight:700;color:var(--muted)}.footer-links a:hover{color:var(--primary)}
/* Role-specific visual accents */
.role-admin .brand-mark,.role-admin .primary-btn{background:linear-gradient(135deg,#7c3aed,#2563eb)}.role-school_manager .brand-mark,.role-school_manager .primary-btn{background:linear-gradient(135deg,#0891b2,#2563eb)}.role-teacher .brand-mark,.role-teacher .primary-btn{background:linear-gradient(135deg,#2563eb,#0ea5e9)}.role-parent .brand-mark,.role-parent .primary-btn{background:linear-gradient(135deg,#7c3aed,#db2777)}.role-student .brand-mark,.role-student .primary-btn{background:linear-gradient(135deg,#2563eb,#7c3aed)}.role-school_accountant .brand-mark,.role-school_accountant .primary-btn{background:linear-gradient(135deg,#059669,#2563eb)}
/* Responsive all-account layout */
@media(max-width:1120px){.hero{grid-template-columns:1fr}.grid.four,.grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-grid{grid-template-columns:1fr}.footer-copy{text-align:start}.desktop-nav{justify-content:flex-start}.student-dashboard-pill{min-width:auto}}
@media(max-width:780px){body{font-size:15px}.container{padding:0 14px}.page-shell{padding:22px 14px 38px}.topbar-inner{gap:8px}.brand-mark{width:40px;height:40px;border-radius:14px}.desktop-nav{display:none}.topbar-actions{gap:6px}.topbar-icon-btn,.credit-chip,.topbar-lang-menu summary,.menu-toggle{min-height:38px;padding:8px 10px;border-radius:13px;box-shadow:none}.secondary-btn,.primary-btn,.ghost-btn,.danger-btn{min-height:42px;padding:10px 12px;border-radius:14px}.card,.panel,.stat-card,.question-card,.hero-card{border-radius:20px;padding:18px}.grid.two,.grid.three,.grid.four,.stats-grid,.security-grid,.feature-grid{grid-template-columns:1fr!important}.toolbar{align-items:stretch!important}.toolbar>.inline-actions,.toolbar>.actions{width:100%}.toolbar .primary-btn,.toolbar .secondary-btn,.toolbar .ghost-btn,.toolbar .danger-btn{width:100%;text-align:center}.side-drawer{top:74px;right:12px;left:12px;width:auto;max-width:none;max-height:calc(100dvh - 92px);border-radius:24px}.rtl .side-drawer{right:12px;left:12px}.side-link{padding:12px 13px}.footer-links{gap:10px 14px}.page-title{font-size:29px}.section-title{font-size:26px}.page-subtitle{font-size:15px}.table-wrap{border-radius:18px;overflow:visible;background:transparent;border:0;box-shadow:none}.table.responsive-table{min-width:0;border-collapse:separate;border-spacing:0 12px}.table.responsive-table thead,.table.responsive-table tr.table-head-row{display:none!important}.table.responsive-table tbody,.table.responsive-table tr,.table.responsive-table td{display:block;width:100%}.table.responsive-table tr{background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-sm);padding:10px 12px;margin-bottom:12px}.table.responsive-table td{border-bottom:1px dashed var(--line);padding:10px 0;color:var(--text)}.table.responsive-table td:last-child{border-bottom:0}.table.responsive-table td::before{content:attr(data-label);display:block;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px}.table.responsive-table td:empty::after{content:"—";color:var(--muted)}.table:not(.responsive-table){min-width:680px}.inline-actions{width:100%}.inline-actions .primary-btn,.inline-actions .secondary-btn,.inline-actions .ghost-btn,.inline-actions .danger-btn{flex:1 1 160px}.field input,.field select,.field textarea{font-size:16px}.result-score-ring{width:148px;height:148px}.question-dot{width:34px;height:34px;border-radius:12px}}
@media(max-width:480px){.topbar-lang-menu{display:none}.credit-chip strong{font-size:12px}.topbar-icon-btn strong{font-size:12px}.page-title{font-size:27px}.card,.panel,.stat-card,.question-card,.hero-card{padding:16px}.stat-value{font-size:28px}.result-actions-row form,.result-actions-row button,.student-card-actions a,.student-card-actions button{width:100%}}
@media print{body{background:#fff!important}.card,.panel,.question-card,.stat-card{box-shadow:none!important}.table-wrap{box-shadow:none!important;border-color:#ddd!important}.table th{background:#f7f7f7!important;color:#111!important}}



/* NanoStudent dashboard original layout hotfix: keep the restored student dashboard while removing internal horizontal scrollbars. */
.student-dashboard-original .table-wrap{overflow:visible!important;max-width:100%;padding-bottom:0!important}
.student-dashboard-original .table{min-width:0!important;width:100%;table-layout:auto}
.student-dashboard-original .table th,.student-dashboard-original .table td{white-space:normal;word-break:break-word;overflow-wrap:anywhere;line-height:1.65}
.student-dashboard-original .table th{font-size:12px;letter-spacing:0}
.student-dashboard-original .table td:last-child{white-space:nowrap;word-break:normal;overflow-wrap:normal}
.student-dashboard-original .card{overflow:visible}
.student-dashboard-original .toolbar{row-gap:10px}
.student-dashboard-original .toolbar a{white-space:nowrap}
@media(max-width:1180px){.student-dashboard-original .grid.two{grid-template-columns:1fr!important}}
@media(max-width:780px){.student-dashboard-original .toolbar a{width:100%;justify-content:center}.student-dashboard-original .table-wrap{background:transparent!important;border:0!important;box-shadow:none!important}.student-dashboard-original .table.responsive-table{min-width:0!important}.student-dashboard-original .table.responsive-table tr{overflow:hidden}.student-dashboard-original .table.responsive-table td:last-child{white-space:normal}}


/* NanoStudent messages/support polish hotfix */
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.modern-form-card,.support-card,.thread-card,.messages-list-card{border-color:rgba(37,99,235,.14);background:linear-gradient(180deg,var(--surface),#fbfdff)}
.recipient-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;max-height:360px;overflow:auto;padding:10px;border:1px solid var(--line);border-radius:20px;background:var(--surface-2)}
.recipient-chip{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--surface);cursor:pointer;transition:.16s ease;user-select:none}
.recipient-chip:hover{border-color:rgba(37,99,235,.35);transform:translateY(-1px)}
.recipient-chip input{width:18px;height:18px;accent-color:var(--primary)}
.recipient-avatar{width:38px;height:38px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;font-weight:800;flex:0 0 auto}
.recipient-info{display:grid;gap:2px;min-width:0}.recipient-info strong{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipient-info small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.support-grid{align-items:start}.ticket-list{display:grid;gap:10px}.ticket-list-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--line);border-radius:17px;background:var(--surface-2);text-decoration:none;color:var(--text);transition:.16s ease}.ticket-list-item:hover,.ticket-list-item.active{border-color:rgba(37,99,235,.32);background:#eef6ff}.ticket-list-item span{display:grid;gap:4px;min-width:0}.ticket-list-item strong{font-weight:800}.ticket-list-item small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticket-list-item em{font-style:normal;font-weight:800;color:var(--primary);background:#eef6ff;border:1px solid #cfe0ff;border-radius:999px;padding:5px 9px;white-space:nowrap}
.thread-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.message-thread{display:grid;gap:12px;margin:16px 0}.message-bubble{max-width:900px;border:1px solid var(--line);border-radius:20px;padding:14px 16px;line-height:1.75;box-shadow:var(--shadow-sm)}.message-bubble p{margin:7px 0}.message-bubble small{color:var(--muted)}.message-bubble.from-user{background:#fff7ed;border-color:#fed7aa;margin-inline-start:auto}.message-bubble.from-support{background:#eef6ff;border-color:#bfdbfe;margin-inline-end:auto}.message-bubble strong{display:block;font-weight:800;color:var(--text)}
.danger-zone-card .alert-note{background:#fff7ed;border-color:#fed7aa}.danger-zone-card input[dir="ltr"]{text-align:left}.danger-zone-card .danger-btn{background:#fee2e2;color:#991b1b;border-color:#fecaca}.danger-zone-card .danger-btn:hover{background:#fecaca}
body.dark .modern-form-card,body.dark .support-card,body.dark .thread-card,body.dark .messages-list-card{background:linear-gradient(180deg,#101c31,#0d1728)}body.dark .recipient-picker,body.dark .recipient-chip,body.dark .ticket-list-item{background:#0f172a}body.dark .ticket-list-item:hover,body.dark .ticket-list-item.active{background:#11213b}body.dark .message-bubble.from-user{background:#2a1d10;border-color:#674315}body.dark .message-bubble.from-support{background:#102442;border-color:#1e3a8a}body.dark .danger-zone-card .alert-note{background:#2a1d10;border-color:#674315}
@media(max-width:780px){.page-head{display:block}.recipient-picker{grid-template-columns:1fr;max-height:320px}.message-bubble{max-width:100%}.ticket-list-item{align-items:flex-start;flex-direction:column}.thread-head{display:block}}

/* NanoStudent Professional Certificates System */
.cert-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:22px;background:linear-gradient(135deg,rgba(79,70,229,.10),rgba(14,165,233,.08));border:1px solid rgba(99,102,241,.16)}
.cert-hero h2{margin:.2rem 0 .35rem;font-size:clamp(1.35rem,2.2vw,2rem);letter-spacing:-.03em}.cert-hero-stat{min-width:150px;text-align:center;padding:18px;border-radius:24px;background:rgba(255,255,255,.72);border:1px solid rgba(148,163,184,.20);box-shadow:0 14px 28px rgba(15,23,42,.08)}.cert-hero-stat strong{display:block;font-size:2.2rem;line-height:1;font-weight:1000;color:var(--primary,#4f46e5)}.cert-hero-stat span{display:block;margin-top:8px;color:var(--muted,#64748b);font-weight:800}.eyebrow{display:inline-flex;border-radius:999px;padding:6px 12px;font-size:.78rem;font-weight:800;color:#4f46e5;background:rgba(79,70,229,.10)}
.cert-page-grid{align-items:start}.compact-grid{gap:12px}.certificate-form textarea{min-height:110px;resize:vertical}.big-action{width:100%;justify-content:center;font-size:1rem;padding:14px 20px}.cert-template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cert-template-option{cursor:pointer}.cert-template-option input{position:absolute;opacity:0;pointer-events:none}.tpl-preview{display:flex;align-items:center;gap:12px;padding:12px;border-radius:18px;background:linear-gradient(135deg,#fff,var(--tpl-bg));border:2px solid rgba(148,163,184,.22);transition:.18s ease;min-height:72px}.tpl-preview b{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--tpl-primary),var(--tpl-secondary));color:#fff;font-size:1.35rem}.tpl-preview strong{display:block;color:#0f172a;font-weight:800}.tpl-preview small{display:block;color:#64748b;font-weight:700;margin-top:2px}.cert-template-option input:checked + .tpl-preview{border-color:var(--tpl-primary);box-shadow:0 16px 34px color-mix(in srgb,var(--tpl-primary),transparent 82%);transform:translateY(-1px)}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.segmented{display:flex;gap:6px;padding:5px;border-radius:16px;background:rgba(148,163,184,.12)}.segmented a{display:inline-flex;text-decoration:none;border-radius:12px;padding:8px 12px;color:#64748b;font-weight:800}.segmented a.active{background:#fff;color:#4f46e5;box-shadow:0 8px 18px rgba(15,23,42,.08)}.cert-list{display:grid;gap:12px}.cert-list-item{display:flex;align-items:center;gap:12px;padding:14px;border-radius:20px;border:1px solid rgba(148,163,184,.18);background:#fff;box-shadow:0 12px 26px rgba(15,23,42,.05)}.cert-list-item.is-revoked{opacity:.72;background:linear-gradient(135deg,#fff,#fff1f2)}.cert-mini-badge{flex:0 0 auto;width:48px;height:48px;border-radius:16px;display:grid;place-items:center;color:#fff;font-size:1.45rem;box-shadow:0 12px 24px rgba(15,23,42,.14)}.cert-list-main{min-width:0;flex:1}.cert-list-main strong{display:block;color:#111827;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cert-list-main span,.cert-list-main small{display:block;color:#64748b;font-weight:700;margin-top:3px}.cert-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.danger-btn.small{padding:8px 12px;border-radius:12px;border:0;background:#fee2e2;color:#b91c1c;font-weight:800;cursor:pointer}.cert-student-card{position:relative;overflow:hidden;border-top:5px solid var(--tpl-primary)}.cert-student-card:before{content:"";position:absolute;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,var(--tpl-bg),transparent 70%);inset:auto -70px -110px auto;pointer-events:none}.cert-card-top{display:flex;gap:12px;align-items:center;position:relative}.cert-card-top h3{margin:0}.cert-card-meta{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:14px 0;color:#64748b;font-size:.9rem;font-weight:800}.cert-card-meta span:first-child{direction:ltr}.cert-student-card.is-revoked{opacity:.68;filter:grayscale(.15)}.cert-verify-result{border-radius:22px;padding:18px;background:linear-gradient(135deg,#ecfdf5,#fff);border:1px solid rgba(16,185,129,.22)}.cert-verify-result.is-revoked{background:linear-gradient(135deg,#fff1f2,#fff);border-color:rgba(239,68,68,.22)}
body.dark .tpl-preview,body.dark .cert-list-item,body.dark .segmented a.active,body.dark .cert-hero-stat{background:rgba(15,23,42,.78);border-color:rgba(148,163,184,.18)}body.dark .tpl-preview strong,body.dark .cert-list-main strong{color:#f8fafc}body.dark .cert-list-main span,body.dark .cert-list-main small,body.dark .tpl-preview small,body.dark .cert-card-meta{color:#cbd5e1}body.dark .cert-student-card{background:rgba(15,23,42,.72)}body.dark .cert-hero{background:linear-gradient(135deg,rgba(79,70,229,.20),rgba(14,165,233,.12))}
@media(max-width:900px){.cert-hero{flex-direction:column;align-items:stretch}.cert-hero-stat{min-width:0}.cert-template-grid{grid-template-columns:1fr}.section-head{flex-direction:column;align-items:stretch}.segmented{overflow:auto}.cert-list-item{align-items:flex-start}.cert-actions{width:100%;margin-top:8px}.cert-actions a,.cert-actions form,.cert-actions button{width:100%;justify-content:center;text-align:center}.cert-list-item{flex-wrap:wrap}.cert-list-main strong{white-space:normal}}


/* NanoStudent certificate video hotfix: remove page overflow and improve certificate UI */
html,body{max-width:100%;overflow-x:hidden}
.site-shell,.page-shell,.container{max-width:100%;overflow-x:clip}
.toolbar{
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  padding-bottom:6px;
}
.toolbar .ghost-btn,.toolbar .secondary-btn,.toolbar .primary-btn{flex:0 0 auto}
.cert-page-grid{
  grid-template-columns:minmax(0,.92fr) minmax(360px,1.08fr)!important;
  gap:18px;
}
.cert-issue-card,.cert-page-grid>.card{min-width:0;overflow:hidden}
.certificate-notice{margin:10px 0 4px}
.certificate-form .field input,
.certificate-form .field select,
.certificate-form .field textarea{min-width:0}
.cert-template-grid{
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr))!important;
  align-items:stretch;
}
.tpl-preview{
  min-width:0;
  height:100%;
  overflow:hidden;
}
.tpl-preview strong,.tpl-preview small{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.cert-list-item{min-width:0}
.cert-list-main span,.cert-list-main small{
  overflow-wrap:anywhere;
  white-space:normal;
}
.cert-actions .ghost-btn{white-space:nowrap}
.cert-hero{overflow:hidden}
.cert-hero h2{overflow-wrap:anywhere}
@media(max-width:1050px){
  .cert-page-grid{grid-template-columns:1fr!important}
}
@media(max-width:780px){
  .toolbar{
    justify-content:flex-start;
    flex-wrap:nowrap;
    margin-inline:-20px;
    padding-inline:20px;
  }
  .cert-template-grid{grid-template-columns:1fr!important}
  .cert-actions .ghost-btn,.cert-actions form,.cert-actions button{width:100%}
}

/* 2026-07-10 Final admin operations polish */
html,body{max-width:100%;overflow-x:hidden!important}
.container,.page-shell,.site-shell{max-width:100%;min-width:0}
.side-group-label{margin:14px 8px 6px;padding:7px 10px;border-radius:999px;background:rgba(37,99,235,.08);color:var(--primary);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
body.dark .side-group-label{background:rgba(96,165,250,.12);color:#93c5fd}
.admin-page-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;flex-wrap:wrap;margin-bottom:10px}.admin-quick-actions{justify-content:flex-end}.admin-insights-grid{align-items:stretch}.admin-alerts-card{border-color:#fde68a;background:linear-gradient(180deg,var(--surface),rgba(254,249,195,.45))}.admin-alert-list{display:grid;gap:12px}.admin-alert{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--line);border-radius:18px;padding:14px 16px;background:var(--surface);font-weight:800}.admin-alert strong{white-space:nowrap;color:var(--primary)}.admin-alert.warning{border-color:#fde68a;background:#fffbeb}.admin-alert.danger{border-color:#fecaca;background:#fff1f2}.admin-alert.info{border-color:#bfdbfe;background:#eff6ff}body.dark .admin-alert.warning{background:#2a210c}body.dark .admin-alert.danger{background:#2a1114}body.dark .admin-alert.info{background:#0f2341}
.status-badge{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800;border:1px solid var(--line);white-space:nowrap}.status-success{background:#dcfce7;color:#166534;border-color:#bbf7d0}.status-warning{background:#fef3c7;color:#92400e;border-color:#fde68a}.status-danger{background:#fee2e2;color:#991b1b;border-color:#fecaca}.status-info{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}.status-neutral{background:#f1f5f9;color:#475569;border-color:#e2e8f0}body.dark .status-success{background:#052e16;color:#bbf7d0;border-color:#166534}body.dark .status-warning{background:#422006;color:#fde68a;border-color:#92400e}body.dark .status-danger{background:#450a0a;color:#fecaca;border-color:#991b1b}body.dark .status-info{background:#172554;color:#bfdbfe;border-color:#1d4ed8}body.dark .status-neutral{background:#111827;color:#cbd5e1;border-color:#334155}
.mini-bars{display:grid;gap:12px}.mini-bar-row{display:grid;grid-template-columns:110px minmax(0,1fr) 110px;gap:12px;align-items:center}.mini-bar-row span,.mini-bar-row strong{font-size:13px;font-weight:800;color:var(--muted)}.mini-bar-row strong{text-align:end;color:var(--text)}.mini-bar-row div{height:12px;border-radius:999px;background:var(--surface-2);overflow:hidden;border:1px solid var(--line)}.mini-bar-row i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary),#7c3aed)}.wide-bars .mini-bar-row{grid-template-columns:120px minmax(0,1fr) 140px}
.admin-card-list{display:grid;gap:12px}.admin-list-item{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:18px;padding:14px 16px;background:linear-gradient(180deg,var(--surface),var(--surface-2));min-width:0}.admin-list-item>div{min-width:0}.admin-list-item strong{font-weight:800}.admin-list-item small{display:block;color:var(--muted);font-weight:700;overflow-wrap:anywhere}.credit-amount{font-weight:1000;border-radius:999px;padding:7px 12px}.credit-amount.pos{background:#dcfce7;color:#166534}.credit-amount.neg{background:#fee2e2;color:#991b1b}
.table-wrap,.admin-table-wrap{width:100%;overflow-x:visible!important;padding-bottom:0}.table{width:100%!important;min-width:0!important;table-layout:fixed;border-collapse:separate;border-spacing:0}.table th,.table td{white-space:normal!important;overflow-wrap:anywhere;word-break:break-word}.compact-table th,.compact-table td{padding:12px 10px;font-size:14px}.wrap-anywhere{overflow-wrap:anywhere;word-break:break-word}.empty-state{padding:18px;border:1px dashed var(--line);border-radius:18px;color:var(--muted);background:var(--surface-2);text-align:center;font-weight:800}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.compact-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))!important}.compact-stats .stat-card{padding:18px}.compact-stats .stat-value{font-size:28px}
.admin-ticket-layout{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:18px;align-items:start}.tickets-panel,.ticket-conversation-panel{min-width:0}.admin-ticket-list{max-height:680px;overflow:auto;padding-inline-end:4px}.ticket-summary-card{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;padding:16px;border:1px solid var(--line);border-radius:20px;background:var(--surface-2);margin-bottom:16px}.ticket-summary-card small{display:block;color:var(--muted);font-weight:700;overflow-wrap:anywhere}.ticket-meta-tags{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.admin-message-thread{max-height:520px;overflow:auto;padding-inline-end:4px}.admin-message-thread .message-bubble{max-width:82%}.modern-form-card{border:1px solid var(--line);border-radius:22px;padding:18px;background:var(--surface-2);display:grid;gap:14px;margin-top:16px}
.invoice-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;align-items:end}.invoice-form-grid .field{min-width:0}.invoice-form-grid input,.invoice-form-grid select{width:100%;min-width:0}.invoice-notes{grid-column:span 2}.invoice-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.invoice-actions .inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end}.invoice-actions select,.invoice-actions input{min-width:130px}.invoice-item{align-items:flex-start}.settings-grid{display:grid;gap:14px}.setting-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.45fr);gap:18px;align-items:center;border:1px solid var(--line);border-radius:18px;padding:14px;background:var(--surface-2)}.setting-row label{display:block;font-weight:800;margin-bottom:4px}.setting-row small{display:block;color:var(--muted);font-weight:700}.setting-row code{display:inline-block;margin-top:8px;color:var(--muted);font-size:12px}.setting-row input{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface);color:var(--text)}.toggle-switch{display:flex!important;align-items:center;gap:12px;justify-content:flex-end}.toggle-switch input{position:absolute;opacity:0;pointer-events:none}.toggle-switch span{width:56px;height:30px;border-radius:999px;background:#cbd5e1;position:relative;transition:.2s ease}.toggle-switch span:before{content:"";position:absolute;width:24px;height:24px;border-radius:50%;background:#fff;top:3px;left:3px;transition:.2s ease;box-shadow:0 2px 8px rgba(0,0,0,.18)}.toggle-switch input:checked+span{background:linear-gradient(135deg,var(--primary),#7c3aed)}.toggle-switch input:checked+span:before{transform:translateX(26px)}body.rtl .toggle-switch input:checked+span:before{transform:translateX(-26px)}body.rtl .toggle-switch span:before{left:auto;right:3px}.toggle-switch b{font-size:13px;color:var(--muted);min-width:76px}.user-card-list,.results-admin-list{display:grid;gap:14px}.user-admin-card,.result-admin-card{display:grid;grid-template-columns:minmax(260px,1.1fr) minmax(180px,.8fr) minmax(220px,1fr);gap:14px;border:1px solid var(--line);border-radius:20px;padding:16px;background:linear-gradient(180deg,var(--surface),var(--surface-2));align-items:center;min-width:0}.user-admin-main{display:flex;gap:12px;align-items:center;min-width:0}.user-admin-main strong,.result-admin-card strong{font-weight:800}.user-admin-main small,.user-admin-meta small,.result-admin-card small{display:block;color:var(--muted);font-weight:700;overflow-wrap:anywhere}.tag-row{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:7px}.code-tag{direction:ltr}.tiny-btn{padding:6px 9px!important;border-radius:10px!important;font-size:12px!important}.user-admin-meta{display:grid;gap:6px}.user-admin-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.result-admin-card{grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) minmax(140px,.55fr) minmax(180px,.8fr)}
body.dark .admin-alerts-card,body.dark .admin-list-item,body.dark .user-admin-card,body.dark .result-admin-card,body.dark .setting-row,body.dark .ticket-summary-card,body.dark .modern-form-card{background:linear-gradient(180deg,#101b31,#0f172a)}
@media(max-width:1100px){.admin-ticket-layout,.grid.two,.grid.three,.grid.four{grid-template-columns:1fr!important}.user-admin-card,.result-admin-card{grid-template-columns:1fr}.user-admin-actions,.invoice-actions{justify-content:flex-start}.setting-row{grid-template-columns:1fr}.invoice-notes{grid-column:auto}.admin-message-thread .message-bubble{max-width:100%}.admin-page-head{display:block}.admin-quick-actions{justify-content:flex-start}.mini-bar-row,.wide-bars .mini-bar-row{grid-template-columns:92px minmax(0,1fr) 90px}.table.responsive-table thead,.table.responsive-table .table-head-row{display:none}.table.responsive-table,.table.responsive-table tbody,.table.responsive-table tr,.table.responsive-table td{display:block;width:100%}.table.responsive-table tr{border:1px solid var(--line);border-radius:18px;margin-bottom:12px;padding:10px;background:var(--surface-2)}.table.responsive-table td{border:0;padding:9px 8px;display:grid;grid-template-columns:130px minmax(0,1fr);gap:10px}.table.responsive-table td:before{content:attr(data-label);font-weight:800;color:var(--muted)}}
@media(max-width:680px){.stats-grid{grid-template-columns:1fr!important}.topbar-actions.compact-topbar-actions{gap:6px}.topbar-theme,.topbar-user-link{display:none}.student-dashboard-pill{min-width:0;padding:11px 18px;font-size:15px}.admin-list-item,.admin-alert,.ticket-summary-card{display:block}.admin-list-item>*+*,.admin-alert>*+*,.ticket-summary-card>*+*{margin-top:10px}.toolbar{flex-wrap:wrap!important;overflow-x:visible!important;margin-inline:0!important;padding-inline:0!important}.toolbar .ghost-btn,.toolbar .secondary-btn,.toolbar .primary-btn{width:auto;white-space:normal}.table.responsive-table td{grid-template-columns:1fr}.invoice-actions .inline-form,.user-admin-actions{display:grid;grid-template-columns:1fr;width:100%}.invoice-actions select,.invoice-actions input,.invoice-actions button,.invoice-actions a,.user-admin-actions button,.user-admin-actions a{width:100%;justify-content:center}.mini-bar-row,.wide-bars .mini-bar-row{grid-template-columns:1fr}.mini-bar-row strong{text-align:start}.side-drawer{right:10px;left:10px;width:auto}}

/* 2026-07-10 Parent account full-system polish */
.parent-head .muted strong{color:var(--primary)}
.parent-ai-grid{align-items:start}.parent-ai-form .card,.parent-review-form .card{min-width:0}.compact-grid{gap:12px}.upload-drop{display:grid;place-items:center;text-align:center;gap:8px;border:2px dashed rgba(99,102,241,.34);border-radius:22px;padding:22px;background:linear-gradient(180deg,rgba(99,102,241,.06),rgba(14,165,233,.04));cursor:pointer;transition:.18s ease}.upload-drop:hover{border-color:var(--primary);transform:translateY(-1px)}.upload-drop input{position:absolute;opacity:0;pointer-events:none}.upload-icon{font-size:2rem}.upload-drop strong{font-weight:800;color:var(--text)}.upload-drop small,.upload-drop em{color:var(--muted);font-style:normal;font-weight:700}.parent-credit-preview-card{position:sticky;top:90px}.credit-preview-box{display:grid;gap:10px;margin:12px 0}.credit-preview-box>div{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:16px;padding:12px 14px;background:var(--surface-2);font-weight:800}.credit-preview-box .total{background:linear-gradient(135deg,rgba(37,99,235,.10),rgba(124,58,237,.10));border-color:rgba(99,102,241,.25)}.credit-preview-box strong{font-size:1.2rem;color:var(--primary)}.big-action{width:100%;justify-content:center}.parent-review-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,rgba(79,70,229,.09),rgba(14,165,233,.07));border-color:rgba(99,102,241,.16)}.parent-review-hero h2{margin:.35rem 0}.credit-mini-stat{min-width:120px;text-align:center;border:1px solid var(--line);border-radius:20px;padding:14px;background:var(--surface)}.credit-mini-stat span,.credit-mini-stat small{display:block;color:var(--muted);font-weight:800}.credit-mini-stat strong{display:block;color:var(--primary);font-size:2rem;line-height:1}.parent-question-review-list,.parent-practice-list,.fee-card-list,.fee-notice-list,.payment-card-list{display:grid;gap:14px}.parent-question-card textarea{min-height:88px}.sticky-actions{position:sticky;bottom:12px;background:color-mix(in srgb,var(--surface),transparent 6%);border:1px solid var(--line);border-radius:22px;padding:12px;box-shadow:0 16px 32px rgba(15,23,42,.12);z-index:5}.parent-test-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;overflow:hidden}.parent-test-card.compact{grid-template-columns:minmax(0,1fr) auto}.parent-test-main{display:flex;align-items:center;gap:14px;min-width:0}.parent-test-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(135deg,#eef2ff,#e0f2fe);font-size:1.5rem;flex:0 0 auto}.parent-test-main h3{margin:0}.parent-test-main p{margin:.25rem 0 0}.parent-test-side{text-align:center;display:grid;gap:5px;justify-items:center}.parent-test-actions{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.parent-test-actions form{display:inline-flex;gap:8px;flex-wrap:wrap}.score-circle{width:86px;height:86px;border-radius:50%;display:grid;place-items:center;text-align:center;background:#f1f5f9;border:7px solid #cbd5e1;color:#475569}.score-circle strong{font-size:1.1rem;line-height:1}.score-circle span{font-size:.72rem;font-weight:800}.score-circle.excellent{border-color:#22c55e;background:#dcfce7;color:#166534}.score-circle.good{border-color:#3b82f6;background:#dbeafe;color:#1d4ed8}.score-circle.mid{border-color:#f59e0b;background:#fef3c7;color:#92400e}.score-circle.low{border-color:#ef4444;background:#fee2e2;color:#991b1b}.score-circle.pending{border-color:#94a3b8;background:#f8fafc}.score-excellent{color:#16a34a}.score-good{color:#2563eb}.score-mid{color:#d97706}.score-low{color:#dc2626}.parent-result-summary{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.parent-ai-advice{display:flex;align-items:center;gap:18px;border-color:#bfdbfe;background:linear-gradient(135deg,#eff6ff,var(--surface))}.parent-answer-card{border-inline-start:5px solid #6366f1}.parent-child-dashboard{background:linear-gradient(135deg,rgba(79,70,229,.06),rgba(14,165,233,.04))}.mini-status-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.mini-status-list>div{border:1px solid var(--line);border-radius:18px;padding:14px;text-align:center;background:var(--surface-2)}.mini-status-list strong{display:block;font-size:2rem;color:var(--primary)}.mini-status-list span{color:var(--muted);font-weight:800}.parent-fee-child-card{overflow:hidden}.fee-summary-stats .stat-value.small-stat{font-size:1.35rem}.fee-account-card,.fee-notice-card,.payment-history-card{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:20px;padding:16px;background:var(--surface-2);min-width:0}.fee-account-card.is-overdue{border-color:#fecaca;background:linear-gradient(135deg,#fff1f2,var(--surface-2))}.fee-account-card h4{margin:0}.fee-numbers{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.fee-numbers span{display:inline-flex;gap:6px;border-radius:999px;padding:7px 10px;background:var(--surface);border:1px solid var(--line);font-weight:800;color:var(--muted)}.fee-notice-card{display:grid;justify-items:start}.fee-notice-card p{margin:0}.payment-history-card small,.fee-notice-card small{display:block;color:var(--muted);font-weight:700}.filter-actions{display:flex;align-items:flex-end}.parent-report-hero{background:linear-gradient(135deg,rgba(79,70,229,.08),rgba(16,185,129,.07));border-color:rgba(99,102,241,.16)}.text-danger{color:#dc2626!important}.text-success{color:#16a34a!important}.score-pill.excellent{background:#dcfce7;color:#166534}.score-pill.good{background:#dbeafe;color:#1d4ed8}.score-pill.mid{background:#fef3c7;color:#92400e}.score-pill.low{background:#fee2e2;color:#991b1b}
body.dark .upload-drop,body.dark .parent-test-icon{background:linear-gradient(135deg,rgba(79,70,229,.18),rgba(14,165,233,.10))}body.dark .fee-account-card,body.dark .fee-notice-card,body.dark .payment-history-card,body.dark .credit-preview-box>div,body.dark .mini-status-list>div{background:#0f172a}body.dark .parent-ai-advice{background:linear-gradient(135deg,#0f2341,#0f172a)}body.dark .fee-account-card.is-overdue{background:linear-gradient(135deg,#2a1114,#0f172a)}
@media(max-width:980px){.parent-credit-preview-card{position:static}.parent-test-card{grid-template-columns:1fr}.parent-test-side{justify-items:start;text-align:start}.parent-test-actions{justify-content:flex-start}.parent-ai-advice{display:block}.parent-ai-advice .score-circle{margin-bottom:14px}.fee-account-card,.fee-notice-card,.payment-history-card{display:grid;justify-items:start}.fee-numbers{justify-content:flex-start}.parent-review-hero{display:block}.credit-mini-stat{margin-top:12px}.mini-status-list{grid-template-columns:1fr}}
@media(max-width:620px){.parent-test-actions,.parent-test-actions form{display:grid;grid-template-columns:1fr;width:100%}.parent-test-actions a,.parent-test-actions button{width:100%;justify-content:center}.parent-test-main{align-items:flex-start}.score-circle{width:72px;height:72px}.sticky-actions{display:grid;grid-template-columns:1fr}.sticky-actions button{width:100%}.fee-numbers span{width:100%;justify-content:space-between}.stats-grid.compact-stats{grid-template-columns:1fr!important}}


/* Global header consistency hotfix */
.role-home-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:0 16px;
  border-radius:999px;
  border:1px solid var(--border, rgba(148,163,184,.28));
  background:rgba(255,255,255,.72);
  color:var(--text, #0f172a);
  font-weight:800;
  text-decoration:none;
  box-shadow:0 10px 24px rgba(15,23,42,.06);
}
.role-home-pill:hover{ transform:translateY(-1px); }
@media (max-width: 860px){ .role-home-pill{display:none;} }


/* NanoStudent public marketing pages polish - 2026-07-10 */
.public-desktop-nav{gap:6px;flex:1;justify-content:center;min-width:0}
.public-desktop-nav .top-link{padding:11px 13px;border-radius:16px;font-weight:800;color:var(--muted);white-space:nowrap}
.public-desktop-nav .top-link.active,.public-desktop-nav .top-link:hover{background:#eef4ff;color:#2563eb}
.role-home-pill{display:inline-flex;align-items:center;justify-content:center;padding:11px 15px;border-radius:16px;background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff!important;font-weight:800;box-shadow:0 12px 28px rgba(37,99,235,.18)}
.public-hero{display:grid;grid-template-columns:1.08fr .92fr;gap:28px;align-items:center;min-height:620px;padding:34px 0 18px}
.public-hero-copy,.public-hero-panel,.page-hero,.public-card,.role-card,.step-card,.timeline-card,.feature-group-card,.faq-item{border:1px solid #dbe7ff;background:rgba(255,255,255,.86);box-shadow:0 24px 60px rgba(37,99,235,.10);border-radius:32px}
.public-hero-copy{padding:48px}.public-hero-copy h1{font-size:64px;line-height:1.05;margin:14px 0 18px;letter-spacing:-.04em}.public-hero-copy p{font-size:19px;line-height:1.9;color:var(--muted);max-width:760px}
.marketing-eyebrow{display:inline-flex;align-items:center;gap:8px;border:1px solid #bfdbfe;background:#eaf2ff;color:#2563eb;border-radius:999px;padding:8px 14px;font-weight:800;font-size:13px}
.marketing-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:22px}.center-actions{justify-content:center}.trust-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.trust-row span{padding:9px 12px;border-radius:999px;background:#f5f9ff;border:1px solid #dbeafe;color:#334155;font-weight:800;font-size:13px}
.public-hero-panel{padding:28px;position:relative;overflow:hidden}.public-hero-panel:before{content:"";position:absolute;inset:-100px auto auto -100px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(124,58,237,.15),transparent 68%)}
.hero-mini-bar{height:44px;border-radius:22px;background:#eef4ff;display:flex;align-items:center;gap:8px;padding:0 16px;margin-bottom:20px}.hero-mini-bar span{width:10px;height:10px;border-radius:50%;background:#93c5fd}.hero-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.hero-stat-grid>div{padding:22px;border:1px solid #dbe7ff;border-radius:24px;background:#fff}.hero-stat-grid strong{display:block;font-size:38px;color:#111827}.hero-stat-grid span{color:var(--muted);font-weight:800}.demo-card{margin-top:18px;padding:20px;border-radius:24px;background:linear-gradient(135deg,#eff6ff,#fff);border:1px solid #bfdbfe}.demo-card-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.demo-card p{color:var(--muted);line-height:1.8}
.marketing-section{margin:36px 0}.section-head{text-align:center;max-width:760px;margin:0 auto 22px}.section-head h2{font-size:42px;margin:14px 0 8px;letter-spacing:-.03em}.section-head p{color:var(--muted)}.role-cards,.steps-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.role-card,.step-card{padding:24px}.role-icon{width:58px;height:58px;border-radius:22px;display:flex;align-items:center;justify-content:center;background:#eef4ff;font-size:28px;margin-bottom:14px}.role-card h3,.step-card h3{margin:0 0 8px}.role-card p,.step-card p,.timeline-card li,.feature-group-card li{color:var(--muted);line-height:1.8}.soft-section{padding:34px;border-radius:36px;background:linear-gradient(180deg,rgba(239,246,255,.8),rgba(255,255,255,.3))}.step-card span{display:inline-flex;width:38px;height:38px;border-radius:14px;align-items:center;justify-content:center;background:#2563eb;color:#fff;font-weight:800;margin-bottom:14px}.split-section{display:grid;grid-template-columns:1fr 1fr;gap:22px}.public-card{padding:30px}.public-card h2{margin:0 0 12px}.accent-card{background:linear-gradient(135deg,#eaf2ff,#fff)}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.check-grid div{padding:13px 14px;border-radius:18px;background:#f7fbff;border:1px solid #dbeafe;font-weight:800}.final-cta{text-align:center;padding:44px!important;margin:42px 0}.final-cta h2{font-size:38px;margin:0 0 10px}.final-cta p{color:var(--muted);font-size:18px}.public-page{max-width:1180px;margin:0 auto}.page-hero{padding:42px;text-align:center}.page-hero h1{font-size:52px;line-height:1.12;margin:16px 0 12px;letter-spacing:-.035em}.page-hero p{max-width:820px;margin:0 auto;color:var(--muted);font-size:18px;line-height:1.9}.role-timeline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.timeline-card{padding:28px}.timeline-card ol{padding-inline-start:22px}.feature-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.feature-group-card{padding:24px}.feature-group-card ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}.faq-list{display:grid;gap:14px}.faq-item{padding:0;overflow:hidden}.faq-item summary{cursor:pointer;padding:20px 24px;font-weight:800;font-size:18px}.faq-item p{padding:0 24px 22px;margin:0;color:var(--muted);line-height:1.9}.legal-content h2{margin-top:24px}.legal-content p{color:var(--muted);line-height:2}.contact-layout{align-items:start}.contact-form .field span{font-weight:800}.pro-footer-grid{grid-template-columns:1.4fr .8fr .8fr;align-items:start}.footer-brand-block p{max-width:520px;line-height:1.8}.footer-col{display:grid;gap:9px}.footer-col h4{margin:0 0 8px;color:var(--text)}.footer-col a{color:var(--muted);font-weight:700}.footer-col a:hover{color:#2563eb}.footer-bottom{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:18px;margin-top:18px;color:var(--muted);font-size:13px}
body.dark .public-desktop-nav .top-link.active,body.dark .public-desktop-nav .top-link:hover,body.dark .marketing-eyebrow,body.dark .role-icon,body.dark .hero-mini-bar{background:#12203a;color:#bfdbfe;border-color:#305b9d}body.dark .public-hero-copy,body.dark .public-hero-panel,body.dark .page-hero,body.dark .public-card,body.dark .role-card,body.dark .step-card,body.dark .timeline-card,body.dark .feature-group-card,body.dark .faq-item{background:rgba(15,23,42,.88);border-color:#22314a}body.dark .hero-stat-grid>div,body.dark .check-grid div{background:#0f172a;border-color:#22314a}body.dark .demo-card,body.dark .accent-card{background:linear-gradient(135deg,#12203a,#0f172a);border-color:#305b9d}body.dark .trust-row span{background:#101b31;border-color:#22314a;color:#cbd5e1}body.dark .soft-section{background:linear-gradient(180deg,rgba(18,32,58,.7),rgba(15,23,42,.25))}
@media(max-width:1180px){.public-desktop-nav{display:none}.public-hero{grid-template-columns:1fr;min-height:auto}.public-hero-copy h1{font-size:50px}.role-cards,.steps-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.feature-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.public-hero-copy,.public-hero-panel,.page-hero,.public-card{padding:24px;border-radius:26px}.public-hero-copy h1,.page-hero h1{font-size:36px}.public-hero-copy p,.page-hero p{font-size:16px}.role-cards,.steps-grid,.role-timeline,.feature-groups,.split-section,.hero-stat-grid,.check-grid{grid-template-columns:1fr}.section-head h2{font-size:32px}.marketing-actions .primary-btn,.marketing-actions .secondary-btn,.marketing-actions .ghost-btn{width:100%;justify-content:center}.footer-bottom{display:grid}.pro-footer-grid{grid-template-columns:1fr}}

/* Private teacher account polish */
.copy-box{padding:12px 14px;border:1px dashed var(--border);border-radius:16px;background:rgba(37,99,235,.06);font-weight:700;word-break:break-all;margin-top:10px}
.role-teacher .private-teacher-hero,.private-teacher-card{border-color:rgba(79,70,229,.22)}
.switch-line{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.55)}
.private-teacher-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:rgba(79,70,229,.10);color:#4338ca;font-weight:800;font-size:.85rem}


/* 2026-07-14 School manager review polish */
.school-manager-nav,.toolbar.school-manager-nav{
  display:flex!important;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  justify-content:flex-end;
  padding:10px 0 14px;
  overflow:visible!important;
}
.school-manager-nav .ghost-btn{
  min-height:42px;
  padding:10px 14px;
  border-radius:16px;
  font-weight:800;
  white-space:nowrap;
}
.school-manager-nav .ghost-btn.active,
.school-manager-nav .ghost-btn:hover{
  background:linear-gradient(135deg,#eef4ff,#ffffff);
  border-color:#bfdbfe;
  color:#2563eb;
}
.school-manager-nav::before{
  content:"إدارة المدرسة";
  display:inline-flex;
  align-items:center;
  height:42px;
  padding:0 14px;
  border-radius:999px;
  background:#eef4ff;
  color:#2563eb;
  font-weight:800;
  margin-inline-end:auto;
}
body[data-language="en"] .school-manager-nav::before{content:"School Management";}
body[data-language="fr"] .school-manager-nav::before{content:"Gestion de l’école";}
body[data-language="es"] .school-manager-nav::before{content:"Gestión escolar";}
.school-manager-page .site-footer,
body.role-school_manager .site-footer{margin-top:28px}
.school-manager-page .card,
body.role-school_manager .card{overflow:hidden}
.school-manager-page .table-wrap,
body.role-school_manager .table-wrap{
  overflow-x:auto!important;
  -webkit-overflow-scrolling:touch;
  border-radius:20px;
}
.school-manager-page .table,
body.role-school_manager .table{
  min-width:720px!important;
  table-layout:auto!important;
}
.school-manager-page .table th,
.school-manager-page .table td,
body.role-school_manager .table th,
body.role-school_manager .table td{
  white-space:normal!important;
  vertical-align:middle;
}
.school-manager-page .table-wrap::-webkit-scrollbar,
body.role-school_manager .table-wrap::-webkit-scrollbar{height:8px}
.school-manager-page .table-wrap::-webkit-scrollbar-thumb,
body.role-school_manager .table-wrap::-webkit-scrollbar-thumb{
  background:#cbd5e1;border-radius:999px;
}
.school-manager-page input[type="file"],
body.role-school_manager input[type="file"]{
  width:100%;
  border:1px dashed #bfdbfe!important;
  background:linear-gradient(180deg,#f8fbff,#fff)!important;
  border-radius:18px!important;
  padding:16px!important;
  cursor:pointer;
  color:#334155;
  font-weight:800;
}
.school-manager-page input[type="file"]::file-selector-button,
body.role-school_manager input[type="file"]::file-selector-button{
  border:0;
  border-radius:14px;
  padding:11px 16px;
  margin-inline-end:12px;
  background:linear-gradient(135deg,#06b6d4,#2563eb);
  color:#fff;
  font-weight:800;
  cursor:pointer;
}
.school-manager-page .fee-ledger-list,
body.role-school_manager .fee-ledger-list{max-width:100%}
.school-manager-page .fee-account-card,
body.role-school_manager .fee-account-card{
  overflow:hidden;
  border-radius:22px;
  box-shadow:0 18px 45px rgba(37,99,235,.08);
}
.school-manager-page .finance-form-grid,
body.role-school_manager .finance-form-grid{
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
}
.school-manager-page .fee-actions-row,
body.role-school_manager .fee-actions-row{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.school-manager-page .fee-actions-row .ghost-btn,
.school-manager-page .fee-actions-row .danger-btn,
body.role-school_manager .fee-actions-row .ghost-btn,
body.role-school_manager .fee-actions-row .danger-btn{white-space:nowrap}
.school-manager-page .import-preview-warning{
  border:1px solid #fde68a;
  background:#fffbeb;
  color:#92400e;
  border-radius:18px;
  padding:13px 15px;
  font-weight:800;
}
body.dark .school-manager-nav::before{background:#12203a;color:#bfdbfe}
body.dark .school-manager-page input[type="file"],
body.dark body.role-school_manager input[type="file"]{background:#0f172a!important;border-color:#305b9d!important;color:#cbd5e1}
@media(max-width:900px){
  .school-manager-nav,.toolbar.school-manager-nav{
    flex-wrap:nowrap;
    overflow-x:auto!important;
    justify-content:flex-start;
    margin-inline:-18px;
    padding-inline:18px;
  }
  .school-manager-nav::before{display:none}
  .school-manager-page .table,
  body.role-school_manager .table{min-width:680px!important}
}
@media(max-width:620px){
  .school-manager-page .fee-actions-row,
  body.role-school_manager .fee-actions-row{display:grid;grid-template-columns:1fr}
  .school-manager-page .fee-actions-row a,
  .school-manager-page .fee-actions-row button,
  body.role-school_manager .fee-actions-row a,
  body.role-school_manager .fee-actions-row button{width:100%;justify-content:center}
}

/* UX Beta Layer: onboarding, role task pages, simplified role dashboards */
.ux-onboarding-card{margin:18px 0;border:1px solid rgba(37,99,235,.14);background:linear-gradient(135deg,rgba(37,99,235,.06),rgba(124,58,237,.04));}
.ux-step-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:10px}
.ux-step,.ux-action-card{display:block;text-decoration:none;color:inherit;border:1px solid rgba(148,163,184,.28);border-radius:22px;padding:16px;background:rgba(255,255,255,.72);transition:.18s ease;box-shadow:0 10px 30px rgba(15,23,42,.04)}
.ux-step:hover,.ux-action-card:hover{transform:translateY(-2px);border-color:rgba(37,99,235,.32);box-shadow:0 16px 38px rgba(37,99,235,.10)}
.ux-step span,.ux-action-icon{font-size:24px;display:inline-flex;margin-bottom:8px}.ux-step strong{display:block;line-height:1.6}.ux-onboarding-full{margin-top:18px}.ux-number{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:12px;background:#eaf2ff;color:#2563eb;font-weight:800;margin-inline-end:8px}.ux-hero-card{display:flex;justify-content:space-between;align-items:center;gap:20px;background:radial-gradient(circle at top right,rgba(37,99,235,.12),transparent 35%),#fff}.ux-hero-card h2{font-size:clamp(28px,4vw,48px);margin:.25rem 0;color:#111827}.ux-list{display:grid;gap:10px}.ux-list-item{display:flex;align-items:center;justify-content:space-between;gap:12px;text-decoration:none;color:inherit;border:1px solid rgba(148,163,184,.22);border-radius:16px;padding:12px 14px;background:#fff}.ux-list-item:hover{border-color:rgba(37,99,235,.35);background:#f8fbff}.ux-timeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.ux-timeline-step{display:flex;align-items:center;gap:10px;background:#f8fbff;border:1px solid #dbeafe;border-radius:16px;padding:12px}.ux-timeline-step strong{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:#2563eb;color:white}.ux-tab-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.ux-health{display:flex;align-items:center;justify-content:space-between;gap:14px}.ux-health.ok{border-color:rgba(34,197,94,.24)}.ux-health.bad{border-color:rgba(239,68,68,.34);background:rgba(254,242,242,.75)}.ux-checklist{display:grid;gap:10px;margin:0;padding-inline-start:24px}.ux-checklist li{padding:12px;border:1px solid rgba(148,163,184,.22);border-radius:16px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff}.ux-join-card input{text-transform:uppercase;letter-spacing:.04em}.dark .ux-step,.dark .ux-action-card,.dark .ux-list-item,.dark .ux-checklist li,.dark .ux-hero-card{background:rgba(15,23,42,.7);border-color:rgba(148,163,184,.18)}.dark .ux-timeline-step{background:rgba(30,41,59,.65);border-color:rgba(96,165,250,.2)}.dark .ux-health.bad{background:rgba(127,29,29,.25)}
@media(max-width:760px){.ux-list-item{flex-direction:column;align-items:flex-start}.ux-hero-card{display:block}.ux-checklist li{flex-direction:column;align-items:flex-start}.ux-step-grid{grid-template-columns:1fr}}

/* School manager UX video polish: grouped navigation and cleaner school pages */
.school-module-nav{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:12px;
  margin:18px 0 20px;
}
.school-nav-group{
  border:1px solid rgba(148,163,184,.24);
  border-radius:22px;
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(248,251,255,.88));
  box-shadow:0 14px 34px rgba(15,23,42,.05);
  overflow:hidden;
}
.school-nav-group[open]{border-color:rgba(37,99,235,.28);box-shadow:0 18px 44px rgba(37,99,235,.09)}
.school-nav-group summary{
  list-style:none;
  cursor:pointer;
  padding:14px 16px;
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:800;
  color:#0f172a;
}
.school-nav-group summary::-webkit-details-marker{display:none}
.school-nav-icon{width:34px;height:34px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;background:#edf5ff}
.school-nav-links{display:flex;flex-wrap:wrap;gap:8px;padding:0 14px 14px}
.school-nav-link{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:34px;
  padding:7px 12px;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.22);
  background:#fff;
  color:#334155;
  text-decoration:none;
  font-weight:800;
  font-size:13px;
}
.school-nav-link:hover,.school-nav-link.active{background:#2563eb;color:#fff;border-color:#2563eb;box-shadow:0 12px 24px rgba(37,99,235,.18)}
.school-manager-nav{display:none!important}
body.role-school_manager .toolbar:not(.school-manager-nav),.school-manager-page .toolbar:not(.school-manager-nav){gap:10px;flex-wrap:wrap}
body.role-school_manager .field label,.school-manager-page .field label{font-weight:800;color:#334155;margin-bottom:7px}
body.role-school_manager .field input,body.role-school_manager .field select,body.role-school_manager .field textarea,
.school-manager-page .field input,.school-manager-page .field select,.school-manager-page .field textarea{min-height:44px}
body.role-school_manager .card h3,.school-manager-page .card h3{margin-top:0;color:#0f172a}
body.role-school_manager .empty,.school-manager-page .empty{padding:22px!important;border-radius:16px;background:#f8fbff;color:#64748b;font-weight:800}
body.role-school_manager .table-wrap:empty,.school-manager-page .table-wrap:empty{display:none}
body.role-school_manager .table td .tag,.school-manager-page .table td .tag{white-space:nowrap}
body.role-school_manager .user-cell,.school-manager-page .user-cell{min-width:0}
body.role-school_manager .user-cell-text,.school-manager-page .user-cell-text{min-width:0;overflow:hidden}
body.role-school_manager .user-cell-email,.school-manager-page .user-cell-email{display:block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.role-school_manager .grid.two > .card, .school-manager-page .grid.two > .card{min-width:0}
body.role-school_manager .grid.three > .card, .school-manager-page .grid.three > .card{min-width:0}
body.dark .school-nav-group{background:linear-gradient(180deg,rgba(15,23,42,.88),rgba(15,23,42,.72));border-color:rgba(148,163,184,.17)}
body.dark .school-nav-group summary{color:#e5e7eb}
body.dark .school-nav-icon{background:#1e293b}
body.dark .school-nav-link{background:#0f172a;color:#cbd5e1;border-color:rgba(148,163,184,.18)}
body.dark .school-nav-link:hover,body.dark .school-nav-link.active{background:#3b82f6;color:#fff;border-color:#3b82f6}
body.dark body.role-school_manager .empty,body.dark .school-manager-page .empty{background:#0f172a;color:#94a3b8}
@media(max-width:760px){
  .school-module-nav{grid-template-columns:1fr;margin:14px 0}
  .school-nav-group:not([open]) summary{padding-block:12px}
  .school-nav-links{display:grid;grid-template-columns:1fr 1fr}
  .school-nav-link{width:100%}
}
@media(max-width:480px){.school-nav-links{grid-template-columns:1fr}}

/* School fees video review hotfix: compact ledger, receipts and printable finance documents */
.fee-ledger-card{overflow:visible!important}.compact-fee-ledger{gap:14px}.compact-fee-card{display:grid;gap:14px;padding:16px!important;overflow:hidden!important}.fee-account-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start}.fee-student-block{min-width:0}.break-anywhere{overflow-wrap:anywhere;word-break:break-word}.fee-status-block{display:grid;gap:6px;justify-items:end;text-align:end}.fee-mini-numbers{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:10px}.fee-mini-numbers>div{border:1px solid var(--line);border-radius:16px;padding:11px 13px;background:var(--surface-2);display:grid;gap:5px}.fee-mini-numbers span{color:var(--muted);font-size:12px;font-weight:800}.fee-mini-numbers strong{font-size:16px}.fee-mini-numbers .need-pay strong{color:#dc2626}.fee-mini-numbers .paid-ok strong{color:#16a34a}.fee-edit-details{border:1px solid var(--line);border-radius:18px;background:var(--surface);padding:0;overflow:hidden}.fee-edit-details summary{cursor:pointer;list-style:none;padding:12px 14px;font-weight:800;color:var(--primary);background:linear-gradient(135deg,rgba(37,99,235,.08),rgba(14,165,233,.04))}.fee-edit-details summary::-webkit-details-marker{display:none}.fee-edit-details[open] summary{border-bottom:1px solid var(--line)}.compact-edit-form{padding:14px}.compact-finance-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))!important}.compact-finance-grid .finance-note-field{grid-column:span 2}.fee-primary-actions{border-top:1px dashed var(--line);padding-top:12px;margin-top:0!important}.finance-payment-list{gap:12px}.compact-payment-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center}.payment-amount-block{text-align:center;min-width:120px}.payment-amount-block strong{display:block}.payment-amount-block small{display:block;color:var(--muted);font-weight:800}.finance-alert-card{border-color:rgba(37,99,235,.14);background:linear-gradient(135deg,rgba(37,99,235,.05),rgba(14,165,233,.035))}.finance-alert-card .toolbar{justify-content:space-between!important;gap:14px}.finance-alert-card .small{line-height:1.8}.finance-form-grid input,.finance-form-grid select,.finance-form-grid textarea{min-height:44px}.print-shell.finance-print-shell{max-width:210mm;width:210mm;min-height:297mm;padding:16mm;margin:0 auto;background:#fff;color:#111;border-radius:0;box-shadow:0 20px 60px rgba(15,23,42,.10)}.finance-print-shell .print-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start}.finance-print-shell .print-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-print-shell h1{margin-top:0;font-size:30px}.finance-print-shell .table{min-width:0!important}.finance-print-shell .table-wrap{overflow:visible!important}.finance-print-shell .print-box,.finance-print-shell .print-question{break-inside:avoid;page-break-inside:avoid}.receipt-total-box{border-color:#bfdbfe!important;background:#eff6ff!important}.print-note-clean{color:#475569;font-weight:800;margin:0 0 12px}.receipt-sign-grid{margin-top:20px}.receipt-sign-grid .print-box{min-height:90px}.school-fees-page .grid.two{align-items:start}.school-fees-page .card{min-width:0}@media(max-width:980px){.fee-account-summary,.compact-payment-card{grid-template-columns:1fr}.fee-status-block{justify-items:start;text-align:start}.fee-mini-numbers{grid-template-columns:1fr}.compact-finance-grid .finance-note-field{grid-column:auto}.payment-amount-block{text-align:start}.finance-alert-card .toolbar{display:grid}.print-shell.finance-print-shell{width:100%;min-height:auto;padding:18px}.finance-print-shell .print-head,.finance-print-shell .print-meta{grid-template-columns:1fr}}@media print{.print-shell.finance-print-shell{width:210mm;min-height:297mm;padding:14mm;box-shadow:none!important;margin:0 auto}.finance-print-shell h1{font-size:28px}.finance-print-shell .print-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-print-shell .print-head{grid-template-columns:minmax(0,1fr) auto}.table{font-size:12px!important}.site-footer,.topbar,.side-drawer,.drawer-backdrop,.print-toolbar,.toolbar,.flash{display:none!important}body,html{background:#fff!important}.page-shell,.container{padding:0!important;margin:0!important;max-width:none!important}}
body.dark .fee-edit-details,body.dark .fee-mini-numbers>div{background:#0f172a}body.dark .fee-edit-details summary{background:linear-gradient(135deg,rgba(37,99,235,.15),rgba(14,165,233,.08))}body.dark .receipt-total-box{background:#0f2341!important;border-color:#1d4ed8!important}


/* NanoStudent Modern Blue Theme - applied globally across all roles and public pages */
:root{
  --ns-blue-50:#eff6ff;
  --ns-blue-100:#dbeafe;
  --ns-blue-200:#bfdbfe;
  --ns-blue-300:#93c5fd;
  --ns-blue-400:#60a5fa;
  --ns-blue-500:#3b82f6;
  --ns-blue-600:#2563eb;
  --ns-blue-700:#1d4ed8;
  --ns-blue-800:#1e40af;
  --ns-blue-900:#1e3a8a;
  --bg:#f3f7ff;
  --surface:#ffffff;
  --surface-2:#f8fbff;
  --surface-3:#eef6ff;
  --text:#0b1220;
  --muted:#64748b;
  --line:#d7e5fb;
  --primary:#2563eb;
  --primary-2:#1d4ed8;
  --primary-soft:#eaf2ff;
  --accent:#14b8a6;
  --accent-soft:#e6fffb;
  --success:#16a34a;
  --success-soft:#ecfdf3;
  --warning:#f59e0b;
  --warning-soft:#fffbeb;
  --danger:#dc2626;
  --danger-soft:#fff1f2;
  --info:#0284c7;
  --info-soft:#e0f2fe;
  --shadow-sm:0 8px 22px rgba(30,64,175,.06);
  --shadow:0 18px 46px rgba(30,64,175,.10);
  --shadow-lg:0 30px 80px rgba(15,23,42,.14);
  --radius:22px;
  --radius-sm:14px;
  --radius-lg:30px;
  --drawer:#ffffff;
}
html{scroll-behavior:smooth}
body{
  background:
    radial-gradient(circle at 82% -10%, rgba(37,99,235,.16), transparent 34%),
    radial-gradient(circle at 12% 6%, rgba(20,184,166,.10), transparent 26%),
    linear-gradient(180deg,#f5f9ff 0%,#eef5ff 42%,#f8fbff 100%);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.rtl{letter-spacing:0}
a{transition:color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease}
.container{max-width:1320px}
.topbar{
  background:rgba(255,255,255,.86)!important;
  border-bottom:1px solid rgba(191,219,254,.72)!important;
  box-shadow:0 8px 26px rgba(37,99,235,.06);
}
.topbar-inner{min-height:78px}
.brand{color:#0f172a;font-weight:800;letter-spacing:-.02em}
.brand-mark{
  background:linear-gradient(135deg,#2563eb 0%,#3b82f6 54%,#14b8a6 100%)!important;
  box-shadow:0 14px 28px rgba(37,99,235,.24)!important;
  color:#fff!important;
  font-weight:800;
}
.brand-text{font-weight:800}
.top-link{
  color:#475569;
  font-weight:800;
  padding:10px 14px;
  border:1px solid transparent;
}
.top-link:hover,.top-link.active{
  color:#1d4ed8!important;
  background:#eef6ff!important;
  border-color:#cfe1ff;
  box-shadow:0 8px 18px rgba(37,99,235,.08);
}
.student-dashboard-pill{
  background:linear-gradient(135deg,#eaf2ff,#f8fbff)!important;
  border:1px solid #d1e3ff;
  color:#1d4ed8!important;
  min-width:230px;
  box-shadow:0 14px 32px rgba(37,99,235,.12), inset 0 1px 0 rgba(255,255,255,.96)!important;
}
.student-dashboard-pill:hover,.student-dashboard-pill.active{
  background:linear-gradient(135deg,#dbeafe,#eff6ff)!important;
  transform:translateY(-1px);
}
.menu-toggle,.lang-btn,.theme-btn,.secondary-btn,.ghost-btn,.side-close{
  background:rgba(255,255,255,.9)!important;
  border:1px solid #d5e4fb!important;
  color:#0f172a!important;
  box-shadow:0 8px 22px rgba(30,64,175,.05);
}
.primary-btn,
button.primary-btn,
a.primary-btn,
input[type="submit"].primary-btn{
  background:linear-gradient(135deg,#2563eb 0%,#3b82f6 64%,#14b8a6 130%)!important;
  color:#fff!important;
  border:0!important;
  box-shadow:0 16px 34px rgba(37,99,235,.24)!important;
  font-weight:800;
}
.primary-btn:hover{transform:translateY(-1px);box-shadow:0 22px 42px rgba(37,99,235,.30)!important}
.secondary-btn:hover,.ghost-btn:hover,.lang-btn:hover,.theme-btn:hover,.menu-toggle:hover,.side-close:hover{box-shadow:0 16px 34px rgba(37,99,235,.10)!important;border-color:#bcd7ff!important;color:#1d4ed8!important}
.page-shell{padding:34px 20px 56px}
.hero{gap:30px;align-items:center}
.hero-card,.panel,.card,.stat-card,.question-card,.feature-item,.auth-card,.waiting-card{
  border:1px solid rgba(191,219,254,.88)!important;
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,251,255,.96))!important;
  box-shadow:var(--shadow)!important;
  border-radius:var(--radius)!important;
}
.hero-card{padding:40px;position:relative;overflow:hidden}
.hero-card:before{
  content:"";position:absolute;inset:0 0 auto auto;width:360px;height:360px;border-radius:50%;transform:translate(36%,-44%);
  background:radial-gradient(circle,rgba(37,99,235,.18),rgba(37,99,235,0) 66%);pointer-events:none;
}
.hero-card>*{position:relative;z-index:1}
.hero h1,.page-title,.section-title{color:#0f172a;letter-spacing:-.035em;font-weight:800}
.hero h1{font-size:clamp(42px,5vw,64px)}
.page-title{font-size:clamp(34px,3.7vw,48px)}
.section-title{font-size:clamp(28px,3vw,38px)}
.page-subtitle,.muted{color:#64748b}
.eyebrow,.badge,.notice{
  background:linear-gradient(135deg,#eaf2ff,#f8fbff)!important;
  color:#1d4ed8!important;
  border:1px solid #d1e3ff;
}
.notice{font-weight:800}
.flash{border-radius:18px;border-width:1px;box-shadow:var(--shadow-sm)}
.flash.success{background:var(--success-soft)!important;border-color:#bbf7d0!important;color:#166534!important}
.flash.error{background:var(--danger-soft)!important;border-color:#fecdd3!important;color:#991b1b!important}
.flash.warning,.alert-warning{background:var(--warning-soft)!important;border-color:#fde68a!important;color:#92400e!important}
.stats-grid,.grid{gap:20px}
.stat-card{position:relative;overflow:hidden}
.stat-card:after{content:"";position:absolute;inset:auto -40px -42px auto;width:132px;height:132px;border-radius:50%;background:radial-gradient(circle,rgba(37,99,235,.12),transparent 64%)}
.stat-label{color:#64748b;font-weight:800;letter-spacing:.02em}
.stat-value{color:#0f172a;font-weight:800;font-size:clamp(30px,4vw,42px)}
.table-wrap{
  border:1px solid #dbe7ff;
  border-radius:22px;
  background:#fff;
  box-shadow:var(--shadow-sm);
  overflow:auto;
}
.table{background:transparent}
.table th{
  background:#f1f7ff;
  color:#1e40af!important;
  font-size:12px;
  font-weight:800;
  border-bottom:1px solid #dbe7ff!important;
}
.table td{border-bottom:1px solid #e5efff!important;color:#0f172a}
.table tbody tr:hover td{background:#f8fbff}
.table tr:last-child td{border-bottom:0!important}
.field label{font-weight:800;color:#172033}
.field input,.field select,.field textarea,
input:not([type="checkbox"]):not([type="radio"]),select,textarea{
  border:1px solid #d5e4fb!important;
  background:#fff!important;
  color:#0f172a!important;
  border-radius:16px!important;
  box-shadow:0 8px 18px rgba(30,64,175,.035);
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.field input:focus,.field select:focus,.field textarea:focus,
input:not([type="checkbox"]):not([type="radio"]):focus,select:focus,textarea:focus{
  outline:none!important;
  border-color:#93c5fd!important;
  box-shadow:0 0 0 4px rgba(59,130,246,.14)!important;
}
.tag,.status-badge,.chip,.pill{
  border-radius:999px!important;
  font-weight:800!important;
  letter-spacing:.01em;
}
.tag{background:#eef6ff!important;color:#1d4ed8!important;border:1px solid #cfe1ff}
.tag-neutral{background:#f1f5f9!important;color:#334155!important}
.tag-warn,.status-pending{background:#fff7ed!important;color:#c2410c!important;border:1px solid #fed7aa!important}
.tag-danger,.status-rejected,.status-cancelled{background:#fff1f2!important;color:#be123c!important;border:1px solid #fecdd3!important}
.status-paid,.status-active,.status-approved,.status-completed{background:#ecfdf3!important;color:#166534!important;border:1px solid #bbf7d0!important}
.side-drawer{
  background:rgba(255,255,255,.96)!important;
  border:1px solid #d7e5fb!important;
  box-shadow:var(--shadow-lg)!important;
}
.side-drawer-head{background:rgba(255,255,255,.96)!important}
.side-section-title{color:#2563eb!important;letter-spacing:.08em}
.side-link{font-weight:800;color:#14213d!important;border-radius:18px;border:1px solid transparent}
.side-link:hover{background:#f1f7ff!important;border-color:#d7e5fb!important;color:#1d4ed8!important;transform:translateX(-1px)}
body:not(.rtl) .side-link:hover{transform:translateX(1px)}
.side-link.active{background:linear-gradient(135deg,#eaf2ff,#f8fbff)!important;color:#1d4ed8!important;border-color:#bfdbfe!important;box-shadow:0 10px 24px rgba(37,99,235,.10)}
.side-icon{filter:saturate(1.1)}
.question-nav,.exam-timer-card,.launch-countdown{
  border-color:#bfdbfe!important;
  background:linear-gradient(180deg,#ffffff,#f1f7ff)!important;
  box-shadow:var(--shadow-sm)!important;
}
.question-nav a{background:#fff!important;border-color:#d5e4fb!important;color:#1e3a8a!important}
.question-nav a:hover,.question-nav a.active{background:#eaf2ff!important;color:#1d4ed8!important;border-color:#93c5fd!important}
.option-tile,.result-answer,.print-box,.print-question,.kpi{
  border-color:#d7e5fb!important;
  background:#f8fbff!important;
  border-radius:18px!important;
}
.option-tile:hover{background:#eef6ff!important;border-color:#93c5fd!important}
.result-answer.correct{background:#ecfdf3!important;border-color:#bbf7d0!important;color:#166534!important}
.result-answer.wrong{background:#fff1f2!important;border-color:#fecdd3!important;color:#991b1b!important}
.msg,.ticket-card,.invoice-card,.payment-card,.fee-card,.import-card,.certificate-card,.student-card,.teacher-card,.school-card,.parent-card{
  border:1px solid #d7e5fb!important;
  background:linear-gradient(180deg,#fff,#f8fbff)!important;
  box-shadow:var(--shadow-sm)!important;
  border-radius:22px!important;
}
.upload-box,.file-drop,.drop-zone,.file-upload-box{
  border:2px dashed #bfdbfe!important;
  background:linear-gradient(180deg,#f8fbff,#eef6ff)!important;
  border-radius:24px!important;
  color:#1e40af!important;
}
.upload-box:hover,.file-drop:hover,.drop-zone:hover,.file-upload-box:hover{border-color:#60a5fa!important;background:#eaf2ff!important}
.site-footer{
  border-top:1px solid #d7e5fb;
  background:rgba(255,255,255,.46);
  margin-top:20px;
}
.footer-brand{font-weight:800;color:#0f172a}
.footer-links a{color:#475569;font-weight:800}
.footer-links a:hover{color:#1d4ed8}
/* Role-aware blue accents without changing the main identity */
.role-admin .brand-mark{background:linear-gradient(135deg,#1e40af,#2563eb,#0ea5e9)!important}
.role-school_manager .brand-mark{background:linear-gradient(135deg,#2563eb,#0891b2,#14b8a6)!important}
.role-school_accountant .brand-mark{background:linear-gradient(135deg,#2563eb,#0284c7,#16a34a)!important}
.role-teacher .brand-mark{background:linear-gradient(135deg,#2563eb,#3b82f6,#7c3aed)!important}
.role-student .brand-mark{background:linear-gradient(135deg,#2563eb,#38bdf8,#14b8a6)!important}
.role-parent .brand-mark{background:linear-gradient(135deg,#2563eb,#6366f1,#14b8a6)!important}
/* Public marketing pages */
.public-desktop-nav{gap:6px}
.feature-grid .feature-item,.hero-checks li{
  border-color:#d7e5fb!important;
  background:linear-gradient(180deg,#fff,#f8fbff)!important;
}
.hero-checks li{box-shadow:var(--shadow-sm);font-weight:800;color:#1e293b}
.actions .primary-btn,.actions .secondary-btn{min-height:48px;display:inline-flex;align-items:center;justify-content:center}
/* School/accountant fee screens */
.fee-summary,.finance-summary,.amount-card{border:1px solid #d7e5fb!important;background:linear-gradient(180deg,#fff,#f8fbff)!important;border-radius:24px!important;box-shadow:var(--shadow-sm)!important}
/* Certificates and print-safe surfaces */
.certificate-page,.certificate-sheet{background:#fff!important;color:#111!important}
.certificate-sheet{box-shadow:0 18px 48px rgba(15,23,42,.10)}
/* Mobile polish */
@media (max-width:1100px){
  .topbar-inner{gap:12px}
  .student-dashboard-pill{min-width:auto;padding:12px 24px;font-size:16px}
  .stats-grid,.grid.four,.grid.three,.grid.two,.feature-grid,.exam-summary,.print-meta{grid-template-columns:1fr!important}
}
@media (max-width:760px){
  body{background:linear-gradient(180deg,#f6faff,#eef6ff 46%,#f8fbff)}
  .page-shell{padding:20px 12px 42px}
  .topbar-inner{padding:10px 0}
  .brand-text{display:none}
  .topbar-actions{gap:8px}
  .menu-toggle,.lang-btn,.theme-btn,.secondary-btn,.ghost-btn{padding:10px 12px;border-radius:14px}
  .hero-card,.panel,.card,.stat-card,.question-card{padding:20px;border-radius:22px!important}
  .hero h1{font-size:36px}
  .page-title{font-size:30px}
  .actions,.toolbar{gap:8px}
  .primary-btn,.secondary-btn,.ghost-btn{width:auto}
  .table-wrap{border-radius:18px}
}
/* Dark mode remains optional and fully readable */
body.dark{
  --bg:#07111f;
  --surface:#0f172a;
  --surface-2:#111d33;
  --surface-3:#13213b;
  --text:#e5eefb;
  --muted:#9fb2d0;
  --line:#223a5c;
  --primary:#60a5fa;
  --primary-2:#3b82f6;
  --primary-soft:#12233f;
  --drawer:#0b1324;
  background:radial-gradient(circle at 80% -12%,rgba(59,130,246,.18),transparent 35%),linear-gradient(180deg,#07111f,#0b1424 48%,#081120)!important;
}
body.dark .topbar{background:rgba(7,17,31,.88)!important;border-color:#1f3657!important;box-shadow:0 10px 28px rgba(0,0,0,.28)}
body.dark .brand,body.dark .brand-text,body.dark .hero h1,body.dark .page-title,body.dark .section-title,body.dark .stat-value,body.dark .footer-brand{color:#e5eefb!important}
body.dark .hero-card,body.dark .panel,body.dark .card,body.dark .stat-card,body.dark .question-card,body.dark .feature-item,body.dark .auth-card,body.dark .waiting-card,body.dark .msg,body.dark .ticket-card,body.dark .invoice-card,body.dark .payment-card,body.dark .fee-card,body.dark .import-card,body.dark .student-card,body.dark .teacher-card,body.dark .school-card,body.dark .parent-card{
  background:linear-gradient(180deg,#0f172a,#101d33)!important;
  border-color:#223a5c!important;
  box-shadow:0 22px 54px rgba(0,0,0,.28)!important;
}
body.dark .top-link{color:#bfd0e8!important}
body.dark .top-link:hover,body.dark .top-link.active{background:#12233f!important;color:#bfdbfe!important;border-color:#284b7a!important}
body.dark .menu-toggle,body.dark .lang-btn,body.dark .theme-btn,body.dark .secondary-btn,body.dark .ghost-btn,body.dark .side-close,body.dark .field input,body.dark .field select,body.dark .field textarea,body.dark input:not([type="checkbox"]):not([type="radio"]),body.dark select,body.dark textarea{
  background:#0f172a!important;color:#e5eefb!important;border-color:#223a5c!important;
}
body.dark .primary-btn{background:linear-gradient(135deg,#2563eb,#60a5fa,#14b8a6)!important;color:#fff!important}
body.dark .table-wrap,body.dark .table{background:#0f172a!important;border-color:#223a5c!important}
body.dark .table th{background:#12233f!important;color:#bfdbfe!important;border-color:#223a5c!important}
body.dark .table td{color:#e5eefb!important;border-color:#1f3657!important}
body.dark .table tbody tr:hover td{background:#111d33!important}
body.dark .side-drawer,body.dark .side-drawer-head{background:rgba(11,19,36,.98)!important;border-color:#223a5c!important}
body.dark .side-link{color:#e5eefb!important}
body.dark .side-link:hover,body.dark .side-link.active{background:#12233f!important;color:#bfdbfe!important;border-color:#284b7a!important}
body.dark .eyebrow,body.dark .badge,body.dark .notice,body.dark .student-dashboard-pill{background:#12233f!important;color:#bfdbfe!important;border-color:#284b7a!important}
body.dark .option-tile,body.dark .result-answer,body.dark .print-box,body.dark .print-question,body.dark .kpi,body.dark .upload-box,body.dark .file-drop,body.dark .drop-zone,body.dark .file-upload-box{background:#111d33!important;border-color:#223a5c!important;color:#e5eefb!important}
body.dark .site-footer{background:rgba(7,17,31,.48);border-color:#1f3657}
body.dark .footer-links a{color:#bfd0e8}body.dark .footer-links a:hover{color:#bfdbfe}
@media print{
  body,body.dark{background:#fff!important;color:#111!important}
  .hero-card,.panel,.card,.stat-card,.question-card,.table-wrap{box-shadow:none!important;background:#fff!important;border-color:#ddd!important}
  .certificate-sheet,.certificate-page{background:#fff!important;color:#111!important}
}


/* NanoStudent Modern Blue Final Polish - consistency layer across all roles */
:root{
  --ns-primary:#2563eb;
  --ns-primary-2:#1d4ed8;
  --ns-primary-3:#3b82f6;
  --ns-teal:#14b8a6;
  --ns-bg:#f3f7ff;
  --ns-surface:#ffffff;
  --ns-line:#d7e5fb;
  --ns-text:#0f172a;
  --ns-muted:#64748b;
  --ns-radius:22px;
}
*{box-sizing:border-box}
img,svg,video,canvas{max-width:100%;height:auto}
.site-shell{min-height:100vh;display:flex;flex-direction:column}
main.page-shell{flex:1;width:100%}
/* Header and public nav consistency */
.topbar{position:sticky;top:0;z-index:60;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0}
.desktop-nav{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;flex:1}
.public-desktop-nav{flex-wrap:wrap}
.compact-topbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;min-width:max-content}
.role-home-pill{
  display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:11px 16px;border-radius:16px;
  background:linear-gradient(135deg,var(--ns-primary),var(--ns-primary-3),var(--ns-teal))!important;
  color:#fff!important;font-weight:800;box-shadow:0 16px 34px rgba(37,99,235,.20)!important;text-decoration:none!important;
}
.role-home-pill:hover{transform:translateY(-1px);box-shadow:0 22px 44px rgba(37,99,235,.28)!important}
/* Remove leftover non-blue gradients from earlier themes */
.role-admin .brand-mark,.role-admin .primary-btn,
.role-school_manager .brand-mark,.role-school_manager .primary-btn,
.role-school_accountant .brand-mark,.role-school_accountant .primary-btn,
.role-teacher .brand-mark,.role-teacher .primary-btn,
.role-parent .brand-mark,.role-parent .primary-btn,
.role-student .brand-mark,.role-student .primary-btn,
.avatar-fallback,.profile-preview,.role-home-pill{
  background:linear-gradient(135deg,var(--ns-primary),var(--ns-primary-3),var(--ns-teal))!important;
}
.reward-purple,.question-progress-bar span,.mini-bar-row i,.toggle-switch input:checked+span,.credit-preview-box .total,.parent-review-hero,.parent-report-hero,.parent-child-dashboard{
  background:linear-gradient(135deg,#dbeafe,#3b82f6)!important;
}
.toggle-switch input:checked+span{background:linear-gradient(135deg,var(--ns-primary),var(--ns-teal))!important}
/* Layout rhythm */
.page-shell>.container{width:min(1320px,100%);margin-inline:auto}
.page-title,.section-title{line-height:1.12;margin-bottom:10px}
.page-subtitle{line-height:1.75;max-width:920px}
.card,.panel,.stat-card,.question-card,.auth-card,.hero-card{overflow:hidden}
.card.stack,.panel.stack{display:flex;flex-direction:column;gap:16px}
.toolbar,.inline-actions,.actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}
.toolbar{margin-block:12px 18px}
.toolbar>div{min-width:0}
.toolbar .page-title,.toolbar .section-title{margin-top:0}
.primary-btn,.secondary-btn,.ghost-btn,button,input[type="submit"]{min-height:42px;align-items:center;justify-content:center;gap:8px;line-height:1.2;white-space:normal;text-align:center}
.primary-btn:focus-visible,.secondary-btn:focus-visible,.ghost-btn:focus-visible,.top-link:focus-visible,.side-link:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(37,99,235,.25)!important;outline-offset:2px}
/* Tables and long text */
.table-wrap{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch}
.table{min-width:720px;width:100%}
.table th,.table td{vertical-align:middle;line-height:1.55}
.table td,.table th,.user-cell-name,.user-cell-email,.code-tag,.tag{overflow-wrap:anywhere;word-break:break-word}
.user-cell{display:flex;align-items:center;gap:10px;min-width:0}
.user-cell-text,.user-cell-name,.user-cell-email{min-width:0;max-width:100%}
.user-cell-name{font-weight:800;color:var(--ns-text)}
.user-cell-email{display:block;color:var(--ns-muted);font-size:12px}
/* School manager grouped navigation */
.school-module-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:16px 0 22px}
.school-nav-group{border:1px solid var(--ns-line);border-radius:20px;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 12px 28px rgba(30,64,175,.06);overflow:hidden}
.school-nav-group summary{list-style:none;cursor:pointer;padding:14px 16px;font-weight:800;color:#1e40af;display:flex;align-items:center;gap:10px}
.school-nav-group summary::-webkit-details-marker{display:none}
.school-nav-group summary:after{content:'⌄';margin-inline-start:auto;color:#64748b;font-weight:800;transition:.18s}
.school-nav-group[open] summary:after{transform:rotate(180deg)}
.school-nav-links{display:flex;flex-wrap:wrap;gap:8px;padding:0 12px 14px}
.school-nav-link{display:inline-flex;align-items:center;justify-content:center;border:1px solid #d7e5fb;background:#fff;color:#1e3a8a;text-decoration:none;border-radius:999px;padding:9px 12px;font-weight:800;font-size:13px;line-height:1.2}
.school-nav-link:hover,.school-nav-link.active{background:#eaf2ff;border-color:#93c5fd;color:#1d4ed8;box-shadow:0 8px 18px rgba(37,99,235,.10)}
/* Upload and file widgets */
input[type="file"]{max-width:100%}
.upload-drop,.upload-box,.file-drop,.drop-zone,.file-upload-box{min-height:110px;display:grid;place-items:center;text-align:center;gap:8px}
/* Print/PDF pages stay clean */
.print-shell,.print-page,.certificate-page{background:#fff;color:#111}.print-head{border-bottom-color:#2563eb!important}.print-box{border-color:#d7e5fb!important;background:#f8fbff!important}
/* Mobile friendliness */
@media (max-width:980px){
  .desktop-nav.student-only-nav{justify-content:center;order:3;width:100%;flex-basis:100%}
  .topbar-inner{flex-wrap:wrap}
  .student-dashboard-pill{width:100%;max-width:420px}
  .compact-topbar-actions{margin-inline-start:auto}
  .school-module-nav{grid-template-columns:1fr}
  .user-admin-card,.result-admin-card,.parent-test-card,.fee-account-card,.payment-history-card{grid-template-columns:1fr!important}
  .user-admin-actions,.parent-test-actions,.invoice-actions{justify-content:flex-start}
}
@media (max-width:760px){
  .public-desktop-nav{display:none!important}
  .topbar-inner{gap:10px}
  .compact-topbar-actions .secondary-btn[href*="logout"]{display:none}
  .student-dashboard-pill{font-size:14px;padding:11px 14px;min-height:42px}
  .card,.panel,.hero-card,.question-card,.auth-card{padding:18px!important}
  .table{min-width:620px}
  .toolbar,.inline-actions,.actions{align-items:stretch}
  .toolbar a,.toolbar button,.inline-actions a,.inline-actions button,.actions a,.actions button{flex:1 1 auto}
  .school-nav-links{display:grid;grid-template-columns:1fr 1fr}
  .school-nav-link{border-radius:14px;padding:10px 8px}
}
@media (max-width:520px){
  .table{min-width:560px}
  .school-nav-links{grid-template-columns:1fr}
  .brand-mark{width:44px;height:44px}
  .menu-toggle,.lang-btn,.theme-btn{min-width:44px}
}
/* Dark mode polish */
body.dark .school-nav-group{background:linear-gradient(180deg,#0f172a,#111d33);border-color:#223a5c}
body.dark .school-nav-group summary{color:#bfdbfe}
body.dark .school-nav-link{background:#0f172a;border-color:#223a5c;color:#e5eefb}
body.dark .school-nav-link:hover,body.dark .school-nav-link.active{background:#12233f;color:#bfdbfe;border-color:#284b7a}
/* Academic term selector and no-sections school structure polish */
.school-term-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 0 18px;padding:14px 18px;border:1px solid rgba(37,99,235,.18);background:linear-gradient(135deg,rgba(239,246,255,.96),rgba(255,255,255,.96));box-shadow:0 14px 32px rgba(37,99,235,.08)}
.term-current{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.term-label{font-weight:800;color:#1e40af}.term-switch-form select{min-width:260px;border-radius:18px;border:1px solid rgba(37,99,235,.22);background:#fff;color:#0f172a;font-weight:700;padding:11px 16px}.term-highlight{border-radius:22px;background:linear-gradient(135deg,#dbeafe,#eff6ff);padding:18px;color:#1e3a8a;font-size:20px}.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.check-grid label{border:1px solid rgba(37,99,235,.14);background:#f8fafc;border-radius:18px;padding:12px;font-weight:700;color:#1e3a8a}.structure-link-card{grid-template-columns:1.2fr 1fr auto}.alert.info-soft{background:linear-gradient(135deg,#eff6ff,#f8fbff);border:1px solid #bfdbfe;color:#1e3a8a;padding:14px 18px;border-radius:20px;margin:12px 0 18px;font-weight:700}.tag.success{background:#dcfce7;color:#166534;border-color:#bbf7d0}
body.dark .school-term-bar,body.dark .alert.info-soft{background:linear-gradient(135deg,rgba(15,23,42,.95),rgba(30,41,59,.95));border-color:rgba(96,165,250,.25);color:#dbeafe}body.dark .term-switch-form select{background:#0f172a;color:#e2e8f0;border-color:rgba(96,165,250,.35)}body.dark .check-grid label{background:#111827;color:#dbeafe;border-color:rgba(96,165,250,.25)}body.dark .term-highlight{background:#0f172a;color:#dbeafe}
@media(max-width:800px){.school-term-bar{flex-direction:column;align-items:stretch}.term-current{display:block}.term-switch-form select{width:100%;min-width:0}.structure-link-card{grid-template-columns:1fr}}

/* Tawjihi UX polish */
.tawjihi-cost-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0;padding:12px;border:1px solid var(--border,#dbe7ff);border-radius:16px;background:linear-gradient(135deg,rgba(37,99,235,.07),rgba(14,165,233,.06))}
.tawjihi-cost-preview div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.72)}
.tawjihi-cost-preview span{color:var(--muted,#64748b);font-size:.86rem}.tawjihi-cost-preview strong{color:var(--primary,#2563eb)}
.low-credit{color:#dc2626!important}.result-recommendation{margin-top:8px;line-height:1.8}.tawjihi-unit-card .field input[type=number]{direction:ltr;text-align:center}
.dark .tawjihi-cost-preview{background:rgba(37,99,235,.12);border-color:rgba(148,163,184,.25)}.dark .tawjihi-cost-preview div{background:rgba(15,23,42,.7)}
@media (max-width:700px){.tawjihi-cost-preview{grid-template-columns:1fr}.tawjihi-cost-preview div{align-items:flex-start;flex-direction:column}}
/* Ministry-style Tawjihi patterns */
.inline-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.inline-tags .tag{font-size:.78rem}
.tawjihi-unit-card .tawjihi-mode-select:disabled{opacity:.6}.tawjihi-subject-card .tag{white-space:nowrap}
.status-muted{background:#eef2f7;color:#64748b;border:1px solid #dbe4ef}.status-success{background:#e9f8ef;color:#137a3d;border:1px solid #bfe8cd}
[data-theme="dark"] .status-muted{background:#172338;color:#9fb0c4;border-color:#2a3a55}


/*
 * NanoStudent Design System v2
 * Phase 1: consistent typography, spacing, controls, cards, header, forms, tables and responsive behavior.
 * Loaded through the compiled assets/css/nanostudent-ui.css bundle.
 */
:root{
  --ns-bg:#f5f7fb;
  --ns-surface:#ffffff;
  --ns-surface-subtle:#f8fafc;
  --ns-surface-brand:#eff6ff;
  --ns-text:#0f172a;
  --ns-text-secondary:#475569;
  --ns-text-muted:#64748b;
  --ns-border:#dbe4ef;
  --ns-border-strong:#cbd5e1;
  --ns-primary:#2563eb;
  --ns-primary-hover:#1d4ed8;
  --ns-primary-active:#1e40af;
  --ns-primary-soft:#eff6ff;
  --ns-success:#15803d;
  --ns-warning:#b45309;
  --ns-danger:#b91c1c;
  --ns-focus:rgba(37,99,235,.28);
  --ns-shadow-xs:0 1px 2px rgba(15,23,42,.04);
  --ns-shadow-sm:0 8px 24px rgba(15,23,42,.06);
  --ns-shadow-md:0 18px 44px rgba(15,23,42,.09);
  --ns-radius-sm:8px;
  --ns-radius-md:12px;
  --ns-radius-lg:16px;
  --ns-radius-xl:24px;
  --ns-space-1:4px;
  --ns-space-2:8px;
  --ns-space-3:12px;
  --ns-space-4:16px;
  --ns-space-5:24px;
  --ns-space-6:32px;
  --ns-space-7:48px;
  --ns-space-8:64px;
  --ns-control-sm:44px;
  --ns-control:48px;
  --bg:var(--ns-bg);
  --surface:var(--ns-surface);
  --surface-2:var(--ns-surface-subtle);
  --text:var(--ns-text);
  --muted:var(--ns-text-secondary);
  --line:var(--ns-border);
  --primary:var(--ns-primary);
  --primary-2:var(--ns-primary-hover);
  --primary-soft:var(--ns-primary-soft);
  --shadow:var(--ns-shadow-sm);
  --radius:var(--ns-radius-lg);
}

body.dark{
  --ns-bg:#08111f;
  --ns-surface:#0f172a;
  --ns-surface-subtle:#111c30;
  --ns-surface-brand:#12233f;
  --ns-text:#e5edf8;
  --ns-text-secondary:#c3d0e3;
  --ns-text-muted:#9fb0c7;
  --ns-border:#263650;
  --ns-border-strong:#385171;
  --ns-primary:#60a5fa;
  --ns-primary-hover:#93c5fd;
  --ns-primary-active:#bfdbfe;
  --ns-primary-soft:#12233f;
  --ns-focus:rgba(96,165,250,.34);
  --ns-shadow-xs:0 1px 2px rgba(0,0,0,.18);
  --ns-shadow-sm:0 10px 28px rgba(0,0,0,.22);
  --ns-shadow-md:0 22px 52px rgba(0,0,0,.30);
}

html{font-size:16px;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{
  font-family:Inter,Cairo,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:16px;
  line-height:1.65;
  color:var(--ns-text);
  background:var(--ns-bg);
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
body.rtl{font-family:Cairo,Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
body.drawer-open{overflow:hidden}
button,input,select,textarea{font-family:inherit}
h1,h2,h3,h4,h5,h6,strong,b,.brand,.primary-btn,.secondary-btn,.ghost-btn{font-synthesis:none}
h1,h2,h3,h4,h5,h6{color:var(--ns-text);font-weight:800;letter-spacing:-.025em;line-height:1.25}
p,li{line-height:1.75}
small,.small{font-size:.875rem;line-height:1.6}
.muted,.page-subtitle,.form-note{color:var(--ns-text-secondary)}
.container{width:min(100% - 40px,1240px);max-width:1240px;padding:0;margin-inline:auto}
.page-shell{padding-block:32px 52px}

/* Header */
.topbar{background:color-mix(in srgb,var(--ns-surface) 90%,transparent);border-bottom:1px solid var(--ns-border);box-shadow:var(--ns-shadow-xs)}
.topbar-inner{min-height:68px;gap:16px;flex-wrap:nowrap}
.brand{gap:10px;font-size:17px;font-weight:800;min-width:max-content}
.brand-mark{width:40px;height:40px;border-radius:12px;background:var(--ns-primary);box-shadow:0 8px 18px rgba(37,99,235,.20);font-weight:800}
.brand-mark.small{width:38px;height:38px;border-radius:11px}
.brand-text{font-size:17px;font-weight:800}
.desktop-nav{gap:6px}
.top-link{min-height:44px;padding:10px 12px;border-radius:10px;color:var(--ns-text-secondary);font-weight:700;display:inline-flex;align-items:center}
.top-link:hover,.top-link.active{background:var(--ns-primary-soft);color:var(--ns-primary-active)}
.internal-desktop-nav{justify-content:center}
.role-home-pill,.student-dashboard-pill{
  min-width:0;max-width:260px;min-height:44px;padding:10px 16px;border:1px solid color-mix(in srgb,var(--ns-primary) 18%,var(--ns-border));
  border-radius:12px;background:var(--ns-primary-soft)!important;color:var(--ns-primary-active)!important;font-size:14px;font-weight:800;
  box-shadow:none!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transform:none!important;
}
.role-home-pill:hover,.student-dashboard-pill:hover,.role-home-pill.active,.student-dashboard-pill.active{background:color-mix(in srgb,var(--ns-primary-soft) 78%,var(--ns-primary) 22%)!important;color:var(--ns-primary-active)!important;border-color:color-mix(in srgb,var(--ns-primary) 35%,var(--ns-border))}
.topbar-actions,.compact-topbar-actions{gap:8px}
.topbar-icon-btn,.credit-chip,.topbar-lang-menu summary,.theme-btn,.menu-toggle,.topbar-account-avatar{
  min-width:44px;min-height:44px;padding:9px 11px;border-radius:12px;border:1px solid var(--ns-border);background:var(--ns-surface);color:var(--ns-text);
  box-shadow:none;display:inline-flex;align-items:center;justify-content:center;font-weight:700;
}
.credit-chip{min-width:auto;background:var(--ns-primary-soft);color:var(--ns-primary-active)}
.topbar-icon-btn:hover,.credit-chip:hover,.topbar-lang-menu summary:hover,.theme-btn:hover,.menu-toggle:hover{border-color:var(--ns-border-strong);background:var(--ns-surface-subtle);transform:none;box-shadow:none}
.topbar-avatar{width:40px;height:40px;border-radius:11px}
.topbar-lang-menu a{border:1px solid var(--ns-border);box-shadow:var(--ns-shadow-sm);border-radius:10px}

/* Drawer */
.side-drawer{top:76px;inset-inline-end:16px;right:auto;width:330px;max-height:calc(100dvh - 92px);padding:16px;border-radius:20px;border-color:var(--ns-border);box-shadow:var(--ns-shadow-md)}
.side-drawer-head{padding-bottom:12px;border-bottom:1px solid var(--ns-border);margin-bottom:12px}
.side-close{width:44px;height:44px;padding:0;border-radius:12px}
.side-section-title,.side-group-label{font-size:12px!important;letter-spacing:.06em;color:var(--ns-text-muted)!important;font-weight:800!important;margin:16px 8px 8px!important}
.side-nav{gap:4px}
.side-link{min-height:44px;padding:10px 12px;border-radius:10px;font-size:14px;font-weight:700;gap:10px}
.side-link:hover{background:var(--ns-surface-subtle)}
.side-link.active{background:var(--ns-primary-soft);color:var(--ns-primary-active);border-color:color-mix(in srgb,var(--ns-primary) 20%,var(--ns-border))}
.side-icon{width:24px;min-width:24px;font-size:16px}
.drawer-backdrop{background:rgba(15,23,42,.36)}

/* Typography scale */
.hero h1,.public-hero-copy h1{font-size:clamp(2rem,4.1vw,3.25rem);line-height:1.14;letter-spacing:-.035em}
.page-title{font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.2}
.section-title{font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.25}
.section-head h2,.page-hero h1{font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.22}
.page-subtitle{font-size:1rem;line-height:1.75;margin-block:0 20px;max-width:840px}
.eyebrow,.marketing-eyebrow,.badge,.tag{font-size:.8125rem;font-weight:700}
.stat-value{font-size:clamp(1.75rem,3vw,2.25rem);font-weight:800}

/* Buttons */
.primary-btn,.secondary-btn,.ghost-btn,.danger-btn,button[type="submit"],input[type="submit"]{
  min-height:var(--ns-control);padding:11px 18px;border-radius:12px;font-size:.9375rem;font-weight:700;line-height:1.2;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease;
}
.primary-btn,button.primary-btn,input.primary-btn{background:var(--ns-primary)!important;color:#fff!important;border:1px solid var(--ns-primary)!important;box-shadow:0 8px 18px rgba(37,99,235,.17)!important}
.primary-btn:hover,button.primary-btn:hover,input.primary-btn:hover{background:var(--ns-primary-hover)!important;border-color:var(--ns-primary-hover)!important;transform:none!important;box-shadow:0 10px 22px rgba(37,99,235,.22)!important}
.primary-btn:active{background:var(--ns-primary-active)!important;box-shadow:none!important}
.secondary-btn{background:var(--ns-primary-soft)!important;color:var(--ns-primary-active)!important;border:1px solid color-mix(in srgb,var(--ns-primary) 18%,var(--ns-border))!important;box-shadow:none!important}
.secondary-btn:hover{background:color-mix(in srgb,var(--ns-primary-soft) 80%,var(--ns-primary) 20%)!important;transform:none!important}
.ghost-btn{background:transparent!important;color:var(--ns-text-secondary)!important;border:1px solid var(--ns-border)!important;box-shadow:none!important}
.ghost-btn:hover{background:var(--ns-surface-subtle)!important;color:var(--ns-text)!important;border-color:var(--ns-border-strong)!important;transform:none!important}
.danger-btn{background:#fef2f2!important;color:var(--ns-danger)!important;border:1px solid #fecaca!important;box-shadow:none!important}
.icon-btn,.table-action,.action-icon{min-width:44px;min-height:44px}
button:disabled,.primary-btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed;box-shadow:none!important}

/* Forms */
.field{gap:7px}
.field label,.field>span,.contact-form .field span{font-size:.9rem;font-weight:700;color:var(--ns-text)}
.field small{color:var(--ns-text-secondary)}
.field input,.field select,.field textarea,input[type="text"],input[type="email"],input[type="password"],input[type="number"],input[type="date"],input[type="datetime-local"],select,textarea{
  width:100%;min-height:var(--ns-control);padding:11px 14px;border-radius:10px;border:1px solid var(--ns-border);background:var(--ns-surface);color:var(--ns-text);box-shadow:var(--ns-shadow-xs);outline:none;
}
.field textarea,textarea{min-height:120px;padding-block:12px}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--ns-border-strong)}
.field input:focus,.field select:focus,.field textarea:focus,input:focus,select:focus,textarea:focus{border-color:var(--ns-primary);box-shadow:0 0 0 3px var(--ns-focus)!important}
::placeholder{color:var(--ns-text-muted);opacity:.9}
.password-control{position:relative;display:flex;align-items:center}
.password-control input{padding-inline-end:52px}
.password-toggle{position:absolute;inset-inline-end:4px;top:4px;width:40px;height:40px;min-height:40px;padding:0;border:0;background:transparent;color:var(--ns-text-secondary);border-radius:8px;cursor:pointer}
.password-toggle:hover{background:var(--ns-surface-subtle)}
.password-meter{display:grid;gap:6px;margin-top:2px}
.password-meter-track{height:6px;background:var(--ns-border);border-radius:999px;overflow:hidden}
.password-meter-fill{display:block;width:0;height:100%;background:var(--ns-danger);transition:width .2s ease,background-color .2s ease}
.password-meter-text{font-size:.78rem;color:var(--ns-text-secondary)}
.terms-check{align-items:flex-start;line-height:1.7}
.terms-check input{width:18px;height:18px;margin-top:4px;flex:none}

/* Cards and spacing */
.card,.panel,.stat-card,.question-card,.auth-card,.hero-card,.role-card,.step-card,.timeline-card,.feature-group-card,.faq-item,.public-hero-copy,.public-hero-panel{
  border:1px solid var(--ns-border);border-radius:var(--ns-radius-lg);background:var(--ns-surface);box-shadow:var(--ns-shadow-xs);overflow:hidden;
}
.card,.panel,.stat-card,.question-card{padding:22px}
.card:hover,.panel:hover{border-color:color-mix(in srgb,var(--ns-primary) 16%,var(--ns-border))}
.stack{gap:16px}.grid{gap:16px}.stats-grid{gap:16px}.toolbar,.actions,.inline-actions{gap:10px}
.flash,.notice,.alert,.alert-note{border-radius:12px;padding:14px 16px}

/* Tables */
.table-wrap{border:1px solid var(--ns-border);border-radius:14px;background:var(--ns-surface);overflow:auto;box-shadow:var(--ns-shadow-xs)}
.table{min-width:680px;border-collapse:separate;border-spacing:0}
.table th{font-size:.75rem;letter-spacing:.035em;color:var(--ns-text-secondary);background:var(--ns-surface-subtle);font-weight:800;white-space:nowrap}
.table th,.table td{padding:13px 14px;border-bottom:1px solid var(--ns-border)}
.table tr:last-child td{border-bottom:0}
.table tbody tr:hover{background:color-mix(in srgb,var(--ns-primary-soft) 36%,transparent)}

/* Public pages */
.public-hero{gap:20px;min-height:auto;margin-block:8px 24px}
.public-hero-copy{padding:38px}
.public-hero-copy h1{margin:12px 0 16px}
.public-hero-copy p{font-size:1.0625rem;line-height:1.8;color:var(--ns-text-secondary);max-width:700px}
.public-hero-panel{padding:24px}
.marketing-actions{gap:10px;margin-top:22px}
.trust-row{gap:8px;margin-top:18px}
.trust-row span{padding:8px 10px;border-radius:10px;font-size:.82rem;background:var(--ns-surface-subtle);color:var(--ns-text-secondary)}
.hero-stat-grid{gap:10px}
.hero-stat-grid>div{padding:14px;border-radius:12px}
.hero-stat-grid img{width:24px;height:24px}
.demo-card{border-radius:14px;padding:16px}
.marketing-section{margin:28px 0}
.section-head{margin-bottom:18px}
.section-head h2{margin:10px 0 6px}
.role-cards{grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:14px}
.steps-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.role-card,.step-card{padding:20px;min-height:0}
.role-icon{width:48px;height:48px;border-radius:12px;margin-bottom:12px;background:var(--ns-primary-soft)}
.role-icon img{width:26px;height:26px;display:block}
.role-card h3,.step-card h3{font-size:1.05rem;margin-bottom:6px}
.role-card p,.step-card p{font-size:.925rem;line-height:1.7;color:var(--ns-text-secondary);margin:0}
.soft-section{padding:26px;border-radius:20px}
.split-section{gap:16px}
.public-card{padding:24px}
.check-grid{gap:10px;margin-top:14px}
.check-grid div{padding:11px 12px;border-radius:10px;font-size:.9rem}
.final-cta{padding:32px!important;margin:30px 0}
.final-cta h2{font-size:clamp(1.6rem,3vw,2.25rem)}
.final-cta p{font-size:1rem;color:var(--ns-text-secondary)}
.page-hero{padding:32px}
.page-hero p{font-size:1rem;line-height:1.8;color:var(--ns-text-secondary)}

/* Authentication */
body.page-auth-login .page-shell,body.page-auth-register .page-shell,body.page-auth-forgot-password .page-shell,body.page-auth-reset-password .page-shell{display:grid;place-items:center;min-height:calc(100dvh - 250px)}
.auth-card{width:min(100%,540px);padding:30px;margin:0 auto;border-radius:18px;box-shadow:var(--ns-shadow-sm)}
.auth-card .section-title{margin:0 0 6px;font-size:1.75rem}
.auth-card .page-subtitle{margin-bottom:22px}
.auth-card .toolbar{margin:4px 0 0;display:block}
.auth-card .toolbar .primary-btn,.auth-submit{width:100%}
.auth-card .login-links{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:2px;font-size:.9rem}
.auth-link{color:var(--ns-primary-active);font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.auth-link:hover{color:var(--ns-primary-hover)}
.google-oauth-btn{min-height:48px;border-radius:12px;box-shadow:none}
.divider{margin-block:4px}
.role-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.role-option{position:relative;display:flex;align-items:flex-start;gap:10px;padding:13px;border:1px solid var(--ns-border);border-radius:12px;background:var(--ns-surface);cursor:pointer;transition:.18s ease}
.role-option:hover{border-color:var(--ns-border-strong);background:var(--ns-surface-subtle)}
.role-option input{position:absolute;opacity:0;pointer-events:none}
.role-option-icon{width:38px;height:38px;flex:none;border-radius:10px;background:var(--ns-primary-soft);display:grid;place-items:center}
.role-option-icon img{width:22px;height:22px}
.role-option-copy{display:grid;gap:2px;min-width:0}
.role-option-copy strong{font-size:.9rem;color:var(--ns-text)}
.role-option-copy small{font-size:.75rem;color:var(--ns-text-secondary);line-height:1.45}
.role-option:has(input:checked){border-color:var(--ns-primary);background:var(--ns-primary-soft);box-shadow:0 0 0 2px var(--ns-focus)}
.role-option:has(input:focus-visible){outline:3px solid var(--ns-focus);outline-offset:2px}
[hidden]{display:none!important}

/* Footer */
.site-footer{padding:30px 0 22px;background:var(--ns-surface);border-top:1px solid var(--ns-border);backdrop-filter:none}
.pro-footer-grid{grid-template-columns:1.4fr .7fr .7fr;gap:28px}
.footer-brand-block p{font-size:.9rem;line-height:1.7;margin-bottom:0}
.footer-col{gap:7px}.footer-col h4{font-size:.9rem;margin-bottom:4px}.footer-col a{font-size:.875rem;color:var(--ns-text-secondary);font-weight:600}
.footer-bottom{padding-top:14px;margin-top:18px;font-size:.78rem;color:var(--ns-text-secondary)}

/* Accessibility */
:focus-visible{outline:3px solid var(--ns-focus)!important;outline-offset:2px}
.skip-link{position:fixed;inset-inline-start:16px;top:8px;z-index:1000;transform:translateY(-160%);padding:10px 14px;border-radius:10px;background:var(--ns-text);color:var(--ns-surface);font-weight:700}
.skip-link:focus{transform:none}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

@media (max-width:1120px){
  .steps-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .public-desktop-nav{display:none!important}
}
@media (max-width:820px){
  .container{width:min(100% - 28px,1240px)}
  .topbar-inner{min-height:64px;gap:8px}
  .brand-text{display:none}
  .internal-desktop-nav{display:none!important}
  .compact-topbar-actions{margin-inline-start:auto;gap:6px}
  .topbar-actions .secondary-btn,.topbar-actions .primary-btn{min-height:42px;padding:9px 12px}
  .page-shell{padding-block:22px 38px}
  .card,.panel,.stat-card,.question-card{padding:18px}
  .public-hero{grid-template-columns:1fr}
  .public-hero-copy,.public-hero-panel,.page-hero,.public-card{padding:22px;border-radius:16px}
  .public-hero-copy h1{font-size:clamp(2rem,8vw,2.65rem)}
  .role-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .split-section{grid-template-columns:1fr}
  .pro-footer-grid{grid-template-columns:1fr 1fr}
  .footer-brand-block{grid-column:1/-1}
}
@media (max-width:620px){
  body{font-size:15px}
  .container{width:min(100% - 24px,1240px)}
  .brand-mark{width:38px;height:38px}
  .topbar-actions .secondary-btn{display:none}
  .topbar-actions .primary-btn{padding-inline:12px;font-size:.85rem}
  .topbar-lang-menu summary,.menu-toggle,.theme-btn{min-width:42px;min-height:42px;padding:8px}
  .side-drawer{top:68px;inset-inline:8px;width:auto;max-width:none;max-height:calc(100dvh - 76px);border-radius:16px}
  .role-cards,.steps-grid,.hero-stat-grid,.check-grid,.role-picker{grid-template-columns:1fr}
  .role-card{display:grid;grid-template-columns:48px minmax(0,1fr);column-gap:12px;align-items:start;padding:16px}
  .role-card .role-icon{grid-row:1/3;margin:0}
  .role-card h3{margin-top:2px}
  .role-card p{grid-column:2}
  .soft-section{padding:18px}
  .marketing-actions{display:grid;grid-template-columns:1fr}
  .marketing-actions .primary-btn,.marketing-actions .secondary-btn,.marketing-actions .ghost-btn{width:100%}
  .auth-card{padding:22px;border-radius:16px}
  .auth-card .login-links{align-items:flex-start;flex-direction:column}
  .grid.two{grid-template-columns:1fr!important}
  .pro-footer-grid{grid-template-columns:1fr;gap:22px}
  .footer-brand-block{grid-column:auto}
  .footer-bottom{display:grid;gap:6px}
  .table-wrap{border-radius:12px}
  .responsive-table{min-width:0!important}
  .responsive-table thead,.responsive-table .table-head-row{display:none}
  .responsive-table tbody,.responsive-table tr,.responsive-table td{display:block;width:100%}
  .responsive-table tr{padding:10px 14px;border-bottom:1px solid var(--ns-border)}
  .responsive-table tr:last-child{border-bottom:0}
  .responsive-table td{display:grid;grid-template-columns:minmax(92px,38%) minmax(0,1fr);gap:12px;padding:8px 0!important;border:0!important;text-align:start!important}
  .responsive-table td:before{content:attr(data-label);font-size:.75rem;font-weight:800;color:var(--ns-text-secondary)}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Small component fixes added during implementation review */
.role-picker-field{margin:0;padding:0;border:0;min-width:0;gap:10px}
.role-picker-field legend{padding:0;margin:0 0 8px;font-size:.9rem;font-weight:700;color:var(--ns-text)}
.auth-card-wide{width:min(100%,680px)}
.auth-heading{display:grid;gap:4px;margin-bottom:2px}
.auth-heading .marketing-eyebrow{width:max-content;margin-bottom:4px}
.auth-form{gap:16px}
.hero-stat-grid>div{display:flex;align-items:center;gap:10px;text-align:start}
.hero-stat-grid>div span{font-weight:700;color:var(--ns-text-secondary)}
.hero-stat-grid>div strong{font-size:1rem}
body.dark .role-option,body.dark .field input,body.dark .field select,body.dark .field textarea{background:var(--ns-surface);color:var(--ns-text);border-color:var(--ns-border)}
body.dark .role-option:has(input:checked){background:var(--ns-primary-soft);border-color:var(--ns-primary)}
body.dark .password-toggle{color:var(--ns-text-secondary)}
@media(max-width:620px){.auth-card-wide{width:100%}.auth-heading .marketing-eyebrow{font-size:.75rem}}

/* Strong final overrides against legacy high-specificity gradients. */
body[class] .brand-mark{background:var(--ns-primary)!important;box-shadow:0 8px 18px rgba(37,99,235,.20)!important}
body[class] a.primary-btn,body[class] button.primary-btn,body[class] input[type="submit"].primary-btn,body[class] .primary-btn{
  background:var(--ns-primary)!important;border:1px solid var(--ns-primary)!important;color:#fff!important;
}
body.dark[class] a.primary-btn,body.dark[class] button.primary-btn,body.dark[class] input[type="submit"].primary-btn,body.dark[class] .primary-btn{background:#2563eb!important;border-color:#2563eb!important;color:#fff!important}
.footer-col a{display:flex;align-items:center;min-height:34px}
@media(max-width:620px){
  .brand{min-width:44px;min-height:44px}
  .topbar-lang-menu summary,.menu-toggle,.theme-btn,.topbar-actions .primary-btn{min-height:44px!important}
  .menu-toggle,.theme-btn,.topbar-lang-menu summary{min-width:44px!important}
  .side-close{width:46px;height:46px}
  .side-link{min-height:46px}
}

/* =========================================================
   NanoStudent Design V2 — Phase 2
   School manager workspace and dashboard
   ========================================================= */

body.role-school_manager .page-shell{padding-top:18px}
body.role-school_manager .section-title{margin-bottom:12px}
body.role-school_manager .card:hover{transform:none}

/* Compact academic term and module navigation */
.school-workspace-controls{display:grid;gap:8px;margin:10px 0 16px}
.school-workspace-controls .school-term-bar{
  margin:0;padding:9px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;
  border-radius:14px;box-shadow:none;background:var(--ns-surface-subtle);border-color:var(--ns-border)
}
.school-workspace-controls .term-current{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
.school-workspace-controls .term-label{font-size:.78rem;font-weight:800;color:var(--ns-text-muted);white-space:nowrap}
.school-workspace-controls .term-switch-form{margin:0;min-width:220px;max-width:330px;flex:1}
.school-workspace-controls .term-switch-form select{
  width:100%;min-height:38px;padding:7px 11px;border-radius:9px;border:1px solid var(--ns-border);
  background:var(--ns-surface);color:var(--ns-text);font:inherit;font-weight:700
}
.school-workspace-controls .school-term-bar>.primary-btn{min-height:38px;padding:7px 12px;border-radius:9px;font-size:.78rem}

.school-module-nav{display:grid!important;grid-template-columns:1fr!important;gap:0!important;margin:0!important;border:1px solid var(--ns-border);border-radius:13px;background:var(--ns-surface);box-shadow:var(--ns-shadow-xs);overflow:hidden}
.school-nav-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;padding:4px;background:var(--ns-surface-subtle);border-bottom:1px solid var(--ns-border)}
.school-nav-tab{display:flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:6px 8px;border-radius:9px;color:var(--ns-text-secondary);font-size:.78rem;font-weight:800;text-decoration:none;transition:.16s ease}
.school-nav-tab:hover{background:var(--ns-surface);color:var(--ns-primary)}
.school-nav-tab.active{background:var(--ns-surface);color:var(--ns-primary);box-shadow:0 2px 8px rgba(15,23,42,.08)}
.school-nav-tab .school-nav-icon{width:22px;height:22px;border-radius:0;background:transparent;display:inline-grid;place-items:center;flex:none}
.school-nav-tab .school-nav-icon svg{width:19px;height:19px;fill:currentColor}
.school-nav-current{display:flex;align-items:center;gap:11px;padding:7px 10px;min-width:0}
.school-nav-current-label{display:flex;align-items:center;gap:7px;flex:none;padding-inline-end:14px;border-inline-end:1px solid var(--ns-border);font-size:.78rem;font-weight:800;color:var(--ns-text-muted);white-space:nowrap}
.school-nav-current-label>svg{width:17px;height:17px;fill:var(--ns-primary)}
.school-nav-current .school-nav-links{display:flex;align-items:center;gap:6px;padding:0;overflow-x:auto;scrollbar-width:thin;min-width:0;flex:1}
.school-nav-current .school-nav-link{min-height:32px;padding:5px 9px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--ns-text-secondary);font-size:.74rem;font-weight:750;white-space:nowrap;box-shadow:none}
.school-nav-current .school-nav-link:hover{background:var(--ns-surface-subtle);border-color:var(--ns-border);color:var(--ns-primary)}
.school-nav-current .school-nav-link.active{background:var(--ns-primary-soft);border-color:#bfdbfe;color:var(--ns-primary-active);box-shadow:none}
body.dark .school-nav-tab.active{box-shadow:0 2px 10px rgba(0,0,0,.24)}
body.dark .school-nav-current .school-nav-link.active{border-color:#244a83}

/* School dashboard hero */
.school-dashboard-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,330px);gap:12px;align-items:stretch;margin-bottom:10px}
.school-dashboard-heading,.school-code-panel{border:1px solid var(--ns-border);border-radius:14px;background:var(--ns-surface);box-shadow:var(--ns-shadow-xs)}
.school-dashboard-heading{padding:18px 20px;display:flex;flex-direction:column;justify-content:center;min-height:128px;background:linear-gradient(135deg,var(--ns-surface),var(--ns-surface-brand))}
.school-dashboard-eyebrow,.school-section-kicker{display:block;color:var(--ns-primary);font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.school-dashboard-heading h1{margin:5px 0 6px;font-size:clamp(1.6rem,2.5vw,2.15rem);line-height:1.2;color:var(--ns-text);letter-spacing:-.03em}
.school-dashboard-heading p{margin:0;max-width:720px;color:var(--ns-text-secondary);line-height:1.6;font-size:.86rem}
.school-code-panel{padding:15px 16px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 8px;align-content:center;background:var(--ns-surface)}
.school-code-panel>span{grid-column:1/-1;color:var(--ns-text-muted);font-size:.75rem;font-weight:800}
.school-code-panel>strong{font-size:1.28rem;line-height:38px;letter-spacing:.11em;color:var(--ns-text);overflow-wrap:anywhere}
.school-code-panel>.school-copy-code{min-height:42px;padding:8px 12px;border-radius:10px;font-size:.8rem}
.school-code-panel>small{grid-column:1/-1;color:var(--ns-text-secondary);line-height:1.55;font-size:.76rem}

/* Headings */
.school-dashboard-section,.school-quick-actions{margin:16px 0}
.school-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}
.school-section-heading.compact{align-items:center;margin-bottom:9px}
.school-section-heading h2{margin:3px 0 0;font-size:1.08rem;line-height:1.35;color:var(--ns-text)}
.school-section-heading a{color:var(--ns-primary);font-size:.8rem;font-weight:800;text-decoration:none;white-space:nowrap}
.school-section-heading a:hover{text-decoration:underline;text-underline-offset:3px}
.school-term-label{display:inline-flex;align-items:center;min-height:34px;padding:7px 10px;border:1px solid var(--ns-border);border-radius:9px;background:var(--ns-surface-subtle);color:var(--ns-text-secondary);font-size:.75rem;font-weight:800}

/* Quick actions */
.school-quick-actions{padding:12px;border:1px solid var(--ns-border);border-radius:14px;background:var(--ns-surface);box-shadow:var(--ns-shadow-xs)}
.school-quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.school-quick-grid>a{display:grid;grid-template-columns:34px minmax(0,1fr);column-gap:10px;row-gap:2px;align-items:start;padding:9px 10px;border:1px solid var(--ns-border);border-radius:10px;background:var(--ns-surface-subtle);color:inherit;text-decoration:none;min-width:0;transition:.16s ease}
.school-quick-grid>a:hover{border-color:#a8c7f7;background:var(--ns-primary-soft);transform:translateY(-1px)}
.school-quick-grid>a>span{grid-row:1/3;width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:var(--ns-surface);border:1px solid var(--ns-border);color:var(--ns-primary);font-size:.72rem;font-weight:800}
.school-quick-grid>a>strong{font-size:.82rem;color:var(--ns-text);line-height:1.45;min-width:0}
.school-quick-grid>a>small{font-size:.7rem;color:var(--ns-text-muted);line-height:1.45;min-width:0}

/* Priority metrics */
.school-metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.school-metric-card{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr) 14px;gap:8px;align-items:center;min-height:94px;padding:11px;border:1px solid var(--ns-border);border-radius:12px;background:var(--ns-surface);color:inherit;text-decoration:none;box-shadow:var(--ns-shadow-xs);overflow:hidden;transition:.16s ease}
.school-metric-card:hover{transform:translateY(-2px);border-color:#a8c7f7;box-shadow:var(--ns-shadow-sm)}
.school-metric-card:before{content:"";position:absolute;inset-inline-start:0;top:0;bottom:0;width:3px;background:var(--metric-color,#64748b)}
.school-metric-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--metric-soft,#f1f5f9);color:var(--metric-color,#475569)}
.school-metric-icon svg{width:21px;height:21px;fill:currentColor}
.school-metric-copy{display:grid;gap:3px;min-width:0}
.school-metric-label{font-size:.72rem;font-weight:800;color:var(--ns-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.school-metric-copy strong{font-size:1.18rem;line-height:1.15;color:var(--ns-text);letter-spacing:-.02em;overflow-wrap:anywhere}
.school-metric-copy small{font-size:.64rem;color:var(--ns-text-muted);line-height:1.3}
.school-metric-arrow{color:var(--ns-text-muted);font-size:1rem;transition:.16s ease}
.rtl .school-metric-arrow{transform:scaleX(-1)}
.school-metric-card:hover .school-metric-arrow{color:var(--metric-color,var(--ns-primary));transform:translateX(2px)}
.rtl .school-metric-card:hover .school-metric-arrow{transform:scaleX(-1) translateX(2px)}
.school-metric-card.tone-primary{--metric-color:#2563eb;--metric-soft:#eff6ff}
.school-metric-card.tone-success{--metric-color:#15803d;--metric-soft:#ecfdf3}
.school-metric-card.tone-warning{--metric-color:#b45309;--metric-soft:#fff7ed}
.school-metric-card.tone-danger{--metric-color:#be123c;--metric-soft:#fff1f2}
.school-metric-card.tone-neutral{--metric-color:#475569;--metric-soft:#f1f5f9}
body.dark .school-metric-card.tone-primary{--metric-soft:#12233f}
body.dark .school-metric-card.tone-success{--metric-soft:#102a21}
body.dark .school-metric-card.tone-warning{--metric-soft:#302318}
body.dark .school-metric-card.tone-danger{--metric-soft:#331822}
body.dark .school-metric-card.tone-neutral{--metric-soft:#172033}

/* Activity lists */
.school-dashboard-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.school-activity-card{padding:14px!important;border-radius:14px!important;min-width:0}
.school-activity-list{display:grid;gap:4px}
.school-activity-item{display:grid;grid-template-columns:26px 38px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 7px;border-bottom:1px solid var(--ns-border)}
.school-activity-item:last-child{border-bottom:0}
.school-rank{width:24px;height:24px;display:grid;place-items:center;border-radius:7px;background:var(--ns-surface-subtle);color:var(--ns-text-muted);font-size:.68rem;font-weight:800}
.school-activity-person{display:grid;gap:1px;min-width:0}
.school-activity-person strong{font-size:.82rem;color:var(--ns-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.school-activity-person small{font-size:.68rem;color:var(--ns-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.school-activity-value{text-align:end;display:grid;gap:1px;min-width:74px}
.school-activity-value strong{font-size:.92rem;color:var(--ns-text)}
.school-activity-value small{font-size:.65rem;color:var(--ns-text-muted)}
.school-empty-state{min-height:126px;display:grid;place-content:center;text-align:center;gap:5px;padding:20px;border:1px dashed var(--ns-border);border-radius:12px;background:var(--ns-surface-subtle)}
.school-empty-state strong{color:var(--ns-text);font-size:.9rem}.school-empty-state span{color:var(--ns-text-muted);font-size:.75rem;line-height:1.6;max-width:360px}
.school-data-note{display:flex;align-items:flex-start;gap:10px;margin:12px 0 0;padding:10px 12px;border:1px solid #bbf7d0;border-radius:13px;background:#f0fdf4;color:#166534}
.school-data-note>span{width:30px;height:30px;display:grid;place-items:center;flex:none;border-radius:8px;background:#dcfce7}
.school-data-note svg{width:17px;height:17px;fill:currentColor}
.school-data-note strong{display:block;font-size:.82rem}.school-data-note p{margin:3px 0 0;font-size:.73rem;line-height:1.55}
body.dark .school-data-note{background:#102a21;border-color:#205c3b;color:#bbf7d0}body.dark .school-data-note>span{background:#173a2b}

/* Sidebar grouping for school manager */
body.role-school_manager .side-nav{gap:4px}
body.role-school_manager .side-group-label{margin:14px 5px 5px!important;padding:0!important;background:transparent!important;border-radius:0!important;font-size:.68rem!important;letter-spacing:.06em!important;color:var(--ns-text-muted)!important}
body.role-school_manager .side-link{min-height:42px;padding:9px 11px;border-radius:10px;font-size:.82rem}
body.role-school_manager .side-icon{width:25px;height:25px;display:grid;place-items:center;border-radius:7px;background:var(--ns-surface-subtle);font-size:.72rem;font-weight:800;color:var(--ns-text-secondary)}
body.role-school_manager .side-link.active .side-icon{background:var(--ns-primary);color:#fff}

@media(max-width:1100px){
  .school-dashboard-hero{grid-template-columns:minmax(0,1.25fr) minmax(270px,.75fr)}
  .school-quick-grid,.school-metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .school-nav-tab{font-size:.76rem;padding-inline:6px}.school-nav-tab .school-nav-icon{display:none}
}
@media(max-width:820px){
  body.role-school_manager .page-shell{padding-top:18px}
  .school-dashboard-hero{grid-template-columns:1fr}.school-dashboard-heading{min-height:0;padding:20px}.school-code-panel{grid-template-columns:minmax(0,1fr) auto;padding:16px}
  .school-workspace-controls .school-term-bar{align-items:stretch;flex-direction:column}.school-workspace-controls .term-current{align-items:stretch;flex-direction:column;gap:6px}.school-workspace-controls .term-switch-form{min-width:0;max-width:none;width:100%}.school-workspace-controls .school-term-bar>.primary-btn{width:100%}
  .school-nav-tabs{grid-template-columns:repeat(5,minmax(105px,1fr));overflow-x:auto;justify-content:start}.school-nav-tab{white-space:nowrap}
  .school-nav-current{align-items:flex-start;flex-direction:column;gap:8px}.school-nav-current-label{border:0;padding:0}.school-nav-current .school-nav-links{width:100%;padding-bottom:2px}
  .school-dashboard-columns{grid-template-columns:1fr}
}
@media(max-width:620px){
  .school-dashboard-heading h1{font-size:1.75rem}.school-dashboard-heading p{font-size:.86rem}
  .school-code-panel>strong{font-size:1.25rem}
  .school-quick-actions{padding:14px}.school-quick-grid,.school-metrics-grid{grid-template-columns:1fr}
  .school-section-heading{align-items:flex-start;flex-direction:column;gap:7px}.school-section-heading.compact{align-items:flex-start}.school-section-heading h2{font-size:1.08rem}.school-section-heading a{white-space:normal}
  .school-metric-card{min-height:104px;grid-template-columns:40px minmax(0,1fr) 16px}.school-metric-icon{width:40px;height:40px}.school-metric-copy strong{font-size:1.25rem}
  .school-activity-item{grid-template-columns:24px 36px minmax(0,1fr)}.school-activity-value{grid-column:3;text-align:start;display:flex;align-items:baseline;gap:5px;min-width:0}.school-activity-person small{max-width:220px}
  .school-nav-tabs{grid-template-columns:repeat(5,minmax(96px,1fr))}.school-nav-tab{min-height:42px;font-size:.7rem}
}


/* =========================================================
   NanoStudent Design V2 — Phase 2.1
   Video-review density and school workspace polish
   ========================================================= */
body.role-school_manager .page-title,body.role-school_manager .section-title{font-size:clamp(1.45rem,2.2vw,1.9rem);line-height:1.25;margin:0 0 5px}
body.role-school_manager .page-subtitle{font-size:.84rem;line-height:1.6;margin:0 0 14px;max-width:850px}
body.role-school_manager .stats-grid{gap:9px}
body.role-school_manager .stat-card{padding:13px 14px;border-radius:13px!important;min-height:92px}
body.role-school_manager .stat-label{font-size:.72rem;margin-bottom:5px}
body.role-school_manager .stat-value{font-size:1.45rem}
body.role-school_manager .card{border-radius:14px!important}
body.role-school_manager .card h2{font-size:1.05rem;margin:0 0 7px}
body.role-school_manager .card h3{font-size:.94rem;margin:0 0 9px}

/* Overview */
.page-school-manager-overview-php .school-workspace-controls{margin-bottom:13px}
.school-overview-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:12px}
.school-overview-head .page-subtitle{margin-bottom:0}
.school-overview-stats{grid-template-columns:repeat(5,minmax(0,1fr))!important;margin:0 0 12px}
.school-overview-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}
.school-overview-card{display:grid!important;grid-template-columns:38px minmax(0,1fr);gap:9px;align-content:start;min-height:122px;padding:13px!important;border-radius:13px!important}
.school-overview-card .school-overview-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:var(--ns-primary-soft);color:var(--ns-primary)}
.school-overview-card .school-overview-icon svg{width:20px;height:20px;fill:currentColor}
.school-overview-card h3{margin:1px 0 4px!important;font-size:.86rem!important}
.school-overview-card p{grid-column:1/-1;margin:0;color:var(--ns-text-muted);font-size:.7rem;line-height:1.5}
.school-overview-alerts{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
.school-overview-alert{display:inline-flex;align-items:center;min-height:30px;padding:5px 9px;border-radius:9px;background:var(--ns-surface-subtle);border:1px solid var(--ns-border);font-size:.7rem;font-weight:800;color:var(--ns-text-secondary)}
.school-overview-alert.danger{background:#fff1f2;border-color:#fecdd3;color:#be123c}
body.dark .school-overview-alert.danger{background:#331822;border-color:#6b2538;color:#fecdd3}

/* Import center */
.page-school-manager-import-center-php .school-workspace-controls{margin-bottom:13px}
.school-import-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:11px}
.school-import-top{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(230px,.7fr);gap:10px;margin-bottom:10px}
.school-import-card{padding:15px!important}
.school-template-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.school-template-grid a{min-height:40px;padding:7px 9px;font-size:.72rem;border-radius:9px}
.school-template-csv{margin-top:8px;border-top:1px dashed var(--ns-border);padding-top:8px}
.school-template-csv summary{cursor:pointer;color:var(--ns-primary);font-size:.73rem;font-weight:800}
.school-template-csv .school-template-grid{margin-top:8px;grid-template-columns:repeat(3,minmax(0,1fr))}
.school-import-upload{padding:15px!important;margin:0 0 10px}
.school-import-upload .grid.two{gap:10px}
.school-import-upload .primary-btn{justify-self:start;min-width:210px}
.school-import-history{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 15px!important}
.school-import-history h2,.school-import-history p{margin:0}
.school-import-history p{font-size:.76rem}

/* Attendance */
.page-school-manager-attendance-php .school-workspace-controls{margin-bottom:13px}
.school-attendance-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}
.school-attendance-filter{padding:12px 14px!important;margin-bottom:10px}
.school-attendance-filter .toolbar{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) auto;gap:9px;align-items:end!important}
.school-attendance-filter .field{margin:0}
.school-attendance-filter .primary-btn{min-height:42px}
.school-attendance-summary{grid-template-columns:repeat(5,minmax(0,1fr))!important;margin-bottom:10px}
.school-attendance-table{padding:0!important;overflow:hidden!important}
.school-attendance-table .table-wrap{border:0;border-radius:0}
.school-attendance-table .table th,.school-attendance-table .table td{padding:10px 9px;font-size:.75rem}

/* Reports */
.page-school-manager-reports-php .school-workspace-controls{margin-bottom:13px}
.school-report-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:11px}
.school-report-head .page-subtitle{margin-bottom:0}
.school-report-stats{grid-template-columns:repeat(5,minmax(0,1fr))!important;margin-bottom:10px}
.school-report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:10px}
.school-report-card{padding:14px!important;min-height:170px}
.school-report-card .table-wrap{border:0;box-shadow:none}
.school-report-card .table th,.school-report-card .table td{padding:9px 8px;font-size:.74rem}
.school-report-card .empty{height:86px;padding:20px!important}

@media(max-width:1100px){
  .school-overview-stats,.school-report-stats,.school-attendance-summary{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .school-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .school-template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:820px){
  .school-overview-head,.school-import-head,.school-attendance-head,.school-report-head{align-items:flex-start;flex-direction:column}
  .school-import-top,.school-report-grid{grid-template-columns:1fr}
  .school-attendance-filter .toolbar{grid-template-columns:1fr 1fr}
  .school-attendance-filter .primary-btn{width:100%}
}
@media(max-width:620px){
  .school-overview-stats,.school-report-stats,.school-attendance-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .school-overview-grid{grid-template-columns:1fr}
  .school-overview-card{min-height:0}
  .school-template-grid,.school-template-csv .school-template-grid,.school-attendance-filter .toolbar{grid-template-columns:1fr}
  .school-import-history{align-items:flex-start;flex-direction:column}
  .school-import-history .ghost-btn{width:100%}
}

.page-school-manager-overview-php .ux-onboarding-card{margin-top:12px;padding:13px!important}
.page-school-manager-overview-php .ux-onboarding-card .section-head{align-items:center}
.page-school-manager-overview-php .ux-onboarding-card .muted{margin:2px 0 0;font-size:.72rem}
.page-school-manager-overview-php .ux-onboarding-card .ux-step-grid{gap:7px}
.page-school-manager-overview-php .ux-onboarding-card .ux-step{padding:9px 10px;border-radius:10px}
.page-school-manager-overview-php .ux-onboarding-card .ux-step span{font-size:17px;margin-bottom:4px}
.page-school-manager-overview-php .ux-onboarding-card .ux-step strong{font-size:.73rem}

/* =========================================================
   NanoStudent Design System V3 — Full project rollout
   Shared dashboards, all roles, forms, tables and responsive UX
   ========================================================= */
:root{
  --ns-success-soft:#ecfdf3;
  --ns-warning-soft:#fff7ed;
  --ns-danger-soft:#fff1f2;
  --ns-info-soft:#eff6ff;
}
body.dark{
  --ns-success-soft:#102a1d;
  --ns-warning-soft:#302115;
  --ns-danger-soft:#341a22;
  --ns-info-soft:#12233f;
}
.ns-icon{width:1.15em;height:1.15em;display:inline-block;fill:currentColor;flex:none;vertical-align:-.15em}
.ns-role-dashboard{display:grid;gap:16px;min-width:0}
.ns-dashboard-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:22px 24px;border:1px solid var(--ns-border);border-radius:18px;background:linear-gradient(135deg,var(--ns-surface),var(--ns-surface-brand));box-shadow:var(--ns-shadow-xs)}
.ns-dashboard-copy{min-width:0;max-width:790px}
.ns-dashboard-kicker,.ns-section-kicker{display:inline-flex;align-items:center;gap:7px;color:var(--ns-primary);font-size:.75rem;font-weight:800;letter-spacing:.045em;text-transform:uppercase}
.ns-dashboard-copy h1{font-size:clamp(1.65rem,2.7vw,2.3rem);line-height:1.2;margin:7px 0 7px;letter-spacing:-.035em}
.ns-dashboard-copy p{margin:0;color:var(--ns-text-secondary);font-size:.93rem;line-height:1.7}
.ns-dashboard-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;flex:none}
.ns-dashboard-actions .primary-btn,.ns-dashboard-actions .secondary-btn,.ns-dashboard-actions .ghost-btn{min-height:44px;padding:9px 14px;font-size:.84rem;white-space:nowrap}

.ns-metric-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(205px,1fr))!important;gap:11px!important;margin:0!important}
.ns-metric-card{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) 17px;align-items:center;gap:11px;min-height:108px;padding:15px;border:1px solid var(--ns-border);border-radius:15px;background:var(--ns-surface);box-shadow:var(--ns-shadow-xs);color:var(--ns-text);overflow:hidden;transition:border-color .16s ease,box-shadow .16s ease}
.ns-metric-card:hover{border-color:color-mix(in srgb,var(--ns-primary) 34%,var(--ns-border));box-shadow:var(--ns-shadow-sm)}
.ns-metric-card:not([href]){grid-template-columns:42px minmax(0,1fr)}
.ns-metric-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--ns-surface-subtle);color:var(--ns-text-secondary)}
.ns-metric-icon .ns-icon{width:21px;height:21px}
.ns-metric-body{min-width:0;display:grid;gap:2px}
.ns-metric-label{font-size:.73rem;line-height:1.35;font-weight:800;color:var(--ns-text-muted)}
.ns-metric-body strong{font-size:clamp(1.3rem,2.3vw,1.75rem);line-height:1.15;overflow-wrap:anywhere}
.ns-metric-body small{font-size:.7rem;line-height:1.4;color:var(--ns-text-muted)}
.ns-metric-arrow{color:var(--ns-text-muted);display:grid;place-items:center}
.rtl .ns-metric-arrow,.rtl .ns-quick-arrow,.rtl .ns-inline-arrow{transform:scaleX(-1)}
.ns-metric-card.tone-primary .ns-metric-icon{background:var(--ns-primary-soft);color:var(--ns-primary-active)}
.ns-metric-card.tone-success .ns-metric-icon{background:var(--ns-success-soft);color:var(--ns-success)}
.ns-metric-card.tone-warning .ns-metric-icon{background:var(--ns-warning-soft);color:var(--ns-warning)}
.ns-metric-card.tone-danger .ns-metric-icon{background:var(--ns-danger-soft);color:var(--ns-danger)}
.ns-metric-card.tone-danger{border-color:color-mix(in srgb,var(--ns-danger) 18%,var(--ns-border))}

.ns-quick-section{display:grid;gap:10px}
.ns-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0}
.ns-section-head>div{min-width:0}
.ns-section-head h2,.ns-section-head h3{margin:3px 0 0;font-size:1.05rem;line-height:1.35}
.ns-section-head p{margin:3px 0 0;color:var(--ns-text-muted);font-size:.78rem}
.ns-section-head>a{color:var(--ns-primary);font-size:.78rem;font-weight:800;white-space:nowrap}
.ns-quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px}
.ns-quick-card{display:grid;grid-template-columns:40px minmax(0,1fr) 16px;align-items:center;gap:10px;min-height:78px;padding:12px 13px;border:1px solid var(--ns-border);border-radius:13px;background:var(--ns-surface);box-shadow:var(--ns-shadow-xs)}
.ns-quick-card:hover{border-color:color-mix(in srgb,var(--ns-primary) 30%,var(--ns-border));background:color-mix(in srgb,var(--ns-primary-soft) 38%,var(--ns-surface))}
.ns-quick-icon,.ns-list-icon,.ns-alert-icon{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--ns-primary-soft);color:var(--ns-primary-active)}
.ns-quick-copy,.ns-list-copy,.ns-person-copy{min-width:0;display:grid;gap:2px}
.ns-quick-copy strong{font-size:.82rem;line-height:1.4}
.ns-quick-copy small{font-size:.69rem;line-height:1.45;color:var(--ns-text-muted)}
.ns-quick-arrow,.ns-inline-arrow{color:var(--ns-text-muted);display:grid;place-items:center}

.ns-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}
.ns-dashboard-grid-main{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
.ns-dashboard-panel{padding:17px!important;border-radius:15px!important;display:grid;gap:12px;align-content:start;min-width:0}
.ns-wide-panel{width:100%}
.ns-list{display:grid;gap:7px;min-width:0}
.ns-list.compact{gap:6px}
.ns-list-item{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:62px;padding:9px 10px;border:1px solid var(--ns-border);border-radius:12px;background:var(--ns-surface-subtle);min-width:0}
a.ns-list-item:hover{border-color:color-mix(in srgb,var(--ns-primary) 30%,var(--ns-border));background:var(--ns-primary-soft)}
.ns-list-icon{background:var(--ns-surface);color:var(--ns-text-secondary);border:1px solid var(--ns-border)}
.ns-list-icon.tone-success{background:var(--ns-success-soft);color:var(--ns-success);border-color:color-mix(in srgb,var(--ns-success) 22%,var(--ns-border))}
.ns-list-icon.tone-warning{background:var(--ns-warning-soft);color:var(--ns-warning);border-color:color-mix(in srgb,var(--ns-warning) 22%,var(--ns-border))}
.ns-list-icon.tone-danger{background:var(--ns-danger-soft);color:var(--ns-danger);border-color:color-mix(in srgb,var(--ns-danger) 22%,var(--ns-border))}
.ns-list-copy strong{font-size:.82rem;line-height:1.4;overflow-wrap:anywhere}
.ns-list-copy small{font-size:.69rem;line-height:1.45;color:var(--ns-text-muted);overflow-wrap:anywhere}
.ns-list-side{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.ns-list-side .primary-btn,.ns-list-side .secondary-btn,.ns-list-side .ghost-btn{min-height:36px;padding:7px 10px;border-radius:9px;font-size:.72rem}
.ns-score-value,.ns-money-value,.ns-person-value{font-size:.92rem;font-weight:850;white-space:nowrap}
.tone-success{color:var(--ns-success)}
.tone-warning{color:var(--ns-warning)}
.tone-danger{color:var(--ns-danger)}
.ns-money-value{color:var(--ns-text);font-size:.85rem}
.ns-message-list{display:grid;gap:7px;max-height:390px;overflow:auto;padding-inline-end:2px}
.ns-message-item{display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px;padding:10px;border:1px solid var(--ns-border);border-radius:12px;background:var(--ns-surface-subtle)}
.ns-message-meta{color:var(--ns-text-muted);font-size:.66rem;line-height:1.5;margin-bottom:3px}
.ns-message-item strong{font-size:.8rem}
.ns-message-item p{font-size:.76rem;line-height:1.65;margin:3px 0 0;color:var(--ns-text-secondary)}

.ns-empty-state{display:flex;min-height:150px;align-items:center;justify-content:center;text-align:center;flex-direction:column;gap:7px;padding:20px;color:var(--ns-text-muted);border:1px dashed var(--ns-border-strong);border-radius:13px;background:var(--ns-surface-subtle)}
.ns-empty-state>.ns-icon{width:30px;height:30px;color:var(--ns-primary)}
.ns-empty-state strong{color:var(--ns-text);font-size:.88rem}
.ns-empty-state span{max-width:500px;font-size:.75rem;line-height:1.6}
.ns-empty-state.small{min-height:90px;padding:13px}
.ns-empty-state-large{min-height:260px;margin:0}
.ns-empty-state .primary-btn,.ns-empty-state .ghost-btn{margin-top:3px;min-height:40px;padding:8px 13px;font-size:.78rem}

.ns-people-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:8px}
.ns-person-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border:1px solid var(--ns-border);border-radius:12px;background:var(--ns-surface-subtle)}
.ns-person-card:hover{background:var(--ns-primary-soft);border-color:color-mix(in srgb,var(--ns-primary) 25%,var(--ns-border))}
.ns-person-card .user-avatar{width:42px;height:42px;border-radius:11px}
.ns-person-copy strong{font-size:.82rem}.ns-person-copy small{font-size:.68rem;color:var(--ns-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ns-person-value{display:grid;text-align:end}.ns-person-value strong{font-size:.9rem}.ns-person-value small{font-size:.65rem;color:var(--ns-text-muted)}

.ns-alert-strip{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px 14px;border:1px solid var(--ns-border);border-radius:13px;background:var(--ns-info-soft)}
.ns-alert-strip>.ns-icon{width:24px;height:24px;color:var(--ns-primary)}
.ns-alert-strip>div{display:grid;gap:2px}.ns-alert-strip strong{font-size:.82rem}.ns-alert-strip span{font-size:.72rem;color:var(--ns-text-secondary)}
.ns-alert-strip>a{font-size:.76rem;font-weight:800;color:var(--ns-primary);white-space:nowrap}
.ns-alert-strip.tone-warning{background:var(--ns-warning-soft);border-color:color-mix(in srgb,var(--ns-warning) 22%,var(--ns-border))}.ns-alert-strip.tone-warning>.ns-icon{color:var(--ns-warning)}
.ns-alert-strip.tone-danger{background:var(--ns-danger-soft);border-color:color-mix(in srgb,var(--ns-danger) 22%,var(--ns-border))}.ns-alert-strip.tone-danger>.ns-icon{color:var(--ns-danger)}
.ns-alert-strip.tone-success{background:var(--ns-success-soft);border-color:color-mix(in srgb,var(--ns-success) 22%,var(--ns-border))}.ns-alert-strip.tone-success>.ns-icon{color:var(--ns-success)}

.ns-child-workspace{display:grid;gap:11px;padding:14px;border:1px solid var(--ns-border);border-radius:17px;background:color-mix(in srgb,var(--ns-surface) 88%,var(--ns-primary-soft));box-shadow:var(--ns-shadow-xs)}
.ns-child-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:2px 3px}
.ns-child-person{display:flex;align-items:center;gap:11px;min-width:0}.ns-child-person .user-avatar{width:54px;height:54px;border-radius:14px}.ns-child-person h2{font-size:1.15rem;margin:2px 0}.ns-child-person p{margin:0;color:var(--ns-text-muted);font-size:.74rem;overflow-wrap:anywhere}
.ns-child-metrics{grid-template-columns:repeat(4,minmax(0,1fr))!important}

.ns-profile-share-panel p{font-size:.8rem;color:var(--ns-text-secondary);margin:0}
.ns-copy-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.ns-copy-row code{padding:11px 12px;border:1px solid var(--ns-border);border-radius:10px;background:var(--ns-surface-subtle);overflow:auto;font-size:.72rem;color:var(--ns-text-secondary)}.ns-copy-row .ghost-btn{min-height:42px}

.ns-alerts-panel{gap:10px}.ns-alert-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px}.ns-alert-row{display:grid;grid-template-columns:40px minmax(0,1fr) 16px;align-items:center;gap:10px;padding:10px;border:1px solid var(--ns-border);border-radius:12px;background:var(--ns-surface-subtle)}.ns-alert-row.tone-warning{background:var(--ns-warning-soft)}.ns-alert-row.tone-danger{background:var(--ns-danger-soft)}.ns-alert-row.tone-info{background:var(--ns-info-soft)}.ns-alert-row strong{font-size:.78rem}.ns-alert-row small{display:block;font-size:.68rem;color:var(--ns-text-muted);margin-top:2px}
.ns-bar-chart{display:grid;gap:9px}.ns-bar-row{display:grid;grid-template-columns:88px minmax(80px,1fr) auto;align-items:center;gap:9px;font-size:.7rem}.ns-bar-row>div{height:9px;border-radius:999px;background:var(--ns-border);overflow:hidden}.ns-bar-row i{display:block;height:100%;border-radius:999px;background:var(--ns-primary)}.ns-bar-chart.tone-ai .ns-bar-row i{background:#7c3aed}.ns-bar-row strong{font-size:.7rem;white-space:nowrap}

/* All authenticated project pages */
body:not(.guest) .page-shell{padding-top:22px;padding-bottom:44px}
body:not(.guest) .page-shell>.page-title,body:not(.guest) .page-shell>.section-title{font-size:clamp(1.5rem,2.5vw,2rem);margin:0 0 5px}
body:not(.guest) .page-shell>.page-subtitle{font-size:.9rem;line-height:1.65;margin:0 0 14px;max-width:900px}
body:not(.guest) .page-shell>.toolbar{margin-bottom:14px}
body:not(.guest) .page-shell>.stats-grid{margin-bottom:14px!important}
body:not(.guest) .card h2{font-size:1.08rem;line-height:1.35}body:not(.guest) .card h3{font-size:.94rem;line-height:1.4}
body:not(.guest) .card p.muted{font-size:.82rem;line-height:1.7}
body:not(.guest) .stack{gap:13px}
body:not(.guest) .grid{gap:12px}
body:not(.guest) .toolbar{gap:8px}
body:not(.guest) .table th,body:not(.guest) .table td{padding:11px 12px;font-size:.78rem}
body:not(.guest) .table th{font-size:.69rem}
body:not(.guest) .table .primary-btn,body:not(.guest) .table .secondary-btn,body:not(.guest) .table .ghost-btn,body:not(.guest) .table .danger-btn{min-height:36px;padding:7px 10px;border-radius:9px;font-size:.7rem}
body:not(.guest) .field label{font-size:.83rem}body:not(.guest) .field input,body:not(.guest) .field select,body:not(.guest) .field textarea{font-size:.86rem}
body:not(.guest) .notice{font-size:.8rem;line-height:1.65}
body:not(.guest) .msg{border-radius:12px;padding:11px 12px;font-size:.78rem}
body:not(.guest) .tag{padding:5px 9px;border-radius:999px;font-size:.68rem}

/* Drawer consistency for every account */
body:not(.guest) .side-drawer{width:340px;padding:14px}
body:not(.guest) .side-nav{gap:3px}
body:not(.guest) .side-link{min-height:42px;padding:8px 10px;border-radius:9px;font-size:.8rem}
body:not(.guest) .side-icon{width:26px;height:26px;display:grid;place-items:center;border-radius:8px;background:var(--ns-surface-subtle);border:1px solid var(--ns-border);font-family:Inter,Arial,sans-serif;font-size:.69rem;font-weight:850;color:var(--ns-text-secondary);line-height:1}
body:not(.guest) .side-link.active .side-icon{background:var(--ns-primary);border-color:var(--ns-primary);color:#fff}
body:not(.guest) .side-group-label{padding-top:6px;border-top:1px solid var(--ns-border)}
body:not(.guest) .side-logout-link{margin-top:8px;color:var(--ns-danger)}

/* Focus, touch, and accessibility */
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--ns-focus)!important;outline-offset:2px!important}
.primary-btn .ns-icon,.secondary-btn .ns-icon,.ghost-btn .ns-icon{width:17px;height:17px}

@media(max-width:1100px){
  .ns-dashboard-head{align-items:flex-start;flex-direction:column}.ns-dashboard-actions{justify-content:flex-start}
  .ns-dashboard-grid-main{grid-template-columns:1fr 1fr}
  .ns-child-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:820px){
  .ns-dashboard-grid,.ns-dashboard-grid-main{grid-template-columns:1fr}
  .ns-dashboard-head{padding:19px}
  .ns-dashboard-actions{width:100%}.ns-dashboard-actions>a{flex:1 1 170px}
  .ns-child-head{align-items:flex-start;flex-direction:column}.ns-child-head .ns-dashboard-actions{width:100%}
  .ns-alert-list{grid-template-columns:1fr}
}
@media(max-width:620px){
  body:not(.guest) .page-shell{padding-top:16px;padding-bottom:34px}
  .ns-role-dashboard{gap:12px}
  .ns-dashboard-head{padding:16px;border-radius:14px;gap:14px}
  .ns-dashboard-copy h1{font-size:1.55rem}.ns-dashboard-copy p{font-size:.82rem}
  .ns-dashboard-actions{display:grid;grid-template-columns:1fr;width:100%}.ns-dashboard-actions>a{width:100%}
  .ns-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .ns-metric-card{grid-template-columns:36px minmax(0,1fr);min-height:96px;padding:11px;gap:8px}.ns-metric-card[href] .ns-metric-arrow{display:none}.ns-metric-icon{width:36px;height:36px;border-radius:10px}.ns-metric-icon .ns-icon{width:18px;height:18px}.ns-metric-body strong{font-size:1.18rem}.ns-metric-label{font-size:.66rem}.ns-metric-body small{font-size:.62rem}
  .ns-quick-grid{grid-template-columns:1fr}.ns-quick-card{min-height:72px}
  .ns-dashboard-panel{padding:13px!important}.ns-section-head{align-items:flex-start}.ns-section-head h2,.ns-section-head h3{font-size:.96rem}.ns-section-head>a{font-size:.7rem}
  .ns-list-item{grid-template-columns:36px minmax(0,1fr);padding:9px;min-height:58px}.ns-list-icon{width:36px;height:36px}.ns-list-side,.ns-score-value,.ns-money-value,.ns-inline-arrow,.ns-list-item>.tag,.ns-list-item>.credit-amount{grid-column:2;justify-self:start}.ns-list-side{justify-content:flex-start}.ns-score-value,.ns-money-value{font-size:.8rem}
  .ns-message-item{grid-template-columns:34px minmax(0,1fr)}.ns-message-item .ns-list-icon{width:34px;height:34px}
  .ns-people-grid{grid-template-columns:1fr}.ns-person-card{grid-template-columns:40px minmax(0,1fr)}.ns-person-value{grid-column:2;text-align:start;display:flex;align-items:baseline;gap:6px}
  .ns-alert-strip{grid-template-columns:32px minmax(0,1fr)}.ns-alert-strip>a{grid-column:2;justify-self:start}.ns-alert-strip>.ns-icon{width:21px;height:21px}
  .ns-child-workspace{padding:10px;border-radius:14px}.ns-child-person .user-avatar{width:48px;height:48px}.ns-child-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .ns-copy-row{grid-template-columns:1fr}.ns-copy-row .ghost-btn{width:100%}
  .ns-bar-row{grid-template-columns:72px minmax(70px,1fr);gap:7px}.ns-bar-row strong{grid-column:2;justify-self:end}
  body:not(.guest) .table-wrap{margin-inline:-1px}.table{min-width:620px}
  body:not(.guest) .toolbar>.primary-btn,body:not(.guest) .toolbar>.secondary-btn,body:not(.guest) .toolbar>.ghost-btn{flex:1 1 145px}
}
@media(max-width:390px){
  .ns-metric-grid,.ns-child-metrics{grid-template-columns:1fr!important}
}

/* Accountant workspace navigation */
.accountant-workspace-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:7px;margin:0 0 14px;border:1px solid var(--ns-border);border-radius:14px;background:var(--ns-surface);box-shadow:var(--ns-shadow-xs)}
.accountant-workspace-link{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:9px 11px;border-radius:10px;color:var(--ns-text-secondary);font-size:.77rem;font-weight:800;text-align:center;transition:background .18s ease,color .18s ease,transform .18s ease}
.accountant-workspace-link:hover{background:var(--ns-surface-subtle);color:var(--ns-text);transform:translateY(-1px)}
.accountant-workspace-link.active{background:var(--ns-primary);color:#fff;box-shadow:0 8px 18px color-mix(in srgb,var(--ns-primary) 23%,transparent)}
.accountant-workspace-link .ns-icon{width:17px;height:17px;flex:0 0 auto}
@media(max-width:720px){.accountant-workspace-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.accountant-workspace-link{justify-content:flex-start;text-align:start}}
@media(max-width:390px){.accountant-workspace-nav{grid-template-columns:1fr}}

/* V3 dark-mode component lock: prevents legacy light surfaces overriding role dashboards */
body.dark .ns-dashboard-head,
body.dark .ns-metric-card,
body.dark .ns-quick-card,
body.dark .ns-dashboard-panel,
body.dark .ns-child-workspace,
body.dark .ns-profile-share-panel{background-color:var(--ns-surface)!important;color:var(--ns-text)!important;border-color:var(--ns-border)!important}
body.dark .ns-dashboard-head{background-image:linear-gradient(135deg,var(--ns-surface),var(--ns-surface-brand))!important}
body.dark .ns-dashboard-panel{background-image:linear-gradient(180deg,var(--ns-surface),#101d33)!important}
body.dark .ns-list-item,
body.dark .ns-message-item,
body.dark .ns-person-card,
body.dark .ns-copy-row code,
body.dark .ns-alert-row{background:var(--ns-surface-subtle)!important;color:var(--ns-text)!important;border-color:var(--ns-border)!important}
body.dark a.ns-list-item:hover,
body.dark .ns-quick-card:hover,
body.dark .ns-person-card:hover{background:var(--ns-primary-soft)!important;color:var(--ns-text)!important;border-color:var(--ns-border-strong)!important}
body.dark .ns-list-copy strong,
body.dark .ns-quick-copy strong,
body.dark .ns-person-copy strong,
body.dark .ns-section-head h2,
body.dark .ns-section-head h3{color:var(--ns-text)!important}
body.dark .ns-list-copy small,
body.dark .ns-quick-copy small,
body.dark .ns-person-copy small,
body.dark .ns-section-head p{color:var(--ns-text-muted)!important}

/* Unified SVG navigation icons */
body:not(.guest) .side-icon .ns-icon{width:15px;height:15px;display:block}
body:not(.guest) .side-link.active .side-icon .ns-icon{color:#fff}


/* =========================================================
   NanoStudent V3.1 — Student experience review from live video
   Compact authenticated pages, professional empty states, rewards contrast
   ========================================================= */
.authenticated-footer{padding:14px 0;background:color-mix(in srgb,var(--ns-surface) 94%,var(--ns-bg));border-top:1px solid var(--ns-border)}
.authenticated-footer-inner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;min-height:42px}
.authenticated-footer-brand{display:flex;align-items:center;gap:9px}.authenticated-footer-brand .brand-mark{width:30px;height:30px;border-radius:9px;font-size:.8rem}.authenticated-footer-brand strong{font-size:.84rem}
.authenticated-footer-links{display:flex;align-items:center;justify-content:center;gap:16px}.authenticated-footer-links a,.authenticated-footer-copy{font-size:.72rem;color:var(--ns-text-muted)}.authenticated-footer-links a:hover{color:var(--ns-primary)}

.role-student .page-shell{padding-top:18px;padding-bottom:30px}
.student-role-dashboard{gap:12px}.student-role-dashboard .ns-dashboard-head{padding:18px 20px;align-items:center}.student-role-dashboard .ns-dashboard-copy h1{font-size:clamp(1.5rem,2.35vw,2rem)}.student-role-dashboard .ns-dashboard-actions .primary-btn,.student-role-dashboard .ns-dashboard-actions .secondary-btn,.student-role-dashboard .ns-dashboard-actions .ghost-btn{min-height:40px;padding:8px 12px}
.student-role-dashboard .ns-metric-grid{gap:9px!important}.student-role-dashboard .ns-metric-card{min-height:92px;padding:12px}.student-role-dashboard .ns-metric-icon{width:38px;height:38px}.student-role-dashboard .ns-metric-body strong{font-size:1.35rem}.student-role-dashboard .ns-quick-card{min-height:70px;padding:10px 12px}.student-role-dashboard .ns-dashboard-panel{padding:14px!important}.student-role-dashboard .ns-empty-state{min-height:115px;padding:15px}

.ns-student-subpage{gap:13px}.ns-student-subpage .ns-dashboard-head{padding:18px 20px;align-items:center}.ns-student-subpage .ns-dashboard-copy h1{font-size:clamp(1.5rem,2.35vw,2rem)}

.ns-account-join{gap:12px}.ns-account-join .ns-dashboard-head,.ns-onboarding-page .ns-dashboard-head,.ns-credit-page .ns-dashboard-head{padding:19px 21px;align-items:center}
.ns-join-panel{padding:15px!important}.ns-join-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px}.ns-join-code-field{margin:0}.ns-join-form .primary-btn{min-height:46px;min-width:150px}
.ns-code-type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.ns-code-type-card{display:grid;grid-template-columns:42px minmax(0,1fr);gap:11px;align-items:start;padding:15px!important}.ns-code-type-card>span{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:var(--ns-primary-soft);color:var(--ns-primary)}.ns-code-type-card h3{margin:1px 0 4px;font-size:.9rem}.ns-code-type-card p{margin:0;font-size:.76rem;line-height:1.65;color:var(--ns-text-muted)}
.ns-code-result{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:15px!important}.ns-code-result-icon{width:42px;height:42px;border-radius:11px;display:grid;place-items:center}.ns-code-result.is-valid .ns-code-result-icon{background:var(--ns-success-soft);color:var(--ns-success)}.ns-code-result.is-invalid .ns-code-result-icon{background:var(--ns-danger-soft);color:var(--ns-danger)}.ns-code-result h3{margin:0 0 3px}.ns-code-result p{margin:0;color:var(--ns-text-secondary);font-size:.8rem}.ns-code-result-actions{margin:0}

.ns-onboarding-welcome{display:flex;align-items:center;gap:11px;padding:12px 14px;border:1px solid var(--ns-border);border-radius:13px;background:var(--ns-surface)}.ns-onboarding-avatar{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,var(--ns-primary),#60a5fa);color:#fff;font-weight:800}.ns-onboarding-welcome div{display:grid;gap:2px}.ns-onboarding-welcome strong{font-size:.88rem}.ns-onboarding-welcome small{font-size:.72rem;color:var(--ns-text-muted)}
.ns-onboarding-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ns-onboarding-step{display:grid;grid-template-columns:28px 42px minmax(0,1fr) 17px;align-items:center;gap:10px;min-height:86px;padding:13px!important}.ns-onboarding-number{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:var(--ns-primary);color:#fff;font-size:.72rem;font-weight:800}.ns-onboarding-icon{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:var(--ns-primary-soft);color:var(--ns-primary)}.ns-onboarding-copy{display:grid;gap:3px}.ns-onboarding-copy strong{font-size:.84rem}.ns-onboarding-copy small{font-size:.69rem;line-height:1.5;color:var(--ns-text-muted)}

.ns-homework-grid{align-items:start}.student-homework-card{padding:16px!important}.student-homework-card>.toolbar{margin-bottom:8px}.student-homework-card form{padding-top:10px;border-top:1px dashed var(--ns-border)}.student-homework-card textarea{min-height:105px}.student-homework-card .compact-upload{min-height:120px;padding:18px}.student-homework-card .upload-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--ns-primary-soft);color:var(--ns-primary)}.student-homework-card .upload-icon .ns-icon{width:20px;height:20px}.ns-homework-empty{grid-column:1/-1;padding:0!important;overflow:hidden}

.ns-parent-request-grid{align-items:start}.ns-parent-request-grid>.card{padding:16px!important}.ns-parent-request-grid .parent-test-card{padding:11px;border-radius:12px}.ns-parent-request-grid .ns-empty-state{min-height:145px}

.compact-cert-hero{padding:18px 20px!important;min-height:0!important;margin:0!important;grid-template-columns:minmax(0,1fr) auto!important}.compact-cert-hero h2{font-size:clamp(1.35rem,2.2vw,1.8rem)!important;margin:6px 0!important}.compact-cert-hero p{margin:0!important}.compact-cert-hero .cert-hero-stat{min-width:110px;padding:14px!important}.cert-student-grid{align-items:start}.cert-student-card{padding:16px!important}

.ns-rewards-page{gap:12px}.ns-rewards-page .student-reward-hero{margin:0;padding:18px;border-radius:18px;gap:12px;display:grid;grid-template-columns:minmax(0,1fr) 150px}.ns-rewards-page .hero-night{padding:17px;border-radius:15px;min-width:0}.ns-rewards-page .hero-user h2{color:#fff!important;font-size:1.4rem;margin:0 0 4px}.ns-rewards-page .hero-user p{color:#cbd5e1!important}.ns-rewards-page .student-avatar-big{width:54px;height:54px;border-radius:15px;font-size:1.25rem}.ns-rewards-page .reward-progress{margin:13px 0 10px;gap:8px}.ns-rewards-page .reward-progress div{padding:9px;border-radius:11px}.ns-rewards-page .reward-progress strong{font-size:1.35rem;color:#fff}.ns-rewards-page .reward-progress span{font-size:.7rem}.ns-rewards-page .rank-card{min-width:0;padding:14px;border-radius:15px;background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.16);box-shadow:none}.ns-rewards-page .rank-number{font-size:2.15rem;color:#bfdbfe}.ns-rewards-page .rank-card p{color:#cbd5e1;margin:4px 0 0;font-size:.72rem}.ns-rewards-page .grid.two{gap:10px}.ns-rewards-page .reward-podium-card{padding:15px;border-radius:15px}.ns-rewards-page .reward-podium{min-height:165px}.ns-rewards-page .podium-place{border-radius:14px}.ns-rewards-page .podium-avatar{width:46px;height:46px;font-size:1rem}.ns-rewards-page .earned-badges{gap:9px}.ns-rewards-page .earned-badge{border-radius:13px;padding:12px}.ns-rewards-page .reward-feed-item{border-radius:12px;padding:10px}

.ns-credit-page{gap:12px}.ns-credit-page .credit-help-card{padding:16px!important}.ns-credit-page .credit-help-grid{gap:8px}.ns-credit-page .credit-help-grid>div{position:relative;padding:13px 13px 13px 58px;border-radius:12px;min-height:92px}.rtl .ns-credit-page .credit-help-grid>div{padding:13px 58px 13px 13px}.ns-help-icon{position:absolute;inset-inline-start:13px;top:13px;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--ns-primary-soft);color:var(--ns-primary)}.ns-credit-page>.grid.two{align-items:start}.ns-credit-page>.grid.two>.card{padding:16px!important}.ns-credit-page .student-list-card{padding:11px;border-radius:12px}.ns-credit-page .cost-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ns-credit-page .cost-list .student-list-card{min-height:58px}

.ns-tawjihi-page{gap:12px}.ns-tawjihi-page .page-toolbar-clean{margin:0}.ns-tawjihi-page .tawjihi-subject-card{padding:16px!important}.ns-tawjihi-page .tawjihi-unit-card{padding:14px!important}.ns-tawjihi-page .empty-state-smart,.ns-tawjihi-page .ns-empty-state{min-height:130px}

body.dark .ns-rewards-page .student-reward-hero{background:#080d24 url('/assets/img/reward-stars.svg')}.ns-rewards-page .hero-night h2,.ns-rewards-page .hero-night strong{color:#fff!important}

@media(max-width:820px){
  .authenticated-footer-inner{grid-template-columns:1fr auto}.authenticated-footer-links{display:none}
  .ns-code-type-grid{grid-template-columns:1fr}.ns-onboarding-grid{grid-template-columns:1fr}
  .ns-code-result{grid-template-columns:42px minmax(0,1fr)}.ns-code-result>:last-child{grid-column:2;justify-self:start}
  .ns-rewards-page .student-reward-hero{grid-template-columns:1fr}.ns-rewards-page .rank-card{grid-template-columns:auto 1fr;display:grid;gap:10px;text-align:start;justify-content:start}
  .ns-credit-page .cost-list{grid-template-columns:1fr}
}
@media(max-width:620px){
  .authenticated-footer-inner{grid-template-columns:1fr;text-align:center;justify-items:center;gap:7px}.authenticated-footer-copy{font-size:.68rem}
  .student-role-dashboard .ns-dashboard-head,.ns-student-subpage .ns-dashboard-head,.ns-account-join .ns-dashboard-head,.ns-onboarding-page .ns-dashboard-head,.ns-credit-page .ns-dashboard-head{padding:15px}
  .student-role-dashboard .ns-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.student-role-dashboard .ns-metric-card{min-height:86px;padding:10px}
  .ns-join-form{grid-template-columns:1fr}.ns-join-form .primary-btn{width:100%}.ns-code-result{grid-template-columns:36px minmax(0,1fr);padding:13px!important}.ns-code-result-icon{width:36px;height:36px}.ns-code-result-actions{display:grid;width:100%}.ns-code-result-actions>*{width:100%;justify-content:center}
  .ns-onboarding-step{grid-template-columns:26px 38px minmax(0,1fr);padding:11px!important}.ns-onboarding-step .ns-inline-arrow{display:none}.ns-onboarding-icon{width:38px;height:38px}
  .compact-cert-hero{grid-template-columns:1fr!important}.compact-cert-hero .cert-hero-stat{justify-self:start;min-width:92px}
  .ns-rewards-page .student-reward-hero{padding:13px}.ns-rewards-page .hero-user{align-items:flex-start}.ns-rewards-page .reward-progress{grid-template-columns:repeat(3,minmax(0,1fr))}.ns-rewards-page .reward-progress div{padding:8px 6px}.ns-rewards-page .reward-progress strong{font-size:1.08rem}.ns-rewards-page .reward-progress span{font-size:.61rem}.ns-rewards-page .grid.two{grid-template-columns:1fr!important}
  .ns-credit-page .credit-help-grid{grid-template-columns:1fr!important}
}
@media(max-width:390px){.student-role-dashboard .ns-metric-grid{grid-template-columns:1fr!important}.ns-rewards-page .reward-progress{grid-template-columns:1fr}}


/* === NanoStudent Design V3.1 — Self practice and subscription refinements === */
.ns-self-practice-page{gap:12px}
.ns-self-practice-page .credit-confirm-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:10px;border:1px solid var(--ns-border);border-radius:14px;background:var(--ns-surface)}
.ns-self-practice-page .credit-confirm-panel>div{display:grid;gap:3px;padding:10px 12px;border-radius:11px;background:var(--ns-surface-soft)}
.ns-self-practice-page .credit-confirm-panel span{font-size:.7rem;color:var(--ns-text-muted)}
.ns-self-practice-page .credit-confirm-panel strong{font-size:.92rem;color:var(--ns-text)}
.ns-self-practice-page .smart-practice-form{width:100%;max-width:none;padding:17px!important;gap:13px}
.ns-self-practice-page .smart-practice-form textarea{min-height:118px}
.ns-self-practice-page .upload-dropzone{min-height:150px;padding:20px;border-radius:14px}
.ns-self-practice-page .upload-dropzone .upload-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--ns-primary-soft);color:var(--ns-primary)}
.ns-self-practice-page .upload-dropzone .upload-icon .ns-icon{width:22px;height:22px}
.ns-practice-notice{display:flex;align-items:flex-start;gap:9px;margin:0}
.ns-practice-notice .ns-icon{width:18px;height:18px;flex:none;margin-top:1px}
.ns-self-practice-page .smart-practice-form>.toolbar{margin:0;padding-top:2px}
.tag .ns-icon,.ghost-btn .ns-icon,.secondary-btn .ns-icon{width:16px;height:16px}
.tag:has(.ns-icon){display:inline-flex;align-items:center;gap:5px}

@media(max-width:720px){
  .ns-self-practice-page .credit-confirm-panel{grid-template-columns:1fr}
  .ns-self-practice-page .credit-confirm-panel>div{grid-template-columns:minmax(0,1fr) auto;align-items:center}
  .ns-self-practice-page .smart-practice-form{padding:14px!important}
  .ns-self-practice-page .upload-dropzone{min-height:130px;padding:16px}
}

/* === NanoStudent Final — communication, planning, privacy and intervention workspace === */
.communication-page,.calendar-page,.schedule-page,.goals-page,.privacy-center-page,.parent-digest-settings-page{display:grid;gap:16px}
.two-column-layout,.operations-layout{display:grid;grid-template-columns:minmax(280px,.82fr) minmax(0,1.55fr);gap:16px;align-items:start}
.communication-page .card,.calendar-page .card,.schedule-page .card,.goals-page .card,.privacy-center-page .card,.school-manager-page .card,.teacher-role-dashboard .card{border-radius:var(--ns-radius-lg);box-shadow:var(--ns-shadow-xs)}
.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.section-head h2,.section-head h3{margin:0}.grow{min-width:0;flex:1}
.form-grid{display:grid;gap:12px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.compact-form>label{min-width:190px;flex:1}
.check-row{display:flex!important;align-items:flex-start!important;gap:10px!important;min-height:44px;padding:10px 12px;border:1px solid var(--ns-border);border-radius:var(--ns-radius-md);background:var(--ns-surface-subtle);cursor:pointer}.check-row input{width:18px!important;height:18px!important;min-height:18px!important;margin-top:2px;flex:none}
.list-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--ns-border)}.list-row:last-child{border-bottom:0}.list-row>div{min-width:0}.list-row p{margin:3px 0 0}.list-row .ns-icon{width:18px;height:18px;color:var(--ns-text-muted)}
.announcement-feed{display:grid;gap:12px}.announcement-card{position:relative;overflow:hidden;display:grid;gap:10px}.announcement-card::before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:4px;background:var(--ns-primary)}.announcement-card.priority-important::before{background:var(--ns-warning)}.announcement-card.priority-urgent::before{background:var(--ns-danger)}.announcement-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.announcement-body{white-space:normal;overflow-wrap:anywhere}.announcement-card h2{font-size:1.08rem;margin:4px 0}.announcement-card p{margin:0}
.calendar-timeline{display:grid;gap:14px}.calendar-day{display:grid;gap:9px}.calendar-day>h2{font-size:.9rem;color:var(--ns-text-secondary);margin:0;padding-inline:4px}.calendar-event{display:flex;align-items:flex-start;gap:12px}.calendar-event-dot{width:11px;height:11px;border-radius:999px;background:var(--ns-primary);box-shadow:0 0 0 5px var(--ns-primary-soft);margin-top:7px;flex:none}.calendar-event h2{font-size:1rem;margin:0 0 4px}.calendar-event p{margin:0}.management-event form{flex:none}
.weekly-schedule-grid{display:grid;grid-template-columns:repeat(5,minmax(180px,1fr));gap:12px;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}.schedule-day{min-width:180px;padding:13px;border:1px solid var(--ns-border);border-radius:var(--ns-radius-lg);background:var(--ns-surface-subtle)}.schedule-day>h2{font-size:.92rem;margin:0 0 10px}.schedule-item{display:grid;gap:4px;padding:11px;border:1px solid var(--ns-border);border-radius:var(--ns-radius-md);background:var(--ns-surface);margin-bottom:8px}.schedule-item:last-child{margin-bottom:0}.schedule-item strong{font-size:.84rem}.schedule-item p{margin:0}.schedule-empty{padding:12px 0;margin:0}.management-schedule .schedule-item{position:relative}.management-schedule .icon-btn{position:absolute;inset-block-start:7px;inset-inline-end:7px}
.goals-layout{align-items:start}.goal-card{display:grid;gap:13px}.goal-card h2{font-size:1.08rem;margin:5px 0}.goal-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.goal-progress progress{width:100%;height:12px;appearance:none;border:0;border-radius:999px;overflow:hidden;background:var(--ns-border)}.goal-progress progress::-webkit-progress-bar{background:var(--ns-border);border-radius:999px}.goal-progress progress::-webkit-progress-value{background:linear-gradient(90deg,var(--ns-primary),#14b8a6);border-radius:999px}.goal-progress progress::-moz-progress-bar{background:linear-gradient(90deg,var(--ns-primary),#14b8a6);border-radius:999px}.goal-update-form{display:grid;grid-template-columns:minmax(120px,.6fr) minmax(180px,1.4fr) minmax(130px,.7fr) auto;gap:10px;align-items:end;padding-top:12px;border-top:1px solid var(--ns-border)}
.digest-grid,.privacy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.digest-child{display:grid;gap:12px}.digest-child h2{margin:0}.digest-notes{padding:12px;border-radius:var(--ns-radius-md);background:var(--ns-surface-subtle);border:1px solid var(--ns-border)}.privacy-export-card,.privacy-actions-card{grid-column:span 1}.consent-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--ns-border)}.consent-row:last-child{border-bottom:0}.consent-row p{margin:3px 0 0}.child-consent-block{padding:14px;border:1px solid var(--ns-border);border-radius:var(--ns-radius-lg);background:var(--ns-surface-subtle)}.child-consent-block>h3{margin:0 0 8px}.export-history{margin-top:8px}
.risk-toolbar{display:flex;align-items:end;justify-content:space-between;gap:14px;flex-wrap:wrap}.risk-toolbar form{margin:0}.risk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.risk-card{position:relative;overflow:hidden;display:grid;gap:12px}.risk-card::before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:4px;background:var(--ns-warning)}.risk-card.severity-low::before{background:var(--ns-success)}.risk-card.severity-high::before,.risk-card.severity-critical::before{background:var(--ns-danger)}.risk-update-form{padding-top:12px;border-top:1px solid var(--ns-border)}
.timetable-form{display:grid;gap:12px}.details-form{margin-top:14px}.icon-btn{width:40px;height:40px;min-width:40px;border-radius:10px;display:inline-grid;place-items:center;border:1px solid var(--ns-border);background:var(--ns-surface);color:var(--ns-text);cursor:pointer}.icon-btn.danger{color:var(--ns-danger);border-color:color-mix(in srgb,var(--ns-danger) 30%,var(--ns-border));background:color-mix(in srgb,var(--ns-danger) 7%,var(--ns-surface))}
.empty-state.compact{min-height:100px;padding:18px}.filter-bar{margin:0}.filter-bar label{margin:0}.status-badge{display:inline-flex;align-items:center;min-height:27px;padding:4px 9px;border-radius:999px;font-size:.7rem;font-weight:800;text-transform:none}.status-neutral{background:var(--ns-surface-subtle);border:1px solid var(--ns-border);color:var(--ns-text-secondary)}
.flash[role="alert"],.alert[role="alert"]{scroll-margin-top:100px}.side-close>span{font-size:1.6rem;line-height:1}.side-nav .side-group-label{margin-top:12px}

body.dark .check-row,body.dark .schedule-day,body.dark .digest-notes,body.dark .child-consent-block{background:#0d1728;border-color:#26364e}
body.dark .schedule-item,body.dark .icon-btn{background:#111d31;border-color:#2b3d59}
body.dark .calendar-event-dot{box-shadow:0 0 0 5px rgba(59,130,246,.16)}
body.dark .goal-progress progress,body.dark .goal-progress progress::-webkit-progress-bar{background:#26364e}

@media(max-width:1050px){
  .two-column-layout,.operations-layout{grid-template-columns:1fr}
  .weekly-schedule-grid{grid-template-columns:repeat(5,minmax(210px,1fr))}
  .risk-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
  .form-grid.two,.digest-grid,.privacy-grid{grid-template-columns:1fr}
  .goal-update-form{grid-template-columns:1fr}
  .compact-form{display:grid;grid-template-columns:1fr}.compact-form>label{min-width:0}
  .announcement-head,.section-head,.consent-row,.risk-toolbar{align-items:stretch;flex-direction:column}
  .announcement-head form,.management-event form,.consent-row form{width:100%}.announcement-head button,.management-event button,.consent-row button{width:100%;justify-content:center}
  .calendar-event{display:grid;grid-template-columns:auto minmax(0,1fr)}.calendar-event form{grid-column:2}
  .weekly-schedule-grid{grid-template-columns:repeat(5,minmax(230px,1fr));margin-inline:-4px;padding-inline:4px}
}
@media(max-width:430px){
  .weekly-schedule-grid{grid-template-columns:repeat(5,minmax(86vw,1fr))}
  .goal-progress{grid-template-columns:1fr}.goal-progress strong{justify-self:end}
}

/* Release privacy controls */
.footer-cookie-link{appearance:none;border:0;background:none;padding:0;color:inherit;font:inherit;text-align:start;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.cookie-consent{position:fixed;inset-inline:16px;bottom:16px;z-index:10000;max-width:980px;margin-inline:auto;border:1px solid var(--border,#dbe4f0);border-radius:18px;background:var(--surface,#fff);box-shadow:0 18px 60px rgba(15,23,42,.22);padding:18px}
.cookie-consent[hidden]{display:none!important}.cookie-consent-content{display:flex;align-items:center;justify-content:space-between;gap:20px}.cookie-consent-content p{margin:.35rem 0 .2rem;max-width:720px}.cookie-consent-actions{display:flex;gap:10px;flex:0 0 auto}
.ns-cert-verify-url{font-size:9px;overflow-wrap:anywhere;max-width:360px}
@media(max-width:720px){.cookie-consent{inset-inline:10px;bottom:10px;padding:14px}.cookie-consent-content{align-items:stretch;flex-direction:column}.cookie-consent-actions{display:grid;grid-template-columns:1fr 1fr}.cookie-consent-actions button{width:100%}}

/* V4 release: privacy consent and accessible footer controls. */
.footer-link-button,.footer-cookie-link{appearance:none;border:0;background:transparent;color:inherit;font:inherit;padding:0;cursor:pointer;text-align:inherit;text-decoration:none}
.footer-link-button:hover,.footer-cookie-link:hover{text-decoration:underline}
.cookie-consent{position:fixed;z-index:10000;inset-inline:20px;bottom:max(20px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1120px;margin-inline:auto;padding:20px 22px;border:1px solid var(--ns-border);border-radius:var(--ns-radius-xl);background:var(--ns-surface);box-shadow:0 24px 70px rgba(15,23,42,.24)}
.cookie-consent[hidden],.cookie-consent.is-hidden{display:none!important}
.cookie-consent-copy{max-width:760px}.cookie-consent-copy h2{margin:0 0 6px;font-size:1.05rem}.cookie-consent-copy p{margin:0 0 4px;color:var(--ns-text-muted);line-height:1.75}.cookie-consent-copy a{font-weight:700}
.cookie-consent-actions{display:flex;flex-wrap:wrap;gap:10px;flex:0 0 auto}
body.dark .cookie-consent{background:#101a2b;border-color:#2b3b55;box-shadow:0 24px 70px rgba(0,0,0,.5)}
@media(max-width:720px){.cookie-consent{inset-inline:12px;bottom:max(12px,env(safe-area-inset-bottom));display:grid;gap:14px;padding:17px}.cookie-consent-actions{display:grid;grid-template-columns:1fr}.cookie-consent-actions .primary-btn,.cookie-consent-actions .secondary-btn{width:100%;justify-content:center}}

/* V4 release: dense definition lists and reusable pagination. */
.definition-list{display:grid;gap:.65rem;margin:0}
.definition-list>div{display:grid;grid-template-columns:minmax(8rem,.45fr) minmax(0,1fr);gap:.75rem;align-items:start;padding:.65rem 0;border-bottom:1px solid var(--border)}
.definition-list>div:last-child{border-bottom:0}
.definition-list dt{font-weight:800;color:var(--text-muted)}
.definition-list dd{margin:0;font-weight:700;overflow-wrap:anywhere}
.compact-stack{gap:.55rem}
.pagination{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;justify-content:center;padding-top:.4rem}
.pagination a{display:inline-grid;place-items:center;min-width:2.5rem;min-height:2.5rem;padding:.35rem .65rem;border:1px solid var(--border);border-radius:.7rem;background:var(--surface);color:var(--text);font-weight:800;text-decoration:none}
.pagination a:hover,.pagination a:focus-visible,.pagination a.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-strong)}
@media (max-width:680px){.definition-list>div{grid-template-columns:1fr;gap:.2rem}.pagination{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;padding-bottom:.25rem}}

/* === NanoStudent V5 Golden Learning & School Success System === */
.golden-page{display:grid;gap:18px;min-width:0}
.golden-page .ns-dashboard-head{margin-bottom:0}
.golden-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.golden-summary-grid .metric-card{min-width:0;display:grid;gap:6px;align-content:center;min-height:116px;padding:18px;border:1px solid var(--ns-border);border-radius:var(--ns-radius-lg);background:var(--ns-surface);box-shadow:var(--ns-shadow-xs)}
.golden-summary-grid .metric-card>span:first-child .ns-icon{width:21px;height:21px;color:var(--ns-primary)}
.golden-summary-grid .metric-card>strong{font-size:clamp(1.45rem,2.4vw,2rem);line-height:1.15;overflow-wrap:anywhere}
.golden-summary-grid .metric-card>small{color:var(--ns-text-secondary);font-weight:700}
.golden-summary-grid .metric-card.success{border-color:color-mix(in srgb,var(--ns-success) 28%,var(--ns-border));background:color-mix(in srgb,var(--ns-success-soft) 42%,var(--ns-surface))}
.golden-summary-grid .metric-card.warning{border-color:color-mix(in srgb,var(--ns-warning) 30%,var(--ns-border));background:color-mix(in srgb,var(--ns-warning-soft) 45%,var(--ns-surface))}

.action-center-list,.learning-plan-list,.assistant-run-list,.tutor-session-list,.completed-action-list{display:grid;gap:10px}
.daily-action-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:15px;align-items:center;padding:16px;border:1px solid var(--ns-border);border-radius:var(--ns-radius-lg);background:var(--ns-surface-subtle)}
.daily-action-card.priority-1{border-inline-start:4px solid var(--ns-danger)}
.daily-action-card.priority-2{border-inline-start:4px solid var(--ns-warning)}
.daily-action-card.priority-3,.daily-action-card.priority-4,.daily-action-card.priority-5{border-inline-start:4px solid var(--ns-primary)}
.daily-action-number{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--ns-primary-soft);color:var(--ns-primary-active);font-weight:900}
.daily-action-content{min-width:0}.daily-action-content h3{margin:7px 0 3px;font-size:1rem}.daily-action-content p{margin:0;color:var(--ns-text-secondary);overflow-wrap:anywhere}
.daily-action-buttons{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.daily-action-buttons form{margin:0}.daily-action-buttons .primary-btn,.daily-action-buttons .secondary-btn,.daily-action-buttons .ghost-btn{min-height:40px;padding:8px 12px}
.completed-action-item{display:flex;align-items:center;gap:8px;padding:9px 11px;border-radius:12px;background:var(--ns-surface-subtle);color:var(--ns-text-secondary)}.completed-action-item .ns-icon{width:17px;height:17px;color:var(--ns-success)}

.mastery-grid,.content-resource-grid,.academy-course-grid,.intervention-grid,.parent-action-grid,.ai-quality-grid,.paper-student-grid,.roi-insight-grid,.integrations-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.mastery-card,.content-resource-card,.academy-course-card,.intervention-card,.parent-action-card,.ai-quality-card,.paper-student-card{display:grid;gap:13px;min-width:0}
.mastery-card progress{width:100%;height:12px;border:0;border-radius:999px;overflow:hidden;background:var(--ns-border)}
.mastery-card progress::-webkit-progress-bar{background:var(--ns-border);border-radius:999px}.mastery-card progress::-webkit-progress-value{background:linear-gradient(90deg,var(--ns-primary),var(--ns-teal));border-radius:999px}.mastery-card progress::-moz-progress-bar{background:linear-gradient(90deg,var(--ns-primary),var(--ns-teal));border-radius:999px}
.mastery-card.status-needs_support{border-color:color-mix(in srgb,var(--ns-warning) 34%,var(--ns-border))}.mastery-card.status-mastered{border-color:color-mix(in srgb,var(--ns-success) 30%,var(--ns-border))}
.mastery-score{font-size:1.45rem;color:var(--ns-primary-active)}

.plan-item{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(210px,.55fr);gap:15px;align-items:center;padding:15px;border:1px solid var(--ns-border);border-radius:var(--ns-radius-lg);background:var(--ns-surface-subtle)}
.plan-step{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:var(--ns-primary-soft);color:var(--ns-primary-active);font-weight:900}.plan-body{min-width:0}.plan-body h2{font-size:1rem;margin:5px 0}.plan-body p{margin:0}.plan-item form{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:end}.plan-item form label{margin:0}.plan-item form input,.plan-item form select{min-height:40px;padding:8px 10px}

.assistant-layout,.tutor-layout,.paper-exam-layout,.academy-layout,.curriculum-builder-grid{display:grid;grid-template-columns:minmax(245px,.7fr) minmax(0,1.55fr);gap:16px;align-items:start}
.assistant-run-list,.tutor-session-list{max-height:640px;overflow:auto;padding-inline-end:3px}
.assistant-run-link,.tutor-session-link{display:grid;gap:3px;padding:12px;border:1px solid var(--ns-border);border-radius:14px;background:var(--ns-surface-subtle)}
.assistant-run-link:hover,.assistant-run-link.active,.tutor-session-link:hover,.tutor-session-link.active{border-color:var(--ns-primary);background:var(--ns-primary-soft)}
.assistant-run-link small,.tutor-session-link small{color:var(--ns-text-secondary)}
.assistant-result-text{max-height:720px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:17px;border:1px solid var(--ns-border);border-radius:var(--ns-radius-md);background:var(--ns-surface-subtle);font-family:inherit;line-height:1.85}

.tutor-sidebar{display:grid;gap:14px;position:sticky;top:92px}.tutor-chat{display:grid;gap:12px;min-width:0}.tutor-messages{display:flex;flex-direction:column;gap:10px;max-height:630px;overflow:auto;padding:4px}
.tutor-message{display:grid;gap:5px;max-width:min(82%,720px);padding:13px 15px;border-radius:17px;border:1px solid var(--ns-border);background:var(--ns-surface-subtle)}
.tutor-message.role-student{align-self:flex-end;background:var(--ns-primary);border-color:var(--ns-primary);color:#fff}.tutor-message.role-assistant{align-self:flex-start}.tutor-message p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.tutor-message-meta{font-size:.72rem;opacity:.78}.tutor-composer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.tutor-composer textarea{min-height:92px}

.intervention-card{position:relative;overflow:hidden}.intervention-card::before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:4px;background:var(--ns-warning)}.intervention-card.risk-critical::before,.intervention-card.risk-high::before{background:var(--ns-danger)}.intervention-card.risk-low::before{background:var(--ns-success)}
.intervention-card .details-form{padding-top:12px;border-top:1px solid var(--ns-border)}
.parent-action-card.type-celebrate{border-color:color-mix(in srgb,var(--ns-success) 30%,var(--ns-border))}.parent-action-card.type-attendance,.parent-action-card.type-support{border-color:color-mix(in srgb,var(--ns-warning) 34%,var(--ns-border))}

.content-resource-card h2,.academy-course-card h2,.ai-quality-card h2,.paper-student-card h2{font-size:1.05rem;margin:0}.content-resource-card p,.academy-course-card p,.ai-quality-card p{margin:0;overflow-wrap:anywhere}
.content-resource-card .inline-actions,.academy-course-card .inline-actions{margin-top:auto}
.academy-module-card{display:grid;gap:12px;padding:15px;border:1px solid var(--ns-border);border-radius:var(--ns-radius-lg);background:var(--ns-surface-subtle)}.academy-module-content{white-space:pre-wrap;line-height:1.8}.academy-module-card.status-completed{border-color:color-mix(in srgb,var(--ns-success) 30%,var(--ns-border))}

.paper-student-card .answer-box{width:100%;min-height:92px}.paper-student-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.paper-exam-layout .toolbar{justify-content:flex-start}
.quality-score-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.quality-score-grid label{display:grid;gap:6px;font-size:.78rem;font-weight:800}.quality-score-grid input{min-height:40px;padding:8px 10px}
.ai-token-mini{display:grid;grid-template-columns:auto auto auto auto;gap:5px;align-items:baseline}.ai-token-mini strong{font-size:1rem}.ai-token-mini small{font-size:.65rem;color:var(--ns-text-secondary)}

.roi-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(220px,.65fr);gap:18px;align-items:center}.roi-time{display:grid;place-items:center;min-height:180px;padding:20px;border-radius:var(--ns-radius-xl);background:linear-gradient(145deg,var(--ns-primary),var(--ns-teal));color:#fff;text-align:center}.roi-time strong{font-size:clamp(2.4rem,6vw,4.2rem);line-height:1}.roi-time small{font-weight:800}.roi-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.roi-insight-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.integration-secret code{display:block;max-width:100%;padding:10px;margin:8px 0;border-radius:10px;background:var(--ns-surface-subtle);overflow-wrap:anywhere;direction:ltr}.integrations-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.curriculum-builder-grid{grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr)}

.pricing-card{position:relative}.pricing-popular-badge{position:absolute;top:14px;inset-inline-end:14px}.pricing-annual{margin:0;padding:8px 10px;border-radius:11px;background:var(--ns-surface-subtle)}
.ai-token-pricing-card .student-list-card>span:not(.tag){color:var(--ns-text-secondary);text-align:end}.latest-ai-usage small{display:block;color:var(--ns-text-secondary)}

body.dark .daily-action-card,body.dark .plan-item,body.dark .assistant-run-link,body.dark .tutor-session-link,body.dark .assistant-result-text,body.dark .academy-module-card,body.dark .pricing-annual,body.dark .integration-secret code{background:var(--ns-surface-subtle)}
body.dark .tutor-message.role-student{background:#2563eb;border-color:#3b82f6;color:#fff}

@media(max-width:1120px){
  .golden-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .paper-student-grid,.integrations-grid,.roi-insight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .quality-score-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .assistant-layout,.tutor-layout,.paper-exam-layout,.academy-layout,.curriculum-builder-grid,.roi-hero{grid-template-columns:1fr}
  .tutor-sidebar{position:static}.assistant-run-list,.tutor-session-list{max-height:340px}
  .daily-action-card{grid-template-columns:auto minmax(0,1fr)}.daily-action-buttons{grid-column:2;justify-content:flex-start}
  .plan-item{grid-template-columns:auto minmax(0,1fr)}.plan-item form{grid-column:2}
  .mastery-grid,.content-resource-grid,.academy-course-grid,.intervention-grid,.parent-action-grid,.ai-quality-grid{grid-template-columns:1fr}
}
@media(max-width:680px){
  .golden-summary-grid,.paper-student-grid,.integrations-grid,.roi-metrics,.roi-insight-grid,.quality-score-grid{grid-template-columns:1fr}
  .golden-summary-grid .metric-card{min-height:92px;padding:14px}
  .daily-action-card{grid-template-columns:1fr;gap:10px}.daily-action-number{width:34px;height:34px}.daily-action-buttons{grid-column:auto;display:grid;grid-template-columns:1fr 1fr}.daily-action-buttons form:last-child{grid-column:1/-1}.daily-action-buttons a,.daily-action-buttons button,.daily-action-buttons form{width:100%}.daily-action-buttons button{justify-content:center}
  .plan-item{grid-template-columns:1fr}.plan-item form{grid-column:auto;grid-template-columns:1fr}.plan-step{width:34px;height:34px}
  .tutor-message{max-width:94%}.tutor-composer{grid-template-columns:1fr}.tutor-composer button{width:100%;justify-content:center}
  .section-head{gap:10px}.golden-page .section-head>.primary-btn,.golden-page .section-head>.secondary-btn,.golden-page .section-head>.ghost-btn{width:100%;justify-content:center}
  .ai-token-pricing-card .student-list-card{align-items:flex-start;flex-direction:column}.ai-token-pricing-card .student-list-card>span:not(.tag){text-align:start}
}

/* NanoStudent profile directory and comprehensive records — release 5.4.0 */
.span-2{grid-column:span 2}.span-3{grid-column:span 3}
.directory-page,.public-directory-profile,.public-profile-settings-page,.profile-record-page{display:grid;gap:20px}
.directory-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);gap:24px;align-items:center;overflow:hidden;padding:clamp(24px,5vw,54px);border:1px solid var(--ns-border);border-radius:var(--ns-radius-xl);background:linear-gradient(135deg,var(--ns-surface),var(--ns-primary-soft));box-shadow:var(--ns-shadow-sm)}
.directory-hero::after{content:"";position:absolute;inline-size:280px;block-size:280px;inset-block-end:-150px;inset-inline-end:-90px;border-radius:50%;background:color-mix(in srgb,var(--ns-primary) 18%,transparent);filter:blur(2px);pointer-events:none}
.directory-hero-copy{position:relative;z-index:1;max-width:720px}.directory-hero-copy h1{margin:12px 0 10px;font-size:clamp(2rem,4.5vw,3.6rem)}.directory-hero-copy p{margin:0;color:var(--ns-text-secondary);font-size:1.05rem}
.directory-search-card{position:relative;z-index:1;display:grid;gap:14px;padding:18px;border:1px solid color-mix(in srgb,var(--ns-primary) 16%,var(--ns-border));border-radius:var(--ns-radius-lg);background:color-mix(in srgb,var(--ns-surface) 94%,transparent);box-shadow:var(--ns-shadow-sm);backdrop-filter:blur(14px)}
.directory-type-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.directory-type-tabs label{cursor:pointer}.directory-type-tabs input{position:absolute;opacity:0;pointer-events:none}.directory-type-tabs span{display:flex;align-items:center;justify-content:center;min-height:42px;padding:7px 9px;border:1px solid var(--ns-border);border-radius:10px;background:var(--ns-surface-subtle);color:var(--ns-text-secondary);font-size:.82rem;font-weight:800;text-align:center;transition:.16s ease}.directory-type-tabs input:checked+span{border-color:color-mix(in srgb,var(--ns-primary) 45%,var(--ns-border));background:var(--ns-primary-soft);color:var(--ns-primary-active)}
.directory-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px}.directory-search-row input{min-height:50px;padding:12px 15px;border:1px solid var(--ns-border);border-radius:12px;background:var(--ns-surface);color:var(--ns-text)}.directory-search-row button{min-height:50px;display:inline-flex;align-items:center;gap:8px;justify-content:center}
.directory-results-section{display:grid;gap:14px}.directory-results-grid,.profile-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.directory-result-card,.profile-review-card{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:17px;border:1px solid var(--ns-border);border-radius:var(--ns-radius-lg);background:var(--ns-surface);box-shadow:var(--ns-shadow-xs);transition:.18s ease}.directory-result-card:hover{border-color:color-mix(in srgb,var(--ns-primary) 42%,var(--ns-border));box-shadow:var(--ns-shadow-sm);transform:translateY(-2px)}
.directory-result-avatar,.directory-card-avatar{inline-size:56px;block-size:56px;display:grid;place-items:center;overflow:hidden;flex:0 0 auto;border-radius:16px;background:var(--ns-primary-soft);color:var(--ns-primary-active);font-weight:900;font-size:1.15rem}.directory-result-avatar img,.directory-card-avatar img{inline-size:100%;block-size:100%;object-fit:cover}.directory-result-body{min-width:0}.directory-result-body h3{margin:6px 0 3px;overflow-wrap:anywhere}.directory-result-body p,.directory-result-body small{display:block;margin:0;color:var(--ns-text-secondary);overflow-wrap:anywhere}.directory-result-meta,.profile-review-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.directory-safety-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.directory-safety-grid .feature-card{display:grid;gap:10px;align-content:start}.directory-safety-grid .feature-card>span{font-size:2rem}.directory-safety-grid h2{margin:0;font-size:1.1rem}.directory-safety-grid p{margin:0;color:var(--ns-text-secondary)}.directory-empty{grid-column:1/-1;min-height:220px;display:grid;place-items:center;align-content:center;text-align:center}

.public-profile-hero{position:relative;isolation:isolate;min-height:290px;display:flex;align-items:flex-end;overflow:hidden;padding:clamp(24px,5vw,48px);border-radius:var(--ns-radius-xl);background:linear-gradient(135deg,#0f172a,#1d4ed8);background-size:cover;background-position:center;color:#fff;box-shadow:var(--ns-shadow-md)}
.public-profile-overlay{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(15,23,42,.12),rgba(15,23,42,.78))}.public-profile-heading{display:flex;align-items:flex-end;gap:20px;min-width:0}.public-profile-heading h1{margin:9px 0 3px;color:#fff;font-size:clamp(2rem,4vw,3.1rem);overflow-wrap:anywhere}.public-profile-heading p,.public-profile-location{margin:0;color:rgba(255,255,255,.88)}
.public-profile-avatar,.profile-record-avatar{inline-size:112px;block-size:112px;display:grid;place-items:center;overflow:hidden;flex:0 0 auto;border:4px solid rgba(255,255,255,.85);border-radius:28px;background:var(--ns-primary-soft);color:var(--ns-primary-active);box-shadow:0 14px 34px rgba(15,23,42,.22);font-size:2rem;font-weight:900}.public-profile-avatar img,.profile-record-avatar img{inline-size:100%;block-size:100%;object-fit:cover}
.public-profile-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(270px,.65fr);gap:18px;align-items:start}.public-profile-main,.public-profile-sidebar{display:grid;gap:16px}.public-profile-sidebar{position:sticky;top:94px}.public-profile-about p{margin-bottom:0;white-space:normal;overflow-wrap:anywhere}.public-profile-actions{display:grid;gap:9px}.public-profile-actions>a,.public-profile-actions>button{justify-content:center;text-align:center}
.public-profile-stats,.profile-record-metrics,.profile-status-strip,.profile-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.public-profile-stats>div,.profile-status-strip>div,.profile-info-grid>div{min-width:0;padding:13px;border:1px solid var(--ns-border);border-radius:12px;background:var(--ns-surface-subtle)}.public-profile-stats small,.profile-status-strip small,.profile-info-grid small{display:block;color:var(--ns-text-muted);font-weight:700}.public-profile-stats strong,.profile-status-strip strong,.profile-info-grid strong{display:block;margin-top:4px;overflow-wrap:anywhere}
.public-achievement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.public-achievement-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:15px;border:1px solid var(--ns-border);border-radius:var(--ns-radius-lg);background:var(--ns-surface-subtle)}.public-achievement-card>span{font-size:1.7rem}.public-achievement-card strong{display:block}.public-achievement-card p{margin:5px 0 0;color:var(--ns-text-secondary);overflow-wrap:anywhere}
.profile-quick-dl{display:grid;gap:9px;margin:0}.profile-quick-dl>div{display:grid;grid-template-columns:minmax(90px,.45fr) minmax(0,1fr);gap:10px;padding-block:8px;border-bottom:1px solid var(--ns-border)}.profile-quick-dl>div:last-child{border-bottom:0}.profile-quick-dl dt{color:var(--ns-text-muted);font-weight:700}.profile-quick-dl dd{margin:0;overflow-wrap:anywhere}.profile-note{padding:13px;border-inline-start:4px solid var(--ns-primary);border-radius:10px;background:var(--ns-primary-soft);color:var(--ns-text-secondary)}.profile-report-card summary{cursor:pointer;font-weight:800}.profile-report-card[open] summary{margin-bottom:15px}

.profile-settings-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(270px,.65fr);gap:18px;align-items:start}.profile-visibility-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.profile-visibility-options .check-row{align-items:flex-start}.profile-visibility-options small{display:block;margin-top:3px;color:var(--ns-text-muted)}.achievement-manage-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px;border:1px solid var(--ns-border);border-radius:var(--ns-radius-md);background:var(--ns-surface-subtle)}.achievement-manage-row small{display:block;color:var(--ns-text-muted)}.achievement-icon{font-size:1.55rem}.safe-list{display:grid;gap:8px;margin:0;padding-inline-start:20px;color:var(--ns-text-secondary)}

.profile-record-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px;border:1px solid var(--ns-border);border-radius:var(--ns-radius-xl);background:linear-gradient(135deg,var(--ns-surface),var(--ns-primary-soft));box-shadow:var(--ns-shadow-sm)}.profile-record-identity{min-width:0;display:flex;align-items:center;gap:16px}.profile-record-identity h1{margin:5px 0 3px;font-size:clamp(1.65rem,3vw,2.35rem);overflow-wrap:anywhere}.profile-record-identity p{margin:0;color:var(--ns-text-secondary)}.profile-record-avatar{inline-size:82px;block-size:82px;border-width:3px;border-radius:22px;font-size:1.5rem}.profile-record-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.profile-security-banner{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;padding:15px;border:1px solid color-mix(in srgb,var(--ns-warning) 30%,var(--ns-border));border-radius:var(--ns-radius-lg);background:color-mix(in srgb,var(--ns-warning) 8%,var(--ns-surface));color:var(--ns-text-secondary)}.profile-security-banner>span{font-size:1.45rem}.profile-security-banner strong{display:block;color:var(--ns-text)}
.profile-record-nav{position:sticky;top:76px;z-index:8;display:flex;gap:7px;overflow-x:auto;padding:9px;border:1px solid var(--ns-border);border-radius:14px;background:color-mix(in srgb,var(--ns-surface) 94%,transparent);box-shadow:var(--ns-shadow-xs);backdrop-filter:blur(12px)}.profile-record-nav a{flex:0 0 auto;padding:8px 11px;border-radius:9px;color:var(--ns-text-secondary);font-size:.86rem;font-weight:800}.profile-record-nav a:hover{background:var(--ns-primary-soft);color:var(--ns-primary-active)}
.profile-record-section{scroll-margin-top:142px}.profile-record-section>.section-head{margin-bottom:13px}.profile-record-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.profile-record-metrics .metric-card{min-height:108px}.profile-chip-list{display:flex;gap:7px;flex-wrap:wrap}.profile-chip{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border:1px solid var(--ns-border);border-radius:999px;background:var(--ns-surface-subtle);color:var(--ns-text-secondary);font-size:.82rem;font-weight:700}.profile-summary-bars{display:grid;gap:11px}.profile-summary-bars>div{display:grid;grid-template-columns:minmax(130px,.7fr) minmax(130px,1fr) auto;gap:10px;align-items:center}.profile-summary-bars progress{inline-size:100%;block-size:11px;border:0;border-radius:999px;overflow:hidden;background:var(--ns-border)}.profile-summary-bars progress::-webkit-progress-bar{background:var(--ns-border)}.profile-summary-bars progress::-webkit-progress-value{background:var(--ns-primary)}.profile-summary-bars progress::-moz-progress-bar{background:var(--ns-primary)}.profile-people-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.profile-people-list>a,.profile-people-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border:1px solid var(--ns-border);border-radius:12px;background:var(--ns-surface-subtle)}
.profile-review-card{grid-template-columns:auto minmax(0,1fr);align-items:start}.profile-review-card h3{margin:6px 0 2px}.profile-review-card p{margin:0;color:var(--ns-text-secondary)}.profile-review-card .inline-actions{grid-column:1/-1}.directory-search-form{display:grid;grid-template-columns:minmax(0,1fr) repeat(2,minmax(150px,.32fr)) auto;gap:9px;align-items:end}.directory-search-form .field{min-width:0}

@media(max-width:1100px){
  .directory-results-grid,.profile-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .profile-record-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .directory-search-form{grid-template-columns:repeat(2,minmax(0,1fr))}.directory-search-form>button{align-self:end}
}
@media(max-width:900px){
  .directory-hero,.public-profile-layout,.profile-settings-grid{grid-template-columns:1fr}.public-profile-sidebar{position:static}
  .directory-safety-grid{grid-template-columns:1fr}.public-profile-stats,.profile-status-strip,.profile-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .profile-record-hero{align-items:flex-start;flex-direction:column}.profile-record-actions{justify-content:flex-start}
  .span-3,.span-2{grid-column:auto}.profile-visibility-options{grid-template-columns:1fr}
}
@media(max-width:650px){
  .directory-hero{padding:20px}.directory-type-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.directory-search-row{grid-template-columns:1fr}
  .directory-results-grid,.profile-review-grid,.public-achievement-grid,.profile-people-list{grid-template-columns:1fr}.directory-result-card{grid-template-columns:auto minmax(0,1fr)}.directory-result-card>span:last-child{display:none}
  .public-profile-heading{align-items:flex-start;flex-direction:column}.public-profile-avatar{inline-size:92px;block-size:92px;border-radius:23px}.public-profile-hero{min-height:340px}
  .public-profile-stats,.profile-status-strip,.profile-info-grid,.profile-record-metrics{grid-template-columns:1fr}.profile-quick-dl>div{grid-template-columns:1fr;gap:2px}
  .achievement-manage-row{grid-template-columns:auto minmax(0,1fr)}.achievement-manage-row form{grid-column:1/-1}.achievement-manage-row form button{width:100%}
  .profile-record-identity{align-items:flex-start}.profile-record-avatar{inline-size:68px;block-size:68px}.profile-summary-bars>div{grid-template-columns:1fr}.profile-record-nav{top:68px}
  .directory-search-form{grid-template-columns:1fr}.directory-search-form>button{width:100%;justify-content:center}
}

/* NanoStudent universal profile search and privacy lock — release 5.4.0 */
.global-profile-search{position:relative;display:grid;grid-template-columns:auto minmax(120px,1fr) auto;align-items:center;flex:0 1 360px;min-width:230px;max-width:390px;min-height:44px;border:1px solid var(--ns-border);border-radius:15px;background:var(--ns-surface);box-shadow:var(--ns-shadow-xs);overflow:hidden}
.global-profile-search:focus-within{border-color:color-mix(in srgb,var(--ns-primary) 52%,var(--ns-border));box-shadow:0 0 0 3px color-mix(in srgb,var(--ns-primary) 13%,transparent)}
.global-profile-search-icon{display:grid;place-items:center;padding-inline-start:12px;color:var(--ns-text-muted)}
.global-profile-search input{min-width:0;height:42px;padding:8px 10px;border:0;outline:0;background:transparent;color:var(--ns-text);font:inherit}
.global-profile-search input::placeholder{color:var(--ns-text-muted)}
.global-profile-search button{align-self:stretch;padding:8px 13px;border:0;border-inline-start:1px solid var(--ns-border);background:var(--ns-primary-soft);color:var(--ns-primary-active);font-weight:900;cursor:pointer}
.global-profile-search button:hover{background:color-mix(in srgb,var(--ns-primary) 17%,var(--ns-surface))}
.public-desktop-nav+.global-profile-search{max-width:285px}
.drawer-profile-search{display:grid;gap:7px;margin:4px 0 10px;padding:12px;border:1px solid var(--ns-border);border-radius:14px;background:var(--ns-surface-subtle)}
.drawer-profile-search label{font-size:.78rem;font-weight:900;color:var(--ns-text-secondary)}
.drawer-profile-search>div{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:7px}
.drawer-profile-search input{min-width:0;min-height:42px;padding:9px 11px;border:1px solid var(--ns-border);border-radius:11px;background:var(--ns-surface);color:var(--ns-text)}
.drawer-profile-search button{display:grid;place-items:center;border:0;border-radius:11px;background:var(--ns-primary);color:#fff;cursor:pointer}
.profile-privacy-lock-card{display:flex;align-items:center;justify-content:space-between;gap:18px;border-inline-start:4px solid var(--ns-primary)}
.profile-privacy-lock-card>div{min-width:0}.profile-privacy-lock-card strong{display:block;margin-bottom:5px}.profile-privacy-lock-card p{margin:0;color:var(--ns-text-secondary)}.profile-privacy-lock-card form{flex:0 0 auto}
body.dark .global-profile-search,body.dark .drawer-profile-search input{background:#0f172a;border-color:var(--ns-border)}
@media(max-width:1280px){.public-desktop-nav+.global-profile-search{display:none}}
@media(max-width:1080px){.global-profile-search{display:none}}
@media(max-width:700px){.profile-privacy-lock-card{align-items:stretch;flex-direction:column}.profile-privacy-lock-card form,.profile-privacy-lock-card button{width:100%;justify-content:center}}

.profile-privacy-lock-card.is-locked{border-inline-start-color:var(--ns-danger,#dc2626);background:color-mix(in srgb,var(--ns-danger,#dc2626) 5%,var(--ns-surface))}
.profile-privacy-lock-card.is-unlocked{border-inline-start-color:var(--ns-success,#16a34a)}
.profile-privacy-lock-card .compact-stack{justify-items:end;gap:8px}
.public-profile-lock-notice{margin:16px auto 0;max-width:1180px;border-inline-start:4px solid var(--ns-warning,#d97706);background:color-mix(in srgb,var(--ns-warning,#d97706) 7%,var(--ns-surface))}
.public-profile-lock-notice strong{display:block;margin-bottom:5px}.public-profile-lock-notice p{margin:0;color:var(--ns-text-secondary)}
@media(max-width:700px){.profile-privacy-lock-card .compact-stack{justify-items:stretch}.profile-privacy-lock-card .compact-stack .status-badge{text-align:center}}

/* NanoStudent language switcher hotfix — release 5.4.2 */
.topbar-lang-menu{position:relative;display:inline-block}
.topbar-lang-menu[open]{z-index:120}
.topbar-lang-menu[open]::after{content:none!important;display:none!important}
.topbar-lang-menu .topbar-lang-options{
  position:absolute;
  inset-block-start:calc(100% + 8px);
  inset-inline-end:0;
  z-index:121;
  display:grid;
  gap:4px;
  min-width:184px;
  max-width:calc(100vw - 24px);
  padding:6px;
  overflow:hidden;
  border:1px solid var(--ns-border,var(--line));
  border-radius:14px;
  background:var(--ns-surface,var(--surface));
  box-shadow:var(--ns-shadow-md,0 20px 45px rgba(15,23,42,.16));
}
.topbar-lang-menu[open] .topbar-lang-options a,
.topbar-lang-menu .topbar-lang-options a{
  position:static!important;
  inset:auto!important;
  min-width:0!important;
  min-height:42px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 11px;
  border:0!important;
  border-radius:10px!important;
  background:transparent!important;
  color:var(--ns-text,var(--text));
  box-shadow:none!important;
  font-weight:700;
  line-height:1.35;
  white-space:nowrap;
}
.topbar-lang-menu .topbar-lang-options a:hover,
.topbar-lang-menu .topbar-lang-options a:focus-visible{
  outline:0;
  background:var(--ns-primary-soft,var(--primary-soft))!important;
  color:var(--ns-primary-active,var(--primary-2));
}
.topbar-lang-menu .topbar-lang-options a.is-current{
  background:var(--ns-primary-soft,var(--primary-soft))!important;
  color:var(--ns-primary-active,var(--primary-2));
  font-weight:900;
}
.topbar-lang-check{font-size:.9rem;line-height:1;color:var(--ns-primary,var(--primary))}
body.dark .topbar-lang-menu .topbar-lang-options{
  background:var(--ns-surface,#0f172a);
  border-color:var(--ns-border,var(--line));
}

.drawer-language-switcher{margin:0 0 12px;padding:0 0 12px;border-bottom:1px solid var(--ns-border,var(--line))}
.drawer-language-title{margin:0 8px 8px!important}
.drawer-language-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 2px}
.drawer-language-link{
  min-width:0;
  min-height:42px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:9px 11px;
  border:1px solid var(--ns-border,var(--line));
  border-radius:11px;
  background:var(--ns-surface-subtle,var(--surface-2));
  color:var(--ns-text-secondary,var(--text));
  font-size:.86rem;
  font-weight:800;
}
.drawer-language-link:hover,.drawer-language-link:focus-visible,.drawer-language-link.is-current{
  border-color:color-mix(in srgb,var(--ns-primary,var(--primary)) 38%,var(--ns-border,var(--line)));
  background:var(--ns-primary-soft,var(--primary-soft));
  color:var(--ns-primary-active,var(--primary-2));
  outline:0;
}
@media(max-width:360px){.drawer-language-grid{grid-template-columns:1fr}}
@media(max-width:480px){.topbar-lang-menu{display:none}}

/* NanoStudent 5.5 profile/search/payment finishing rules */
.profile-publish-options{transition:opacity .18s ease,filter .18s ease}
.profile-publish-options.is-disabled{opacity:.56;filter:saturate(.65)}
.profile-publish-options.is-disabled .switch-line{cursor:not-allowed}
.profile-publish-options.is-disabled input,.profile-publish-options.is-disabled select,.profile-publish-options.is-disabled textarea{cursor:not-allowed}
.profile-publish-options-note.is-warning{border-inline-start:4px solid var(--ns-warning,#d97706)}
.profile-publish-options-note.is-active{border-inline-start:4px solid var(--ns-success,#15803d)}
.public-profile-preview-notice{border-inline-start:4px solid var(--ns-primary);background:color-mix(in srgb,var(--ns-primary) 7%,var(--ns-surface))}
.directory-filter-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.directory-pagination{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
.directory-pagination .is-disabled{opacity:.45;pointer-events:none}
.directory-result-context{margin-top:5px!important;padding:6px 8px;border-radius:8px;background:var(--ns-primary-soft);color:var(--ns-primary-active)!important;font-weight:750}
.ns-copy-row{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}.ns-copy-row a{min-width:0}.ns-copy-row code{display:block;max-width:min(100%,680px);overflow-wrap:anywhere;word-break:break-word;white-space:normal}
.break-anywhere{overflow-wrap:anywhere;word-break:break-word}
.payment-review-form{min-width:min(540px,75vw)}
[data-paid-fields][hidden]{display:none!important}
.admin-filter-bar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(160px,.45fr) auto;gap:12px;align-items:end}
.admin-filter-bar .grow{min-width:0}
.subscription-review-details>summary{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.subscription-review-details[open]>summary{margin-bottom:14px}
.responsive-table td>small,.responsive-table td>code{display:block;margin-top:4px}
.responsive-table details{max-width:100%}
@media(max-width:780px){
  .directory-filter-row{grid-template-columns:1fr}
  .directory-pagination{display:grid;grid-template-columns:1fr;text-align:center}.directory-pagination a{width:100%;justify-content:center}
  .payment-review-form{min-width:0;width:100%}
  .ns-copy-row{display:grid;grid-template-columns:1fr}.ns-copy-row button{width:100%;justify-content:center}
  .admin-filter-bar{grid-template-columns:1fr}.admin-filter-bar button,.admin-filter-bar a{width:100%;justify-content:center}
  .responsive-table td .inline-actions,.responsive-table td .toolbar{display:grid;grid-template-columns:1fr}.responsive-table td .inline-actions>*{width:100%;justify-content:center}
}

/* NanoStudent 5.7.0: keep the mobile top bar usable; credits remain available in the side drawer. */
@media(max-width:480px){
  .topbar-actions .credit-chip,.compact-topbar-actions .credit-chip{display:none!important}
}

/* NanoStudent 5.7 manual exam builder */
.question-builder-shell{overflow:visible}
.question-builder-main-head{align-items:flex-start;gap:18px}
.question-builder-count{display:inline-flex;align-items:baseline;gap:4px;padding:9px 13px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);white-space:nowrap}
.question-builder-count strong{font-size:1.05rem}
.question-builder-row-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.question-builder-row-title{font-size:1.05rem;margin:0}
.question-item [data-manual-options-field].is-optional{opacity:.82}
.question-item [data-manual-question-help]{margin:0;padding-top:4px}
@media (max-width:680px){.question-builder-row-head{align-items:flex-start;flex-direction:column}.question-builder-row-head .danger-btn{width:100%}.question-builder-main-head{flex-direction:column}.question-builder-count{align-self:flex-start}}
