/* ============================================================
   MedFlow — design system (glass, dark/light, RTL/LTR aware)
   ============================================================ */
:root{
  --accent:#1769e8; --accent-2:#21b8a6; --accent-dark:#0a3e91;
  --good:#14a885; --bad:#dc4161; --gold:#e7a72d; --info:#2196d7;
  --accent-soft:rgba(23,105,232,.11); --accent-line:rgba(23,105,232,.35);
  --good-soft:rgba(20,168,133,.11); --bad-soft:rgba(220,65,97,.10); --gold-soft:rgba(231,167,45,.12);
  --r-lg:20px; --r-md:15px; --r-sm:10px;
  --f-head:'Sora','Cairo',sans-serif; --f-body:'Inter','Tajawal',sans-serif; --f-mono:'JetBrains Mono',monospace;
}
html[lang="ar"]{ --f-head:'Cairo','Sora',sans-serif; --f-body:'Tajawal','Inter',sans-serif; }
[data-theme="dark"]{
  --bg:#07111f; --bg-2:#0a1728; --panel:rgba(255,255,255,.055); --panel-2:rgba(255,255,255,.095);
  --panel-solid:#0e1c2e; --border:rgba(182,211,241,.13); --border-soft:rgba(182,211,241,.07);
  --txt-hi:#f4f8fd; --txt-lo:#a3b5c9; --txt-dim:#6f849b;
  --node-bg:#102033; --flow-line:rgba(182,211,241,.16); --dot:#26394e;
  --shadow:0 24px 55px -22px rgba(0,0,0,.55);
  --paper:#f6f2e8; --paper-ink:#232018;
}
[data-theme="dark"] select{color-scheme:dark;background-color:var(--panel-solid);color:var(--txt-hi)}
[data-theme="dark"] select option,[data-theme="dark"] select optgroup{background:#0e1c2e;color:#f4f8fd}
[data-theme="light"]{
  --bg:#f2f6fb; --bg-2:#eaf1f8; --panel:rgba(255,255,255,.78); --panel-2:rgba(255,255,255,.98);
  --panel-solid:#ffffff; --border:rgba(15,54,92,.11); --border-soft:rgba(15,54,92,.065);
  --txt-hi:#102942; --txt-lo:#60778e; --txt-dim:#91a3b4;
  --node-bg:#ffffff; --flow-line:rgba(15,54,92,.16); --dot:#d6e2ed;
  --shadow:0 22px 55px -28px rgba(22,67,111,.3);
  --paper:#fbf8f1; --paper-ink:#26221a;
}
[data-theme="light"] select{color-scheme:light;background-color:var(--panel-solid);color:var(--txt-hi)}
[data-theme="light"] select option,[data-theme="light"] select optgroup{background:#fff;color:#102942}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
/* App-like behaviour: no pinch/double-tap zoom, no pull-to-refresh reloads, no text auto-resize */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;touch-action:manipulation;overscroll-behavior:none;height:100%}
body{
  min-height:100vh; font-family:var(--f-body); background:var(--bg); color:var(--txt-hi);
  transition:background .35s; overflow-x:hidden;
  overscroll-behavior:none; -webkit-overflow-scrolling:touch;
}
/* internal scroll areas contain their overscroll so the page never rubber-bands into a reload */
.page,.chat-scroll,.chat-msgs,.practice-frame,.telegram-conversation,.modal-body,.tbl-wrap{overscroll-behavior:contain}
body::after{
  content:''; position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(680px 460px at 8% 6%, rgba(122,129,220,.16), transparent 60%),
    radial-gradient(560px 420px at 95% 12%, rgba(63,205,176,.10), transparent 60%),
    radial-gradient(600px 460px at 88% 96%, rgba(240,185,85,.08), transparent 60%);
}
h1,h2,h3,h4{font-family:var(--f-head)}
button{font-family:inherit}
input,textarea,select{font-family:inherit}
::-webkit-scrollbar{width:8px;height:8px} ::-webkit-scrollbar-thumb{background:var(--border);border-radius:9px}
.hidden{display:none!important}

/* ---------------- splash ---------------- */
#splash{position:fixed;inset:0;z-index:400;display:flex;flex-direction:column;gap:14px;align-items:center;justify-content:center;background:var(--bg);transition:opacity .45s,visibility .45s}
#splash.hide{opacity:0;visibility:hidden}
.s-logo{width:88px;height:88px;border-radius:28px;display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--f-head);font-weight:800;font-size:34px;background:linear-gradient(140deg,var(--accent),var(--accent-dark));box-shadow:0 22px 55px rgba(122,129,220,.45);animation:pop .6s cubic-bezier(.34,1.56,.64,1)}
.s-logo img{width:100%;height:100%;object-fit:cover;border-radius:28px}
.s-name{font-family:var(--f-head);font-weight:800;font-size:18px;color:var(--txt-hi)}
.s-spin{width:22px;height:22px;border-radius:50%;border:3px solid var(--accent-soft);border-top-color:var(--accent);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pop{0%{transform:scale(.4);opacity:0}100%{transform:scale(1);opacity:1}}
@keyframes fadeUp{0%{transform:translateY(12px);opacity:0}100%{transform:none;opacity:1}}

/* ---------------- auth ---------------- */
#auth{position:relative;z-index:1;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:clamp(14px,4vw,28px)}
.auth-card{width:100%;max-width:430px;background:linear-gradient(165deg,var(--panel-2),var(--panel));border:1px solid var(--border);border-radius:var(--r-lg);padding:clamp(24px,5vw,34px);backdrop-filter:blur(20px);box-shadow:var(--shadow);animation:fadeUp .5s}
.auth-logo{width:64px;height:64px;border-radius:20px;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--f-head);font-weight:800;font-size:26px;background:linear-gradient(140deg,var(--accent),var(--accent-dark));box-shadow:0 14px 34px -10px rgba(122,129,220,.6)}
.auth-logo img{width:100%;height:100%;object-fit:cover;border-radius:20px}
.auth-title{text-align:center;font-size:21px;font-weight:800;margin-bottom:4px}
.auth-sub{text-align:center;color:var(--txt-lo);font-size:13px;margin-bottom:22px}
.auth-tabs{display:flex;background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:4px;margin-bottom:18px}
.auth-tabs button{flex:1;padding:10px;border:none;border-radius:11px;background:transparent;color:var(--txt-lo);font-weight:700;font-size:13.5px;cursor:pointer;transition:.2s}
.auth-tabs button.active{background:linear-gradient(120deg,var(--accent),var(--accent-dark));color:#fff}
.field{margin-bottom:13px}
.field label{display:block;font-size:12px;font-weight:600;color:var(--txt-lo);margin-bottom:6px}
.inp{width:100%;padding:12px 15px;border-radius:13px;border:1.5px solid var(--border);background:var(--panel);color:var(--txt-hi);font-size:14px;outline:none;transition:border-color .2s}
.inp:focus{border-color:var(--accent)}
textarea.inp{resize:vertical;min-height:90px;line-height:1.7}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border:none;border-radius:14px;font-family:var(--f-head);font-weight:700;font-size:14px;cursor:pointer;transition:.18s;color:var(--txt-hi);background:var(--panel-2);border:1.5px solid var(--border)}
.btn:hover{transform:translateY(-1px)}
.btn i{font-size:1.05em;line-height:1}
.icon-btn i{font-size:17px;line-height:1}
.chip i{font-size:1em;line-height:1}
.sec-title i{color:var(--accent-2);font-size:1.05em}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.btn.primary{background:linear-gradient(120deg,var(--accent),var(--accent-dark));color:#fff;border-color:transparent;box-shadow:0 10px 24px -8px rgba(122,129,220,.5)}
.btn.good{background:linear-gradient(120deg,var(--good),#2ba98d);color:#04241c;border-color:transparent}
.btn.danger{background:var(--bad-soft);color:var(--bad);border-color:rgba(232,99,122,.35)}
.btn.ghost{background:transparent}
.btn.sm{padding:8px 13px;font-size:12.5px;border-radius:11px}
.btn.block{width:100%}
.auth-foot{display:flex;justify-content:center;gap:10px;margin-top:18px}

/* ---------------- app shell (AdminLTE-inspired labeled sidebar) ---------------- */
.app{display:flex;height:100dvh;min-height:0;overflow:hidden;position:relative;z-index:1}
.sidebar{
  width:236px;flex-shrink:0;display:flex;flex-direction:column;gap:3px;
  padding:16px 0 14px;position:sticky;top:0;height:100vh;z-index:60;overflow-y:auto;
  background:var(--panel);border-inline-end:1px solid var(--border);backdrop-filter:blur(20px);
}
.brand-row{display:flex;align-items:center;gap:11px;padding:6px 16px 16px;margin-bottom:8px;border-bottom:1px solid var(--border-soft);cursor:pointer}
.brand{width:42px;height:42px;border-radius:13px;flex-shrink:0;background:linear-gradient(145deg,var(--accent),var(--accent-dark));display:flex;align-items:center;justify-content:center;font-family:var(--f-head);font-weight:800;color:#fff;font-size:16px;box-shadow:0 8px 20px -8px var(--accent);overflow:hidden}
.brand img{width:100%;height:100%;object-fit:cover}
.brand-name{font-family:var(--f-head);font-weight:800;font-size:15px;line-height:1.2}
.brand-sub{font-size:10px;color:var(--txt-lo);font-weight:600;margin-top:2px}
.nav-item{display:flex;align-items:center;gap:12px;height:44px;margin:0 12px;padding:0 13px;border-radius:12px;color:var(--txt-lo);cursor:pointer;position:relative;transition:.18s;border:1px solid transparent;font-size:13.5px;font-weight:700;background:transparent}
.nav-item i{font-size:18px;width:22px;text-align:center;flex-shrink:0}
.nav-item .nv{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-item:hover{background:var(--panel-2);color:var(--txt-hi)}
.nav-item.active{background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;box-shadow:0 8px 20px -8px var(--accent)}
.nav-item .tip{display:none;position:absolute;inset-inline-start:64px;top:50%;transform:translateY(-50%);background:var(--panel-solid);color:var(--txt-hi);font-size:12px;font-weight:700;padding:7px 12px;border-radius:9px;white-space:nowrap;border:1px solid var(--border);box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.18s;z-index:70}
.nav-item .bdg{margin-inline-start:auto;min-width:19px;height:19px;border-radius:10px;background:var(--bad);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 5px}
.sidebar-spacer{flex:1}
.sidebar-sep{height:1px;background:var(--border-soft);margin:8px 16px}
/* collapsed sidebar (toggle) */
.sb-toggle{display:none}
@media (min-width:861px){ .sb-toggle{display:flex} }
body.sb-collapsed .sidebar{width:0;min-width:0;padding:0;border:0;overflow:hidden}
body.sb-collapsed .sidebar>*{opacity:0}
.sidebar{transition:width .22s ease}
/* tablet: icon rail */
@media (max-width:1180px){
  .sidebar{width:78px;align-items:stretch}
  .brand-row{justify-content:center;padding:6px 8px 14px}
  .brand-row>div:last-child{display:none}
  .nav-item{justify-content:center;padding:0;margin:0 10px}
  .nav-item .nv,.nav-item .bdg{display:none}
  .nav-item .tip{display:block}
  .nav-item:hover .tip{opacity:1}
}

.main{flex:1;min-width:0;height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.topbar{display:flex;align-items:center;gap:14px;padding:18px clamp(16px,3.5vw,32px);position:sticky;top:0;z-index:30;background:linear-gradient(to bottom,var(--bg) 55%,transparent)}
.tb-title{font-family:var(--f-head);font-weight:800;font-size:clamp(17px,3vw,21px)}
.tb-sub{color:var(--txt-lo);font-size:12px;margin-top:2px}
.tb-spacer{flex:1}
.icon-btn{width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center;background:var(--panel);border:1px solid var(--border);color:var(--txt-lo);cursor:pointer;position:relative;transition:.2s;font-size:17px}
.icon-btn:hover{color:var(--txt-hi);background:var(--panel-2)}
.icon-btn .dot{position:absolute;top:8px;inset-inline-end:9px;width:8px;height:8px;border-radius:50%;background:var(--bad);border:2px solid var(--bg)}
.tb-user{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:6px 13px 6px 8px;cursor:pointer}
.tb-user .av{width:32px;height:32px;border-radius:10px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-size:17px}
.tb-user .nm{font-size:13px;font-weight:700}
.tb-user .rl{font-size:10.5px;color:var(--txt-lo)}

.page{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:6px clamp(16px,3.5vw,32px) 24px;animation:fadeUp .4s;scrollbar-gutter:stable}

/* bottom bar (mobile) */
.bottombar{display:none;position:fixed;bottom:0;inset-inline:0;z-index:80;background:var(--panel-solid);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom));backdrop-filter:blur(20px);justify-content:space-around}
.bb-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 8px;border:none;background:none;color:var(--txt-lo);font-size:19px;cursor:pointer;border-radius:12px;position:relative;min-width:52px}
.bb-item i{font-size:19px;line-height:1}
.bb-item span{font-size:9.5px;font-weight:700;font-family:var(--f-body)}
.bb-item.active{color:var(--accent-2)}
.bb-item .bdg{position:absolute;top:2px;inset-inline-end:6px;min-width:15px;height:15px;border-radius:8px;background:var(--bad);color:#fff;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center}
@media (max-width:860px){
  .sidebar{display:none}
  .bottombar{display:flex}
  .page{padding-bottom:90px}
  /* tighter, app-like top bar on phones */
  .topbar{padding:10px 13px;gap:7px}
  .tb-title{font-size:16px}
  .tb-sub{font-size:10px}
  .tb-user{padding:4px 9px 4px 5px;border-radius:12px}
  .tb-user .av{width:26px;height:26px;font-size:14px;border-radius:8px}
  .tb-user .nm{font-size:11px}
  .tb-user .rl{font-size:9px}
  .icon-btn{width:36px;height:36px}
  .brand{width:34px;height:34px;font-size:13px;border-radius:10px}
  .brand-name{font-size:13px}
  .brand-sub{font-size:10px}
  /* slightly smaller base text density on phones */
  .card .lbl,.stat .lbl{font-size:11px}
}
@media (max-width:520px){
  .tb-title{font-size:15px}
  .tb-user .nm{max-width:78px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .staff-quick-hide #staffQuickCreate{display:none}
}

/* ---------------- generic cards ---------------- */
.card{background:linear-gradient(165deg,var(--panel-2),var(--panel));border:1px solid var(--border);border-radius:var(--r-lg);padding:clamp(16px,3vw,22px);backdrop-filter:blur(16px);position:relative;overflow:hidden}
.card.pad-lg{padding:clamp(20px,4vw,30px)}
.grid{display:grid;gap:14px}
.grid.c2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.grid.c3{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.grid.c4{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.stat{display:flex;align-items:center;gap:13px}
.stat .ico{width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:21px;background:var(--accent-soft);color:var(--accent-2);flex-shrink:0}
.stat .ico i{font-size:21px;line-height:1}
.stat .val{font-family:var(--f-head);font-weight:800;font-size:clamp(18px,3.4vw,23px);line-height:1.1}
.stat .lbl{font-size:11.5px;color:var(--txt-lo);font-weight:600;margin-top:2px}
.stat .wave{position:absolute;inset-inline-start:-15%;bottom:-58%;width:130%;height:80%;background:var(--accent);opacity:.13;border-radius:44%;transform:rotate(-6deg);pointer-events:none}
.sec-title{font-family:var(--f-head);font-weight:800;font-size:15.5px;margin:22px 0 12px;display:flex;align-items:center;gap:8px}
.sec-title .more{margin-inline-start:auto;font-size:12px;color:var(--accent-2);cursor:pointer;font-family:var(--f-body);font-weight:600}
.chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--txt-lo);background:var(--panel-2);border:1px solid var(--border);padding:5px 11px;border-radius:100px;cursor:pointer;transition:.15s}
.chip.on{background:var(--accent-soft);color:var(--accent-2);border-color:var(--accent-line)}
.chip.gold{color:var(--gold);border-color:rgba(240,185,85,.35);background:var(--gold-soft)}
.chip.good{color:var(--good);border-color:rgba(63,205,176,.35);background:var(--good-soft)}
.chip.bad{color:var(--bad);border-color:rgba(232,99,122,.35);background:var(--bad-soft)}
.muted{color:var(--txt-lo);font-size:12.5px;line-height:1.7}
.empty{padding:40px 16px;text-align:center;color:var(--txt-lo);font-size:13.5px}
.empty .big{font-size:38px;margin-bottom:10px}
.mono{font-family:var(--f-mono)}
.progressbar{height:8px;border-radius:5px;background:var(--panel-2);overflow:hidden;border:1px solid var(--border-soft)}
.progressbar>i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .5s}
.badge-live{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--good)}
.badge-live::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--good);animation:pulse 1.6s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(63,205,176,.5)}55%{box-shadow:0 0 0 7px rgba(63,205,176,0)}}

