:root{--bg: #f1f4f9;--surface: #ffffff;--surface-2: #f6f8fc;--sunken: #e6ebf3;--line: #dbe2ec;--line-2: #c4cedb;--fg: #131a26;--fg-2: #46526a;--fg-3: #69768b;--accent: #2563eb;--on-accent: #ffffff;--good: #1c8754;--warn: #a5680b;--bad: #bf392e;--info: #2e63c6;--hard: #c2610f;--accent-soft: color-mix(in srgb, var(--accent) 13%, transparent);--shadow-1: 0 1px 2px rgb(19 26 38 / .06);--shadow-2: 0 2px 6px rgb(19 26 38 / .06), 0 16px 40px rgb(19 26 38 / .1);--b0: var(--sunken);--b1: #e9a39b;--b2: #eec27f;--b3: #bfd6fb;--b4: #6fa0f3;--b5: #2563eb;--r: 14px;--pad: 20px;--f-display: "Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;--f-body: "Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--f-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--tabbar-h: 64px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0d1117;--surface: #141a23;--surface-2: #19212c;--sunken: #222b37;--line: #232d3a;--line-2: #33404f;--fg: #e6ebf2;--fg-2: #a4afbf;--fg-3: #7f8a9b;--accent: #60a5fa;--on-accent: #06101f;--good: #4bc489;--warn: #e3aa4e;--bad: #f27468;--info: #7ba7f3;--hard: #f0954b;--shadow-1: 0 1px 2px rgb(0 0 0 / .35);--shadow-2: 0 2px 6px rgb(0 0 0 / .3), 0 16px 40px rgb(0 0 0 / .4);--b1: #9c4a42;--b2: #a07a3a;--b3: #2f4a78;--b4: #3b82f6;--b5: #60a5fa;color-scheme:dark}}:root[data-theme=dark]{--bg: #0d1117;--surface: #141a23;--surface-2: #19212c;--sunken: #222b37;--line: #232d3a;--line-2: #33404f;--fg: #e6ebf2;--fg-2: #a4afbf;--fg-3: #7f8a9b;--accent: #60a5fa;--on-accent: #06101f;--good: #4bc489;--warn: #e3aa4e;--bad: #f27468;--info: #7ba7f3;--hard: #f0954b;--shadow-1: 0 1px 2px rgb(0 0 0 / .35);--shadow-2: 0 2px 6px rgb(0 0 0 / .3), 0 16px 40px rgb(0 0 0 / .4);--b1: #9c4a42;--b2: #a07a3a;--b3: #2f4a78;--b4: #3b82f6;--b5: #60a5fa;color-scheme:dark}*{box-sizing:border-box}html{font-size:15px;-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--f-body);line-height:1.5;min-height:100vh;-webkit-tap-highlight-color:transparent}@property --tint{syntax: "<color>"; inherits: true; initial-value: transparent;}:root{transition:--tint .6s ease}#constellation{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,color-mix(in srgb,var(--tint) 20%,transparent),transparent 60vh)}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{font-family:var(--f-display);margin:0;line-height:1.15;letter-spacing:-.012em;font-weight:650;text-wrap:balance}p{margin:0}code{font-family:var(--f-mono);font-size:.9em}.ic{flex:none;display:block}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.muted{color:var(--fg-3)}.muted-2{color:var(--fg-2)}.small{font-size:.86rem}.strong{font-weight:700}.mono{font-family:var(--f-mono)}.num{font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}.center{text-align:center;justify-content:center}.pad{padding:12px}.clamp1,.clamp2{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.clamp1{-webkit-line-clamp:1}.clamp2{-webkit-line-clamp:2}.eyebrow{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--fg-3);font-weight:700}.row{display:flex;gap:8px;align-items:center}.row>input{flex:1;min-width:0}.row-wrap{display:flex;flex-wrap:wrap;gap:10px;align-items:center}kbd{font-family:var(--f-mono);font-size:.7rem;padding:1px 6px;border-radius:5px;border:1px solid currentColor;opacity:.55;font-weight:400}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 14px;border-radius:10px;border:1px solid var(--line-2);background:var(--surface);color:var(--fg);font-weight:700;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,transform .1s}.btn:hover{background:var(--surface-2);border-color:var(--fg-3)}.btn:active{transform:translateY(1px)}.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:color-mix(in srgb,var(--accent) 88%,var(--fg));border-color:transparent}.btn-ghost{border-color:transparent;background:transparent}.btn-ghost:hover{background:var(--surface-2);border-color:transparent}.btn-danger{background:var(--bad);border-color:var(--bad);color:#fff}.btn-danger:hover{background:color-mix(in srgb,var(--bad) 86%,#000);border-color:transparent}.btn-sm{padding:6px 10px;font-size:.87rem;border-radius:8px}.btn-lg{padding:12px 18px;font-size:1.05rem;border-radius:12px}.icon-btn{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;border:0;background:transparent;color:var(--fg-2);cursor:pointer;flex:none}.icon-btn:hover{background:var(--surface-2);color:var(--fg)}.link{border:0;background:none;color:var(--accent);font-weight:700;cursor:pointer;padding:4px}.form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.field>span{font-weight:700;font-size:.9rem;color:var(--fg-2)}input:not([type=checkbox]):not([type=range]),select{width:100%;padding:11px 12px;border-radius:10px;border:1px solid var(--line-2);background:var(--surface);font-size:16px;min-width:0}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:transparent}.dw-field{display:flex;align-items:center;gap:10px;width:100%;height:46px;padding:0 14px;border-radius:10px;border:1px solid var(--line-2);background:var(--surface);color:var(--fg-3);font-size:16px;text-align:left;cursor:pointer}.dw-field:hover{background:var(--surface-2)}.dw-field:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.dw-field-v{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg);font-weight:700}.dw-field-v:first-letter{text-transform:uppercase}.dw-field-v.dw-empty{color:var(--fg-3);font-weight:500}.dw-field-edit{flex:none;font-size:.8rem;font-weight:700;color:var(--accent)}.dw-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:210;display:flex;align-items:flex-end;background:#00000080;animation:inFade .18s ease-out both}.dw-sheet{width:100%;background:var(--surface);border-top:1px solid var(--line);border-radius:24px 24px 0 0;padding:10px 16px max(24px,env(safe-area-inset-bottom));box-shadow:var(--shadow-2);animation:dwUp .26s cubic-bezier(.22,1,.36,1) both}@keyframes dwUp{0%{transform:translateY(40px);opacity:0}}@media(min-width:1024px){.dw-bg{align-items:center;justify-content:center;padding:16px}.dw-sheet{max-width:400px;padding:18px;border:1px solid var(--line);border-radius:20px}.dw-grip{display:none!important}}.dw-grip{display:block;width:40px;height:5px;margin:0 auto 14px;border-radius:99px;background:var(--line-2)}.dw-title{margin:0;font-size:.82rem;font-weight:700;color:var(--fg-3)}.dw-long{margin:2px 0 0;font-family:var(--f-display);font-size:1.32rem;font-weight:700;color:var(--fg)}.dw-long:first-letter{text-transform:uppercase}.dw-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.dw-chip{height:32px;padding:0 12px;border-radius:99px;border:1px solid var(--line-2);background:none;color:var(--fg);font-size:.78rem;font-weight:700;cursor:pointer}.dw-chip:hover{background:var(--surface-2)}.dw-chip.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.dw-wheels{position:relative;display:flex;gap:6px;height:200px;margin-top:14px}.dw-band{position:absolute;left:0;right:0;top:80px;height:40px;border-radius:12px;background:var(--accent-soft)}.dw-wheel{position:relative;min-width:0}.dw-day{flex:.8}.dw-month{flex:1.6}.dw-year{flex:1}.dw-scroll{height:200px;padding-right:22px;overflow-y:auto;scroll-snap-type:y mandatory;-webkit-user-select:none;user-select:none;scrollbar-width:none;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 30%,#000 70%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 30%,#000 70%,transparent)}.dw-scroll::-webkit-scrollbar{display:none}@media(pointer:fine){.dw-scroll{cursor:grab}}.dw-opt{display:flex;align-items:center;justify-content:center;width:100%;height:40px;border:0;background:none;scroll-snap-align:center;font-size:17px;font-weight:500;color:var(--fg-3);cursor:inherit;transition:color .15s}.dw-opt.on{color:var(--accent);font-weight:800}.dw-opt:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.dw-steps{position:absolute;top:80px;right:2px;height:40px;display:flex;flex-direction:column;justify-content:center}.dw-steps button{width:22px;height:18px;display:grid;place-items:center;border:0;border-radius:6px;background:none;color:var(--fg-2);cursor:pointer}.dw-steps button:hover:not(:disabled){background:var(--sunken);color:var(--fg)}.dw-steps button:disabled{opacity:.3;cursor:default}.dw-warn{margin:10px 0 0;font-size:.85rem;font-weight:700;color:var(--bad)}.dw-actions{display:flex;gap:8px;margin-top:16px}.dw-actions .btn{flex:1;height:48px;border-radius:99px;justify-content:center}input[type=range]{flex:1;accent-color:var(--accent)}.check{display:flex;gap:10px;align-items:center;cursor:pointer}.check input{width:20px;height:20px;accent-color:var(--accent)}.form-err{color:var(--bad);font-weight:700}.form-info{color:var(--good);font-weight:700}.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;border-radius:12px;background:var(--sunken)}.seg button{border:0;background:transparent;padding:9px 10px;border-radius:9px;font-weight:700;color:var(--fg-2);cursor:pointer}.seg button.on{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-1)}.splash{min-height:100vh;display:grid;place-items:center}.auth{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px 16px}.auth-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-2);padding:clamp(22px,5vw,34px);display:flex;flex-direction:column;gap:20px}.plans{display:grid;grid-template-columns:1fr 1fr;gap:10px}.plans[data-n="1"]{grid-template-columns:1fr}.btn.plan{flex-direction:column;height:auto;padding:14px 10px;gap:2px}.btn.plan small{white-space:normal;text-align:center}.btn.plan b{font-size:1.35rem}.plan-consent{display:flex;gap:8px;align-items:flex-start;color:var(--fg-2);margin-bottom:10px}.plan-consent input{margin-top:2px;accent-color:var(--accent)}.auth-card.paywall{text-align:center}.auth-card.paywall .auth-brand{flex-direction:column;gap:10px}.auth-card.paywall .plan-consent{justify-content:center;align-items:center}.auth-card.paywall .plan-consent input{margin-top:0}.paywall-back{align-self:center}.auth-brand{display:flex;gap:14px;align-items:center}.auth-brand h1{font-size:1.7rem;font-weight:750}.auth-title{font-size:1.2rem}.auth-foot{text-align:center}.app{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;height:100dvh;display:flex;flex-direction:column;gap:22px;padding:18px 12px 16px;border-right:1px solid var(--line);background:var(--surface)}.brand{display:flex;align-items:center;gap:10px;padding:2px 8px;border:0;background:none;cursor:pointer;text-align:left}.logo{display:block;flex:none;object-fit:contain}.brand b{font-family:var(--f-display);font-size:1.2rem;display:block;line-height:1;font-weight:750;letter-spacing:-.02em}.brand-year{display:block;margin-top:3px;font-size:.72rem;font-weight:650;color:var(--fg-3);letter-spacing:.04em}.nav{display:flex;flex-direction:column;gap:2px}.nav-item{--c: var(--accent);position:relative;display:flex;align-items:center;gap:11px;padding:10px;border-radius:10px;border:0;background:none;cursor:pointer;color:var(--fg-2);font-weight:700;text-align:left;width:100%;transition:color .2s}.nav-item:hover{background:linear-gradient(90deg,color-mix(in srgb,var(--c) 13%,transparent),color-mix(in srgb,var(--c) 2%,transparent));color:var(--fg)}.nav-item.on{background:linear-gradient(90deg,color-mix(in srgb,var(--c) 24%,transparent),color-mix(in srgb,var(--c) 5%,transparent));color:color-mix(in srgb,var(--c) 70%,var(--fg))}.nav-item:before{content:"";position:absolute;left:0;top:50%;width:3px;height:0;border-radius:0 3px 3px 0;background:var(--c);transform:translateY(-50%);transition:height .2s}.nav-item.on:before{height:20px}.nav-item .count{margin-left:auto;font-family:var(--f-mono);font-size:.72rem;padding:1px 7px;border-radius:99px;background:var(--accent);color:var(--on-accent)}.side-foot{margin-top:auto}.main{min-width:0}.app.focus{grid-template-columns:minmax(0,1fr)}.app.focus .sidebar{display:none}.page{max-width:1080px;margin:0 auto;padding:28px clamp(16px,3vw,36px) 48px;display:flex;flex-direction:column;gap:22px}.page.narrow{max-width:720px}.page-title{font-size:clamp(1.6rem,3vw,2.1rem);font-weight:750}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--pad);box-shadow:var(--shadow-1);min-width:0;display:flex;flex-direction:column;gap:14px}.panel-h{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.panel-h h2,.h2{font-size:1.12rem}.panel-h p{color:var(--fg-3);font-size:.88rem}.back{align-self:flex-start;margin:-8px 0 -10px -6px}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap}.hero h1{font-size:clamp(1.8rem,4vw,2.5rem);font-weight:750;margin:4px 0 6px}.hero .eyebrow:first-letter{text-transform:uppercase}.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--shadow-1)}.tile b{font-family:var(--f-display);font-size:1.6rem;font-weight:750;display:flex;align-items:center;gap:6px}.tile b small{font-size:.9rem;color:var(--fg-3);font-weight:500}.tile .ic{color:var(--hard)}.subject{display:flex;flex-direction:column;gap:12px}.subject-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}.subject-h h2{font-size:1.3rem;display:flex;align-items:center;gap:10px}.dot{width:12px;height:12px;border-radius:4px;display:inline-block}.deck-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.deck-card{text-align:left;display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:var(--r);border:1px solid var(--line);border-top:4px solid var(--deck, var(--accent));background:var(--surface);box-shadow:var(--shadow-1);cursor:pointer;transition:transform .15s,box-shadow .15s}.deck-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}.deck-title{font-family:var(--f-display);font-size:1.15rem;font-weight:650;line-height:1.2}.deck-counts{display:flex;gap:6px;flex-wrap:wrap}.deck-foot{display:flex;justify-content:space-between}.pill{font-size:.78rem;font-weight:700;padding:2px 9px;border-radius:99px}.pill.weak{background:color-mix(in srgb,var(--bad) 13%,transparent);color:var(--bad)}.pill.new{background:color-mix(in srgb,var(--info) 13%,transparent);color:var(--info)}.bar{height:8px;border-radius:99px;background:var(--sunken);overflow:hidden;min-width:40px}.bar i{display:block;height:100%;border-radius:99px;background:var(--accent);transition:width .3s}.boxes{display:flex;height:8px;border-radius:99px;overflow:hidden;background:var(--b0)}.boxes i{display:block;height:100%}.b0{background:var(--b0)}.b1{background:var(--b1)}.b2{background:var(--b2)}.b3{background:var(--b3)}.b4{background:var(--b5)}.legend{display:flex;flex-wrap:wrap;gap:6px 14px}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.lg-ok{background:var(--accent)}.lg-ko{background:color-mix(in srgb,var(--accent) 30%,var(--sunken))}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:40px 20px;border:1.5px dashed var(--line-2);border-radius:var(--r)}.empty-ic{width:54px;height:54px;border-radius:16px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center}.gear-btn{transition:background .2s,color .2s,transform .2s}.gear-btn .ic{transition:transform .6s cubic-bezier(.34,1.56,.64,1)}.gear-btn:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.gear-btn:hover .ic{transform:rotate(120deg)}.gear-btn:active{transform:scale(.9)}.add-btn{position:relative;overflow:hidden;transition:background .2s,transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s}.add-btn .ic{transition:transform .45s cubic-bezier(.34,1.56,.64,1)}.add-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(110deg,transparent 30%,rgb(255 255 255 / .35) 50%,transparent 70%);transform:translate(-120%);pointer-events:none}.add-btn:not([disabled]):hover{transform:translateY(-2px);box-shadow:0 8px 20px color-mix(in srgb,var(--accent) 35%,transparent)}.add-btn:not([disabled]):hover .ic{transform:rotate(90deg) scale(1.15)}.add-btn:not([disabled]):hover:after{transform:translate(120%);transition:transform .6s ease}.add-btn:not([disabled]):active{transform:translateY(0) scale(.97);box-shadow:none}.deck-head{display:flex;flex-direction:column;gap:6px;padding-left:14px;border-left:4px solid var(--deck, var(--accent))}.deck-head h1{font-size:clamp(1.6rem,3.6vw,2.3rem);font-weight:750}.deck-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.stat-row div{display:flex;flex-direction:column}.stat-row b{font-family:var(--f-display);font-size:1.6rem;font-weight:750;line-height:1.1}.stat-row span{color:var(--fg-3);font-size:.86rem}.mastery{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}.search{display:flex;align-items:center;gap:6px;padding:0 10px;border:1px solid var(--line-2);border-radius:10px;color:var(--fg-3);min-width:0;flex:0 1 260px}.search input{border:0!important;padding:8px 0!important;outline:0!important;background:transparent!important}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip-btn{border:1px solid var(--line-2);background:var(--surface);border-radius:99px;padding:5px 12px;font-weight:700;font-size:.86rem;cursor:pointer;color:var(--fg-2)}.chip-btn.on{background:var(--fg);color:var(--bg);border-color:var(--fg)}.card-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.card-list>li{border-bottom:1px solid var(--line)}.card-row{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px 4px;border:0;background:none;text-align:left;cursor:pointer}.card-row:hover{background:var(--surface-2)}.card-row-q{min-width:0}.card-row-a{padding:0 4px 14px 26px;display:flex;flex-direction:column;gap:6px}.mini-opts{margin:0;padding-left:18px;color:var(--fg-2)}.mini-opts .ok{color:var(--good);font-weight:700}.st{width:10px;height:10px;border-radius:50%}.st-new{background:var(--line-2)}.st-learning{background:var(--b2)}.st-weak{background:var(--bad)}.st-mastered{background:var(--b5)}.danger-zone{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}.danger-zone h3{font-size:1rem}.study{max-width:760px;width:100%;margin:0 auto;padding:16px clamp(16px,3vw,32px) 32px;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;gap:18px}.study-top{display:flex;align-items:center;gap:10px;padding-top:env(safe-area-inset-top,0px)}.study-progress{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.study-label{display:flex;justify-content:space-between;gap:10px}.chip{font-size:.74rem;font-weight:700;padding:3px 9px;border-radius:99px;background:var(--accent-soft);color:var(--accent);letter-spacing:.02em}.chip-soft{background:var(--sunken);color:var(--fg-2)}.chip-new{background:color-mix(in srgb,var(--info) 14%,transparent);color:var(--info)}.flash{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-2);padding:clamp(20px,4vw,38px);display:flex;flex-direction:column;gap:18px;animation:cardIn .3s cubic-bezier(.2,.7,.2,1) both}@keyframes cardIn{0%{opacity:0;transform:translateY(10px) scale(.99)}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}.flash-meta{display:flex;flex-wrap:wrap;gap:6px}.flash-front{display:flex;flex-direction:column;gap:10px}.flash .term{font-family:var(--f-display);font-size:clamp(1.6rem,5vw,2.3rem);font-weight:750;letter-spacing:-.02em;line-height:1.1;overflow-wrap:anywhere}.flash .q{font-size:clamp(1.12rem,3.2vw,1.4rem);line-height:1.45;font-weight:700;white-space:pre-line}.flash .term+.q,.flash .q.sub{font-size:1.02rem;font-weight:400;color:var(--fg-2)}.cloze-gap{display:inline-block;border-bottom:2.5px solid var(--accent);margin:0 2px;white-space:pre}.cloze-fill{background:var(--accent-soft);color:var(--accent);padding:0 4px;border-radius:5px}.hint p{display:flex;gap:8px;align-items:flex-start;color:var(--warn);font-weight:700}.hint .btn{margin-left:-10px}.flash-back{border-top:1.5px dashed var(--line-2);padding-top:18px;display:flex;flex-direction:column;gap:14px;animation:rise .25s both}.flash-back .ans{font-size:clamp(1.1rem,3vw,1.35rem);font-weight:700;line-height:1.4;white-space:pre-line}.ans-sub{font-weight:400;color:var(--fg-2)}.extra{background:var(--surface-2);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:4px;white-space:pre-line}.opts{display:flex;flex-direction:column;gap:8px}.opt{display:flex;gap:12px;align-items:center;text-align:left;padding:12px 14px;border-radius:12px;border:1.5px solid var(--line-2);background:var(--surface);cursor:pointer;font-weight:700}.opt:not([disabled]):hover{border-color:var(--accent);background:var(--accent-soft)}.opt[disabled]{cursor:default}.opt>span:nth-child(2){flex:1}.opt-l{width:28px;height:28px;border-radius:8px;background:var(--sunken);display:grid;place-items:center;font-family:var(--f-mono);font-size:.85rem;flex:none}.opt.ok,.tf.ok{border-color:var(--good);background:color-mix(in srgb,var(--good) 12%,transparent);color:var(--good);opacity:1}.opt.ko,.tf.ko{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 10%,transparent);color:var(--bad);opacity:1}.opt.dim,.tf.dim{opacity:.5}.tf-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.study-actions{display:flex;flex-direction:column;gap:10px;align-items:stretch;position:sticky;bottom:0;padding:10px 0 calc(10px + env(safe-area-inset-bottom,0px));background:linear-gradient(transparent,var(--bg) 30%);margin-top:auto}.reveal{width:100%}.grade-q{font-weight:700;color:var(--fg-2);text-align:center}.grades{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.grade{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 4px;border-radius:12px;border:1.5px solid var(--line-2);background:var(--surface);cursor:pointer;font-weight:700;transition:transform .12s,border-color .15s,background .15s}.grade:hover{transform:translateY(-2px)}.grade small{font-family:var(--f-mono);font-size:.74rem;color:var(--fg-3);font-weight:400}.grade.g0{color:var(--bad)}.grade.g1{color:var(--hard)}.grade.g2{color:var(--good)}.grade.g3{color:var(--info)}.grade.g0:hover,.grade.g0.sugg{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 8%,transparent)}.grade.g1:hover{border-color:var(--hard);background:color-mix(in srgb,var(--hard) 8%,transparent)}.grade.g2:hover,.grade.g2.sugg{border-color:var(--good);background:color-mix(in srgb,var(--good) 8%,transparent)}.grade.g3:hover{border-color:var(--info);background:color-mix(in srgb,var(--info) 8%,transparent)}.grade.sugg{box-shadow:0 0 0 3px var(--accent-soft)}.done{align-items:center;text-align:center;padding:36px 20px;margin-top:8vh}.done h1{font-size:1.9rem}.done-ic{width:64px;height:64px;border-radius:20px;background:var(--accent);color:var(--on-accent);display:grid;place-items:center}.dist{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:100%;max-width:460px}.dist-i{display:flex;flex-direction:column;padding:10px 4px;border-radius:12px;background:var(--surface-2);font-size:.82rem;font-weight:700}.dist-i b{font-family:var(--f-display);font-size:1.5rem}.dist-i.g0{color:var(--bad)}.dist-i.g1{color:var(--hard)}.dist-i.g2{color:var(--good)}.dist-i.g3{color:var(--info)}.study .empty{margin-top:10vh}.bars{display:grid;grid-template-columns:repeat(30,minmax(0,1fr));gap:3px;height:150px;align-items:end}.bar-col{height:100%;display:flex;align-items:flex-end}.bar-col i{display:flex;flex-direction:column-reverse;width:100%;min-height:2px;border-radius:4px 4px 0 0;background:color-mix(in srgb,var(--accent) 30%,var(--sunken));overflow:hidden}.bar-col em{display:block;width:100%;background:var(--accent)}.bars-axis{display:flex;justify-content:space-between}.mastery-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.mastery-row{width:100%;display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,2fr) minmax(120px,1.2fr);gap:12px;align-items:center;padding:12px 4px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;cursor:pointer}.mastery-pct{display:flex;gap:8px;align-items:center}.mastery-pct .bar{flex:1}.captcha{min-height:65px}.mfa-steps{display:grid;gap:12px;margin:0 0 14px;padding-left:20px}.mfa-steps li>span{display:block}.mfa-qr{display:block;margin:10px 0 6px;background:#fff;border-radius:10px;padding:8px;border:1px solid var(--line)}.mfa input{max-width:160px;letter-spacing:.2em}.admin-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.admin-tabs button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--fg-2);border-radius:99px;padding:6px 14px;font-weight:700;cursor:pointer}.admin-tabs button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.admin-badge{background:var(--bad);color:#fff;border-radius:99px;font-size:.72rem;padding:0 6px;line-height:1.5}.admin-search{width:100%;margin-bottom:10px}.admin-reports,.admin-decks,.admin-subjects{list-style:none;margin:0;padding:0}.admin-reports li{display:grid;gap:8px;padding:12px 0;border-bottom:1px solid var(--line)}.report-msg{margin:0;padding:8px 12px;border-left:3px solid var(--warn);background:var(--surface-2);border-radius:6px}.report-card{display:grid;gap:4px}.admin-decks li{border-bottom:1px solid var(--line)}.admin-decks li.archived{opacity:.6}.admin-deck-h{display:flex;align-items:center;gap:10px;width:100%;padding:10px 2px;border:0;background:none;color:inherit;text-align:left;cursor:pointer}.admin-deck-h>span{flex:1;min-width:0}.admin-deck-cards{display:grid;gap:8px;padding:0 0 12px 22px}.admin-subjects li{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.admin-subjects li>span:nth-child(2){flex:1;min-width:0}.subject-thumb{width:64px;height:40px;border-radius:8px;overflow:hidden;flex:none}.subject-thumb img,.subject-preview img{width:100%;height:100%;object-fit:cover;display:block}.subject-preview{position:relative;display:block;height:120px;border-radius:14px;overflow:hidden}.subject-preview b{position:absolute;left:14px;top:10px;color:#fff;text-shadow:0 1px 8px rgb(0 0 0 / .5)}.color-choices{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.color-dot{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer}.color-dot.on{border-color:var(--fg);box-shadow:0 0 0 2px var(--surface) inset}.gauge{display:grid;gap:6px;margin-bottom:12px}.gauge-h{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.gauge-bar{height:10px;border-radius:99px;background:var(--sunken);overflow:hidden}.gauge-bar i{display:block;height:100%;background:var(--accent)}.gauge-bar.warn i{background:var(--warn)}.user-facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0 0 14px}.user-facts dt{color:var(--fg-3)}.user-facts dd{margin:0}.card-editor textarea{resize:vertical}.admin-log{list-style:none;margin:0;padding:0}.admin-log li{display:flex;gap:12px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--line)}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:grid;place-items:center;padding:16px;z-index:100;animation:rise .15s both}body.modal-open .dtop,body.modal-open .mtop{visibility:hidden}.modal{width:100%;max-width:440px;background:var(--surface);border-radius:18px;padding:20px;box-shadow:var(--shadow-2);display:flex;flex-direction:column;gap:14px}.modal-h{display:flex;justify-content:space-between;align-items:center;gap:10px}.modal-h h2{font-size:1.2rem}.modal-f{display:flex;justify-content:flex-end;gap:8px}.confirm-bg{background:#0a0e1680;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.modal.confirm{max-width:400px;align-items:center;text-align:center;gap:8px;padding:28px 24px 22px;border:1px solid var(--line);border-radius:22px;animation:confirmIn .22s cubic-bezier(.2,.8,.2,1) both}@keyframes confirmIn{0%{opacity:0;transform:translateY(12px) scale(.96)}}.confirm-ic{display:grid;place-items:center;width:60px;height:60px;margin-bottom:10px;border-radius:50%;color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 8px color-mix(in srgb,var(--accent) 6%,transparent)}.confirm.is-danger .confirm-ic{color:var(--bad);background:color-mix(in srgb,var(--bad) 13%,transparent);box-shadow:0 0 0 8px color-mix(in srgb,var(--bad) 6%,transparent)}.confirm h2{font-size:1.3rem;line-height:1.25}.confirm>p{margin:0;color:var(--fg-2);line-height:1.5;max-width:32ch}.confirm-detail{display:flex;align-items:center;gap:12px;width:100%;margin-top:8px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);font-family:var(--f-display);font-weight:700;text-align:left}.confirm-detail .dot{flex:none}.confirm-detail>span{min-width:0;overflow-wrap:anywhere}.confirm-f{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;margin-top:14px}.confirm-f .btn{padding:12px 14px;border-radius:12px;white-space:normal}@media(prefers-reduced-motion:reduce){.modal.confirm{animation:none}}.toasts{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:200;pointer-events:none;width:max-content;max-width:calc(100vw - 32px)}.toast{background:var(--fg);color:var(--bg);padding:10px 16px;border-radius:12px;font-weight:700;box-shadow:var(--shadow-2);animation:rise .2s both}.toast.err{background:var(--bad);color:#fff}@media(max-width:860px){.app{grid-template-columns:minmax(0,1fr)}.sidebar{display:none}.page{padding:18px 16px calc(var(--tabbar-h) + 28px + env(safe-area-inset-bottom,0px))}.toasts{bottom:calc(var(--tabbar-h) + 16px + env(safe-area-inset-bottom,0px))}.app.focus~.toasts{bottom:24px}.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.mastery-row{grid-template-columns:minmax(0,1fr) auto}.mastery-row .boxes,.mastery-row .mastery-pct{grid-column:1 / -1}}@media(max-width:560px){html{font-size:14.5px}.deck-actions .btn{flex:1 1 100%}.grades{gap:6px}.grade{padding:10px 2px;font-size:.92rem}.grade kbd,.reveal kbd{display:none}.stat-row b{font-size:1.3rem}.bars{gap:2px}.search{flex:1 1 100%}.danger-zone .btn{width:100%}}@media(hover:none){.deck-card:hover,.grade:hover{transform:none}}.nav>div{display:contents}.nav-label{margin:14px 10px 4px;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);font-weight:700}.nav-sep{height:1px;background:var(--line);margin:10px 8px}.nav-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-subj{display:inline-grid;place-items:center;border-radius:6px;color:#fff;font-family:var(--f-display);font-weight:750;font-size:.72rem;flex:none;line-height:1;background-image:linear-gradient(135deg,rgb(255 255 255 / .28),transparent 70%)}.link-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:var(--accent);font-weight:700;padding:2px 0;cursor:pointer}.page.wide{max-width:1240px}.subj-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.subj-title{display:flex;align-items:center;gap:14px;min-width:0}.subj-title h1{font-size:clamp(1.7rem,4vw,2.3rem);font-weight:750}.subj-badge{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;color:#fff;font-family:var(--f-display);font-weight:750;font-size:1.4rem;flex:none;box-shadow:var(--shadow-1)}.subj-page{--accent: var(--deck);--accent-soft: color-mix(in srgb, var(--deck) 13%, transparent)}.subj-hero{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;min-height:190px;padding:26px 28px;border-radius:calc(var(--r) + 6px);color:#fff;background:linear-gradient(135deg,var(--deck),color-mix(in srgb,var(--deck) 55%,#000));box-shadow:0 14px 36px color-mix(in srgb,var(--deck) 30%,transparent)}.subj-hero>img{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;width:100%;height:100%;object-fit:cover}.subj-hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(100deg,color-mix(in srgb,var(--deck) 88%,#000) 0%,color-mix(in srgb,var(--deck) 55%,transparent) 60%,transparent 100%)}.subj-hero h1{font-size:clamp(1.9rem,5vw,2.8rem);font-weight:800;line-height:1.1;text-shadow:0 2px 14px rgba(0,0,0,.25)}.subj-hero p{margin-top:6px;font-weight:600;opacity:.92}.subj-hero-ring{position:relative;flex:none;display:grid;place-items:center}.subj-hero-ring>span{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.subj-hero-ring b{font-size:1.3rem;font-weight:800}.subj-hero-ring small{margin-top:3px;font-size:.7rem;font-weight:650;opacity:.9}.ring circle{fill:none;stroke-width:8}.ring-bg{stroke:#ffffff47}.ring-fg{stroke:#fff;stroke-linecap:round;transition:stroke-dashoffset .8s cubic-bezier(.2,.8,.2,1)}.controle-cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.next-menu{position:absolute;top:8px;right:8px}.next-controle.menu-open{z-index:5}.next-controle{position:relative;display:flex;align-items:center;gap:20px;padding:18px 52px 18px 20px;border-radius:calc(var(--r) + 4px);border:1px solid color-mix(in srgb,var(--deck) 35%,transparent);background:linear-gradient(120deg,color-mix(in srgb,var(--deck) 14%,var(--surface)),var(--surface) 70%);box-shadow:var(--shadow-1)}.next-count{flex:none;min-width:88px;height:88px;padding:0 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-radius:20px;background:var(--deck);color:#fff;font-family:var(--f-display);box-shadow:0 8px 22px color-mix(in srgb,var(--deck) 40%,transparent)}.next-count b{font-size:2.2rem;font-weight:800;line-height:1}.next-count b.word{font-size:1.15rem}.next-count small{font-size:.68rem;font-weight:700;line-height:1;text-transform:uppercase;letter-spacing:.06em;opacity:.9}.next-controle.soon .next-count{animation:nextPulse 2s ease-in-out infinite}@keyframes nextPulse{50%{box-shadow:0 0 0 8px color-mix(in srgb,var(--deck) 18%,transparent)}}@media(prefers-reduced-motion:reduce){.next-controle.soon .next-count{animation:none}}.next-body{flex:1;min-width:0}.next-body h2{font-size:1.2rem;overflow-wrap:anywhere}.next-body .eyebrow{color:var(--deck)}.next-progress{display:flex;align-items:center;gap:10px;margin-top:10px;max-width:320px}.next-progress .bar{flex:1}.next-progress .bar i{background:var(--deck)}.next-actions{flex:none;display:flex;flex-direction:column;align-items:stretch;gap:4px}.next-tip{margin-top:8px;font-size:.92rem;font-weight:650;color:var(--fg-2)}.next-tip .link{color:var(--deck);font-weight:750}.continue-btn{display:flex;align-items:center;gap:14px;width:100%;padding:12px 16px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow-1);color:var(--fg);font:inherit;text-align:left;cursor:pointer;transition:transform .15s,box-shadow .15s}.continue-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}.continue-btn>svg{color:var(--deck)}.continue-ic{flex:none;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--deck);color:#fff}.continue-txt{flex:1;min-width:0;display:flex;flex-direction:column}.continue-txt small{color:var(--fg-2);font-size:.78rem;font-weight:650}.continue-txt b{font-family:var(--f-display);font-size:1.05rem;overflow-wrap:anywhere}.done-ring{position:relative;display:grid;place-items:center;margin:0 auto 4px}.done-ring>span{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.done-ring b{font-size:1.6rem;font-weight:800}.done-ring small{margin-top:4px;font-size:.75rem;font-weight:650;color:var(--fg-2)}.done-ring .ring-bg{stroke:var(--sunken)}.done-ring .ring-fg{stroke:var(--accent);animation-duration:1.4s;animation-delay:.25s}.done-gain{font-weight:650;color:var(--accent)}.ring-fg{animation:ringFill 1.1s cubic-bezier(.2,.8,.2,1) both}@keyframes ringFill{0%{stroke-dashoffset:var(--ring-from)}}.subj-page .bar i,.next-controle .bar i{transform-origin:left center;animation:barGrow .9s cubic-bezier(.2,.8,.2,1) both}.chapter-list li:nth-child(2) .bar i{animation-delay:.05s}.chapter-list li:nth-child(3) .bar i{animation-delay:.1s}.chapter-list li:nth-child(n+4) .bar i{animation-delay:.15s}@keyframes barGrow{0%{transform:scaleX(0)}}@media(prefers-reduced-motion:reduce){.ring-fg,.subj-page .bar i,.next-controle .bar i{animation:none}}.chapter-list li{border-left:4px solid var(--deck, var(--accent))}.ch-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:99px;font-size:.78rem;font-weight:700;white-space:nowrap}.ch-tag.weak{color:var(--warn);background:color-mix(in srgb,var(--warn) 14%,transparent)}.ch-tag.new{color:var(--deck);background:color-mix(in srgb,var(--deck) 12%,transparent)}.ch-tag.done{color:var(--good);background:color-mix(in srgb,var(--good) 13%,transparent)}.ch-nudge{font-size:.85rem;font-weight:650;color:var(--deck)}@media(max-width:860px){.subj-hero{min-height:150px;padding:20px}.subj-hero-ring .ring{width:72px;height:72px}.subj-hero-ring b{font-size:1.05rem}.next-controle{flex-wrap:wrap;align-items:flex-start;gap:10px 12px;padding:12px 40px 12px 12px}.next-menu{top:4px;right:4px}.next-count{min-width:54px;height:54px;padding:0 6px;border-radius:14px;box-shadow:none}.next-count b{font-size:1.35rem}.next-count b.word{font-size:.8rem}.next-count small{font-size:.55rem}.next-body .eyebrow{font-size:.68rem}.next-body h2{font-size:.98rem;line-height:1.25}.next-progress{margin-top:6px}.next-tip{margin-top:4px;font-size:.8rem}.next-actions{width:100%;flex-direction:row;align-items:center}.next-actions .btn-lg{flex:1;justify-content:center;padding:9px 12px;font-size:.95rem}}.page>.subject+.subject,.page>.next-controle+.subject{margin-top:28px}.chapter-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.chapter-list li{display:flex;align-items:center;gap:12px;padding:8px 8px 8px 6px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-1)}.chapter-list li.menu-open{position:relative;z-index:5}.chapter-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;padding:8px 10px;border:0;border-radius:10px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.chapter-main b{font-family:var(--f-display);font-weight:700;overflow-wrap:anywhere}.chapter-progress{display:flex;align-items:center;gap:10px}.chapter-progress .bar{flex:1;max-width:220px}.chapter-progress .bar i{background:var(--deck, var(--accent))}.chapter-actions{display:flex;align-items:center;gap:6px;flex:none}.hidden-courses{margin-top:28px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.hidden-toggle{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:0;border-radius:10px;background:none;color:var(--muted, inherit);font:inherit;font-weight:650;cursor:pointer}.hidden-toggle:hover{background:var(--surface-2);color:var(--fg)}.hidden-panel{align-self:stretch}.chapter-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.chapter-filter{flex:1;min-width:220px;max-width:460px}.chapter-filter input{flex:1;min-width:0}.chapter-hint{margin-top:-6px}.chapter-check{flex:none;align-self:stretch;display:grid;place-items:center;padding:0 4px 0 8px;border:0;border-radius:10px;background:none;cursor:pointer}.chapter-check:hover .chapter-box{border-color:var(--deck, var(--accent))}.chapter-check:disabled{opacity:.35;cursor:default}.pick-bar{gap:8px}.pick-bar .pick-clear{padding-inline:14px;background:var(--surface);box-shadow:var(--shadow-2)}.chapter-box{flex:none;width:24px;height:24px;display:grid;place-items:center;border:2px solid var(--line-strong, var(--line));border-radius:7px;color:#fff;transition:background .15s,border-color .15s}.chapter-list li.on{border-color:color-mix(in srgb,var(--deck, var(--accent)) 55%,transparent);background:color-mix(in srgb,var(--deck, var(--accent)) 7%,var(--surface))}.chapter-list li.on .chapter-box{background:var(--deck, var(--accent));border-color:var(--deck, var(--accent))}.read-bar{position:sticky;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);z-index:30;display:flex;justify-content:center;margin-top:24px;pointer-events:none}.read-bar .btn{pointer-events:auto;border-radius:999px;box-shadow:0 10px 28px color-mix(in srgb,var(--accent) 40%,transparent)}.course-link{display:flex;align-items:center;gap:10px;width:100%;padding:11px 14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);background:var(--accent-soft);color:var(--accent);font-weight:700;cursor:pointer;text-align:left;transition:background .15s,transform .1s}.course-link span{flex:1}.course-link:hover{background:color-mix(in srgb,var(--accent) 20%,transparent)}.course-link:active{transform:translateY(1px)}.drawer-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;background:#00000073;display:flex;justify-content:flex-end;animation:rise .15s both}.drawer{width:min(760px,100%);height:100%;background:var(--bg);display:flex;flex-direction:column;box-shadow:var(--shadow-2);animation:slideIn .25s cubic-bezier(.2,.7,.2,1) both}@keyframes slideIn{0%{transform:translate(40px);opacity:0}}.drawer-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(12px + env(safe-area-inset-top,0px)) 18px 12px;border-bottom:1px solid var(--line);background:var(--surface)}.drawer-h>div{min-width:0}.drawer-body{flex:1;overflow-y:auto;padding:18px clamp(14px,3vw,28px) 40px;overscroll-behavior:contain}.course{display:grid;grid-template-columns:250px minmax(0,1fr);gap:36px;align-items:start}.course.compact{display:block}.c-toc{position:sticky;top:20px;max-height:calc(100vh - 40px);overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:4px 4px 20px 0}.c-toc-list{display:flex;flex-direction:column;gap:1px}.c-toc-item{display:flex;gap:8px;align-items:baseline;text-align:left;border:0;background:none;padding:6px 10px;border-radius:8px;color:var(--fg-2);cursor:pointer;font-size:.88rem;line-height:1.35;border-left:2px solid transparent}.c-toc-title{flex:1;min-width:0}.c-toc-cards{flex:none;align-self:center;min-width:22px;padding:1px 7px;border-radius:99px;background:var(--accent-soft);color:var(--accent);font-size:.72rem;font-weight:750;text-align:center;font-variant-numeric:tabular-nums}.c-toc-item:hover{background:var(--surface-2);color:var(--fg)}.c-toc-item.on{color:var(--accent);background:var(--accent-soft);border-left-color:var(--accent);border-radius:0 8px 8px 0}.c-toc-item.l1,.course:has(.c-sec.l3) .c-toc-item.l2{font-weight:700;color:var(--fg);margin-top:8px}.c-toc-item.l3,.course:not(:has(.c-sec.l3)) .c-toc-item.l2{padding-left:18px}.c-toc-num{font-family:var(--f-mono);font-size:.75rem;color:var(--fg-3);flex:none}.c-toc-item.on .c-toc-num{color:var(--accent)}.c-toc-mobile{display:none}.c-article{min-width:0;max-width:780px;display:flex;flex-direction:column;gap:18px;font-size:1.04rem;line-height:1.7}.c-head{display:flex;flex-direction:column;gap:10px;padding:26px 28px;border-radius:20px;color:#fff;background:radial-gradient(120% 140% at 100% 0%,color-mix(in srgb,var(--deck, var(--accent)) 55%,#fff 0%) 0%,transparent 55%),linear-gradient(135deg,var(--deck, var(--accent)),color-mix(in srgb,var(--deck, var(--accent)) 70%,#000));box-shadow:var(--shadow-2)}.c-head h1{font-size:clamp(1.5rem,3.6vw,2.2rem);font-weight:750;line-height:1.15}.c-meta{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:.85rem;opacity:.9}.c-meta span{display:inline-flex;align-items:center;gap:6px}.c-lead{font-size:.98rem;line-height:1.6;opacity:.95;border-top:1px solid rgb(255 255 255 / .25);padding-top:12px}.c-lead strong{background:none;color:inherit}.c-sec{scroll-margin-top:84px}.c-sec.part{margin-top:18px;padding:4px 0 0}.c-sec.part>.c-h{font-size:clamp(1.35rem,3vw,1.75rem);font-weight:750;padding-bottom:12px;border-bottom:2px solid var(--line);margin-bottom:4px}.c-sec.part>.c-h .c-num{background:var(--fg);color:var(--bg);font-size:.78rem;padding:4px 10px;text-transform:uppercase;letter-spacing:.06em}.c-sec.part>.c-p{color:var(--fg-2);font-style:italic}.c-sec.leaf{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:22px clamp(18px,3vw,28px);box-shadow:var(--shadow-1)}.c-h{display:flex;align-items:center;gap:12px;margin:0 0 12px;font-size:1.22rem;font-weight:700;line-height:1.25}.c-h-t{min-width:0}.c-num{flex:none;display:inline-grid;place-items:center;min-width:38px;height:30px;padding:0 9px;border-radius:9px;background:var(--deck, var(--accent));color:#fff;font-family:var(--f-mono);font-size:.82rem;font-weight:500;letter-spacing:0}.c-sec.recap{background:color-mix(in srgb,var(--warn) 9%,var(--surface));border-color:color-mix(in srgb,var(--warn) 35%,var(--line))}.c-num.recap{background:var(--warn);min-width:30px}.c-p{margin:0 0 10px}.c-p:last-child{margin-bottom:0}.c-article strong{font-weight:700;color:var(--fg);background:linear-gradient(transparent 62%,color-mix(in srgb,var(--deck, var(--accent)) 22%,transparent) 62%);padding:0 1px}.c-article em{color:var(--fg-2)}.c-article code{font-family:var(--f-mono);font-size:.88em;background:var(--sunken);padding:1px 6px;border-radius:6px}.c-list{margin:0 0 12px;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.c-list:last-child{margin-bottom:0}.c-ul>li{position:relative;padding-left:22px}.c-ul>li:before{content:"";position:absolute;left:4px;top:.68em;width:7px;height:7px;border-radius:50%;background:var(--deck, var(--accent))}.c-list .c-list{margin:8px 0 2px;padding:10px 0 10px 14px;border-left:2px solid var(--line);gap:6px;font-size:.97rem}.c-list .c-ul>li:before{width:6px;height:6px;border-radius:2px;background:transparent;border:1.5px solid var(--deck, var(--accent))}.c-ol{counter-reset:c-ol}.c-ol>li{counter-increment:c-ol;position:relative;padding-left:38px;min-height:28px}.c-ol>li:before{content:counter(c-ol);position:absolute;left:0;top:.12em;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-family:var(--f-mono);font-size:.8rem;font-weight:500}.c-table-wrap{overflow-x:auto;margin:4px 0 12px;border:1px solid var(--line);border-radius:14px}.c-table{width:100%;border-collapse:collapse;font-size:.95rem;line-height:1.45}.c-table th,.c-table td{padding:11px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.c-table th{background:color-mix(in srgb,var(--deck, var(--accent)) 12%,var(--surface));font-family:var(--f-display);font-weight:700;white-space:nowrap}.c-table tr:last-child td{border-bottom:0}.c-table tbody tr:nth-child(2n) td{background:var(--surface-2)}.c-table td:first-child{font-weight:700}.c-table strong{background:none}.c-sec-f{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line-2);display:flex}.c-practice{display:inline-flex;align-items:center;gap:8px;border:0;background:none;color:var(--accent);font-weight:700;font-size:.9rem;cursor:pointer;padding:4px 0}.c-practice:hover{text-decoration:underline}.c-count{font-family:var(--f-mono);font-size:.74rem;font-weight:500;padding:1px 8px;border-radius:99px;background:var(--accent-soft)}.c-sec.c-target{animation:target 2.2s ease-out}@keyframes target{0%,35%{box-shadow:0 0 0 3px var(--accent),var(--shadow-2)}to{box-shadow:0 0 0 0 transparent,var(--shadow-1)}}.course.compact .c-head{padding:18px 20px}.course.compact .c-article{max-width:none}@media(max-width:1000px){.course{display:block}.c-toc{display:none}.c-toc-mobile{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.c-toc-mobile .c-toc-list{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:8px}}@media(max-width:860px){.c-sec{scroll-margin-top:70px}.read-bar{bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 12px)}.chapter-list li{flex-wrap:wrap}.chapter-actions{width:100%;padding:0 4px 4px}.chapter-actions .btn{flex:1;justify-content:center}}@media(max-width:560px){.c-article{font-size:1rem;line-height:1.65}.c-sec.leaf{padding:18px 16px;border-radius:16px}.c-head{padding:22px 18px;border-radius:18px}.c-h{font-size:1.1rem;align-items:flex-start}.drawer{width:100%}}.study-label>span:first-child{flex:1;min-width:0;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.study-label>span:last-child{flex:none;white-space:nowrap}.pill.a-ok{background:color-mix(in srgb,var(--good) 14%,transparent);color:var(--good)}.pill.a-warn{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}.pill.a-none{background:var(--sunken);color:var(--fg-3)}.a-docs{display:flex;flex-direction:column;gap:8px}.a-doc-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px}.a-doc{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:inherit;text-decoration:none;min-width:0;transition:border-color .15s,background .15s}.a-doc:hover{border-color:var(--deck, var(--accent));background:var(--surface-2)}.a-doc>svg{color:var(--fg-3);flex:none}.a-doc-ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none;color:var(--deck, var(--accent));background:color-mix(in srgb,var(--deck, var(--accent)) 13%,transparent)}.a-doc-t{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.a-doc-t b{font-weight:700;line-height:1.25}.a-head{display:flex;flex-direction:column;gap:10px}.a-parts{display:flex;flex-direction:column;gap:8px}.a-part{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);text-align:left;cursor:pointer}.a-part:hover{border-color:var(--deck, var(--accent))}.a-part>svg{color:var(--fg-3)}.a-part-t{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.rich{display:flex;flex-direction:column;gap:8px;line-height:1.55;min-width:0}.rich ul,.rich ol{padding-left:1.3em;display:flex;flex-direction:column;gap:4px}.rich-code{font-family:var(--f-mono);font-size:.84rem;line-height:1.5;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:12px 14px;overflow-x:auto;white-space:pre;margin:0}.rich.extra{white-space:normal}.a-read{display:flex;flex-direction:column;gap:22px}.a-read-part{display:flex;flex-direction:column;gap:14px}.a-read-part h3{font-size:1.05rem;padding-bottom:6px;border-bottom:1px solid var(--line)}.a-read-q{display:flex;flex-direction:column;gap:8px}.a-q-title{font-weight:700;line-height:1.4}h2.a-q-title{font-size:1.15rem}.a-q-n{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 6px;margin-right:8px;border-radius:8px;font-family:var(--f-mono);font-size:.8rem;background:var(--accent-soft);color:var(--accent);vertical-align:1px}.a-read-opts{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px}.a-read-opts li{display:flex;gap:10px;align-items:baseline}.a-read-opts .opt-l{width:24px;height:24px;font-size:.78rem}.a-read-ans summary,.a-intro summary{cursor:pointer;font-weight:700;color:var(--accent);font-size:.9rem;width:fit-content}.a-read-ans[open] summary,.a-intro[open] summary{margin-bottom:8px}.a-q{gap:16px}.a-intro{background:var(--surface-2);border-radius:12px;padding:10px 14px}.opt.on{border-color:var(--accent);background:var(--accent-soft)}.opt.on .opt-l{background:var(--accent);color:var(--on-accent)}.opt.unsure{border-style:dashed;opacity:.8}.a-q .opt>span:nth-child(2){font-weight:600}.a-unsure{font-size:.72rem;font-weight:700;color:var(--fg-3);white-space:nowrap}.a-sol-wrap{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:10px}.a-sol{display:flex;flex-direction:column;gap:8px}.a-sol-note{font-size:.86rem;color:var(--warn);background:color-mix(in srgb,var(--warn) 11%,transparent);border-radius:10px;padding:8px 12px}.a-verdict{font-weight:750;font-family:var(--f-display);font-size:1.05rem}.a-verdict.ok{color:var(--good)}.a-verdict.ko{color:var(--bad)}.a-again{border-color:color-mix(in srgb,var(--bad) 45%,var(--line-2));color:var(--bad)}.a-score{font-size:1.1rem}.a-score b{font-family:var(--f-display);font-size:2.2rem;font-weight:750}.a-misses{text-align:left;width:100%;display:flex;flex-direction:column;gap:6px}.a-misses ul{padding-left:1.2em;display:flex;flex-direction:column;gap:4px;font-size:.92rem}a.btn{text-decoration:none}@media(max-width:640px){.a-doc-list{grid-template-columns:1fr}.a-chips{flex-wrap:nowrap;overflow-x:auto;margin:0 calc(-1*clamp(16px,3vw,36px));padding:0 clamp(16px,3vw,36px) 4px;scrollbar-width:none}.a-chips>*{flex:none}}.chip-exam{background:color-mix(in srgb,var(--hard) 15%,transparent);color:var(--hard)}.card-row-q .chip-exam{font-size:.68rem;padding:1px 7px;margin-right:4px;vertical-align:1px}.flash-meta{align-items:center}.trash-btn{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:700;color:var(--fg-3);padding:4px 10px;border-radius:99px;border:1px solid var(--line);background:transparent;cursor:pointer}.trash-btn:hover{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,var(--line));background:color-mix(in srgb,var(--bad) 8%,transparent)}.card-code{display:block;font-family:var(--f-mono);font-size:.8rem;font-weight:500;line-height:1.5;text-align:left;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:10px 0;overflow-x:auto;white-space:pre}.card-txt{display:block;white-space:pre-line}.inline-code{font-family:var(--f-mono);font-size:.88em;font-weight:450;background:var(--code-bg);border:1px solid var(--line);border-radius:5px;padding:.05em .35em;white-space:pre-wrap;color:var(--fg)}.flash .ans .card-txt{white-space:pre-line}.card-row-code .card-txt{display:none}.card-row-ans .card-txt{display:inline}.trash-link{color:var(--fg-3)}.trash-link:hover{color:var(--bad)}.trash-row{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px solid var(--line)}.trash-row .card-row-q{flex:1;min-width:0}math{font-family:"Cambria Math","STIX Two Math","Latin Modern Math",math;font-size:1.08em}.math-display{display:block;margin:10px 0;overflow-x:auto;text-align:center}.math-display math{font-size:1.2em}.math-error{color:var(--bad)}.import-list{list-style:none;margin:0;padding:0}.import-list li{display:grid;gap:6px;padding:12px 0;border-bottom:1px solid var(--line)}.import-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.import-h b{overflow-wrap:anywhere}.import-status{font-weight:700;font-size:.92rem}.import-pret .import-status{color:var(--good)}.import-erreur .import-status,.import-refuse .import-status,.import-pas_un_cours .import-status{color:var(--bad)}.import-matiere_inconnue .import-status,.import-conteste .import-status{color:var(--warn)}.removed-list{list-style:none;margin:0;padding:0}.removed-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.panel-h h2 svg{vertical-align:-2px}.toast-act{pointer-events:auto;margin-left:12px;padding:2px 10px;border-radius:8px;border:1px solid currentColor;background:transparent;color:inherit;font-weight:750;cursor:pointer}.toast{pointer-events:auto}.hits{list-style:none;padding:0;display:flex;flex-direction:column;gap:10px}.hit{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;box-shadow:var(--shadow-1)}.hit-main{flex:1;min-width:0;text-align:left;display:flex;flex-direction:column;gap:4px;background:none;border:0;padding:0;cursor:pointer;color:inherit}.hit-main b{font-size:1.02rem}.hit-snip{color:var(--fg-2);font-size:.9rem;line-height:1.45}.hit mark,.hit-main mark,.chapter-main mark{background:color-mix(in srgb,var(--accent) 22%,transparent);color:inherit;border-radius:3px;padding:0 1px}@media(max-width:640px){.hit{flex-direction:column;align-items:stretch}}:root{--tk-kw: #008000;--tk-type: #b00040;--tk-cls: #0000ff;--tk-fn: #0000ff;--tk-call: #687822;--tk-str: #ba2121;--tk-num: #666666;--tk-com: #3d7b7b;--tk-op: #666666;--tk-ann: #aa22ff;--code-bg: #ffffff}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--tk-kw: #4ec98b;--tk-type: #ff6b9a;--tk-cls: #7cb2ff;--tk-fn: #7cb2ff;--tk-call: #c7d36f;--tk-str: #ff8a80;--tk-num: #a3adbb;--tk-com: #84b8b8;--tk-op: #a3adbb;--tk-ann: #c792ea;--code-bg: #0f141b}}:root[data-theme=dark]{--tk-kw: #4ec98b;--tk-type: #ff6b9a;--tk-cls: #7cb2ff;--tk-fn: #7cb2ff;--tk-call: #c7d36f;--tk-str: #ff8a80;--tk-num: #a3adbb;--tk-com: #84b8b8;--tk-op: #a3adbb;--tk-ann: #c792ea;--code-bg: #0f141b}pre.code{display:block;font-family:var(--f-mono);font-size:.82rem;font-weight:450;line-height:1.55;text-align:left;color:var(--fg);background:var(--code-bg);border:1px solid var(--line);border-radius:10px;padding:10px 14px 10px 6px;margin:0;overflow-x:auto;white-space:pre;-webkit-overflow-scrolling:touch}pre.code.plain{padding-left:14px}.flash pre.code{margin:10px 0}pre.code>code{display:block;background:none;border:0;padding:0;margin:0;border-radius:0;font:inherit;color:inherit}.code-line{display:inline}.code-n{display:inline-block;width:2.2em;padding-right:.9em;text-align:right;color:var(--fg-3);opacity:.7;font-size:.85em;-webkit-user-select:none;user-select:none}.code-n:before{content:attr(data-n)}.tk-kw{color:var(--tk-kw);font-weight:700}.tk-type{color:var(--tk-type);font-weight:700}.tk-cls{color:var(--tk-cls);font-weight:700}.tk-fn{color:var(--tk-fn)}.tk-call{color:var(--tk-call)}.tk-str{color:var(--tk-str)}.tk-num,.tk-op{color:var(--tk-num)}.tk-com{color:var(--tk-com);font-style:italic}.tk-ann{color:var(--tk-ann)}.c-fig{margin:4px 0 8px;display:flex;flex-direction:column;align-items:center;gap:6px}.c-fig img{max-width:100%;height:auto;mix-blend-mode:multiply}.c-fig figcaption{font-size:.85rem;color:var(--fg-3);text-align:center}.course pre.c-code{margin:4px 0 8px}html{scrollbar-gutter:stable}.page-anim{min-width:0}.page-anim.in-left{animation:inLeft .24s cubic-bezier(.2,.7,.2,1) both}.page-anim.in-right{animation:inRight .24s cubic-bezier(.2,.7,.2,1) both}.page-anim.in-fade{animation:inFade .18s ease-out both}.page-anim.in-quick{animation:inQuick .2s ease-out both}@keyframes inQuick{0%{opacity:0}}@keyframes inLeft{0%{transform:translate(36px);opacity:.35}}@keyframes inRight{0%{transform:translate(-36px);opacity:.35}}@keyframes inFade{0%{opacity:.4}}@media(prefers-reduced-motion:reduce){.page-anim{animation:none!important}}.main{position:relative;overflow-x:clip}.ptr{position:fixed;top:calc(env(safe-area-inset-top,0px) + 4px);left:50%;z-index:60;width:38px;height:38px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-2);display:grid;place-items:center;color:var(--accent);pointer-events:none}.ptr-ic{display:grid}.ptr-ic.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.grabber{display:none;width:40px;height:5px;border-radius:99px;background:var(--line-2);margin:0 auto 8px}@media(max-width:860px){.grabber{display:block}}.drawer,.modal,.study{transition:transform .18s ease-out}.study-top,.drawer-h{position:relative}.study-top>.grabber,.drawer-h>.grabber{position:absolute;top:-6px;left:50%;transform:translate(-50%);margin:0}.page.narrow{max-width:1080px}.page.narrow>*{width:100%;max-width:720px}.page.narrow>.back{width:auto}.trash-label-short{display:none}@media(max-width:440px){.trash-label{display:none}.trash-label-short{display:inline}}.panel-h h2{display:flex;align-items:center;gap:8px}.info-sec h2{display:flex;align-items:center;gap:10px;font-size:1.12rem}.info-sec h2 svg{color:var(--accent);flex:none}.info-sec ul{padding-left:1.2em;display:flex;flex-direction:column;gap:8px;line-height:1.55;color:var(--fg-2)}.info-sec b{color:var(--fg)}.side-foot{display:flex;flex-direction:column;gap:8px}.credit{font-size:.7rem;color:var(--fg-3);opacity:.8;line-height:1.3}.page-credit{text-align:center;font-size:.72rem;color:var(--fg-3);opacity:.8;padding:0 16px 28px}@media(min-width:861px){.page-credit{display:none}}@media(max-width:860px){.page-anim>.page{padding-bottom:16px}.page-credit{padding-bottom:calc(var(--tabbar-h) + 20px + env(safe-area-inset-bottom,0px))}}.legal-links{display:block;margin-top:4px}.credit-about a{color:inherit;font-weight:700}.legal-links a{color:inherit}.auth-legal{text-align:center;margin-top:16px}.credit .credit-sep,.page-credit .credit-br{display:none}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .c-fig img{filter:invert(1) hue-rotate(180deg);mix-blend-mode:screen}}:root[data-theme=dark] .c-fig img{filter:invert(1) hue-rotate(180deg);mix-blend-mode:screen}.c-ex{margin:6px 0 8px;padding:12px 14px 14px;border-radius:12px;border:1px dashed color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent) 5%,transparent);display:flex;flex-direction:column;gap:10px;min-width:0}.c-ex-h{display:flex;align-items:center;gap:6px;font-size:.78rem;font-weight:750;letter-spacing:.02em;color:var(--accent);margin:0}.c-ex .c-fig{margin:0}.c-ex .c-fig img{max-height:340px;width:auto}.c-ex .c-p{margin:0}.admin-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.admin .tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.admin .tile .small{display:block;margin-top:2px}.admin-error{border-color:color-mix(in srgb,var(--bad) 40%,var(--line))}.admin-error p{margin:6px 0 0}.admin-bars .bar-col{position:relative;cursor:default}.admin-bars .bar-col i.solid{background:var(--accent)}.admin-bars .bar-col:hover i.solid{background:color-mix(in srgb,var(--accent) 75%,var(--fg))}.admin-bars .bar-col:hover:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);white-space:nowrap;font-size:.75rem;font-weight:600;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:3px 7px;box-shadow:0 4px 12px #0000001f;pointer-events:none;z-index:2}.admin-bars .bar-col:first-child:hover:after{left:0;transform:none}.admin-bars .bar-col:last-child:hover:after{left:auto;right:0;transform:none}.admin-table th{white-space:nowrap}.admin-table td.num{text-align:right;font-variant-numeric:tabular-nums}.admin-chip{margin-left:6px;font-size:.68rem}.stats-tabs{max-width:420px;margin:0 0 16px}:root{--glass-bg: rgb(255 255 255 / .62);--glass-line: rgb(255 255 255 / .55);--glass-shadow: 0 10px 30px rgb(19 26 38 / .14), 0 1px 2px rgb(19 26 38 / .08), inset 0 1px 0 rgb(255 255 255 / .7)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--glass-bg: rgb(30 37 50 / .55);--glass-line: rgb(255 255 255 / .1);--glass-shadow: 0 10px 30px rgb(0 0 0 / .45), inset 0 1px 0 rgb(255 255 255 / .08)}}:root[data-theme=dark]{--glass-bg: rgb(30 37 50 / .55);--glass-line: rgb(255 255 255 / .1);--glass-shadow: 0 10px 30px rgb(0 0 0 / .45), inset 0 1px 0 rgb(255 255 255 / .08)}.glass{background:var(--glass-bg);backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);border:1px solid var(--glass-line);box-shadow:var(--glass-shadow)}.glass.lg-on{background:color-mix(in srgb,var(--bg) 40%,transparent)}.dtop{position:sticky;top:12px;z-index:40;display:flex;justify-content:center;padding:12px clamp(16px,3vw,36px) 0;pointer-events:none}.dtop-admin{position:absolute;top:12px;right:clamp(16px,3vw,36px);width:48px;height:48px;border-radius:50%;display:grid;place-items:center;padding:0;cursor:pointer;pointer-events:auto;color:var(--fg-2);transition:color .2s,transform .25s cubic-bezier(.3,1.6,.5,1)}.admin-btn:hover,.admin-btn.on{color:var(--accent)}.dtop-admin:hover{transform:translateY(-1px) scale(1.06)}.admin-btn:active{transform:scale(.94)}.top-search{pointer-events:auto;width:100%;max-width:620px;height:48px;border-radius:999px;display:flex;align-items:center;gap:10px;padding:0 10px 0 18px;color:var(--fg-3);cursor:pointer;text-align:left;font-size:1rem}.top-search:focus-visible,.glass-search:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.ts-ph{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-veil{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0f162242;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);overscroll-behavior:contain}.sp-col{position:absolute;top:calc(env(safe-area-inset-top,0px) + 16px);left:16px;right:16px;max-height:calc(100dvh - env(safe-area-inset-top,0px) - 32px);display:flex;flex-direction:column;gap:10px}.sp-field{flex:none;height:48px;border-radius:999px;display:flex;align-items:center;gap:10px;padding:0 6px 0 18px;color:var(--accent);background:var(--surface);outline:2px solid var(--accent);outline-offset:-1px;will-change:transform}.sp-field input{flex:1;min-width:0;border:0;outline:0;background:transparent;padding:0;color:var(--fg);font-size:1rem;text-overflow:ellipsis}.sp-field input::-webkit-search-cancel-button{display:none}.sp-close,.sp-x{flex:none;width:36px;height:36px;border:0;border-radius:50%;display:grid;place-items:center;background:none;color:var(--fg-2);cursor:pointer}.sp-close:hover,.sp-x:hover{background:var(--sunken)}.sp-rest{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:10px}.sp-filters{flex:none;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.sp-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--fg-3);font-size:.85rem;font-weight:700;cursor:pointer;box-shadow:var(--shadow-1)}.sp-chip:before{content:"";width:8px;height:8px;border-radius:50%;border:2px solid var(--c)}.sp-chip.on{color:var(--fg);border-color:color-mix(in srgb,var(--c) 45%,var(--line));background:color-mix(in srgb,var(--c) 12%,var(--surface))}.sp-chip.on:before{background:var(--c)}.sp-hint{margin-left:auto;padding:4px 10px;border-radius:999px;background:var(--surface);color:var(--fg-3);font-size:.78rem;box-shadow:var(--shadow-1)}.sp-card{min-height:0;overflow-y:auto;overscroll-behavior:contain;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-2);padding:6px}.sp-empty{margin:0;padding:18px;text-align:center;color:var(--fg-2)}.sp-head{display:flex;align-items:center;justify-content:space-between;padding:8px 10px 4px}.sp-clear{border:0;background:none;color:var(--accent);font-size:.85rem;font-weight:700;cursor:pointer}.sp-list{list-style:none;margin:0;padding:0}.sp-li{position:relative;display:flex;align-items:center;margin-bottom:2px;overflow:hidden}.sp-row{flex:1;min-width:0;height:64px;display:flex;align-items:center;gap:12px;padding:0 10px;border:0;border-radius:12px;background:none;text-align:left;cursor:pointer}.sp-li:has(.sp-x) .sp-row{padding-right:48px}.sp-row:hover,.sp-row:focus-visible{background:var(--surface-2);outline:0}.sp-x{position:absolute;right:8px;width:32px;height:32px}.sp-pastille{flex:none;width:40px;height:40px;border-radius:10px;display:grid;place-items:center;color:#fff;font-weight:800}.sp-pastille.sp-clock{background:var(--sunken);color:var(--fg-2)}.sp-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.sp-txt b,.sp-txt small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-txt small{color:var(--fg-3);font-size:.85rem}.sp-txt mark{background:color-mix(in srgb,var(--accent) 22%,transparent);color:inherit;border-radius:3px;padding:0 1px}.sp-more{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;margin-top:4px;padding:12px;border:0;border-top:1px solid var(--line);background:none;color:var(--accent);font-weight:700;cursor:pointer}.sp-field input{flex:1;min-width:0;width:auto!important;border:0!important;outline:0!important;background:transparent!important;padding:0!important;color:var(--fg);font-size:1rem}.mtop,.mbar,.msheet-bg{display:none}@media(max-width:860px){:root{--tabbar-h: 78px}.main{padding-top:calc(env(safe-area-inset-top,0px) + 66px)}.dtop{display:none}.mtop{display:flex;gap:10px;position:fixed;top:calc(env(safe-area-inset-top,0px) + 10px);left:12px;right:12px;z-index:40;pointer-events:none}.mtop>*{pointer-events:auto}.glass-btn{width:46px;height:46px;flex:none;border-radius:50%;display:grid;place-items:center;color:var(--fg);cursor:pointer;position:relative;padding:0}.glass-btn.logo-btn{overflow:hidden}.glass-btn .logo{width:30px;height:23px}.glass-search{flex:1;min-width:0;height:46px;border-radius:999px;display:flex;align-items:center;gap:10px;padding:0 16px;color:var(--fg-3);font:inherit;font-size:.95rem;cursor:pointer;text-align:left}.glass-search span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.glass-search.on{color:var(--accent)}.mbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:fixed;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom,0px) + 12px);height:64px;padding:6px;border-radius:999px;z-index:50}.mbar-ind{position:absolute;top:6px;bottom:6px;left:6px;width:calc((100% - 12px)/4);border-radius:999px;background:var(--accent);box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 40%,transparent);transform:translate(calc(var(--i, 0) * 100%));transition:transform .45s cubic-bezier(.34,1.36,.5,1),opacity .2s}.mtab{position:relative;z-index:1;border:0;background:none;border-radius:999px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;color:var(--fg-2);font:inherit;font-size:.68rem;font-weight:700;cursor:pointer;transition:color .25s;-webkit-tap-highlight-color:transparent}.mtab span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 2px}.mtab.on{color:#fff}.mtab:active{transform:scale(.94)}.mtab .nav-subj{border-radius:7px;font-size:.8rem}.mtab.on .nav-subj{box-shadow:0 0 0 2px #ffffffd9}.msheet-bg{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;background:#0000002e;animation:inFade .18s ease-out both}.msheet{position:fixed;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom,0px) + 86px);border-radius:26px;padding:12px 10px 10px;display:flex;flex-direction:column;gap:4px;transform-origin:30% 100%;animation:sheetPop .32s cubic-bezier(.3,1.3,.5,1) both}.msheet .eyebrow{margin:0 8px 4px}.msheet-item{display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;border-radius:18px;padding:10px;text-align:left;color:var(--fg);font:inherit;cursor:pointer}.msheet-item:active,.msheet-item.on{background:color-mix(in srgb,var(--accent) 14%,transparent)}.msheet-item>svg{margin-left:auto;color:var(--accent)}.msheet-item .nav-subj{border-radius:10px;font-size:1rem}.msheet-t{display:flex;flex-direction:column;min-width:0}.msheet-t small{color:var(--fg-3);font-size:.78rem}.ptr{top:calc(env(safe-area-inset-top,0px) + 62px)}.page-anim{transform-origin:50% 40vh;will-change:transform}.page-peek{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;padding-top:calc(env(safe-area-inset-top,0px) + 66px);overflow:hidden;pointer-events:none;transform-origin:50% 40vh;will-change:transform,opacity}}@media(min-width:861px){.page-peek{display:none}}@keyframes sheetPop{0%{transform:translateY(16px) scale(.96);opacity:0}}@media(prefers-reduced-motion:reduce){.mbar-ind,.msheet{animation:none!important;transition:none!important}}@media(max-width:860px){.msheet{background:color-mix(in srgb,var(--surface) 88%,transparent)}}@media(max-width:860px){.study{padding-bottom:12px}.study-actions{bottom:calc(env(safe-area-inset-bottom,0px) + 10px);margin-left:-6px;margin-right:-6px;padding:10px;gap:8px;border-radius:26px;background:var(--glass-bg);border:1px solid var(--glass-line);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);z-index:5}.grade-q{font-size:.85rem}.grades{gap:8px}.grade{min-height:62px;justify-content:center;padding:12px 2px;border-radius:18px;font-size:1.02rem;background:color-mix(in srgb,var(--surface) 72%,transparent)}.reveal{min-height:56px;border-radius:18px;font-size:1.05rem}}.mat-list{display:flex;flex-direction:column;gap:6px}.mat-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);cursor:pointer;transition:background .15s,border-color .15s}.mat-row.on{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:var(--accent-soft)}.mat-row input{position:absolute;opacity:0;pointer-events:none}.mat-box{flex:none;width:22px;height:22px;border-radius:7px;border:2px solid var(--line-2);display:grid;place-items:center;color:transparent;transition:background .15s,border-color .15s}.mat-row.on .mat-box{background:var(--accent);border-color:var(--accent);color:#fff}.mat-row input:focus-visible+.mat-box{outline:2px solid var(--accent);outline-offset:2px}.mat-t{flex:1;min-width:0;display:flex;flex-direction:column}.mat-t small{font-size:.8rem}.onboarding .main{padding-top:env(safe-area-inset-top,0px)}.onboarding .page{padding-top:32px;padding-bottom:140px}.onboarding .page.narrow{max-width:784px}.onboard-ok{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 22px);transform:translate(-50%);z-index:60;min-width:min(320px,calc(100vw - 32px));min-height:58px;justify-content:center;border-radius:999px;font-size:1.1rem;box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 22%,transparent),0 12px 32px color-mix(in srgb,var(--accent) 45%,transparent);animation:onboardGlow 2.2s ease-in-out infinite}@keyframes onboardGlow{50%{box-shadow:0 0 0 12px color-mix(in srgb,var(--accent) 10%,transparent),0 12px 32px color-mix(in srgb,var(--accent) 45%,transparent)}}@media(prefers-reduced-motion:reduce){.onboard-ok{animation:none}}.to-top,.fscroll{display:none}@media(max-width:860px){.to-top{display:grid;place-items:center;position:fixed;right:14px;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 12px);width:46px;height:46px;padding:0;border-radius:50%;z-index:41;color:var(--fg);cursor:pointer;opacity:0;transform:translateY(14px) scale(.85);pointer-events:none;transition:opacity .2s,transform .3s cubic-bezier(.34,1.4,.5,1)}.to-top.on{opacity:1;transform:none;pointer-events:auto}.fscroll{display:block;position:fixed;right:0;top:calc(env(safe-area-inset-top,0px) + 74px);bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 70px);width:52px;z-index:42;pointer-events:none;opacity:0;transition:opacity .25s}.fscroll.on{opacity:1}.fscroll-thumb{position:absolute;top:0;right:4px;width:38px;height:46px;border-radius:23px 8px 8px 23px;display:grid;place-items:center;color:var(--accent);background:var(--glass-bg);border:1px solid var(--glass-line);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);touch-action:none;will-change:transform;transition:background .15s,color .15s,width .15s}.fscroll.on .fscroll-thumb{pointer-events:auto}.fscroll.drag .fscroll-thumb{background:var(--accent);color:#fff;width:44px}.fscroll-labels{position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%);display:grid;justify-items:end;gap:6px;pointer-events:none}.fscroll-labels>span{max-width:calc(100vw - 90px)}.fscroll-near{padding:3px 12px;border-radius:999px;font-size:.78rem;font-weight:600;color:var(--fg-2);background:color-mix(in srgb,var(--surface) 92%,transparent);border:1px solid var(--line);box-shadow:0 4px 14px #0000001f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fscroll-near.d1{opacity:.85}.fscroll-near.d2{opacity:.6;font-size:.72rem}.fscroll-label{padding:9px 16px;border-radius:999px;background:var(--accent);color:#fff;font-weight:700;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 8px 24px #00000040}}.dp{position:relative;max-width:720px;display:flex;align-items:stretch;gap:6px;z-index:20}.dp-arrow{flex:none;width:44px;border-radius:14px;border:1px solid var(--line-2);background:var(--surface);color:var(--fg-2);display:grid;place-items:center;cursor:pointer;transition:background .15s,opacity .15s}.dp-arrow.next svg{transform:rotate(180deg)}.dp-arrow:disabled{opacity:.35;cursor:default}.dp-arrow:not(:disabled):active{background:var(--accent-soft)}.dp-btn{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:10px 14px;min-height:48px;border-radius:14px;border:1px solid var(--line-2);background:var(--surface);color:var(--fg);font-weight:700;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s}.dp.open .dp-btn{border-color:color-mix(in srgb,var(--accent) 55%,var(--line-2));box-shadow:0 0 0 3px var(--accent-soft)}.dp-n{flex:none;font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:99px;background:color-mix(in srgb,var(--deck, var(--accent)) 14%,transparent);color:var(--deck, var(--accent))}.dp-t{flex:1;min-width:0;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;line-height:1.3;font-size:.95rem}.dp-chev{flex:none;display:grid;color:var(--fg-3);transform:rotate(-90deg);transition:transform .25s cubic-bezier(.3,1.3,.5,1)}.dp.open .dp-chev{transform:rotate(90deg)}.dp-menu{position:absolute;top:calc(100% + 8px);left:0;right:0;max-height:min(60vh,460px);overflow-y:auto;overscroll-behavior:contain;padding:6px;border-radius:18px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 98%,transparent);-webkit-backdrop-filter:blur(20px) saturate(170%);backdrop-filter:blur(20px) saturate(170%);box-shadow:0 18px 48px #0000002e;transform-origin:50% 0;opacity:0;transform:translateY(-8px) scale(.97);visibility:hidden;transition:opacity .18s ease,transform .26s cubic-bezier(.25,1.2,.4,1),visibility 0s linear .26s}.dp.open .dp-menu{opacity:1;transform:none;visibility:visible;transition:opacity .18s ease,transform .26s cubic-bezier(.25,1.2,.4,1),visibility 0s}.dp-item{width:100%;display:flex;align-items:center;gap:12px;padding:10px;border:0;border-radius:12px;background:none;color:var(--fg);text-align:left;cursor:pointer}.dp-item:hover{background:var(--accent-soft)}.dp-item.on{background:color-mix(in srgb,var(--deck, var(--accent)) 12%,transparent);color:var(--deck, var(--accent))}.dp-k{flex:none;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-size:.8rem;font-weight:700;background:var(--bg);color:var(--fg-2)}.dp-item.on .dp-k{background:var(--deck, var(--accent));color:#fff}.dp-it{flex:1;min-width:0;display:flex;flex-direction:column}.dp-it b{font-size:.92rem;line-height:1.3}.dp-it small{font-size:.76rem;color:var(--fg-3)}@media(prefers-reduced-motion:reduce){.dp-menu,.dp-chev{transition:none!important}}.pill.exam{background:color-mix(in srgb,var(--hard) 14%,transparent);color:var(--hard)}.c-sec-f{flex-wrap:wrap;gap:6px 18px}.c-chapter-f{margin:4px 0 14px;padding:0 0 12px;border-top:0;border-bottom:1px dashed var(--line-2)}.c-practice.exam{color:var(--hard)}.c-practice.exam .c-count{background:color-mix(in srgb,var(--hard) 14%,transparent)}.controle-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.controle-list li{display:flex;align-items:center;gap:12px;padding:10px 10px 10px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-1);font-weight:650}.controle-list li>span{flex:1;min-width:0;overflow-wrap:anywhere}.controle-list .dot{flex:none}.subject-btns{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.subject-btn{--sub: var(--accent);position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:flex-start;justify-content:flex-start;aspect-ratio:16 / 9;padding:16px;border-radius:var(--r);border:1px solid var(--line);background:linear-gradient(135deg,var(--sub),color-mix(in srgb,var(--sub) 45%,#000));box-shadow:var(--shadow-1);cursor:pointer;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}.subject-btn>img{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.8,.2,1)}.subject-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(120% 90% at 0% 0%,rgb(0 0 0 / .65),transparent 60%),linear-gradient(180deg,transparent 55%,rgb(0 0 0 / .35))}.subject-name{display:inline-flex;align-items:flex-start;line-height:1.3;gap:10px;max-width:calc(100% - 32px);font-family:var(--f-display);font-size:1.25rem;font-weight:750;letter-spacing:-.01em;color:#fff;text-align:left;text-shadow:0 2px 12px rgb(0 0 0 / .5);overflow-wrap:anywhere;transition:transform .45s cubic-bezier(.2,.8,.2,1)}.subject-name .dot{flex:none;margin-top:calc((1.3em - 12px)/2);box-shadow:0 0 0 2px #ffffffb3}.subject-btn>svg{position:absolute;right:14px;bottom:14px;color:#fff;opacity:.75;transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .35s}.subject-btn:hover,.subject-btn:focus-visible{transform:translateY(-3px);box-shadow:var(--shadow-2)}.subject-btn:hover>img,.subject-btn:focus-visible>img{transform:scale(1.07)}.subject-btn:hover .subject-name{transform:translate(3px)}.subject-btn:hover>svg{transform:translate(4px);opacity:1}@media(max-width:860px){.subject-btn{aspect-ratio:5 / 2}}.controle-list{gap:12px}.controle-list li{padding:6px 8px 6px 6px;font-family:var(--f-display);font-size:1.15rem;font-weight:750;transition:transform .15s,box-shadow .15s}.controle-list li:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}.controle-list .dot{width:14px;height:14px}.controle-open{flex:1;min-width:0;display:flex;align-items:center;gap:14px;padding:16px 14px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:10px}.controle-open>span{flex:1;min-width:0;overflow-wrap:anywhere}.controle-head{display:flex;flex-direction:column;gap:12px}.controle-head h2{font-size:1.2rem}.controle-list li.menu-open{position:relative;z-index:5}.controle-menu{position:relative;flex:none}.controle-more{transition:background .2s,color .2s,transform .2s}.controle-more:hover,.controle-more[aria-expanded=true]{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.controle-pop{position:absolute;top:calc(100% + 6px);right:0;min-width:210px;padding:6px;display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-2);font-family:var(--f-body, inherit);font-size:.95rem;font-weight:650;transform-origin:top right;animation:controle-pop .16s cubic-bezier(.2,.9,.3,1.2)}@keyframes controle-pop{0%{opacity:0;transform:scale(.92) translateY(-4px)}}.controle-pop button{display:flex;align-items:center;gap:10px;padding:10px 12px;border:0;border-radius:8px;background:none;color:var(--fg);font:inherit;text-align:left;cursor:pointer}.controle-pop button:hover{background:var(--surface-2)}.controle-pop button.danger{color:var(--bad)}.controle-pop button.danger:hover{background:color-mix(in srgb,var(--bad) 10%,transparent)}.ending-banner{display:block;width:100%;text-align:left;margin:0 0 16px;padding:12px 16px;border:1px solid #F59E0B;border-radius:12px;background:#fef3c7;color:#78350f;font:inherit;cursor:pointer}.ending-banner:hover{background:#fde68a}.study{padding-bottom:0}.card-wrap{position:relative;touch-action:pan-y}.card-wrap{z-index:1}.card-wrap .flash{animation:cardSlide .34s cubic-bezier(.2,.9,.3,1.15) both}@keyframes cardSlide{0%{opacity:.6;transform:translateY(9px) scale(.955)}}.card-stack{position:relative;padding-bottom:16px}.card-ghost{position:absolute;border-radius:20px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-1, 0 2px 8px rgba(0, 0, 0, .06));pointer-events:none;transition:opacity .25s}.card-ghost.g1{top:8px;right:14px;bottom:8px;left:14px;opacity:.85}.card-ghost.g2{top:16px;right:28px;bottom:0;left:28px;opacity:.55}.card-stack[data-left="0"] .card-ghost,.card-stack[data-left="1"] .card-ghost.g2{opacity:0}.card-wrap.tap .flash{cursor:pointer;transition:border-color .15s,box-shadow .15s}.card-wrap.tap .flash:hover{border-color:color-mix(in srgb,var(--subj, var(--accent)) 45%,var(--line))}.card-wrap.flip .flash{animation:flipIn .4s cubic-bezier(.2,.8,.2,1) both}@keyframes flipIn{0%{opacity:.35;transform:perspective(1400px) rotateY(var(--flip-from, 75deg))}}.card-wrap.tap .flash{user-select:none;-webkit-user-select:none}.swipe-tag{position:absolute;top:22px;padding:5px 14px;border-radius:10px;border:3px solid currentColor;background:var(--surface);font-weight:850;font-size:1.05rem;text-transform:uppercase;letter-spacing:.04em;opacity:0;pointer-events:none}.swipe-ok{left:20px;color:var(--good);transform:rotate(-10deg)}.swipe-bad{right:20px;color:var(--bad);transform:rotate(10deg)}.swipe-easy{top:auto;bottom:22px;left:50%;transform:translate(-50%);color:var(--info)}.card-wrap[data-swipe=right] .swipe-ok,.card-wrap[data-swipe=left] .swipe-bad,.card-wrap[data-swipe=up] .swipe-easy{opacity:var(--swipe, 0);scale:calc(.75 + var(--swipe, 0) * .25)}.card-wrap.swipeable .flash{cursor:grab;user-select:none;-webkit-user-select:none}.card-wrap.swipeable .flash button:disabled{pointer-events:none}.card-wrap.dragging,.card-wrap.dragging *{cursor:grabbing!important;-webkit-user-select:none;user-select:none}.card-wrap[data-swipe=right]{--swipe-c: var(--good)}.card-wrap[data-swipe=left]{--swipe-c: var(--bad)}.card-wrap[data-swipe=up]{--swipe-c: var(--info)}.card-wrap[data-swipe=right] .flash,.card-wrap[data-swipe=left] .flash,.card-wrap[data-swipe=up] .flash{box-shadow:0 0 0 calc(2px + var(--swipe, 0) * 2px) color-mix(in srgb,var(--swipe-c) calc(var(--swipe, 0) * 100%),transparent),var(--shadow-2);background-image:linear-gradient(color-mix(in srgb,var(--swipe-c) calc(var(--swipe, 0) * 7%),transparent),color-mix(in srgb,var(--swipe-c) calc(var(--swipe, 0) * 7%),transparent))}.card-wrap.armed .swipe-tag{color:#fff;background:var(--swipe-c);border-color:var(--swipe-c);scale:1.18;transition:scale .18s cubic-bezier(.3,1.6,.5,1)}.card-wrap.armed .flash{box-shadow:0 0 0 4px var(--swipe-c),0 0 34px color-mix(in srgb,var(--swipe-c) 45%,transparent),var(--shadow-2)}.study-actions{z-index:5;padding-top:18px}.study-actions .reveal,.answers,.choose{min-height:60px}.choose{display:grid;place-items:center;margin:0;font-weight:700;color:var(--fg-3)}.answers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;animation:rise .18s both}.ans-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:0 8px;border-radius:14px;border:1.5px solid;font-weight:800;font-size:1rem;cursor:pointer;transition:transform .1s,filter .15s}.ans-btn:hover{filter:brightness(1.05);transform:translateY(-2px)}.ans-btn:active{transform:scale(.95)}.ans-btn.bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,transparent);background:color-mix(in srgb,var(--bad) 8%,var(--surface))}.ans-btn.ok{color:#fff;border-color:var(--good);background:var(--good);box-shadow:0 6px 18px color-mix(in srgb,var(--good) 35%,transparent)}.ans-btn.easy{color:var(--info);border-color:color-mix(in srgb,var(--info) 40%,transparent);background:color-mix(in srgb,var(--info) 8%,var(--surface))}.ans-btn.sugg{outline:3px solid color-mix(in srgb,currentColor 40%,transparent);outline-offset:2px}.ans-btn.ok.sugg{outline-color:color-mix(in srgb,var(--good) 45%,transparent)}.ans-btn kbd{opacity:.75}.ans-btn.ok kbd{background:#fff3;border-color:transparent;color:#fff}.swipe-hint{margin:0;text-align:center;font-size:.82rem;font-weight:700;color:var(--fg-3)}@media(hover:none){.ans-btn:hover{transform:none}}@media(max-width:560px){.ans-btn kbd,.done-actions kbd{display:none}}.pop{position:absolute;left:50%;bottom:calc(100% - 6px);translate:-50% 0;font-family:var(--f-display);font-weight:850;font-size:1.5rem;white-space:nowrap;pointer-events:none;text-shadow:0 2px 12px var(--bg);animation:popUp 1s cubic-bezier(.2,.8,.2,1) both}.pop-ok{color:var(--good)}.pop-bad{color:var(--bad);font-size:1.05rem}.pop-gold{color:#d97706;font-size:1.3rem}@keyframes popUp{0%{opacity:0;transform:translateY(14px) scale(.6)}20%{opacity:1;transform:translateY(0) scale(1.15)}35%{transform:scale(1)}75%{opacity:1}to{opacity:0;transform:translateY(-36px)}}.study-bar{height:8px;border-radius:99px;background:var(--sunken);overflow:hidden}.study-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--subj, var(--accent)),color-mix(in srgb,var(--subj, var(--accent)) 55%,#fff));box-shadow:0 0 12px color-mix(in srgb,var(--subj, var(--accent)) 60%,transparent);transition:width .45s cubic-bezier(.2,.9,.3,1.2);position:relative}.bar-shine{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;overflow:hidden;pointer-events:none}.bar-shine:before{content:"";position:absolute;top:0;bottom:0;width:45%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.95),transparent);animation:barSweep .7s cubic-bezier(.3,0,.3,1) both}.bar-shine:after{content:"";position:absolute;right:0;top:0;bottom:0;width:14px;border-radius:99px;background:#fff;box-shadow:0 0 10px 3px color-mix(in srgb,var(--subj, var(--accent)) 80%,#fff);animation:barHead .7s ease-out both}@keyframes barSweep{0%{left:-45%}to{left:100%}}@keyframes barHead{0%,35%{opacity:0}55%{opacity:1}to{opacity:0}}.on-fire{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;pointer-events:none;background:radial-gradient(circle at 50% 45%,rgba(251,146,60,.35),rgba(239,68,68,.12) 45%,transparent 75%);animation:fireBg 1.6s ease-out both}.on-fire span{display:flex;flex-direction:column;align-items:center;font-family:var(--f-display);font-weight:900;font-size:clamp(2.6rem,12vw,5rem);line-height:1;background:linear-gradient(180deg,#fde047,#f97316 55%,#dc2626);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 4px 18px rgba(239,68,68,.45));animation:fireText 1.6s cubic-bezier(.2,.9,.3,1.4) both}.on-fire small{font-size:.32em;margin-top:8px;letter-spacing:.04em}@keyframes fireBg{0%{opacity:0}15%,70%{opacity:1}to{opacity:0}}@keyframes fireText{0%{opacity:0;transform:scale(.3) rotate(-8deg)}22%{opacity:1;transform:scale(1.12) rotate(2deg)}34%{transform:scale(1) rotate(0)}72%{opacity:1;transform:scale(1.03)}to{opacity:0;transform:scale(1.25) translateY(-30px)}}.combo.fire{animation:comboPop .35s cubic-bezier(.2,.9,.3,1.6) both,flicker .9s ease-in-out .35s infinite alternate}@keyframes flicker{to{box-shadow:0 4px 22px #f97316b3;filter:brightness(1.12)}}@media(prefers-reduced-motion:reduce){.on-fire span,.bar-shine:before{animation-duration:.01s}}.study-score{font-family:var(--f-display);font-weight:800;font-size:1.05rem;color:var(--fg-2)}.combo{flex:none;padding:4px 10px;border-radius:99px;background:color-mix(in srgb,#f59e0b 16%,transparent);color:#b45309;font-weight:850;font-size:.92rem;white-space:nowrap;animation:comboPop .35s cubic-bezier(.2,.9,.3,1.6) both}.combo.hot{background:linear-gradient(90deg,#f59e0b,#ef4444);color:#fff;box-shadow:0 4px 14px #ef444459}@keyframes comboPop{0%{transform:scale(1.6)}}.done-score{display:flex;flex-direction:column;align-items:center;gap:2px}.done-score b{font-family:var(--f-display);font-size:3rem;line-height:1}.done-score>span{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3)}.done-score em{margin-top:8px;padding:4px 12px;border-radius:99px;background:linear-gradient(90deg,#f59e0b,#ef4444);color:#fff;font-style:normal;font-weight:850;animation:comboPop .5s .2s cubic-bezier(.2,.9,.3,1.6) both}.done-score small{margin-top:4px;color:var(--fg-3)}.done-score.record b{color:#d97706}.done .dist{grid-template-columns:repeat(3,minmax(0,1fr))}.dist-i.combo-i{color:#b45309}.done-actions{display:flex;flex-direction:column;align-items:stretch;gap:10px;width:100%;max-width:420px}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:1000}
