:root{--text: #171a22;--muted: #6b7488;--ok: #12a06a;--near: #b8820b;--err: #dc2626;--radius: 14px;--mono: ui-monospace, "SFMono-Regular", "Cascadia Mono", Consolas, monospace;--bottom-nav-h: 64px;--on-accent: #fff;color-scheme:light}[data-theme=bw-dark]{--text: #e8eaf0;--muted: #8b93a7;--ok: #3ddc97;--near: #ffc94d;--err: #ff5449;--on-accent: #1b1b1e;color-scheme:dark}:root,[data-theme=blue]{--bg: #f6f7fb;--surface: #ffffff;--surface-2: #f0f2f7;--line: #dfe3ec;--accent: #2f6fd0}[data-theme=pink]{--bg: #faf4f9;--surface: #fffdff;--surface-2: #fceaf2;--line: #f0c9dd;--accent: #d6336c}[data-theme=cream]{--bg: #faf6ef;--surface: #fffdf8;--surface-2: #f3ead9;--line: #e6d9c3;--accent: #b8875a}[data-theme=mint]{--bg: #f0faf7;--surface: #ffffff;--surface-2: #e1f5ee;--line: #cdeae0;--accent: #14b892}[data-theme=lavender]{--bg: #f6f4fb;--surface: #ffffff;--surface-2: #ece5f7;--line: #ddd0ef;--accent: #8462c7}[data-theme=bw-light]{--bg: #fafafa;--surface: #ffffff;--surface-2: #f0f0f0;--line: #e0e0e0;--accent: #1a1a1a}[data-theme=bw-dark]{--bg: #323235;--surface: #3a3a3e;--surface-2: #434347;--line: #505056;--accent: #f0f0ee}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:SUIT Variable,Apple SD Gothic Neo,Malgun Gothic,system-ui,-apple-system,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}.app{min-height:100%;display:flex;justify-content:center}.screen{width:100%;max-width:820px;padding:24px 20px calc(var(--bottom-nav-h) + 24px);display:flex;flex-direction:column;gap:20px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;max-width:820px;margin:0 auto;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;height:var(--bottom-nav-h);background:transparent;border:none;font:inherit;color:var(--muted);cursor:pointer}.bottom-nav-item.on{color:var(--accent)}.bottom-nav-icon{font-size:1.3rem;line-height:1}.bottom-nav-icon svg{width:22px;height:22px;display:block}.bottom-nav-label{font-size:.72rem}h1,h2,h3{margin:0;line-height:1.3}h3{font-size:1rem}.muted{color:var(--muted);font-size:.875rem}.nowrap{white-space:nowrap}code{font-family:var(--mono)}.btn{font:inherit;border:1px solid transparent;border-radius:10px;padding:9px 16px;cursor:pointer;background:var(--surface-2);color:var(--text);transition:filter .12s,background .12s,border-color .12s;white-space:nowrap}.btn:hover:not(:disabled){filter:brightness(1.15)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:var(--accent);color:var(--on-accent);font-weight:600}.btn.oauth{display:inline-flex;align-items:center;justify-content:center;gap:10px}.btn.google{background:var(--surface);border-color:var(--line);color:var(--text);font-weight:600}.btn.kakao{background:#fee500;color:#191919;font-weight:600}.btn.ghost{background:transparent;border-color:var(--line)}.btn.danger{background:transparent;border-color:var(--line);color:var(--err)}.btn.lg{padding:14px 28px;font-size:1.05rem}.btn.sm{padding:5px 10px;font-size:.85rem}.btn.xs{padding:2px 6px;font-size:.75rem}input,select,textarea{font:inherit;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:9px 11px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.75}input[type=range]{padding:0;border:0;accent-color:var(--accent)}input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:18px;height:18px;flex:none}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;gap:12px}.topbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.topbar h2{flex:1;font-size:1.1rem;min-width:fit-content}.topbar-right{display:flex;flex-wrap:wrap;gap:8px}.row{display:flex;gap:10px;align-items:flex-end}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between;align-items:center;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:6px;font-size:.875rem;color:var(--muted)}.field.slider span{color:var(--text)}.field.disabled{opacity:.45}.field b{color:var(--accent)}.stepper{display:flex;align-items:center;gap:6px}.stepper input{width:84px;text-align:center}.manual-ko-list{display:flex;flex-direction:column;gap:6px}.manual-ko-row{align-items:center}.manual-ko-row .cell{flex:1}.manual-ko-list.sm{gap:4px;min-width:160px}.manual-ko-list.sm .manual-ko-row .ko-index{width:18px;height:18px;font-size:.7rem}.manual-ko-list.sm .manual-ko-row .cell{padding:5px 8px;font-size:.85rem}.manual-ko-row .ko-index{flex:none;width:22px;height:22px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);color:var(--muted);font-size:.75rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.define-suggestions{display:flex;flex-direction:column;gap:6px;padding:10px;margin-bottom:8px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px}.define-suggestions-head{align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:2px}.define-suggestions .small-label{margin-bottom:2px}.define-suggestion{justify-content:flex-start;text-align:left;white-space:normal}.nickname-row{align-items:center;flex-wrap:wrap}.nickname-row input{max-width:160px}.nickname-cost{margin:2px 0 0;font-size:.85rem}.topline{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.theme-picker{display:flex;align-items:center;gap:8px;font-size:.85rem}.theme-picker select{padding:5px 8px;font-size:.85rem}.authbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;font-size:.85rem;flex-wrap:wrap}.authbar-hint{font-size:.78rem}.settings-section .authbar{justify-content:flex-start}.authbar-guest{flex-direction:column;align-items:flex-start;gap:8px}.settings-section{display:flex;flex-direction:column;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.settings-trigger{font-size:1.1rem;line-height:1;padding:6px 10px}@font-face{font-family:Cafe24Ssurround;src:url(https://cdn.jsdelivr.net/gh/fonts-archive/Cafe24Ssurround/Cafe24Ssurround.woff2) format("woff2");font-display:swap}.landing{display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;background:#d1dff5;color:#171a22}.landing-body{width:100%;max-width:360px;padding:24px;display:flex;flex-direction:column;align-items:center}.landing-title{margin:14px 0 2px;font-family:Cafe24Ssurround,SUIT Variable,sans-serif;font-size:2.75rem;letter-spacing:-.02em;color:#2f6fd0}.landing-tagline{margin:0;color:#4a5568;font-size:.95rem}.landing-actions{display:flex;flex-direction:column;gap:10px;margin-top:32px;width:100%}.landing-actions .btn.ghost{background:#ffffff80}.landing-actions .btn.oauth{box-shadow:0 2px 10px #17233d1f}.landing-hint{font-size:.78rem;line-height:1.5;margin:0;color:#5b6780}.sync-dot{width:8px;height:8px;border-radius:999px;background:var(--muted);flex:none}.sync-dot.syncing{background:var(--near);animation:pulse 1s ease-in-out infinite}.sync-dot.synced{background:var(--ok)}.sync-dot.offline,.sync-dot.error{background:var(--err)}@keyframes pulse{50%{opacity:.35}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:20px;z-index:100}.modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;max-width:440px;width:100%;display:flex;flex-direction:column;gap:12px}.modal h3{font-size:1.05rem}.modal-list{margin:0;padding-left:18px;font-size:.85rem;display:flex;flex-direction:column;gap:6px}.modal-list b{color:var(--text)}.modal-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.modal-actions .btn{flex:1;min-width:120px}.hero{text-align:center;padding:28px 0 8px}.hero h1{font-size:2.4rem;letter-spacing:-.02em}.accent{color:var(--accent)}.hero .sub{margin:8px 0 0;color:var(--muted)}.hero .avatar{margin-bottom:10px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 10px;text-align:center;display:flex;flex-direction:column;gap:2px}.stat-value{font-size:1.6rem;font-weight:700;line-height:1.1}.stat-value small{font-size:.8rem;font-weight:500;color:var(--muted);margin-left:1px}.stat-label{font-size:.78rem;color:var(--muted)}.home-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:8px}.empty-cta{text-align:center;background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius);padding:36px 20px}.empty-cta-icon{font-size:2rem;margin:0 0 8px;color:var(--accent)}.empty-cta-icon svg{width:44px;height:44px}.today-note{margin:0;text-align:center;color:var(--muted);font-size:.9rem}.bulk{width:100%;resize:vertical;font-family:var(--mono);font-size:.9rem;line-height:1.6;white-space:pre;overflow-x:auto}.tag{font-size:.75rem;padding:2px 8px;border-radius:999px;border:1px solid currentColor}.tag.warn{color:var(--near)}.tag.err{color:var(--err)}.notice-bar{margin:0;padding:10px 14px;border-radius:10px;background:color-mix(in srgb,var(--ok) 14%,transparent);border:1px solid color-mix(in srgb,var(--ok) 35%,transparent);color:var(--text);font-size:.9rem}.pron{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.pron-play{font:inherit;cursor:pointer;background:transparent;border:1px solid var(--line);border-radius:999px;padding:2px 8px;line-height:1.4;color:var(--accent)}.pron-play:hover{border-color:var(--accent)}.pron-play svg{width:14px;height:14px;display:block}.pron.sm .pron-play svg{width:12px;height:12px}.pron-ipa{font-family:var(--mono);color:var(--muted);font-size:.9em}.pron-none{font-size:.8rem}.pron-base{font-size:.75rem;font-style:italic}.pron.sm .pron-play{padding:1px 6px;font-size:.8rem}.pron.sm .pron-ipa{font-size:.78rem}.review{display:flex;flex-direction:column;gap:10px}.review-summary{display:flex;align-items:center;gap:8px;font-size:.9rem}.review-list{display:flex;flex-direction:column;gap:6px;max-height:420px;overflow-y:auto;padding-right:2px}.review-row{background:var(--surface-2);border:1px solid transparent;border-radius:10px;padding:8px 10px}.review-row.corrected{border-color:var(--near)}.review-row.dup{opacity:.55}.review-row-main{display:flex;align-items:center;gap:8px}.review-row-main .cell{flex:1;min-width:0}.review-tags{display:flex;gap:4px;flex:none}.review-note{margin:6px 0 0;font-size:.8rem}.search{min-width:180px}.deck-picker{min-width:220px;font-weight:600}.study-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.study-row{display:grid;grid-template-columns:minmax(96px,200px) 1fr;gap:18px;padding:14px 18px;border-bottom:1px solid var(--line)}.study-row.editing{grid-template-columns:auto minmax(96px,200px) 1fr;gap:12px}.study-drag-handle{align-self:center;display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--muted);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.study-drag-handle:hover{background:var(--surface-2);color:var(--text)}.study-drag-handle svg{width:18px;height:18px}.study-row.dragging{position:relative;z-index:1;background:var(--surface-2);box-shadow:0 4px 14px #0000001f}.study-row.dragging .study-drag-handle{cursor:grabbing;color:var(--accent)}.study-row:last-child{border-bottom:none}.study-row:nth-child(odd){background:var(--surface-2)}.study-row-en{display:flex;align-items:baseline;flex-wrap:wrap;row-gap:2px;column-gap:8px;min-width:0}.study-en{font-size:1.1rem;font-weight:700;color:var(--accent);overflow-wrap:break-word}.study-row-ko{font-size:1rem;line-height:1.6;color:var(--text);overflow-wrap:break-word;align-self:center}.study-ko-list{margin:0;padding-left:1.2em;display:flex;flex-direction:column;gap:4px}.study-ko-list li::marker{color:var(--accent);font-weight:700}@media(max-width:480px){.study-row{grid-template-columns:minmax(72px,120px) 1fr;gap:10px;padding:12px}.study-row.editing{grid-template-columns:auto minmax(72px,110px) 1fr;gap:8px}.study-en{font-size:1rem}}.word-table{width:100%;border-collapse:collapse;font-size:.9rem;display:block;overflow-x:auto}.word-table th{text-align:left;font-weight:500;color:var(--muted);font-size:.8rem;padding:6px 8px;border-bottom:1px solid var(--line)}.word-table td{padding:4px 8px;border-bottom:1px solid var(--line);vertical-align:middle}.word-table td.ko-cell{vertical-align:top;padding-top:8px;padding-bottom:8px}.word-table .en{font-family:var(--mono);color:var(--accent)}.word-table.compact td{padding:7px 8px}.word-table td.timeout{font-style:italic}.cell{width:100%;min-width:130px;background:transparent;border-color:transparent;padding:5px 7px}.cell:hover{border-color:var(--line)}.checkbox-col{width:1%;text-align:center}.checkbox-col input[type=checkbox]{width:22px;height:22px}.row-selected{background:color-mix(in srgb,var(--accent) 10%,transparent)}.bulk-move-bar{position:sticky;bottom:calc(var(--bottom-nav-h) + 8px);z-index:20;display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:12px 16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--accent);box-shadow:0 -4px 16px #00000040}.bulk-move-bar select{flex:1;min-width:140px}.preset-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.preset{font:inherit;cursor:pointer;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:10px 6px;color:var(--text);display:flex;flex-direction:column;gap:2px}.preset small{color:var(--muted);font-size:.75rem}.preset.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,transparent)}.mask-preview{background:var(--surface-2);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}.mask-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.mask-row code{font-size:1.05rem;letter-spacing:.04em}.small-label{font-size:.75rem;margin:10px 0 4px}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{font:inherit;font-size:.875rem;cursor:pointer;background:var(--surface-2);border:1px solid var(--line);color:var(--text);border-radius:999px;padding:6px 14px}.chip.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,transparent)}.radio-list{display:flex;flex-direction:column;gap:6px}.radio,.check{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;cursor:pointer}.check.sm{align-items:center;padding:0;border:none;gap:6px}.check.sm span{font-size:.85rem;color:var(--muted)}.radio.on{border-color:var(--accent)}.radio span,.check span{display:flex;flex-direction:column}.radio small,.check small{color:var(--muted);font-size:.8rem}.range-picker{margin:6px 0 4px 12px;padding:10px 12px;border-left:2px solid var(--accent);display:flex;flex-direction:column;gap:8px}.range-inputs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:.875rem;color:var(--muted)}.range-inputs input[type=number]{width:4.5em;text-align:center}.range-preview{display:flex;align-items:center;gap:8px}.range-preview .chip{cursor:default}.sticky-actions{position:sticky;bottom:var(--bottom-nav-h);padding:14px 0;background:linear-gradient(transparent,var(--bg) 35%);display:flex;justify-content:center}.quiz{min-height:100vh;min-height:100dvh;justify-content:flex-start;gap:14px}.quiz-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.progress-text{font-size:.9rem;color:var(--muted)}.clock{font-family:var(--mono);font-size:1.1rem;font-variant-numeric:tabular-nums;min-width:62px;text-align:right}.clock.ok{color:var(--ok)}.clock.warn{color:var(--near);font-weight:700}.clock.urgent{color:var(--err);font-weight:700;animation:pulse .7s ease-in-out infinite}.timer-track{position:relative;height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden}.timer-tick{position:absolute;top:0;width:2px;height:100%;background:var(--bg);opacity:.6}.score-strip{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.score-chip{font-size:.8rem;padding:4px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line)}.timer-fill{height:100%;transform-origin:left;transition:transform .1s linear,background .2s}.timer-fill.ok{background:var(--ok)}.timer-fill.warn{background:var(--near)}.timer-fill.urgent{background:var(--err)}.quiz-body{display:flex;flex-direction:column;align-items:center;gap:18px;padding-top:6vh;text-align:center}.meaning{margin:0;font-size:clamp(1.5rem,5vw,2.1rem);font-weight:600;letter-spacing:-.01em;max-width:22ch}.meaning-list{display:flex;flex-direction:column;gap:6px;max-width:32ch}.meaning.multi{font-size:clamp(1.1rem,3.6vw,1.5rem);display:flex;align-items:baseline;gap:8px;text-align:left}.meaning-num{flex:none;width:1.4em;height:1.4em;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);color:var(--accent);font-size:.6em;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.mask{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;font-family:var(--mono);font-size:clamp(1.4rem,5vw,2rem)}.slot{width:1ch;min-width:18px;border-bottom:3px solid var(--line);line-height:1.35;color:var(--muted)}.slot.shown{border-bottom-color:var(--accent);color:var(--text)}.slot.space{border:0;width:2.4ch;min-width:22px}.len-hint{margin:-10px 0 0}.answer-input{width:min(440px,100%);text-align:center;font-size:1.35rem;font-family:var(--mono);letter-spacing:.04em;padding:14px;border-radius:12px}.answer-input.v-correct,.answer-input.matched{border-color:var(--ok);outline-color:var(--ok)}.answer-input.v-near{border-color:var(--near);outline-color:var(--near)}.answer-input.v-wrong,.answer-input.v-timeout{border-color:var(--err);outline-color:var(--err)}.feedback{min-height:56px;display:flex;flex-direction:column;gap:4px;align-items:center}.verdict{font-weight:700;font-size:1.05rem}.verdict.correct{color:var(--ok)}.verdict.near{color:var(--near)}.verdict.wrong,.verdict.timeout{color:var(--err)}.answer-reveal{font-size:.95rem}.answer-reveal b{font-family:var(--mono);color:var(--accent);font-size:1.1rem}.hint-line{min-height:20px}.result-hero{text-align:center;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);padding:28px 20px}.result-hero.great{border-color:var(--ok)}.result-hero.needs-work{border-color:var(--near)}.result-label{margin:0;color:var(--muted);font-size:.9rem}.result-score{margin:6px 0 0;font-size:3rem;font-weight:800;line-height:1}.result-score .of{font-size:1.4rem;font-weight:500;color:var(--muted);margin-left:8px}.result-accuracy{margin:6px 0 0;color:var(--accent);font-size:1.2rem;font-weight:600}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.calendar-weekday{font-size:.75rem;padding-bottom:4px}.calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:999px;font-size:.85rem;color:var(--muted)}.calendar-day.claimed{background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--text);font-weight:700}.calendar-day.today{border:2px solid var(--accent)}.mission-bar{height:10px;border-radius:999px;background:var(--surface-2);overflow:hidden}.mission-bar-fill{height:100%;background:var(--accent);transform-origin:left;transition:transform .2s ease-out}.mission-count{margin:0;font-size:.85rem;color:var(--muted);font-variant-numeric:tabular-nums}.mission-list{display:flex;flex-direction:column;gap:14px}.mission-item{display:flex;flex-direction:column;gap:6px;padding-top:14px;border-top:1px solid var(--line)}.mission-item:first-child{padding-top:0;border-top:none}.mission-item-head{display:flex;align-items:center;gap:8px}.mission-item-head svg{width:18px;height:18px;color:var(--accent)}.mission-item-label{font-weight:700;flex:1}.mission-item-reward{font-size:.8rem}.mission-item-desc{margin:0;font-size:.85rem}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.badge{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;padding:14px 8px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface-2);opacity:.55}.badge.earned{opacity:1;border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface-2))}.badge-icon{font-size:1.6rem;color:var(--accent)}.badge-icon svg{width:28px;height:28px}.badge-label{font-size:.85rem;font-weight:600}.badge-tier{font-size:.78rem;color:var(--muted)}.badge-next{font-size:.72rem}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;color:#2b2b2b;flex-shrink:0}.avatar svg{stroke:currentColor}.avatar-sm{width:28px;height:28px}.avatar-sm svg{width:16px;height:16px}.avatar-md{width:48px;height:48px}.avatar-md svg{width:26px;height:26px}.avatar-lg{width:84px;height:84px}.avatar-lg svg{width:44px;height:44px}.avatar-lg img,.avatar-md img,.avatar-sm img{width:100%;height:100%;border-radius:999px;object-fit:cover}.wallet-balance{display:flex;align-items:center;gap:6px;font-weight:700}.wallet-balance .badge-icon{font-size:1.1rem}.decor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.decor-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer}.decor-item.equipped{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.decor-item:disabled{opacity:.55;cursor:not-allowed}.decor-swatch{width:48px;height:48px;border-radius:999px}.decor-item-label{font-size:.82rem;font-weight:600}.decor-item-price{font-size:.75rem;color:var(--muted)}.room-list{display:flex;flex-direction:column;gap:8px}.room-list-item{display:flex;flex-direction:column;gap:4px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:left;cursor:pointer}.room-list-item:hover{border-color:var(--accent)}.room-list-title{font-weight:700}.room-list-meta{font-size:.85rem}.room-list-item.add-new{align-items:center;justify-content:center;border-style:dashed;color:var(--accent);font-weight:600}.room-list-item.add-new:hover{background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.room-list-item.trash-item-block{cursor:default}.room-list-item.trash-item-block:hover{border-color:var(--line)}.trash-item{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px;width:100%}.trash-item-name{background:none;border:none;padding:0;font:inherit;text-align:left;cursor:pointer;color:var(--text)}.trash-item-count{font-weight:400}.trash-word-list{list-style:none;margin:10px 0 0;padding:10px 0 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px;font-size:.88rem;max-height:200px;overflow-y:auto}.trash-word-list .en{font-family:var(--mono)}.deck-detail-title{cursor:pointer;border-bottom:1px dashed var(--line)}.deck-rename-row{flex:1;align-items:center}.deck-rename-row input{flex:1;min-width:0}.player-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.player-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.player-more{margin-left:auto;flex-shrink:0;padding:4px 10px;line-height:1;color:var(--muted)}.player-more:hover,.player-more:focus-visible{color:var(--text)}.action-sheet-items{display:flex;flex-direction:column;gap:6px;margin:10px 0 4px}.action-sheet-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;padding:10px 12px}.action-sheet-item small{font-weight:400;font-size:.8rem}.danger-text{color:var(--err)}.player-dot{width:8px;height:8px;border-radius:999px;flex-shrink:0}.player-dot.online{background:var(--ok)}.player-dot.offline{background:var(--line)}.inline-medal{width:1.1em;height:1.1em;vertical-align:-.2em;margin-left:2px;display:inline-block;color:var(--accent)}.inline-medal.rank-gold{color:#d4a017}.inline-medal.rank-silver{color:#9aa0a6}.inline-medal.rank-bronze{color:#b5651d}.reaction-badge{display:inline-block;margin-left:4px;animation:reaction-pop .25s ease-out}@keyframes reaction-pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}.reaction-bar{display:flex;justify-content:center;gap:10px;margin-top:12px}.reaction-btn{font-size:1.5rem;line-height:1;padding:8px 10px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);cursor:pointer;transition:transform .1s,background .1s}.reaction-btn:hover{background:var(--surface)}.reaction-btn:active{transform:scale(.9)}.player-name{flex:1;min-width:0;overflow-wrap:break-word}.player-source{font-size:.8rem;flex-shrink:0;white-space:nowrap}.room-layout{height:calc(100vh - var(--bottom-nav-h));height:calc(100dvh - var(--bottom-nav-h));padding-bottom:16px;overflow:hidden}.room-meta{margin-top:-8px}.room-status{margin-top:-12px;font-size:.85rem}.source-picker-expanded{flex:1;min-height:0;overflow-y:auto}.source-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.source-summary-text{font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}@media(max-width:480px){.topbar{gap:8px}.topbar-right{gap:6px}.slot{min-width:14px}.slot.space{min-width:18px}.quiz-top{gap:8px}.clock{min-width:52px;font-size:1rem}.reaction-bar{gap:6px}.reaction-btn{font-size:1.25rem;padding:6px 8px}}.chat-panel{display:flex;flex-direction:column;flex:1;min-height:0}.chat-messages{display:flex;flex-direction:column;gap:6px;flex:1;min-height:0;overflow-y:auto;padding:4px 2px}.chat-msg{display:flex;gap:6px;flex-wrap:wrap;font-size:.92rem}.chat-msg.mine .chat-msg-name{color:var(--accent)}.chat-msg-name{font-weight:700;color:var(--muted)}.chat-msg-body{overflow-wrap:anywhere}.chat-input-row{margin-top:8px}.chat-input-row input{flex:1}.chat-msg-name-btn{background:none;border:none;padding:0;font:inherit;cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px}.chat-msg-name-btn:hover,.chat-msg-name-btn:focus-visible{color:var(--accent)}.chat-event{margin:4px 0;text-align:center;font-size:.82rem;color:var(--muted)}.room-event-flash{margin:-4px 0 8px}.report-reasons{display:flex;flex-direction:column;gap:2px;margin:10px 0}.report-reason{gap:8px;cursor:pointer}.report-also-block{gap:8px;margin-top:10px;font-size:.9rem;cursor:pointer}.modal textarea{width:100%;resize:vertical}.blocked-row{gap:8px;padding:6px 0}.blocked-row .blocked-name{flex:1;overflow-wrap:anywhere}.debug-strip{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;text-align:center;opacity:.7}.friends-entry{width:100%;border:none;background:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left}.friends-entry-label{flex:1}.badge-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:.75rem;font-weight:700;line-height:1}@media(max-width:560px){.stat-grid,.preset-row{grid-template-columns:repeat(2,1fr)}.row.between{align-items:stretch}.screen{padding:16px 14px calc(var(--bottom-nav-h) + 16px)}}