/* ---------------- explorer (iPad style) ---------------- */
.crumbs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:16px;font-size:13px}
.crumbs .cr{padding:7px 13px;border-radius:11px;background:var(--panel);border:1px solid var(--border);color:var(--txt-lo);cursor:pointer;font-weight:600;transition:.15s}
.crumbs .cr:hover,.crumbs .cr.cur{color:var(--txt-hi);border-color:var(--accent-line)}
.crumbs .sep{color:var(--txt-dim)}
.ex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}
@media (min-width:900px){.ex-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px}}
.ex-item{background:linear-gradient(165deg,var(--panel-2),var(--panel));border:1px solid var(--border);border-radius:22px;padding:26px 16px 20px;cursor:pointer;text-align:center;transition:transform .18s,box-shadow .25s,border-color .2s;position:relative;overflow:hidden;min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ex-item:hover{transform:translateY(-4px);border-color:var(--accent-line);box-shadow:var(--shadow)}
.ex-item:active{transform:translateY(-1px) scale(.98)}
.ex-item .fic{width:66px;height:66px;border-radius:19px;display:flex;align-items:center;justify-content:center;margin-bottom:13px;background:color-mix(in srgb,var(--fc,var(--accent)) 15%,transparent);color:var(--fc,var(--accent));flex-shrink:0}
.ex-item .fic i{font-size:32px;line-height:1;filter:drop-shadow(0 6px 12px color-mix(in srgb,var(--fc,var(--accent)) 35%,transparent))}
.ex-item.lesson .fic,.ex-item.topic .fic{width:58px;height:58px;border-radius:17px}
.ex-item.lesson .fic i,.ex-item.topic .fic i{font-size:26px}
.ex-item .nm{font-size:14.5px;font-weight:800;line-height:1.4;word-break:break-word;font-family:var(--f-head)}
.ex-item .ct{font-size:11.5px;color:var(--txt-lo);margin-top:6px;font-weight:600}
.ex-item .lock{position:absolute;top:12px;inset-inline-end:13px;font-size:13px;opacity:.75;color:var(--gold)}
.ex-item .stripe{position:absolute;top:0;inset-inline:0;height:5px;border-radius:0 0 5px 5px}
.ex-item .rowtools{position:absolute;top:9px;inset-inline-start:10px;display:flex;gap:5px;opacity:0;transition:.15s}
.ex-item:hover .rowtools{opacity:1}
.ex-item .rowtools button{width:28px;height:28px;border-radius:9px;border:1px solid var(--border);background:var(--panel-solid);color:var(--txt-lo);cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center}
.ex-item .rowtools button:hover{color:var(--accent-2);border-color:var(--accent-line)}
@media (max-width:520px){.ex-grid{grid-template-columns:repeat(2,1fr);gap:12px}.ex-item{padding:22px 12px 16px;min-height:132px}.ex-item .fic{width:56px;height:56px}.ex-item .fic i{font-size:26px}.ex-item .rowtools{opacity:1}}

/* ---------------- lesson viewer ---------------- */
.lesson-body{font-size:15px;line-height:1.95;color:var(--txt-hi)}
.lesson-body h2{font-size:19px;margin:18px 0 8px}
.lesson-body h3{font-size:16px;margin:14px 0 6px}
.lesson-body p{margin-bottom:10px}
.lesson-body ul{margin:0 0 12px;padding-inline-start:22px}
.lesson-body li{margin-bottom:5px}
.lesson-body blockquote{border-inline-start:3px solid var(--gold);background:var(--gold-soft);border-radius:10px;padding:10px 14px;margin:12px 0;font-size:13.5px}
.lesson-body strong{color:var(--accent-2)}
.lesson-body code{font-family:var(--f-mono);font-size:12.5px;background:var(--panel-2);border-radius:6px;padding:2px 7px}
.md-table-wrap{width:100%;overflow-x:auto;margin:14px 0;border:1px solid var(--border);border-radius:14px;background:var(--panel-solid);direction:ltr}
.md-table{width:max-content;min-width:100%;border-collapse:collapse;text-align:start;font-size:12px;direction:ltr}
.md-table th,.md-table td{padding:11px 13px;border-bottom:1px solid var(--border);border-inline-end:1px solid var(--border)}
.md-table th{background:linear-gradient(120deg,var(--accent-soft),var(--good-soft));color:var(--txt-hi);font-family:var(--f-head);font-weight:850}
.md-table tr:last-child td{border-bottom:0}.md-table th:last-child,.md-table td:last-child{border-inline-end:0}.md-table td{unicode-bidi:plaintext}
.lesson-html{font-size:14.5px;line-height:1.9;color:var(--txt-hi)}
.lesson-html img,.lesson-html iframe,.lesson-html video,.lesson-html table{max-width:100%}
.lesson-html h1,.lesson-html h2,.lesson-html h3{font-family:var(--f-head);margin:14px 0 8px}
.lesson-html table{border-collapse:collapse;width:100%;margin:10px 0}
.lesson-html th,.lesson-html td{border:1px solid var(--border);padding:7px 10px;text-align:start}
.lesson-html a{color:var(--accent-2)}
.lesson-frame{width:100%;min-height:min(70vh,560px);border:1px solid var(--border);border-radius:14px;background:#fff;display:block}

/* ---------------- notes ---------------- */
.note-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:1px solid var(--border);background:var(--panel);cursor:pointer;transition:.15s;margin-bottom:9px}
.note-row:hover{border-color:var(--accent-line)}
.note-row .ic{width:36px;height:36px;border-radius:11px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.note-row .ti{font-size:13.5px;font-weight:700}
.note-row .mt{font-size:11px;color:var(--txt-lo);margin-top:2px}
.draw-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.draw-tools .sw{width:26px;height:26px;border-radius:50%;cursor:pointer;border:2.5px solid transparent}
.draw-tools .sw.on{border-color:var(--txt-hi)}
#drawCanvas{width:100%;border-radius:16px;border:1.5px solid var(--border);background:var(--panel-solid);touch-action:none;cursor:crosshair}

/* ---------------- question card ---------------- */
.qcard{max-width:640px;margin:0 auto}
.q-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}
.q-tag{font-family:var(--f-head);font-weight:700;font-size:11px;padding:6px 13px;border-radius:100px;background:var(--accent-soft);color:var(--accent-2);white-space:nowrap}
.q-num{font-family:var(--f-mono);font-weight:700;font-size:12px;color:var(--txt-lo)}
.q-meta{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:15px}
.q-stem{font-family:var(--f-head);font-size:clamp(15px,3.6vw,16.5px);font-weight:700;line-height:1.8;margin-bottom:18px}
/* MCQ/EMQ content is authored in English → force LTR regardless of UI language */
.qcard .q-stem,.qcard .opt .tx,.qcard .emq-sub .st,.qcard .emq-opts .chip{direction:ltr;text-align:left}
.qcard .opt{direction:ltr}
.exam-sheet .q-stem,.exam-sheet .opt .tx{direction:ltr;text-align:left}
.opt{display:flex;align-items:center;gap:12px;padding:12px 15px;border-radius:14px;border:1.5px solid var(--border);background:var(--panel-2);transition:.2s;cursor:pointer;margin-bottom:9px}
.opt:hover{border-color:var(--accent-line)}
.opt .lt{font-family:var(--f-mono);font-weight:700;font-size:12px;color:var(--txt-lo);width:20px;text-align:center;flex-shrink:0}
.opt .tx{font-size:clamp(13px,3.3vw,14px);font-weight:500;line-height:1.6}
.opt.active{border-color:var(--accent);background:var(--accent-soft)}
.opt.correct{border-color:var(--good);background:var(--good-soft)} .opt.correct .lt{color:var(--good)}
.opt.wrong{border-color:var(--bad);background:var(--bad-soft)} .opt.wrong .lt{color:var(--bad)}
.q-expl{border-inline-start:3px solid var(--good);background:var(--good-soft);border-radius:12px;padding:12px 15px;font-size:13.5px;line-height:1.8;margin-top:14px;animation:fadeUp .35s}
.q-actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.q-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:18px}
.emq-opts{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:16px;direction:ltr}
/* nicer MCQ options */
.opt-list{display:flex;flex-direction:column;gap:10px}
.opt{border-radius:15px;border:1.5px solid var(--border);background:var(--panel-2);transition:.18s;position:relative;overflow:hidden}
.opt .lt{width:30px;height:30px;border-radius:9px;background:var(--panel);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:12.5px}
.opt:hover{border-color:var(--accent-line);transform:translateX(0)}
.opt.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 6px 18px -10px var(--accent)}
.opt.active .lt{background:var(--accent);color:#fff;border-color:var(--accent)}
.opt.correct .lt{background:var(--good);color:#04241c;border-color:var(--good)}
.opt.wrong .lt{background:var(--bad);color:#fff;border-color:var(--bad)}
/* OMR toggle */
.omr-switch{width:38px;height:32px;border-radius:10px;border:1px solid var(--border);background:var(--panel-2);color:var(--txt-lo);cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;transition:.15s}
.omr-switch.on{background:var(--accent);color:#fff;border-color:var(--accent)}
/* EMQ — structured */
.emq-panel{border:1.5px solid var(--accent-line);background:var(--accent-soft);border-radius:16px;padding:13px 16px;margin-bottom:16px}
.emq-panel-h{font-family:var(--f-head);font-weight:800;font-size:12.5px;color:var(--accent-2);margin-bottom:9px;display:flex;align-items:center;gap:7px}
.emq-optlist{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px 16px}
.emq-optrow{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:600;direction:ltr;text-align:left}
.emq-optrow .lt{width:24px;height:24px;flex-shrink:0;border-radius:7px;background:var(--panel-solid);border:1px solid var(--accent-line);display:flex;align-items:center;justify-content:center;font-family:var(--f-mono);font-weight:700;font-size:11.5px;color:var(--accent-2)}
.emq-cases{display:flex;flex-direction:column;gap:11px}
.emq-sub{border:1.5px solid var(--border);border-radius:14px;padding:13px 15px;background:var(--panel-2)}
.emq-sub .st{font-size:13.5px;font-weight:600;line-height:1.7;margin-bottom:11px;direction:ltr;text-align:left;display:flex;gap:9px;align-items:flex-start}
.emq-sub .st .cn{width:24px;height:24px;flex-shrink:0;border-radius:8px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--f-mono);font-weight:700;font-size:12px}
.emq-pick{display:flex;flex-wrap:wrap;gap:7px;padding-inline-start:33px}
.emq-pick .pk{width:36px;height:36px;border-radius:10px;border:1.5px solid var(--border);background:var(--panel);font-family:var(--f-mono);font-weight:700;font-size:12.5px;color:var(--txt-lo);cursor:pointer;transition:.15s}
.emq-pick .pk:hover{border-color:var(--accent-line)}
.emq-pick .pk.on{border-color:var(--accent);color:#fff;background:var(--accent)}
.emq-pick .pk.correct{border-color:var(--good);color:#04241c;background:var(--good)}
.emq-pick .pk.wrong{border-color:var(--bad);color:#fff;background:var(--bad)}

/* ---------------- OMR bubbles ---------------- */
.omr-strip{position:relative;overflow:hidden;background:var(--panel-2);border:1px solid var(--border);border-radius:16px;padding:15px 16px 13px;margin-bottom:15px}
.omr-row{display:flex;align-items:center;gap:10px}
.omr-qid{font-family:var(--f-mono);font-weight:700;font-size:12.5px;color:var(--txt-lo);width:26px;flex-shrink:0}
.bubble-row{display:flex;gap:clamp(6px,2vw,12px);flex:1;justify-content:space-around}
.bubble-unit{display:flex;flex-direction:column;align-items:center;gap:5px}
.bubble{width:clamp(26px,7vw,30px);height:clamp(30px,8vw,35px);border-radius:50%;border:2px solid var(--txt-lo);cursor:pointer;transition:.15s;background:transparent}
.bubble:hover{border-color:var(--accent)}
.bubble.selected{background:var(--txt-hi);border-color:var(--txt-hi)}
.bubble.correct{background:var(--good);border-color:var(--good)}
.bubble.wrong{background:var(--bad);border-color:var(--bad)}
.blabel{font-family:var(--f-mono);font-weight:700;font-size:10.5px;color:var(--txt-lo)}

/* ---------------- exam runner ---------------- */
.exam-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.exam-timer{font-family:var(--f-mono);font-weight:700;font-size:19px;padding:9px 16px;border-radius:14px;background:var(--panel-2);border:1px solid var(--border)}
.exam-timer.low{color:var(--bad);border-color:var(--bad);animation:pulse 1.4s infinite}
.qmap{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0}
.qmap .qm{width:34px;height:34px;border-radius:10px;border:1.5px solid var(--border);background:var(--panel);font-family:var(--f-mono);font-size:11.5px;font-weight:700;color:var(--txt-lo);cursor:pointer;transition:.15s;position:relative}
.qmap .qm.answered{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-2)}
.qmap .qm.cur{border-color:var(--accent);color:#fff;background:var(--accent)}
.qmap .qm.flagged::after{content:'🚩';position:absolute;top:-7px;inset-inline-end:-5px;font-size:9px}
.qmap .qm.correct{background:var(--good-soft);border-color:var(--good);color:var(--good)}
.qmap .qm.wrong{background:var(--bad-soft);border-color:var(--bad);color:var(--bad)}
.result-ring{width:150px;height:150px;margin:0 auto 14px;position:relative}
.result-ring svg{transform:rotate(-90deg)}
.result-ring .pct{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--f-head);font-weight:800;font-size:28px}
.result-ring .pct small{font-size:11px;color:var(--txt-lo);font-weight:600}

/* exam theme: ministry paper */
.theme-ministry .exam-sheet{background:var(--paper);color:var(--paper-ink);border-radius:14px;padding:clamp(18px,4vw,32px);font-family:Georgia,'Times New Roman',serif;box-shadow:var(--shadow)}
.theme-ministry .exam-sheet .q-stem{font-family:inherit;color:var(--paper-ink)}
.theme-ministry .exam-sheet .opt{background:transparent;border:none;border-radius:8px;padding:7px 10px;margin-bottom:2px}
.theme-ministry .exam-sheet .opt:hover{background:rgba(0,0,0,.05)}
.theme-ministry .exam-sheet .opt .tx{color:var(--paper-ink)}
.theme-ministry .exam-sheet .opt .lt{color:#7a6f57}
.theme-ministry .exam-sheet .opt.active{background:rgba(45,60,130,.12);outline:1.5px solid rgba(45,60,130,.5)}
.theme-ministry .exam-sheet .paper-head{text-align:center;border-bottom:2px solid var(--paper-ink);padding-bottom:12px;margin-bottom:18px}
.theme-ministry .exam-sheet .paper-head h3{font-size:17px;letter-spacing:.4px}
.theme-ministry .exam-sheet .paper-head .mt{font-size:11.5px;color:#7a6f57;margin-top:4px}
/* exam theme: moodle */
.theme-moodle .exam-sheet{background:var(--panel-solid);border:1px solid var(--border);border-radius:6px;padding:20px}
.theme-moodle .exam-sheet .q-stem{font-weight:600;font-family:var(--f-body)}
.theme-moodle .exam-sheet .opt{border-radius:4px;margin-bottom:4px;background:transparent}
.theme-moodle .moodle-info{background:#e7f3f8;color:#1f5b73;border-radius:4px;padding:9px 13px;font-size:12.5px;margin-bottom:12px;font-weight:600}
[data-theme="dark"] .theme-moodle .moodle-info{background:rgba(95,176,232,.14);color:#9fd3f0}

/* ---------------- pomodoro ---------------- */
.pomo-wrap{display:flex;flex-direction:column;align-items:center;gap:16px;padding:10px 0}
.pomo-ring{width:min(230px,64vw);height:min(230px,64vw);position:relative}
.pomo-ring svg{transform:rotate(-90deg);width:100%;height:100%}
.pomo-time{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--f-mono);font-weight:700;font-size:clamp(34px,9vw,44px)}
.pomo-time small{font-size:12px;color:var(--txt-lo);font-family:var(--f-body);font-weight:600}
.pomo-modes{display:flex;gap:8px}
.sched-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;min-width:640px}
.sched-day{font-size:11px;font-weight:700;color:var(--txt-lo);text-align:center;padding:6px 0}
.sched-col{background:var(--panel);border:1px solid var(--border-soft);border-radius:12px;min-height:300px;position:relative;padding:4px}
.sched-block{border-radius:9px;padding:5px 7px;font-size:10.5px;font-weight:700;margin-bottom:4px;cursor:pointer;background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--accent-2);line-height:1.35}
.sched-block .tm{font-size:9px;opacity:.8;font-family:var(--f-mono)}
.lead-row{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:14px;border:1px solid var(--border-soft);background:var(--panel);margin-bottom:8px}
.lead-row .rk{font-family:var(--f-mono);font-weight:700;width:26px;text-align:center;color:var(--txt-lo);font-size:13px}
.lead-row.top1 .rk{color:var(--gold)} .lead-row.top2 .rk{color:#c8cbe0} .lead-row.top3 .rk{color:#d99a5b}
.lead-row .av{width:34px;height:34px;border-radius:11px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-size:17px}
.lead-row .nm{font-size:13px;font-weight:700}
.lead-row .sub{font-size:10.5px;color:var(--txt-lo)}
.lead-row .val{margin-inline-start:auto;font-family:var(--f-mono);font-weight:700;font-size:13px;color:var(--accent-2)}
.lead-row.me{border-color:var(--accent-line);background:var(--accent-soft)}

/* ---------------- chat ---------------- */
.chat-wrap{display:flex;flex-direction:column;height:calc(100vh - 210px);min-height:380px}
.chat-recipients{display:flex;gap:7px;flex-wrap:wrap;padding-bottom:10px;margin-bottom:8px;border-bottom:1px solid var(--border-soft)}
.av-dot{width:7px;height:7px;border-radius:50%;background:var(--txt-dim);display:inline-block;margin-inline-end:2px}
.av-dot.on{background:var(--good)}
.chat-scroll{flex:1;overflow-y:auto;padding:6px 2px;display:flex;flex-direction:column;gap:10px}
.msg{max-width:78%;padding:11px 15px;border-radius:18px;font-size:13.5px;line-height:1.7;animation:fadeUp .25s}
.msg .who{font-size:10.5px;font-weight:700;color:var(--accent-2);margin-bottom:3px}
.msg .tm{font-size:9.5px;color:var(--txt-dim);margin-top:4px;font-family:var(--f-mono)}
.msg.mine{align-self:flex-end;background:linear-gradient(130deg,var(--accent),var(--accent-dark));color:#fff;border-end-end-radius:6px}
.msg.mine .tm{color:rgba(255,255,255,.6)}
.msg.theirs{align-self:flex-start;background:var(--panel-2);border:1px solid var(--border);border-end-start-radius:6px}
.chat-input{display:flex;gap:9px;padding-top:12px}
.chat-input .inp{flex:1}
.thread-row{display:flex;align-items:center;gap:11px;padding:12px 13px;border-radius:14px;border:1px solid var(--border-soft);background:var(--panel);cursor:pointer;margin-bottom:8px;transition:.15s}
.thread-row:hover{border-color:var(--accent-line)}
.thread-row .unread{margin-inline-start:auto;min-width:20px;height:20px;border-radius:10px;background:var(--bad);color:#fff;font-size:10.5px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 6px}

/* ---------------- modal / toast ---------------- */
.modal-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:rgba(4,4,10,.62);backdrop-filter:blur(6px);padding:clamp(10px,3vw,24px);animation:fadeIn .25s}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal{position:relative;width:min(560px,100%);max-height:92vh;display:flex;flex-direction:column;background:linear-gradient(165deg,var(--panel-2),var(--panel));border:1px solid var(--border);border-radius:22px;overflow:hidden;backdrop-filter:blur(22px);box-shadow:var(--shadow);animation:slideUp .32s cubic-bezier(.2,.8,.2,1)}
.modal.wide{width:min(1100px,100%)}
@keyframes slideUp{from{opacity:0;transform:translateY(22px) scale(.98)}to{opacity:1;transform:none}}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border);background:linear-gradient(120deg,var(--accent-soft),transparent);flex-shrink:0}
.modal-head h2{font-size:16px;font-weight:800}
.modal-head .eyebrow{font-family:var(--f-mono);font-size:9.5px;letter-spacing:1.4px;color:var(--accent);text-transform:uppercase;font-weight:700;display:block}
.modal-close{width:36px;height:36px;border-radius:11px;flex-shrink:0;cursor:pointer;background:var(--panel-2);border:1px solid var(--border);color:var(--txt-hi);display:flex;align-items:center;justify-content:center;font-size:18px;transition:.2s}
.modal-close:hover{background:var(--bad-soft);border-color:var(--bad);color:var(--bad)}
.modal-body{padding:18px 20px;overflow-y:auto}
#toastRoot{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom));inset-inline-start:50%;transform:translateX(-50%);z-index:300;display:flex;flex-direction:column;gap:8px;align-items:center;width:min(420px,92vw)}
html[dir="rtl"] #toastRoot{transform:translateX(50%)}
.toast{width:100%;background:var(--panel-solid);border:1px solid var(--border);border-radius:14px;padding:12px 16px;font-size:13px;font-weight:600;box-shadow:var(--shadow);display:flex;align-items:center;gap:10px;animation:slideUp .3s}
.toast.good{border-color:var(--good)} .toast.bad{border-color:var(--bad)}

/* ---------------- flow modal / react-flow ---------------- */
.flow-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 18px;border-bottom:1px solid var(--border);flex-shrink:0}
.tbtn{font-family:var(--f-head);font-weight:700;font-size:12.5px;padding:8px 14px;border-radius:11px;border:1px solid var(--border);background:var(--panel-2);color:var(--txt-hi);cursor:pointer;transition:.18s;display:flex;align-items:center;gap:6px}
.tbtn:hover{border-color:var(--accent);color:var(--accent-2)}
.tbtn.primary{background:linear-gradient(120deg,var(--accent),var(--accent-dark));color:#fff;border-color:transparent}
.tbtn:disabled{opacity:.4;cursor:not-allowed}
.step-pill{margin-inline-start:auto;font-family:var(--f-mono);font-weight:700;font-size:12px;color:var(--txt-lo);background:var(--panel-2);border:1px solid var(--border);padding:7px 12px;border-radius:100px}
.flow-container{width:100%;height:min(62vh,560px);position:relative}
@media (max-width:640px){.flow-container{height:64vh}}
.react-flow__attribution{display:none}
.react-flow{direction:ltr}
.react-flow__controls{box-shadow:0 4px 18px rgba(0,0,0,.2);border-radius:12px;overflow:hidden;border:1px solid var(--border)}
.react-flow__controls-button{background:var(--node-bg);border-bottom:1px solid var(--border);fill:var(--txt-hi);color:var(--txt-hi)}
.react-flow__node{border:none!important;outline:none!important;background:transparent!important;box-shadow:none!important}
.react-flow__handle{width:8px;height:8px;background:var(--accent);border:2px solid var(--node-bg)}
@keyframes dashflow{to{stroke-dashoffset:-24}}
.rf-edge.flowing .react-flow__edge-path{animation:dashflow 1s linear infinite}
.fnode{border-radius:16px;padding:13px 15px;background:var(--node-bg);border:1px solid var(--border);box-shadow:0 10px 26px -12px rgba(0,0,0,.5);opacity:0;transform:translateY(10px) scale(.94);transition:opacity .5s cubic-bezier(.2,.8,.2,1),transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .3s,border-color .3s;max-width:280px}
.fnode.show{opacity:1;transform:none}
.fnode.activeN{border-color:var(--accent);box-shadow:0 14px 34px -12px var(--accent)}
.fnode .fh{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.fnode .fi{width:24px;height:24px;border-radius:8px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0}
.fnode .ft{font-family:var(--f-head);font-size:9.5px;font-weight:800;letter-spacing:.4px;color:var(--accent-2);text-transform:uppercase}
.fnode h3{font-family:var(--f-head);font-size:13.5px;font-weight:800;line-height:1.5;margin-bottom:3px;color:var(--txt-hi)}
.fnode p{font-size:11px;color:var(--txt-lo);line-height:1.65}
.fnode.k-start{border-color:rgba(122,129,220,.35)}
.fnode.k-concept .fi{background:var(--gold-soft)} .fnode.k-concept .ft{color:var(--gold)} .fnode.k-concept{border-color:rgba(240,185,85,.25)}
.fnode.k-recall{border-color:rgba(63,205,176,.25)} .fnode.k-recall .fi{background:var(--good-soft)} .fnode.k-recall .ft{color:var(--good)}
.fnode.k-decision{border-color:rgba(240,185,85,.4)} .fnode.k-decision .fi{background:var(--gold-soft)} .fnode.k-decision .ft{color:var(--gold)}
.fnode.k-keep{border-color:var(--good)} .fnode.k-keep .fi{background:var(--good-soft);color:var(--good);font-family:var(--f-mono);font-weight:700}
.fnode.k-drop{border-color:rgba(232,99,122,.5)} .fnode.k-drop .fi{background:var(--bad-soft);color:var(--bad);font-family:var(--f-mono);font-weight:700}
.fnode.k-drop h3{opacity:.7;text-decoration:line-through}
.fnode.k-good{border-color:var(--good)} .fnode.k-good .fi{background:var(--good-soft)} .fnode.k-good .ft{color:var(--good)}
.fnode.k-bad{border-color:var(--bad)} .fnode.k-bad .fi{background:var(--bad-soft)} .fnode.k-bad .ft{color:var(--bad)}
.fnode.k-answer{border-color:var(--good);box-shadow:0 14px 34px -12px var(--good)} .fnode.k-answer .fi{background:var(--good-soft)} .fnode.k-answer .ft{color:var(--good)} .fnode.k-answer h3{color:var(--good)}
.narrate{position:absolute;bottom:0;inset-inline:0;z-index:5;pointer-events:none;padding:14px 18px;background:linear-gradient(0deg,var(--bg) 8%,transparent)}
.narrate .bubble2{pointer-events:auto;max-width:620px;margin:0 auto;background:var(--node-bg);border:1px solid var(--accent-line);border-radius:14px;padding:11px 15px;font-size:13px;line-height:1.7;box-shadow:var(--shadow);display:flex;align-items:flex-start;gap:10px;opacity:0;transform:translateY(8px);transition:.4s}
.narrate .bubble2.show{opacity:1;transform:none}
.legend-mini{display:flex;gap:14px;flex-wrap:wrap;padding:9px 18px;border-top:1px solid var(--border);font-size:10.5px;color:var(--txt-lo);flex-shrink:0}
.legend-mini .lg{display:flex;align-items:center;gap:5px}
.legend-mini .sw{width:9px;height:9px;border-radius:3px}

/* ---------------- practice (v7 iframe) ---------------- */
.practice-wrap{position:relative;width:100%;height:calc(100vh - 96px);border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--border);background:var(--panel-solid);box-shadow:var(--shadow)}
.practice-frame{width:100%;height:100%;border:0;display:block}
@media (max-width:860px){.practice-wrap{height:calc(100vh - 150px);border-radius:16px}}
/* Immersive MedFlow viewer: fills the screen with a floating Exit button */
.practice-exit-fab{position:absolute;top:14px;inset-inline-end:14px;z-index:5;display:none;align-items:center;gap:7px;border:0;border-radius:13px;padding:10px 15px;background:rgba(15,22,40,.85);color:#fff;font:800 12.5px var(--f-body);cursor:pointer;box-shadow:0 12px 28px -12px rgba(0,0,0,.75);backdrop-filter:blur(10px)}
.practice-exit-fab:hover{background:rgba(24,34,60,.95)}
.practice-wrap.immersive{position:fixed;inset:0;z-index:3000;width:100vw;height:100vh;height:100dvh;border-radius:0;border:0}
.practice-wrap.immersive .practice-exit-fab{display:inline-flex}
body.mf-immersive{overflow:hidden}
body.mf-immersive .sidebar,body.mf-immersive .bottombar,body.mf-immersive .topbar{pointer-events:none}

/* ---------------- tables (admin) ---------------- */
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{text-align:start;font-size:11px;color:var(--txt-lo);font-weight:700;padding:9px 10px;border-bottom:1px solid var(--border)}
.tbl td{padding:10px;border-bottom:1px solid var(--border-soft);vertical-align:middle}
.tbl tr:hover td{background:var(--panel)}
.tbl .actions{display:flex;gap:6px;justify-content:flex-end}
.tbl-wrap{overflow-x:auto}
@media(max-width:560px){
  .tbl-wrap:has(>.responsive-cards){overflow:visible}
  .tbl.responsive-cards{display:block;width:100%;min-width:0;background:transparent;border:0}
  .tbl.responsive-cards thead{display:none}
  .tbl.responsive-cards tbody{display:grid;gap:10px}
  .tbl.responsive-cards tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 16px;position:relative;padding:16px;border:1px solid var(--border);border-radius:18px;background:linear-gradient(145deg,var(--panel-2),var(--panel));box-shadow:var(--shadow-sm)}
  .tbl.responsive-cards td{display:flex;min-width:0;padding:0;border:0;align-items:center;justify-content:space-between;gap:8px;text-align:start}
  .tbl.responsive-cards td::before{content:attr(data-label);color:var(--txt-lo);font-size:10px;font-weight:800;flex:0 0 auto}
  .tbl.responsive-cards td:nth-child(1){position:absolute;top:16px;inset-inline-end:16px;width:auto}
  .tbl.responsive-cards td:nth-child(2){grid-column:1/-1;padding-inline-end:34px;padding-bottom:12px;border-bottom:1px solid var(--border-soft)}
  .tbl.responsive-cards td:nth-child(2)::before,.tbl.responsive-cards td:nth-child(1)::before,.tbl.responsive-cards td:last-child::before{display:none}
  .tbl.responsive-cards td:nth-child(2) .code-pill{white-space:nowrap;letter-spacing:.6px;font-size:12px}
  .tbl.responsive-cards td:last-child{position:absolute;bottom:12px;inset-inline-start:12px;width:auto}
  .tbl.responsive-cards td:nth-child(5),.tbl.responsive-cards td:nth-child(6){grid-column:1/-1;padding-inline-start:42px}
}
/* spreadsheet-style question browser */
.qbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.sheet-wrap{border:1px solid var(--border);border-radius:14px;max-height:calc(100vh - 320px);overflow:auto}
.sheet{font-size:12.5px}
.sheet thead th{position:sticky;top:0;background:var(--panel-solid);z-index:2;border-bottom:2px solid var(--border);white-space:nowrap}
.sheet tbody tr{cursor:pointer}
.sheet tbody td{border-inline-end:1px solid var(--border-soft)}
.sheet tbody td:last-child{border-inline-end:none}
.sheet-stem{font-weight:600;line-height:1.5;direction:ltr;text-align:start}
.qtype-badge{font-family:var(--f-mono);font-size:10px;font-weight:700;padding:3px 8px;border-radius:7px}
.qtype-badge.mcq{background:var(--accent-soft);color:var(--accent-2)}
.qtype-badge.emq{background:var(--gold-soft);color:var(--gold)}
.role-pill{font-size:10px;font-weight:800;padding:3px 10px;border-radius:100px;text-transform:uppercase;letter-spacing:.5px}
.role-pill.admin{background:var(--bad-soft);color:var(--bad)}
.role-pill.teacher{background:var(--gold-soft);color:var(--gold)}
.role-pill.student{background:var(--accent-soft);color:var(--accent-2)}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}
.tabs .tab{padding:9px 16px;border-radius:12px;border:1px solid var(--border);background:var(--panel);color:var(--txt-lo);font-weight:700;font-size:12.5px;cursor:pointer;transition:.15s}
.tabs .tab.on{background:linear-gradient(120deg,var(--accent),var(--accent-dark));color:#fff;border-color:transparent}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-grid .full{grid-column:1/-1}
@media (max-width:560px){.form-grid{grid-template-columns:1fr}}
.switch{position:relative;width:44px;height:25px;flex-shrink:0;cursor:pointer}
.switch input{opacity:0;width:0;height:0}
.switch i{position:absolute;inset:0;border-radius:100px;background:var(--panel-2);border:1px solid var(--border);transition:.2s}
.switch i::after{content:'';position:absolute;top:2.5px;inset-inline-start:3px;width:17px;height:17px;border-radius:50%;background:var(--txt-lo);transition:.2s}
.switch input:checked + i{background:var(--accent);border-color:var(--accent)}
.switch input:checked + i::after{background:#fff;transform:translateX(18px)}
html[dir="rtl"] .switch input:checked + i::after{transform:translateX(-18px)}
.code-pill{font-family:var(--f-mono);font-size:12px;font-weight:700;background:var(--panel-2);border:1px dashed var(--accent-line);border-radius:9px;padding:6px 11px;letter-spacing:.5px;cursor:pointer}

/* mini bar chart */
.mini-bars{display:flex;align-items:flex-end;gap:6px;height:90px;padding-top:8px}
.mini-bars .b{flex:1;border-radius:6px 6px 3px 3px;background:linear-gradient(180deg,var(--accent),var(--accent-dark));min-height:4px;position:relative;opacity:.85}
.mini-bars .b span{position:absolute;bottom:-18px;inset-inline:0;text-align:center;font-size:8.5px;color:var(--txt-lo);font-weight:700}

/* ============================================================
   MedFlow 2026 clinical interface — premium visual upgrade
   ============================================================ */
body{background:linear-gradient(135deg,color-mix(in srgb,var(--bg) 96%,#fff),var(--bg));letter-spacing:-.01em}
body::after{opacity:.92;background:linear-gradient(rgba(23,105,232,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(23,105,232,.025) 1px,transparent 1px),radial-gradient(760px 520px at 8% 4%,rgba(23,105,232,.14),transparent 62%),radial-gradient(640px 480px at 94% 8%,rgba(33,184,166,.11),transparent 62%);background-size:34px 34px,34px 34px,auto,auto}

/* Auth */
#auth{isolation:isolate;background:linear-gradient(125deg,rgba(4,37,78,.84),rgba(5,70,111,.67) 45%,rgba(18,152,143,.45))}
#auth::before{content:'';position:absolute;inset:0;z-index:-2;background:radial-gradient(circle at 18% 22%,rgba(83,181,255,.32),transparent 24%),radial-gradient(circle at 78% 82%,rgba(38,218,188,.24),transparent 24%)}
#auth::after{content:'✚';position:absolute;z-index:-1;inset-inline-start:8vw;top:11vh;color:rgba(255,255,255,.055);font:900 min(34vw,420px)/1 var(--f-head);transform:rotate(-8deg)}
.auth-card{max-width:470px;padding:38px 40px;background:rgba(255,255,255,.95);color:#102942;border:1px solid rgba(255,255,255,.72);box-shadow:0 34px 90px -28px rgba(0,21,52,.68);backdrop-filter:blur(30px)}
.auth-card .auth-logo{width:74px;height:74px;border-radius:22px;background:linear-gradient(145deg,#1773ef,#0b4dab 62%,#18a894);box-shadow:0 18px 40px -12px rgba(23,105,232,.6);position:relative}
.auth-card .auth-logo::after{content:'+';position:absolute;inset-inline-end:-5px;bottom:-5px;width:24px;height:24px;border-radius:8px;background:#16a585;color:#fff;border:3px solid #fff;display:grid;place-items:center;font-size:16px;line-height:1}
.auth-card .auth-title{font-size:25px;color:#0d2945;letter-spacing:-.035em}.auth-card .auth-sub{color:#6a7f93;font-size:13.5px}
.auth-card .auth-tabs{background:#edf3f9;border-color:#dbe6f0}.auth-card .auth-tabs button{color:#597187}.auth-card .field label{color:#49647e}.auth-card .inp{background:#f7fafc;border-color:#d9e4ee;color:#132f49;min-height:48px}.auth-card .inp:focus{background:#fff;box-shadow:0 0 0 4px rgba(23,105,232,.09)}
.auth-card .btn:not(.primary){color:#27455f;border-color:#d7e3ed;background:#f6f9fc}.auth-card .auth-foot{padding-top:4px;border-top:1px solid #e7eef4}
.install-btn{margin-top:11px;background:rgba(20,168,133,.09)!important;color:#087761!important;border-color:rgba(20,168,133,.28)!important}.install-hint{margin-top:10px;padding:10px 12px;border-radius:12px;background:#eef7f5;color:#44685f;font-size:11.5px;line-height:1.6;text-align:start}

/* Navigation shell */
.sidebar{background:linear-gradient(180deg,var(--sidebar-brand,#071a31) 0%,color-mix(in srgb,var(--sidebar-brand,#071a31) 78%,#0a4461) 60%,#073d52 130%);border-inline-end:0;box-shadow:10px 0 38px -30px rgba(0,23,52,.85);padding:18px 10px 14px}
.brand-row{padding:5px 7px 19px;margin:0 3px 13px;border-color:rgba(255,255,255,.09)}
.brand{width:45px;height:45px;border-radius:14px;background:linear-gradient(145deg,#2485ff,#1460d4 58%,#1cb49f);box-shadow:0 12px 26px -10px rgba(40,133,255,.7)}
.brand-name{color:#fff;font-size:16px}.brand-sub{color:#94adc4;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-item{margin:2px 3px;height:47px;border-radius:13px;color:#9eb2c8;font-weight:700}.nav-item i{color:#91b9dc}.nav-item:hover{background:rgba(255,255,255,.075);color:#fff}.nav-item:hover i{color:#fff}
.nav-item.active{background:linear-gradient(110deg,#1769e8,#1457bb 68%,#118e91);box-shadow:0 12px 25px -12px rgba(25,117,243,.86);border-color:rgba(255,255,255,.12);color:#fff}.nav-item.active i{color:#fff}.sidebar-sep{background:rgba(255,255,255,.08)}
.topbar{padding-block:19px;background:linear-gradient(to bottom,color-mix(in srgb,var(--bg) 92%,transparent) 64%,transparent);backdrop-filter:blur(7px)}.tb-title{letter-spacing:-.035em}.tb-sub{font-weight:600}.icon-btn{box-shadow:0 8px 22px -17px rgba(8,42,74,.8)}
.tb-user{background:var(--panel-2);box-shadow:0 9px 24px -19px rgba(8,42,74,.8);position:relative}.tb-user .av{background:linear-gradient(140deg,var(--accent-soft),var(--good-soft));border:1px solid var(--border)}
.page{max-width:1540px;width:100%;margin-inline:auto}.bottombar{background:color-mix(in srgb,var(--panel-solid) 94%,transparent);box-shadow:0 -14px 36px -27px rgba(0,30,67,.7)}

/* Cards & actions */
.card{background:linear-gradient(145deg,var(--panel-2),color-mix(in srgb,var(--panel) 92%,transparent));box-shadow:0 17px 44px -34px rgba(12,53,91,.66)}
.card::after{content:'';position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(130deg,rgba(255,255,255,.08),transparent 34%)}
.stat{min-height:104px;padding:18px}.stat .ico{width:48px;height:48px;border-radius:15px;background:linear-gradient(145deg,var(--accent-soft),rgba(33,184,166,.09));border:1px solid color-mix(in srgb,var(--accent) 16%,transparent)}
.stat .val{font-size:25px;letter-spacing:-.045em}.stat .lbl{font-size:11px;line-height:1.55}.stat .wave{height:68%;bottom:-49%;opacity:.09}
.btn{min-height:42px;box-shadow:0 8px 20px -18px rgba(8,45,85,.8)}.btn.primary{background:linear-gradient(115deg,#1769e8,#0e58c5 65%,#118f91);box-shadow:0 13px 28px -13px rgba(23,105,232,.7)}
.btn.good{background:linear-gradient(115deg,#18ad8b,#0e8f76)}.btn:focus-visible,.icon-btn:focus-visible,.nav-item:focus-visible,.qm:focus-visible,.opt:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 35%,transparent);outline-offset:3px}
.sec-title{font-size:16px;letter-spacing:-.02em}.sec-title>i{width:29px;height:29px;border-radius:9px;background:var(--accent-soft);display:grid;place-items:center}.note-row{background:color-mix(in srgb,var(--panel-2) 78%,transparent)}.progressbar{height:9px;background:color-mix(in srgb,var(--bg-2) 70%,transparent)}

/* Dashboard */
.welcome-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:25px;align-items:center;min-height:220px;padding:34px 38px;border-radius:26px;background:radial-gradient(circle at 84% 30%,rgba(79,227,204,.25),transparent 25%),linear-gradient(125deg,#0b3c7f 0%,#1169d0 55%,#0b8e8a 120%);color:#fff;box-shadow:0 28px 60px -28px rgba(11,65,127,.68)}
.welcome-hero::after{content:'+';position:absolute;inset-inline-end:4%;top:-43%;font:900 330px/1 var(--f-head);color:rgba(255,255,255,.055);transform:rotate(10deg)}
.hero-kicker{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border-radius:100px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);font-size:11px;font-weight:800;margin-bottom:14px}.hero-kicker::before{content:'';width:7px;height:7px;border-radius:50%;background:#64efcb;box-shadow:0 0 0 5px rgba(100,239,203,.13)}
.welcome-hero h1{font-size:clamp(26px,4.5vw,39px);line-height:1.25;letter-spacing:-.05em;margin-bottom:9px;max-width:710px}.welcome-hero p{font-size:14px;line-height:1.8;color:#d7e9f8;max-width:650px}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:21px}.hero-actions .btn{background:#fff;color:#104a8a;border:0}.hero-actions .btn.hero-ghost{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.22)}
.hero-pulse{position:relative;z-index:1;background:rgba(1,28,63,.24);border:1px solid rgba(255,255,255,.16);border-radius:21px;padding:20px;backdrop-filter:blur(8px)}.hero-pulse .pulse-label{font-size:11px;color:#c9e4f7;font-weight:700}.hero-pulse .pulse-value{font:800 35px/1.2 var(--f-head);margin:5px 0}.hero-pulse .pulse-track{height:7px;border-radius:9px;background:rgba(255,255,255,.13);overflow:hidden}.hero-pulse .pulse-track i{display:block;height:100%;width:72%;border-radius:inherit;background:linear-gradient(90deg,#63e8ce,#fff)}
.metric-grid{margin-top:16px}.dashboard-panels{margin-top:16px}

/* Library folders */
.crumbs{padding:7px;background:color-mix(in srgb,var(--panel-2) 66%,transparent);border:1px solid var(--border);border-radius:15px;width:max-content;max-width:100%}.crumbs .cr{border:0;background:transparent}.crumbs .cr.cur{background:var(--accent-soft);color:var(--accent)}
.ex-grid{gap:17px}.ex-item{background:var(--panel-2);border-radius:20px;box-shadow:0 16px 35px -30px rgba(12,53,91,.75)}.ex-item::before{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(150deg,color-mix(in srgb,var(--fc,var(--accent)) 7%,transparent),transparent 46%);pointer-events:none}.ex-item .fic{border:1px solid color-mix(in srgb,var(--fc,var(--accent)) 18%,transparent)}

/* Digital Ministerial exam */
.theme-ministry{max-width:1240px;margin-inline:auto;position:relative}.theme-ministry .exam-head{position:sticky;top:82px;z-index:24;padding:10px 12px;border-radius:16px;background:rgba(255,255,255,.94);border:1px solid #d9e5ef;box-shadow:0 18px 38px -29px #073565;color:#15334d;backdrop-filter:blur(18px)}
.theme-ministry .exam-timer{background:#0c4f9f;color:#fff;border:0;padding:10px 15px}.theme-ministry .exam-timer.low{background:#bd2947}.save-state{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;color:var(--txt-lo);padding:6px 9px;border-radius:9px;background:var(--panel)}.save-state.saving{color:var(--gold)}.save-state.saved{color:var(--good)}.save-state.offline,.save-state.failed{color:var(--bad)}
.ministry-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;align-items:start;margin-top:17px}.theme-ministry .qcard{margin:0}.theme-ministry .exam-sheet{position:relative;background:#fff;color:#172b3e;border:1px solid #cfdae5;border-top:5px solid #1769e8;border-radius:17px;padding:0;box-shadow:0 24px 55px -35px rgba(7,45,83,.55);overflow:hidden;min-height:520px}
.theme-ministry .paper-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 22px;background:#f7fafc;border-bottom:1px solid #e0e8f0}.theme-ministry .paper-head h3{font-size:13px;color:#48637b}.theme-ministry .paper-head .mt{font:800 12px var(--f-mono);color:#1769e8;background:#eaf3ff;border-radius:9px;padding:7px 10px}
.ministry-question-body{padding:28px clamp(18px,4vw,38px) 32px}.question-number-badge{display:inline-flex;align-items:center;gap:7px;border-radius:10px;background:#e9f3ff;color:#1056aa;padding:7px 11px;font:800 12px var(--f-head);margin-bottom:17px}
.theme-ministry .q-stem{font-family:var(--f-body);font-size:clamp(17px,2.3vw,21px);font-weight:700;line-height:1.85;color:#112d46;margin-bottom:23px;unicode-bidi:plaintext}.theme-ministry .q-stem[dir="ltr"]{text-align:left;direction:ltr}.question-content-scope{line-height:1.85}.question-content-scope img,.question-media img{max-width:100%;height:auto;border-radius:13px;border:1px solid #dbe5ed}.question-media{display:grid;gap:10px;margin:13px 0}.question-media figcaption{font-size:11px;color:#657b8f;margin-top:4px}
.theme-ministry .opt{display:grid;grid-template-columns:57px minmax(0,1fr);padding:0;margin-bottom:11px;border:1.5px solid #d7e1eb;border-radius:13px;background:#fff;min-height:62px;overflow:hidden;box-shadow:none;color:#19344c;transition:border .16s,background .16s,transform .16s}.theme-ministry .opt:hover{border-color:#77a9e7;background:#f8fbff;transform:translateY(-1px)}.theme-ministry .opt .lt{width:auto;height:auto;border-radius:0;border:0;border-inline-end:1px solid #d7e1eb;background:#f2f6fa;color:#3f5d76;font:800 15px var(--f-head);display:grid;place-items:center}.theme-ministry .opt .tx{padding:15px 17px;line-height:1.75;text-align:start;direction:ltr;unicode-bidi:plaintext}.theme-ministry .opt.active{border-color:#1769e8;background:#eef6ff;box-shadow:0 0 0 3px rgba(23,105,232,.08)}.theme-ministry .opt.active .lt{background:#1769e8;color:#fff;border-color:#1769e8}
.exam-side-panel{position:sticky;top:155px;background:var(--panel-2);border:1px solid var(--border);border-radius:18px;padding:17px;box-shadow:0 17px 40px -33px rgba(7,45,83,.65)}.exam-side-title{display:flex;align-items:center;justify-content:space-between;font:800 13px var(--f-head);margin-bottom:12px}.exam-side-title small{font:600 10px var(--f-body);color:var(--txt-lo)}
.theme-ministry .qmap{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:0;max-height:330px;overflow:auto;padding:3px}.theme-ministry .qm{width:auto;height:37px;border-radius:9px;font-size:11px;border:1.5px solid var(--border);background:var(--panel);position:relative}.theme-ministry .qm.answered{background:var(--good-soft);color:var(--good);border-color:rgba(20,168,133,.38)}.theme-ministry .qm.visited:not(.answered){background:var(--gold-soft);color:var(--gold);border-color:rgba(231,167,45,.36)}.theme-ministry .qm.flagged::after{content:'•';position:absolute;top:-7px;inset-inline-end:-3px;color:var(--bad);font-size:20px}.theme-ministry .qm.cur{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 5px 13px -6px var(--accent)}
.exam-legend{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px;padding-top:13px;border-top:1px solid var(--border)}.legend-item{display:flex;align-items:center;gap:6px;font-size:9.5px;color:var(--txt-lo);font-weight:700}.legend-item i{width:11px;height:11px;border-radius:3px;background:var(--panel);border:1px solid var(--border)}.legend-item .lg-current{background:var(--accent)}.legend-item .lg-answered{background:var(--good-soft);border-color:var(--good)}.legend-item .lg-visited{background:var(--gold-soft);border-color:var(--gold)}.legend-item .lg-flagged{background:var(--bad-soft);border-color:var(--bad)}
.theme-ministry .q-nav{margin-top:14px;padding:12px;background:var(--panel-2);border:1px solid var(--border);border-radius:16px}.theme-ministry .q-nav .btn{min-width:118px}.theme-ministry .q-nav .next-primary{background:linear-gradient(115deg,#1769e8,#0d55be);color:#fff;border-color:transparent;margin-inline-start:auto}
.result-ring[style]{border-radius:50%;background:conic-gradient(var(--result-color,var(--accent)) var(--result,0deg),var(--panel-2) 0);box-shadow:inset 0 0 0 1px var(--border)}.result-ring[style]::before{content:'';position:absolute;inset:12px;border-radius:50%;background:var(--panel-solid);box-shadow:inset 0 0 0 1px var(--border)}
.question-notes{display:grid;gap:8px;margin-top:18px}.question-note{padding:12px 14px;border-radius:11px;border-inline-start:4px solid var(--note-color,var(--gold));background:color-mix(in srgb,var(--note-color,var(--gold)) 8%,#fff);font-size:12.5px;line-height:1.7}.question-note strong{display:block;margin-bottom:3px}.q-expl,.explanation-ltr{direction:ltr!important;text-align:left!important;unicode-bidi:plaintext!important}

/* Rich chat */
.chat-wrap{max-width:1040px;margin-inline:auto;padding:0;min-height:650px;display:flex;flex-direction:column}.chat-recipients{padding:14px 17px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--panel-2) 72%,transparent)}.chat-msgs{padding:20px;flex:1;background:radial-gradient(circle at 20% 10%,var(--accent-soft),transparent 28%)}
.msg{max-width:min(76%,650px);border-radius:17px!important;padding:11px 14px!important;box-shadow:0 10px 25px -23px rgba(0,32,71,.8)}.msg.mine{background:linear-gradient(135deg,#1769e8,#0f58c2)!important;color:#fff!important;border-bottom-inline-end-radius:5px!important}.msg:not(.mine){border-bottom-inline-start-radius:5px!important}.message-state{font-size:9px;opacity:.7;margin-top:5px}
.chat-compose{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:8px;padding:13px;border-top:1px solid var(--border);background:var(--panel-2);position:sticky;bottom:0}.chat-compose textarea{min-height:46px;max-height:130px}.recording-pill{display:flex;align-items:center;gap:8px;color:var(--bad);font-size:12px;font-weight:800}.recording-pill::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--bad);animation:pulse 1.2s infinite}
.report-card{width:min(100%,620px);background:linear-gradient(145deg,#fff,#f5f9fc);color:#18334d;border:1px solid #d5e2ed;border-radius:19px;overflow:hidden;box-shadow:0 20px 42px -30px rgba(4,49,89,.55)}.report-head{padding:19px 20px;background:linear-gradient(120deg,#0e4d98,#1776db 70%,#118c88);color:#fff;display:flex;align-items:center;gap:12px}.report-head .report-icon{width:44px;height:44px;border-radius:13px;background:rgba(255,255,255,.16);display:grid;place-items:center;font-size:20px}.report-head h3{font-size:15px}.report-head p{font-size:10px;color:#d6e9fa;margin-top:3px}.report-body{padding:18px}.report-score{display:flex;align-items:center;gap:15px;padding-bottom:14px;border-bottom:1px solid #e2eaf1}.score-orb{width:75px;height:75px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#18a98b var(--score),#e7eff5 0);position:relative}.score-orb::before{content:'';position:absolute;inset:7px;border-radius:50%;background:#fff}.score-orb strong{position:relative;font:800 18px var(--f-head)}.report-subject{margin-top:12px}.report-recs{margin-top:14px;padding:13px;border-radius:12px;background:#f2f7fb}.report-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.attachment-card{display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px;background:rgba(255,255,255,.1);border:1px solid var(--border)}.attachment-card audio{max-width:100%}

/* Admin command center */
.admin-hero{display:flex;align-items:center;gap:20px;justify-content:space-between;padding:26px 28px;margin-bottom:15px;border-radius:23px;background:linear-gradient(120deg,#082d5e,#0f5db2 65%,#0b8683);color:#fff;box-shadow:0 23px 48px -28px rgba(7,49,96,.7)}.admin-hero h2{font-size:25px;margin-bottom:5px}.admin-hero p{color:#cae0f3;font-size:12px}.admin-health{display:flex;align-items:center;gap:9px;padding:9px 13px;border-radius:12px;background:rgba(255,255,255,.12);font-size:11px;font-weight:800}.admin-health i{color:#69f0cc}
.admin-chart{height:185px;display:flex;align-items:end;gap:8px;padding-top:15px}.admin-chart .bar{flex:1;min-width:11px;border-radius:7px 7px 3px 3px;background:linear-gradient(to top,#1769e8,#31b8c0);position:relative}.admin-chart .bar span{position:absolute;bottom:-20px;inset-inline:0;text-align:center;font-size:8px;color:var(--txt-lo)}.attention-list .note-row{border-inline-start:3px solid var(--bad)}
.tabs{background:color-mix(in srgb,var(--panel-2) 78%,transparent);border:1px solid var(--border);padding:6px;border-radius:16px;position:sticky;top:84px;z-index:20;backdrop-filter:blur(18px)}.tabs .tab{border-radius:11px}.tabs .tab.on{background:var(--panel-solid);box-shadow:0 8px 20px -18px rgba(0,33,70,.75);color:var(--accent);border-color:var(--border)}.tbl-wrap{background:var(--panel-2);border-radius:17px;box-shadow:0 16px 39px -33px rgba(0,33,70,.7)}

/* Account menu */
.account-menu{position:absolute;top:calc(100% + 10px);inset-inline-end:0;width:260px;padding:9px;border-radius:16px;background:var(--panel-solid);border:1px solid var(--border);box-shadow:var(--shadow);z-index:100}.account-menu-head{padding:12px;border-bottom:1px solid var(--border);margin-bottom:6px}.account-menu button{width:100%;display:flex;align-items:center;gap:10px;padding:11px;border:0;border-radius:10px;background:transparent;color:var(--txt-hi);font:700 12px var(--f-body);cursor:pointer;text-align:start}.account-menu button:hover{background:var(--panel)}.account-menu button.danger{color:var(--bad)}

@media (max-width:1050px){.welcome-hero{grid-template-columns:1fr}.hero-pulse{display:none}.ministry-layout{grid-template-columns:1fr}.exam-side-panel{position:static;order:-1}.theme-ministry .qmap{grid-template-columns:repeat(10,1fr);max-height:150px}}
@media (max-width:860px){.welcome-hero{padding:26px 22px;border-radius:21px;min-height:200px}.theme-ministry .exam-head{top:73px}.theme-ministry .qmap{grid-template-columns:repeat(8,1fr)}.chat-wrap{min-height:calc(100vh - 185px)}}
@media (max-width:620px){.auth-card{padding:28px 22px}.welcome-hero h1{font-size:25px}.hero-actions .btn{flex:1}.theme-ministry .exam-head{position:static}.theme-ministry .qmap{grid-template-columns:repeat(6,1fr)}.theme-ministry .exam-sheet{border-radius:13px}.ministry-question-body{padding:21px 15px 25px}.theme-ministry .opt{grid-template-columns:49px minmax(0,1fr)}.theme-ministry .opt .tx{padding:13px}.theme-ministry .q-nav{display:grid;grid-template-columns:1fr 1fr}.theme-ministry .q-nav .btn{min-width:0}.theme-ministry .q-nav .next-primary{margin:0}.chat-compose{grid-template-columns:auto minmax(0,1fr) auto}.chat-compose .attach-btn{display:none}.msg{max-width:88%}.admin-hero{padding:21px;align-items:flex-start;flex-direction:column}.tabs{top:72px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* ---------------- Online Exam V2 / digital ministry style ---------------- */
.theme-online-v2:not(.qfile-player){direction:ltr;background:#e8eef4;color:#172431;min-height:calc(100vh - 118px);padding-bottom:22px;border-radius:16px;overflow:hidden;font-family:Arial,Helvetica,sans-serif}
.online-exam-top{height:55px;background:#358db9;border-top:3px solid #1c75a3;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 22px;gap:18px}.online-exam-brand,.online-exam-actions{display:flex;align-items:center;gap:10px}.online-exam-brand>b{font-size:16px}.online-exam-brand>span{font-size:12px;opacity:.86;border-inline-start:1px solid rgba(255,255,255,.35);padding-inline-start:13px}.online-exam-actions button{border:0;background:transparent;color:#fff;font:700 12px Arial;cursor:pointer;padding:8px 10px;border-radius:6px}.online-exam-actions button:hover{background:rgba(255,255,255,.13)}
.online-title-row{max-width:1180px;margin:0 auto;padding:20px 18px 14px;display:flex;align-items:center;justify-content:space-between}.online-title-row>div:first-child{display:flex;align-items:baseline;gap:10px}.online-title-row h1{margin:0;font-size:26px;font-weight:400}.online-title-row span{font-size:12px;color:#687581}.online-v2-layout{max-width:1180px;margin:0 auto;padding:0 18px;display:grid;grid-template-columns:260px minmax(0,1fr);gap:28px;align-items:start}
.online-question-nav,.online-exam-panel{background:#fff;border:1px solid #d2dbe2;border-top:3px solid #2b94ce;border-radius:4px;overflow:hidden}.online-question-nav{min-height:590px}.online-panel-title{height:44px;border-bottom:1px solid #e9eef2;padding:10px 12px;display:flex;align-items:center;gap:7px;font-size:15px}.online-panel-title small{margin-inline-start:auto;background:#eaf3f8;color:#2579a6;border-radius:99px;padding:3px 7px;font-size:10px}.online-question-nav .qmap{display:grid;grid-template-columns:repeat(5,1fr);gap:0;padding:12px}.online-question-nav .qmap .qm{width:45px;height:31px;border-radius:3px;margin:-1px 0 0 -1px;background:#fff;color:#344351;border-color:#d3dce3}.online-question-nav .qmap .qm.visited{background:#eef5f8}.online-question-nav .qmap .qm.answered{background:#8ac689;border-color:#65b667;color:#fff}.online-question-nav .qmap .qm.cur{background:#00a65a;border-color:#00a65a;color:#fff;box-shadow:0 0 0 2px rgba(0,166,90,.18)}.online-question-nav .exam-legend{padding:14px;border-top:1px solid #eef2f4;display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:10px}
.online-exam-panel{min-height:590px}.online-exam-panel>.online-panel-title{position:relative}.online-exam-panel .question-badge{background:#0879b8;color:#fff;border-radius:99px;padding:4px 10px;font-size:12px;font-weight:700}.online-exam-panel .exam-timer{margin-inline-start:auto;background:#e54e43;color:#fff;border:0;border-radius:99px;padding:4px 10px;font:700 12px var(--f-mono)}.online-question-body{min-height:480px;padding:38px 13px 55px}.online-question-body .q-top{display:flex;justify-content:space-between;margin-bottom:14px}.online-question-body .q-stem{font:400 17px/1.5 Arial,Helvetica,sans-serif;margin-bottom:18px}.theme-online-v2 .opt{min-height:58px;display:grid;grid-template-columns:44px 1fr;border:1px solid #d1d1d1;border-radius:3px;background:#fff;overflow:hidden;margin-bottom:10px;padding:0}.theme-online-v2 .opt .lt{height:100%;background:#d3d7d8;color:#111;display:grid;place-items:center;font-size:16px}.theme-online-v2 .opt .tx{display:flex;align-items:center;padding:12px;color:#111;font-size:16px}.theme-online-v2 .opt.active{background:#86c486;border-color:#86c486}.theme-online-v2 .opt.active .lt{background:#54bd55;color:#fff}.theme-online-v2 .opt.active .tx{color:#fff;font-weight:700}.online-exam-footer{height:58px;border-top:1px solid #e9eef1;display:flex;align-items:center;justify-content:center;gap:6px}.online-exam-footer .btn{min-height:36px;border-radius:4px;background:#0bafe0;color:#fff;border:0}.online-exam-footer .btn.warning{background:#f6a11c}.online-exam-footer .btn.primary{background:#0bafe0}.online-exam-footer .btn:disabled{opacity:.38}
body[data-theme="dark"] .theme-online-v2{background:#102233;color:#e9f0f5}body[data-theme="dark"] .online-title-row span{color:#a8b8c5}body[data-theme="dark"] .online-question-nav,body[data-theme="dark"] .online-exam-panel{background:#102b42;border-color:#27475e}body[data-theme="dark"] .online-panel-title{border-color:#29475d}body[data-theme="dark"] .online-question-nav .qmap .qm{background:#153148;color:#dfeaf2;border-color:#355269}body[data-theme="dark"] .online-question-nav .qmap .qm.answered{background:#29785e}body[data-theme="dark"] .theme-online-v2 .opt{background:#153148;border-color:#355269}body[data-theme="dark"] .theme-online-v2 .opt .lt{background:#294457;color:#edf4f8}body[data-theme="dark"] .theme-online-v2 .opt .tx{color:#edf4f8}
@media(max-width:900px){.online-v2-layout{grid-template-columns:1fr}.online-question-nav{min-height:auto}.online-question-nav .qmap{grid-template-columns:repeat(10,45px);overflow:auto}.online-exam-brand>span{display:none}.online-title-row{padding-top:14px}.online-question-body{padding:25px 12px 35px}}
@media(max-width:580px){.online-exam-top{padding:0 10px}.online-exam-actions button{font-size:0}.online-exam-actions button i{font-size:16px}.online-v2-layout{padding:0 7px;gap:12px}.online-title-row{padding-inline:8px}.online-question-nav .qmap{grid-template-columns:repeat(6,45px)}.online-question-body .q-stem,.theme-online-v2 .opt .tx{font-size:15px}.online-exam-footer{padding:7px;height:auto;display:grid;grid-template-columns:1fr 1fr 1fr}.online-exam-footer .btn{padding:8px 5px;font-size:11px}}

/* question-file manager */
.qf-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:15px}.qf-toolbar .actions{flex-wrap:wrap;justify-content:flex-end}.qf-card{position:relative}.qf-card.selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.qf-select{position:absolute;inset-inline-start:10px;top:10px;z-index:2}.qf-select input{width:18px;height:18px;accent-color:var(--accent)}
@media(max-width:700px){.qf-toolbar{align-items:flex-start;flex-direction:column}.qf-toolbar .actions{justify-content:flex-start}}

/* ---------------- follow-up, messaging and scheduling ---------------- */
.studying-now-strip{display:flex;align-items:center;gap:18px;margin:14px 0;padding:13px 16px;background:var(--panel);border:1px solid var(--border);border-radius:16px;overflow:hidden}.studying-now-title{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:12px;font-weight:800}.studying-now-title>span{display:flex;align-items:center;gap:7px}.studying-now-title i{width:9px;height:9px;border-radius:50%;background:var(--good);box-shadow:0 0 0 5px var(--good-soft)}.studying-now-title b{background:var(--good-soft);color:var(--good);padding:4px 8px;border-radius:99px}.studying-now-people{display:flex;align-items:center;gap:8px;overflow:auto}.study-person{display:flex;align-items:center;gap:6px;background:var(--panel-2);border:1px solid var(--border);border-radius:99px;padding:5px 10px 5px 6px;white-space:nowrap}.study-person>span{width:27px;height:27px;border-radius:50%;background:var(--good-soft);display:grid;place-items:center}.study-person>b{font-size:10.5px}
.task-check{width:27px;height:27px;flex:0 0 27px;position:relative}.task-check input{position:absolute;opacity:0}.task-check i{width:27px;height:27px;border:2px solid var(--border);border-radius:9px;display:grid;place-items:center;color:transparent;transition:.18s}.task-check input:checked+i{background:var(--good);border-color:var(--good);color:#fff;box-shadow:0 7px 16px -9px var(--good)}.task-complete{color:var(--good)!important;text-decoration:line-through;opacity:.7}.schedule-day-picks{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.schedule-day-picks input{position:absolute;opacity:0}.schedule-day-picks span{display:grid;place-items:center;min-height:42px;border:1px solid var(--border);border-radius:11px;background:var(--panel);font-size:10px;font-weight:800;cursor:pointer}.schedule-day-picks input:checked+span{background:var(--accent);border-color:var(--accent);color:#fff}
.report-builder{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:8px;align-items:end;background:var(--panel-2);border:1px solid var(--border);border-radius:15px;padding:12px;margin-bottom:13px}.report-builder .field{margin:0}.report-folder-picks{display:flex;flex-wrap:wrap;gap:7px}.report-folder-picks input{position:absolute;opacity:0}.report-folder-picks span{display:block;border:1px solid var(--border);border-radius:99px;padding:7px 10px;font-size:10.5px;font-weight:800;cursor:pointer}.report-folder-picks input:checked+span{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}.report-admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.report-admin-actions .btn.primary{flex:1}.btn.warning{background:var(--gold);border-color:var(--gold);color:#fff}
.report-task-list{background:var(--panel-2);border-radius:13px;padding:12px;margin-top:12px}.report-task-list>b{display:block;font-size:12px;margin-bottom:8px}.report-task{display:flex;align-items:center;gap:7px;padding:6px 0;color:var(--txt-lo);font-size:11.5px}.report-task.done{color:var(--good)}.report-task.done span{text-decoration:line-through}.message-rich-card{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;background:rgba(255,255,255,.72);color:#183b55;border:1px solid rgba(19,74,105,.12);border-radius:14px;padding:11px;margin:3px 0}.message-rich-card .rich-card-icon{width:42px;height:42px;border-radius:13px;background:#e2f1f8;color:#176da5;display:grid;place-items:center;font-size:18px}.message-rich-card h4{margin:0 0 3px;font-size:12.5px}.message-rich-card p{margin:0;color:#60798c;font-size:11px;line-height:1.5}.message-rich-card small{color:#7890a2}.task-message-check{width:34px;height:34px;border:1px solid #acd9cb;background:#e1f3ed;color:#138267;border-radius:11px;cursor:pointer}.certificate-message{border-color:#dccb8f;background:#fff9e7}.certificate-message .rich-card-icon{background:#f5e8b8;color:#9d7513}.subscription-message{border-color:#bcd8ea;background:#edf7fc}.penalty-message{border-color:#e7b4b4;background:#fff0f0}.penalty-message .rich-card-icon{background:#f9dada;color:#b33c3c}
.chat-wrap{background-color:#eaf1f2;background-image:radial-gradient(circle at 20px 20px,rgba(32,94,91,.045) 1.5px,transparent 1.5px);background-size:38px 38px}.chat-recipients,.chat-compose{background:color-mix(in srgb,var(--panel-solid) 95%,transparent);backdrop-filter:blur(12px)}.msg{position:relative;border-radius:16px!important;box-shadow:0 8px 22px -20px rgba(7,38,55,.8)}.msg.mine{background:#d7f2e8!important;color:#173f36!important;border-bottom-inline-end-radius:4px!important}.msg.theirs{background:#fff!important;color:#193b53!important;border-bottom-inline-start-radius:4px!important}.msg.mine .tm,.msg.mine .message-state{color:#577d73!important}.msg .who{color:#56768a!important}.msg audio{max-width:260px}
.codes-toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:13px}.code-color{display:inline-block;width:10px;height:10px;border-radius:50%;margin-inline-end:6px}
@media(max-width:760px){.studying-now-strip{align-items:flex-start;flex-direction:column}.report-builder{grid-template-columns:1fr 1fr}.report-builder .btn{grid-column:1/-1}.schedule-day-picks{grid-template-columns:repeat(4,1fr)}}

/* ---------------- public welcome ---------------- */
#auth.is-welcome{display:block;padding:0;background:#edf4f8;color:#102a43;overflow:auto}
#auth.is-welcome::before{background:none}
#auth.is-welcome::after{display:none}
.public-landing{width:100%;max-width:1500px;min-height:100vh;margin:0 auto;padding:0 clamp(18px,4vw,64px);display:flex;flex-direction:column;position:relative}
.public-nav{height:92px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(16,42,67,.1);gap:18px}
.public-brand{border:0;background:transparent;display:flex;align-items:center;gap:11px;color:inherit;padding:0;cursor:pointer;font:inherit}
.public-brand i{width:46px;height:46px;border-radius:14px;background:#1267b5;color:#fff;display:grid;place-items:center;font-style:normal;font:800 19px/1 var(--f-head);box-shadow:0 12px 26px -15px rgba(18,103,181,.85)}
.public-brand i img{width:100%;height:100%;object-fit:cover;border-radius:14px}
.public-brand b{font-family:var(--f-head);font-size:18px;letter-spacing:-.03em}
.public-nav-actions{display:flex;align-items:center;gap:8px}
.public-icon-btn,.public-install{min-height:41px;border:1px solid rgba(16,42,67,.13);border-radius:12px;background:#fff;color:#284b67;padding:0 13px;display:flex;align-items:center;gap:7px;font:700 12.5px var(--f-body);cursor:pointer;transition:transform .18s,border-color .18s,box-shadow .18s}
.public-icon-btn:hover,.public-install:hover{transform:translateY(-2px);border-color:rgba(18,103,181,.35);box-shadow:0 10px 24px -18px rgba(16,55,89,.8)}
.public-install{background:#e0f3ee;color:#08745d;border-color:#b9dfd5;margin:0!important}
.public-hero{flex:1;display:grid;grid-template-columns:minmax(0,.9fr) minmax(520px,1.1fr);align-items:center;gap:clamp(38px,6vw,94px);padding:clamp(48px,7vw,100px) 0 55px}
.public-copy{max-width:650px}
.public-badge{display:inline-flex;align-items:center;gap:9px;color:#0b6a61;background:#dff2ee;border:1px solid #bee3da;border-radius:999px;padding:8px 13px;font-size:12.5px;font-weight:800;margin-bottom:22px}
.public-badge i,.public-flow-head i{width:8px;height:8px;background:#13a18d;border-radius:50%;box-shadow:0 0 0 5px rgba(19,161,141,.12)}
.public-copy h1{margin:0;max-width:680px;color:#0b2944;font-family:var(--f-head);font-size:clamp(39px,5.1vw,72px);line-height:1.08;letter-spacing:-.055em;font-weight:800}
[dir="rtl"] .public-copy h1{letter-spacing:-.035em;line-height:1.24}
.public-copy>p{max-width:610px;margin:23px 0 0;color:#5d7488;font-size:clamp(15px,1.45vw,19px);line-height:1.9;font-weight:500}
.public-cta{display:flex;align-items:center;gap:11px;margin-top:31px;flex-wrap:wrap}
.public-primary,.public-secondary{min-height:52px;border-radius:14px;padding:0 21px;font:800 14px var(--f-body);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:11px;transition:transform .18s,box-shadow .18s}
.public-primary{border:1px solid #1267b5;background:#1267b5;color:#fff;box-shadow:0 16px 30px -18px rgba(18,103,181,.95)}
.public-secondary{border:1px solid #c8d6e1;background:#fff;color:#183c59}
.public-primary:hover,.public-secondary:hover{transform:translateY(-2px);box-shadow:0 16px 28px -20px rgba(10,49,83,.9)}
.public-trust{display:flex;flex-wrap:wrap;gap:18px;margin-top:24px;color:#6c8193;font-size:12px;font-weight:700}
.public-trust span{display:flex;align-items:center;gap:7px}.public-trust i{color:#13947f;font-size:15px}
.public-flow-card{height:510px;background:#fff;border:1px solid #d2e0e9;border-radius:27px;padding:18px;box-shadow:0 35px 75px -46px rgba(7,49,81,.55);position:relative;overflow:hidden}
.public-flow-card::before,.public-flow-card::after{content:'';position:absolute;border:1px solid rgba(18,103,181,.1);border-radius:50%;pointer-events:none}
.public-flow-card::before{width:190px;height:190px;inset-inline-end:-90px;top:-92px}.public-flow-card::after{width:110px;height:110px;inset-inline-start:-55px;bottom:-58px}
.public-flow-head{height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 5px 12px;border-bottom:1px solid #edf2f5;position:relative;z-index:2}
.public-flow-head>span{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:800;color:#264b67}.public-flow-head small{background:#e8f3fb;color:#17629f;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:800}
.public-flow-mount{height:390px;direction:ltr;position:relative;z-index:1}
.welcome-flow .react-flow__pane{cursor:default!important}
.welcome-flow .react-flow__node-default{border:1px solid #c8d9e6!important;border-radius:15px!important;background:#fff!important;color:#21435f!important;min-width:145px!important;min-height:58px!important;padding:12px 15px!important;box-shadow:0 13px 24px -20px rgba(15,61,97,.75)!important;font:800 12px/1.45 var(--f-body)!important;transition:transform .32s,border-color .32s,box-shadow .32s!important}
.welcome-flow .react-flow__node-default::before{content:'';display:block;width:9px;height:9px;border-radius:3px;background:#1768b2;margin:0 auto 7px}
.welcome-flow .react-flow__node-default.kind-clue::before{background:#e29428}.welcome-flow .react-flow__node-default.kind-reasoning::before{background:#765ec7}.welcome-flow .react-flow__node-default.kind-answer::before{background:#13947f}
.welcome-flow .react-flow__node-default.is-active{transform:translateY(-4px) scale(1.035);border-color:#2b83ce!important;box-shadow:0 20px 32px -20px rgba(18,103,181,.75)!important}
.welcome-flow .react-flow__handle{opacity:0}.welcome-flow .react-flow__edge-path{stroke:#75a4c9;stroke-width:2}.welcome-flow .react-flow__edge.is-active .react-flow__edge-path{stroke:#13a18d;stroke-width:3}
.public-flow-caption{height:41px;border-top:1px solid #edf2f5;display:flex;align-items:end;justify-content:center;color:#6d8192;font-size:11.5px;font-weight:700;gap:7px;position:relative;z-index:2}.public-flow-caption i{color:#846cc9}
.public-social{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.public-social:empty{display:none}.public-social a{display:inline-flex;align-items:center;gap:7px;border:1px solid #bdd8e8;background:#edf7fc;color:#17658f;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:800;text-decoration:none}.public-social a:hover{border-color:#2c8cbe}
.public-slides{display:flex;flex-direction:column}.welcome-slide-stage{height:390px;position:relative;z-index:1}.welcome-slide-stage>.public-flow-mount{height:100%}.welcome-custom-frame{width:100%;height:100%;border:0;background:#f5f8fa;border-radius:13px}.welcome-content-slide{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px;background:#f4f9fc;border-radius:14px}.welcome-content-slide>i{width:72px;height:72px;border-radius:22px;background:#dfeff8;color:#1768a7;display:grid;place-items:center;font-size:30px;margin-bottom:19px}.welcome-content-slide h3{font:800 24px var(--f-head);color:#123a58;margin:0 0 10px}.welcome-content-slide p{max-width:470px;color:#647c90;line-height:1.8;margin:0}.welcome-slide-nav{height:41px;border-top:1px solid #edf2f5;display:flex;align-items:end;justify-content:center;gap:13px;position:relative;z-index:2}.welcome-slide-nav>button{width:28px;height:28px;border:1px solid #d7e3eb;border-radius:9px;background:#fff;color:#42617a;cursor:pointer}.welcome-slide-nav>div{display:flex;align-items:center;gap:6px;height:28px}.welcome-slide-nav [data-slide]{width:7px;height:7px;border:0;border-radius:99px;background:#c5d4df;padding:0;cursor:pointer;transition:.2s}.welcome-slide-nav [data-slide].on{width:22px;background:#1670b7}
.public-flow-fallback{height:100%;display:flex;align-items:center;justify-content:center;gap:13px;flex-wrap:wrap}.public-flow-fallback span{padding:15px;border:1px solid #d3e0e8;border-radius:14px;background:#fff;font-size:12px;font-weight:800}.public-flow-fallback b{color:#15917f}
.public-footer{height:62px;border-top:1px solid rgba(16,42,67,.1);display:flex;align-items:center;justify-content:space-between;color:#748899;font-size:11.5px;font-weight:700;gap:20px}
.auth-back{border:0;background:transparent;color:#58728a;display:flex;align-items:center;gap:7px;margin:-8px 0 16px;padding:4px 0;font:700 12px var(--f-body);cursor:pointer}

body[data-theme="dark"] #auth.is-welcome{background:#071a2c;color:#e7f0f7}
body[data-theme="dark"] .public-nav,body[data-theme="dark"] .public-footer{border-color:rgba(255,255,255,.1)}
body[data-theme="dark"] .public-copy h1{color:#f1f7fb}body[data-theme="dark"] .public-copy>p{color:#9bb0c1}
body[data-theme="dark"] .public-icon-btn,body[data-theme="dark"] .public-secondary,body[data-theme="dark"] .public-flow-card{background:#0d263b;color:#dfeaf2;border-color:#1e405a}
body[data-theme="dark"] .public-flow-head{border-color:#1a3850}body[data-theme="dark"] .public-flow-head>span{color:#cee0ec}
body[data-theme="dark"] .welcome-flow .react-flow__node-default{background:#102e46!important;color:#e5eff6!important;border-color:#2a4d66!important}
body[data-theme="dark"] .public-flow-caption{border-color:#1a3850;color:#8fa7b9}
body[data-theme="dark"] .welcome-slide-nav{border-color:#1a3850}body[data-theme="dark"] .welcome-slide-nav>button{background:#16364e;border-color:#2b4b62;color:#dbe7ef}body[data-theme="dark"] .welcome-content-slide{background:#102d44}body[data-theme="dark"] .welcome-content-slide h3{color:#edf5fa}body[data-theme="dark"] .welcome-content-slide p{color:#a5b8c7}
body[data-theme="dark"] .auth-back{color:#5e748a}

@media (max-width:1100px){.public-hero{grid-template-columns:1fr;gap:48px}.public-copy{max-width:780px}.public-flow-card{width:100%;max-width:820px}.public-copy h1{max-width:800px}}
@media (max-width:680px){.public-landing{padding:0 15px}.public-nav{height:74px}.public-brand i{width:40px;height:40px}.public-brand b{font-size:16px}.public-icon-btn{padding:0 11px}.public-icon-btn span,.public-install span{display:none}.public-install{width:41px;padding:0;justify-content:center}.public-hero{padding:42px 0 35px;gap:35px}.public-copy h1{font-size:37px}.public-copy>p{font-size:15px;line-height:1.75}.public-cta{display:grid;grid-template-columns:1fr 1fr}.public-primary,.public-secondary{padding:0 13px}.public-trust{display:grid;gap:9px}.public-flow-card{height:410px;border-radius:21px;padding:13px}.public-flow-mount{height:296px}.welcome-flow .react-flow__node-default{min-width:116px!important;padding:10px!important;font-size:10.5px!important}.public-flow-caption{font-size:10px}.public-footer{height:auto;min-height:72px;align-items:flex-start;justify-content:center;flex-direction:column;gap:3px;padding:15px 0}}
@media (max-width:680px){.welcome-slide-stage{height:296px}}
@media (max-width:430px){.public-copy h1{font-size:32px}.public-cta{grid-template-columns:1fr}.public-flow-card{height:380px}.public-flow-mount{height:267px}}

/* Welcome-page editor in administrator settings */
.welcome-settings-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:18px}.welcome-settings-head p{margin:7px 0 0;font-size:12.5px}.welcome-switches{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.welcome-switches>label{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:700;color:var(--txt-lo);white-space:nowrap}
.welcome-copy-fields{margin-bottom:19px}.welcome-admin-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(390px,.88fr);gap:16px;align-items:stretch}.welcome-editor-panel,.welcome-preview-panel{border:1px solid var(--border);border-radius:17px;background:var(--panel);padding:14px;min-width:0}.welcome-editor-title,.welcome-preview-label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px;color:var(--txt-hi);font-size:13px}.welcome-editor-title b{display:flex;align-items:center;gap:8px}.welcome-editor-title b i{color:var(--accent)}.welcome-editor-title.edge-title{margin-top:18px;padding-top:15px;border-top:1px solid var(--border)}
.welcome-node-list,.welcome-edge-list{display:grid;gap:8px}.welcome-node-row{display:grid;grid-template-columns:28px minmax(120px,1fr) minmax(120px,1fr) 90px 112px 39px;gap:7px;align-items:center}.welcome-node-index{width:28px;height:28px;border-radius:9px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font:800 11px var(--f-mono)}.welcome-node-row .inp,.welcome-edge-row .inp{min-height:39px;padding:8px 10px;border-radius:10px;font-size:11.5px}.welcome-position{display:grid;grid-template-columns:1fr 1fr;gap:5px;direction:ltr}.welcome-position .inp{min-width:0;padding-inline:5px;text-align:center}.welcome-edge-row{display:grid;grid-template-columns:minmax(110px,1fr) 24px minmax(110px,1fr) 39px;gap:7px;align-items:center}.welcome-edge-row>i{text-align:center;color:var(--accent)}
.welcome-preview-panel{background:var(--panel-2);overflow:hidden}.welcome-preview-label small{background:var(--accent-soft);color:var(--accent);border-radius:99px;padding:4px 8px;font-weight:800}.welcome-preview-panel .public-flow-mount{height:410px;border:1px solid var(--border);border-radius:13px;background:var(--panel-solid);overflow:hidden}
.welcome-slides-editor{border:1px solid var(--border);border-radius:17px;background:var(--panel-2);padding:14px;margin-bottom:16px}.welcome-slides-list{display:grid;gap:8px}.welcome-slide-row{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--border);border-radius:13px;padding:9px}.welcome-slide-icon{width:36px;height:36px;border-radius:11px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center}.welcome-slide-row .icon-btn:disabled{opacity:.25}
@media (max-width:1200px){.welcome-admin-grid{grid-template-columns:1fr}.welcome-preview-panel .public-flow-mount{height:360px}}
@media (max-width:760px){.welcome-settings-head{flex-direction:column}.welcome-node-row{grid-template-columns:28px 1fr 39px}.welcome-node-row>[data-nf="label_en"],.welcome-node-row>[data-nf="kind"],.welcome-node-row>.welcome-position{grid-column:2/3}.welcome-node-row>[data-w-node-del]{grid-column:3;grid-row:1}.welcome-edge-row{grid-template-columns:1fr 24px 1fr 39px}.welcome-preview-panel .public-flow-mount{height:300px}}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
.question-note-tags{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 14px}.question-note-tags span{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid #b8d7e6;border-radius:999px;background:#edf8fc;color:#116783;font-size:11px;font-weight:800}.dark .question-note-tags span{background:#12394b;border-color:#23586d;color:#9fe3f2}
.certificate-designer{display:grid;grid-template-columns:minmax(270px,360px) minmax(0,1fr);gap:18px;align-items:start}.certificate-controls{position:sticky;top:12px}.certificate-live{aspect-ratio:1.45;background:#f8f6ef;padding:22px;border:18px solid var(--cd-navy);box-shadow:0 16px 48px rgba(4,30,48,.18);color:var(--cd-navy);display:grid;place-items:stretch;text-align:center}.cert-border{border:3px solid var(--cd-gold);padding:28px;display:flex;flex-direction:column;align-items:center;justify-content:center}.cert-brand{font-weight:900;letter-spacing:3px;color:var(--cd-accent);font-size:12px}.certificate-live h2{font:900 clamp(22px,3vw,42px)/1.1 Georgia,serif;margin:28px 0 8px}.certificate-live h3{font-size:clamp(18px,2.3vw,32px);color:var(--cd-accent);margin:0}.certificate-live i{width:55%;height:4px;background:var(--cd-gold);margin:20px}.certificate-live p{color:#60737f}.certificate-live strong{font:900 clamp(24px,3vw,46px) Georgia,serif;border-bottom:2px solid var(--cd-gold);padding:8px 22px}.certificate-live small{margin:24px 0;line-height:1.8;color:#536873}.certificate-live footer{margin-top:auto;font-size:11px;color:#657985}@media(max-width:900px){.certificate-designer{grid-template-columns:1fr}.certificate-controls{position:static}}
.student-telegram{height:calc(100vh - 190px);min-height:600px;padding:0!important;display:grid;grid-template-columns:250px minmax(0,1fr);grid-template-rows:1fr auto auto;overflow:hidden;background:#dfeaf0}.student-telegram .chat-recipients{grid-row:1/4;display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:12px;background:var(--panel);border-inline-end:1px solid var(--border);overflow:auto}.student-telegram .chat-recipients .chip{justify-content:flex-start;min-height:48px;border:0;border-radius:10px;background:transparent}.student-telegram .chat-recipients .chip.on{background:var(--accent);color:#fff}.student-telegram .chat-scroll{background-color:#dce8ed;background-image:radial-gradient(rgba(32,94,118,.08) 1px,transparent 1px);background-size:20px 20px;padding:18px}.student-telegram .chat-compose{margin:0;padding:10px;background:var(--panel);border-top:1px solid var(--border)}.telegram-chat-head{display:flex;align-items:center;gap:10px;padding:9px 4px 13px;border-bottom:1px solid var(--border);margin-bottom:8px}.telegram-chat-head>div:nth-child(2){display:flex;flex-direction:column;flex:1}.telegram-chat-head small{color:var(--txt-lo);font-size:10px}.telegram-head-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff}.telegram-admin-actions{display:flex;gap:6px;flex-wrap:wrap}@media(max-width:760px){.student-telegram{display:flex;height:calc(100vh - 160px);min-height:520px}.student-telegram .chat-recipients{flex-direction:row;overflow:auto;border:0;border-bottom:1px solid var(--border);padding:8px}.student-telegram .chat-recipients .chip{min-width:max-content;min-height:38px}.telegram-chat-head{align-items:flex-start}.telegram-admin-actions .btn{font-size:0}.telegram-admin-actions .btn i{font-size:14px}}
.pomo-settings,.strict-task-builder{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:10px 0 14px}.pomo-settings label{font-size:11px;font-weight:800;color:var(--txt-lo)}.pomo-settings input{width:58px;border:1px solid var(--border);border-radius:8px;padding:7px;background:var(--panel);color:var(--txt)}.strict-task-builder .inp{flex:1;min-width:150px}.task-proof{display:grid;gap:4px;margin-top:7px;font-size:10px;color:var(--txt-lo)}.task-proof i{display:block;height:5px;border-radius:9px;background:var(--panel-2);overflow:hidden}.task-proof b{display:block;height:100%;background:var(--good);border-radius:9px}.competition-panels{margin-top:14px}.group-dot{width:18px;height:18px;border-radius:6px;box-shadow:0 0 0 4px color-mix(in srgb,currentColor 12%,transparent)}
.content-explorer{position:relative;min-height:620px;border:1px solid var(--border);border-radius:18px;background:var(--panel);box-shadow:var(--shadow);overflow:hidden;outline:none}.explorer-toolbar{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border);background:var(--panel-2)}.explorer-path{display:flex;align-items:center;gap:5px;flex:1;min-width:160px;overflow:auto;white-space:nowrap}.explorer-path button{border:0;background:transparent;color:var(--txt);font-weight:750;padding:7px;border-radius:8px;cursor:pointer}.explorer-path button:hover{background:var(--accent-soft);color:var(--accent)}.explorer-path i{color:var(--txt-lo);font-size:10px}.explorer-hint{padding:9px 16px;background:color-mix(in srgb,var(--accent) 7%,var(--panel));color:var(--txt-lo);font-size:11px}.explorer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(138px,1fr));align-content:start;gap:14px;padding:20px;min-height:530px}.explorer-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;padding:16px 10px;border:1px solid transparent;border-radius:14px;cursor:default;user-select:none}.explorer-item:hover,.explorer-item:focus{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 35%,transparent);outline:none}.explorer-icon{font-size:46px;line-height:1;color:var(--accent)}.explorer-item.folder .explorer-icon{color:var(--folder-color)}.explorer-item strong{font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis}.explorer-item small{color:var(--txt-lo);font-size:10px}.explorer-empty{grid-column:1/-1;display:flex;min-height:300px;flex-direction:column;align-items:center;justify-content:center;color:var(--txt-lo);gap:8px}.explorer-empty>i{font-size:54px;color:var(--accent)}.explorer-menu{position:absolute;z-index:30;width:220px;padding:7px;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 48px rgba(5,26,43,.24)}.explorer-menu button{display:flex;width:100%;align-items:center;gap:9px;border:0;background:transparent;color:var(--txt);padding:9px;border-radius:8px;text-align:start;cursor:pointer}.explorer-menu button:hover{background:var(--accent-soft)}.explorer-menu button.danger{color:var(--bad)}.explorer-menu hr{border:0;border-top:1px solid var(--border);margin:5px}.hidden{display:none!important}@media(max-width:700px){.explorer-toolbar{flex-wrap:wrap}.explorer-path{order:3;width:100%;flex-basis:100%}.explorer-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}}

/* Unified content center */
.content-center{min-height:700px;background:linear-gradient(160deg,var(--panel),color-mix(in srgb,var(--accent) 4%,var(--panel)))}.content-center .explorer-toolbar{position:sticky;top:0;z-index:12;backdrop-filter:blur(18px);background:color-mix(in srgb,var(--panel-solid) 92%,transparent);flex-wrap:wrap}.content-center-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;background:linear-gradient(115deg,#092f55,#0d6a94 58%,#0f9f8a);color:#fff}.content-center-banner>div:first-child{display:grid;grid-template-columns:42px 1fr;align-items:center}.content-center-banner>div:first-child>i{grid-row:1/3;width:36px;height:36px;border-radius:12px;background:rgba(255,255,255,.14);display:grid;place-items:center}.content-center-banner b{font-size:14px}.content-center-banner span{font-size:10.5px;color:#d7eff7}.stage-pills{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.stage-pills button{border:1px solid rgba(255,255,255,.22);border-radius:99px;background:rgba(255,255,255,.1);color:#fff;padding:7px 11px;font:800 10px var(--f-body);cursor:pointer}.stage-pills button:hover,.stage-pills button.on{background:#fff;color:#0b6085}.content-center .explorer-grid{grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:16px;background-image:radial-gradient(circle at 1px 1px,color-mix(in srgb,var(--accent) 10%,transparent) 1px,transparent 0);background-size:24px 24px}.content-center .explorer-item{min-height:145px;background:color-mix(in srgb,var(--panel-solid) 94%,transparent);border-color:var(--border);box-shadow:0 14px 28px -28px rgba(4,39,69,.8);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.content-center .explorer-item:hover{transform:translateY(-4px);box-shadow:0 20px 38px -25px rgba(4,39,69,.55)}.content-center .folder .explorer-icon{filter:drop-shadow(0 8px 8px color-mix(in srgb,var(--folder-color) 22%,transparent))}.content-file.lesson-file .explorer-icon{color:#8b5cf6}.content-file.flow-file .explorer-icon{color:#12a987}.content-file.question-file .explorer-icon{color:#ef8b2c}.restore-warning,.certificate-issue-intro{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:14px;background:var(--bad-soft);color:var(--bad);margin-bottom:14px}.certificate-issue-intro{background:linear-gradient(120deg,#fff5cf,#fff9e9);color:#8f6812;border:1px solid #ead28a}.certificate-issue-intro>i{font-size:25px}.certificate-issue-intro div{display:grid;gap:4px}.certificate-issue-intro span{font-size:11px;color:#7e704b}

/* Professional messaging */
.telegram-shell{height:calc(100vh - 190px);min-height:620px;display:grid;grid-template-columns:310px minmax(0,1fr);direction:ltr;border:1px solid var(--border);border-radius:22px;overflow:hidden;background:var(--panel);box-shadow:0 24px 60px -38px rgba(5,38,68,.55)}.telegram-shell>*{direction:rtl}.telegram-people{background:linear-gradient(180deg,var(--panel-solid),color-mix(in srgb,var(--accent) 5%,var(--panel-solid)));border-inline-end:1px solid var(--border);overflow:auto}.telegram-people>header{height:70px;padding:13px 15px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.telegram-people>header>div{display:flex;align-items:center;gap:10px}.telegram-people>header>div>i{width:38px;height:38px;border-radius:13px;background:linear-gradient(135deg,var(--accent),#12a7a0);color:#fff;display:grid;place-items:center}.telegram-people>header span{min-width:27px;height:27px;border-radius:9px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:900}.telegram-search{margin:11px;display:flex;align-items:center;gap:8px;padding:9px 11px;border-radius:12px;background:var(--panel-2);color:var(--txt-lo)}.telegram-search input{border:0;outline:0;background:transparent;color:var(--txt);font:inherit;width:100%}.telegram-people .thread-row{margin:3px 8px;padding:11px;border-radius:13px;transition:.15s}.telegram-people .thread-row:hover{background:var(--accent-soft);transform:translateX(-2px)}.telegram-people .thread-row.active{background:linear-gradient(120deg,var(--accent),#1596a2);color:#fff}.telegram-conversation{height:100%!important;min-height:0!important;max-width:none!important;margin:0!important;border:0!important;border-radius:0!important;background:#dcebf0!important;background-image:radial-gradient(circle at 20px 20px,rgba(19,96,126,.07) 1.4px,transparent 1.4px),linear-gradient(145deg,rgba(255,255,255,.34),transparent)!important;background-size:32px 32px,auto!important}.telegram-conversation .telegram-chat-head{margin:0;padding:12px 17px;background:color-mix(in srgb,var(--panel-solid) 94%,transparent);backdrop-filter:blur(16px);box-shadow:0 7px 18px -18px rgba(4,39,68,.8);z-index:3}.telegram-head-avatar{box-shadow:0 0 0 4px var(--accent-soft)}.chat-msgs{gap:7px!important;padding:22px clamp(12px,3vw,44px)!important}.msg{max-width:min(74%,720px)!important;padding:9px 11px!important;border:1px solid rgba(12,72,92,.08)!important}.msg.theirs{box-shadow:0 8px 22px -18px rgba(3,44,65,.6)!important}.msg.mine{background:linear-gradient(135deg,#d6f6e7,#c8efdf)!important}.msg .who{margin-bottom:5px;font-size:10px;font-weight:900}.message-gallery{display:grid;gap:3px;margin:6px -5px 2px;overflow:hidden;border-radius:13px}.message-gallery.g2,.message-gallery.g3,.message-gallery.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.message-gallery.g3 .chat-image:first-child{grid-row:span 2}.chat-image{display:block;min-height:90px;background:#cbdde5}.chat-image img{display:block;width:100%;height:100%;max-height:380px;object-fit:cover}.certificate-message+ .message-gallery,.msg:has(.certificate-message) .message-gallery{border:2px solid #d4ad43;box-shadow:0 12px 30px -20px #7d5c0c}.chat-upload-preview{display:flex;gap:6px;flex-wrap:wrap;padding:8px 12px;background:color-mix(in srgb,var(--panel-solid) 96%,transparent);border-top:1px solid var(--border)}.chat-upload-preview span{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:9px;background:var(--accent-soft);color:var(--accent);padding:6px 8px;font-size:10px;font-weight:800}.admin-rich-label{display:flex;align-items:center;gap:9px;padding:9px;border-radius:12px;background:rgba(255,255,255,.48);color:#183b55}.admin-rich-label>i{font-size:20px}.admin-rich-label div{display:grid}.admin-rich-label span{font-size:10px;color:#60798c}.admin-rich-label.certificate{background:#fff5ce;color:#8d6815}.admin-rich-label.report{background:#dff3ff;color:#176a93}.exam-assignment-message{border-color:#9ccbe0;background:linear-gradient(135deg,#eaf8ff,#f4fbff)}.exam-assignment-message .rich-card-icon{background:#ccecff;color:#0878ad}.report-exam-list{margin-top:13px;border-radius:13px;background:#edf5fa;padding:12px}.report-exam-list>b{display:block;margin-bottom:8px}.report-exam{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid #dbe8ef;font-size:11px}.report-exam:last-child{border:0}.report-exam strong.pass{color:#11856d}.report-exam strong.fail{color:#c44857}

/* Exam builder — playful, focused and library-native */
.exam-builder-shell{display:grid;gap:14px}.exam-builder-hero{display:grid;grid-template-columns:auto 1fr auto;gap:15px;align-items:center;padding:22px;border-radius:22px;background:linear-gradient(125deg,#183d88,#1f75db 57%,#13a69b);color:#fff;box-shadow:0 20px 45px -30px #123c7d}.exam-builder-hero .exam-mascot{width:64px;height:64px;border-radius:20px;background:rgba(255,255,255,.16);display:grid;place-items:center;font-size:28px;animation:examFloat 3s ease-in-out infinite}.exam-builder-hero span{font-size:10px;font-weight:900;letter-spacing:.7px;color:#d6efff}.exam-builder-hero h2{font-size:23px;margin:3px 0}.exam-builder-hero p{font-size:11px;color:#d9eff9}.exam-live-score{width:78px;height:78px;border-radius:24px;background:#fff;color:#1466b8;display:grid;place-items:center;align-content:center;box-shadow:0 12px 26px -18px #001d44}.exam-live-score b{font-size:25px}.exam-live-score small{font-size:9px}.wizard-step{display:grid;grid-template-columns:42px 1fr;gap:12px;padding:16px;border:1px solid var(--border);border-radius:18px;background:var(--panel);box-shadow:0 14px 34px -32px rgba(5,44,74,.7)}.wizard-step-no{width:34px;height:34px;border-radius:12px;background:linear-gradient(135deg,var(--accent),#15a3a0);color:#fff;display:grid;place-items:center;font-weight:900;box-shadow:0 8px 18px -12px var(--accent)}.wizard-step-body h3{font-size:14px;margin:6px 0 13px}.exam-folder-browser{border:1px solid var(--border);border-radius:16px;overflow:hidden;background:var(--panel-2)}.exam-browser-bar{display:flex;align-items:center;gap:7px;padding:9px;background:var(--panel-solid);border-bottom:1px solid var(--border)}.exam-browser-bar>div{display:flex;gap:4px;align-items:center;flex:1;min-width:0;overflow:auto}.exam-browser-bar>div button{border:0;background:transparent;color:var(--txt);font-weight:800;padding:7px;border-radius:8px;white-space:nowrap}.exam-browser-bar>div button:hover{background:var(--accent-soft)}.exam-folder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:10px;padding:13px;min-height:150px}.exam-folder-card{position:relative;display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:8px;min-height:74px;padding:10px;border:1.5px solid var(--border);border-radius:14px;background:var(--panel-solid);cursor:pointer;transition:.16s}.exam-folder-card:hover{transform:translateY(-2px);border-color:var(--accent-line);box-shadow:0 13px 25px -22px var(--accent)}.exam-folder-card.selected{background:var(--good-soft);border-color:var(--good)}.exam-folder-check{position:absolute;top:5px;inset-inline-end:5px;border:0;background:transparent;color:var(--good);font-size:15px;z-index:2}.exam-folder-icon{font-size:35px;color:var(--efc)}.exam-folder-card b{font-size:11px}.exam-folder-card>span{color:var(--txt-lo)}.exam-browser-empty{grid-column:1/-1;display:grid;place-items:center;align-content:center;gap:7px;color:var(--txt-lo);font-size:11px}.exam-selected{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:10px 13px;border-top:1px solid var(--border);min-height:48px}.exam-selected>b,.exam-selected>span{font-size:10px;color:var(--txt-lo)}.exam-selected button{border:0;border-radius:99px;background:var(--accent-soft);color:var(--accent);padding:6px 9px;font:800 9.5px var(--f-body)}.exam-tuning{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.exam-tuning>label,.exam-tuning>div{display:grid;gap:7px;padding:11px;border-radius:13px;background:var(--panel-2)}.exam-tuning span{font-size:10.5px;font-weight:850;color:var(--txt-lo)}.exam-type-picks{display:flex;gap:6px}.exam-type-picks button{flex:1;border:1px solid var(--border);border-radius:9px;background:var(--panel);color:var(--txt);padding:9px;font-weight:900}.exam-type-picks button.on{background:var(--accent);color:#fff;border-color:var(--accent)}.exam-shuffle{display:flex!important;grid-template-columns:1fr auto!important;align-items:center}.exam-theme-deck{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.exam-theme-deck .ew-th{display:grid;justify-items:start;gap:7px;min-height:126px;border:2px solid var(--border);border-radius:16px;background:var(--panel-2);color:var(--txt);padding:15px;text-align:start;font:inherit;cursor:pointer}.exam-theme-deck .ew-th>i{font-size:24px;color:var(--accent)}.exam-theme-deck .ew-th b{font-size:12px}.exam-theme-deck .ew-th span{font-size:9.5px;line-height:1.5;color:var(--txt-lo)}.exam-theme-deck .ew-th.sel{border-color:var(--good);background:var(--good-soft);box-shadow:0 10px 22px -18px var(--good)}.assignment-step{border-color:color-mix(in srgb,var(--gold) 38%,var(--border));background:linear-gradient(140deg,var(--panel),var(--gold-soft))}.student-multi-pick{display:flex;gap:6px;flex-wrap:wrap;max-height:150px;overflow:auto}.student-multi-pick input{position:absolute;opacity:0}.student-multi-pick span{display:block;border:1px solid var(--border);border-radius:99px;padding:7px 9px;font-size:10px}.student-multi-pick input:checked+span{background:var(--accent);color:#fff}.exam-consequences{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:11px;border-radius:12px;background:var(--bad-soft);font-size:11px}.exam-consequences .inp{flex:1;min-width:180px}.exam-create-cta{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;border:0;border-radius:18px;background:linear-gradient(120deg,#10a87f,#0d8e9c);color:#fff;padding:15px 19px;text-align:start;cursor:pointer;box-shadow:0 18px 34px -25px #087e79}.exam-create-cta>i{font-size:25px}.exam-create-cta span{display:grid}.exam-create-cta b{font-size:14px}.exam-create-cta small{color:#d7fff5}.campaign-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.campaign-head>div{display:flex;align-items:center;gap:11px}.campaign-head>div>i{width:42px;height:42px;border-radius:13px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-size:18px}.campaign-head>div>div{display:grid}.campaign-head span{font-size:10px;color:var(--txt-lo)}.campaign-list{display:grid;gap:10px}.campaign-list article{padding:14px;border:1px solid var(--border);border-radius:15px;background:var(--panel-2)}.campaign-list article header{display:flex;justify-content:space-between}.campaign-list article header div{display:grid}.campaign-list article header span{font-size:10px;color:var(--txt-lo)}.campaign-list article header>strong{width:38px;height:38px;border-radius:12px;background:var(--accent);color:#fff;display:grid;place-items:center}.campaign-stats{display:flex;gap:7px;flex-wrap:wrap;margin:11px 0 9px}.campaign-stats span{border-radius:99px;background:var(--panel);padding:6px 9px;font-size:9.5px}.campaign-stats .pass{color:var(--good)}.campaign-stats .fail{color:var(--bad)}.campaign-stats .miss{color:var(--gold)}@keyframes examFloat{50%{transform:translateY(-5px) rotate(3deg)}}

/* Competition arena */
.competition-arena{margin-top:16px;border-radius:24px;overflow:hidden;background:linear-gradient(125deg,#32276d,#5b3ebc 55%,#0f9f9a);color:#fff;box-shadow:0 24px 50px -34px #33216f}.competition-arena>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 25px}.competition-arena header span{font-size:9px;font-weight:900;letter-spacing:1px;color:#d9d1ff}.competition-arena h2{margin:4px 0;font-size:22px}.competition-arena p{font-size:11px;color:#e7e2ff}.arena-points{width:85px;height:85px;border-radius:26px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);display:grid;place-items:center;align-content:center}.arena-points b{font-size:26px}.arena-points small{font-size:9px}.competition-podium{display:flex;justify-content:center;align-items:end;gap:10px;padding:4px 18px 22px}.competition-podium article{position:relative;width:min(160px,28%);display:grid;justify-items:center;gap:4px;padding:14px 8px;border-radius:18px 18px 8px 8px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.14)}.competition-podium .place-1{padding-top:25px;background:rgba(255,211,91,.18);transform:translateY(-10px)}.podium-medal{position:absolute;top:-15px;font-size:25px}.podium-avatar{width:48px;height:48px;border-radius:17px;background:#fff;color:#333;display:grid;place-items:center;font-size:24px;box-shadow:0 10px 20px -15px #000}.competition-podium b{font-size:11px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.competition-podium span{font-size:9px;color:#eae6ff}.competition-panels .card{border-radius:20px;overflow:hidden}.competition-panels .lead-row{padding:10px;border-radius:12px;margin-bottom:5px;transition:.16s}.competition-panels .lead-row:hover{background:var(--accent-soft);transform:translateX(-3px)}.competition-panels .top-rank{background:linear-gradient(90deg,var(--gold-soft),transparent)}.competition-panels .rk{font-weight:950;color:var(--accent)}.group-rank-card{border-top:4px solid #14a99f}.student-rank-card{border-top:4px solid #6e56d9}

/* Responsive refinements */
@media(max-width:900px){.telegram-shell{grid-template-columns:240px minmax(0,1fr)}.exam-tuning{grid-template-columns:1fr 1fr}.content-center-banner{align-items:flex-start;flex-direction:column}.stage-pills{justify-content:flex-start}.online-v2-layout,.ministry-layout{max-width:100%}.exam-sheet,.online-question-card{min-width:0}.q-stem{overflow-wrap:anywhere}}
@media(max-width:700px){.telegram-shell{display:flex;flex-direction:column;height:calc(100vh - 150px);min-height:520px}.telegram-people{flex:0 0 auto;max-height:150px}.telegram-people>header{height:52px}.telegram-search{display:none}.telegram-people #ibList{display:flex;overflow:auto;padding:5px}.telegram-people .thread-row{min-width:190px}.telegram-conversation{flex:1}.telegram-admin-actions .btn{width:34px;height:34px;padding:0;display:grid;place-items:center}.telegram-admin-actions .btn i{font-size:14px}.chat-msgs{padding:13px 8px!important}.msg{max-width:91%!important}.message-gallery .chat-image{min-height:80px}.exam-builder-hero{grid-template-columns:auto 1fr;padding:17px}.exam-live-score{grid-column:1/-1;width:100%;height:50px;border-radius:14px}.exam-builder-hero .exam-mascot{width:50px;height:50px}.wizard-step{grid-template-columns:32px 1fr;padding:12px}.wizard-step-no{width:29px;height:29px}.exam-folder-grid{grid-template-columns:1fr 1fr;padding:8px}.exam-folder-card{grid-template-columns:35px 1fr auto}.exam-tuning{grid-template-columns:1fr}.exam-theme-deck{grid-template-columns:1fr 1fr}.campaign-head{align-items:flex-start;flex-direction:column}.competition-arena>header{padding:18px}.competition-arena h2{font-size:18px}.competition-podium article{width:31%}.content-center .explorer-toolbar .btn{font-size:0;width:37px;padding:0;justify-content:center}.content-center .explorer-toolbar .btn i{font-size:14px}.content-center .explorer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.exam-theme-deck{grid-template-columns:1fr}.exam-folder-grid{grid-template-columns:1fr}.competition-podium{gap:5px}.competition-podium article{padding-inline:4px}.podium-avatar{width:40px;height:40px}.online-question-nav .qmap{grid-template-columns:repeat(5,42px)}.theme-ministry .qmap{grid-template-columns:repeat(5,1fr)}.online-question-body,.ministry-question-body{padding-inline:10px}.theme-online-v2 .opt,.theme-ministry .opt{min-height:54px}}
html[dir="ltr"] .telegram-shell>*{direction:ltr}

/* ================================================================
   Vivid layer — competition league + chat (distinct, lively pages)
   ================================================================ */
/* arena: animated aurora background + floating sparks */
.competition-arena{position:relative;background:linear-gradient(125deg,#2b2168,#5b3ebc 42%,#0f9f9a 88%);background-size:220% 220%;animation:arenaAurora 14s ease-in-out infinite}
@keyframes arenaAurora{0%,100%{background-position:0% 30%}50%{background-position:100% 70%}}
.arena-spark{position:absolute;width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.65);filter:blur(.5px);pointer-events:none;animation:sparkFloat 7s ease-in-out infinite}
.arena-spark.s1{top:22%;inset-inline-start:12%}.arena-spark.s2{top:60%;inset-inline-start:78%;width:6px;height:6px;animation-delay:2.2s}.arena-spark.s3{top:34%;inset-inline-start:55%;width:5px;height:5px;animation-delay:4.1s}
@keyframes sparkFloat{0%,100%{transform:translateY(0);opacity:.35}50%{transform:translateY(-16px);opacity:.9}}
.arena-points{position:relative;overflow:hidden}.arena-points::after{content:'';position:absolute;inset:-60% auto auto -60%;width:70%;height:220%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.35),transparent);transform:rotate(18deg);animation:pointsShine 4.5s ease-in-out infinite}
@keyframes pointsShine{0%,55%,100%{translate:-120% 0}25%{translate:340% 0}}
/* classic 2-1-3 podium with pedestals */
.competition-podium{align-items:end;padding-bottom:26px}
.competition-podium article{animation:podiumRise .6s cubic-bezier(.2,.9,.3,1.4) both;animation-delay:var(--pod-delay,0s);padding-bottom:0;overflow:visible}
.competition-podium .place-1{order:2;z-index:2;transform:translateY(-18px);background:linear-gradient(160deg,rgba(255,211,91,.3),rgba(255,211,91,.12));border-color:rgba(255,214,102,.55);box-shadow:0 18px 40px -22px rgba(255,196,44,.75)}
.competition-podium .place-2{order:1;transform:translateY(-6px)}
.competition-podium .place-3{order:3}
@keyframes podiumRise{from{transform:translateY(30px) scale(.9)}}
.podium-crown{position:absolute;top:-38px;font-size:22px;animation:crownBob 2.6s ease-in-out infinite;filter:drop-shadow(0 6px 8px rgba(0,0,0,.35))}
@keyframes crownBob{0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-6px) rotate(6deg)}}
.competition-podium .podium-avatar{box-shadow:0 0 0 3px rgba(255,255,255,.85),0 12px 22px -14px #000}
.competition-podium .place-1 .podium-avatar{width:58px;height:58px;font-size:29px;box-shadow:0 0 0 3px #ffd76a,0 0 22px 2px rgba(255,214,102,.55),0 12px 22px -14px #000}
.podium-pts{background:rgba(0,0,0,.22);border-radius:99px;padding:3px 10px;font-weight:900}
.podium-base{width:100%;margin-top:9px;border-radius:10px 10px 6px 6px;background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,.08));display:grid;place-items:center;font:900 17px var(--f-head);color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.4)}
.place-1 .podium-base{height:46px;background:linear-gradient(180deg,rgba(255,214,102,.75),rgba(255,171,32,.35))}
.place-2 .podium-base{height:32px;background:linear-gradient(180deg,rgba(222,228,255,.6),rgba(160,170,205,.25))}
.place-3 .podium-base{height:24px;background:linear-gradient(180deg,rgba(255,166,102,.55),rgba(200,110,50,.25))}
/* ranking rows: staggered entrance, medal ranks, point bars */
.rank-row{animation:rowSlide .45s ease both;animation-delay:var(--row-delay,0s)}
@keyframes rowSlide{from{transform:translateX(14px)}}

.rank-row .rk{font-size:15px;width:30px}
.rank-row.rank-1{background:linear-gradient(90deg,rgba(255,204,64,.18),transparent 70%);border-color:rgba(255,196,44,.5)}
.rank-row.rank-2{background:linear-gradient(90deg,rgba(178,190,215,.2),transparent 70%);border-color:rgba(160,175,205,.5)}
.rank-row.rank-3{background:linear-gradient(90deg,rgba(233,150,80,.16),transparent 70%);border-color:rgba(217,133,66,.5)}
.rank-row.me{outline:2px solid var(--accent);outline-offset:-2px;background:var(--accent-soft)}
.me-chip{padding:2px 8px;font-size:9px;margin-inline-start:4px}
.rank-bar{height:6px;border-radius:99px;background:var(--panel-2);margin-top:6px;overflow:hidden}
.rank-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),#12a7a0);animation:barGrow 1s cubic-bezier(.2,.8,.3,1) both;animation-delay:.25s}
@keyframes barGrow{from{width:0!important}}
.rank-pts{display:grid;justify-items:center;line-height:1.05;font-family:var(--f-mono);font-size:15px;color:var(--accent-2)}
.rank-pts small{font-size:8.5px;font-weight:800;color:var(--txt-lo);letter-spacing:.6px}
.rank-row.rank-1 .rank-pts{color:#c9920f}
.league-chip{margin-inline-start:auto;display:inline-flex;align-items:center;gap:5px;background:linear-gradient(120deg,#6e56d9,#9a7bff);color:#fff;border-radius:99px;padding:4px 10px;font-size:9.5px;font-weight:900;letter-spacing:.4px}
.league-chip.grp{background:linear-gradient(120deg,#0f9f8a,#2cc3ad)}
.student-rank-card{border-top:0;position:relative;overflow:hidden}
.student-rank-card::before{content:'';position:absolute;inset:0 0 auto 0;height:5px;background:linear-gradient(90deg,#6e56d9,#9a7bff,#5b3ebc);background-size:200% 100%;animation:stripFlow 6s linear infinite}
.group-rank-card{border-top:0;position:relative;overflow:hidden}
.group-rank-card::before{content:'';position:absolute;inset:0 0 auto 0;height:5px;background:linear-gradient(90deg,#0f9f8a,#3bd6b6,#14a99f);background-size:200% 100%;animation:stripFlow 6s linear infinite}
@keyframes stripFlow{to{background-position:200% 0}}
/* leaderboard (focus card) top-3 medals glow */
.lead-row.top1{background:linear-gradient(90deg,rgba(255,204,64,.16),transparent);border-color:rgba(255,196,44,.45)}
.lead-row.top2{background:linear-gradient(90deg,rgba(178,190,215,.18),transparent)}
.lead-row.top3{background:linear-gradient(90deg,rgba(233,150,80,.14),transparent)}
/* ---------------- chat: lively telegram look ---------------- */
.student-telegram .chat-recipients{background:linear-gradient(180deg,var(--panel-solid),color-mix(in srgb,var(--accent) 7%,var(--panel-solid)))}
.student-telegram .chat-recipients .chip{transition:transform .16s,background .16s}
.student-telegram .chat-recipients .chip:hover{transform:translateX(-3px);background:var(--accent-soft)}
html[dir="ltr"] .student-telegram .chat-recipients .chip:hover{transform:translateX(3px)}
.student-telegram .chat-recipients .chip.on{background:linear-gradient(120deg,var(--accent),#1596a2);box-shadow:0 10px 20px -14px var(--accent)}
.av-dot{width:9px;height:9px;border-radius:50%;background:#b9c6cf;display:inline-block;margin-inline-end:2px}
.av-dot.on{background:var(--good);box-shadow:0 0 0 3px var(--good-soft);animation:onlinePulse 2.4s ease-in-out infinite}
@keyframes onlinePulse{50%{box-shadow:0 0 0 6px transparent}}
.chat-day-sep{display:flex;justify-content:center;margin:13px 0 9px}
.chat-day-sep span{background:rgba(13,66,90,.14);color:#26536b;backdrop-filter:blur(6px);border-radius:99px;padding:5px 14px;font-size:10.5px;font-weight:900;box-shadow:0 4px 12px -8px rgba(6,42,60,.6)}
.msg{animation:msgPop .3s cubic-bezier(.2,.9,.35,1.25) both}
@keyframes msgPop{from{transform:translateY(10px) scale(.96)}}
.msg.mine{background:linear-gradient(135deg,#d3f5e6,#c4efdc)!important}
.msg.mine::after,.msg.theirs::after{content:'';position:absolute;bottom:0;width:12px;height:12px}
.msg.mine::after{inset-inline-end:-5px;background:radial-gradient(circle at 0 0,transparent 11px,#c9f0de 11px)}
.msg.theirs::after{inset-inline-start:-5px;background:radial-gradient(circle at 100% 0,transparent 11px,#fff 11px)}
html[dir="ltr"] .msg.mine::after{background:radial-gradient(circle at 100% 0,transparent 11px,#c9f0de 11px)}
html[dir="ltr"] .msg.theirs::after{background:radial-gradient(circle at 0 0,transparent 11px,#fff 11px)}
.chat-compose{gap:8px}
.chat-compose .inp{border-radius:99px;transition:box-shadow .2s,border-color .2s}
.chat-compose .inp:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.chat-compose .btn.primary{border-radius:50%;width:44px;height:44px;padding:0;display:grid;place-items:center;box-shadow:0 10px 22px -12px var(--accent);transition:transform .15s}
.chat-compose .btn.primary:hover{transform:scale(1.08) rotate(-8deg)}
.chat-compose .icon-btn{transition:transform .15s,color .15s}
.chat-compose .icon-btn:hover{transform:translateY(-2px);color:var(--accent)}
.recording-pill{margin:0 14px 6px;padding:8px 14px;border-radius:99px;background:#ffe3e6;color:#b23a48;font-size:11px;font-weight:900;display:flex;align-items:center;gap:8px;animation:onlinePulse 1.6s ease-in-out infinite}

/* Per-subject lock hint in the library */
.ex-item.subject-locked{position:relative}
.ex-item.subject-locked .fic{opacity:.62;filter:grayscale(.35)}
.ex-item .subject-lock{position:absolute;top:8px;inset-inline-end:8px;z-index:2;width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:linear-gradient(135deg,#f0b955,#e8935a);color:#fff;font-size:11px;box-shadow:0 4px 10px -5px rgba(200,120,20,.9)}
.icon-btn.spin i{display:inline-block;animation:spin .9s linear infinite}

/* Flow performance: drop expensive effects while panning/zooming so touch stays smooth */
.mf-flow-mount .react-flow__renderer,.mf-flow-mount .react-flow__pane{touch-action:none}
.mf-flow-mount.panning .fnode{transition:none!important;box-shadow:none!important}
.mf-flow-mount.panning .react-flow__edge-path{transition:none!important}
.mf-flow-mount .fnode{will-change:transform}

/* ================= OLTEST online-exam theme (MCQ + EMQ) ================= */
.theme-oltest{--olt-blue:#3c91bd;--olt-blue2:#217ca9;color:#111;font-family:Arial,Helvetica,sans-serif;background:#e8eef4;padding:12px;border-radius:12px;margin-top:-2px}
.theme-oltest *{box-sizing:border-box}
.theme-oltest .olt-nav{background:var(--olt-blue);border-top:3px solid var(--olt-blue2);color:#fff;border-radius:6px 6px 0 0;margin-bottom:14px}
.theme-oltest .olt-nav-in{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px;height:53px;flex-wrap:wrap}
.theme-oltest .olt-brand{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:700}
.theme-oltest .olt-brand small{font-weight:400;font-size:13px;opacity:.92}
.theme-oltest .olt-screen{width:17px;height:13px;border:2px solid #fff;border-radius:2px;position:relative;display:inline-block}
.theme-oltest .olt-screen::after{content:"";position:absolute;left:4px;right:4px;bottom:-5px;height:2px;background:#fff}
.theme-oltest .olt-acct{display:flex;align-items:center;gap:10px}
.theme-oltest .olt-finish,.theme-oltest .olt-exit{border:0;border-radius:5px;padding:7px 13px;font:700 13px Arial;cursor:pointer}
.theme-oltest .olt-finish{background:#e64f42;color:#fff}
.theme-oltest .olt-exit{background:rgba(255,255,255,.18);color:#fff}
.theme-oltest .olt-page{max-width:1160px;margin:0 auto}
.theme-oltest .olt-title{display:flex;align-items:center;justify-content:space-between;margin:6px 2px 14px}
.theme-oltest .olt-title h1{margin:0;font-size:24px;font-weight:400;color:#1f2933;display:inline}
.theme-oltest .olt-title span{color:#5c6570;font-size:13px;margin-inline-start:8px}
.theme-oltest .olt-layout{display:grid;grid-template-columns:256px 1fr;gap:24px;align-items:start}
.theme-oltest .olt-panel{background:#fff;border:1px solid #d6dce1;border-top:3px solid #2e96d0;border-radius:3px;overflow:hidden}
.theme-oltest .olt-ph{height:42px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf0f2;padding:8px 12px;color:#1d1d1d;font-size:16px}
.theme-oltest .olt-ph small{color:#9aa7b4;font-weight:700}
.theme-oltest .olt-grid.qmap{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;padding:11px}
.theme-oltest .qmap .qm{width:100%;height:30px;border:1px solid #d5dce1;background:#fff;color:#1f2933;font-size:12px;border-radius:3px;cursor:pointer;line-height:1}
.theme-oltest .qmap .qm.answered{background:#00a85a;border-color:#00a85a;color:#fff;font-weight:700}
.theme-oltest .qmap .qm.cur{outline:2px solid #0678b8;outline-offset:-2px;font-weight:700}
.theme-oltest .qmap .qm.flagged{background:#faa21a;border-color:#faa21a;color:#fff}
.theme-oltest .olt-legend{display:flex;flex-wrap:wrap;gap:10px;padding:10px 12px;border-top:1px solid #edf0f2;font-size:11px;color:#5c6570}
.theme-oltest .olt-legend span{display:flex;align-items:center;gap:5px}
.theme-oltest .olt-legend i{width:13px;height:13px;border-radius:3px;display:inline-block}
.theme-oltest .olg-answered{background:#00a85a}.theme-oltest .olg-current{background:#fff;border:2px solid #0678b8}.theme-oltest .olg-flagged{background:#faa21a}
.theme-oltest .olt-exam{display:flex;flex-direction:column;min-height:520px}
.theme-oltest .olt-exam-ph{gap:10px}
.theme-oltest .olt-badge{background:#0678b8;color:#fff;padding:3px 10px;border-radius:13px;font-weight:700;font-size:12px}
.theme-oltest .olt-timer{margin-inline-start:auto;background:#e64f42;color:#fff;padding:3px 10px;border-radius:13px;font-weight:700;font-size:12px}
.theme-oltest .olt-timer.low{animation:oltPulse 1s ease-in-out infinite}
@keyframes oltPulse{50%{opacity:.55}}
.theme-oltest .olt-count{color:#5c6570;font-size:12px;font-weight:700}
.theme-oltest .olt-body{padding:34px 16px 26px;flex:1}
.theme-oltest .q-stem{color:#111;font-size:16px;line-height:1.4;margin-bottom:18px;max-width:800px;direction:ltr;text-align:left}
.theme-oltest .question-note-tags{margin-bottom:12px}
/* MCQ answers rendered by the shared engine (.opt/.lt/.tx) restyled as OLTEST boxes */
.theme-oltest #qBody .opt{display:grid;grid-template-columns:41px 1fr;min-height:55px;border:1px solid #d1d1d1;background:#fff;border-radius:3px;overflow:hidden;margin-bottom:10px;cursor:pointer;transition:background .15s,border-color .15s}
.theme-oltest #qBody .opt .lt{display:flex;align-items:center;justify-content:center;background:#d3d7d8;color:#111;font-size:16px;text-transform:lowercase}
.theme-oltest #qBody .opt .tx{display:flex;align-items:center;padding-inline-start:12px;color:#111;font-size:16px;direction:ltr;text-align:left}
.theme-oltest #qBody .opt.active{background:#86c486;border-color:#86c486}
.theme-oltest #qBody .opt.active .lt{background:#54bd55;color:#fff;font-weight:700}
.theme-oltest #qBody .opt.active .tx{color:#fff;font-weight:700}
.theme-oltest #qBody .opt.correct{background:#86c486;border-color:#54bd55}
.theme-oltest #qBody .opt.wrong{background:#f3b0ab;border-color:#e64f42}
/* EMQ inside OLTEST */
.theme-oltest .emq-opts{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:16px}
.theme-oltest .emq-opts .chip{background:#eef3f6;border:1px solid #d1d9de;color:#1f2933;border-radius:4px;padding:6px 10px;font-size:13px}
.theme-oltest .emq-sub{border:1px solid #e1e6ea;border-radius:4px;padding:11px;margin-bottom:10px}
.theme-oltest .emq-sub .st{font-size:15px;color:#111;margin-bottom:9px;direction:ltr;text-align:left}
.theme-oltest .emq-pick{display:flex;flex-wrap:wrap;gap:6px}
.theme-oltest .emq-pick .pk{width:38px;height:34px;border:1px solid #d1d1d1;background:#fff;border-radius:4px;font-weight:700;cursor:pointer;text-transform:lowercase}
.theme-oltest .emq-pick .pk.on{background:#54bd55;border-color:#54bd55;color:#fff}
.theme-oltest .olt-footer{height:56px;border-top:1px solid #eef0f2;display:flex;align-items:center;justify-content:center;gap:7px;background:#fff}
.theme-oltest .olt-btn{height:34px;border:0;border-radius:4px;color:#fff;padding:0 15px;font:700 14px Arial;cursor:pointer;display:inline-flex;align-items:center;gap:7px}
.theme-oltest .olt-btn:disabled{opacity:.5;cursor:not-allowed}
.theme-oltest .olt-back,.theme-oltest .olt-next{background:#09afe1}
.theme-oltest .olt-doubt{background:#faa21a}
.theme-oltest .olt-doubt.on{background:#e07d00}
.theme-oltest .chevron-left,.theme-oltest .chevron-right{width:8px;height:8px;border-top:3px solid #fff;border-right:3px solid #fff;display:inline-block}
.theme-oltest .chevron-left{transform:rotate(-135deg)}.theme-oltest .chevron-right{transform:rotate(45deg)}
@media(max-width:820px){
  .theme-oltest .olt-layout{grid-template-columns:1fr}
  .theme-oltest .olt-navp{order:2}
  .theme-oltest .olt-grid.qmap{grid-template-columns:repeat(8,1fr)}
  .theme-oltest .olt-nav-in{height:auto;padding:9px 12px}
  .theme-oltest .olt-body{padding:22px 12px}
}
@media(max-width:480px){.theme-oltest .olt-grid.qmap{grid-template-columns:repeat(6,1fr)}.theme-oltest #qBody .opt{min-height:50px}}

/* Back button (app feel) */
.tb-back{color:var(--accent);font-size:18px}
.tb-back.hidden{display:none!important}
@media(max-width:860px){.tb-back{display:grid}}

/* Daily/Weekly league tabs */
.league-tabs{display:inline-flex;gap:4px;margin-inline-start:auto;background:var(--panel-2);border:1px solid var(--border);border-radius:99px;padding:3px}
.league-tabs button{border:0;background:transparent;color:var(--txt-lo);font:800 10.5px var(--f-body);padding:5px 12px;border-radius:99px;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.league-tabs button.on{background:linear-gradient(120deg,var(--accent),#1596a2);color:#fff;box-shadow:0 6px 14px -8px var(--accent)}
.rank-list{margin-top:4px}

/* ================= Question-file cards ================= */
.ex-item.qfile{position:relative;justify-content:flex-start}
.ex-item.qfile .fic{color:var(--gold)}
.qf-foot{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:6px}
.qf-badge{display:inline-flex;align-items:center;gap:4px;border-radius:99px;padding:3px 9px;font-size:9.5px;font-weight:800}
.qf-badge.free{background:var(--good-soft);color:var(--good)}
.qf-badge.open{background:var(--accent-soft);color:var(--accent)}
.qf-badge.sub{background:var(--gold-soft);color:var(--gold)}
.qf-theme{display:inline-flex;align-items:center;gap:4px;border-radius:99px;padding:3px 9px;font-size:9.5px;font-weight:800;background:var(--panel-2);color:var(--txt-lo)}

/* ================= Themed question-file player ================= */
.qfile-player{max-width:1480px;margin:0 auto;animation:fadeUp .3s}
.qfp-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.qfp-file{font-family:var(--f-head);font-weight:800;font-size:15px;display:flex;align-items:center;gap:8px}
.qfp-meta{display:flex;align-items:center;gap:7px}
.qfp-chip{background:var(--panel-2);border:1px solid var(--border);border-radius:99px;padding:3px 9px;font-size:10.5px;font-weight:800}
.qfp-chip.good{background:var(--good-soft);color:var(--good);border-color:transparent}
.qfp-chip.bad{background:var(--bad-soft);color:var(--bad);border-color:transparent}
.qfp-count{font-family:var(--f-mono);font-weight:700;font-size:12px;color:var(--txt-lo)}
.qfp-progress{height:6px;border-radius:99px;background:var(--panel-2);overflow:hidden;margin-bottom:14px}
.qfp-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:99px;transition:width .35s}
.qfp-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);padding:22px;box-shadow:var(--shadow)}
.qfile-player .q-stem{font-size:16px;line-height:1.5;margin-bottom:16px}
.qfile-player #qBody{display:grid;gap:10px}
.qfile-player .qfp-actions{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
.qfile-player .qfp-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:14px}
.qfile-player .q-expl{margin-top:14px}
.exam-question-split{min-width:0}
.exam-case-pane,.exam-answer-pane{display:block;min-width:0}
.case-pane-label{display:inline-flex;align-items:center;gap:6px;margin-bottom:13px;padding:5px 9px;border-radius:99px;background:var(--accent-soft);color:var(--accent);font-size:10px;font-weight:850;letter-spacing:.02em}
/* default option look */
.qfile-player .opt{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:10px;border:1.5px solid var(--border);border-radius:12px;padding:12px 14px;cursor:pointer;transition:.15s;background:var(--panel-solid)}
.qfile-player .opt:hover{border-color:var(--accent-line)}
.qfile-player .opt .lt{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--panel-2);font-weight:800}
.qfile-player .opt.active{border-color:var(--accent);background:var(--accent-soft)}
.qfile-player .opt.active .lt{background:var(--accent);color:#fff}
.qfile-player .opt.correct{border-color:var(--good);background:var(--good-soft)}
.qfile-player .opt.correct .lt{background:var(--good);color:#fff}
.qfile-player .opt.wrong{border-color:var(--bad);background:var(--bad-soft)}
.qfile-player .opt.wrong .lt{background:var(--bad);color:#fff}
/* theme: OLTEST — square light answer boxes */
.qfile-player.theme-oltest .qfp-card{background:#fff;color:#111;border-top:3px solid #2e96d0}
.qfile-player.theme-oltest .opt{grid-template-columns:41px 1fr auto;border-radius:3px;background:#fff;border-color:#d1d1d1}
.qfile-player.theme-oltest .opt .lt{border-radius:0;background:#d3d7d8;color:#111;width:41px;height:44px;text-transform:lowercase}
.qfile-player.theme-oltest .opt.active{background:#86c486;border-color:#86c486}
.qfile-player.theme-oltest .opt.active .lt{background:#54bd55;color:#fff}
.qfile-player.theme-oltest .q-stem{color:#111}
/* theme: Online V2 — rounded blue */
.qfile-player.theme-online-v2 .qfp-card{border-top:3px solid var(--accent)}
.qfile-player.theme-online-v2 .opt{border-radius:14px}
.qfile-player.theme-online-v2 .opt .lt{border-radius:50%}
/* theme: Ministry — paper + serif */
.qfile-player.theme-ministry .qfp-card{background:var(--paper);color:var(--paper-ink);font-family:Georgia,'Times New Roman',serif;border:1px solid #d9cdb2}
.qfile-player.theme-ministry .opt{background:#fffdf7;border-color:#d9cdb2;border-radius:4px}
.qfile-player.theme-ministry .opt .lt{background:#eadfc5;color:#5c4a2a;border-radius:4px}
.qfile-player.theme-ministry .q-stem{color:var(--paper-ink)}
/* theme: Moodle — LMS grey/orange */
.qfile-player.theme-moodle .qfp-card{background:#fff;color:#2d2d2d;border:1px solid #dcdcdc;border-radius:6px}
.qfile-player.theme-moodle .opt{background:#f7f7f7;border-color:#dcdcdc;border-radius:6px}
.qfile-player.theme-moodle .opt .lt{background:#e59a2f;color:#fff;border-radius:50%}
.qfile-player.theme-moodle .opt.active{border-color:#e59a2f;background:#fff5e8}
.qfile-player.theme-moodle .q-stem{color:#2d2d2d}
/* theme: Bubble — OMR bubbles */
.qfile-player.theme-bubble .opt .lt{border-radius:50%;border:2px solid var(--txt-lo);background:transparent}
.qfile-player.theme-bubble .opt.active .lt{background:radial-gradient(circle,var(--accent) 45%,transparent 48%);border-color:var(--accent);color:transparent}
.qfile-player.theme-bubble .opt.correct .lt{background:radial-gradient(circle,var(--good) 45%,transparent 48%);border-color:var(--good);color:transparent}
/* theme: Practice — friendly cards (uses default look) */
.qfile-player.theme-practice .opt{border-radius:16px}
@media(max-width:640px){.qfile-player .qfp-card{padding:16px}}

/* Wide tablet/desktop exam workspace: case beside answers instead of a narrow
   phone column floating in the middle of an iPad or computer screen. */
@media(min-width:980px){
  .exam-question-split{display:grid;grid-template-columns:minmax(300px,.82fr) minmax(430px,1.18fr);gap:clamp(24px,3vw,46px);align-items:start}
  .exam-case-pane{position:sticky;top:112px;padding-inline-end:clamp(18px,2.2vw,32px);border-inline-end:1px solid var(--border)}
  .exam-answer-pane{min-width:0}
  .qfile-player .qfp-card{padding:clamp(24px,3vw,42px)}
  .qfile-player .q-stem{font-size:clamp(17px,1.35vw,21px);line-height:1.75;margin:0}
  .qfile-player .opt{min-height:58px}
  .qcard-inner>.exam-question-split{grid-template-columns:minmax(310px,.8fr) minmax(460px,1.2fr)}
  .online-v2-layout,.online-title-row{max-width:1500px}
  .online-v2-layout{grid-template-columns:230px minmax(0,1fr);gap:18px}
  .online-question-body{padding:30px clamp(22px,2.6vw,42px) 45px}
  .online-question-body .exam-question-split{grid-template-columns:minmax(290px,.78fr) minmax(430px,1.22fr)}
  .theme-oltest .olt-page{max-width:1500px}
  .theme-oltest .olt-layout{grid-template-columns:230px minmax(0,1fr);gap:18px}
  .theme-oltest .olt-body{padding:30px clamp(20px,2.5vw,38px)}
  .theme-ministry{max-width:1500px}
  .ministry-layout{grid-template-columns:minmax(0,1fr) 250px}
  .theme-ministry .exam-question-split{grid-template-columns:minmax(310px,.82fr) minmax(430px,1.18fr)}
}

/* Direct per-file CSS editor with a real, live MCQ preview. */
.qf-css-workbench{border:1px solid var(--border);border-radius:18px;background:var(--panel-2);padding:14px;margin-bottom:14px;overflow:hidden}
.qf-css-workbench>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.qf-css-workbench>header>div{display:grid;gap:4px}.qf-css-workbench>header b{font-size:13px}.qf-css-workbench>header span{font-size:10.5px;color:var(--txt-lo);line-height:1.5}
.qf-css-grid{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(360px,1.1fr);gap:12px;align-items:stretch}
.qf-css-grid>textarea{min-height:340px;resize:vertical;font-size:11px;line-height:1.65;tab-size:2}
.qf-css-preview{margin:0!important;max-width:none!important;padding:12px;border:1px dashed var(--accent-line);border-radius:15px;background:var(--bg);overflow:auto;direction:ltr}
.qf-css-preview .mfq-header{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px}.qf-css-preview .mfq-file{display:flex;gap:8px;align-items:center}.qf-css-preview .mfq-file-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--accent-soft)}.qf-css-preview .mfq-file small{display:block;color:var(--accent);font-size:9px}.qf-css-preview .mfq-progress{height:5px;border-radius:99px;background:var(--panel-2);overflow:hidden;margin-bottom:9px}.qf-css-preview .mfq-progress i{display:block;height:100%;background:var(--accent)}.qf-css-preview .mfq-card{box-shadow:none;padding:14px;display:block;border:1px solid var(--border);border-radius:15px}.qf-css-preview .mfq-case-pane{position:static;border:0;padding:0}.qf-css-preview .mfq-case-label{font-size:9px;color:var(--accent)}.qf-css-preview .q-stem{font-size:14px;margin:8px 0 14px}.qf-css-preview .mfq-options{display:grid;gap:7px}.qf-css-preview .opt{min-height:48px;padding:8px 10px}.qf-css-preview .mfq-footer{display:flex;justify-content:space-between;gap:8px;margin-top:9px}.qf-css-preview .mfq-nav-actions,.qf-css-preview .mfq-answer-actions{display:flex;gap:5px}.qf-css-preview .btn{padding:8px 11px;font-size:11px}
@media(max-width:800px){.qf-css-grid{grid-template-columns:1fr}.qf-css-grid>textarea{min-height:260px}.qf-css-workbench>header{align-items:flex-start;flex-direction:column}}

/* Library hero banner */
.library-hero{display:flex;align-items:center;gap:16px;padding:18px 22px;margin-bottom:16px;border-radius:20px;background:linear-gradient(120deg,var(--accent-dark),var(--accent) 60%,var(--accent-2));color:#fff;box-shadow:0 20px 44px -26px var(--accent);position:relative;overflow:hidden}
.library-hero::after{content:'';position:absolute;inset-inline-end:-40px;top:-40px;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.09)}
.library-hero-ic{width:52px;height:52px;border-radius:16px;background:rgba(255,255,255,.16);display:grid;place-items:center;font-size:24px;flex-shrink:0;position:relative;z-index:1}
.library-hero-tx{flex:1;min-width:0;position:relative;z-index:1}
.library-hero-tx b{display:block;font-family:var(--f-head);font-size:17px}
.library-hero-tx span{font-size:12px;opacity:.92;line-height:1.6}
.library-hero-badge{position:relative;z-index:1;display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.22);border-radius:99px;padding:7px 13px;font-size:11px;font-weight:800;white-space:nowrap}
@media(max-width:640px){.library-hero{padding:14px 16px;border-radius:16px}.library-hero-tx span{display:none}.library-hero-tx b{font-size:15px}}

/* ================= Featured single-stage card ================= */
.stage-feature{position:relative;overflow:hidden;border-radius:24px;padding:24px;color:#fff;cursor:pointer;animation:fadeUp .4s;transition:transform .2s;background:linear-gradient(135deg,color-mix(in srgb,var(--sc) 88%,#000),var(--sc) 52%,color-mix(in srgb,var(--sc) 62%,var(--accent-2)));box-shadow:0 26px 55px -26px var(--sc)}
.stage-feature:hover{transform:translateY(-3px)}
.stage-feature .sf-glow{position:absolute;inset-inline-end:-60px;top:-70px;width:250px;height:250px;border-radius:50%;background:rgba(255,255,255,.12);pointer-events:none}
.stage-feature .sf-glow::after{content:'';position:absolute;inset-inline-start:-140px;bottom:-160px;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.08)}
.sf-head{display:flex;align-items:center;gap:14px;position:relative;z-index:1}
.sf-ic{width:60px;height:60px;border-radius:18px;background:rgba(255,255,255,.18);display:grid;place-items:center}
.sf-ic .fic{background:transparent!important;width:auto;height:auto}
.sf-ic .fic i,.sf-ic i{color:#fff!important;font-size:28px}
.sf-title b{font-family:var(--f-head);font-size:22px;display:block;line-height:1.15}
.sf-title span{font-size:12.5px;opacity:.92}
.sf-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0 16px;position:relative;z-index:1}
.sf-stat{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.16);border-radius:15px;padding:12px 8px;text-align:center}
.sf-stat b{font-size:21px;font-family:var(--f-head)}
.sf-stat span{display:block;font-size:10px;opacity:.9;margin-top:2px}
.sf-prog{position:relative;z-index:1}
.sf-prog-top{display:flex;justify-content:space-between;font-size:12px;font-weight:800;margin-bottom:7px}
.sf-bar{height:10px;border-radius:99px;background:rgba(255,255,255,.22);overflow:hidden}
.sf-bar i{display:block;height:100%;border-radius:99px;background:#fff;box-shadow:0 0 12px rgba(255,255,255,.5);transition:width .9s cubic-bezier(.2,.8,.3,1)}
.sf-open{margin-top:18px;width:100%;border:0;border-radius:14px;background:rgba(255,255,255,.96);color:#0b2944;font:800 14px var(--f-body);padding:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;position:relative;z-index:1}
.sf-open:hover{background:#fff}
@media(max-width:640px){.stage-feature{padding:18px;border-radius:20px}.sf-title b{font-size:19px}.sf-ic{width:52px;height:52px}.sf-stat b{font-size:18px}}

/* Mobile top-bar size reductions (placed last to win over later .topbar rules) */
@media (max-width:860px){
  .topbar{padding-top:10px!important;padding-bottom:10px!important;padding-inline:13px!important;backdrop-filter:blur(7px)}
  .tb-title{font-size:16px!important}
  .icon-btn{width:36px!important;height:36px!important}
  .brand{width:34px!important;height:34px!important}
}

/* ================= Mobile performance (Flutter-like smoothness) =================
   backdrop-filter is the biggest jank source on phones; drop it and make panels
   solid instead so scrolling/animation stay at 60fps. */
@media (max-width:860px){
  *,*::before,*::after{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  .card,.panel,.chat-recipients,.chat-compose,.tb-user,.modal,.explorer-toolbar,.content-center .explorer-toolbar{background:var(--panel-solid)!important}
  .topbar{background:var(--bg)!important}
  /* lighter shadows so paint stays cheap while panning */
  .ex-item,.card.stat,.msg{box-shadow:none!important}
}
/* Contain repaints for the flow viewer + big lists */
.practice-frame,.mf-flow-mount{contain:layout paint;transform:translateZ(0)}

/* v10 — activation-aware content notice */
.content-access-note{
  display:flex;
  align-items:center;
  gap:9px;
  margin:12px 0 18px;
  padding:12px 14px;
  border:1px solid color-mix(in srgb,var(--gold) 42%,var(--border));
  border-radius:14px;
  background:color-mix(in srgb,var(--gold-soft) 74%,var(--panel));
  color:var(--text);
  font-size:12px;
  font-weight:700;
}

/* =====================================================================
   MedFlow V11 — commercial exam/player containment and wide-screen fixes
   ===================================================================== */
#page{min-width:0;overflow-x:hidden}
.exam-runtime{width:100%;max-width:100%;min-width:0;margin:0 auto;overflow-x:clip}
.exam-runtime *{box-sizing:border-box;min-width:0}
.exam-runtime>.exam-head,.exam-runtime>.q-nav{max-width:none;width:100%}
.exam-runtime .qcard{width:100%;max-width:none!important;margin:0!important;min-width:0}
.exam-runtime .card,.exam-runtime .exam-sheet,.exam-runtime .online-exam-panel,.exam-runtime .olt-panel{max-width:100%;min-width:0}
.exam-runtime .exam-question-split{display:grid!important;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;gap:clamp(18px,3vw,42px)!important;width:100%;max-width:100%;align-items:start}
.exam-runtime .exam-case-pane,.exam-runtime .exam-answer-pane,.exam-runtime #qBody{width:100%;max-width:100%;min-width:0;overflow-wrap:anywhere}
.exam-runtime .opt{grid-template-columns:42px minmax(0,1fr) auto!important;width:100%;max-width:100%}
.exam-runtime .opt .tx{min-width:0;white-space:normal;overflow-wrap:anywhere;word-break:normal}
.exam-runtime .ministry-layout{grid-template-columns:minmax(0,1fr) minmax(240px,300px)!important;width:100%;max-width:100%;gap:18px}
.exam-runtime .exam-side-panel{width:auto!important;min-width:0}
.exam-runtime .online-v2-layout,.exam-runtime .olt-layout{grid-template-columns:minmax(220px,290px) minmax(0,1fr)!important;width:100%;max-width:100%;gap:18px}
.exam-runtime .online-question-body,.exam-runtime .olt-body{min-width:0;overflow:hidden}
.exam-runtime .qmap{max-width:100%}
.qfile-player{width:100%;max-width:1480px;min-width:0;overflow-x:clip}
.qfile-player *{box-sizing:border-box;min-width:0}
.qfile-player .opt .tx{overflow-wrap:anywhere;white-space:normal}
@media(max-width:1050px){
  .exam-runtime .exam-question-split{grid-template-columns:1fr!important;gap:18px!important}
  .exam-runtime .exam-case-pane{padding-bottom:18px;border-bottom:1px solid var(--border)}
  .exam-runtime .ministry-layout,.exam-runtime .online-v2-layout,.exam-runtime .olt-layout{grid-template-columns:1fr!important}
  .exam-runtime .exam-side-panel,.exam-runtime .online-question-nav,.exam-runtime .olt-navp{order:2}
}
@media(max-width:680px){
  .exam-runtime .exam-head{position:static;flex-wrap:wrap}
  .exam-runtime .exam-sheet,.exam-runtime .card.pad-lg,.exam-runtime .online-question-body,.exam-runtime .olt-body{padding:16px!important}
  .exam-runtime .q-nav{position:sticky;bottom:8px;z-index:8;padding:8px;gap:5px}
  .exam-runtime .q-nav .btn{padding:8px 10px;font-size:11px}
}

/* V11 — exam builder shows unpurchased folders for navigation but blocks selection. */
.exam-folder-card.locked{opacity:.68;border-style:dashed;filter:saturate(.65)}
.exam-folder-card.locked .exam-folder-icon{filter:grayscale(.25)}
.exam-folder-lock{position:absolute;inset-inline-start:10px;top:10px;width:26px;height:26px;display:grid;place-items:center;border-radius:9px;background:var(--gold-soft);color:var(--gold);font-style:normal}
.folder-entitlement-pick{max-height:320px;overflow:auto;padding:8px;border:1px solid var(--border);border-radius:14px;background:var(--panel-2)}

/* V11.1 — grouped admin navigation: it owns a column and never overlays content. */
.admin-shell{display:grid;grid-template-columns:220px minmax(0,1fr);gap:22px;align-items:start;max-width:1720px;margin:0 auto}
.admin-menu{position:sticky;top:92px;max-height:calc(100vh - 118px);overflow:auto;padding:12px;background:color-mix(in srgb,var(--panel-solid) 91%,transparent);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow)}
.admin-menu section+section{border-top:1px solid var(--border-soft);margin-top:10px;padding-top:10px}
.admin-menu h3{padding:5px 9px 7px;color:var(--txt-dim);font:800 10px var(--f-head);letter-spacing:.035em}
.admin-menu button{width:100%;min-height:39px;display:flex;align-items:center;gap:10px;padding:8px 10px;border:0;border-radius:11px;background:transparent;color:var(--txt-lo);font:750 12px var(--f-body);text-align:start;cursor:pointer;transition:.16s}
.admin-menu button i{width:20px;text-align:center;font-size:15px}
.admin-menu button:hover{background:var(--panel-2);color:var(--txt-hi)}
.admin-menu button.on{background:linear-gradient(120deg,var(--accent),var(--accent-dark));color:#fff;box-shadow:0 10px 25px -18px var(--accent)}
.admin-workspace{min-width:0}
.admin-mobile-nav{display:none}
.admin-page-heading{min-height:68px;display:flex;align-items:center;gap:12px;padding:10px 4px 18px;margin-bottom:8px;border-bottom:1px solid var(--border-soft)}
.admin-page-heading>span{width:43px;height:43px;display:grid;place-items:center;border-radius:13px;background:var(--accent-soft);color:var(--accent);font-size:19px}
.admin-page-heading small{display:block;color:var(--txt-dim);font-size:10px;font-weight:800;margin-bottom:2px}
.admin-page-heading h1{font-size:18px;line-height:1.25}
.admin-kpi-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.admin-kpi-grid .card.stat{min-height:88px;padding:13px}
.admin-kpi-grid .card.stat .ico{width:38px;height:38px}
.admin-kpi-grid .card.stat .val{font-size:21px}
.appearance-preview{border-radius:var(--r-lg);padding:22px;min-height:230px;background:linear-gradient(145deg,var(--accent-soft),var(--panel-solid));border:1px solid var(--border);display:flex;flex-direction:column;justify-content:space-between;gap:18px}
.appearance-preview-brand{display:flex;align-items:center;gap:11px}.appearance-preview-brand i{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-dark))}
.appearance-preview-card{padding:16px;border-radius:var(--r-md);background:var(--panel-solid);border:1px solid var(--border)}
.admin-warning-note{display:flex;gap:11px;align-items:flex-start;padding:14px;border-radius:14px;background:var(--gold-soft);border:1px solid color-mix(in srgb,var(--gold) 35%,var(--border));font-size:12px;line-height:1.7}

@media(max-width:1200px){.admin-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1060px){.admin-shell{grid-template-columns:196px minmax(0,1fr);gap:16px}.admin-menu{padding:9px}.admin-menu button{font-size:11px;padding-inline:8px}}
@media(max-width:800px){
  .admin-shell{display:block}
  .admin-menu{display:none}
  .admin-mobile-nav{display:flex;align-items:center;gap:9px;position:sticky;top:57px;z-index:18;margin-bottom:10px;padding:8px 10px;border:1px solid var(--border);border-radius:14px;background:var(--panel-solid);box-shadow:0 12px 30px -25px #000}
  .admin-mobile-nav>i{color:var(--accent);font-size:17px}.admin-mobile-nav .inp{border:0;background:transparent;padding:7px 5px;font-weight:800}
  .admin-page-heading{min-height:56px;padding:8px 2px 12px}.admin-page-heading>span{width:37px;height:37px;border-radius:11px}.admin-page-heading h1{font-size:16px}
}

/* Mobile top bar: preserve room for actions and remove decorative copy. */
@media(max-width:600px){
  .topbar{gap:6px!important}
  .topbar .tb-heading{flex:0 1 78px;min-width:0}
  .topbar .tb-title{font-size:12px!important;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .topbar .tb-sub{display:none}
  #staffQuickCreate{width:36px;height:36px;padding:0;font-size:0;border-radius:11px;flex:0 0 36px}
  #staffQuickCreate i{font-size:16px}
  .tb-user{padding:3px!important;flex:0 0 auto}
  .tb-user>div:nth-child(2){display:none}
  .tb-user>.account-menu{display:block}
  .tb-user .av{width:28px!important;height:28px!important}
  .page{padding-inline:12px}
  .admin-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .admin-kpi-grid .card.stat{min-height:96px}
}
@media(max-width:420px){.topbar .tb-heading{flex-basis:62px}.admin-page-heading small{display:none}}

/* V11.1 — MedFlow Connect: a cohesive, app-like communication surface. */
.telegram-shell{position:relative;height:calc(100dvh - 205px);min-height:500px;isolation:isolate;border-color:color-mix(in srgb,var(--accent) 28%,var(--border));background:linear-gradient(145deg,var(--panel-solid),color-mix(in srgb,var(--accent) 7%,var(--panel-solid)));box-shadow:0 28px 70px -42px color-mix(in srgb,var(--accent) 70%,#001733)}
.telegram-shell::before{content:'';position:absolute;z-index:-1;inset:0;background:radial-gradient(circle at 8% 4%,color-mix(in srgb,var(--accent) 20%,transparent),transparent 26%),radial-gradient(circle at 94% 92%,rgba(24,190,171,.14),transparent 30%);pointer-events:none}
.telegram-people{display:flex;flex-direction:column;min-height:0;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 18%,var(--panel-solid)),var(--panel-solid) 34%,color-mix(in srgb,#12a7a0 5%,var(--panel-solid)))!important}
.telegram-people>header{height:88px;padding:16px 18px;color:#fff;background:linear-gradient(125deg,#0a3f88,var(--accent) 56%,#0da39c);border:0;box-shadow:0 12px 28px -23px #001b46}
.telegram-people>header>div>i{width:44px!important;height:44px!important;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.16)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 10px 24px -17px #001a3f}
.telegram-people>header>div>span{display:grid;gap:1px}.telegram-people>header small{font:850 8px var(--f-head);letter-spacing:.8px;color:#bdefff}.telegram-people>header b{font-size:16px}
.telegram-people>header em{min-width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:rgba(255,255,255,.16);font-style:normal;font-weight:900;border:1px solid rgba(255,255,255,.16)}
.telegram-search{margin:13px 13px 9px;padding:11px 13px;border:1px solid var(--border);background:color-mix(in srgb,var(--panel-solid) 90%,transparent);box-shadow:0 9px 22px -21px #001a32}
.telegram-search input{color:var(--txt-hi)}
.telegram-people #ibList{flex:1;min-height:0;overflow:auto;padding:2px 7px 12px}
.telegram-people .thread-row{position:relative;margin:5px 3px;padding:10px;border:1px solid transparent;background:transparent;gap:10px}
.telegram-people .thread-row:hover{transform:none;background:var(--panel-2);border-color:var(--border)}
.telegram-people .thread-row.active{background:linear-gradient(125deg,var(--accent),#0d9a9c);border-color:transparent;box-shadow:0 14px 28px -20px var(--accent)}
.thread-avatar{position:relative;width:44px;height:44px;flex:0 0 44px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(145deg,var(--accent-soft),var(--panel-2));font-size:21px;border:1px solid var(--border)}
.thread-avatar i{position:absolute;inset-inline-end:-1px;bottom:-1px;width:10px;height:10px;border:2px solid var(--panel-solid);border-radius:50%;background:var(--good)}
.thread-copy{flex:1;min-width:0}.thread-copy .nm{font-size:12.5px;font-weight:850}.thread-preview{margin-top:3px;font-size:10px;color:var(--txt-lo);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thread-row.active .thread-preview{color:rgba(255,255,255,.72)}
.thread-chevron{color:var(--txt-dim);font-size:12px}.thread-row.active .thread-chevron{color:#fff}
.telegram-list-empty{height:100%;min-height:210px;display:grid;place-items:center;align-content:center;gap:7px;padding:24px;text-align:center;color:var(--txt-lo)}
.telegram-list-empty>i{width:64px;height:64px;display:grid;place-items:center;border-radius:22px;background:linear-gradient(135deg,var(--accent-soft),rgba(20,183,171,.14));color:var(--accent);font-size:28px}.telegram-list-empty b{color:var(--txt-hi);font-size:13px}.telegram-list-empty span{max-width:210px;font-size:10.5px;line-height:1.7}
.telegram-conversation{position:relative;overflow:hidden;background:linear-gradient(145deg,#dceeff,#d9f3ee)!important;background-image:radial-gradient(circle at 18px 18px,rgba(15,80,125,.055) 1.2px,transparent 1.2px),linear-gradient(140deg,rgba(255,255,255,.52),transparent)!important;background-size:32px 32px,auto!important}
.tg-empty-chat{width:100%;height:100%;display:grid;place-items:center;align-content:center;gap:9px;padding:28px;text-align:center;color:#fff;background:radial-gradient(circle at 25% 20%,rgba(255,255,255,.18),transparent 22%),linear-gradient(145deg,#092a55,#0c5fad 58%,#0b9693)}
.tg-empty-chat::before{content:'';position:absolute;inset:0;opacity:.22;background-image:radial-gradient(circle,rgba(255,255,255,.75) 1px,transparent 1px);background-size:30px 30px;mask-image:linear-gradient(to bottom,#000,transparent)}
.tg-empty-chat>*{position:relative}.tg-empty-orbit{width:92px;height:92px;display:grid;place-items:center;position:relative;border:1px solid rgba(255,255,255,.22);border-radius:32px;background:rgba(255,255,255,.13);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 24px 50px -28px #00152f}
.tg-empty-orbit>i{font-size:36px}.tg-empty-orbit span{position:absolute;width:10px;height:10px;border-radius:50%;background:#62f1d1;box-shadow:0 0 18px #62f1d1}.tg-empty-orbit span:nth-child(2){top:10px;right:9px}.tg-empty-orbit span:nth-child(3){bottom:7px;left:13px;width:7px;height:7px}
.tg-empty-chat>small{margin-top:8px;font:900 8px var(--f-head);letter-spacing:1.4px;color:#91e9e1}.tg-empty-chat h2{font-size:24px}.tg-empty-chat p{max-width:470px;color:#c9e5f4;font-size:11px;line-height:1.8}.tg-empty-chat>div:last-child{display:flex;gap:7px;flex-wrap:wrap;justify-content:center;margin-top:8px}.tg-empty-chat>div:last-child span{padding:7px 10px;border-radius:99px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.13);font-size:9px;font-weight:800}
.telegram-chat-head{min-height:76px;display:flex;align-items:center;gap:11px;border:0!important;background:linear-gradient(120deg,rgba(255,255,255,.96),rgba(235,249,249,.94))!important;color:#173a55!important}.telegram-head-avatar{position:relative;width:43px;height:43px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(135deg,var(--accent),#0ba29c);color:#fff}.telegram-head-avatar>i{position:absolute;inset-inline-end:1px;bottom:0;width:9px;height:9px;border:2px solid #fff;border-radius:50%;background:var(--good)}
.telegram-chat-head>div:nth-of-type(2){display:grid}.telegram-chat-head small{display:flex;align-items:center;gap:5px;color:#668299;font-size:9px}.telegram-chat-head small i{width:6px;height:6px;border-radius:50%;background:var(--good)}
.ib-mobile-back{display:none}.telegram-conversation .msg{color:#17384c!important}.telegram-conversation .msg.mine{color:#173d34!important}
.admin-workspace .telegram-shell{height:calc(100dvh - 255px);min-height:480px}
@media(max-width:700px){
  .telegram-shell{height:calc(100dvh - 150px);min-height:430px;border-radius:20px;display:flex}
  .admin-workspace .telegram-shell{height:calc(100dvh - 260px);min-height:420px}
  .telegram-shell.has-threads:not(.thread-open) .telegram-conversation{display:none}
  .telegram-shell.has-threads:not(.thread-open) .telegram-people{flex:1;max-height:none}
  .telegram-shell.thread-open .telegram-people{display:none}
  .telegram-shell.thread-open .telegram-conversation{display:flex;flex:1}
  .telegram-people>header{height:76px}.telegram-search{display:flex}
  .telegram-people #ibList{display:block;overflow:auto;padding:4px 8px 13px}.telegram-people .thread-row{min-width:0}
  .telegram-shell.no-threads .telegram-people{flex:0 0 76px;max-height:76px}.telegram-shell.no-threads .telegram-search,.telegram-shell.no-threads #ibList{display:none}
  .telegram-shell.no-threads .telegram-conversation{display:flex;flex:1}
  .ib-mobile-back{display:grid;flex:0 0 34px;width:34px;height:34px}
  .telegram-chat-head{min-height:66px;padding:9px!important}.telegram-chat-head>div:nth-of-type(2){min-width:0;flex:1}.telegram-chat-head>div:nth-of-type(2) b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .tg-empty-chat{padding:20px}.tg-empty-orbit{width:74px;height:74px;border-radius:25px}.tg-empty-chat h2{font-size:20px}.tg-empty-chat p{font-size:10px}.tg-empty-chat>div:last-child span{padding:5px 8px}
}
#page:has(>.admin-shell),#page:has(>#admBody>.telegram-shell){padding-bottom:22px}
@media(min-width:861px){
  #page:has(>.qfile-player){padding-bottom:22px}
  #page:has(>.exam-runtime){padding-bottom:8px}
}
@media(min-width:700px) and (min-height:850px){#page:has(>.qfile-player){display:flex;align-items:center}#page>.qfile-player{width:100%}}

/* =====================================================================
   V11.1 final product polish — alerts, chat, exams and authoring flows
   ===================================================================== */
.notification-center{display:grid;gap:14px}.notification-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:21px;border-radius:22px;background:linear-gradient(125deg,#123e92,#1678df 54%,#0ba89d);color:#fff}.notification-hero::after{content:'';position:absolute;width:180px;height:180px;border:1px solid rgba(255,255,255,.18);border-radius:50%;inset-inline-end:-70px;top:-100px}.notification-hero>div{display:flex;align-items:center;gap:13px;position:relative;z-index:1}.notification-hero>div>span{width:52px;height:52px;display:grid;place-items:center;border-radius:17px;background:rgba(255,255,255,.16);font-size:22px;box-shadow:inset 0 1px 0 rgba(255,255,255,.2)}.notification-hero small{font:900 8px var(--f-head);letter-spacing:1.3px;color:#bfeeff}.notification-hero h3{margin:3px 0;font-size:19px}.notification-hero p{font-size:10.5px;color:#d7effd}.notification-hero>em{position:relative;z-index:1;display:flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.2);border-radius:99px;padding:8px 11px;background:rgba(0,20,60,.18);font-style:normal;font-size:9.5px;font-weight:850;white-space:nowrap}.notification-hero>em.ready{background:rgba(14,139,103,.35)}.notification-toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:9px;border:1px solid var(--border);border-radius:15px;background:var(--panel-2)}.notification-toolbar>span{margin-inline-start:auto;padding:6px 10px;border-radius:99px;background:var(--accent-soft);color:var(--accent);font-size:9.5px;font-weight:900}.notification-list{display:grid;gap:8px;max-height:min(52vh,520px);overflow:auto;padding:2px}.notification-item{position:relative;display:grid;grid-template-columns:45px minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px;border:1px solid var(--border);border-radius:15px;background:var(--panel);transition:.17s}.notification-item:hover{transform:translateY(-2px);box-shadow:0 16px 34px -30px #00152f}.notification-item.unread{border-color:color-mix(in srgb,var(--accent) 42%,var(--border));background:linear-gradient(110deg,var(--accent-soft),var(--panel) 38%)}.notification-item.unread::before{content:'';position:absolute;inset-inline-start:-1px;top:17px;width:4px;height:28px;border-radius:0 7px 7px 0;background:var(--accent)}.notification-icon{width:45px;height:45px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(135deg,var(--accent-soft),rgba(13,168,157,.15));color:var(--accent);font-size:18px}.notification-item h4{font-size:12.5px;margin:0 0 3px}.notification-item p{font-size:10.5px;color:var(--txt-lo);line-height:1.55}.notification-item time{display:block;margin-top:5px;font-size:8.5px;color:var(--txt-dim)}.notification-item>button{width:31px;height:31px;border:0;border-radius:10px;background:var(--good-soft);color:var(--good);cursor:pointer}.notification-empty{min-height:240px;display:grid;place-items:center;align-content:center;text-align:center;gap:7px;color:var(--txt-lo)}.notification-empty>i{width:67px;height:67px;display:grid;place-items:center;border-radius:23px;background:var(--panel-2);color:var(--accent);font-size:29px}.notification-empty span{max-width:320px;font-size:10.5px;line-height:1.7}
.push-admin-card{grid-column:1/-1}.push-health{display:flex;align-items:center;gap:11px;margin:12px 0;padding:13px;border:1px solid color-mix(in srgb,var(--gold) 35%,var(--border));border-radius:14px;background:var(--gold-soft)}.push-health.ready{border-color:color-mix(in srgb,var(--good) 35%,var(--border));background:var(--good-soft)}.push-health>i{font-size:25px;color:var(--gold)}.push-health.ready>i{color:var(--good)}.push-health div{display:grid;gap:3px}.push-health span{font-size:10px;color:var(--txt-lo)}

/* Student and administrator chat now share one coherent message language. */
.student-telegram{height:calc(100dvh - 190px);min-height:500px;grid-template-rows:auto minmax(0,1fr) auto auto;background:linear-gradient(145deg,#dceeff,#d9f5ef)!important;border-color:color-mix(in srgb,var(--accent) 30%,var(--border));box-shadow:0 28px 70px -45px color-mix(in srgb,var(--accent) 75%,#00152d)}.student-connect-head{grid-column:2;grid-row:1;min-height:76px;display:flex;align-items:center;gap:11px;padding:12px 16px;background:linear-gradient(120deg,rgba(255,255,255,.97),rgba(235,249,249,.95));color:#163a55;border-bottom:1px solid rgba(20,80,110,.12)}.connect-avatar{position:relative;width:44px;height:44px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(135deg,var(--accent),#0ba49a);color:#fff;font-size:18px}.connect-avatar i{position:absolute;width:9px;height:9px;border:2px solid #fff;border-radius:50%;background:#15ae7c;bottom:0;right:0}.student-connect-head>div:nth-child(2){display:grid;flex:1}.student-connect-head small{font:900 8px var(--f-head);letter-spacing:1.1px;color:#16859a}.student-connect-head b{font-size:14px}.student-connect-head span{font-size:9px;color:#6b8496}.student-connect-head>em{display:flex;gap:6px;align-items:center;border-radius:99px;background:#e0f5ee;color:#12836b;padding:7px 10px;font-style:normal;font-size:9px;font-weight:900}.student-telegram .chat-recipients{grid-row:1/5!important;background:linear-gradient(180deg,#082d54,#0a203a 46%,#08283c)!important;border:0!important;color:#dcebf6;padding:14px!important}.student-telegram .chat-recipients::before{content:'CONVERSATIONS';padding:9px 7px 12px;color:#62d9d0;font:900 8px var(--f-head);letter-spacing:1.2px}.student-telegram .chat-recipients .chip{color:#b9cddd!important}.student-telegram .chat-recipients .chip.on{color:#fff!important}.student-telegram .chat-scroll{grid-column:2;grid-row:2;background:transparent!important;padding:20px clamp(10px,3vw,34px)!important}.student-telegram #recordState{grid-column:2;grid-row:3}.student-telegram .chat-compose{grid-column:2;grid-row:4;background:rgba(255,255,255,.88)!important}.message-line{display:flex;align-items:flex-end;gap:7px;width:100%}.message-line.mine{justify-content:flex-end}.message-line.theirs{justify-content:flex-start}.message-avatar{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;border-radius:11px;background:rgba(255,255,255,.76);border:1px solid rgba(25,82,110,.12);font-size:15px;box-shadow:0 8px 18px -14px #00223a}.telegram-conversation .message-line.mine{justify-content:flex-end}.telegram-conversation .message-line.theirs{justify-content:flex-start}.message-line .msg{position:relative;max-width:min(72%,690px)!important;min-width:88px;padding:11px 13px 9px!important;border:0!important;border-radius:18px!important;box-shadow:0 15px 28px -24px rgba(0,38,68,.75)!important}.message-line .msg.mine{background:linear-gradient(135deg,#176fe0,#0d9eaa)!important;color:#fff!important;border-bottom-inline-end-radius:5px!important}.message-line .msg.theirs{background:rgba(255,255,255,.94)!important;color:#183b54!important;border-bottom-inline-start-radius:5px!important}.message-line .msg::after{display:none!important}.message-line .who{color:inherit!important;opacity:.72;font-size:9px;margin-bottom:5px}.message-meta{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:6px;border:0!important}.message-meta time,.message-meta span,.message-line .message-state{font-size:8px!important;color:inherit!important;opacity:.6;text-decoration:none!important;margin:0!important}.message-rich-card{box-shadow:none}.telegram-conversation{background:linear-gradient(145deg,#deefff,#def6ef)!important;background-image:radial-gradient(circle at 16px 16px,rgba(20,89,125,.055) 1px,transparent 1px)!important;background-size:30px 30px!important}.telegram-chat-head{padding:10px 15px!important}.telegram-admin-actions{margin-inline-start:auto}.telegram-people>header span{background:transparent!important;color:#fff!important;width:auto!important;height:auto!important;min-width:0!important;border-radius:0!important;display:grid!important;place-items:initial!important}.telegram-people>header span small{color:#bfeefa!important}.telegram-people>header span b{color:#fff!important}
body[data-theme="dark"] .student-telegram,body[data-theme="dark"] .telegram-conversation{background:linear-gradient(145deg,#0d2b43,#0c3841)!important;background-image:radial-gradient(circle at 16px 16px,rgba(115,200,220,.07) 1px,transparent 1px)!important;background-size:30px 30px!important}body[data-theme="dark"] .student-connect-head,body[data-theme="dark"] .telegram-chat-head{background:linear-gradient(120deg,#122d45,#103a44)!important;color:#eef7fb!important}body[data-theme="dark"] .student-connect-head span{color:#9bb5c6}body[data-theme="dark"] .message-line .msg.theirs{background:#15364f!important;color:#ecf5fa!important}body[data-theme="dark"] .message-avatar{background:#173a51;border-color:#28536b}

/* Question authoring and CSV onboarding */
.question-file-onboard{display:grid;gap:16px}.qfo-steps{display:grid;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:9px;padding:13px;border-radius:16px;background:var(--panel-2)}.qfo-steps span{display:flex;align-items:center;gap:7px;color:var(--txt-lo);font-size:10px;font-weight:850}.qfo-steps span b{width:27px;height:27px;display:grid;place-items:center;border-radius:9px;background:var(--panel);border:1px solid var(--border)}.qfo-steps span.on{color:var(--accent)}.qfo-steps span.on b{background:var(--accent);color:#fff;border-color:var(--accent)}.qfo-steps>i{height:2px;background:var(--border)}.csv-sample-strip{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:12px;border:1px solid color-mix(in srgb,var(--good) 35%,var(--border));border-radius:14px;background:var(--good-soft)}.csv-sample-strip b{font-size:11px;color:var(--good)}.csv-sample-strip a{border:1px solid color-mix(in srgb,var(--good) 38%,var(--border));border-radius:99px;padding:5px 9px;background:var(--panel);color:var(--good);font-size:9px;font-weight:900;text-decoration:none}.csv-sample-strip span{flex-basis:100%;font-size:9.5px;color:var(--txt-lo)}.manual-question-actions{display:flex;gap:8px;margin-top:13px;position:sticky;bottom:-1px;z-index:4;padding:10px;background:color-mix(in srgb,var(--panel-solid) 94%,transparent);border-top:1px solid var(--border)}#leType{position:static!important;top:auto!important;z-index:auto!important;margin:0 0 14px!important;padding:4px!important;display:inline-flex!important;width:auto!important;border:1px solid var(--border);border-radius:13px;background:var(--panel-2)!important}.modal:has(#leType) .modal-body{padding-top:14px}.modal:has(#leType) .form-grid{align-items:start}.import-routing{margin:12px 0}

/* Folder picker stays smart when a stage contains many folders. */
.exam-folder-browser{display:grid;grid-template-rows:auto minmax(185px,min(40vh,350px)) auto;min-width:0}.exam-browser-bar{flex-wrap:wrap}.exam-browser-bar>div{min-width:min(240px,100%)}.exam-folder-grid{grid-template-columns:repeat(auto-fit,minmax(135px,1fr));align-content:start;min-height:0!important;max-height:none;overflow:auto;overscroll-behavior:contain}.exam-folder-card{min-width:0}.exam-folder-card b{overflow-wrap:anywhere}.exam-selected{max-height:95px;overflow:auto;align-content:flex-start}.exam-browser-bar #ewSelectCurrent{flex:0 0 auto}

/* Compact, predictable navigation for all question screens. */
.exam-runtime:not(.theme-ministry)>.qmap,.exam-runtime:not(.theme-ministry) .qcard>.qmap{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:7px;width:100%;margin:13px 0;overflow:visible}.exam-runtime:not(.theme-ministry)>.qmap .qm,.exam-runtime:not(.theme-ministry) .qcard>.qmap .qm{width:100%;height:39px}.exam-runtime>.q-nav,.exam-runtime .qcard+.q-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;max-width:520px!important;margin:14px auto 0!important}.exam-runtime>.q-nav .btn:last-child,.exam-runtime .qcard+.q-nav .btn:last-child{justify-self:end}.exam-runtime>.q-nav .btn:first-child,.exam-runtime .qcard+.q-nav .btn:first-child{justify-self:start}.theme-practice>.qmap{grid-template-columns:repeat(8,minmax(38px,1fr))!important}.online-exam-footer{justify-content:center!important;gap:8px!important}.online-exam-footer .btn{flex:0 1 150px}.olt-footer{justify-content:center;gap:7px}.olt-footer .olt-btn{flex:0 1 145px}

/* Keep submit, feedback and navigation visible on desktop-height screens. */
@media(min-width:1000px) and (max-height:840px){
  #page:has(>.qfile-player){height:100%;min-height:0;overflow:hidden;padding-block:8px 10px}
  #page>.qfile-player{height:100%;min-height:0}
  #page>.qfile-player>:first-child{height:100%;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto}
  #page>.qfile-player main{min-height:0;overflow:hidden}
  #page>.qfile-player main>aside,#page>.qfile-player main>section{min-height:0;overflow:auto}
  #page>.qfile-player [data-mf-stem]{font-size:clamp(15px,1.25vw,18px)!important;line-height:1.62!important}
  #page>.qfile-player [data-mf-options]{gap:7px}
  #page>.qfile-player .opt{min-height:48px!important;padding-block:7px!important}
  #page>.qfile-player [data-mf-explanation],#page>.qfile-player [data-mf-notes]{margin-top:8px}
  #page>.qfile-player footer{position:relative;z-index:5}
}

/* Exam hub — vivid but useful, with current and completed zones. */
.exam-hub{display:grid;gap:15px}.exam-hub-hero{position:relative;overflow:hidden;min-height:220px;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:30px clamp(22px,4vw,48px);border-radius:26px;background:linear-gradient(125deg,#352487,#6552da 43%,#167bd6 72%,#0bb5a4);background-size:180% 180%;animation:examHubAurora 14s ease-in-out infinite;color:#fff;box-shadow:0 30px 70px -45px #302087}.exam-hub-hero::before,.exam-hub-hero::after{content:'';position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.15)}.exam-hub-hero::before{width:260px;height:260px;right:-120px;top:-140px}.exam-hub-hero::after{width:150px;height:150px;left:36%;bottom:-115px}.exam-hero-copy{position:relative;z-index:1}.exam-hero-copy>span{font:900 8px var(--f-head);letter-spacing:1.6px;color:#c7f4ff}.exam-hero-copy h1{margin:5px 0;font-size:clamp(22px,3vw,36px)}.exam-hero-copy p{max-width:610px;color:#dceaff;font-size:11.5px;line-height:1.75}.exam-hero-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.exam-hub-hero .btn{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.2);color:#fff}.exam-new-burst{position:relative;overflow:hidden;min-height:44px;display:flex;align-items:center;gap:8px;border:0;border-radius:13px;background:#fff;color:#3847a6;padding:0 16px;font:850 12px var(--f-body);cursor:pointer;box-shadow:0 16px 32px -20px #001a56}.exam-new-burst::after{content:'';position:absolute;inset:-80% auto auto -50%;width:50%;height:260%;background:linear-gradient(105deg,transparent,#ffffffaa,transparent);animation:examShine 4s ease-in-out infinite}.exam-level-orb{position:relative;z-index:1;width:150px;height:150px;flex:0 0 150px;display:grid;place-items:center;align-content:center;border-radius:48px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(12px);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 25px 50px -32px #00194d}.exam-level-orb small{font:900 8px var(--f-head);letter-spacing:1px;color:#c6f4f0}.exam-level-orb strong{font-size:40px}.exam-level-orb span{font-size:9px;color:#dceaff}.exam-kpi-strip{display:grid;grid-template-columns:190px 190px minmax(0,1fr);gap:10px}.exam-kpi-strip>article{display:flex;align-items:center;gap:11px;padding:14px 16px;border:1px solid var(--border);border-radius:17px;background:var(--panel);box-shadow:0 15px 35px -33px #00182e}.exam-kpi-strip>article>i{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:var(--accent-soft);color:var(--accent);font-size:18px}.exam-kpi-strip article:nth-child(2)>i{background:var(--good-soft);color:var(--good)}.exam-kpi-strip b{display:block;font-size:19px}.exam-kpi-strip span{font-size:9px;color:var(--txt-lo)}.exam-progress-mini{justify-content:space-between!important}.exam-spark-bars{height:48px;min-width:190px;display:flex;align-items:end;gap:5px}.exam-spark-bars i{position:relative;flex:1;height:var(--h);min-height:6px;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,#20c6b2,var(--accent));animation:sparkRise .55s ease both}.exam-spark-bars b{position:absolute;opacity:0;top:-15px;font-size:7px}.exam-spark-bars i:hover b{opacity:1}.exam-hub-section{padding:17px;border:1px solid var(--border);border-radius:21px;background:linear-gradient(145deg,var(--panel),color-mix(in srgb,var(--accent) 4%,var(--panel)))}.completed-zone{background:linear-gradient(145deg,var(--panel),color-mix(in srgb,var(--good) 4%,var(--panel)))}.exam-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.exam-section-title>div{display:flex;align-items:center;gap:10px}.exam-section-title>div>span{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(135deg,var(--accent),#6352d8);color:#fff}.completed-zone .exam-section-title>div>span{background:linear-gradient(135deg,#12a381,#0a8c9c)}.exam-section-title h2{font-size:15px}.exam-section-title p{font-size:9.5px;color:var(--txt-lo)}.exam-section-title>em{min-width:32px;height:32px;display:grid;place-items:center;border-radius:11px;background:var(--panel-2);font-style:normal;font-weight:900}.exam-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:10px}.exam-hub-card{display:grid;grid-template-columns:50px minmax(0,1fr);gap:11px;padding:13px;border:1px solid var(--border);border-radius:17px;background:var(--panel-solid);transition:.18s}.exam-hub-card:hover{transform:translateY(-3px);box-shadow:0 20px 40px -34px #00172e}.exam-hub-card.live{border-color:color-mix(in srgb,var(--gold) 50%,var(--border));background:linear-gradient(120deg,var(--gold-soft),var(--panel-solid) 35%)}.exam-hub-card.completed{border-color:color-mix(in srgb,var(--good) 32%,var(--border))}.exam-card-icon{width:50px;height:50px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(135deg,var(--accent),#6553d9);color:#fff;font-size:21px}.exam-hub-card.live .exam-card-icon{background:linear-gradient(135deg,#e6a62e,#ef7c39)}.exam-hub-card.completed .exam-card-icon{background:linear-gradient(135deg,#13a67e,#0c92a0)}.exam-card-copy h3{font-size:13px;margin:5px 0}.exam-card-copy p{font-size:9.5px;color:var(--txt-lo)}.exam-card-copy small{display:block;margin-top:5px;color:var(--txt-dim);font-size:8.5px}.exam-card-progress{height:6px;margin-top:8px;border-radius:99px;background:var(--panel-2);overflow:hidden}.exam-card-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ef9a2d,#f5c349)}.exam-card-actions{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap;padding-top:9px;border-top:1px solid var(--border-soft)}.exam-hub-empty{grid-column:1/-1;min-height:150px;display:grid;place-items:center;align-content:center;gap:6px;text-align:center;color:var(--txt-lo)}.exam-hub-empty>i{font-size:31px;color:var(--accent)}.exam-hub-empty b{color:var(--txt-hi);font-size:12px}.exam-hub-empty span{font-size:9.5px}@keyframes examHubAurora{50%{background-position:100% 70%}}@keyframes examShine{0%,60%,100%{translate:-170% 0}28%{translate:500% 0}}@keyframes sparkRise{from{height:0}}

/* Public page: interactive medical aurora rather than a flat marketing sheet. */
#auth.is-welcome{background:radial-gradient(circle at 8% 12%,rgba(25,157,210,.13),transparent 28%),radial-gradient(circle at 92% 78%,rgba(15,185,153,.13),transparent 30%),linear-gradient(145deg,#edf6fb,#f6fbfc)!important}.public-landing::before{content:'';position:fixed;inset:0;pointer-events:none;opacity:.45;background-image:radial-gradient(circle,rgba(24,105,156,.13) 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(120deg,#000,transparent 58%)}.public-brand i{background:linear-gradient(135deg,#155ee8,#0bb5aa)!important;animation:brandBreath 4.5s ease-in-out infinite}.public-copy{position:relative}.public-badge{box-shadow:0 12px 26px -23px #087d75;animation:badgeFloat 3.5s ease-in-out infinite}.public-copy h1{background:linear-gradient(115deg,#0b2944,#125fa2 55%,#0a8f83);-webkit-background-clip:text;background-clip:text;color:transparent!important}.public-primary{position:relative;overflow:hidden;background:linear-gradient(120deg,#1663e8,#0ca8a3)!important;border:0!important;box-shadow:0 20px 38px -22px #0b5ac9!important}.public-primary::after{content:'';position:absolute;inset:-80% auto auto -50%;width:45%;height:260%;background:linear-gradient(105deg,transparent,#ffffffaa,transparent);animation:examShine 4.3s ease-in-out infinite}.public-flow-card{border-color:rgba(25,115,180,.24)!important;box-shadow:0 42px 90px -50px rgba(6,60,107,.75)!important;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(238,250,250,.92))!important;transition:transform .25s ease,box-shadow .25s ease;transform-style:preserve-3d}.public-flow-card:hover{transform:translateY(-7px) rotateX(1.1deg);box-shadow:0 50px 95px -48px rgba(6,82,137,.82)!important}.welcome-slide-stage{border-radius:16px;overflow:hidden}.welcome-content-slide{background:radial-gradient(circle at 30% 20%,rgba(31,128,222,.13),transparent 25%),linear-gradient(145deg,#f4f9ff,#ecfbf8)!important}.welcome-flow .react-flow__node-default.is-active{box-shadow:0 0 0 5px rgba(18,113,183,.08),0 20px 35px -18px rgba(18,103,181,.8)!important}.public-trust span{padding:7px 10px;border-radius:99px;background:rgba(255,255,255,.65);border:1px solid rgba(20,92,140,.09)}@keyframes brandBreath{50%{box-shadow:0 12px 34px -8px rgba(17,125,190,.55);transform:translateY(-2px)}}@keyframes badgeFloat{50%{transform:translateY(-4px)}}
body[data-theme="dark"] #auth.is-welcome{background:radial-gradient(circle at 10% 10%,rgba(22,104,190,.2),transparent 30%),radial-gradient(circle at 90% 80%,rgba(12,159,145,.16),transparent 30%),#071a2c!important}body[data-theme="dark"] .public-flow-card{background:linear-gradient(145deg,#0d263b,#0c333b)!important}body[data-theme="dark"] .public-copy h1{background:linear-gradient(115deg,#f1f7fb,#8fcfff 55%,#6de0ce);-webkit-background-clip:text;background-clip:text;color:transparent!important}body[data-theme="dark"] .public-trust span{background:rgba(12,45,68,.7);border-color:#1b455e}

@media(max-width:900px){
  .exam-kpi-strip{grid-template-columns:1fr 1fr}.exam-progress-mini{grid-column:1/-1}.content-center .explorer-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr) repeat(2,auto)}.content-center .explorer-toolbar .explorer-path{grid-column:2/5;grid-row:1}.content-center .explorer-toolbar #xpBackup,.content-center .explorer-toolbar #xpRestore{grid-row:2}.content-center .explorer-toolbar #xpCreate,.content-center .explorer-toolbar #xpUpload{grid-row:2}.content-center .explorer-toolbar .btn{width:auto!important;padding-inline:11px!important;font-size:10px!important}.content-center .explorer-toolbar .btn i{font-size:13px!important}
}
@media(max-width:700px){
  .notification-hero{align-items:flex-start;flex-direction:column}.notification-hero>em{white-space:normal}.notification-toolbar>span{margin-inline-start:0}.student-telegram{height:calc(100dvh - 145px);min-height:430px;display:flex!important;flex-direction:column}.student-connect-head{flex:0 0 auto;min-height:60px;padding:8px 10px}.student-connect-head span,.student-connect-head>em{display:none}.connect-avatar{width:37px;height:37px;border-radius:12px}.student-telegram .chat-recipients{order:2;flex:0 0 auto;display:flex!important;flex-direction:row!important;max-height:58px;padding:8px!important}.student-telegram .chat-recipients::before{display:none}.student-telegram .chat-scroll{order:3;flex:1;min-height:0}.student-telegram #recordState{order:4}.student-telegram .chat-compose{order:5}.message-line .msg{max-width:86%!important}.message-avatar{width:27px;height:27px;flex-basis:27px}.telegram-admin-actions{display:grid;grid-template-columns:repeat(3,34px)}.telegram-admin-actions .btn{width:34px!important}.exam-hub-hero{align-items:flex-start;padding:23px;min-height:0}.exam-level-orb{width:96px;height:96px;flex-basis:96px;border-radius:31px}.exam-level-orb strong{font-size:27px}.exam-level-orb span{display:none}.exam-card-grid{grid-template-columns:1fr}.exam-folder-browser{grid-template-rows:auto minmax(190px,300px) auto}.exam-browser-bar{display:grid;grid-template-columns:auto minmax(0,1fr)}.exam-browser-bar>div{min-width:0}.exam-browser-bar #ewSelectCurrent{grid-column:1/-1;width:100%}.exam-folder-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.theme-practice>.qmap{grid-template-columns:repeat(6,minmax(36px,1fr))!important}.exam-runtime>.q-nav,.exam-runtime .qcard+.q-nav{position:sticky;bottom:7px;grid-template-columns:1fr auto 1fr;max-width:100%!important}.exam-runtime>.q-nav .btn,.exam-runtime .qcard+.q-nav .btn{font-size:10px!important}.qfo-steps{grid-template-columns:1fr}.qfo-steps>i{display:none}.qfo-steps span:not(.on){display:none}
}
@media(max-width:520px){.exam-hub-hero{display:grid}.exam-level-orb{position:absolute;inset-inline-end:15px;top:15px;width:75px;height:75px;flex-basis:75px;border-radius:24px}.exam-level-orb small{font-size:6px}.exam-level-orb strong{font-size:22px}.exam-hero-copy{padding-top:58px}.exam-kpi-strip{grid-template-columns:1fr}.exam-progress-mini{grid-column:auto}.exam-spark-bars{min-width:130px}.exam-folder-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.exam-folder-card{grid-template-columns:31px minmax(0,1fr) auto;padding:8px}.exam-folder-icon{font-size:27px}.theme-practice>.qmap{grid-template-columns:repeat(5,minmax(34px,1fr))!important}
  .content-center .explorer-toolbar{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:7px;padding:10px}
  .content-center .explorer-toolbar #xpUp{grid-column:1;grid-row:1;width:100%}
  .content-center .explorer-toolbar .explorer-path{grid-column:2/5!important;grid-row:1!important;width:auto;min-width:0}
  .content-center .explorer-toolbar #xpCreate{grid-column:1/3;grid-row:2;width:100%!important}
  .content-center .explorer-toolbar #xpUpload{grid-column:3/5;grid-row:2;width:100%!important}
  .content-center .explorer-toolbar #xpBackup{grid-column:1/3;grid-row:3;width:100%!important}
  .content-center .explorer-toolbar #xpRestore{grid-column:3/5;grid-row:3;width:100%!important}
}

/* ============================== v12: profile settings block ============================== */
.scale-row{display:flex;align-items:center;gap:10px;margin-top:4px}
.scale-row input[type="range"]{flex:1;accent-color:var(--accent);height:26px;cursor:pointer}
.scale-row b{min-width:44px;text-align:center;font-size:13px;color:var(--accent-2)}
.scale-row .icon-btn{width:34px;height:34px;flex-shrink:0}

/* ============================== v12: landing page sections ============================== */
.public-nav-links{display:flex;align-items:center;gap:4px;margin-inline-start:8px}
.public-nav-links button,.public-nav-links a{border:0;background:transparent;cursor:pointer;color:#3d5a72;font:700 13px var(--f-body);padding:9px 13px;border-radius:11px;text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:.18s}
.public-nav-links button:hover,.public-nav-links a:hover{background:rgba(20,102,184,.08);color:#0f4c86}
.public-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;padding:10px 0 8px;margin-top:6px}
.ps-tile{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;background:rgba(255,255,255,.72);border:1px solid rgba(18,90,150,.12);border-radius:19px;padding:20px 12px;box-shadow:0 22px 44px -38px rgba(7,49,81,.5)}
.ps-tile i{font-size:21px;color:#1272b4;background:#e8f3fb;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;margin-bottom:5px}
.ps-tile b{font:800 30px/1 var(--f-head);color:#0b2944;font-variant-numeric:tabular-nums}
.ps-tile span{font-size:12px;font-weight:700;color:#63788c}
.public-sec-head{max-width:640px;margin:0 auto 30px;text-align:center}
.public-sec-head h2{margin:0;font:800 clamp(24px,3vw,36px)/1.35 var(--f-head);color:#0b2944}
.public-sec-head p{margin:10px 0 0;color:#5d7488;font-size:14.5px;line-height:1.85}
.public-features{padding:clamp(40px,6vw,80px) 0 20px}
.pf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:15px}
.pf-card{background:rgba(255,255,255,.82);border:1px solid rgba(18,90,150,.12);border-radius:21px;padding:24px 20px;transition:transform .22s ease,box-shadow .22s ease}
.pf-card:hover{transform:translateY(-5px);box-shadow:0 30px 55px -40px rgba(7,49,81,.65)}
.pf-ic{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;font-size:21px;color:#fff;background:linear-gradient(135deg,#1663e8,#0ca8a3);box-shadow:0 12px 24px -14px #0b5ac9}
.pf-card h3{margin:15px 0 8px;font:800 16.5px var(--f-head);color:#10344f}
.pf-card p{margin:0;color:#61798d;font-size:13px;line-height:1.85}
.public-reviews{padding:clamp(40px,6vw,80px) 0 25px}
.pr-head{display:flex;align-items:end;justify-content:space-between;gap:16px;text-align:start;max-width:none}
.pr-head h2{text-align:start}
.pr-head p{text-align:start;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.pr-scroll{display:grid;grid-auto-flow:column;grid-auto-columns:min(340px,82vw);gap:14px;overflow-x:auto;padding:6px 2px 16px;scroll-snap-type:x mandatory;scrollbar-width:thin}
.pr-card{scroll-snap-align:start;background:rgba(255,255,255,.85);border:1px solid rgba(18,90,150,.12);border-radius:21px;padding:20px;display:flex;flex-direction:column;gap:11px;box-shadow:0 24px 48px -42px rgba(7,49,81,.55)}
.pr-stars{display:inline-flex;gap:2px;color:#e9a73b;font-size:13px}
.pr-card p{margin:0;flex:1;color:#33506a;font-size:13.5px;line-height:1.95;font-weight:600}
.pr-card footer{display:flex;align-items:center;gap:10px}
.pr-av{width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,#e8f3fb,#dff2ee);color:#0f6f9e;display:grid;place-items:center;font:800 16px var(--f-head);flex-shrink:0}
.pr-card footer b{display:block;font-size:13.5px;color:#123a58}
.pr-card footer small{color:#6c8296;font-size:11px;font-weight:700}
.pr-empty{grid-auto-columns:auto;display:flex;flex-direction:column;align-items:center;gap:6px;padding:38px 20px;border:1.5px dashed rgba(18,90,150,.25);border-radius:21px;color:#5d7488;text-align:center;width:100%}
.pr-empty i{font-size:28px;color:#1272b4}
.pr-empty b{font:800 16px var(--f-head);color:#12344f}
.pr-skeleton{height:190px;border-radius:21px;background:linear-gradient(100deg,rgba(18,90,150,.06) 40%,rgba(18,90,150,.12) 50%,rgba(18,90,150,.06) 60%);background-size:200% 100%;animation:prShimmer 1.3s infinite}
@keyframes prShimmer{to{background-position:-200% 0}}
.pr-rate{display:flex;gap:6px;justify-content:center;margin-bottom:14px}
.pr-rate button{border:0;background:transparent;cursor:pointer;font-size:26px;color:#d3dde6;transition:transform .15s,color .15s;padding:2px}
.pr-rate button.on{color:#e9a73b}
.pr-rate button:hover{transform:scale(1.18)}
.public-telegram{padding:clamp(30px,5vw,60px) 0 30px}
.tg-card{display:flex;align-items:center;gap:22px;background:linear-gradient(120deg,#0d3f74,#0d5c8f 55%,#0a7d74);border-radius:25px;padding:clamp(22px,4vw,38px);color:#fff;box-shadow:0 40px 80px -50px rgba(7,49,81,.9);position:relative;overflow:hidden}
.tg-card::after{content:'';position:absolute;inset-inline-end:-70px;top:-70px;width:240px;height:240px;border-radius:50%;background:rgba(255,255,255,.07)}
.tg-ic{width:64px;height:64px;border-radius:20px;background:rgba(255,255,255,.14);display:grid;place-items:center;font-size:31px;flex-shrink:0}
.tg-copy{flex:1}
.tg-copy h2{margin:0;font:800 clamp(18px,2.4vw,26px) var(--f-head)}
.tg-copy p{margin:7px 0 0;color:#cfe6f2;font-size:13.5px;line-height:1.8;max-width:520px}
.tg-btn{display:inline-flex;align-items:center;gap:9px;background:#fff;color:#0d5c8f;border-radius:15px;padding:13px 22px;font:800 14px var(--f-head);text-decoration:none;transition:transform .18s;position:relative;z-index:1}
.tg-btn:hover{transform:translateY(-2px)}
.pf-tg{display:inline-flex;align-items:center;gap:6px;color:#1272b4;text-decoration:none;font-weight:800}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.ps-tile b{transition:none}}
@media (max-width:680px){
  .public-nav-links{display:none}
  .pr-head{flex-direction:column;align-items:stretch}
  .pr-head .public-secondary{width:100%;justify-content:center}
  .tg-card{flex-direction:column;text-align:center}
  .tg-copy p{max-width:none}
  .tg-btn{width:100%;justify-content:center}
}
body[data-theme="dark"] .public-nav-links button,body[data-theme="dark"] .public-nav-links a{color:#a9c2d6}
body[data-theme="dark"] .public-nav-links button:hover,body[data-theme="dark"] .public-nav-links a:hover{background:rgba(120,190,255,.1);color:#dbeeff}
body[data-theme="dark"] .ps-tile,body[data-theme="dark"] .pf-card,body[data-theme="dark"] .pr-card{background:#0d263b;border-color:#1e405a}
body[data-theme="dark"] .ps-tile b{color:#eef6fc}
body[data-theme="dark"] .ps-tile span,body[data-theme="dark"] .pf-card p,body[data-theme="dark"] .pr-card p{color:#9bb0c1}
body[data-theme="dark"] .ps-tile i{background:#123454;color:#7cc3f2}
body[data-theme="dark"] .public-sec-head h2,body[data-theme="dark"] .pf-card h3,body[data-theme="dark"] .pr-card footer b{color:#eef6fc}
body[data-theme="dark"] .public-sec-head p{color:#9bb0c1}
body[data-theme="dark"] .pr-av{background:#123454;color:#7cc3f2}
body[data-theme="dark"] .pr-empty{border-color:#2a4d66;color:#9bb0c1}
body[data-theme="dark"] .pr-empty b{color:#e5eff6}
body[data-theme="dark"] .pr-skeleton{background:linear-gradient(100deg,rgba(122,180,230,.07) 40%,rgba(122,180,230,.14) 50%,rgba(122,180,230,.07) 60%);background-size:200% 100%}

/* ============================== v12: chat polish ============================== */
.message-line{display:flex;align-items:flex-end;gap:7px}
.message-line.grouped{margin-top:-5px}
.message-line.grouped .message-avatar{visibility:hidden}
.message-line.grouped .msg{border-start-start-radius:17px!important;border-start-end-radius:17px!important}
.chat-jump{position:absolute;bottom:86px;inset-inline-end:18px;z-index:5;width:42px;height:42px;border:1px solid var(--border);border-radius:50%;background:var(--panel-solid);color:var(--accent);font-size:17px;cursor:pointer;box-shadow:0 14px 30px -16px rgba(4,39,68,.7);display:grid;place-items:center;transition:transform .15s}
.chat-jump:hover{transform:translateY(-2px)}
.chat-jump span{position:absolute;top:-6px;inset-inline-end:-4px;min-width:19px;height:19px;border-radius:99px;background:var(--bad);color:#fff;font-size:10px;font-weight:800;display:grid;place-items:center;padding:0 5px}
.student-telegram{position:relative}
.mic-btn.recording{background:var(--bad)!important;color:#fff!important;animation:pulse 1.2s infinite}
.recording-pill{padding:9px 14px;background:color-mix(in srgb,var(--bad) 8%,var(--panel-solid));border-top:1px solid var(--border)}
.recording-pill .icon-btn{width:28px;height:28px;margin-inline-start:8px}
.chat-empty{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--txt-lo)}
.chat-empty b{font-family:var(--f-head);font-size:15px;color:var(--txt-hi)}
.chat-empty span{font-size:12px}
.chat-compose textarea{resize:none;overflow-y:auto;line-height:1.6}
.msg audio{width:min(270px,58vw);height:40px}
@media (max-width:760px){.chat-jump{bottom:120px}}

/* ============================== v12.1: touch performance (all devices with touch, ANY width —
   the old rules were width-based and missed iPads) + selection guards ============================== */
button,.btn,.icon-btn,.chip,.nav-item,.bb-item,.tabs button,.switch,.ex-item,.explorer-item,
.account-menu button,.bb-item,.sec-title,.tb-user,.brand-row,.chat-jump,.pr-rate button{
  -webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
@media (pointer:coarse){
  *,*::before,*::after{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  .card,.modal,.chat-recipients,.chat-compose,.tb-user,.explorer-toolbar,.account-menu{background:var(--panel-solid)!important}
  /* the sidebar keeps its dark brand gradient (cheap — no blur involved) */
  .topbar{background:var(--bg)!important}
  /* the decorative grid/radial overlay repaints on every scroll frame on tablets */
  body::after{display:none!important}
  .ex-item,.card.stat,.msg,.pf-card,.pr-card,.ps-tile,.note-row{box-shadow:none!important}
  .btn:hover,.pf-card:hover,.tg-btn:hover,.chat-jump:hover{transform:none}
  .page{contain:layout paint}
}

/* ============================== v12.1: legendary landing ============================== */
/* aurora: pre-blurred radial gradients (no filter:blur → cheap on tablets) drifting slowly */
.aurora{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.aurora i{position:absolute;border-radius:50%;opacity:.55}
.aurora i:nth-child(1){width:56vw;height:56vw;inset-inline-start:-18vw;top:-22vw;background:radial-gradient(circle,rgba(23,105,232,.2),transparent 62%);animation:auroraA 19s ease-in-out infinite alternate}
.aurora i:nth-child(2){width:48vw;height:48vw;inset-inline-end:-16vw;top:8vh;background:radial-gradient(circle,rgba(12,168,163,.18),transparent 62%);animation:auroraB 23s ease-in-out infinite alternate}
.aurora i:nth-child(3){width:40vw;height:40vw;inset-inline-start:26vw;bottom:-22vw;background:radial-gradient(circle,rgba(84,120,255,.13),transparent 60%);animation:auroraA 27s ease-in-out infinite alternate-reverse}
@keyframes auroraA{to{transform:translate(6vw,5vh) scale(1.12)}}
@keyframes auroraB{to{transform:translate(-5vw,7vh) scale(.92)}}
.public-landing>*{position:relative;z-index:1}
.public-landing .aurora{z-index:0}
/* animated heartbeat line across the hero */
.public-hero{position:relative}
.hero-ecg{position:absolute;inset-inline:0;bottom:-14px;width:100%;height:52px;pointer-events:none;opacity:.5}
.hero-ecg path{fill:none;stroke:#1596c8;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2400;stroke-dashoffset:2400;animation:ecgDraw 7s linear infinite;filter:drop-shadow(0 0 6px rgba(18,150,200,.55))}
@keyframes ecgDraw{0%{stroke-dashoffset:2400}70%{stroke-dashoffset:0;opacity:1}88%{opacity:0}100%{stroke-dashoffset:0;opacity:0}}
/* living headline: the gradient slowly breathes across the text */
#auth.is-welcome .public-copy h1{background-size:220% auto!important;animation:heroSheen 7s ease-in-out infinite}
@keyframes heroSheen{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
/* primary CTA glow pulse */
#auth.is-welcome .public-primary{animation:ctaGlow 3.4s ease-in-out infinite}
@keyframes ctaGlow{0%,100%{box-shadow:0 20px 38px -22px #0b5ac9}50%{box-shadow:0 20px 46px -18px #0b5ac9,0 0 24px -4px rgba(12,168,163,.55)}}
/* stat tiles: gradient numerals + lift */
.ps-tile{transition:transform .25s ease,box-shadow .25s ease}
.ps-tile:hover{transform:translateY(-5px);box-shadow:0 30px 55px -40px rgba(7,49,81,.7)}
.ps-tile b{background:linear-gradient(120deg,#0c53a8,#0c9a91);-webkit-background-clip:text;background-clip:text;color:transparent}
/* feature cards: gradient hairline sweeps in on hover, icon lifts */
.pf-card{position:relative;overflow:hidden}
.pf-card::before{content:'';position:absolute;inset-inline:0;top:0;height:3px;background:linear-gradient(90deg,#1663e8,#0ca8a3);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.pf-card:hover::before{transform:scaleX(1)}
[dir="rtl"] .pf-card::before{transform-origin:right}
.pf-card:hover .pf-ic{transform:translateY(-4px) scale(1.06)}
.pf-ic{transition:transform .25s ease}
/* review cards: decorative quote + gradient avatar ring */
.pr-card{position:relative}
.pr-card::before{content:'❝';position:absolute;top:8px;inset-inline-end:14px;font-size:34px;line-height:1;color:rgba(18,103,181,.14)}
.pr-av{box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(18,140,170,.35)}
/* telegram band: shine sweep + bobbing plane */
.tg-card::before{content:'';position:absolute;inset:-80% auto auto -40%;width:38%;height:260%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.16),transparent);animation:tgShine 5.2s ease-in-out infinite}
@keyframes tgShine{0%{transform:translateX(0)}55%,100%{transform:translateX(340%)}}
[dir="rtl"] .tg-card::before{animation-name:tgShineR}
@keyframes tgShineR{0%{transform:translateX(0)}55%,100%{transform:translateX(-340%)}}
.tg-ic{animation:tgBob 3.2s ease-in-out infinite}
@keyframes tgBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
/* flow card gets a soft gradient halo */
#auth.is-welcome .public-flow-card::before{border:0;background:radial-gradient(circle,rgba(22,99,232,.12),transparent 70%)}
/* dark mode tuning */
body[data-theme="dark"] .aurora i:nth-child(1){background:radial-gradient(circle,rgba(38,120,240,.22),transparent 62%)}
body[data-theme="dark"] .aurora i:nth-child(2){background:radial-gradient(circle,rgba(16,190,180,.16),transparent 62%)}
body[data-theme="dark"] .hero-ecg path{stroke:#3fc0e8}
body[data-theme="dark"] .ps-tile b{background:linear-gradient(120deg,#8fcfff,#6de0ce);-webkit-background-clip:text;background-clip:text}
body[data-theme="dark"] .pr-av{box-shadow:0 0 0 2px #0d263b,0 0 0 4px rgba(80,180,220,.4)}
/* battery & motion respect */
@media (pointer:coarse){.aurora i{animation:none}.tg-card::before{animation-duration:8s}}
@media (prefers-reduced-motion:reduce){
  .aurora i,.hero-ecg path,#auth.is-welcome .public-copy h1,#auth.is-welcome .public-primary,.tg-card::before,.tg-ic{animation:none!important}
  .hero-ecg path{stroke-dashoffset:0}
}

/* v12.2: leaderboard scales to 100+ students — scrollable list, current student pinned */
#leadList{max-height:430px;overflow-y:auto;overscroll-behavior:contain;padding-inline-end:4px;scrollbar-width:thin;position:relative;border-radius:14px}
#leadList .lead-row{content-visibility:auto;contain-intrinsic-size:auto 62px}
#leadList .lead-row.me{position:sticky;bottom:0;z-index:2;background:var(--panel-solid);border-color:var(--accent);box-shadow:0 -8px 18px -12px rgba(0,0,0,.25)}
#leadList::-webkit-scrollbar{width:7px}
#leadList::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--accent) 35%,transparent);border-radius:99px}

/* v12.2: video lessons + lesson fullscreen */
.video-shell{position:relative;width:100%;aspect-ratio:16/9;background:#000;border-radius:14px;overflow:hidden}
.video-shell iframe,.video-shell video{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}
.video-shell:fullscreen{border-radius:0}
.lesson-body:fullscreen,.lesson-frame:fullscreen{background:var(--panel-solid);padding:26px;overflow:auto}
.modal-fs{margin-inline-end:6px}
.modal-fs i{font-size:14px}

/* v12.2: profile style picker */
.style-row{display:flex;flex-wrap:wrap;gap:8px}
.style-dot{display:flex;flex-direction:column;align-items:center;gap:6px;border:1.5px solid var(--border);background:var(--panel);border-radius:14px;padding:10px 12px;cursor:pointer;min-width:74px;transition:.2s;color:var(--txt-hi)}
.style-dot i{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--sa,#9aa),var(--sb,#dde));display:grid;place-items:center;font-size:13px;color:var(--txt-lo)}
.style-dot span{font-size:11px;font-weight:800}
.style-dot.on{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}
.style-dot:hover{transform:translateY(-2px)}

/* ============================== v12.5: hero flow — free nodes ON the page (no iframe) ============================== */
.public-hero.has-demo{grid-template-columns:minmax(0,.76fr) minmax(600px,1.24fr)}
.hero-flow{position:relative;min-height:540px;user-select:none;-webkit-user-select:none}
.hf-edges{position:absolute;inset:0;pointer-events:none;overflow:visible}
.hf-edge{fill:none;stroke:rgba(22,112,183,.5);stroke-width:2.4;stroke-dasharray:7 8;stroke-linecap:round;animation:hfDash 15s linear infinite}
@keyframes hfDash{to{stroke-dashoffset:-260}}
.hf-dot{fill:#1670b7;filter:drop-shadow(0 0 5px rgba(22,112,183,.75))}
.hf-node{position:absolute;border:1px solid rgba(255,255,255,.95);border-radius:15px;background:rgba(255,255,255,.9);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 16px 42px -22px rgba(7,49,81,.5);cursor:grab;z-index:2;transition:box-shadow .2s}
.hf-node.drag{cursor:grabbing;z-index:6;box-shadow:0 28px 60px -24px rgba(7,49,81,.65)}
.hf-head{padding:9px 13px 7px;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#5d7488;border-bottom:1px solid rgba(20,102,184,.09)}
.hf-body{padding:11px 13px 12px}
.hf-row{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.hf-row:last-child{margin-bottom:0}
.hf-row span{font-size:10px;font-weight:900;color:#7d92a3;min-width:28px}
.hf-row b{font-size:12px;color:#0f5c9e;min-width:34px;text-align:end;font-variant-numeric:tabular-nums}
.hf-row input[type="range"]{flex:1;appearance:none;-webkit-appearance:none;height:7px;border-radius:99px;outline:none;cursor:pointer;
  background:linear-gradient(90deg,#1596c8 0 var(--fill,50%),#dcecf4 var(--fill,50%) 100%)}
.hf-row input[type="range"]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:17px;height:17px;border-radius:50%;background:#1596c8;border:3.5px solid #fff;box-shadow:0 3px 9px rgba(21,150,200,.4);cursor:pointer}
.hf-row input[type="range"]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#1596c8;border:3.5px solid #fff;cursor:pointer}
.hf-si{display:flex;justify-content:space-between;align-items:center;margin-top:9px;padding:7px 10px;border-radius:10px;background:rgba(21,150,200,.1);font-size:10px;font-weight:800;color:#5d7488}
.hf-si b{font-size:15px;color:#0f5c9e}
.hf-seg{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.hf-seg button{border:1px solid #cbe5f2;border-radius:9px;background:#fff;color:#547185;font:800 10.5px var(--f-body);padding:8px 6px;cursor:pointer;transition:.15s}
.hf-seg button.on{color:#fff;border-color:transparent;background:linear-gradient(135deg,#0f5c9e,#2fb3dd);box-shadow:0 6px 14px rgba(21,150,200,.25)}
.hf-port{position:absolute;width:11px;height:11px;border-radius:50%;background:#8fa9ba;border:2.5px solid #fff;box-shadow:0 2px 7px rgba(18,54,79,.2);z-index:3}
.hf-port.pout{inset-inline-end:-6px;top:50%;transform:translateY(-50%)}
.hf-port.pin{inset-inline-start:-6px}
.hf-out-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.hf-switch{display:flex;gap:3px;background:rgba(21,150,200,.1);border-radius:99px;padding:2.5px}
.hf-switch button{border:0;background:transparent;color:#547185;font:800 10px var(--f-body);padding:5px 10px;border-radius:99px;cursor:pointer;transition:.18s}
.hf-switch button.on{color:#fff;background:linear-gradient(135deg,#0f5c9e,#2fb3dd)}
.hf-class{display:flex;align-items:center;gap:13px}
.hf-orb{width:64px;height:64px;flex:0 0 auto;display:grid;place-items:center;border-radius:17px;color:#fff;text-align:center;background:linear-gradient(135deg,#0f5c9e,#2fb3dd);box-shadow:0 12px 26px -10px rgba(21,150,200,.6)}
.hf-orb.k3{background:linear-gradient(135deg,#c2410c,#f59e0b)}
.hf-orb.k4{background:linear-gradient(135deg,#991b1b,#ef4444)}
.hf-orb small{display:block;font-size:7px;font-weight:900;opacity:.85}
.hf-orb b{font-size:22px;line-height:1}
.hf-cl-t{font-size:14.5px;font-family:var(--f-head);color:#0b2944}
.hf-class p{margin:4px 0 0;font-size:11px;color:#5d7488;font-weight:700}
.hf-note{margin-top:10px;padding:7px 10px;border-radius:9px;background:rgba(21,150,200,.08);font-size:10px;line-height:1.55;color:#54718a;font-weight:700}
.hf-plan{display:grid;gap:7px}
.hf-step{display:flex;align-items:flex-start;gap:9px;padding:8px 10px;border:1px solid #dcecf4;border-radius:10px;background:#fafdff}
.hf-step i{width:20px;height:20px;flex:0 0 auto;display:grid;place-items:center;border-radius:7px;color:#fff;background:linear-gradient(135deg,#0f5c9e,#2fb3dd);font:900 9px var(--f-head);font-style:normal}
.hf-step span{font-size:11px;line-height:1.5;color:#3c576e;font-weight:700}
.hf-q{margin:0 0 9px;font-size:12px;font-weight:800;color:#0b2944;line-height:1.55}
.hf-opts{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.hf-opts button{border:1px solid #cbe5f2;border-radius:10px;background:#fff;color:#0f5c9e;font:900 14px var(--f-head);padding:9px 0;cursor:pointer;transition:.15s}
.hf-opts button:hover{background:#eaf7fd}
.hf-opts button.right{color:#fff;background:#169b6b;border-color:#169b6b}
.hf-opts button.wrong{color:#fff;background:#d9435a;border-color:#d9435a}
.hf-opts button.dim{opacity:.4}
body[data-theme="dark"] .hf-node{background:rgba(13,38,59,.92);border-color:#1e405a}
body[data-theme="dark"] .hf-head{color:#9bb0c1;border-color:rgba(255,255,255,.08)}
body[data-theme="dark"] .hf-row b,body[data-theme="dark"] .hf-si b{color:#8fcfff}
body[data-theme="dark"] .hf-seg button{background:#102c42;border-color:#2a4d66;color:#c3d5e2}
body[data-theme="dark"] .hf-step{background:#0f2a40;border-color:#254a63}
body[data-theme="dark"] .hf-step span{color:#c3d5e2}
body[data-theme="dark"] .hf-cl-t,body[data-theme="dark"] .hf-q{color:#edf5fa}
body[data-theme="dark"] .hf-opts button{background:#102c42;border-color:#2a4d66}
body[data-theme="dark"] .hf-note{color:#a5bccd;background:rgba(80,170,220,.1)}
body[data-theme="dark"] .hf-edge{stroke:rgba(90,180,230,.55)}
@media (prefers-reduced-motion:reduce){.hf-edge{animation:none}.hf-dot{display:none}}

/* release X: with body-level zoom active, the page canvas behind the body must match */
html{background:var(--bg)}

/* release X.1: the hero flow shows on iPad too (width-gated, not pointer-gated) */
.hf-node{touch-action:none} /* touch-drag moves the node instead of scrolling the page */
.hf-row input[type="range"]{touch-action:pan-x}
/* below the hero-stacking breakpoint the canvas sits full-width UNDER the copy */
@media (max-width:1100px){
  .public-hero.has-demo{grid-template-columns:1fr}
  .hero-flow{min-height:520px}
}
