:root{color-scheme:dark;--bg: #0d0f24;--bg-2: #141737;--surface: rgba(255, 255, 255, .045);--surface-solid: #171a3d;--surface-2: rgba(255, 255, 255, .075);--surface-hover: rgba(255, 255, 255, .1);--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .16);--text: #eceefe;--text-muted: #a3a8cf;--text-faint: #6f74a3;--gold: #ffc93c;--gold-2: #ff9f1c;--gold-soft: rgba(255, 201, 60, .14);--mint: #3ddc97;--mint-soft: rgba(61, 220, 151, .14);--coral: #ff6b6b;--coral-soft: rgba(255, 107, 107, .14);--sky: #4cc9f0;--sky-soft: rgba(76, 201, 240, .14);--violet: #8b7bff;--violet-soft: rgba(139, 123, 255, .16);--font-display: "Outfit", ui-sans-serif, system-ui, sans-serif;--font-body: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--radius: 20px;--radius-sm: 12px;--shadow: 0 18px 40px -24px rgba(0, 0, 0, .8);--nav-h: 68px;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);font-family:var(--font-body);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);overscroll-behavior-y:none}body{min-height:100dvh;background:radial-gradient(700px 420px at 100% -5%,rgba(139,123,255,.22),transparent 65%),radial-gradient(600px 400px at -10% 30%,rgba(76,201,240,.1),transparent 60%),var(--bg);background-attachment:fixed}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0}button{font:inherit;color:inherit;cursor:pointer}a{color:var(--sky)}:focus-visible{outline:2px solid var(--sky);outline-offset:2px}.num{font-family:var(--font-display);font-variant-numeric:tabular-nums}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.small{font-size:.85rem}.shell{max-width:560px;margin:0 auto;padding:calc(var(--safe-t) + 18px) 16px calc(var(--nav-h) + var(--safe-b) + 28px)}.shell.wide{max-width:980px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.topbar .hello{font-size:.85rem;color:var(--text-muted)}.topbar h1{font-size:1.65rem;font-weight:700}.section{margin-top:26px}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:12px}.section-head h2{font-size:1.15rem;font-weight:600;display:flex;align-items:center;gap:8px}.section-head .count{font-family:var(--font-display);font-size:.8rem;font-weight:600;padding:2px 9px;border-radius:99px;background:var(--surface-2);color:var(--text-muted)}.stack{display:flex;flex-direction:column;gap:10px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.chip{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;font-weight:600;padding:3px 9px;border-radius:99px;background:var(--surface-2);color:var(--text-muted);white-space:nowrap}.chip.gold{background:var(--gold-soft);color:var(--gold)}.chip.mint{background:var(--mint-soft);color:var(--mint)}.chip.coral{background:var(--coral-soft);color:var(--coral)}.chip.sky{background:var(--sky-soft);color:var(--sky)}.chip.violet{background:var(--violet-soft);color:#b9b0ff}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border-strong);background:var(--surface-2);border-radius:14px;padding:11px 16px;font-weight:600;font-size:.92rem;text-decoration:none;color:var(--text);transition:transform .12s ease,background .15s ease}.btn:hover{background:var(--surface-hover)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn.primary{border:none;color:#231600;background:linear-gradient(135deg,var(--gold),var(--gold-2));box-shadow:0 10px 24px -12px #ff9f1ccc}.btn.good{border:none;color:#00281a;background:var(--mint)}.btn.danger{color:var(--coral);border-color:#ff6b6b66;background:var(--coral-soft)}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-muted);padding:8px 10px}.btn.block{width:100%}.icon-btn{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted)}.icon-btn:hover{color:var(--text)}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hero{position:relative;overflow:hidden;border-radius:26px;padding:20px;background:radial-gradient(420px 220px at 110% -20%,rgba(255,201,60,.35),transparent 60%),linear-gradient(145deg,#2a1f6e,#1a1846 55%,#141737);border:1px solid rgba(255,255,255,.12);box-shadow:0 24px 50px -28px #503cdce6}.hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.hero-label{font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#fff9}.balance{display:flex;align-items:center;gap:10px;margin-top:4px}.balance .num{font-size:3.1rem;font-weight:800;line-height:1;background:linear-gradient(180deg,#fff3c4,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}.coin{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#6b4100;background:radial-gradient(circle at 35% 30%,#fff1b0,var(--gold) 45%,var(--gold-2));box-shadow:inset 0 -3px #00000026,0 6px 16px -6px #ff9f1ce6;flex:none}.coin.sm{width:22px;height:22px}.worth-cash{color:#ffffffbf;font-size:.9rem;margin-top:6px}.worth-cash strong{color:var(--gold)}.streak{display:flex;flex-direction:column;align-items:center;padding:10px 14px;border-radius:18px;background:#00000038;border:1px solid rgba(255,255,255,.08);min-width:78px}.streak .num{font-size:1.6rem;font-weight:700;line-height:1}.streak .lbl{font-size:.7rem;color:#fff9;margin-top:3px}.streak.lit{color:#ffb347;box-shadow:0 0 24px -6px #ff8c00b3}.streak.lit svg{filter:drop-shadow(0 0 6px rgba(255,140,0,.8))}.progress{margin-top:18px}.progress-row{display:flex;justify-content:space-between;font-size:.8rem;color:#ffffffb3;margin-bottom:7px}.bar{height:12px;border-radius:99px;background:#00000059;overflow:hidden}.bar>span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--gold-2),var(--gold));box-shadow:0 0 14px #ffc93cb3;transition:width .8s cubic-bezier(.2,.8,.2,1)}.bar.mint>span{background:linear-gradient(90deg,#1fb57a,var(--mint));box-shadow:0 0 14px #3ddc9799}.bar.violet>span{background:linear-gradient(90deg,#6a5cff,#b18cff);box-shadow:none}.hero-actions{display:flex;gap:10px;margin-top:16px}.level-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px 6px 6px;border-radius:99px;background:var(--surface-2);border:1px solid var(--border);font-size:.8rem;font-weight:600}.level-chip .lv{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:.78rem;color:#fff;background:linear-gradient(135deg,var(--violet),#c07bff)}.tile{border-radius:18px;padding:13px 14px;background:var(--surface);border:1px solid var(--border)}.tile .num{font-size:1.7rem;font-weight:700;line-height:1.05}.tile .lbl{font-size:.78rem;color:var(--text-muted);margin-top:2px}.tile.sky .num{color:var(--sky)}.tile.coral .num{color:var(--coral)}.tile.mint .num{color:var(--mint)}.tile.gold .num{color:var(--gold)}button.tile{text-align:left;font:inherit;color:inherit}.card{--subject: var(--violet);position:relative;border-radius:18px;background:var(--surface);border:1px solid var(--border);overflow:hidden;transition:background .15s ease,transform .15s ease}.card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--subject)}.card-main{width:100%;display:flex;gap:12px;align-items:center;padding:13px 14px 13px 16px;background:none;border:0;text-align:left}.card:hover{background:var(--surface-2)}.subj{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;color:var(--subject);background:color-mix(in srgb,var(--subject) 16%,transparent)}.card-body{flex:1;min-width:0}.card-title{font-weight:600;font-size:.97rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:5px;font-size:.8rem;color:var(--text-muted)}.card-meta .dot{width:3px;height:3px;border-radius:50%;background:var(--text-faint)}.card-meta .late{color:var(--coral);font-weight:500}.card-meta .soon{color:var(--sky);font-weight:500}.reward{flex:none;display:flex;align-items:center;gap:4px;font-family:var(--font-display);font-weight:700;font-size:.95rem;color:var(--gold);padding:5px 10px 5px 6px;border-radius:99px;background:var(--gold-soft)}.card.done .reward{color:var(--mint);background:var(--mint-soft)}.card.done .card-title{color:var(--text-muted)}.card-more{padding:0 16px 14px 68px;font-size:.88rem;color:var(--text-muted);animation:rise .2s ease}.card-more p{margin:0 0 10px}.card-more .files{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.card-more .actions{display:flex;gap:8px;flex-wrap:wrap}.kami{background:#ff52a224;color:#ff8cc6}@keyframes rise{0%{opacity:0;transform:translateY(-4px)}}.empty{text-align:center;padding:26px 16px;border-radius:18px;border:1px dashed var(--border-strong);color:var(--text-muted)}.empty .big{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--text);margin:8px 0 4px}.empty svg{color:var(--mint)}.banner{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:16px;border:1px solid;font-size:.9rem}.banner.warn{background:#ffc93c14;border-color:#ffc93c4d}.banner.bad{background:var(--coral-soft);border-color:#ff6b6b59}.banner.info{background:var(--violet-soft);border-color:#8b7bff59}.banner svg{flex:none;margin-top:1px}.boss{border-radius:22px;padding:18px;background:radial-gradient(380px 200px at 100% 0%,rgba(255,107,107,.28),transparent 65%),linear-gradient(150deg,#2b1530,#1a1534);border:1px solid rgba(255,107,107,.25)}.boss h2{font-size:1.3rem;font-weight:700}.boss .sub{color:var(--text-muted);font-size:.88rem;margin:4px 0 14px}.hp{height:14px;border-radius:99px;background:#0006;overflow:hidden}.hp>span{display:block;height:100%;background:linear-gradient(90deg,#ff3d6e,var(--coral));transition:width .8s ease}.boss-stats{display:flex;justify-content:space-between;font-size:.8rem;color:var(--text-muted);margin-top:8px}.filters{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:12px;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filter{flex:none;padding:7px 13px;border-radius:99px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:.83rem;font-weight:600}.filter.on{background:var(--text);color:var(--bg);border-color:var(--text)}.cashout{text-align:center;padding:22px 18px}.cashout .big{font-family:var(--font-display);font-size:2.6rem;font-weight:800;color:var(--gold);line-height:1}.stepper{display:flex;align-items:center;justify-content:center;gap:16px;margin:14px 0 16px}.rate{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;font-size:.82rem;color:var(--text-muted)}.earn-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--border)}.earn-row:last-child{border-bottom:0}.earn-row .ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:none}.earn-row .txt{flex:1;min-width:0;font-size:.9rem}.earn-row .txt .when{font-size:.76rem;color:var(--text-faint)}.earn-row .amt{font-family:var(--font-display);font-weight:700}.amt.plus{color:var(--gold)}.amt.minus{color:var(--coral)}.badges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.badge{text-align:center;padding:14px 8px 12px;border-radius:18px;background:var(--surface);border:1px solid var(--border)}.badge .medal{width:52px;height:52px;margin:0 auto 8px;border-radius:50%;display:grid;place-items:center;color:#2a1a00;background:radial-gradient(circle at 35% 30%,#fff1b0,var(--gold) 50%,var(--gold-2));box-shadow:0 8px 20px -8px #ff9f1ccc}.badge.locked .medal{color:var(--text-faint);background:var(--surface-2);box-shadow:none}.badge .nm{font-family:var(--font-display);font-weight:600;font-size:.86rem}.badge .ds{font-size:.72rem;color:var(--text-muted);margin-top:2px;line-height:1.3}.badge .bar{height:5px;margin-top:8px}.nav{position:fixed;left:0;right:0;bottom:0;z-index:20;padding:8px 12px calc(8px + var(--safe-b));background:#0d0f24d1;backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border-top:1px solid var(--border)}.nav-inner{max-width:560px;margin:0 auto;display:flex;justify-content:space-around}.nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px;background:none;border:0;border-radius:12px;color:var(--text-faint);font-size:.7rem;font-weight:600;position:relative}.nav button.on{color:var(--text)}.nav button.on svg{color:var(--gold)}.nav .pip{position:absolute;top:2px;right:calc(50% - 20px);min-width:17px;height:17px;padding:0 5px;border-radius:99px;background:var(--coral);color:#fff;font-size:.66rem;font-weight:700;display:grid;place-items:center}.toast{position:fixed;left:50%;top:calc(var(--safe-t) + 14px);transform:translate(-50%);z-index:50;display:flex;align-items:center;gap:10px;padding:11px 16px 11px 11px;border-radius:99px;background:#23265a;border:1px solid var(--border-strong);box-shadow:0 16px 40px -12px #000c;font-weight:600;font-size:.92rem;animation:drop .35s cubic-bezier(.2,1.3,.4,1);max-width:calc(100vw - 32px)}@keyframes drop{0%{opacity:0;transform:translate(-50%,-16px)}}.login{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;text-align:center}.logo{width:76px;height:76px;border-radius:24px;display:grid;place-items:center;color:#231600;background:linear-gradient(135deg,var(--gold),var(--gold-2));box-shadow:0 18px 40px -14px #ff9f1ce6;margin-bottom:18px}.login h1{font-size:2rem;font-weight:800}.login p{color:var(--text-muted);margin:6px 0 26px}.pin-dots{display:flex;gap:14px;justify-content:center;margin-bottom:8px;min-height:18px}.pin-dots span{width:14px;height:14px;border-radius:50%;border:2px solid var(--border-strong);transition:background .15s,transform .15s}.pin-dots span.on{background:var(--gold);border-color:var(--gold);transform:scale(1.1)}.pin-dots.shake{animation:shake .4s}@keyframes shake{25%{transform:translate(-8px)}75%{transform:translate(8px)}}.keypad{display:grid;grid-template-columns:repeat(3,76px);gap:14px;margin-top:22px}.keypad button{height:76px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border);font-family:var(--font-display);font-size:1.6rem;font-weight:600}.keypad button:active{background:var(--surface-hover);transform:scale(.95)}.keypad button.text{background:none;border:0;font-size:.85rem;font-family:var(--font-body);color:var(--text-muted)}.login .err{color:var(--coral);font-size:.88rem;min-height:20px}.login .alt{margin-top:20px}.login input:not([type=checkbox]){width:260px;padding:13px 14px;border-radius:14px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);font-size:1rem;text-align:center;margin-bottom:12px}.course-row{display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:center;padding:12px 14px;border-radius:16px;background:var(--surface);border:1px solid var(--border);width:100%;text-align:left}.course-row .name{font-weight:600}.course-row .stats{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.grade{min-width:48px;height:40px;padding:0 10px;border-radius:12px;display:grid;place-items:center;font-family:var(--font-display);font-size:1.05rem;font-weight:700}.grade.g-a{background:var(--mint-soft);color:var(--mint)}.grade.g-b{background:var(--sky-soft);color:var(--sky)}.grade.g-c{background:var(--gold-soft);color:var(--gold)}.grade.g-d,.grade.g-f{background:var(--coral-soft);color:var(--coral)}.grade.g-none{background:var(--surface-2);color:var(--text-faint)}.req{display:flex;align-items:center;gap:12px;padding:14px;border-radius:16px;background:var(--gold-soft);border:1px solid rgba(255,201,60,.3)}.req .txt{flex:1}.form-row{display:flex;gap:8px;flex-wrap:wrap}.field{flex:1;min-width:0;padding:11px 12px;border-radius:12px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);font:inherit}.field.narrow{flex:0 0 96px}table.runs{width:100%;border-collapse:collapse;font-size:.83rem}table.runs td{padding:8px 6px;border-bottom:1px solid var(--border);vertical-align:top}.ok-dot{width:8px;height:8px;border-radius:50%;display:inline-block}@media (min-width: 760px){.parent-cols{display:grid;grid-template-columns:1.15fr 1fr;gap:22px;align-items:start}.parent-cols .section:first-child{margin-top:26px}}@media (max-width: 360px){.balance .num{font-size:2.6rem}.badges{grid-template-columns:repeat(2,minmax(0,1fr))}.keypad{grid-template-columns:repeat(3,68px)}.keypad button{height:68px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.notify{display:flex;gap:14px;align-items:flex-start}.notify-ic{flex:none;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;color:var(--gold);background:var(--gold-soft);animation:ring 2.4s ease-in-out infinite}.notify-ic.on{color:var(--mint);background:var(--mint-soft);animation:none}.notify-title{font-family:var(--font-display);font-weight:600;font-size:1.02rem}@keyframes ring{0%,80%,to{transform:rotate(0)}84%{transform:rotate(14deg)}88%{transform:rotate(-12deg)}92%{transform:rotate(8deg)}}.viewing-as{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 8px 8px 14px;margin-bottom:12px;border-radius:14px;background:var(--violet-soft);border:1px solid rgba(139,123,255,.4);font-size:.86rem;font-weight:600}.viewing-as>span{display:flex;align-items:center;gap:6px}.btn.small{padding:7px 11px;font-size:.8rem}.seg{display:inline-flex;padding:4px;gap:4px;border-radius:14px;background:var(--surface-2);border:1px solid var(--border);margin-bottom:16px}.seg button{border:0;background:none;padding:8px 12px;border-radius:10px;font-size:.85rem;font-weight:600;color:var(--text-muted)}.seg button.on{background:var(--text);color:var(--bg)}.auth-form{width:100%;max-width:320px;display:flex;flex-direction:column;gap:10px}.auth-form.wide{max-width:none}.login .auth-form input:not([type=checkbox]),.auth-form input:not([type=checkbox]){width:100%;margin:0;text-align:left;padding:13px 14px;border-radius:14px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);font-size:1rem}.auth-form .code-input{text-align:center!important;font-family:var(--font-display);font-size:1.8rem!important;letter-spacing:.3em}.auth-form .err{color:var(--coral);font-size:.88rem;min-height:20px}.agree{display:flex;gap:10px;align-items:flex-start;text-align:left;font-size:.82rem;color:var(--text-muted)}.agree input[type=checkbox]{flex:none;width:20px;height:20px;margin:1px 0 0;padding:0;accent-color:var(--gold)}.agree span{flex:1;min-width:0}.trust{margin-top:14px}.trust h3{display:flex;align-items:center;gap:8px;font-size:1.05rem;margin-bottom:8px}.trust ul{margin:0;padding-left:18px;color:var(--text-muted);font-size:.9rem}.trust li{margin:6px 0}.trust strong{color:var(--text)}.pair-code{font-family:var(--font-display);font-size:2.6rem;font-weight:800;letter-spacing:.25em;color:var(--gold);margin:10px 0 4px}.field-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--border);font-size:.92rem}.field-row .field{max-width:220px}.form-label{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}.presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}.preset{text-align:left;padding:10px;border-radius:14px;border:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;gap:3px}.preset b{font-family:var(--font-display);font-size:.92rem}.preset span{font-size:.72rem;color:var(--text-muted);line-height:1.3}.preset.on{border-color:var(--gold);background:var(--gold-soft)}.point-rows{display:flex;flex-direction:column}.point-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border)}.point-row .ic{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;flex:none}.point-row .txt{flex:1;min-width:0;display:flex;flex-direction:column}.point-row .txt b{font-size:.9rem;font-weight:600}.point-row .txt span{font-size:.74rem;color:var(--text-faint)}.stepper-sm{display:flex;align-items:center;border:1px solid var(--border-strong);border-radius:12px;overflow:hidden;flex:none}.stepper-sm button{width:32px;height:36px;border:0;background:var(--surface-2);font-size:1.1rem}.stepper-sm button:disabled{opacity:.35}.stepper-sm input{width:44px;height:36px;border:0;text-align:center;background:transparent;color:var(--gold);font-family:var(--font-display);font-weight:700;font-size:1rem}.cash-row{display:flex;align-items:center;gap:8px;margin-top:8px}.cash-row .dollar{font-family:var(--font-display);font-size:1.3rem;font-weight:700;color:var(--gold)}.estimate{display:flex;gap:8px;align-items:flex-start;margin-top:14px;padding:10px 12px;border-radius:12px;background:var(--violet-soft);font-size:.83rem;color:var(--text-muted)}.estimate svg{flex:none;margin-top:2px;color:#b9b0ff}.estimate b{color:var(--text)}.guide-link{width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:14px;border-radius:16px;border:1px solid rgba(255,201,60,.35);background:var(--gold-soft);color:var(--text)}.guide-link>svg:first-child{color:var(--gold)}.guide-link>span{flex:1;display:flex;flex-direction:column}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#05060fb8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:flex-end;justify-content:center;animation:fade .2s ease}@media (min-width: 640px){.modal-backdrop{align-items:center}}.modal{width:100%;max-width:560px;max-height:92dvh;display:flex;flex-direction:column;background:var(--surface-solid);border:1px solid var(--border-strong);border-radius:24px 24px 0 0;box-shadow:0 -20px 60px -20px #000c;animation:rise-up .3s cubic-bezier(.2,.9,.3,1)}@media (min-width: 640px){.modal{border-radius:24px}}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 0}.steps{display:flex;gap:6px}.steps span{width:26px;height:5px;border-radius:99px;background:var(--surface-2)}.steps span.done{background:var(--mint)}.steps span.on{background:var(--gold)}.modal-body{padding:10px 18px 6px;overflow-y:auto}.modal-body h2{font-size:1.5rem;margin:4px 0 6px}.modal-foot{display:flex;justify-content:space-between;gap:10px;padding:12px 16px calc(14px + var(--safe-b));border-top:1px solid var(--border)}.guide-list{padding-left:20px;color:var(--text-muted)}.guide-list li{margin:10px 0}.guide-list b{color:var(--text)}@keyframes fade{0%{opacity:0}}@keyframes rise-up{0%{transform:translateY(40px);opacity:0}}@media (max-width: 400px){.presets{grid-template-columns:1fr}}.card-more .instructions{color:var(--text);white-space:pre-line}.worksheets{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.worksheet{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:14px;background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text);text-decoration:none}.worksheet:active{transform:scale(.98)}.ws-ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none;color:var(--sky);background:var(--sky-soft)}.ws-txt{flex:1;min-width:0;display:flex;flex-direction:column}.ws-txt b{font-weight:600;font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-txt span{font-size:.74rem;color:var(--text-muted)}.btn.small-btn{padding:8px 12px;font-size:.82rem}.invite-box{margin-top:12px;padding:12px;border-radius:14px;background:var(--gold-soft);border:1px solid rgba(255,201,60,.3)}.invite-link{margin:6px 0;padding:10px;border-radius:10px;background:#00000040;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;word-break:break-all;-webkit-user-select:all;user-select:all}.pw-change summary{cursor:pointer;color:var(--text-muted);font-weight:600;font-size:.9rem}
