/* SanUp zero-warning visual pass. Obiettivo: grafica leggibile, seria, premium. */
:root{
  --zu-bg:#050816;
  --zu-panel:#0f172a;
  --zu-panel-2:#111c33;
  --zu-text:#f8fafc;
  --zu-muted:#d7e2f2;
  --zu-soft:#e8eef8;
  --zu-line:rgba(148,163,184,.34);
  --zu-blue:#2563eb;
  --zu-violet:#7c3aed;
  --zu-cyan:#06b6d4;
  --zu-gold:#facc15;
}

html,body{min-width:0!important;overflow-x:hidden!important;text-rendering:optimizeLegibility!important;-webkit-font-smoothing:antialiased!important;}
body{background:radial-gradient(circle at 16% 0%,rgba(37,99,235,.28),transparent 30%),radial-gradient(circle at 86% 10%,rgba(124,58,237,.24),transparent 34%),linear-gradient(180deg,#050816 0%,#0b1020 50%,#111827 100%)!important;color:var(--zu-text)!important;}

/* Regola base: niente microtesti. */
body :is(p,span,a,button,label,input,textarea,small,div,h1,h2,h3,h4,li){text-shadow:none!important;}
body :is(p,span,a,button,label,input,textarea,small,li){font-size:max(12px,1em)!important;line-height:1.35!important;}
body :is(.stat-label,.top-stat-label,.badge-name,.trophy-name,.level-xp,.mode-sub,.m-cd-l,.m-cd-s,.m-stat-l,.m-mode-s,.chip,.k,.pts){font-size:12px!important;line-height:1.25!important;color:var(--zu-muted)!important;letter-spacing:.01em!important;}

/* Emoji e iconcine: sempre in chip leggibile, non buttate nude. */
body :is(.badge-icon,.trophy-icon,.mode-icon,.m-mode-i,.tile__icon,.emoji,.icon){display:inline-grid!important;place-items:center!important;min-width:30px!important;min-height:30px!important;border-radius:12px!important;background:linear-gradient(135deg,rgba(37,99,235,.22),rgba(124,58,237,.24))!important;border:1px solid rgba(226,232,240,.18)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 8px 20px rgba(2,6,23,.20)!important;color:#fff!important;filter:none!important;opacity:1!important;}

/* APP: dashboard, card, badge, quiz */
.app{color:var(--zu-text)!important;}
.glass,.glass-dark,body.light .glass,body.light .glass-dark,.top-stat,.goal-card,.level-bar,.mode-card,.badge-card,.trophy-card,.topic-row,.session-row,.qod-card{background:linear-gradient(180deg,rgba(15,23,42,.94),rgba(15,23,42,.78))!important;border:1px solid var(--zu-line)!important;box-shadow:0 18px 48px rgba(0,0,0,.30),inset 0 1px 0 rgba(255,255,255,.06)!important;backdrop-filter:blur(18px)!important;color:var(--zu-text)!important;}
body.light .glass,body.light .glass-dark,body.light .top-stat,body.light .goal-card,body.light .level-bar,body.light .mode-card,body.light .badge-card,body.light .trophy-card,body.light .topic-row,body.light .session-row{background:linear-gradient(180deg,rgba(15,23,42,.92),rgba(15,23,42,.74))!important;color:var(--zu-text)!important;}
:is(.stat-val,.top-stat-val,.level-name,.level-num,.mode-title,.section-title,.topic-name,.badge-name,.trophy-name,.qod-text,.question-box p,.opt-text){color:var(--zu-text)!important;-webkit-text-fill-color:var(--zu-text)!important;background:none!important;}
:is(.stat-label,.top-stat-label,.level-xp,.mode-sub,.topic-meta,.trophy-desc,.header p){color:var(--zu-muted)!important;}
:is(.stat-label,.top-stat-label){font-weight:800!important;text-transform:none!important;}
:is(.stat-val,.top-stat-val){font-size:max(22px,1.25em)!important;font-weight:950!important;}
.badge-name,.trophy-name{font-weight:850!important;min-height:16px!important;}
.qod-card{border-color:rgba(250,204,21,.46)!important;background:linear-gradient(180deg,rgba(250,204,21,.18),rgba(15,23,42,.86))!important;}
.qod-badge{color:#fff7cc!important;background:rgba(250,204,21,.16)!important;border:1px solid rgba(250,204,21,.28)!important;border-radius:999px!important;padding:6px 9px!important;font-size:12px!important;font-weight:900!important;display:inline-flex!important;align-items:center!important;gap:6px!important;}
.question-box{background:linear-gradient(180deg,#0f172a,#111827)!important;border:1px solid rgba(96,165,250,.36)!important;box-shadow:0 22px 60px rgba(0,0,0,.34)!important;}
.opt-btn,.btn-subject,.btn-count{background:linear-gradient(180deg,rgba(15,23,42,.84),rgba(30,41,59,.70))!important;border:1.5px solid rgba(203,213,225,.24)!important;color:var(--zu-text)!important;}
.opt-letter{background:rgba(96,165,250,.24)!important;color:#dbeafe!important;border:1px solid rgba(147,197,253,.28)!important;}
.expl-box{background:linear-gradient(180deg,rgba(15,23,42,.90),rgba(15,23,42,.74))!important;border:1px solid rgba(34,211,238,.28)!important;}
.expl-title{color:#67e8f9!important;font-size:12px!important;font-weight:950!important;letter-spacing:.04em!important;}
.expl-text{color:#eef6ff!important;font-size:15px!important;line-height:1.72!important;}
.nav{background:rgba(2,6,23,.94)!important;border-top:1px solid rgba(148,163,184,.22)!important;box-shadow:0 -14px 34px rgba(0,0,0,.36)!important;}
.nav-btn{color:var(--zu-muted)!important;font-size:12px!important;}.nav-btn.active{color:#fff!important;}

/* ONBOARDING/SPLASH: niente overlay che sembra rotto. */
#onboarding{background:radial-gradient(circle at 20% 8%,rgba(34,211,238,.18),transparent 34%),radial-gradient(circle at 80% 12%,rgba(124,58,237,.30),transparent 36%),linear-gradient(160deg,#050816,#111827 52%,#1e1b4b)!important;color:var(--zu-text)!important;}
#onboarding p{color:var(--zu-muted)!important;font-size:15px!important;line-height:1.45!important;}
#onboarding input{background:rgba(15,23,42,.74)!important;color:#fff!important;border:1.5px solid rgba(148,163,184,.34)!important;}
#onboarding button{font-size:14px!important;min-height:44px!important;}
#bg-canvas,#light-canvas,#splash-canvas{opacity:.08!important;pointer-events:none!important;}
.grain{display:none!important;pointer-events:none!important;}
#confetti-container{pointer-events:none!important;}

/* LANDING/SITO: contrasto forte e card leggibili */
header,header.scrolled{background:rgba(255,255,255,.94)!important;color:#0f172a!important;border-bottom:1px solid rgba(15,23,42,.08)!important;box-shadow:0 10px 30px rgba(15,23,42,.08)!important;}
.brand__name,.nav-links a.lnk{color:#111827!important;}.nav-cta{background:#0f172a!important;color:#fff!important;}
.hero,.showcase,.features,.levels,.final{color:#111827!important;}
.hero .sub,.head p,.trust,.eyebrow{color:#334155!important;}
.play{background:linear-gradient(180deg,#07111f,#0f172a)!important;color:#fff!important;border:1px solid rgba(148,163,184,.22)!important;}
.play *{color:inherit!important;}
.quizcard{background:linear-gradient(180deg,#ffffff,#f8fafc)!important;border:1px solid rgba(15,23,42,.12)!important;box-shadow:0 28px 80px rgba(2,6,23,.18)!important;color:#111827!important;}
.quizcard *{color:#111827!important;}
.ans{display:flex!important;gap:8px!important;align-items:flex-start!important;font-size:15px!important;background:#fff!important;border:1px solid #d8deeb!important;border-radius:14px!important;color:#111827!important;}
.ans .k{font-size:13px!important;color:#1e293b!important;background:#eef2ff!important;border-radius:9px!important;padding:2px 7px!important;}
.feedback{background:#eef2ff!important;border:1px solid #c7d2fe!important;color:#111827!important;}.feedback *{color:#111827!important;}
.phone__screen{background:radial-gradient(ellipse 95% 52% at 50% -6%,rgba(37,99,235,.42),transparent 60%),radial-gradient(ellipse 80% 46% at 102% 10%,rgba(124,58,237,.30),transparent 55%),#07111f!important;color:#fff!important;}
.phone__screen *{color:#fff!important;}
.m-cd{background:linear-gradient(135deg,rgba(37,99,235,.72),rgba(124,58,237,.64))!important;border:1px solid rgba(34,211,238,.34)!important;}
.m-cd-l,.m-cd-s{font-size:12px!important;color:#eaf2ff!important;font-weight:850!important;}.m-cd-n{font-size:32px!important;color:#fff!important;font-weight:950!important;}
.m-stat{background:rgba(15,23,42,.70)!important;border:1px solid rgba(226,232,240,.18)!important;}.m-stat-v{color:#fff!important;font-weight:950!important;}.m-stat-l{color:#dbeafe!important;font-size:12px!important;}
.m-mode-t{color:#fff!important;font-weight:850!important;}.m-mode-s{color:#dbeafe!important;font-size:12px!important;}
.tile,.rung,.stat,.count-card{background:#fff!important;color:#111827!important;border:1px solid #e2e8f0!important;box-shadow:0 16px 44px rgba(15,23,42,.10)!important;}
.tile p,.rung p,.stat p,.count-card p,.tile span,.rung span,.stat span,.count-card span{color:#475569!important;font-size:12px!important;line-height:1.35!important;}.tile h3,.rung h3,.stat h3,.count-card h3{color:#0f172a!important;}
#cd-d,#cd-h,#cd-m,#cd-s{color:#0f172a!important;font-weight:950!important;font-size:24px!important;}

@media(max-width:560px){body :is(p,span,a,button,label,input,textarea,small,li){font-size:max(12px,1em)!important}.app{padding-left:14px!important;padding-right:14px!important}.stat-label,.top-stat-label,.badge-name,.trophy-name{font-size:12px!important}.badge-icon,.trophy-icon,.mode-icon{min-width:32px!important;min-height:32px!important}.quizcard{border-radius:20px!important}.phone__screen{border-radius:26px!important}}

/* Final audit hardening: force readable text and non-blocking inactive effects. */
.app :is(p,span,a,button,label,input,textarea,small,li,div):not(.splash-title):not(.splash-sub){font-size:max(12px,1em)!important;line-height:1.38!important;color:#eef6ff!important;}
.app :is([style*="rgba(255,255,255,.3)"],[style*="rgba(255,255,255,.35)"],[style*="rgba(255,255,255,.4)"],[style*="rgba(255,255,255,.45)"],[style*="rgba(255,255,255,.5)"],[style*="rgba(255,255,255,.6)"]){color:#dbeafe!important;}
.trophy-emoji,.badge-icon,.mode-icon,.m-mode-i,.tile__icon,.qod-badge::first-letter{display:inline-grid!important;place-items:center!important;min-width:34px!important;min-height:34px!important;border-radius:13px!important;background:linear-gradient(135deg,rgba(37,99,235,.32),rgba(124,58,237,.34))!important;border:1px solid rgba(226,232,240,.22)!important;color:#fff!important;filter:none!important;opacity:1!important;}
.trophy-card.locked .trophy-emoji{opacity:.85!important;filter:none!important;background:linear-gradient(135deg,rgba(71,85,105,.72),rgba(30,41,59,.84))!important;}
.qod-text{color:#fff!important;font-size:15px!important;font-weight:850!important;text-shadow:0 1px 2px rgba(0,0,0,.45)!important;}
.qod-card *{color:#fff7cc!important;}
#onboarding{display:none!important;pointer-events:none!important;visibility:hidden!important;z-index:-1!important;}
#onboarding[style*="display: flex"],#onboarding.is-active{display:flex!important;pointer-events:auto!important;visibility:visible!important;z-index:9990!important;}
#splash.hide,#splash[aria-hidden="true"]{pointer-events:none!important;opacity:0!important;visibility:hidden!important;z-index:-1!important;}
#bg-canvas,#light-canvas,#splash-canvas,#confetti-container,.confetti-container{pointer-events:none!important;}

/* Landing-specific audit fixes for demo cards, phone mockup and countdown placeholders. */
.phone__screen :is(p,span,a,button,label,input,textarea,small,li,div){color:#f8fbff!important;text-shadow:none!important;}
.phone__screen :is(.m-sub,.m-cd-l,.m-cd-s,.m-stat-l,.m-mode-s){font-size:12px!important;color:#dbeafe!important;font-weight:850!important;}
.quizcard :is(p,span,a,button,label,input,textarea,small,li,div){color:#111827!important;}
.quizcard :is(.k,.pts){font-size:12px!important;color:#1e293b!important;}
.count-card :is(b,small,span,div){color:#0f172a!important;font-size:max(12px,1em)!important;}
.count-card small{font-size:12px!important;font-weight:800!important;}
.cdbox b{min-width:2ch;display:inline-block;color:#0f172a!important;}
.cdbox b:empty,.cdbox b:is(:only-child){color:#0f172a!important;}
:is(.m-sub,.rung__sub,footer .made){font-size:12px!important;color:#475569!important;}

/* Contrast fix 2: landing colors are explicit, not translucent white on light UI. */
body:not(.app){color:#0f172a!important;}
body:not(.app) :is(.hero,.play,.showcase,.features,.career){color:#0f172a!important;}
body:not(.app) :is(.hero .sub,.trust,.trust span,.head p,.quizcard__hint,.tile p,.rung__sub,.stat__l){color:#1e293b!important;-webkit-text-fill-color:#1e293b!important;font-weight:700!important;}
body:not(.app) .eyebrow{color:#5b21b6!important;-webkit-text-fill-color:#5b21b6!important;font-weight:900!important;}
body:not(.app) .pill{background:#ffffff!important;color:#1e293b!important;border-color:#cbd5e1!important;font-weight:850!important;}
body:not(.app) .btn-primary{color:#ffffff!important;-webkit-text-fill-color:#ffffff!important;}
body:not(.app) .btn-ghost{background:#ffffff!important;color:#0f172a!important;-webkit-text-fill-color:#0f172a!important;border:1.5px solid #94a3b8!important;box-shadow:0 10px 24px rgba(15,23,42,.10)!important;font-weight:900!important;}
body:not(.app) .btn-ghost:hover{background:#f8fafc!important;border-color:#7c3aed!important;}
body:not(.app) .play{background:#f1f5f9!important;color:#0f172a!important;}
body:not(.app) .quizcard{background:#ffffff!important;color:#0f172a!important;border-color:#cbd5e1!important;}
body:not(.app) .quizcard :is(p,span,div,button,h4){color:#0f172a!important;-webkit-text-fill-color:#0f172a!important;}
body:not(.app) .quizcard__tag{background:#ede9fe!important;color:#4c1d95!important;-webkit-text-fill-color:#4c1d95!important;font-weight:900!important;}
body:not(.app) .quizcard__timer b{color:#9a3412!important;-webkit-text-fill-color:#9a3412!important;}
body:not(.app) .ans{background:#ffffff!important;color:#0f172a!important;-webkit-text-fill-color:#0f172a!important;border-color:#cbd5e1!important;font-weight:750!important;}
body:not(.app) .ans .k{background:#e0e7ff!important;color:#1e293b!important;-webkit-text-fill-color:#1e293b!important;font-weight:950!important;}
body:not(.app) .ans.correct{background:#dcfce7!important;border-color:#15803d!important;}
body:not(.app) .ans.correct .k{background:#15803d!important;color:#ffffff!important;-webkit-text-fill-color:#ffffff!important;}
body:not(.app) .ans.wrong{background:#fee2e2!important;border-color:#b91c1c!important;}
body:not(.app) .ans.wrong .k{background:#b91c1c!important;color:#ffffff!important;-webkit-text-fill-color:#ffffff!important;}
body:not(.app) .feedback{background:#eef2ff!important;color:#0f172a!important;border-color:#c7d2fe!important;}
body:not(.app) .feedback :is(h4,p,span){color:#0f172a!important;-webkit-text-fill-color:#0f172a!important;}
body:not(.app) .phone__screen{background:radial-gradient(ellipse 95% 52% at 50% -6%,rgba(37,99,235,.42),transparent 60%),radial-gradient(ellipse 80% 46% at 102% 10%,rgba(124,58,237,.30),transparent 55%),#07111f!important;color:#ffffff!important;}
body:not(.app) .phone__screen :is(p,span,div,small){color:#ffffff!important;-webkit-text-fill-color:#ffffff!important;}
body:not(.app) .phone__screen :is(.m-sub,.m-cd-l,.m-cd-s,.m-stat-l,.m-mode-s){color:#f8fafc!important;-webkit-text-fill-color:#f8fafc!important;font-weight:900!important;}
body:not(.app) :is(.tile,.rung,.stat){background:#ffffff!important;color:#0f172a!important;border-color:#cbd5e1!important;}
body:not(.app) :is(.tile,.rung,.stat) :is(h3,div,b){color:#0f172a!important;-webkit-text-fill-color:#0f172a!important;}
body:not(.app) .tile p,body:not(.app) .rung__sub,body:not(.app) .miniscore small{color:#334155!important;-webkit-text-fill-color:#334155!important;font-weight:800!important;}
body:not(.app) .final__card{background:radial-gradient(120% 140% at 0% 0%,#2a1758,#1a1340 45%,#0f172a)!important;color:#ffffff!important;}
body:not(.app) .final__card :is(h2,p,span,small,div){color:#ffffff!important;-webkit-text-fill-color:#ffffff!important;}
body:not(.app) .final__card .grad,body:not(.app) .final__card .cdbox b{background:none!important;color:#ffffff!important;-webkit-text-fill-color:#ffffff!important;}
body:not(.app) .cdbox{background:#1e293b!important;border-color:#64748b!important;color:#ffffff!important;}
body:not(.app) .cdbox small{color:#f8fafc!important;-webkit-text-fill-color:#f8fafc!important;font-size:12px!important;font-weight:950!important;}
body:not(.app) footer{background:#0f172a!important;color:#ffffff!important;border-top-color:#334155!important;}
body:not(.app) footer :is(b,i,p,span,div){color:#ffffff!important;-webkit-text-fill-color:#ffffff!important;opacity:1!important;}
body:not(.app) .final__card .btn-primary{background:#ffffff!important;color:#0f172a!important;-webkit-text-fill-color:#0f172a!important;border:2px solid #ffffff!important;}
body:not(.app) .final__card .btn-primary .sheen{-webkit-text-fill-color:transparent!important;}
