/* ======================================================================================
   VGT AI glass look: charcoal-black glass, glow in the chosen ALFA AI Theme colour, slow living motion.
   Active when an ALFA AI Theme is chosen (html.glass + data-glass=<colour>). Classic Light / Dark keep the earlier look.
   Loaded after style.css and alfa.css.
   ====================================================================================== */
:root.glass[data-theme]{
  --g-or:#ff812d; --g-or2:#ff6a00; --g-orl:#ff9b59; --g-rgb:255,129,45; --g-rgb2:255,106,0;
  --g-c1:#2b2f35; --g-c2:#121519; --g-c3:#050608; --g-deep:#0c0e11; --g-panel:#15181c; --g-card:#1b1f24; --g-deep-rgb:12,14,17;
  --g-glass:linear-gradient(135deg,rgba(255,255,255,.11),rgba(255,255,255,.025));
  --g-glass-h:linear-gradient(135deg,rgba(255,255,255,.16),rgba(255,255,255,.04));
  --g-edge:rgba(255,255,255,.17); --g-edge2:rgba(255,255,255,.28);
  --g-shadow:0 12px 34px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.12);
  --g-btn:linear-gradient(135deg,var(--g-orl),var(--g-or2));
  --g-hero:radial-gradient(70% 120% at 88% 0%,rgba(var(--g-rgb),.32),transparent 60%),radial-gradient(60% 90% at 0% 100%,rgba(255,255,255,.06),transparent 60%),linear-gradient(135deg,rgba(255,255,255,.10),rgba(255,255,255,.02)),var(--g-deep);
  /* variables the rest of the app reads */
  --a-ink:#ffffff; --a-muted:#c9cdd4; --a-glass:rgba(255,255,255,.055); --a-glass2:rgba(255,255,255,.075); --a-line:rgba(255,255,255,.15);
  --a-shadow:0 12px 34px rgba(0,0,0,.5); --a-pill:rgba(255,255,255,.07);
  --a-bg:radial-gradient(circle at 50% 38%,var(--g-c1) 0%,var(--g-c2) 40%,var(--g-c3) 78%);
  --bg:var(--g-c3); --panel:var(--g-panel); --card:var(--g-card); --card-hover:var(--g-card); --ink:#ffffff; --muted:#c3c8cf; --line:rgba(255,255,255,.12);
  --side:rgba(var(--g-deep-rgb),.85); --top:rgba(var(--g-deep-rgb),.7); --sheet:var(--g-panel); --btn:var(--g-card); --chip:var(--g-card); --code:var(--g-deep);
  --accent:var(--g-or); --accent2:var(--g-or2); --a-blue:var(--g-orl);
  --hb-grad:var(--g-hero); --hb-soft:rgba(var(--g-rgb),.12);
}
/* ---------- ALFA AI Theme colours (Settings -> ALFA AI Theme) ---------- */
:root.glass[data-theme][data-glass="teal"]{--g-or:#22c59a;--g-or2:#0f9f7a;--g-orl:#6ee7c4;--g-rgb:34,197,154;--g-rgb2:15,159,122;--g-c1:#0f4d44;--g-c2:#072823;--g-c3:#02110f;--g-deep:#041c18;--g-panel:#0a2723;--g-card:#0f322d;--g-deep-rgb:4,28,24}
:root.glass[data-theme][data-glass="purple"]{--g-or:#9b6bff;--g-or2:#6d28d9;--g-orl:#c4b5fd;--g-rgb:155,107,255;--g-rgb2:109,40,217;--g-c1:#3b2474;--g-c2:#1b1040;--g-c3:#0a0619;--g-deep:#130b2b;--g-panel:#1b1238;--g-card:#241848;--g-deep-rgb:19,11,43}
:root.glass[data-theme][data-glass="blue"]{--g-or:#3b8bff;--g-or2:#1d4ed8;--g-orl:#93c5fd;--g-rgb:59,139,255;--g-rgb2:29,78,216;--g-c1:#143c7c;--g-c2:#0a1e45;--g-c3:#040b1e;--g-deep:#081631;--g-panel:#0e1f40;--g-card:#14294f;--g-deep-rgb:8,22,49}
:root.glass[data-theme][data-glass="pink"]{--g-or:#f0509e;--g-or2:#be185d;--g-orl:#f9a8d4;--g-rgb:240,80,158;--g-rgb2:190,24,93;--g-c1:#5c1a47;--g-c2:#2c0c25;--g-c3:#12040f;--g-deep:#200719;--g-panel:#2a0f22;--g-card:#36152c;--g-deep-rgb:32,7,25}
:root.glass[data-theme][data-glass="gold"]{--g-or:#f5b82e;--g-or2:#c98a06;--g-orl:#fde68a;--g-rgb:245,184,46;--g-rgb2:201,138,6;--g-c1:#4d3810;--g-c2:#261b08;--g-c3:#100b03;--g-deep:#1c1406;--g-panel:#261d0c;--g-card:#312511;--g-deep-rgb:28,20,6}
:root.glass[data-theme][data-glass="navy"]{--g-or:#5fd4e8;--g-or2:#2b7fd6;--g-orl:#c4f27a;--g-rgb:95,212,232;--g-rgb2:43,127,214;--g-c1:#12406b;--g-c2:#0a2342;--g-c3:#040f1f;--g-deep:#071a33;--g-panel:#0d2442;--g-card:#123056;--g-deep-rgb:7,26,51}
:root.glass[data-theme][data-glass="red"]{--g-or:#ff4d4d;--g-or2:#c81e1e;--g-orl:#fca5a5;--g-rgb:255,77,77;--g-rgb2:200,30,30;--g-c1:#5e1616;--g-c2:#2c0909;--g-c3:#130303;--g-deep:#220707;--g-panel:#2b0e0e;--g-card:#371313;--g-deep-rgb:34,7,7}
html.glass body{background:var(--a-bg)!important;background-attachment:fixed!important;color:var(--a-ink)}
html.glass .app{position:relative;z-index:1}

/* ---------- the living background: drifting orange glows + a slowly turning orbit ---------- */
.bg-live{display:none}
html.glass .bg-live{display:block;position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.bg-live i{position:absolute;border-radius:50%;filter:blur(110px);opacity:.16;background:var(--g-or);will-change:transform}
.bg-live .o1{width:420px;height:420px;left:8%;top:30%;animation:gDrift1 22s ease-in-out infinite}
.bg-live .o2{width:340px;height:340px;right:4%;top:2%;background:var(--g-orl);opacity:.11;animation:gDrift2 26s ease-in-out infinite}
.bg-live .o3{width:300px;height:300px;left:45%;bottom:-8%;background:#ffffff;opacity:.05;animation:gDrift1 30s ease-in-out infinite reverse}
.bg-live .ring{position:absolute;left:50%;top:46%;width:1100px;height:360px;margin:-180px 0 0 -550px;border-radius:50%;border:1px solid rgba(var(--g-rgb),.10);box-shadow:0 0 40px rgba(var(--g-rgb),.05);animation:gSpin 60s linear infinite}
.bg-live::after{content:"";position:absolute;inset:0;background:linear-gradient(130deg,transparent 35%,rgba(255,255,255,.035) 47%,transparent 58%);animation:gSweep 14s ease-in-out infinite}
@keyframes gDrift1{0%,100%{transform:translate(0,0)}50%{transform:translate(120px,-80px)}}
@keyframes gDrift2{0%,100%{transform:translate(0,0)}50%{transform:translate(-140px,90px)}}
@keyframes gSpin{to{transform:rotate(360deg)}}
@keyframes gSweep{0%,40%{transform:translateX(-80%)}100%{transform:translateX(80%)}}
@keyframes gFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes gFloatS{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes gPulse{0%,100%{box-shadow:0 0 18px rgba(var(--g-rgb),.35)}50%{box-shadow:0 0 34px rgba(var(--g-rgb),.65)}}

/* ---------- header + sidebar + bottom menu ---------- */
html.glass .topbar.alfa-top{background:linear-gradient(100deg,rgba(255,255,255,.08),rgba(var(--g-rgb),.06) 45%,rgba(255,255,255,.04))!important;border-color:var(--g-edge);box-shadow:0 10px 30px rgba(0,0,0,.5)}
html.glass .alfa-side .a-panel{background:var(--g-glass);border-color:var(--g-edge);box-shadow:var(--g-shadow)}
html.glass .a-nav button:hover{background:rgba(var(--g-rgb),.12)}
html.glass .a-nav button.active{background:var(--g-btn);box-shadow:0 8px 22px -6px rgba(var(--g-rgb2),.7),inset 0 1px 0 rgba(255,255,255,.35)}
html.glass .a-mascot img{animation:gFloat 5s ease-in-out infinite;filter:drop-shadow(0 10px 22px rgba(var(--g-rgb2),.35))}
html.glass .bottom-nav{background:rgba(var(--g-deep-rgb),.8)!important;border-top:1px solid var(--g-edge)!important;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
html.glass .bottom-nav .nav-item{color:#a3a8b0}
html.glass .nav-ai-hex{background:var(--g-btn);border-color:#1b1f24;animation:gPulse 3.2s ease-in-out infinite}
html.glass .bottom-nav .nav-item.nav-ai.active span{color:var(--g-or)}

/* ---------- every glass surface ---------- */
html.glass :is(.a-glass,.hb-card,.p-card,.ad-card,.cc-sec,.sv-item,.lx-info,.lx-stat,.lx-field,.lx-chips button,.lx-view,.lx-glass,.lx-shelf,
  .d-stats,.d-rc,.st-row,.st-head,.panel,.list-card,.sv-note,.pc-mail,.pc-two section,.cc-item.ai,.rm-comp,.rm-msg,.nf-box,.l-card,.l-sub,.l-ch,.p-tile,.fc-os,.d-path){
  background:var(--g-glass)!important;border:1px solid var(--g-edge)!important;box-shadow:var(--g-shadow)!important;
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:var(--a-ink)}
html.glass :is(.st-row,.sv-item,.d-rc,.lx-stat,.p-tile,.d-path,.hb-card,.p-card,.cc-sec,.lx-info){transition:transform .3s,border-color .3s,box-shadow .3s}
html.glass :is(button.st-row,.sv-item,.d-rc,.lx-stat,.p-tile,.d-path,.cc-item):hover{transform:translateY(-5px);border-color:var(--g-or)!important;box-shadow:0 0 22px rgba(var(--g-rgb),.28),var(--g-shadow)!important}
html.glass .cc-item:hover{background:rgba(var(--g-rgb),.08)}
html.glass .sv-note{background:linear-gradient(135deg,rgba(34,197,94,.14),rgba(255,255,255,.03))!important}
html.glass .rm-msg.me{background:linear-gradient(135deg,rgba(var(--g-rgb),.32),rgba(var(--g-rgb2),.14))!important;border-color:rgba(var(--g-rgb),.45)!important;color:#fff}
html.glass .rm-who,html.glass .hb-card h3,html.glass .st-head p,html.glass .st-chev,html.glass .lx-set>summary em,html.glass .cc-code>b,html.glass .rm-file em{color:var(--g-orl)!important}
html.glass .st-ic,html.glass .sv-ic,html.glass .d-rc span{background:linear-gradient(135deg,rgba(var(--g-rgb),.22),rgba(255,255,255,.04));box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
html.glass .st-ic,html.glass .d-rc span,html.glass .lx-stat span,html.glass .p-tile span{animation:gFloatS 4.5s ease-in-out infinite}
html.glass .st-col>*:nth-child(3n+2) .st-ic,html.glass .d-rc:nth-child(3n+2) span{animation-delay:1.2s}
html.glass .st-col>*:nth-child(3n) .st-ic,html.glass .d-rc:nth-child(3n) span{animation-delay:2.4s}

/* inputs */
html.glass :is(.input,.select,.textarea,.st-sel,input[type=search],textarea){background:rgba(255,255,255,.05);color:var(--a-ink);border-color:var(--g-edge)}
html.glass :is(.input,.select,.textarea):focus{border-color:var(--g-or);box-shadow:0 0 0 3px rgba(var(--g-rgb),.18)}
html.glass .lx-field input{background:none}
html.glass select option{background:var(--g-panel);color:#fff}

/* buttons */
html.glass :is(.hb-cta,.lx-read,.cc-fab,.rm-send,.st-seg.on,.sv-tabs button.on,.cc-tabs button.on,.fc-chip.on,.lx-chips button.on,.lx-view button.on,.l-cta,.btn:not(.ghost):not(.danger)){
  background:var(--g-btn)!important;color:#fff!important;border-color:transparent!important;box-shadow:0 10px 24px -10px rgba(var(--g-rgb2),.85),inset 0 1px 0 rgba(255,255,255,.3)!important}
html.glass :is(.hb-cta,.lx-read,.l-cta):hover{filter:brightness(1.08);transform:translateY(-2px)}
html.glass .hb-cta.alt{background:linear-gradient(135deg,#ffffff26,#ffffff0a)!important;border:1px solid var(--g-edge2)!important}
html.glass :is(.hb-ghost,.lx-ic,.sv-tabs button,.cc-tabs button,.fc-chip,.btn.ghost,.st-sub button,.cc-menu button,.lx-btn.glass){background:rgba(255,255,255,.06);color:var(--a-ink);border-color:var(--g-edge)}
html.glass :is(.hb-ghost,.btn.ghost,.st-sub button,.cc-menu button,.sv-tabs button,.cc-tabs button):hover{border-color:var(--g-or);background:rgba(var(--g-rgb),.1)}
html.glass .switch input:checked+.slider{background:var(--g-btn)}
html.glass .st-seg{color:var(--a-ink)}

/* ---------- heroes: dark glass panels with an orange glow and a turning orbit ---------- */
html.glass :is(.d-hello,.hb-hero,.st-hero,.lx-hero,.p-hero,.pl-hero,.pr-hero,.l-hero:not(.sub):not(.chap),.rm-head,.pc-mail-head){
  background:var(--g-hero)!important;border:1px solid var(--g-edge2);box-shadow:0 0 50px rgba(var(--g-rgb),.13),0 20px 50px -20px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.14)!important}
html.glass :is(.d-hello,.hb-hero,.st-hero,.p-hero,.pl-hero,.pr-hero,.l-hero)::after{content:"";position:absolute;right:-6%;top:50%;width:min(520px,70%);height:150px;margin-top:-75px;left:auto;bottom:auto;
  border-radius:50%;border:1.5px solid rgba(var(--g-rgb),.45);box-shadow:0 0 16px rgba(var(--g-rgb),.3);background:none;transform:rotate(-14deg);animation:gOrbit 12s linear infinite;pointer-events:none;z-index:0}
@keyframes gOrbit{0%{transform:rotate(-14deg) scaleX(1)}50%{transform:rotate(-8deg) scaleX(.9)}100%{transform:rotate(-14deg) scaleX(1)}}
html.glass :is(.d-hello,.hb-hero,.st-hero,.p-hero,.pl-hero,.pr-hero,.l-hero)::before{background:radial-gradient(circle,rgba(var(--g-rgb),.35),transparent 65%)!important;filter:blur(30px);animation:gFloat 7s ease-in-out infinite}
html.glass :is(.d-hello h1,.hb-hero h1,.p-hero h1,.l-hero h1,.st-id h1,.lx-hero h1,.hb-title,.st-head h2){
  background:none!important;-webkit-background-clip:border-box;background-clip:border-box;color:#fff!important;-webkit-text-fill-color:#fff;filter:none;text-shadow:0 1px 2px rgba(0,0,0,.6),0 0 18px rgba(var(--g-rgb),.22)}
html.glass :is(.d-hello h1,.hb-hero h1,.p-hero h1,.l-hero h1,.lx-hero h1) span{-webkit-text-fill-color:var(--g-or);color:var(--g-or)}
html.glass .lx-hero h1 span{-webkit-text-fill-color:var(--g-or);color:var(--g-or);background:none;filter:none}
html.glass :is(.d-hi b,.d-sub b,.d-streak b,.p-hero h1 span,.l-hero h1 span){color:var(--g-or)!important}
html.glass .d-streak{background:var(--g-glass);box-shadow:inset 0 0 0 1px var(--g-edge2),0 0 24px rgba(var(--g-rgb),.18);animation:gFloat 6s ease-in-out infinite}
html.glass :is(.hb-hero-art,.hb-hero-moon,.l-hero-emoji,.d-hello-art,.st-ava,.fc-ico){animation:gFloat 5s ease-in-out infinite}
html.glass .st-plan{background:var(--g-btn);color:#fff}
html.glass .st-edit,html.glass .lx-btn.glass,html.glass .d-btn.ghost{border-color:var(--g-edge2);background:rgba(255,255,255,.07)}
html.glass .d-btn{background:var(--g-btn)}
html.glass .st-dream{color:var(--g-orl)}
html.glass .st-ava .avatar{border-color:rgba(var(--g-rgb),.8);box-shadow:0 0 26px rgba(var(--g-rgb),.45)}

/* ---------- home: app tiles become glass cards with a coloured glow ---------- */
html.glass .a-tile{background:radial-gradient(90% 70% at 50% 18%,color-mix(in srgb,var(--ta) 40%,transparent),transparent 70%),var(--g-glass)!important;
  box-shadow:var(--g-shadow),inset 0 0 0 1px var(--g-edge)!important;transition:transform .3s,box-shadow .3s}
html.glass .a-tile:hover{transform:translateY(-6px);box-shadow:0 0 26px color-mix(in srgb,var(--ta) 45%,transparent),inset 0 0 0 1px var(--g-or)!important}
html.glass .a-tile img{animation:gFloatS 5s ease-in-out infinite;filter:drop-shadow(0 10px 18px rgba(0,0,0,.55))}
html.glass .a-tile:nth-child(3n+2) img{animation-delay:1.3s}html.glass .a-tile:nth-child(3n) img{animation-delay:2.6s}
html.glass .a-tile .go{background:rgba(var(--g-rgb),.25);border-color:rgba(var(--g-rgb),.8)}
html.glass .view-screen:not(#alfa-x) .feature-card{background:radial-gradient(90% 70% at 50% 15%,color-mix(in srgb,var(--ta,var(--g-or)) 35%,transparent),transparent 70%),var(--g-glass)!important;box-shadow:var(--g-shadow),inset 0 0 0 1px var(--g-edge)!important}
html.glass .d-path:has(.on),html.glass .d-path.on{border-color:var(--g-or)!important;box-shadow:0 0 24px rgba(var(--g-rgb),.35)!important}
html.glass .d-bar>i,html.glass .lx-prog i,html.glass .p-bar>i{background:var(--g-btn)!important}
html.glass .lx-shelf{background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015))!important}
html.glass #screen-files{--lx-glass:var(--g-glass);--lx-edge:var(--g-edge)}
html.glass .lx-book .lx-cover{box-shadow:inset 6px 0 0 rgba(0,0,0,.25),0 24px 34px -14px rgba(0,0,0,.9),0 0 22px -6px var(--c2)}

/* sheets, menus, modals */
html.glass :is(.sheet,.cc-box,.lx-menu,.nf-box,#d-pop){background:linear-gradient(160deg,color-mix(in srgb,var(--g-card) 96%,transparent),rgba(var(--g-deep-rgb),.97))!important;border:1px solid var(--g-edge);color:var(--ink);box-shadow:0 30px 70px rgba(0,0,0,.7)}
html.glass #focus-pill{background:var(--g-btn)}
html.glass .muted{color:var(--a-muted)}
html.glass :is(.d-link,.p-link,.a-link){color:var(--g-orl)!important}
html.glass :is(#live-btn,.send-btn,.voice-btn){background:var(--g-btn)!important}

/* heavy screens stay light: no motion behind the PDF reader / spreadsheet */
body[data-screen="reader"] .bg-live,body[data-screen="sheet"] .bg-live{display:none!important}

/* ======================================================================================
   Opening screen (first start of the day, about 2.5 s, tap to skip)
   ====================================================================================== */
.sp{display:none}
html.splash .sp{display:flex;position:fixed;inset:0;z-index:10000;align-items:center;justify-content:center;padding:16px;background:#050608;color:#fff;font-family:Poppins,Arial,sans-serif;transition:opacity .55s,transform .55s}
html.splash .sp.out{opacity:0;transform:scale(1.04);pointer-events:none}
.sp-poster{position:relative;width:100%;max-width:470px;height:min(820px,94vh);overflow:hidden;padding:30px 20px;text-align:center;border-radius:26px;border:1px solid #555a60;
  background:radial-gradient(circle at 50% 42%,#30343a 0%,#121519 38%,#050608 75%);box-shadow:0 0 50px #ff791c22;display:flex;flex-direction:column;align-items:center}
.sp-poster::before{content:"";position:absolute;inset:0;background:linear-gradient(130deg,transparent 30%,#ffffff10 45%,transparent 60%);animation:gSweep 4s ease-in-out infinite;pointer-events:none}
.sp-glow{position:absolute;width:220px;height:220px;background:#ff792b;filter:blur(110px);opacity:.18;top:35%;left:28%;pointer-events:none}
.sp-brand{font-size:30px;font-weight:900;letter-spacing:9px;color:#f5f5f5;text-shadow:0 0 20px #ffffff55}.sp-brand span{color:#ff812d}
.sp-tag{color:#aaa!important;font-size:10px;letter-spacing:5px;margin-top:10px}
.sp-globe-area{position:relative;flex:1;width:100%;min-height:260px;display:flex;align-items:center;justify-content:center;perspective:900px}
.sp-globe{width:200px;height:200px;border-radius:50%;position:relative;border:2px solid #ff8c3b;box-shadow:0 0 25px #ff762b88,inset 0 0 30px #ff762b55;animation:spFloat 4s ease-in-out infinite;
  background:radial-gradient(circle at 50% 50%,rgba(255,140,59,.10),rgba(0,0,0,.4) 70%)}
.sp-globe::before{content:"";position:absolute;inset:0;border-radius:50%;transform:scaleX(.75);
  background:repeating-linear-gradient(0deg,transparent 0,transparent 22px,#ff9c5a77 23px,transparent 25px),repeating-linear-gradient(90deg,transparent 0,transparent 22px,#ff9c5a77 23px,transparent 25px)}
.sp-globe::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 30% 25%,#ffffff55,transparent 45%)}
.sp-orbit{position:absolute;width:290px;height:96px;border:2px solid #ff8b3b99;border-radius:50%;transform:rotate(-25deg);box-shadow:0 0 15px #ff812d55;animation:spOrbit 8s linear infinite}
.sp-orbit.two{width:260px;height:106px;border-color:#ffffff66;animation-direction:reverse;animation-duration:10s}
@keyframes spFloat{0%,100%{transform:translateY(0) rotateY(0)}50%{transform:translateY(-12px) rotateY(14deg)}}
@keyframes spOrbit{from{transform:rotate(-25deg)}to{transform:rotate(335deg)}}
.sp-panel{position:absolute;width:122px;padding:11px 12px;text-align:left;border:1px solid #ffffff44;border-radius:12px;background:linear-gradient(135deg,#ffffff20,#ffffff05);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 10px 30px #0008;animation:gFloat 4s ease-in-out infinite}
.sp-panel strong{font-size:11px;color:#ff9a55;letter-spacing:1px}.sp-panel small{display:block;margin-top:6px;font-size:9px;color:#ccc}
.sp-panel.one{top:6%;left:0}.sp-panel.two{top:12%;right:0;animation-delay:1s}.sp-panel.three{bottom:8%;left:0;animation-delay:2s}.sp-panel.four{bottom:4%;right:0;animation-delay:3s}
.sp-heading{margin:4px 0 0;font-size:clamp(46px,12vw,66px);font-weight:900;letter-spacing:-2px;line-height:1;background:linear-gradient(180deg,#fff,#999da3,#fff);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 5px 15px #ffffff33)}
.sp-heading span{-webkit-text-fill-color:#ff812d;color:#ff812d}
.sp-sub{font-size:11px;letter-spacing:5px;color:#ff9b59;margin-top:10px}
.sp-load{width:160px;height:3px;border-radius:3px;background:#ffffff1a;margin:22px auto 8px;overflow:hidden}.sp-load i{display:block;height:100%;width:40%;border-radius:3px;background:linear-gradient(90deg,#ff9a4d,#ff6a00);animation:spLoad 1.2s ease-in-out infinite}
@keyframes spLoad{0%{transform:translateX(-110%)}100%{transform:translateX(260%)}}
.sp-skip{font-size:10px;letter-spacing:2px;color:#777}

@media(prefers-reduced-motion:reduce){html.glass *,html.glass *::before,html.glass *::after,.sp *{animation:none!important}}

/* ======================================================================================
   ALFA AI Theme picker (Settings -> ALFA AI Theme). Works in every theme.
   ====================================================================================== */
.th-dot{flex:none;width:26px;height:26px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff8,transparent 45%),var(--th);box-shadow:0 0 0 3px rgba(255,255,255,.15),0 0 16px var(--th)}
.th-box{width:min(720px,100%)!important}
.th-h{margin:16px 0 8px;font-size:14px;opacity:.85}
.th-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:10px}
.th-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 8px 10px;border-radius:18px;border:1.5px solid rgba(127,127,127,.25);background:rgba(127,127,127,.06);color:inherit;font-family:var(--font);cursor:pointer;text-align:left;transition:transform .25s,border-color .25s,box-shadow .25s}
.th-card:hover{transform:translateY(-4px);border-color:var(--th);box-shadow:0 0 22px -4px var(--th)}
.th-card.on{border-color:var(--th);box-shadow:0 0 0 2px var(--th),0 0 26px -4px var(--th)}
.th-card b{font-size:14px;margin-top:6px}.th-card small{font-size:11px;opacity:.7}
.th-card em{position:absolute;top:12px;right:12px;font-style:normal;font-size:10.5px;font-weight:800;padding:3px 8px;border-radius:99px;background:var(--th);color:#fff;box-shadow:0 4px 12px -4px var(--th)}
.th-prev{position:relative;display:block;width:100%;height:92px;border-radius:13px;overflow:hidden}
.th-prev.glass{background:radial-gradient(circle at 50% 40%,var(--thbg,#2b2f35),#000 92%);border:1px solid rgba(255,255,255,.14)}
.th-prev.classic{background:var(--thbg);border:1px solid rgba(127,127,127,.25)}
.th-prev i{position:absolute;display:block}
.th-glow{width:70px;height:70px;left:30%;top:10%;border-radius:50%;background:var(--th);filter:blur(26px);opacity:.55;animation:thDrift 5s ease-in-out infinite}
.th-prev.classic .th-glow,.th-prev.classic .th-ring{display:none}
.th-ring{width:120%;height:40px;left:-10%;top:30%;border-radius:50%;border:1.5px solid var(--th);opacity:.6;transform:rotate(-12deg);animation:thTilt 6s ease-in-out infinite}
.th-bar{left:10px;top:14px;width:46%;height:9px;border-radius:5px;background:rgba(255,255,255,.75)}
.th-bar.s{top:30px;width:30%;opacity:.5}
.th-prev.classic .th-bar{background:rgba(0,0,0,.25)}.th-prev.classic[style] .th-bar{background:rgba(127,127,127,.5)}
.th-btn{left:10px;bottom:12px;width:44%;height:16px;border-radius:9px;background:linear-gradient(135deg,var(--th),color-mix(in srgb,var(--th) 70%,#000));box-shadow:0 4px 12px -2px var(--th)}
@keyframes thDrift{0%,100%{transform:translate(0,0)}50%{transform:translate(18px,6px)}}
@keyframes thTilt{0%,100%{transform:rotate(-12deg)}50%{transform:rotate(-4deg)}}
.st-theme-row{border-color:color-mix(in srgb,var(--accent,#ff812d) 45%,transparent)!important}
@media(prefers-reduced-motion:reduce){.th-glow,.th-ring{animation:none}}

/* ---------- crisp, readable text in every ALFA AI Theme ---------- */
html.glass body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
html.glass :is(p,small,span,b,strong,h1,h2,h3,h4,label,li,td,th,button,a,em){text-shadow:0 1px 1px rgba(0,0,0,.35)}
html.glass :is(.st-tx small,.cc-tx small,.sv-tx small,.lx-info small,.d-rc small,.lx-stat small,.d-stat small,.d-stat em,.muted,.page-subtitle){color:var(--a-muted)!important}
html.glass :is(.st-tx b,.cc-tx b,.sv-tx b,.lx-name,.d-rc b,.d-stat b,.a-head h2,.a-head h3,.hb-card h3,.p-card h2){color:#fff}
html.glass .hb-card h3{color:var(--g-orl)!important}
html.glass .a-tile .tt b,html.glass .a-tile .tt small{text-shadow:0 1px 3px rgba(0,0,0,.8)}
html.glass :is(.input,.select,.textarea,input,textarea,select){color:#fff}
html.glass :is(input,textarea)::placeholder{color:#a9aeb6;opacity:1}

/* ======================================================================================
   Settings (modern grouped list, like new phone apps). Works in every theme.
   ====================================================================================== */
.sx{max-width:1100px!important;color:var(--a-ink);padding-bottom:30px}
.sx-top{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:4px 0 16px}
.sx-top h1{margin:0;font-size:clamp(26px,3vw,34px);font-weight:800;letter-spacing:-.5px;color:var(--a-ink)}
.sx-search{flex:1 1 260px;display:flex;align-items:center;gap:8px;padding:0 14px;border-radius:14px;background:var(--g-glass,var(--a-glass2));border:1px solid var(--g-edge,var(--a-line));backdrop-filter:blur(12px)}
.sx-search input{flex:1;min-width:0;border:0;background:none;outline:none;color:var(--a-ink);font:500 15px var(--font);padding:11px 0}
.sx-search:focus-within{border-color:var(--g-or,var(--accent))}

/* profile card */
.sx-me{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px 16px;padding:18px 20px;border-radius:24px;margin-bottom:20px;overflow:hidden;
  background:var(--g-hero,linear-gradient(120deg,#2a1d86,#6d4aff));color:#fff;border:1px solid var(--g-edge2,rgba(255,255,255,.2));box-shadow:0 18px 40px -22px rgba(0,0,0,.7)}
.sx-ava{position:relative;border:0;background:none;padding:0;cursor:pointer}
.sx-ava .avatar{width:68px;height:68px;font-size:28px;border-radius:50%;border:3px solid var(--g-or,#ff8a1a);box-shadow:0 0 22px rgba(var(--g-rgb,255,138,26),.45)}
.sx-ava>span{position:absolute;right:-2px;bottom:-2px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:12px;background:#111;border:2px solid #fff}
.sx-id{display:flex;flex-direction:column;gap:2px;min-width:0;border:0;background:none;color:#fff;text-align:left;font-family:var(--font);cursor:pointer;padding:0}
.sx-name{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sx-name b{font-size:21px;font-weight:800}
.sx-plan{font-style:normal;font-size:11.5px;font-weight:800;padding:3px 10px;border-radius:99px;background:var(--g-btn,linear-gradient(90deg,#ffa42e,#ff7a00));color:#fff}
.sx-id small{font-size:13px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sx-id small:empty{display:none}
.sx-edit{border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.1);color:#fff;border-radius:12px;padding:8px 14px;font:700 13px var(--font);cursor:pointer}
.sx-stats{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}
.sx-stats>div{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 6px;border-radius:12px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);flex-wrap:wrap;text-align:center}
.sx-stats span{font-size:15px}.sx-stats b{font-size:15px;font-weight:800}.sx-stats small{font-size:11px;opacity:.8;width:100%}
@media(max-width:560px){.sx-me{grid-template-columns:auto 1fr}.sx-edit{display:none}.sx-stats{grid-template-columns:repeat(2,1fr)}}

/* grouped sections */
.sx-grid{display:block;max-width:760px;margin:0 auto}
@media(max-width:860px){.sx-grid{grid-template-columns:1fr}}
.sx-sec{margin-bottom:20px}.sx-sec[hidden]{display:none}
.sx-h{margin:0 0 8px 14px;font-size:12px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--a-muted)}
.sx-card{border-radius:20px;overflow:hidden;background:var(--g-glass,var(--a-glass2));border:1px solid var(--g-edge,var(--a-line));box-shadow:0 12px 30px -20px rgba(0,0,0,.6);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.sx-row{position:relative;display:flex;align-items:center;gap:14px;width:100%;min-height:58px;padding:10px 16px;border:0;background:none;color:var(--a-ink);text-align:left;font-family:var(--font);box-sizing:border-box}
.sx-row[hidden]{display:none}
button.sx-row{cursor:pointer;transition:background .15s}
button.sx-row:hover{background:rgba(var(--g-rgb,255,138,26),.09)}
button.sx-row:active{background:rgba(var(--g-rgb,255,138,26),.16)}
.sx-row+.sx-row::before{content:"";position:absolute;top:0;left:66px;right:16px;height:1px;background:var(--g-edge,var(--a-line));opacity:.7}
.sx-wrap{flex-wrap:wrap}.sx-wrap .sx-ctrl{margin-left:auto}
.sx-ic{flex:none;width:36px;height:36px;border-radius:11px;display:grid;place-items:center;font-size:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--ic) 95%,#fff),color-mix(in srgb,var(--ic) 75%,#000));box-shadow:0 4px 10px -4px var(--ic),inset 0 1px 0 rgba(255,255,255,.35)}
.sx-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.sx-tx b{font-size:15px;font-weight:600}.sx-tx small{font-size:12.5px;color:var(--a-muted)}
.sx-val{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--a-muted);white-space:nowrap}
.sx-val .th-dot{width:18px;height:18px}
.sx-chev{font-size:22px;line-height:1;color:var(--a-muted);opacity:.7}
.sx-ctrl{flex:none;display:flex;align-items:center}
.sx-ctrl .st-sel{max-width:180px}
.sx-pill{font-size:12px;font-weight:700;padding:3px 10px;border-radius:99px;background:rgba(127,127,127,.18);color:var(--a-muted)}
.sx-pill.on{background:rgba(34,197,94,.18);color:#22c55e}
.sx-row[data-danger] .sx-tx b{color:#ef4444}
.sx-none{text-align:center;padding:30px;color:var(--a-muted)}
.sx-logout{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;margin:4px 0 8px;padding:14px;border-radius:16px;border:1px solid rgba(239,68,68,.45);background:rgba(239,68,68,.1);color:#ef4444;font:800 16px var(--font);cursor:pointer}
.sx-logout:hover{background:rgba(239,68,68,.18)}
.sx-logout small{font:500 12px var(--font);color:var(--a-muted)}.sx-logout small:empty{display:none}
.sx-foot{text-align:center;font-size:12px;color:var(--a-muted);margin:6px 0 14px}
.sx-logout.in{border-color:rgba(var(--g-rgb,255,138,26),.5);background:rgba(var(--g-rgb,255,138,26),.12);color:var(--g-or,var(--accent))}

/* ---------- confirm boxes, Danger Zone, Trash (every theme) ---------- */
.cf-box{width:min(430px,100%)!important;text-align:center}
.cf-ic{width:62px;height:62px;margin:2px auto 10px;border-radius:50%;display:grid;place-items:center;font-size:30px;background:rgba(var(--g-rgb,255,138,26),.15);box-shadow:0 0 0 6px rgba(var(--g-rgb,255,138,26),.07)}
.cf-ic.bad{background:rgba(239,68,68,.15);box-shadow:0 0 0 6px rgba(239,68,68,.07)}
.cf-box h3{margin:0 0 6px!important;font-size:19px}.cf-box p{margin:0 0 10px;color:var(--muted);font-size:14px;word-break:break-word}
.cf-pts{text-align:left;margin:6px 0 12px;padding:10px 14px 10px 30px;border-radius:14px;background:rgba(127,127,127,.1);font-size:13.5px;line-height:1.6}
.cf-check{display:flex;gap:8px;align-items:flex-start;text-align:left;font-size:13.5px;margin:6px 0 10px;cursor:pointer}.cf-check input{margin-top:3px;accent-color:#ef4444}
.cf-type{display:flex;flex-direction:column;gap:6px;text-align:left;font-size:13.5px;margin:6px 0 4px}.cf-type .input{width:100%;box-sizing:border-box;text-align:center;font-weight:700;letter-spacing:2px}
.cf-err{color:#ef4444!important;min-height:18px;margin:4px 0!important;font-size:13px!important}
.cf-btns{display:flex;gap:10px;margin-top:12px}
.cf-btns button{flex:1;border-radius:14px;padding:12px;font:800 14.5px var(--font);cursor:pointer;border:1px solid rgba(127,127,127,.3)}
.cf-cancel{background:rgba(127,127,127,.12);color:var(--ink)}
.cf-ok{background:var(--g-btn,linear-gradient(90deg,#ffa42e,#ff7a00));color:#fff;border-color:transparent!important}
.cf-ok.bad{background:linear-gradient(135deg,#f43f5e,#dc2626)}
.cf-ok:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(.5)}
.dz-list{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.dz-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:18px;border:1px solid rgba(239,68,68,.35);background:linear-gradient(135deg,rgba(239,68,68,.10),rgba(127,127,127,.04));color:var(--a-ink)}
.dz-ic{flex:none;width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-size:22px;background:rgba(239,68,68,.15)}
.dz-card>div{flex:1;min-width:0;display:flex;flex-direction:column}.dz-card b{font-size:15.5px}.dz-card small{font-size:12.5px;color:var(--a-muted)}
.dz-btn{flex:none;border:1px solid rgba(239,68,68,.6);background:rgba(239,68,68,.12);color:#ef4444;border-radius:12px;padding:9px 14px;font:800 13px var(--font);cursor:pointer}
.dz-btn:hover{background:#ef4444;color:#fff}
.hb-hero.dz{background:radial-gradient(70% 120% at 88% 0%,rgba(239,68,68,.35),transparent 60%),linear-gradient(135deg,rgba(255,255,255,.10),rgba(255,255,255,.02)),#1a0b0e!important}
.dz-note{text-align:center;margin-top:10px}
.tr-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:18px;background:var(--g-glass,var(--a-glass2));border:1px solid var(--g-edge,var(--a-line));color:var(--a-ink)}
.tr-btn{flex:none;border:1px solid var(--g-edge,var(--a-line));background:rgba(var(--g-rgb,255,138,26),.12);color:var(--a-ink);border-radius:12px;padding:8px 12px;font:700 13px var(--font);cursor:pointer}
.tr-btn.bad{background:rgba(239,68,68,.12);color:#ef4444;border-color:rgba(239,68,68,.4)}
.tr-all{display:flex;gap:10px;margin-top:14px}.tr-all .hb-ghost{flex:1;padding:12px}.hb-ghost.bad{color:#ef4444!important;border-color:rgba(239,68,68,.45)!important}
@media(max-width:520px){.dz-card{flex-wrap:wrap}.dz-btn{width:100%}.tr-btn{padding:8px 9px}}

/* Settings: headings first, a heading opens its own page */
.sx-cats .sx-row{min-height:68px}.sx-cats .sx-ic{width:42px;height:42px;font-size:21px;border-radius:13px}.sx-cats .sx-tx b{font-size:16.5px}
.sx-cats .sx-row+.sx-row::before{left:74px}
.sx.sx-in .sx-me,.sx.sx-in .sx-logout,.sx.sx-in .sx-foot,.sx.sx-in #usage-stats{display:none}
.sx-back{border:0;background:none;color:var(--g-or,var(--accent));font:700 15px var(--font);cursor:pointer;padding:4px 2px;margin-bottom:8px}
.sx-subhead{display:flex;align-items:center;gap:14px;margin:0 0 14px 4px}.sx-subhead .sx-ic{width:48px;height:48px;font-size:24px;border-radius:15px}
.sx-subhead h2{margin:0;font-size:24px;font-weight:800;color:var(--a-ink)}.sx-subhead small{color:var(--a-muted);font-size:13px}
.sx-me,.sx-logout,.sx-foot{max-width:760px;margin-left:auto!important;margin-right:auto!important}
.sx-top{max-width:760px;margin-left:auto;margin-right:auto}

/* ---------- Source check under answers that used the student's books ---------- */
.vf-box{margin:8px 0 4px;padding:12px 14px;border-radius:18px;background:var(--g-glass,rgba(127,127,127,.08));border:1px solid var(--g-edge,var(--line))}
.vf-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.vf-head b{font-size:14px}
.vf-sum{font-size:12px;font-weight:800;padding:3px 10px;border-radius:99px}.vf-sum.ok{background:rgba(34,197,94,.18);color:#22c55e}.vf-sum.warn{background:rgba(245,158,11,.18);color:#f59e0b}
.vf-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.vf-chip{display:inline-flex;flex-direction:column;align-items:flex-start;gap:1px;border-radius:14px;padding:7px 12px;font:700 13px var(--font);cursor:pointer;border:1px solid;text-align:left;color:var(--ink)}
.vf-chip small{font-weight:500;opacity:.8}.vf-chip em{font-style:normal;font-weight:500;font-size:11px;opacity:.8}
.vf-chip.verified{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.45)}
.vf-chip.weak{background:rgba(234,179,8,.12);border-color:rgba(234,179,8,.45)}
.vf-chip.notfound{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.45)}
.vf-chip.nopage{background:rgba(127,127,127,.12);border-color:rgba(127,127,127,.4)}
.vf-note{margin:8px 0 0;font-size:12.5px;color:var(--a-muted,var(--muted))}

/* two-step verification */
.tf-key{font:800 20px/1.4 ui-monospace,Menlo,Consolas,monospace;letter-spacing:2px;padding:12px;border-radius:14px;background:rgba(127,127,127,.12);word-break:break-all;user-select:all}
.tf-open{display:flex;align-items:center;justify-content:center;text-decoration:none}
.tf-steps{margin-bottom:8px}
.tf-codes{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.tf-codes code{padding:8px;border-radius:10px;background:rgba(127,127,127,.12);font:700 15px ui-monospace,Menlo,Consolas,monospace}
.cf-btns a{flex:1;border-radius:14px;padding:12px;font:800 14.5px var(--font);border:1px solid rgba(127,127,127,.3);color:var(--ink);background:rgba(127,127,127,.12)}

/* Admin: System Health */
.hl-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.hl-top h3{margin:0 0 4px!important}
.hl-top.ok{border-color:rgba(34,197,94,.5)!important}.hl-top.warn{border-color:rgba(234,179,8,.5)!important}.hl-top.bad{border-color:rgba(239,68,68,.6)!important}
.hl-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:14px}.hl-tiles.small{margin:0}
.hl-tile{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:16px;background:var(--g-glass,var(--a-glass2));border:1px solid var(--g-edge,var(--a-line))}
.hl-tile span{font-size:20px}.hl-tile b{font-size:22px}.hl-tile small{font-size:12px;color:var(--a-muted)}
.hl-tile.warn{border-color:rgba(234,179,8,.6)}.hl-tile.bad{border-color:rgba(239,68,68,.7);background:rgba(239,68,68,.1)}
.hl-check{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--g-edge,var(--a-line))}.hl-check:first-of-type{border-top:0}
.hl-check>div{display:flex;flex-direction:column}.hl-check small{color:var(--a-muted);font-size:12.5px}.hl-check.no b{color:#f59e0b}
.hl-err{padding:8px 10px;border-radius:12px;background:rgba(239,68,68,.08);margin-bottom:6px;font-size:13px;word-break:break-word}

/* ======================================================================================
   Student Suite section pages (Ask & Explain, Solve & Check ...). Each section has its own colour (--h1/--h2).
   ====================================================================================== */
.hp{max-width:1100px!important;color:var(--a-ink);padding-bottom:30px}
.hp>.l-back{margin-bottom:8px}
.hp-hero{position:relative;display:flex;align-items:center;gap:18px;min-height:170px;padding:24px 28px;border-radius:26px;overflow:hidden;margin-bottom:16px;color:#fff;
  background:radial-gradient(70% 140% at 95% 10%,color-mix(in srgb,var(--h1) 55%,transparent),transparent 60%),radial-gradient(50% 90% at 0% 100%,color-mix(in srgb,var(--h2) 25%,transparent),transparent 60%),linear-gradient(135deg,rgba(255,255,255,.10),rgba(255,255,255,.02)),#14102e;
  border:1px solid rgba(255,255,255,.16);box-shadow:0 0 44px -10px color-mix(in srgb,var(--h1) 60%,transparent),0 20px 50px -24px rgba(0,0,0,.8)}
.hp-hero-tx{position:relative;z-index:1;flex:1;min-width:0}
.hp-badge{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:14px;font-size:24px;background:linear-gradient(135deg,var(--h1),var(--h2));box-shadow:0 8px 20px -6px var(--h1)}
.hp-hero h1{margin:10px 0 4px;font-size:clamp(28px,3.6vw,42px);font-weight:800;line-height:1.05;color:#fff!important;-webkit-text-fill-color:#fff!important;background:none!important}
.hp-hero p{margin:0;opacity:.9;font-size:14.5px}
.hp-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.hp-chips span{padding:5px 12px;border-radius:99px;font-size:12.5px;font-weight:700;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22)}
.hp-orb{position:relative;flex:none;width:150px;height:150px;display:grid;place-items:center;z-index:1}
.hp-orb i{position:absolute;inset:14px;border-radius:32px;transform:rotate(12deg);background:linear-gradient(135deg,color-mix(in srgb,var(--h1) 80%,#fff),var(--h2));box-shadow:0 0 50px var(--h1),inset 0 2px 0 rgba(255,255,255,.5);opacity:.9;animation:hpFloat 5s ease-in-out infinite}
.hp-orb b{position:relative;font-size:58px;filter:drop-shadow(0 6px 12px rgba(0,0,0,.35));animation:hpFloat 5s ease-in-out infinite}
.hp-orb::after{content:"";position:absolute;bottom:0;left:15%;right:15%;height:18px;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--h1) 70%,transparent),transparent)}
@keyframes hpFloat{0%,100%{transform:translateY(0) rotate(12deg)}50%{transform:translateY(-8px) rotate(12deg)}}
.hp-orb b{animation-name:hpFloat2}@keyframes hpFloat2{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@media(max-width:620px){.hp-orb{width:90px;height:90px}.hp-orb b{font-size:36px}.hp-hero{padding:20px}}

.hp-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:16px}
.hp-grid .hp-card{grid-column:span 2}
.hp-grid.n2 .hp-card,.hp-grid.n4 .hp-card{grid-column:span 3}
.hp-grid.n5 .hp-card:nth-child(n+4){grid-column:span 3}
@media(max-width:720px){.hp-grid{grid-template-columns:1fr 1fr}.hp-grid .hp-card,.hp-grid.n2 .hp-card,.hp-grid.n4 .hp-card,.hp-grid.n5 .hp-card:nth-child(n+4){grid-column:span 1}.hp-grid.n5 .hp-card:last-child,.hp-grid.n3 .hp-card:last-child{grid-column:span 2}}
.hp-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:132px;padding:16px 16px 14px;border-radius:22px;text-align:left;cursor:pointer;color:var(--a-ink);font-family:var(--font);
  background:radial-gradient(90% 90% at 0% 0%,color-mix(in srgb,var(--cc) 26%,transparent),transparent 70%),var(--g-glass,var(--a-glass2));border:1px solid color-mix(in srgb,var(--cc) 40%,rgba(255,255,255,.12));
  box-shadow:0 14px 30px -22px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.1);transition:transform .25s,box-shadow .25s,border-color .25s}
.hp-card:hover{transform:translateY(-4px);border-color:var(--cc);box-shadow:0 0 26px -6px var(--cc)}
.hp-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;font-size:22px;margin-bottom:6px;background:linear-gradient(135deg,var(--cc),color-mix(in srgb,var(--cc) 60%,#000));box-shadow:0 6px 16px -6px var(--cc)}
.hp-card b{font-size:16px;font-weight:800}.hp-card small{font-size:12.5px;color:var(--a-muted);line-height:1.35;padding-right:30px}
.hp-card em{position:absolute;right:14px;bottom:12px;font-style:normal;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);font-size:14px}

.hp-ask{border-radius:22px;padding:12px 14px 10px;margin-bottom:16px;background:var(--g-glass,var(--a-glass2));border:1px solid color-mix(in srgb,var(--h1) 45%,rgba(255,255,255,.12));box-shadow:0 0 30px -14px var(--h1)}
.hp-ask textarea{width:100%;box-sizing:border-box;border:0;background:none;resize:none;outline:none;color:var(--a-ink);font:15px/1.5 var(--font);padding:4px 2px}
.hp-ask textarea::placeholder{color:var(--a-muted)}
.hp-ask-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:6px}
.hp-tool{width:38px;height:38px;border-radius:12px;border:1px solid rgba(127,127,127,.25);background:rgba(127,127,127,.1);font-size:17px;cursor:pointer}
.hp-fn{border:1px solid rgba(127,127,127,.3);background:rgba(127,127,127,.1);color:var(--a-ink);border-radius:12px;padding:8px 10px;font:700 13px var(--font);max-width:220px}
.hp-sp{flex:1}
.hp-send{width:44px;height:44px;border-radius:50%;border:0;color:#fff;font-size:18px;cursor:pointer;background:linear-gradient(135deg,var(--h1),var(--h2));box-shadow:0 8px 18px -6px var(--h1)}

.hp-sec{margin-bottom:16px}.hp-sec h3{margin:0 0 10px 4px;font-size:16px;font-weight:800;color:var(--a-ink)}
.hp-ex{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.hp-exb{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:16px;text-align:left;cursor:pointer;color:var(--a-ink);font-family:var(--font);background:var(--g-glass,var(--a-glass2));border:1px solid var(--g-edge,var(--a-line));transition:border-color .2s,transform .2s}
.hp-exb:hover{border-color:var(--h1);transform:translateY(-2px)}.hp-exb span{font-size:20px}.hp-exb b{font-size:13.5px;font-weight:600;line-height:1.35}
.hp-recent{display:flex;flex-wrap:wrap;gap:8px}.hp-recent button{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:99px;cursor:pointer;color:var(--a-ink);font:600 13px var(--font);background:var(--g-glass,var(--a-glass2));border:1px solid var(--g-edge,var(--a-line))}
.hp-quick{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:8px;border-radius:22px;background:var(--g-glass,var(--a-glass2));border:1px solid var(--g-edge,var(--a-line))}
.hp-quick button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border:0;border-radius:16px;background:none;cursor:pointer;color:var(--a-ink);font-family:var(--font);text-align:center}
.hp-quick button:hover{background:color-mix(in srgb,var(--h1) 14%,transparent)}
.hp-quick span{font-size:22px}.hp-quick b{font-size:13px}.hp-quick small{font-size:11px;color:var(--a-muted)}
@media(max-width:620px){.hp-quick{grid-template-columns:repeat(3,1fr)}}
@media(prefers-reduced-motion:reduce){.hp-orb i,.hp-orb b{animation:none}}

/* ======================================================================================
   Function pages (Study Planner, Quiz Maker ...): each one a form built for its job, in its own colour (--h1/--h2)
   ====================================================================================== */
.tl{max-width:640px!important;color:var(--a-ink);padding-bottom:30px}
.tl>.l-back{margin-bottom:6px}
.tl-head{display:flex;align-items:center;gap:14px;margin:4px 4px 16px}
.tl-ic{flex:none;width:58px;height:58px;border-radius:18px;display:grid;place-items:center;font-size:30px;background:linear-gradient(135deg,var(--h1),var(--h2));box-shadow:0 10px 26px -8px var(--h1),inset 0 1px 0 rgba(255,255,255,.4)}
.tl-head h1{margin:0;font-size:clamp(22px,3vw,28px);font-weight:800;color:var(--a-ink)}.tl-head p{margin:2px 0 0;color:var(--a-muted);font-size:13.5px}
.tl-card{padding:18px;border-radius:26px;background:radial-gradient(80% 60% at 100% 0%,color-mix(in srgb,var(--h1) 18%,transparent),transparent 70%),var(--g-glass,var(--a-glass2));
  border:1px solid color-mix(in srgb,var(--h1) 35%,rgba(255,255,255,.14));box-shadow:0 0 40px -18px var(--h1),0 20px 40px -26px rgba(0,0,0,.7);backdrop-filter:blur(16px)}
.tl-f{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.tl-f>span{font-size:13.5px;font-weight:700;color:var(--a-ink)}
.tl-in{width:100%;box-sizing:border-box;border:1px solid rgba(127,127,127,.25);border-radius:16px;padding:13px 14px;background:rgba(127,127,127,.1);color:var(--a-ink);font:500 14.5px var(--font);outline:none}
.tl-in:focus{border-color:var(--h1);box-shadow:0 0 0 3px color-mix(in srgb,var(--h1) 22%,transparent)}
textarea.tl-in{resize:vertical;min-height:80px}
.tl-chips{display:flex;flex-wrap:wrap;gap:8px}
.tl-chip{border:1px solid rgba(127,127,127,.3);background:rgba(127,127,127,.08);color:var(--a-ink);border-radius:99px;padding:9px 15px;font:600 13.5px var(--font);cursor:pointer;transition:all .2s}
.tl-chip:hover{border-color:var(--h1)}
.tl-chip.on{background:linear-gradient(135deg,color-mix(in srgb,var(--h1) 75%,transparent),color-mix(in srgb,var(--h2) 60%,transparent));border-color:transparent;color:#fff;box-shadow:0 6px 16px -8px var(--h1)}
.tl-up{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;padding:20px;border-radius:18px;border:1.5px dashed rgba(127,127,127,.4);background:rgba(127,127,127,.06);color:var(--a-ink);font-family:var(--font);cursor:pointer}
.tl-up b{font-size:14px}.tl-up small{font-size:12px;color:var(--a-muted)}.tl-up:hover{border-color:var(--h1)}
.tl-up.sm{width:auto;flex:1;padding:14px;flex-direction:row;justify-content:center;font:700 14px var(--font)}
.tl-ph{display:flex;gap:8px}.tl-ok{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:14px;background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.4);font-size:13.5px;word-break:break-all}
.tl-ok button{border:0;background:none;color:var(--a-ink);cursor:pointer;font-size:15px}
.tl-err{color:#ef4444;min-height:18px;margin:0 0 6px;font-size:13px}
.tl-go{width:100%;border:0;border-radius:20px;padding:16px;color:#fff;font:800 16px var(--font);cursor:pointer;background:linear-gradient(110deg,var(--h1),var(--h2));box-shadow:0 14px 30px -12px var(--h1),inset 0 1px 0 rgba(255,255,255,.35);transition:transform .2s,filter .2s}
.tl-go:hover{transform:translateY(-2px);filter:brightness(1.08)}
.tl-free{display:block;width:100%;margin-top:10px;border:0;background:none;color:var(--a-muted);font:600 13.5px var(--font);cursor:pointer;padding:6px}
.tl-free:hover{color:var(--a-ink)}
.tl-past{margin-top:16px;border-radius:20px;padding:12px 14px;background:var(--g-glass,var(--a-glass2));border:1px solid var(--g-edge,var(--a-line))}
.tl-past h3{margin:0 0 8px;font-size:14.5px}
.tl-past button{display:flex;justify-content:space-between;width:100%;padding:10px 6px;border:0;border-top:1px solid var(--g-edge,var(--a-line));background:none;color:var(--a-ink);font:500 13.5px var(--font);cursor:pointer;text-align:left}
.tl-past button:first-of-type{border-top:0}
.tl-tip{text-align:center;font-size:12px;color:var(--a-muted);margin-top:12px}

/* ======================================================================================
   Pages from Settings / Student Suite (Accessibility, Parental, Blocked, Storage, Memory, Rankings, Premium,
   Compare Books, Workflows) + chapter Videos + parental lock + accessibility switches
   ====================================================================================== */
#pg-root{max-width:900px!important}
.pg-body{display:flex;flex-direction:column;gap:14px}
.pg-card{margin:0}
.pg-h{margin:4px 0 10px;font-size:16px;font-weight:800;color:var(--a-ink)}
.pg-row{display:flex;align-items:center;gap:12px;padding:12px 2px;border-bottom:1px solid rgba(127,127,127,.15)}
.pg-row:last-child{border-bottom:0}
.pg-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.pg-tx b{font-size:15px}.pg-tx small{color:var(--a-muted);font-size:12.5px}
.pg-prev{margin:12px 0 0;font-weight:700}
.pg-note{font-size:12.5px;margin-top:10px}
.pg-btns{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.pg-add{display:flex;gap:8px;margin:10px 0}.pg-add .input{flex:1}
.tl-go.sm{width:auto;padding:10px 18px;font-size:14px;border-radius:14px}
.tl-free.sm{display:inline-block;width:auto;margin:0;padding:8px 12px;border:1px solid rgba(127,127,127,.3);border-radius:12px;color:var(--a-ink)}
.pg-tags{display:flex;flex-wrap:wrap;gap:8px}
.pg-tag{display:inline-flex;align-items:center;gap:6px;padding:6px 8px 6px 12px;border-radius:99px;background:color-mix(in srgb,var(--h1) 18%,transparent);border:1px solid color-mix(in srgb,var(--h1) 45%,transparent);font-weight:700;font-size:13px}
.pg-tag button{border:0;background:rgba(127,127,127,.2);color:var(--a-ink);width:22px;height:22px;border-radius:50%;cursor:pointer}
.pg-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.pg-stats div,.pg-tile{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 6px;border-radius:18px;background:rgba(127,127,127,.08);border:1px solid rgba(127,127,127,.15);text-align:center}
.pg-stats b{font-size:20px}.pg-stats small,.pg-tile small{color:var(--a-muted);font-size:12px}
.pg-bar{display:block;height:8px;border-radius:9px;background:rgba(127,127,127,.18);margin-top:12px;overflow:hidden}.pg-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--h1),var(--h2))}
.pg-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pg-tile{cursor:pointer;color:var(--a-ink);font-family:var(--font);transition:transform .2s,border-color .2s}.pg-tile:hover{transform:translateY(-2px);border-color:var(--h1)}
.pg-tile span{font-size:22px}.pg-tile b{font-size:19px}
.pg-mem{margin:0 0 6px;padding-left:20px;line-height:1.6}
.pg-pts{padding-left:4px;list-style:none;line-height:1.7;margin:0 0 10px}
.pg-me{margin:12px 0;padding:10px 14px;border-radius:14px;background:color-mix(in srgb,var(--h1) 16%,transparent)}
.pg-rank{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.pg-rank li{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:14px;background:rgba(127,127,127,.07)}
.pg-rank li.me{background:color-mix(in srgb,var(--h1) 22%,transparent);border:1px solid var(--h1)}
.pg-rank .pos{width:30px;text-align:center;font-weight:800}.pg-rank b{flex:1}.pg-rank em{font-style:normal;font-weight:800;color:var(--h1)}
.pg-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.pg-plan{position:relative;padding:20px 18px;border-radius:24px;background:var(--g-glass,var(--a-glass2));border:1px solid rgba(127,127,127,.25);display:flex;flex-direction:column;gap:8px}
.pg-plan.best{border:2px solid var(--h1);box-shadow:0 0 34px -10px var(--h1)}
.pg-plan.cur{outline:2px dashed color-mix(in srgb,var(--h2) 70%,transparent);outline-offset:3px}
.pg-plan h3{margin:0;font-size:18px}.pg-price{font-size:28px;font-weight:800}.pg-price small{font-size:13px;color:var(--a-muted);font-weight:600}
.pg-plan ul{list-style:none;padding:0;margin:0 0 6px;flex:1;line-height:1.75;font-size:14px}
.pg-ribbon{position:absolute;top:-11px;right:16px;font-style:normal;font-size:11.5px;font-weight:800;padding:4px 10px;border-radius:99px;color:#fff;background:linear-gradient(90deg,var(--h1),var(--h2))}
.pg-cols{display:grid;gap:12px}.pg-cols.n2{grid-template-columns:1fr 1fr}.pg-cols.n3{grid-template-columns:repeat(3,1fr)}
.pg-col p{font-size:14px;line-height:1.55;margin:0 0 10px}
.pg-pg{border:0;padding:2px 8px;border-radius:99px;font:700 11.5px var(--font);cursor:pointer;color:#fff;background:linear-gradient(90deg,var(--h1),var(--h2))}
.pg-flow-h{display:flex;gap:12px;align-items:center;margin-bottom:10px}.pg-flow-h>span{font-size:30px}.pg-flow-h b{font-size:17px}.pg-flow-h small{display:block;color:var(--a-muted);font-size:13px}
.pg-steps{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px}.pg-steps span{padding:5px 11px;border-radius:99px;font-size:12.5px;font-weight:700;background:color-mix(in srgb,var(--h1) 16%,transparent)}.pg-steps i{font-style:normal;color:var(--a-muted)}
.pg-form{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.pg-form .input{flex:1;min-width:160px}
.pg-run{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-weight:600}.pg-run li.on{opacity:.75;animation:pgPulse 1s ease-in-out infinite}
@keyframes pgPulse{50%{opacity:.4}}
@media(max-width:720px){.pg-stats{grid-template-columns:1fr 1fr}.pg-plans,.pg-cols.n2,.pg-cols.n3{grid-template-columns:1fr}.pg-tiles{grid-template-columns:1fr 1fr}}

/* chapter videos */
.vd-player{position:relative;aspect-ratio:16/9;border-radius:20px;overflow:hidden;margin-bottom:14px;background:#000;box-shadow:0 18px 40px -20px rgba(0,0,0,.8)}
.vd-player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vd-h{margin:8px 0 10px;font-size:15px}
.vd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-bottom:14px}
.vd-card{position:relative;display:flex;flex-direction:column;border-radius:18px;overflow:hidden;cursor:pointer;background:var(--g-glass,var(--a-glass2));border:1px solid rgba(127,127,127,.2);transition:transform .2s}
.vd-card:hover{transform:translateY(-3px)}
.vd-th{position:relative;aspect-ratio:16/9;background:#111}.vd-th img{width:100%;height:100%;object-fit:cover;display:block}
.vd-th i{position:absolute;inset:0;margin:auto;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-style:normal;color:#fff;background:rgba(239,68,68,.92);box-shadow:0 6px 18px rgba(0,0,0,.5)}
.vd-tx{padding:10px 12px}.vd-tx b{display:block;font-size:14px}.vd-tx small{color:var(--a-muted);font-size:12px}
.vd-x{position:absolute;top:8px;right:8px;width:26px;height:26px;border-radius:50%;border:0;cursor:pointer;background:rgba(0,0,0,.6);color:#fff}
.vd-add{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 10px}.vd-add .input{flex:1;min-width:180px}

/* parental lock */
.pc-lock{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:20px;background:rgba(8,6,25,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.pc-box{max-width:420px;text-align:center;color:#fff;padding:30px 24px;border-radius:28px;background:linear-gradient(160deg,rgba(255,255,255,.12),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.2)}
.pc-box>span{font-size:54px}.pc-box h2{margin:8px 0}.pc-box p{opacity:.85;line-height:1.5}
.pc-btn{margin-top:14px;border:0;border-radius:16px;padding:14px 18px;font:800 15px var(--font);color:#fff;cursor:pointer;background:linear-gradient(110deg,#ec4899,#f97316)}

/* accessibility */
html.a11y-rm *,html.a11y-rm *::before,html.a11y-rm *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
html.a11y-hc small,html.a11y-hc .muted,html.a11y-hc p{color:var(--a-ink)!important;opacity:1!important}
html.a11y-hc button,html.a11y-hc .input,html.a11y-hc input,html.a11y-hc select,html.a11y-hc textarea{border-color:currentColor!important}
html.a11y-hc .bg-live,html.a11y-hc #bg-live{opacity:.35!important}
html.a11y-sp body{letter-spacing:.035em;word-spacing:.14em;line-height:1.75}

/* ======================================================================================
   Code Studio (write · run · test · fix)
   ====================================================================================== */
#screen-code{padding:0}
.cs{display:flex;flex-direction:column;gap:8px;height:calc(100dvh - 120px);min-height:520px;padding:6px 10px 10px;color:var(--a-ink);font-family:var(--font)}
.cs-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cs-top .l-back{margin:0}
.cs-logo{font-size:22px}
.cs-name{min-width:120px;max-width:260px;flex:0 1 220px;border:1px solid transparent;background:transparent;color:var(--a-ink);font:800 16px var(--font);padding:6px 8px;border-radius:10px}
.cs-name:hover,.cs-name:focus{border-color:rgba(127,127,127,.35);background:rgba(127,127,127,.08);outline:0}
.cs-lang{padding:5px 11px;border-radius:99px;font-size:12.5px;font-weight:800;background:rgba(99,102,241,.18);border:1px solid rgba(99,102,241,.4)}
.cs-where em{font-style:normal;font-size:12px;font-weight:700}.cs-where .ok{color:#22c55e}.cs-where .warn{color:#f59e0b}
.cs-sp{flex:1}
.cs-btn{border:1px solid rgba(127,127,127,.3);background:rgba(127,127,127,.1);color:var(--a-ink);border-radius:12px;padding:8px 12px;font:700 13px var(--font);cursor:pointer;transition:background .2s,border-color .2s}
.cs-btn:hover{border-color:#6366f1;background:rgba(99,102,241,.16)}
.cs-btn.ai{margin-top:10px;background:linear-gradient(110deg,#6366f1,#ec4899);color:#fff;border:0}
.cs-run{border:0;border-radius:12px;padding:9px 18px;font:800 14px var(--font);color:#fff;cursor:pointer;background:linear-gradient(110deg,#16a34a,#22c55e);box-shadow:0 8px 20px -8px #22c55e}
.cs-run:disabled{opacity:.7;cursor:wait}.cs-run.sm{padding:8px 14px;font-size:13px}
.cs-files{display:flex;gap:4px;overflow-x:auto;padding-bottom:2px}
.cs-file{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;border:1px solid rgba(127,127,127,.25);border-bottom:2px solid transparent;background:rgba(127,127,127,.07);color:var(--a-muted);border-radius:10px 10px 4px 4px;padding:7px 12px;font:600 13px ui-monospace,Consolas,monospace;cursor:pointer}
.cs-file.on{color:var(--a-ink);background:rgba(15,23,42,.65);border-bottom-color:#f97316}
.cs-file i{font-style:normal;opacity:.5;font-size:11px}.cs-file i:hover{opacity:1;color:#ef4444}
.cs-file.add{font-family:var(--font);font-weight:800}
.cs-main{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,1fr);gap:10px}
.cs-ed{min-height:0;border-radius:16px;overflow:hidden;border:1px solid rgba(127,127,127,.25);background:#0b1020}
.cs-side{min-height:0;display:flex;flex-direction:column;border-radius:16px;overflow:hidden;border:1px solid rgba(127,127,127,.25);background:var(--g-glass,var(--a-glass2))}
.cs-tabs{display:flex;gap:2px;padding:6px;overflow-x:auto;border-bottom:1px solid rgba(127,127,127,.2)}
.cs-tab{white-space:nowrap;border:0;background:none;color:var(--a-muted);padding:7px 10px;border-radius:10px;font:700 12.5px var(--font);cursor:pointer}
.cs-tab.on{background:rgba(99,102,241,.2);color:var(--a-ink)}
.cs-pane{flex:1;min-height:0;overflow:auto;padding:10px;display:flex;flex-direction:column;gap:10px}
.cs-in{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--a-muted);font-weight:700}
.cs-in textarea,.cs-case textarea,.cs-ask textarea{width:100%;box-sizing:border-box;resize:vertical;border-radius:10px;border:1px solid rgba(127,127,127,.3);background:#0b1020;color:#e2e8f0;font:13px/1.5 ui-monospace,Consolas,monospace;padding:8px}
.cs-con{flex:1;min-height:120px;overflow:auto;border-radius:12px;background:#05070f;padding:10px;font:13px/1.55 ui-monospace,Consolas,monospace;color:#e2e8f0}
.cs-con.small{flex:0 0 120px;min-height:80px}
.cs-log{white-space:pre-wrap;word-break:break-word}
.cs-log.error{color:#fca5a5}.cs-log.warn{color:#fcd34d}.cs-log.info{color:#93c5fd}.cs-log.done{color:#86efac;margin-top:6px}.cs-log.fail{color:#f87171;margin-top:6px}
.cs-log button{border:0;margin-right:6px;padding:0 6px;border-radius:6px;background:#7f1d1d;color:#fff;font:700 11px var(--font);cursor:pointer}
.cs-hint{color:var(--a-muted);font-size:13px;margin:0}
.cs-prev{flex:1;min-height:240px;border-radius:12px;overflow:hidden;background:#fff}
.cs-prev iframe{width:100%;height:100%;border:0;background:#fff}
.cs-hidden{position:absolute;width:1px;height:1px;border:0;left:-9999px;top:0}
.cs-case{border-radius:14px;padding:10px;background:rgba(127,127,127,.07);border:1px solid rgba(127,127,127,.2)}
.cs-case.pass{border-color:#22c55e;background:rgba(34,197,94,.08)}.cs-case.fail{border-color:#ef4444;background:rgba(239,68,68,.08)}
.cs-case-h{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:13px}.cs-case-h span{flex:1;font-weight:700}
.cs-case-h button{border:0;background:none;color:var(--a-muted);cursor:pointer}
.cs-case-b{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cs-case-b label{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--a-muted);font-weight:700}
.cs-got pre{margin:4px 0 0;padding:8px;border-radius:8px;background:#05070f;color:#fca5a5;font-size:12.5px;white-space:pre-wrap}
.cs-row{display:flex;gap:8px;justify-content:space-between}
.cs-tres{padding:10px 14px;border-radius:12px;font-weight:800}.cs-tres.ok{background:rgba(34,197,94,.15);color:#22c55e}.cs-tres.bad{background:rgba(239,68,68,.15);color:#f87171}
.cs-ex{border-radius:14px;padding:12px 14px;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.4)}.cs-ex p{margin:6px 0 0;font-size:13.5px;line-height:1.5}
.cs-probs{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;font-size:13.5px}
.cs-probs button{border:0;border-radius:8px;padding:2px 8px;margin-right:6px;background:rgba(239,68,68,.2);color:var(--a-ink);font:700 12px ui-monospace,Consolas,monospace;cursor:pointer}
.cs-ai-acts{display:flex;flex-wrap:wrap;gap:6px}
.cs-chip{border:1px solid rgba(127,127,127,.3);background:rgba(127,127,127,.08);color:var(--a-ink);border-radius:99px;padding:7px 12px;font:700 12.5px var(--font);cursor:pointer}
.cs-chip:hover{border-color:#ec4899;background:rgba(236,72,153,.14)}
.cs-ask{display:flex;gap:8px;align-items:flex-end}.cs-ask textarea{flex:1;font-family:var(--font)}
.cs-ai{font-size:14px;line-height:1.6}.cs-ai pre{background:#05070f;color:#e2e8f0;border-radius:0 0 10px 10px;padding:10px;overflow:auto;margin-top:0}
.cs-codebar{display:flex;gap:6px;flex-wrap:wrap;padding:6px;border-radius:10px 10px 0 0;background:rgba(99,102,241,.2);margin-top:10px}
.cs-codebar button{border:0;border-radius:8px;padding:5px 10px;font:700 12px var(--font);cursor:pointer;background:rgba(255,255,255,.12);color:var(--a-ink)}
.cs-codebar button:first-child{background:linear-gradient(110deg,#16a34a,#22c55e);color:#fff}
.cs-modal{position:fixed;inset:0;z-index:600;display:grid;place-items:center;padding:16px;background:rgba(5,6,20,.6);backdrop-filter:blur(8px)}
.cs-dlg{width:min(720px,100%);max-height:86vh;overflow:auto;padding:20px;border-radius:24px;background:var(--g-panel,#16132e);border:1px solid rgba(255,255,255,.15);color:var(--a-ink);display:flex;flex-direction:column;gap:12px}
.cs-dlg h3{margin:0}
.cs-langs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.cs-lpick{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;padding:12px;border-radius:16px;border:1px solid rgba(127,127,127,.25);background:rgba(127,127,127,.08);color:var(--a-ink);cursor:pointer;font-family:var(--font)}
.cs-lpick:hover{border-color:#6366f1;transform:translateY(-2px)}.cs-lpick span{font-size:22px}.cs-lpick b{font-size:14px}.cs-lpick small{color:var(--a-muted);font-size:11.5px}
.cs-lpick.sm{flex-direction:row;align-items:center;gap:8px}.cs-lpick.sm span{font-size:18px}
.cs-plist{display:flex;flex-direction:column;gap:6px}
.cs-pitem{display:flex;gap:6px}.cs-pitem>button:first-child{flex:1;display:grid;grid-template-columns:30px 1fr;text-align:left;gap:0 8px;padding:10px;border-radius:14px;border:1px solid rgba(127,127,127,.25);background:rgba(127,127,127,.07);color:var(--a-ink);cursor:pointer;font-family:var(--font)}
.cs-pitem span{grid-row:span 2;font-size:22px}.cs-pitem small{color:var(--a-muted)}
.cs-x{border:0;background:none;cursor:pointer;font-size:16px}
/* the editor */
.ce{display:flex;height:100%;font:14px/21px ui-monospace,"Cascadia Code",Consolas,"Courier New",monospace;background:#0b1020;color:#e2e8f0}
.ce-gut{flex:0 0 auto;min-width:44px;padding:10px 8px 10px 4px;text-align:right;color:#475569;overflow:hidden;user-select:none;background:#080c19;border-right:1px solid #1e293b}
.ce-gut span{display:block}.ce-gut span.err{color:#fff;background:#b91c1c;border-radius:4px}
.ce-wrap{position:relative;flex:1;min-width:0}
.ce-hl,.ce-ta{position:absolute;inset:0;margin:0;padding:10px 12px;font:inherit;tab-size:4;white-space:pre;overflow:auto;box-sizing:border-box;border:0;letter-spacing:0;word-spacing:0}
.ce-hl{pointer-events:none;color:#e2e8f0;overflow:hidden}
.ce-ta{color:transparent;background:transparent;caret-color:#f8fafc;resize:none;outline:none;-webkit-text-fill-color:transparent}
.ce-ta::selection{background:rgba(99,102,241,.45);-webkit-text-fill-color:transparent}
.ce-hl .k{color:#c084fc}.ce-hl .s{color:#86efac}.ce-hl .c{color:#64748b;font-style:italic}.ce-hl .n{color:#fdba74}.ce-hl .f{color:#7dd3fc}.ce-hl .t{color:#fcd34d}.ce-hl .p{color:#f472b6}.ce-hl .a{color:#fcd34d}
html.a11y-sp .ce-hl,html.a11y-sp .ce-ta{letter-spacing:0!important;word-spacing:0!important}
@media(max-width:900px){.cs{height:auto}.cs-main{grid-template-columns:1fr}.cs-ed{height:52vh}.cs-side{min-height:360px}.cs-langs{grid-template-columns:1fr 1fr}.cs-case-b{grid-template-columns:1fr}}

/* ======================================================================================
   Class Chat — familiar social-app style (inbox with notes, gradient bubbles, reactions, swipe to reply)
   ====================================================================================== */
.cc-wrap{max-width:720px!important}
.ig{color:var(--a-ink);font-family:var(--font);padding-bottom:20px}
.ig-top{display:flex;align-items:center;gap:8px;padding:6px 2px 10px}
.ig-me{display:flex;align-items:center;gap:6px;border:0;background:none;color:var(--a-ink);font:800 21px var(--font);cursor:pointer;padding:4px}
.ig-me span{font-size:16px;opacity:.7}.ig-title{font-size:21px}
.ig-sp{flex:1}
.ig-ic{width:40px;height:40px;border-radius:50%;border:0;background:rgba(127,127,127,.12);color:var(--a-ink);font-size:18px;cursor:pointer}
.ig-search input{width:100%;box-sizing:border-box;border:0;border-radius:12px;padding:11px 14px;background:rgba(127,127,127,.14);color:var(--a-ink);font:15px var(--font);outline:none}
.ig-notes{display:flex;gap:22px;overflow-x:auto;padding:36px 2px 10px;scrollbar-width:none}.ig-notes::-webkit-scrollbar{display:none}
.ig-note{position:relative;flex:0 0 auto;width:78px;display:flex;flex-direction:column;align-items:center;gap:6px;border:0;background:none;color:var(--a-ink);cursor:pointer;font-family:var(--font)}
.ig-note small{font-size:12px;color:var(--a-muted);max-width:78px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ig-bub{position:absolute;top:-30px;left:50%;transform:translateX(-50%);width:max-content;min-width:56px;max-width:92px;box-sizing:border-box;padding:7px 10px;border-radius:16px;font-size:11.5px;line-height:1.25;white-space:nowrap;text-overflow:ellipsis;background:var(--g-panel,#26213f);border:1px solid rgba(255,255,255,.14);box-shadow:0 6px 14px rgba(0,0,0,.25);display:block;overflow:hidden;text-align:center;z-index:1}
.ig-bub::after{content:"";position:absolute;bottom:-5px;left:30%;width:8px;height:8px;border-radius:50%;background:inherit;border:inherit;border-top:0;border-left:0}
.ig-bub.add{color:var(--a-muted)}
.ig-av{position:relative;flex:0 0 auto;display:inline-grid;place-items:center;width:var(--s);height:var(--s);border-radius:50%}
.ig-av>i{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;font-style:normal;font-weight:800;color:#fff;font-size:calc(var(--s) * .44);background:linear-gradient(135deg,var(--g))}
.ig-av.ring{padding:3px;width:calc(var(--s) + 6px);height:calc(var(--s) + 6px);background:conic-gradient(from 200deg,#f59e0b,#ef4444,#d946ef,#8b5cf6,#f59e0b)}
.ig-av.ring>i{box-shadow:0 0 0 3px var(--a-bg,#0f0b24)}
.ig-on{position:absolute;right:1px;bottom:1px;width:calc(var(--s) * .26);height:calc(var(--s) * .26);max-width:15px;max-height:15px;border-radius:50%;background:#22c55e;border:3px solid var(--a-bg,#0f0b24)}
.ig-tabs{display:flex;gap:8px;margin:6px 0 4px;overflow-x:auto}
.ig-tabs button{flex:0 0 auto;border:1px solid rgba(127,127,127,.3);background:none;color:var(--a-ink);border-radius:99px;padding:7px 16px;font:700 13.5px var(--font);cursor:pointer}
.ig-tabs button.on{background:linear-gradient(135deg,#7c3aed,#db2777);color:#fff;border-color:transparent}
.ig-h{padding:12px 2px 4px}.ig-h b{font-size:16px}
.ig-row{display:flex;align-items:center;gap:12px;width:100%;padding:9px 4px;border:0;background:none;color:var(--a-ink);text-align:left;cursor:pointer;border-radius:14px;font-family:var(--font)}
.ig-row:hover{background:rgba(127,127,127,.08)}
.ig-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ig-tx b{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ig-tx small{font-size:13.5px;color:var(--a-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ig-row.new .ig-tx b,.ig-row.new .ig-tx small{font-weight:800;color:var(--a-ink)}
.ig-end{display:flex;align-items:center;gap:6px;font-size:13px}
.ig-dot{width:9px;height:9px;border-radius:50%;background:#3b82f6;display:inline-block}
.ig-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:34px 14px;color:var(--a-ink)}
.ig-empty>span{font-size:46px}.ig-empty p{color:var(--a-muted);margin:0;max-width:340px}.ig-empty.small{padding:20px}
.ig-btn{border:0;border-radius:12px;padding:10px 18px;font:700 14px var(--font);color:#fff;background:#3b82f6;cursor:pointer}
.ig-btn.alt{background:rgba(127,127,127,.2);color:var(--a-ink)}.ig-btn.sm{padding:7px 12px;font-size:13px}.ig-btn.wide{width:100%;padding:13px}
/* sheets */
.ig-sheetwrap{align-items:flex-end}
.ig-sheet{border-radius:24px 24px 0 0;width:min(560px,100%);max-height:88vh;overflow:auto;padding-top:26px;display:flex;flex-direction:column;gap:12px}
.ig-sheet.short{gap:10px}
@media(min-width:700px){.ig-sheetwrap{align-items:center}.ig-sheet{border-radius:24px}}
.ig-grab{position:absolute;top:9px;left:50%;transform:translateX(-50%);width:40px;height:4px;border-radius:9px;background:rgba(127,127,127,.4)}
.ig-sheet h3{margin:0;text-align:center}
.ig-f{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--a-muted);font-weight:700}
.ig-or{display:flex;align-items:center;gap:10px;color:var(--a-muted);font-size:12px}.ig-or::before,.ig-or::after{content:"";flex:1;height:1px;background:rgba(127,127,127,.3)}
.ig-code{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px;border-radius:16px;background:rgba(127,127,127,.1)}
.ig-code b{font-size:24px;letter-spacing:3px}.ig-code div{display:flex;gap:8px}.ig-code p,.ig-code small{margin:0;color:var(--a-muted);font-size:12.5px;text-align:center}
.ig-prof{display:flex;flex-direction:column;align-items:center;gap:6px}.ig-prof h3{margin:4px 0 0}
.ig-avs{display:flex;flex-wrap:wrap;gap:6px}.ig-avs button{width:42px;height:42px;border-radius:50%;border:2px solid transparent;background:rgba(127,127,127,.12);font-size:21px;cursor:pointer;color:var(--a-ink)}
.ig-avs button.on{border-color:#3b82f6}
.ig-cols{display:flex;gap:10px}.ig-cols button{width:34px;height:34px;border-radius:50%;border:3px solid transparent;background:linear-gradient(135deg,var(--g));cursor:pointer}.ig-cols button.on{border-color:var(--a-ink)}
.ig-notebig{display:flex;flex-direction:column;align-items:center;gap:12px}.ig-notebig input{text-align:center;font-size:16px}
.ig-row2{display:flex;flex-direction:column;gap:8px}
.ig-mut{color:var(--a-muted);font-size:13px;margin:0}.center{text-align:center}
.ig-quick{display:flex;justify-content:center;gap:10px}.ig-quick button{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:76px;padding:10px;border:0;border-radius:14px;background:rgba(127,127,127,.12);color:var(--a-ink);font:600 12.5px var(--font);cursor:pointer}.ig-quick span{font-size:20px}
.ig-h4{margin:6px 0 0}
.ig-people{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow:auto}.ig-people div{display:flex;align-items:center;gap:10px}.ig-people div>span:not(.ig-av){flex:1}.ig-people em{font-style:normal;font-size:11px;font-weight:800;padding:2px 8px;border-radius:99px;background:rgba(59,130,246,.2);color:#60a5fa}
.ig-acts{display:flex;flex-direction:column;border-radius:16px;overflow:hidden;background:rgba(127,127,127,.1)}
.ig-acts button{border:0;border-bottom:1px solid rgba(127,127,127,.15);background:none;color:var(--a-ink);text-align:left;padding:14px 16px;font:600 15px var(--font);cursor:pointer}
.ig-acts button:last-child{border-bottom:0}.ig-acts button.bad{color:#ef4444}
.ig-rxbar{display:flex;justify-content:space-between;gap:4px;padding:8px 10px;border-radius:99px;background:rgba(127,127,127,.14)}
.ig-rxbar button{border:0;background:none;font-size:27px;cursor:pointer;border-radius:50%;width:44px;height:44px;transition:transform .15s}.ig-rxbar button:hover{transform:scale(1.25)}.ig-rxbar button.on{background:rgba(127,127,127,.25)}
/* the conversation */
.room-screen .rm-wrap{max-width:760px;margin:0 auto;display:flex;flex-direction:column;height:calc(100dvh - 90px)}
.ig-rh{display:flex;align-items:center;gap:6px;padding:8px 6px;border-bottom:1px solid rgba(127,127,127,.18)}
.ig-back{border:0;background:none;color:var(--a-ink);font-size:30px;line-height:1;cursor:pointer;padding:0 8px}
.ig-who{display:flex;align-items:center;gap:10px;border:0;background:none;color:var(--a-ink);cursor:pointer;text-align:left;min-width:0;font-family:var(--font)}
.ig-who span{display:flex;flex-direction:column;min-width:0}.ig-who b{font-size:15.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ig-who small{font-size:12px;color:var(--a-muted)}
.ig-list{flex:1;overflow-y:auto;overflow-x:hidden;padding:10px 10px 6px;display:flex;flex-direction:column}
.ig-hello{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;margin:auto 0;padding:30px 10px}.ig-hello b{font-size:18px}.ig-hello p{margin:0}
.ig-time{align-self:center;font-size:11.5px;color:var(--a-muted);font-weight:600;margin:14px 0 8px}
.ig-sys{align-self:center;font-size:12px;color:var(--a-muted);margin:6px 0;padding:4px 10px;border-radius:99px;background:rgba(127,127,127,.1)}
.ig-m{display:flex;flex-direction:column;margin-top:2px;transition:transform .15s;touch-action:pan-y}
.ig-m.first,.ig-m.single{margin-top:8px}.ig-m.hasrx{margin-bottom:14px}
.ig-m.me{align-items:flex-end}
.ig-m.swiping .ig-b{box-shadow:0 0 0 2px #3b82f6}
.ig-name{font-size:11.5px;color:var(--a-muted);margin:0 0 3px 40px}
.ig-line{display:flex;align-items:flex-end;gap:8px;max-width:78%}
.ig-avsp{width:28px;flex:0 0 28px}
.ig-col{display:flex;flex-direction:column;position:relative;min-width:0}
.ig-m.me .ig-col{align-items:flex-end}
.ig-b{position:relative;padding:9px 14px;font-size:15px;line-height:1.38;word-wrap:break-word;overflow-wrap:anywhere;border-radius:22px;background:rgba(127,127,127,.22);color:var(--a-ink);user-select:text;cursor:default}
.ig-m.me .ig-b{color:#fff;background:linear-gradient(135deg,#7c3aed,#c026d3 55%,#db2777);background-attachment:fixed}
.ig-m.them.first .ig-b{border-bottom-left-radius:6px}.ig-m.them.mid .ig-b{border-top-left-radius:6px;border-bottom-left-radius:6px}.ig-m.them.last .ig-b{border-top-left-radius:6px}
.ig-m.me.first .ig-b{border-bottom-right-radius:6px}.ig-m.me.mid .ig-b{border-top-right-radius:6px;border-bottom-right-radius:6px}.ig-m.me.last .ig-b{border-top-right-radius:6px}
.ig-b.emoji{background:none!important;font-size:40px;line-height:1.1;padding:2px 0}
.ig-b.gone{background:none!important;border:1px solid rgba(127,127,127,.35);color:var(--a-muted)!important;font-size:13.5px}
.ig-b.img{padding:0;background:none!important;overflow:hidden;border-radius:18px!important}
.ig-b.img img{display:block;max-width:260px;max-height:340px;min-width:120px;min-height:90px;border-radius:18px;object-fit:cover;background:rgba(127,127,127,.2);cursor:zoom-in}
.ig-b.img p{margin:6px 4px 0;font-size:14px}
.ig-b.voice{display:flex;align-items:center;gap:10px;min-width:200px}
.ig-play{width:32px;height:32px;border-radius:50%;border:0;background:rgba(255,255,255,.25);color:inherit;font-size:13px;cursor:pointer}
.ig-wave{flex:1;display:flex;align-items:center;gap:2px;height:26px}
.ig-wave i{flex:1;border-radius:2px;background:currentColor;opacity:.55;height:30%}
.ig-wave i:nth-child(3n){height:75%}.ig-wave i:nth-child(4n){height:50%}.ig-wave i:nth-child(5n){height:95%}.ig-wave i:nth-child(7n){height:40%}
.ig-b.voice small{font-size:12px;opacity:.85}
.ig-b.file{padding:6px}
.ig-file{display:flex;align-items:center;gap:10px;border:0;background:rgba(0,0,0,.15);color:inherit;border-radius:16px;padding:10px 12px;cursor:pointer;text-align:left;font-family:var(--font)}
.ig-file>span:first-child{font-size:26px}.ig-file b{display:block;font-size:13.5px}.ig-file small{font-size:11.5px;opacity:.8}
.ig-q{display:flex;flex-direction:column;gap:2px;max-width:240px;margin-bottom:-10px;padding:8px 12px 16px;border-radius:16px;background:rgba(127,127,127,.12);opacity:.85}
.ig-q small{font-size:11px;color:var(--a-muted)}.ig-q span{font-size:13px;color:var(--a-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ig-rx{position:absolute;bottom:-15px;left:8px;border:2px solid var(--a-bg,#0f0b24);border-radius:99px;padding:1px 6px;font-size:12.5px;background:rgba(60,60,80,.95);color:#fff;cursor:pointer;white-space:nowrap}
.ig-m.me .ig-rx{left:auto;right:8px}
.ig-seen{align-self:flex-end;font-size:11.5px;color:var(--a-muted);margin:3px 6px 0}
.ig-typing{display:flex;gap:4px;padding:13px 14px!important}.ig-typing i{width:7px;height:7px;border-radius:50%;background:var(--a-muted);animation:igDot 1.2s infinite}.ig-typing i:nth-child(2){animation-delay:.15s}.ig-typing i:nth-child(3){animation-delay:.3s}
@keyframes igDot{0%,60%,100%{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}
.ig-burst{position:absolute;left:50%;top:50%;font-size:46px;pointer-events:none;transform:translate(-50%,-50%) scale(.2);animation:igBurst .8s ease-out forwards;z-index:3}
@keyframes igBurst{40%{transform:translate(-50%,-50%) scale(1.25);opacity:1}100%{transform:translate(-50%,-90%) scale(1);opacity:0}}
.ig-blocked{padding:14px;text-align:center;color:var(--a-muted);border-top:1px solid rgba(127,127,127,.18)}.ig-blocked button{border:0;background:none;color:#3b82f6;font-weight:700;cursor:pointer}
.ig-replybar{display:flex;align-items:center;gap:10px;margin:0 10px;padding:8px 12px;border-radius:14px 14px 0 0;background:rgba(127,127,127,.14)}
.ig-replybar span{flex:1;min-width:0;display:flex;flex-direction:column}.ig-replybar small{font-size:11.5px;color:var(--a-muted)}.ig-replybar b{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ig-replybar button{border:0;background:none;color:var(--a-ink);cursor:pointer;font-size:15px}
.ig-comp{display:flex;align-items:flex-end;gap:8px;margin:6px 10px 10px;padding:6px 8px 6px 6px;border-radius:26px;background:rgba(127,127,127,.16)}
.ig-cam{flex:0 0 38px;width:38px;height:38px;border-radius:50%;border:0;background:#3b82f6;font-size:17px;cursor:pointer}
.ig-comp textarea{flex:1;border:0;background:none;color:var(--a-ink);font:15px/1.4 var(--font);resize:none;outline:none;padding:9px 2px;max-height:120px}
.ig-tools{display:flex;gap:2px}.ig-tools button{width:36px;height:38px;border:0;background:none;font-size:20px;cursor:pointer;border-radius:50%}
.ig-send{border:0;background:none;color:#3b82f6;font:800 15px var(--font);padding:9px 8px;cursor:pointer}
.ig-rec{display:flex;align-items:center;gap:10px;margin:6px 10px 10px;padding:8px 10px;border-radius:26px;background:rgba(239,68,68,.15)}
.ig-rec>button:first-child{border:0;background:none;font-size:18px;cursor:pointer}
.ig-recdot{width:10px;height:10px;border-radius:50%;background:#ef4444;animation:igDot 1s infinite}
@media(max-width:620px){.ig-line{max-width:86%}.room-screen .rm-wrap{height:calc(100dvh - 70px)}}

/* Chat settings */
.ig-sheet.settings{gap:8px}
.ig-sheet.settings h3{margin-bottom:4px}
.ig-scard{display:flex;align-items:center;gap:12px;padding:12px;border-radius:18px;background:rgba(127,127,127,.12)}
.ig-sh{margin:10px 2px 2px;font-size:13px;color:var(--a-muted);text-transform:uppercase;letter-spacing:.05em}
.ig-sgroup{display:flex;flex-direction:column;border-radius:16px;overflow:hidden;background:rgba(127,127,127,.1)}
.ig-srow{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:0;border-bottom:1px solid rgba(127,127,127,.14);background:none;color:var(--a-ink);text-align:left;font-family:var(--font)}
button.ig-srow{cursor:pointer}button.ig-srow:hover{background:rgba(127,127,127,.08)}
.ig-srow:last-child{border-bottom:0}
.ig-sic{width:32px;height:32px;flex:0 0 32px;display:grid;place-items:center;border-radius:10px;background:rgba(127,127,127,.15);font-size:16px}
.ig-stx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ig-stx b{font-size:14.5px}.ig-stx small{font-size:12.5px;color:var(--a-muted);line-height:1.35}
.ig-chev{font-size:20px;color:var(--a-muted)}
.ig-sbtns{display:flex;gap:6px}
.ig-sback{align-self:flex-start;border:0;background:none;color:#3b82f6;font:700 14px var(--font);cursor:pointer;padding:0}
.ig-bubs{display:flex;gap:10px;padding:2px 14px 12px 58px;border-bottom:1px solid rgba(127,127,127,.14)}
.ig-bubs button{width:32px;height:32px;border-radius:50%;border:3px solid transparent;background:linear-gradient(135deg,var(--g));cursor:pointer}.ig-bubs button.on{border-color:var(--a-ink)}
.ig-loadimg{border:1px dashed rgba(127,127,127,.5);background:rgba(127,127,127,.12);color:var(--a-ink);border-radius:16px;padding:22px 18px;font:600 13px var(--font);cursor:pointer}
.ig-m.me .ig-b{background:var(--ig-me,linear-gradient(135deg,#7c3aed,#c026d3 55%,#db2777));background-attachment:fixed}
.ig-m.me .ig-b.emoji,.ig-m.me .ig-b.img,.ig-m.me .ig-b.gone{background:none}
.ig-sheet>*{flex-shrink:0}

/* Chat settings: every option opens below itself */
.ig-sheet.settings{width:min(620px,100%);gap:6px}
.ig-search.sx input{padding:10px 14px}
.ig-acc{border-bottom:1px solid rgba(127,127,127,.14)}.ig-acc:last-child{border-bottom:0}
.ig-acc .ig-srow{border-bottom:0}
.ig-acc .ig-chev{transition:transform .2s;font-size:16px}
.ig-acc.open .ig-chev{transform:rotate(180deg)}
.ig-acc.open>.ig-srow{background:rgba(127,127,127,.08)}
.ig-accb{display:flex;flex-direction:column;gap:12px;padding:6px 14px 16px 58px;animation:igOpen .2s ease-out}
@keyframes igOpen{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.ig-line2{display:flex;align-items:center;gap:12px}.ig-line2 .ig-stx small{font-size:12.5px}
.ig-link{border:0;background:none;color:#3b82f6;font:700 12.5px var(--font);cursor:pointer;padding:0}
.ig-chips{display:flex;flex-wrap:wrap;gap:6px}.ig-chips button{border:1px solid rgba(127,127,127,.3);background:none;color:var(--a-ink);border-radius:99px;padding:6px 12px;font:600 12.5px var(--font);cursor:pointer}
.ig-chips button.on{background:linear-gradient(135deg,#7c3aed,#db2777);border-color:transparent;color:#fff}
.ig-bubs.inline{padding:0;border:0}
.ig-demo{border-radius:16px;padding:10px;display:flex;flex-direction:column;gap:2px;border:1px solid rgba(127,127,127,.2)}
.ig-demo .ig-line{max-width:90%}
.ig-prev{display:flex;align-items:center;gap:12px;padding:10px;border-radius:14px;background:rgba(127,127,127,.1)}.ig-prev span{display:flex;flex-direction:column}.ig-prev small{color:var(--a-muted)}
.ig-cnt{font-style:normal;float:right;font-weight:600}
.ig-row3{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.ig-row3 .input{flex:1;min-width:120px}.ig-row3 .ig-f{flex:1}
.ig-warn{padding:12px;border-radius:14px;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.4)}.ig-warn p{margin:4px 0 10px;font-size:13px;color:var(--a-muted)}
.ig-btn.danger{background:#dc2626}
.ig-mini{display:flex;flex-direction:column;gap:6px}.ig-minirow{display:flex;align-items:center;gap:10px;font-size:14px}.ig-minirow span{flex:1}
.ig-tags{display:flex;flex-wrap:wrap;gap:6px}.ig-tags span{display:inline-flex;align-items:center;gap:6px;padding:5px 6px 5px 12px;border-radius:99px;background:rgba(239,68,68,.15);font-size:13px;font-weight:700}
.ig-tags button{border:0;width:20px;height:20px;border-radius:50%;background:rgba(127,127,127,.25);color:var(--a-ink);cursor:pointer;font-size:11px}
.ig-tips{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:13.5px;line-height:1.45}
@media(max-width:560px){.ig-accb{padding-left:14px}}
/* chat text size + wallpapers */
.ig-b{font-size:var(--ig-fs,15px)}
.ig-b.emoji{font-size:calc(var(--ig-fs,15px) * 2.6)}
html[data-igwall="aurora"] .ig-list,.ig-demo[data-wall="aurora"]{background:radial-gradient(80% 60% at 0% 0%,rgba(124,58,237,.28),transparent 60%),radial-gradient(70% 60% at 100% 100%,rgba(16,185,129,.22),transparent 60%)}
html[data-igwall="sunset"] .ig-list,.ig-demo[data-wall="sunset"]{background:linear-gradient(180deg,rgba(249,115,22,.18),rgba(219,39,119,.16))}
html[data-igwall="ocean"] .ig-list,.ig-demo[data-wall="ocean"]{background:linear-gradient(180deg,rgba(14,165,233,.18),rgba(37,99,235,.14))}
html[data-igwall="dots"] .ig-list,.ig-demo[data-wall="dots"]{background:radial-gradient(rgba(127,127,127,.28) 1px,transparent 1.5px) 0 0/18px 18px}
html[data-igwall="paper"] .ig-list,.ig-demo[data-wall="paper"]{background:repeating-linear-gradient(180deg,transparent 0 27px,rgba(96,165,250,.18) 27px 28px)}

/* Class Chat v3: people, friend requests, suggestions, attach menu, files to library, chat themes */
.ig-slhint{align-self:center;color:var(--a-muted);font-size:12.5px;padding:0 6px;max-width:160px}
.ig-tabs button em{font-style:normal;display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:4px;border-radius:9px;background:#ef4444;color:#fff;font-size:11px}
.ig-h{display:flex;align-items:baseline;gap:8px}.ig-h small{color:var(--a-muted);font-size:12.5px}
.ig-pad{padding:6px 4px}
.ig-prow{cursor:default;gap:8px}.ig-prow:hover{background:none}
.ig-pick{display:flex;align-items:center;gap:12px;flex:1;min-width:0;border:0;background:none;color:var(--a-ink);text-align:left;cursor:pointer;font-family:var(--font);padding:0}
.ig-pick.col{flex-direction:column;gap:4px;text-align:center}
.ig-pick.col b{font-size:13.5px;max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ig-pick.col small{font-size:11.5px;color:var(--a-muted)}
.ig-tagf{font-size:12px;font-weight:700;color:var(--a-muted);padding:6px 10px;border-radius:10px;background:rgba(127,127,127,.12)}
.ig-sugbox{margin-top:10px;padding-top:6px;border-top:1px solid rgba(127,127,127,.18)}
.ig-sugrow{display:flex;gap:10px;overflow-x:auto;padding:6px 2px 10px;scrollbar-width:thin}
.ig-sug{position:relative;flex:0 0 150px;display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 10px 12px;border-radius:18px;background:rgba(127,127,127,.1);border:1px solid rgba(127,127,127,.18)}
.ig-sug .ig-btn{width:100%}
.ig-sx{position:absolute;top:6px;right:8px;border:0;background:none;color:var(--a-muted);cursor:pointer;font-size:13px}
.ig-sugempty{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:12px;border-radius:14px;background:rgba(127,127,127,.1);color:var(--a-muted);font-size:13.5px}
.ig-on-t{color:#22c55e;font-size:13px;margin:0}
.ig-row3.center{justify-content:center}
.ig-attach{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.ig-attach button{display:flex;flex-direction:column;align-items:center;gap:6px;border:0;background:none;color:var(--a-ink);font:600 12.5px var(--font);cursor:pointer;padding:6px}
.ig-attach span{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font-size:24px;background:linear-gradient(135deg,var(--g));box-shadow:0 8px 18px -8px rgba(0,0,0,.5)}
.ig-libpick{width:100%;border:0;background:rgba(127,127,127,.08);color:var(--a-ink);border-radius:12px;padding:10px;cursor:pointer;text-align:left;font-family:var(--font)}
.ig-libpick span{flex:1}.ig-libpick small{color:var(--a-muted)}.ig-libpick b{color:#3b82f6;font-size:13px}
.ig-b.file{padding:10px;min-width:230px;max-width:290px}
.ig-filecard{display:flex;align-items:center;gap:10px}
.ig-fic{font-size:30px;line-height:1}
.ig-fmeta{display:flex;flex-direction:column;min-width:0}.ig-fmeta b{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ig-fmeta small{font-size:11.5px;opacity:.8}
.ig-fbtns{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.ig-fbtns button{flex:1;border:0;border-radius:10px;padding:7px 10px;font:700 12px var(--font);cursor:pointer;background:rgba(255,255,255,.18);color:inherit}
.ig-fbtns button:first-child{background:rgba(255,255,255,.92);color:#111}
.ig-fbtns button.on{background:rgba(34,197,94,.9);color:#fff}
.ig-m.them .ig-fbtns button:first-child{background:#3b82f6;color:#fff}.ig-m.them .ig-fbtns button.on{background:#16a34a}
.ig-walls{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.ig-walls button{height:64px;border-radius:12px;border:2px solid rgba(127,127,127,.25);cursor:pointer;color:var(--a-ink);font:700 11.5px var(--font);display:flex;align-items:flex-end;justify-content:center;padding:4px;background-color:rgba(127,127,127,.08)}
.ig-walls button.on{border-color:#3b82f6}.ig-walls span{background:rgba(0,0,0,.45);color:#fff;border-radius:6px;padding:1px 6px}
.ig-demo{background-size:cover!important}
@media(max-width:520px){.ig-walls{grid-template-columns:repeat(3,1fr)}}

.ig-bub{background:color-mix(in srgb,var(--a-ink) 12%,transparent)!important;color:var(--a-ink)!important;border-color:color-mix(in srgb,var(--a-ink) 22%,transparent)!important;backdrop-filter:blur(8px)}
.ig-list[style*="url("] .ig-time,.ig-list[style*="url("] .ig-sys,.ig-list[style*="url("] .ig-seen,.ig-list[style*="url("] .ig-name{background:rgba(0,0,0,.5);color:#fff;padding:2px 10px;border-radius:99px;align-self:center}
.ig-list[style*="url("] .ig-seen{align-self:flex-end}

/* Login / sign up (Google, phone OTP, e-mail code or password) */
.sheet.auth-modal{max-width:440px;padding:22px 26px calc(26px + env(safe-area-inset-bottom,0px));position:fixed}
@media(min-width:720px){.sheet.auth-modal{top:50%;bottom:auto;left:50%;right:auto;width:440px;border-radius:26px!important;transform:translate(-50%,-46%) scale(.96);opacity:0;visibility:hidden;transition:transform .3s cubic-bezier(.1,.9,.2,1),opacity .25s,visibility .25s}
  .sheet.auth-modal.show{transform:translate(-50%,-50%);opacity:1;visibility:visible}.sheet.auth-modal .sheet-handle{display:none}}
#auth-body{position:relative;display:flex;flex-direction:column;align-items:stretch;text-align:center}
.au-back,.au-x{position:absolute;top:-6px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:17px;color:var(--muted);background:rgba(127,127,127,.1)}
.au-back{left:-6px}.au-x{right:-6px}.au-back:hover,.au-x:hover{color:var(--ink);background:rgba(127,127,127,.2)}
.au-logo{width:64px;height:64px;margin:2px auto 12px}
.au-logo img{width:100%;height:100%;display:block;object-fit:contain;filter:drop-shadow(0 10px 18px rgba(249,115,22,.35))}
.au-h{font-size:24px;font-weight:800;letter-spacing:-.02em;margin:0 0 6px}
.au-sub{color:var(--muted);font-size:14px;margin:0 0 18px;line-height:1.5}.au-sub b{color:var(--ink)}
.au-stack{display:flex;flex-direction:column;gap:10px}
.au-in{width:100%;height:50px;border-radius:14px;border:1.5px solid var(--line);background:rgba(127,127,127,.06);padding:0 16px;font-size:15.5px;outline:none;transition:border-color .15s,box-shadow .15s}
.au-in:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(59,130,246,.18)}
select.au-in{padding:0 10px;cursor:pointer}
.au-code{text-align:center;font-size:26px;font-weight:700;letter-spacing:12px;padding-left:24px;height:60px;font-variant-numeric:tabular-nums}
.au-phone{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:8px}
.au-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:50px;border-radius:999px;font-weight:700;font-size:15px;transition:transform .1s,filter .15s,background .15s}
.au-btn:active{transform:scale(.98)}.au-btn:disabled{opacity:.6;cursor:wait}
.au-main{background:var(--ink);color:var(--bg)}.au-main:hover{filter:brightness(.92)}
.au-alt{border:1.5px solid var(--line);background:rgba(127,127,127,.05);color:var(--ink)}.au-alt:hover{background:rgba(127,127,127,.12)}
.au-gwrap{min-height:50px;display:flex;justify-content:center}.au-gwrap.ready{min-height:44px}.au-gwrap>.au-btn{width:100%}
.au-or{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.08em}
.au-or::before,.au-or::after{content:"";flex:1;height:1px;background:var(--line)}
.au-fine{color:var(--muted);font-size:12px;margin:16px 0 0}
.au-err{color:var(--danger);font-size:13.5px;min-height:20px;margin:10px 0 0}.au-err:empty{min-height:0;margin:0}
.au-row{display:flex;justify-content:space-between;gap:10px;margin-top:14px;flex-wrap:wrap}
.au-link{color:var(--accent);font-weight:600;font-size:13.5px;padding:4px 2px}.au-link:disabled{color:var(--muted);cursor:default}
.au-chip{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 auto 16px;padding:8px 14px;border-radius:999px;background:rgba(127,127,127,.1);font-size:14px;max-width:100%;overflow:hidden}
.au-test{margin:0 0 14px;padding:10px 12px;border-radius:12px;background:rgba(234,179,8,.12);border:1px dashed rgba(234,179,8,.5);font-size:13px;color:var(--ink)}
.au-test b{font-size:16px;letter-spacing:2px}
