/* assets/css/fw-runtime.css
 *
 * These rules used to be injected by JavaScript as <style> elements (layout.js, exam-mode.js, pages/index-7.js).
 * The site's Content-Security-Policy no longer allows inline <style>, so they live in this file instead,
 * linked LAST in <head> so they keep the same priority they had when they were appended at runtime.
 */

/* ===== layout.js: "page moved" overlay (#fwMoved). NOTE: the 6s below must match SECONDS in layout.js ===== */
#fwMoved{--bg:#faf8ff;--glow:rgba(168,85,247,.22);--card:rgba(255,255,255,.88);--bd:rgba(147,51,234,.25);--sh:0 24px 70px rgba(124,58,237,.22);--tx:#2e1065;--hd:#2e1065;--mu:#5b4b8a;--old:#8b84a8;--track:rgba(88,28,135,.12);--tag-bg:rgba(147,51,234,.1);--tag-bd:rgba(147,51,234,.3);--tag-tx:#6b21a8;--br0:#7e22ce;--br1:#9333ea;--br2:#a855f7;--sub:#6b52b8;--p0:#C084FC;--p1:#9333EA;--p2:#581C87;--s0:#7E22CE;--s1:#A855F7;--s2:#DDD6FE;--a0:#A855F7;--a1:#C084FC;--sp:#9333EA}
@media(prefers-color-scheme:dark){#fwMoved{--bg:#161329;--glow:rgba(147,51,234,.35);--card:rgba(35,30,66,.72);--bd:rgba(168,85,247,.32);--sh:0 24px 80px rgba(88,28,135,.45);--tx:#cfcbe6;--hd:#ffffff;--mu:#a29fbd;--old:#a29fbd;--track:rgba(255,255,255,.1);--tag-bg:rgba(147,51,234,.28);--tag-bd:rgba(168,85,247,.4);--tag-tx:#ddd6fe;--br0:#c084fc;--br1:#a855f7;--br2:#ddd6fe;--sub:#a29fbd;--p0:#FFFFFF;--p1:#E9D5FF;--p2:#C084FC;--s0:#F3E8FF;--s1:#FFFFFF;--s2:#E9D5FF;--a0:#FFFFFF;--a1:#E9D5FF;--sp:#FFFFFF}}
#fwMoved{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;padding:20px;background:radial-gradient(900px 500px at 50% 0%,var(--glow),transparent 60%),var(--bg);color:var(--tx);color-scheme:light dark;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;opacity:0;transition:opacity .35s ease}
#fwMoved.in{opacity:1}
#fwMoved.out{opacity:0}
#fwMoved .c{width:100%;max-width:460px;text-align:center;padding:34px 26px 26px;border-radius:24px;background:var(--card);border:1px solid var(--bd);box-shadow:var(--sh);backdrop-filter:blur(8px);transform:translateY(14px) scale(.98);transition:transform .45s cubic-bezier(.2,.8,.2,1)}
#fwMoved.in .c{transform:none}
#fwMoved .logo{width:84px;height:84px;margin:0 auto 6px;animation:fwMvPulse 2.4s ease-in-out infinite}
#fwMoved .logo svg{width:100%;height:100%;display:block}
#fwMoved .brand{font-weight:800;font-size:26px;letter-spacing:-.3px;margin:0 0 18px;background:linear-gradient(90deg,var(--br0),var(--br1) 60%,var(--br2));-webkit-background-clip:text;background-clip:text;color:transparent}
#fwMoved .tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--tag-tx);background:var(--tag-bg);border:1px solid var(--tag-bd);border-radius:999px;padding:5px 12px;margin-bottom:12px}
#fwMoved h2{margin:0 0 14px;font-size:24px;line-height:1.25;font-weight:800;color:var(--hd)}
#fwMoved .dom{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:0 0 16px;font-size:15px;font-weight:600}
#fwMoved .old{color:var(--old);text-decoration:line-through;text-decoration-color:rgba(239,68,68,.8)}
#fwMoved .arrow{color:var(--br1);font-size:20px;animation:fwMvNudge 1.2s ease-in-out infinite}
#fwMoved .new{color:#fff;background:linear-gradient(90deg,#7e22ce,#9333ea);padding:6px 14px;border-radius:999px;box-shadow:0 4px 18px rgba(147,51,234,.45)}
#fwMoved p{margin:0 0 20px;font-size:14px;line-height:1.6;color:var(--tx)}
#fwMoved .bar{height:6px;border-radius:999px;background:var(--track);overflow:hidden;margin:0 0 16px}
#fwMoved .bar i{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,#581c87,#9333ea,#c084fc,#ddd6fe);animation:fwMvLoad 6s linear forwards}
#fwMoved button{cursor:pointer;border:0;border-radius:12px;padding:12px 26px;font:700 15px Inter,system-ui,sans-serif;color:#fff;background:linear-gradient(90deg,#7e22ce,#9333ea);box-shadow:0 6px 22px rgba(147,51,234,.4)}
#fwMoved button:hover{filter:brightness(1.1)}
#fwMoved button:focus-visible{outline:2px solid var(--br1);outline-offset:3px}
#fwMoved .s{display:block;margin-top:12px;font-size:12px;color:var(--sub)}
@keyframes fwMvLoad{to{width:100%}}
@keyframes fwMvPulse{0%,100%{transform:scale(1);filter:drop-shadow(0 0 8px rgba(168,85,247,.4))}50%{transform:scale(1.07);filter:drop-shadow(0 0 20px rgba(168,85,247,.7))}}
@keyframes fwMvNudge{0%,100%{transform:translateX(0)}50%{transform:translateX(5px)}}
@media(prefers-reduced-motion:reduce){#fwMoved *,#fwMoved{animation:none!important;transition:none!important}#fwMoved .bar i{width:100%}}

/* ===== layout.js: overflow guard ===== */
html,body{max-width:100%;overflow-x:clip}
.card-grid,.card-grid>*{min-width:0;max-width:100%}
#waFab{right:max(1.5rem,env(safe-area-inset-right))!important;max-width:calc(100vw - 2rem)}
@media(max-width:767px){#waFab{right:max(1rem,env(safe-area-inset-right))!important}}

/* ===== layout.js: header fit ===== */
#fwTokenChipArea:empty,#fwStreakChipArea:empty,#fwNotifBellArea:empty,#userNavArea:empty{display:none}
.fw-hdr-logo{flex:0 1 185px;min-width:110px;display:flex;align-items:center}
.fw-hdr-logo a{display:flex;width:100%;min-width:0}
.fw-hdr-logo svg{width:100%!important;height:auto}
.fw-hdr-actions{flex-shrink:0}
#fwTokenChipArea>a,#fwStreakChipArea>a{height:36px!important}
@media(max-width:639px){  html.fw-authed #userNavArea>div>button{padding:0!important}  html.fw-authed .fw-hdr-actions{gap:6px}}
#fwTokenChipArea,#fwStreakChipArea{display:flex;align-items:center}
#fwTokenChipArea>a,#fwStreakChipArea>a{display:inline-flex!important;align-items:center!important;justify-content:center;box-sizing:border-box;line-height:1}
@media(max-width:639px){  .fw-hdr-logo{flex:0 1 clamp(140px,48vw,240px)!important;width:clamp(140px,48vw,240px);min-width:118px!important}  html.fw-authed .fw-hdr-actions{--fw-g:clamp(3px,calc((52vw - 184px)/3),10px);gap:var(--fw-g)!important}  #fwNotifBellArea>div>button{width:26px!important}  #userNavArea>div>button>div:first-child{width:32px!important;height:32px!important;font-size:12px!important;border-radius:10px!important}  #mobileMenuBtn{padding-left:4px!important;padding-right:4px!important}  html.fw-authed #fwStreakChipArea{margin-left:calc(var(--fw-g) * -1)}  #fwTokenChipArea>a,#fwStreakChipArea>a{height:30px!important;padding:0 5px!important;gap:2px!important;font-size:11px!important;border-radius:10px!important}  #fwTokenChipArea>a{padding-left:2px!important}  #fwTokenChipArea>a img{width:16px!important;height:16px!important;display:block}  #fwStreakChipArea>a{border-left-width:0!important;border-top-left-radius:0!important;border-bottom-left-radius:0!important}  #fwTokenChipArea:has(+ #fwStreakChipArea:not(:empty))>a{border-top-right-radius:0!important;border-bottom-right-radius:0!important}  #fwStreakChipArea>a i{font-size:11px;width:11px;display:block;text-align:center;line-height:1}  #fwTokenChipArea>a span,#fwStreakChipArea>a span{display:block;line-height:1}}
@media(min-width:640px){.fw-hdr-logo{flex-basis:230px}#fwTokenChipArea>a,#fwStreakChipArea>a{height:40px!important}}
@media(min-width:1024px){.fw-hdr-logo{flex-basis:260px}}
@media(min-width:1280px){.fw-hdr-logo{flex-basis:290px}}

/* ===== pages/index-7.js: add-to-home-screen banner ===== */
#pwaInstallBanner{position:fixed;left:50%;transform:translateX(-50%);bottom:max(16px,env(safe-area-inset-bottom));z-index:2147483000;width:calc(100% - 32px);max-width:440px;box-sizing:border-box;background:#fff;color:#0f172a;border:1px solid #e9e3ff;border-radius:18px;box-shadow:0 20px 40px rgba(15,23,42,.22);padding:14px;font-family:inherit}
#pwaInstallBanner[hidden]{display:none}
#pwaInstallBanner p{margin:0}
@media (prefers-color-scheme:dark){#pwaInstallBanner{background:#1a1730;color:#f1f5f9;border-color:#3b3556}}
html.dark #pwaInstallBanner{background:#1a1730;color:#f1f5f9;border-color:#3b3556}

/* ===== exam-mode.js ===== */
.fwx{--b:#fff;--l:#ddd6fe;--i:#1e1b4b;--s:#64748b;--a:#7c3aed;--a2:#6d28d9;--soft:#f5f3ff;--warn:#f59e0b;--red:#e11d48;
  background:var(--b);border:1px solid var(--l);border-radius:24px;padding:16px;margin:0 0 16px;color:var(--i);box-shadow:0 1px 2px rgba(76,29,149,.06);font-family:inherit}
.fwx *{box-sizing:border-box}
.fwx-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.fwx-switch{display:flex;align-items:center;gap:12px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.fwx-switch input{position:absolute;opacity:0;width:1px;height:1px}
.fwx-track{width:46px;height:26px;border-radius:999px;background:#cbd5e1;position:relative;flex:none;transition:background .2s}
.fwx-thumb{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .2s}
.fwx-switch input:checked+.fwx-track{background:var(--a)}
.fwx-switch input:checked+.fwx-track .fwx-thumb{transform:translateX(20px)}
.fwx-switch input:focus-visible+.fwx-track{outline:2px solid var(--a2);outline-offset:2px}
.fwx-label b{display:block;font-size:15px;font-weight:800}
.fwx-label small{display:block;font-size:12px;color:var(--s);margin-top:1px}
.fwx-btn{border:1px solid var(--l);background:var(--soft);color:var(--a2);font-weight:800;font-size:13px;border-radius:12px;padding:9px 14px;cursor:pointer;font-family:inherit}
.fwx-btn:hover{background:#ede9fe}
.fwx-btn.pri{background:var(--a);border-color:var(--a);color:#fff}
.fwx-btn.pri:hover{background:var(--a2)}
.fwx-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.fwx-chip{display:inline-flex;align-items:center;gap:8px;max-width:100%;background:var(--soft);border:1px solid var(--l);border-radius:12px;padding:6px 6px 6px 10px;font-size:12px}
.fwx-chip .t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:190px;font-weight:700}
.fwx-chip .d{font-weight:800;color:var(--a2);white-space:nowrap}
.fwx-chip.urgent .d{color:var(--red)}
.fwx-chip button{border:0;background:transparent;color:var(--s);width:24px;height:24px;border-radius:8px;cursor:pointer;font-size:16px;line-height:1}
.fwx-chip button:hover{background:#ede9fe;color:var(--i)}
.fwx-note{margin:10px 0 0;font-size:12px;color:var(--s)}
.fwx-tag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;border-radius:999px;padding:4px 10px;margin-bottom:10px;background:#ede9fe;color:#5b21b6;border:1px solid var(--l)}
.fwx-tag.urgent{background:#ffe4e6;color:#be123c;border-color:#fecdd3}
.fwx-ov{position:fixed;inset:0;z-index:2000;background:rgba(15,10,40,.55);display:flex;align-items:flex-end;justify-content:center;padding:0}
@media(min-width:640px){.fwx-ov{align-items:center;padding:16px}}
.fwx-dlg{background:var(--b);color:var(--i);width:100%;max-width:520px;max-height:92vh;display:flex;flex-direction:column;border-radius:24px 24px 0 0;box-shadow:0 20px 60px rgba(0,0,0,.4);overflow:hidden}
@media(min-width:640px){.fwx-dlg{border-radius:24px}}
.fwx-dlg header{padding:16px 18px 8px;display:flex;justify-content:space-between;align-items:center}
.fwx-dlg h2{margin:0;font-size:18px;font-weight:800}
.fwx-x{border:0;background:transparent;font-size:22px;cursor:pointer;color:var(--s);width:36px;height:36px;border-radius:10px}
.fwx-body{padding:4px 18px 12px;overflow:auto}
.fwx-body label{display:block;font-size:12px;font-weight:800;margin:10px 0 4px}
.fwx-in{width:100%;border:1px solid var(--l);border-radius:12px;padding:11px 12px;font-size:14px;background:var(--b);color:var(--i);font-family:inherit}
.fwx-grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fwx-subs{border:1px solid var(--l);border-radius:12px;max-height:220px;overflow:auto;margin-top:8px}
.fwx-sub{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--l);background:transparent;padding:10px 12px;cursor:pointer;font-family:inherit;color:inherit}
.fwx-sub:last-child{border-bottom:0}
.fwx-sub:hover{background:var(--soft)}
.fwx-sub.sel{background:#ede9fe;box-shadow:inset 3px 0 0 var(--a)}
.fwx-sub b{display:block;font-size:13px;font-weight:800}
.fwx-sub span{font-size:11px;color:var(--s)}
.fwx-empty{padding:16px;text-align:center;font-size:13px;color:var(--s)}
.fwx-err{color:var(--red);font-size:12px;font-weight:700;min-height:16px;margin-top:8px}
.fwx-dlg footer{display:flex;gap:8px;justify-content:flex-end;padding:12px 18px 16px;border-top:1px solid var(--l)}
.fwx-bell{padding:10px 16px 8px;border-bottom:1px solid #f1f5f9;background:#f5f3ff}
.fwx-bell-h{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#6d28d9;margin:0 0 4px}
.fwx-bell-r{display:flex;justify-content:space-between;gap:10px;align-items:baseline;padding:3px 0}
.fwx-bell-r b{font-size:12px;color:#1e1b4b;font-weight:800;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fwx-bell-r span{font-size:11px;font-weight:800;color:#6d28d9;white-space:nowrap}
.fwx-bell-r.urgent span{color:#e11d48}
.fwx-bell a.go,.fwx-bell-add{display:inline-block;margin-top:6px;font-size:11px;font-weight:800;color:#6d28d9;text-decoration:none}
.fwx-bell-add{display:block;margin:0;padding:10px 16px;border-top:1px solid #f1f5f9}
.fwx-dot{position:absolute;right:-3px;top:-3px;width:11px;height:11px;border-radius:50%;background:#f59e0b;border:2px solid #fff;box-sizing:border-box}
.fwx-dot.low{top:auto;bottom:-3px}
.fwx-dot.urgent{background:#e11d48}
@media (prefers-color-scheme: dark){
  .fwx{--b:#1b1730;--l:#3b2f66;--i:#ede9fe;--s:#a5a0c4;--soft:#241d3f;--a2:#c4b5fd}
  .fwx-btn:hover,.fwx-chip button:hover{background:#322858}
  .fwx-sub.sel{background:#322858}.fwx-tag{background:#322858;color:#ddd6fe}
  .fwx-tag.urgent{background:#4c1226;color:#fda4af;border-color:#7f1d3a}
  .fwx-btn.pri{color:#fff}
  .fwx-bell{background:#241d3f;border-color:#3b2f66}.fwx-bell-add{border-color:#3b2f66}
  .fwx-bell-r b{color:#ede9fe}.fwx-bell-h,.fwx-bell-r span,.fwx-bell a.go,.fwx-bell-add{color:#c4b5fd}.fwx-bell-r.urgent span{color:#fda4af}
  .fwx-dot{border-color:#1b1730}
}
