.search-overlay[data-v-d9dd7422]{z-index:500;padding:max(70px, env(safe-area-inset-top,0px) + 42px) 20px 24px;background:color-mix(in oklch, var(--ink) 58%, transparent);justify-content:center;align-items:flex-start;animation:.14s ease-out search-fade-d9dd7422;display:flex;position:fixed;inset:0}.search-panel[data-v-d9dd7422]{border:1px solid var(--cream-deep);border-top:3px solid var(--accent);background:linear-gradient(135deg, color-mix(in oklch, var(--accent) 9%, transparent), transparent 42%), linear-gradient(180deg, var(--cream), var(--cream-warm));width:min(720px,100%);max-height:min(760px,100dvh - 104px);color:var(--ink);box-shadow:0 22px 56px color-mix(in oklch, var(--ink) 28%, transparent), inset 0 1px 0 oklch(100% 5.96046e-8 none/.5);border-radius:10px;flex-direction:column;animation:.16s ease-out search-panel-in-d9dd7422;display:flex;overflow:hidden}.search-input-shell[data-v-d9dd7422]{border-bottom:1px solid var(--line-soft);background:color-mix(in oklch, var(--cream) 68%, transparent);align-items:center;gap:12px;padding:22px 24px 18px;display:flex}.search-icon[data-v-d9dd7422]{width:22px;height:22px;fill:var(--accent-deep);flex:none}.search-input-shell input[data-v-d9dd7422]{appearance:none;width:100%;min-width:0;color:var(--ink);font:inherit;background:0 0;border:0;outline:0;font-size:24px;font-weight:700;line-height:1.2}.search-input-shell input[data-v-d9dd7422]::placeholder{color:var(--ink-mute);opacity:.78}.search-results[data-v-d9dd7422]{flex-direction:column;gap:6px;padding:12px;display:flex;overflow-y:auto}.search-result[data-v-d9dd7422]{appearance:none;width:100%;color:var(--ink);text-align:left;font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:minmax(58px,auto) minmax(0,1fr) auto;align-items:center;gap:16px;padding:13px 14px;transition:background .12s,border-color .12s;display:grid}.search-result[data-v-d9dd7422]:hover,.search-result.active[data-v-d9dd7422]{background:var(--cream);border-color:var(--line-soft)}.search-result[data-v-d9dd7422]:focus-visible{outline:3px solid color-mix(in oklch, var(--accent) 24%, transparent);outline-offset:2px}.result-glyph[data-v-d9dd7422]{min-width:44px;font-family:"DM Serif Display", var(--thai-font), serif;color:var(--primary);white-space:nowrap;font-size:42px;line-height:1}.result-main[data-v-d9dd7422]{flex-direction:column;gap:6px;min-width:0;display:flex}.result-title[data-v-d9dd7422]{min-width:0;color:var(--ink);align-items:baseline;gap:10px;font-size:15px;font-weight:800;display:flex}.result-title span[data-v-d9dd7422]:first-child,.result-latin[data-v-d9dd7422]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.result-latin[data-v-d9dd7422]{font-family:"JetBrains Mono", var(--thai-font), monospace;color:var(--ink-mute);font-size:12px;font-weight:700}.result-hl[data-v-d9dd7422]{background:color-mix(in oklch, var(--accent) 42%, transparent);color:inherit;border-radius:3px;padding:0 1px}.result-meta[data-v-d9dd7422]{min-width:0;color:var(--accent-deep);align-items:center;gap:8px;font-size:12px;font-weight:700;display:flex}.result-type[data-v-d9dd7422]{font-family:"JetBrains Mono", var(--thai-font), monospace;text-transform:uppercase;color:var(--ink-mute);font-size:10px}.result-level[data-v-d9dd7422]{border:1px solid var(--line-soft);background:var(--cream-warm);color:var(--ink-soft);white-space:nowrap;border-radius:999px;justify-self:end;padding:5px 8px;font-size:12px;font-weight:800}.result-side[data-v-d9dd7422]{justify-self:end;align-items:center;gap:10px;min-width:0;display:inline-flex}.search-result-actions[data-v-d9dd7422]{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.search-audio-btn[data-v-d9dd7422],.search-edit-btn[data-v-d9dd7422]{appearance:none;border:1px solid color-mix(in oklch, var(--primary) 64%, black);background:var(--primary);color:var(--cream);cursor:pointer;font:inherit;border-radius:8px;font-size:12px;font-weight:900;line-height:1;transition:background .12s,transform .12s,box-shadow .12s}.search-audio-btn[data-v-d9dd7422]{place-items:center;width:34px;height:34px;padding:0;display:inline-grid}.search-edit-btn[data-v-d9dd7422]{white-space:nowrap;padding:9px 12px}.search-audio-btn svg[data-v-d9dd7422]{fill:currentColor;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.search-audio-btn[data-v-d9dd7422]:hover:not(:disabled),.search-edit-btn[data-v-d9dd7422]:hover{background:var(--accent-deep);box-shadow:0 8px 18px color-mix(in oklch, var(--primary) 18%, transparent);transform:translateY(-1px)}.search-audio-btn[data-v-d9dd7422]:disabled{cursor:default;opacity:.46}.search-audio-btn[data-v-d9dd7422]:focus-visible,.search-edit-btn[data-v-d9dd7422]:focus-visible{outline:3px solid color-mix(in oklch, var(--accent) 28%, transparent);outline-offset:2px}.search-state[data-v-d9dd7422]{color:var(--ink-mute);text-align:center;padding:38px 28px 42px;font-size:14px;font-weight:800}.search-state.error[data-v-d9dd7422]{color:var(--danger)}.search-skeleton[data-v-d9dd7422]{background:color-mix(in oklch, var(--cream) 54%, transparent);border-radius:8px;gap:10px;padding:14px;display:grid}.search-skeleton .skeleton-line-lg[data-v-d9dd7422]{width:62%}.search-skeleton .skeleton-line-sm[data-v-d9dd7422]{width:38%}@keyframes search-fade-d9dd7422{0%{opacity:0}to{opacity:1}}@keyframes search-panel-in-d9dd7422{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (width<=640px){.search-overlay[data-v-d9dd7422]{padding:12px 10px calc(84px + env(safe-area-inset-bottom,0px));align-items:stretch}.search-panel[data-v-d9dd7422]{border-radius:9px;max-height:100%}.search-input-shell[data-v-d9dd7422]{padding:18px 16px 15px}.search-input-shell input[data-v-d9dd7422]{font-size:18px}.search-result[data-v-d9dd7422]{grid-template-columns:minmax(52px,auto) minmax(0,1fr) auto;grid-template-areas:"glyph main side";align-items:center;gap:10px;padding:11px 10px}.result-glyph[data-v-d9dd7422]{grid-area:glyph;align-self:center;font-size:36px}.result-title[data-v-d9dd7422]{flex-direction:column;align-items:flex-start;gap:2px}.result-main[data-v-d9dd7422]{grid-area:main}.result-side[data-v-d9dd7422]{grid-area:side;place-self:center end;gap:8px}.search-result-actions[data-v-d9dd7422]{gap:5px}.search-audio-btn[data-v-d9dd7422]{width:38px;height:38px}}.tone-contour[data-v-53aca0de]{width:var(--tone-contour-width,50px);height:var(--tone-contour-height,38px);box-sizing:border-box;justify-content:center;place-self:center;align-items:center;gap:4px;display:flex;position:relative}.tone-contour[data-v-53aca0de]:after{content:"";opacity:var(--tone-contour-line-opacity,.18);border-top:1px solid;position:absolute;inset:50% 2px auto}.tone-contour i[data-v-53aca0de]{z-index:1;background:currentColor;border-radius:50%;width:6px;height:6px;position:relative}.header[data-v-ecc4531d]{z-index:50;border-bottom:1px solid color-mix(in oklch, var(--line-soft) 60%, transparent);background:#f7f2e2eb;background:color-mix(in oklch, var(--cream) 92%, transparent);-webkit-backdrop-filter:blur(16px)saturate(1.4);justify-content:space-between;align-items:center;gap:18px;padding:18px 36px;display:flex;position:sticky;top:0}.header-left[data-v-ecc4531d]{align-items:center;gap:40px;min-width:0;display:flex}.brand[data-v-ecc4531d]{border-radius:10px;align-items:center;gap:12px;text-decoration:none;display:flex}.brand[data-v-ecc4531d]:focus-visible{outline:2px solid var(--primary);outline-offset:4px}.brand-mark[data-v-ecc4531d]{flex:0 0 42px;width:42px;height:42px;display:block}.brand-logo[data-v-ecc4531d]{object-fit:contain;width:100%;height:100%;display:block}.brand-name[data-v-ecc4531d]{font-family:"DM Serif Display", var(--thai-font), serif;color:var(--ink);letter-spacing:.005em;font-size:22px}.brand-name .brand-accent[data-v-ecc4531d]{padding-right:1px;font-style:italic}.brand-home-icon[data-v-ecc4531d]{fill:currentColor;width:20px;height:20px;display:none}.nav[data-v-ecc4531d]{align-items:center;gap:6px;display:flex}.sidebar-status[data-v-ecc4531d]{display:none}.mobile-nav-toggle[data-v-ecc4531d]{appearance:none;border:1px solid var(--line-soft);background:color-mix(in oklch, var(--cream) 76%, white);width:40px;height:40px;color:var(--ink);cursor:pointer;box-shadow:inset 0 1px 0 oklch(100% 5.96046e-8 none/.65), 0 4px 12px color-mix(in oklch, var(--ink) 8%, transparent);border-radius:11px;place-content:center;padding:0;display:none}.hamburger-icon[data-v-ecc4531d]{width:20px;height:20px;display:block;overflow:visible}.hamburger-line[data-v-ecc4531d]{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:50%;transition:transform .2s,opacity .14s}.mobile-nav-backdrop[data-v-ecc4531d]{display:none}.nav-trigger[data-v-ecc4531d]{box-sizing:border-box;width:auto;min-width:62px;height:32px;color:var(--ink-soft);appearance:none;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:8px 14px;font-family:inherit;font-size:13.5px;font-weight:500;line-height:1;text-decoration:none;transition:background .15s,color .15s;display:flex}.nav-trigger[data-v-ecc4531d]:disabled{opacity:.62;cursor:wait}a.nav-trigger[data-v-ecc4531d]{text-decoration:none}.header-gate-overlay[data-v-ecc4531d]{z-index:220;background:color-mix(in oklch, var(--ink) 42%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.header-gate-modal[data-v-ecc4531d]{border:1px solid var(--cream-deep);border-top:3px solid var(--accent);background:linear-gradient(135deg, color-mix(in oklch, var(--accent) 11%, transparent), transparent 42%), linear-gradient(180deg, var(--cream), var(--cream-warm));width:min(420px,100%);color:var(--ink);box-shadow:0 24px 70px color-mix(in oklch, var(--ink) 28%, transparent), inset 0 1px 0 oklch(100% 5.96046e-8 none/.55);border-radius:8px;padding:30px;position:relative}.header-gate-close[data-v-ecc4531d]{border:1px solid var(--line-soft);width:32px;height:32px;color:var(--ink-soft);cursor:pointer;background:oklch(100% 5.96046e-8 none/.52);border-radius:50%;font-size:22px;line-height:1;position:absolute;top:14px;right:14px}.header-gate-kicker[data-v-ecc4531d]{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 9px;font-size:12px;font-weight:800}.header-gate-modal h2[data-v-ecc4531d]{font-family:"DM Serif Display", var(--thai-font), serif;color:var(--ink);margin:0 0 12px;font-size:29px;line-height:1.05}.header-gate-modal p[data-v-ecc4531d]:not(.header-gate-kicker){color:var(--ink-soft);margin:0;font-size:15px;line-height:1.6}.header-gate-progress[data-v-ecc4531d]{background:color-mix(in oklch, var(--cream-deep) 80%, white);border-radius:999px;height:10px;margin:22px 0;overflow:hidden}.header-gate-progress span[data-v-ecc4531d]{border-radius:inherit;background:linear-gradient(90deg, var(--accent), var(--primary));height:100%;display:block}.header-gate-actions[data-v-ecc4531d]{gap:10px;display:flex}.header-gate-primary[data-v-ecc4531d],.header-gate-secondary[data-v-ecc4531d]{cursor:pointer;border-radius:8px;min-height:42px;font-family:inherit;font-weight:800}.header-gate-primary[data-v-ecc4531d]{background:var(--primary);color:#fff;border:0;flex:1}.header-gate-secondary[data-v-ecc4531d]{border:1px solid var(--line-soft);color:var(--ink-soft);background:oklch(100% 5.96046e-8 none/.55);padding:0 16px}.nav-icon[data-v-ecc4531d]{opacity:.78;object-fit:contain;flex:none;width:13px;height:13px}.nav-new-badge[data-v-ecc4531d]{background:var(--accent);color:var(--cream);font-family:"JetBrains Mono", var(--thai-font), monospace;letter-spacing:.08em;border-radius:5px;flex:none;padding:3px 5px 2px;font-size:8px;font-weight:800;line-height:1}.nav-search-icon[data-v-ecc4531d]{fill:currentColor;opacity:.78;flex:none;width:14px;height:14px}.nav-trigger:hover .nav-icon[data-v-ecc4531d],.nav-trigger.on .nav-icon[data-v-ecc4531d],.nav-trigger:hover .nav-search-icon[data-v-ecc4531d],.nav-trigger.on .nav-search-icon[data-v-ecc4531d]{opacity:1}.nav-trigger[data-v-ecc4531d]:hover{background:var(--cream-warm);color:var(--ink)}.nav-trigger.on[data-v-ecc4531d]{color:var(--primary);background:var(--cream-warm)}.nav-item[data-v-ecc4531d]{position:relative}.nav-item.open .nav-trigger[data-v-ecc4531d]{color:var(--primary);background:var(--cream-warm)}.nav-label-stack[data-v-ecc4531d]{place-items:center;width:100%;height:20px;display:grid;position:relative;overflow:hidden}.nav-label-stack span[data-v-ecc4531d]{grid-area:1/1;transition:opacity .22s,transform .28s cubic-bezier(.2,.7,.2,1)}.nav-label-stack .label-thai[data-v-ecc4531d]{opacity:0;font-size:16px;font-weight:700;line-height:1.1;transform:translateY(-120%)}.nav-item.open .label-en[data-v-ecc4531d],.nav-trigger.on .label-en[data-v-ecc4531d]{opacity:0;transform:translateY(120%)}.nav-item.open .label-thai[data-v-ecc4531d],.nav-trigger.on .label-thai[data-v-ecc4531d]{opacity:1;transform:translateY(0)}.nav-popover[data-v-ecc4531d]{z-index:30;border:1px solid var(--cream-deep);border-top:3px solid var(--accent);background:linear-gradient(135deg, color-mix(in oklch, var(--accent) 12%, transparent), transparent 38%), linear-gradient(180deg, var(--cream), var(--cream-warm));width:200px;color:var(--ink);box-shadow:0 16px 40px color-mix(in oklch, var(--ink) 16%, transparent), inset 0 1px 0 oklch(100% 5.96046e-8 none/.5);border-radius:8px;margin-left:-100px;padding:22px 26px 24px;animation:.16s ease-out nav-pop-ecc4531d;position:absolute;top:calc(100% + 14px);left:50%}.nav-item--levels .nav-popover[data-v-ecc4531d]{width:min(680px,100vw - 40px);margin-left:0;left:-124px}@keyframes nav-pop-ecc4531d{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.level-row[data-v-ecc4531d]{grid-template-columns:118px 1fr;align-items:center;gap:12px;display:grid}.level-row+.level-row[data-v-ecc4531d]{margin-top:12px}.nav-popover-state[data-v-ecc4531d]{color:var(--ink-mute);padding:10px 2px;font-size:13px;font-weight:600}.nav-popover-state.error[data-v-ecc4531d]{color:var(--danger)}.levels-context-message[data-v-ecc4531d]{border:1px solid color-mix(in oklch, var(--accent) 24%, var(--line-soft));background:color-mix(in oklch, var(--accent) 8%, var(--cream));color:var(--ink-soft);border-radius:8px;flex-direction:column;gap:4px;margin-bottom:14px;padding:12px 14px;font-size:13px;font-weight:650;line-height:1.35;display:flex}.levels-context-message strong[data-v-ecc4531d]{color:var(--accent-deep);font-size:14px;font-weight:900}.levels-dashboard-link[data-v-ecc4531d]{color:var(--accent-deep);text-underline-offset:3px;font-weight:950;text-decoration:underline;text-decoration-thickness:2px}.levels-dashboard-link[data-v-ecc4531d]:hover,.levels-dashboard-link[data-v-ecc4531d]:focus-visible{color:var(--primary-deep);outline:none}.level-row-label[data-v-ecc4531d]{min-width:0;color:var(--ink-soft);flex-direction:column;gap:2px;font-size:14px;font-weight:700;line-height:1.1;display:flex}.level-row-label span[data-v-ecc4531d]{color:var(--accent-deep)}.level-row-label small[data-v-ecc4531d]{letter-spacing:.12em;text-transform:uppercase;color:var(--primary);font-size:11px;font-weight:600}.level-grid[data-v-ecc4531d]{grid-template-columns:repeat(10,minmax(0,1fr));gap:7px;display:grid}.level-grid--tones[data-v-ecc4531d]{grid-template-columns:repeat(6,minmax(0,1fr))}.level-cell[data-v-ecc4531d]{appearance:none;border:1px solid var(--cream-deep);background:color-mix(in oklch, var(--cream) 72%, white);min-height:48px;color:var(--ink);font:inherit;cursor:pointer;border-radius:6px;font-size:15px;font-weight:600;transition:background .15s,border-color .15s,transform .12s}.level-cell[data-v-ecc4531d]:hover,.level-cell[data-v-ecc4531d]:focus-visible{background:color-mix(in oklch, var(--accent) 16%, var(--cream));border-color:var(--accent-soft);outline:none;transform:translateY(-1px)}.level-cell.current[data-v-ecc4531d]{border-color:var(--accent);background:color-mix(in oklch, var(--accent) 24%, var(--cream));color:var(--accent-deep);box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--accent) 28%, transparent)}.level-cell.completed[data-v-ecc4531d]{border-color:color-mix(in oklch, var(--primary) 58%, var(--cream-deep));background:color-mix(in oklch, var(--primary) 12%, var(--cream));color:var(--primary-deep)}.level-cell.locked[data-v-ecc4531d]{color:var(--ink-mute);background:color-mix(in oklch, var(--cream-deep) 42%, var(--cream))}.level-cell--tone[data-v-ecc4531d]{flex-direction:column;justify-content:center;align-items:stretch;gap:4px;min-width:0;min-height:70px;padding:7px 5px 6px;display:flex}.level-tone-name[data-v-ecc4531d]{text-align:center;white-space:normal;justify-content:center;align-items:center;min-height:23px;font-size:10px;font-weight:750;line-height:1.15;display:flex}.levels-coming-soon[data-v-ecc4531d]{border:1px dashed color-mix(in oklch, var(--accent) 36%, var(--line-soft));background:color-mix(in oklch, var(--accent) 6%, transparent);color:var(--accent-deep);text-align:center;border-radius:8px;margin-top:14px;padding:10px 14px;font-size:12px;font-weight:700}.dev-btn[data-v-ecc4531d]{appearance:none;border:1px dashed var(--danger);background:color-mix(in oklch, var(--danger) 8%, transparent);color:var(--danger);font:inherit;cursor:pointer;border-radius:6px;padding:6px 12px;font-size:11px;font-weight:700;transition:background .12s}.dev-btn[data-v-ecc4531d]:hover{background:color-mix(in oklch, var(--danger) 16%, transparent)}.editor-btn[data-v-ecc4531d]{appearance:none;border:2px solid color-mix(in oklch, var(--accent) 46%, var(--primary));background:linear-gradient(135deg, color-mix(in oklch, var(--accent) 24%, transparent), transparent 58%), var(--primary);color:var(--cream);font:inherit;letter-spacing:.02em;cursor:pointer;text-transform:uppercase;box-shadow:inset 0 1px 0 oklch(100% 5.96046e-8 none/.18), 0 10px 24px color-mix(in oklch, var(--primary) 24%, transparent), 0 0 0 4px color-mix(in oklch, var(--accent) 12%, transparent);border-radius:10px;padding:11px 18px;font-size:14px;font-weight:950;line-height:1;transition:background .12s,border-color .12s,box-shadow .12s,transform .12s}.editor-btn[data-v-ecc4531d]:hover{background:linear-gradient(135deg, color-mix(in oklch, var(--accent) 30%, transparent), transparent 58%), var(--primary-deep);border-color:var(--accent);box-shadow:inset 0 1px 0 oklch(100% 5.96046e-8 none/.2), 0 14px 32px color-mix(in oklch, var(--primary) 30%, transparent), 0 0 0 5px color-mix(in oklch, var(--accent) 16%, transparent);transform:translateY(-2px)}.user-area[data-v-ecc4531d]{align-items:center;gap:14px;min-width:0;display:flex}.learning-availability[data-v-ecc4531d]{align-items:center;gap:8px;min-width:0;display:flex}.availability-badge[data-v-ecc4531d]{min-height:32px;font:inherit;white-space:nowrap;cursor:pointer;border-radius:7px;align-items:center;gap:8px;padding:6px 11px;font-size:12px;font-weight:800;line-height:1;text-decoration:none;transition:transform .16s,border-color .16s,background .16s,box-shadow .16s;display:inline-flex}.availability-badge.available[data-v-ecc4531d]{color:var(--cream);box-shadow:inset 0 1px 0 oklch(100% 5.96046e-8 none/.22), 0 8px 18px color-mix(in oklch, var(--ink) 10%, transparent);border:1px solid #0000}.availability-badge.empty[data-v-ecc4531d]{background:var(--cream-warm);border:1px dashed var(--line-soft);color:var(--ink-soft);box-shadow:none}.availability-badge[data-v-ecc4531d]:hover,.availability-badge[data-v-ecc4531d]:focus-visible{transform:translateY(-1px)}.availability-badge[data-v-ecc4531d]:disabled{cursor:not-allowed}.availability-badge[data-v-ecc4531d]:disabled:hover,.availability-badge[data-v-ecc4531d]:disabled:focus-visible{transform:none}.availability-badge[data-v-ecc4531d]:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.availability-badge--lessons.available[data-v-ecc4531d]{background:linear-gradient(155deg, var(--primary), var(--primary-deep))}.availability-badge--reviews.available[data-v-ecc4531d]{background:linear-gradient(155deg, var(--accent), var(--accent-deep))}.availability-count[data-v-ecc4531d]{min-width:20px;height:20px;color:inherit;background:oklch(100% 5.96046e-8 none/.22);border-radius:6px;place-items:center;padding-inline:6px;display:inline-grid}.availability-badge.empty .availability-count[data-v-ecc4531d]{background:var(--cream-deep);color:var(--ink-mute)}.mobile-availability-link[data-v-ecc4531d]{display:none}.streak-badge[data-v-ecc4531d]{background:color-mix(in oklch, var(--accent) 10%, transparent);color:var(--accent-deep);border-radius:7px;align-items:center;gap:8px;padding:7px 12px;font-size:13px;font-weight:600;display:flex}.coin-badge[data-v-ecc4531d]{border:1px solid color-mix(in oklch, var(--accent) 24%, var(--line-soft));background:color-mix(in oklch, var(--accent) 11%, var(--cream));min-width:0;color:var(--accent-deep);white-space:nowrap;border-radius:7px;align-items:center;gap:7px;padding:6px 11px;font-size:13px;font-weight:800;line-height:1;display:flex}.coin-badge img[data-v-ecc4531d]{flex:none;width:18px;height:18px;display:block}.streak-badge .flame[data-v-ecc4531d]{font-size:14px}.level-badge[data-v-ecc4531d]{background:var(--cream-warm);border:1px solid var(--line-soft);color:var(--ink-soft);border-radius:7px;align-items:center;gap:8px;padding:7px 12px;font-size:12.5px;font-weight:600;display:flex}.level-dot[data-v-ecc4531d]{background:var(--accent);width:6px;height:6px;box-shadow:0 0 0 3px color-mix(in oklch, var(--accent) 18%, transparent);border-radius:50%}.account[data-v-ecc4531d]{position:relative}.avatar[data-v-ecc4531d]{appearance:none;background:linear-gradient(150deg, var(--primary), var(--primary-deep));width:36px;height:36px;color:var(--cream);font-family:"DM Serif Display", var(--thai-font), serif;border:2px solid var(--cream-deep);cursor:pointer;border-radius:50%;place-items:center;padding:0;font-size:16px;transition:transform .12s,box-shadow .12s;display:grid;position:relative;overflow:hidden}.avatar[data-v-ecc4531d]:hover{transform:scale(1.05)}.avatar[data-v-ecc4531d]:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.avatar img[data-v-ecc4531d]{object-fit:cover;width:100%;height:100%;display:block}.account-menu[data-v-ecc4531d]{border:1px solid var(--cream-deep);border-top:3px solid var(--accent);background:linear-gradient(135deg, color-mix(in oklch, var(--accent) 10%, transparent), transparent 42%), linear-gradient(180deg, var(--cream), var(--cream-warm));width:260px;box-shadow:0 16px 40px color-mix(in oklch, var(--ink) 16%, transparent), inset 0 1px 0 oklch(100% 5.96046e-8 none/.5);border-radius:8px;padding:14px;animation:.16s ease-out nav-pop-ecc4531d;position:absolute;top:calc(100% + 12px);right:0}.account-head[data-v-ecc4531d]{border-bottom:1px solid var(--line-soft);align-items:center;gap:12px;margin-bottom:10px;padding:6px 4px 14px;display:flex}.account-avatar[data-v-ecc4531d]{background:linear-gradient(150deg, var(--primary), var(--primary-deep));width:42px;height:42px;color:var(--cream);font-family:"DM Serif Display", var(--thai-font), serif;border-radius:50%;flex:none;place-items:center;font-size:18px;display:grid;overflow:hidden}.account-avatar img[data-v-ecc4531d]{object-fit:cover;width:100%;height:100%;display:block}.account-copy[data-v-ecc4531d]{min-width:0}.account-name[data-v-ecc4531d]{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:800;line-height:1.2;overflow:hidden}.account-email[data-v-ecc4531d]{color:var(--ink-mute);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:12px;overflow:hidden}.account-action[data-v-ecc4531d]{appearance:none;text-align:left;width:100%;font:inherit;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:10px;padding:10px 11px;font-size:13px;font-weight:800;display:flex}.account-action-icon[data-v-ecc4531d]{fill:currentColor;opacity:.74;flex:none;width:14px;height:14px}.account-action:hover .account-action-icon[data-v-ecc4531d]{opacity:1}.account-action[data-v-ecc4531d]:disabled{opacity:.6;cursor:wait}.account-action[data-v-ecc4531d]:hover{background:var(--cream);color:var(--primary)}.account-toggle-label[data-v-ecc4531d]{flex:1}.account-switch[data-v-ecc4531d]{background:var(--cream-deep);width:30px;height:18px;box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--ink) 14%, transparent);border-radius:999px;flex:none;transition:background .16s;position:relative}.account-switch>span[data-v-ecc4531d]{width:12px;height:12px;box-shadow:0 1px 3px color-mix(in oklch, var(--ink) 22%, transparent);background:#fff;border-radius:50%;transition:transform .16s;position:absolute;top:3px;left:3px}.account-switch.on[data-v-ecc4531d]{background:var(--primary)}.account-switch.on>span[data-v-ecc4531d]{transform:translate(12px)}.account-submenu[data-v-ecc4531d]{gap:1px;margin:-3px 0 4px 25px;padding-left:10px;display:grid;position:relative}.account-submenu[data-v-ecc4531d]:before{content:"";background:color-mix(in oklch, var(--line-soft) 82%, transparent);width:1px;position:absolute;top:5px;bottom:5px;left:0}.account-subaction[data-v-ecc4531d]{appearance:none;width:100%;color:var(--ink-mute);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:6px 9px;font-size:12px;font-weight:700;line-height:1.2;display:flex}.account-subaction-icon[data-v-ecc4531d]{fill:currentColor;opacity:.72;flex:none;width:12px;height:12px}.account-subaction[data-v-ecc4531d]:hover,.account-subaction[data-v-ecc4531d]:focus-visible{background:var(--cream);color:var(--primary)}.account-subaction:hover .account-subaction-icon[data-v-ecc4531d],.account-subaction:focus-visible .account-subaction-icon[data-v-ecc4531d]{opacity:1}.account-subaction[data-v-ecc4531d]:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.account-action.logout[data-v-ecc4531d]:hover,.account-action.danger[data-v-ecc4531d]{color:var(--danger)}.account-action.danger[data-v-ecc4531d]:hover{background:color-mix(in oklch, var(--danger) 9%, transparent)}.account-error[data-v-ecc4531d]{color:var(--danger);margin-top:8px;padding:0 11px 4px;font-size:12px;font-weight:700}@media (width<=1120px){.header[data-v-ecc4531d]{gap:12px;padding:14px 22px}.header-left[data-v-ecc4531d]{gap:20px}.user-area[data-v-ecc4531d]{gap:8px}.nav[data-v-ecc4531d]{gap:2px}.nav-trigger[data-v-ecc4531d]{width:auto;min-width:62px}.dev-btn[data-v-ecc4531d]{text-overflow:ellipsis;white-space:nowrap;max-width:116px;padding-inline:9px;overflow:hidden}.editor-btn[data-v-ecc4531d]{text-overflow:ellipsis;white-space:nowrap;max-width:150px;padding-inline:9px;font-size:12px;overflow:hidden}.streak-badge[data-v-ecc4531d],.availability-badge[data-v-ecc4531d],.coin-badge[data-v-ecc4531d],.level-badge[data-v-ecc4531d]{padding-inline:10px}}@media (width<=900px){.header[data-v-ecc4531d]{border-top:1px solid color-mix(in oklch, var(--line-soft) 75%, transparent);background:#f7f2e2f0;background:color-mix(in oklch, var(--cream) 94%, transparent);box-shadow:0 -12px 34px color-mix(in oklch, var(--ink) 10%, transparent);-webkit-backdrop-filter:none;z-index:90;border-bottom:0;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;padding:12px 16px;display:grid;position:fixed;inset:auto 0 0}.header-left[data-v-ecc4531d]{display:contents}.brand[data-v-ecc4531d]{border:1px solid var(--line-soft);background:var(--cream-warm);width:42px;height:42px;color:var(--accent-deep);border-radius:7px;grid-area:1/2;justify-content:center;justify-self:center;min-width:0;box-shadow:inset 0 1px oklch(100% 5.96046e-8 none/.42)}.brand-mark[data-v-ecc4531d],.brand-name[data-v-ecc4531d]{display:none}.brand-home-icon[data-v-ecc4531d]{display:block}.mobile-availability-link[data-v-ecc4531d]{z-index:95;grid-row:1;align-self:center;min-height:36px;padding-inline:9px;display:inline-flex}.mobile-availability-link--lessons[data-v-ecc4531d]{grid-column:1;justify-self:end;margin-right:10px}.mobile-availability-link--reviews[data-v-ecc4531d]{grid-column:3;justify-self:start;margin-left:10px}.mobile-nav-toggle[data-v-ecc4531d]{z-index:110;grid-area:1/3;justify-self:end;display:grid}.mobile-nav-toggle.open[data-v-ecc4531d]{border-color:var(--line-soft);background:color-mix(in oklch, var(--cream) 76%, white);color:var(--ink)}.mobile-nav-toggle.open .hamburger-line[data-v-ecc4531d]:first-child{transform:translateY(5px)rotate(45deg)}.mobile-nav-toggle.open .hamburger-line[data-v-ecc4531d]:nth-child(2){opacity:0}.mobile-nav-toggle.open .hamburger-line[data-v-ecc4531d]:nth-child(3){transform:translateY(-5px)rotate(-45deg)}.nav[data-v-ecc4531d]{z-index:100;width:min(360px,100vw - 32px);height:100dvh;padding:24px 18px calc(92px + env(safe-area-inset-bottom,0px));background:var(--cream);border-left:1px solid var(--line-soft);box-shadow:-18px 0 40px -24px color-mix(in oklch, var(--ink) 45%, transparent);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;opacity:0;pointer-events:none;visibility:hidden;flex-direction:column;align-items:stretch;gap:10px;transition:transform .26s cubic-bezier(.2,.7,.2,1),opacity .18s,visibility 0s linear .26s;display:flex;position:fixed;top:0;bottom:0;right:0;overflow:hidden auto;transform:translate(100%)}.nav[data-v-ecc4531d]:before{content:"";background:linear-gradient(90deg, var(--accent), var(--accent-deep), var(--primary));opacity:.9;width:min(360px,100vw - 32px);height:3px;position:fixed;top:0;right:0}.nav.nav-open[data-v-ecc4531d]{opacity:1;pointer-events:auto;visibility:visible;transition:transform .3s cubic-bezier(.2,.7,.2,1),opacity .2s,visibility;transform:translate(0)}.nav-item[data-v-ecc4531d]{border:1px solid var(--line-soft);background:var(--cream-warm);border-radius:12px;transition:border-color .18s,box-shadow .18s;position:static;overflow:hidden}.nav-item.open[data-v-ecc4531d]{min-height:0;box-shadow:0 8px 22px -10px color-mix(in oklch, var(--ink) 30%, transparent);flex-direction:column;display:flex}.nav-item--levels.open[data-v-ecc4531d]{border-color:color-mix(in oklch, var(--accent) 55%, transparent)}.nav-item:nth-child(2).open[data-v-ecc4531d]{border-color:color-mix(in oklch, var(--accent-deep) 55%, transparent)}.nav-item:nth-child(3).open[data-v-ecc4531d]{border-color:color-mix(in oklch, var(--primary) 55%, transparent)}.nav-trigger[data-v-ecc4531d]{width:100%;height:auto;min-height:58px;color:var(--ink);background:0 0;border:0;border-radius:0;justify-content:flex-start;align-items:center;padding:14px 16px;display:flex}.nav-trigger[data-v-ecc4531d]:hover,.nav-trigger.on[data-v-ecc4531d],.nav-item.open .nav-trigger[data-v-ecc4531d]{color:var(--ink);background:0 0}.nav-item--levels>.nav-trigger[data-v-ecc4531d]{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:4px}.nav-item--levels>.nav-trigger .nav-label-stack[data-v-ecc4531d]{align-items:center}.nav-item>.nav-trigger[data-v-ecc4531d]:after{content:"";opacity:.5;clip-path:polygon(22% 35%,50% 62%,78% 35%,86% 43%,50% 78%,14% 43%);background:currentColor;flex:none;align-self:center;width:16px;height:16px;margin-left:0;transition:transform .25s,opacity .15s}.nav-item.open>.nav-trigger[data-v-ecc4531d]:after{opacity:.75;transform:rotate(180deg)}.nav-route[data-v-ecc4531d]{border:1px solid var(--line-soft);background:var(--cream-warm);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:5px}.nav-route .nav-label-stack[data-v-ecc4531d]{text-align:center;align-items:center}.nav-route[data-v-ecc4531d]:hover,.nav-route.on[data-v-ecc4531d]{background:var(--cream-warm);color:var(--ink)}.nav-icon[data-v-ecc4531d]{width:15px;height:15px}.nav-new-badge[data-v-ecc4531d]{padding:3px 6px 2px;font-size:8.5px}.nav-search-icon[data-v-ecc4531d]{width:16px;height:16px}.nav-label-stack[data-v-ecc4531d]{justify-content:center;align-items:flex-start;gap:3px;place-items:unset;flex-direction:column;min-width:0;height:auto;display:flex;overflow:visible}.nav-label-stack span[data-v-ecc4531d]{opacity:1;grid-area:auto;transition:color .15s;position:static;transform:none}.nav-label-stack .label-en[data-v-ecc4531d],.nav-item.open .label-en[data-v-ecc4531d],.nav-trigger.on .label-en[data-v-ecc4531d]{color:var(--ink);opacity:1;font-size:14.5px;font-weight:700;line-height:1.1;transform:none}.nav-label-stack .label-thai[data-v-ecc4531d],.nav-item.open .label-thai[data-v-ecc4531d],.nav-trigger.on .label-thai[data-v-ecc4531d]{letter-spacing:.01em;color:var(--ink-mute);opacity:1;font-size:13.5px;font-weight:700;line-height:1.1;transform:none}.nav-item--levels .nav-popover[data-v-ecc4531d]{width:100%}.nav-popover[data-v-ecc4531d],.nav-item:nth-child(2) .nav-popover[data-v-ecc4531d],.nav-item:nth-child(3) .nav-popover[data-v-ecc4531d]{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;width:100%;min-height:0;max-height:calc(100dvh - 238px);box-shadow:none;background:0 0;border:0;border-radius:0;flex:auto;margin:0;padding:4px 14px 14px;animation:none;position:static;overflow-y:auto}.nav-popover-state[data-v-ecc4531d]{border:1px solid var(--line-soft);background:var(--cream);border-radius:9px;margin:0;padding:12px 14px}.mobile-nav-backdrop[data-v-ecc4531d]{z-index:80;appearance:none;background:color-mix(in oklch, var(--ink) 32%, transparent);-webkit-backdrop-filter:blur(2px);cursor:pointer;border:0;width:100vw;height:100dvh;display:block;position:fixed;inset:0}.user-area[data-v-ecc4531d]{grid-area:1/1;justify-self:start}.account[data-v-ecc4531d]{order:-1}.dev-btn[data-v-ecc4531d],.editor-btn[data-v-ecc4531d]{display:none}.account-menu[data-v-ecc4531d]{top:auto;left:12px;right:auto;bottom:calc(76px + env(safe-area-inset-bottom,0px));width:min(300px,100vw - 24px);position:fixed}.level-row[data-v-ecc4531d]{grid-template-columns:1fr;gap:8px}.level-row+.level-row[data-v-ecc4531d]{margin-top:12px}.level-row-label[data-v-ecc4531d]{font-family:"JetBrains Mono", var(--thai-font), monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute);flex-direction:row;justify-content:space-between;align-items:center;padding:0 2px;font-size:10px;font-weight:500}.level-row-label span[data-v-ecc4531d]{color:var(--ink-mute)}.level-row-label small[data-v-ecc4531d]{letter-spacing:.12em;color:var(--accent-deep);font-size:10px}.level-grid[data-v-ecc4531d]{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.level-grid--tones[data-v-ecc4531d]{grid-template-columns:repeat(3,minmax(0,1fr))}.level-grid--script[data-v-ecc4531d]{grid-template-columns:repeat(6,minmax(0,1fr))}.level-cell[data-v-ecc4531d]{aspect-ratio:1;background:var(--cream);border-color:var(--line-soft);min-height:0;font-family:"JetBrains Mono", var(--thai-font), monospace;border-radius:8px;font-size:12px;font-weight:700}.level-cell--tone[data-v-ecc4531d]{aspect-ratio:auto;min-height:62px;padding:5px 6px}.level-tone-name[data-v-ecc4531d]{min-height:20px;font-size:10px}.level-cell--tone-hijacking .level-tone-name[data-v-ecc4531d]{min-height:0}.level-cell[data-v-ecc4531d]:hover,.level-cell[data-v-ecc4531d]:focus-visible{background:var(--cream);border-color:var(--accent);transform:translateY(-1px)}.level-cell.current[data-v-ecc4531d]{border:2px solid var(--accent-deep);background:var(--cream);color:var(--accent-deep);box-shadow:0 0 0 3px color-mix(in oklch, var(--accent) 16%, transparent)}}@media (width<=620px){.brand-mark[data-v-ecc4531d]{flex-basis:38px;width:38px;height:38px;font-size:19px}.brand-name[data-v-ecc4531d]{font-size:20px}.user-area[data-v-ecc4531d]{justify-self:start}.account-menu[data-v-ecc4531d]{width:min(300px,100vw - 24px)}}@media (width<=901px){.streak-badge[data-v-ecc4531d],.user-area>.learning-availability[data-v-ecc4531d],.user-area>.coin-badge[data-v-ecc4531d],.user-area>.level-badge[data-v-ecc4531d]{display:none}.sidebar-status[data-v-ecc4531d]{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:2px;display:grid}.sidebar-status .learning-availability[data-v-ecc4531d]{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.sidebar-status .availability-badge[data-v-ecc4531d]{justify-content:space-between;min-height:42px;padding-inline:10px}.sidebar-status .coin-badge[data-v-ecc4531d],.sidebar-status .level-badge[data-v-ecc4531d]{background:var(--cream-warm);justify-content:center;min-height:42px;padding-inline:10px}}@media (width<=440px){.header[data-v-ecc4531d]{padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px))}.brand-name[data-v-ecc4531d]{display:none}.mobile-nav-toggle[data-v-ecc4531d],.avatar[data-v-ecc4531d]{width:42px;height:42px}.user-area[data-v-ecc4531d]{gap:8px}.streak-badge[data-v-ecc4531d],.availability-badge[data-v-ecc4531d],.level-badge[data-v-ecc4531d]{padding-inline:8px;font-size:11px}.streak-badge[data-v-ecc4531d]{white-space:nowrap;max-width:58px;overflow:hidden}.coin-badge img[data-v-ecc4531d]{width:17px;height:17px}.nav[data-v-ecc4531d]{gap:6px;padding-top:26px}.nav-trigger[data-v-ecc4531d]{padding-inline:8px;font-size:12.5px}.level-grid[data-v-ecc4531d]{grid-template-columns:repeat(4,minmax(0,1fr))}.level-grid--tones[data-v-ecc4531d]{grid-template-columns:repeat(3,minmax(0,1fr))}.level-grid--script[data-v-ecc4531d]{grid-template-columns:repeat(6,minmax(0,1fr))}.account-menu[data-v-ecc4531d]{top:auto;bottom:calc(70px + env(safe-area-inset-bottom,0px))}}@media (width<=380px){.mobile-availability-link[data-v-ecc4531d]{gap:5px;min-height:32px;padding-inline:6px;font-size:10px}.mobile-availability-link--lessons[data-v-ecc4531d]{margin-right:6px}.mobile-availability-link--reviews[data-v-ecc4531d]{margin-left:6px}.mobile-availability-link .availability-count[data-v-ecc4531d]{min-width:18px;height:18px;padding-inline:5px}}.bug-report-widget[data-v-4cd60d13]{z-index:70;position:fixed;bottom:18px;right:18px}.bug-report-widget.hidden[data-v-4cd60d13]{right:0}.bug-report-closed[data-v-4cd60d13]{justify-items:center;gap:6px;display:grid}.bug-report-label-row[data-v-4cd60d13]{align-items:center;gap:5px;display:flex}.bug-report-label[data-v-4cd60d13]{background:color-mix(in oklch, var(--cream) 92%, transparent);color:var(--ink-soft);box-shadow:0 8px 20px color-mix(in oklch, var(--ink) 12%, transparent);border-radius:6px;padding:4px 7px;font-size:10px;font-weight:900;line-height:1}.bug-report-hide[data-v-4cd60d13]{appearance:none;border:1px solid color-mix(in oklch, var(--line) 70%, transparent);background:color-mix(in oklch, var(--cream) 94%, transparent);width:20px;height:20px;color:var(--ink-soft);cursor:pointer;box-shadow:0 8px 20px color-mix(in oklch, var(--ink) 10%, transparent);border-radius:50%;place-items:center;padding:0;display:grid;position:relative}.bug-report-hide[data-v-4cd60d13]:before,.bug-report-hide[data-v-4cd60d13]:after,.bug-report-close[data-v-4cd60d13]:before,.bug-report-close[data-v-4cd60d13]:after{content:"";left:calc(50% + var(--bug-report-x-offset-x,0px));top:calc(50% + var(--bug-report-x-offset-y,0px));width:var(--bug-report-x-size,10px);transform-origin:50%;background:currentColor;border-radius:999px;height:2px;position:absolute}.bug-report-hide[data-v-4cd60d13]:before,.bug-report-close[data-v-4cd60d13]:before{transform:translate(-50%,-50%)rotate(45deg)}.bug-report-hide[data-v-4cd60d13]:after,.bug-report-close[data-v-4cd60d13]:after{transform:translate(-50%,-50%)rotate(-45deg)}.bug-report-hide[data-v-4cd60d13]{--bug-report-x-offset-x:.4px;--bug-report-x-offset-y:.3px;--bug-report-x-size:9px}.bug-report-hide[data-v-4cd60d13]:hover{background:var(--cream);color:var(--ink)}.bug-report-widget.change-suggestion .bug-report-label[data-v-4cd60d13]{padding:8px 12px;font-size:13px}.bug-report-trigger[data-v-4cd60d13],.bug-report-restore[data-v-4cd60d13]{appearance:none;background:var(--primary);color:var(--cream);cursor:pointer;box-shadow:0 14px 32px color-mix(in oklch, var(--ink) 24%, transparent);border:0;place-items:center;display:grid}.bug-report-trigger[data-v-4cd60d13]{border-radius:50%;width:48px;height:48px}.bug-report-restore[data-v-4cd60d13]{border:1px solid color-mix(in oklch, var(--primary-deep) 18%, transparent);border-right:0;border-radius:8px 0 0 8px;width:20px;height:42px}.bug-report-widget.change-suggestion .bug-report-trigger[data-v-4cd60d13]{width:96px;height:96px}.bug-report-widget.change-suggestion .bug-report-trigger svg[data-v-4cd60d13]{width:46px;height:46px}.bug-report-trigger[data-v-4cd60d13]:hover,.bug-report-restore[data-v-4cd60d13]:hover{background:var(--primary-deep)}.bug-report-trigger svg[data-v-4cd60d13],.bug-report-restore svg[data-v-4cd60d13]{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:23px;height:23px}.bug-report-restore svg[data-v-4cd60d13]{width:12px;height:12px}.bug-report-form[data-v-4cd60d13]{background:var(--cream);border:1px solid var(--line-soft);width:min(320px,100vw - 36px);box-shadow:0 18px 48px color-mix(in oklch, var(--ink) 24%, transparent);border-radius:8px;gap:10px;padding:14px;display:grid}.bug-report-head[data-v-4cd60d13]{justify-content:space-between;align-items:center;gap:12px;display:flex}.bug-report-head strong[data-v-4cd60d13]{color:var(--ink);font-size:14px}.bug-report-close[data-v-4cd60d13]{appearance:none;background:var(--cream-warm);width:28px;height:28px;color:var(--ink-soft);cursor:pointer;border:0;border-radius:7px;place-items:center;padding:0;display:grid;position:relative}.bug-report-close[data-v-4cd60d13]:before,.bug-report-close[data-v-4cd60d13]:after{width:12px}.bug-report-form textarea[data-v-4cd60d13]{resize:vertical;border:1px solid var(--line);width:100%;min-height:94px;color:var(--ink);font:inherit;background:#fff;border-radius:8px;padding:10px 11px;font-size:13px;font-weight:650;line-height:1.45}.bug-report-form textarea[data-v-4cd60d13]:focus{outline:2px solid color-mix(in oklch, var(--primary) 30%, transparent);outline-offset:2px}.bug-report-actions[data-v-4cd60d13]{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.bug-report-actions button[data-v-4cd60d13]{appearance:none;background:var(--primary);color:var(--cream);font:inherit;cursor:pointer;border:0;border-radius:8px;padding:9px 13px;font-size:12px;font-weight:900}.bug-report-actions button[data-v-4cd60d13]:disabled{opacity:.62;cursor:not-allowed}.bug-report-error[data-v-4cd60d13],.bug-report-status[data-v-4cd60d13]{margin:0;font-size:12px;font-weight:800;line-height:1.3}.bug-report-error[data-v-4cd60d13]{color:var(--danger)}.bug-report-status[data-v-4cd60d13]{color:var(--accent-deep)}@media (width<=900px){.bug-report-widget[data-v-4cd60d13]{bottom:calc(80px + env(safe-area-inset-bottom,0px))}.bug-report-widget.hidden[data-v-4cd60d13]{right:0}.bug-report-widget.change-suggestion[data-v-4cd60d13]{right:12px;bottom:calc(158px + env(safe-area-inset-bottom,0px))}.bug-report-widget.change-suggestion.hidden[data-v-4cd60d13]{right:0}.bug-report-widget.change-suggestion .bug-report-label[data-v-4cd60d13]{padding:6px 9px;font-size:11px}.bug-report-widget.change-suggestion .bug-report-trigger[data-v-4cd60d13]{width:64px;height:64px}.bug-report-widget.change-suggestion .bug-report-trigger svg[data-v-4cd60d13]{width:32px;height:32px}}.lesson-gate[data-v-681a09dc]{z-index:180;background:linear-gradient(145deg, color-mix(in oklch, var(--primary) 24%, transparent), transparent 42%), color-mix(in oklch, var(--ink) 62%, transparent);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.lesson-gate-card[data-v-681a09dc]{border:1px solid color-mix(in oklch, var(--accent) 34%, var(--line-soft));background:var(--cream);width:min(560px,100%);box-shadow:0 26px 80px color-mix(in oklch, var(--ink) 38%, transparent);text-align:center;border-radius:14px;padding:42px 34px 34px;position:relative;overflow:hidden}.lesson-gate-mark[data-v-681a09dc]{color:color-mix(in oklch, var(--accent) 13%, transparent);font-family:"DM Serif Display", var(--thai-font), serif;pointer-events:none;font-size:190px;line-height:1;position:absolute;top:-46px;right:-34px}.lesson-gate-close[data-v-681a09dc]{z-index:1;background:color-mix(in oklch, var(--cream-warm) 82%, transparent);width:34px;height:34px;color:var(--ink-mute);cursor:pointer;border:0;border-radius:50%;font-size:24px;line-height:1;transition:background .15s,color .15s,transform .15s;position:absolute;top:14px;right:14px}.lesson-gate-close[data-v-681a09dc]:hover,.lesson-gate-close[data-v-681a09dc]:focus-visible{background:var(--cream-warm);color:var(--ink);transform:translateY(-1px)}.lesson-gate-kicker[data-v-681a09dc]{color:var(--accent-deep);font-family:"JetBrains Mono", var(--thai-font), monospace;letter-spacing:.14em;text-transform:uppercase;margin:0 0 12px;font-size:11px;font-weight:800;position:relative}.lesson-gate-card h1[data-v-681a09dc]{color:var(--ink);font-family:"DM Serif Display", var(--thai-font), serif;margin:0;font-size:clamp(30px,5vw,44px);font-weight:400;line-height:1.06;position:relative}.lesson-gate-copy[data-v-681a09dc]{max-width:390px;color:var(--ink-soft);margin:16px auto 28px;font-size:16px;line-height:1.55;position:relative}.lesson-gate-actions[data-v-681a09dc]{justify-items:center;gap:12px;display:grid;position:relative}.lesson-gate-primary[data-v-681a09dc],.lesson-gate-secondary[data-v-681a09dc]{appearance:none;font:inherit;cursor:pointer;border:0;font-weight:800;transition:transform .15s,background .15s,color .15s}.lesson-gate-primary[data-v-681a09dc]{background:var(--primary);width:min(360px,100%);min-height:64px;color:var(--cream);box-shadow:0 12px 24px color-mix(in oklch, var(--primary) 28%, transparent);border-radius:12px;font-size:20px}.lesson-gate-primary[data-v-681a09dc]:hover,.lesson-gate-primary[data-v-681a09dc]:focus-visible{background:var(--primary-deep);transform:translateY(-1px)}.lesson-gate-secondary[data-v-681a09dc]{color:var(--ink-soft);background:0 0;border-radius:8px;padding:9px 14px;font-size:13px}.lesson-gate-secondary[data-v-681a09dc]:hover,.lesson-gate-secondary[data-v-681a09dc]:focus-visible{background:var(--cream-warm);color:var(--ink)}.lesson-gate-note[data-v-681a09dc]{color:var(--ink-mute);margin:18px 0 0;font-size:12px;line-height:1.4;position:relative}@media (width<=560px){.lesson-gate[data-v-681a09dc]{padding:16px}.lesson-gate-card[data-v-681a09dc]{padding:34px 22px 26px}.lesson-gate-mark[data-v-681a09dc]{font-size:150px}.lesson-gate-card h1[data-v-681a09dc]{font-size:32px}.lesson-gate-primary[data-v-681a09dc]{min-height:58px;font-size:18px}}.learning-complete-banner[data-v-061c5ae6]{z-index:45;box-sizing:border-box;border-bottom:1px solid color-mix(in oklch, var(--accent-soft) 38%, var(--primary));background:linear-gradient(105deg, var(--primary-deep), var(--primary));width:100%;box-shadow:0 10px 30px color-mix(in oklch, var(--primary-deep) 24%, transparent);color:var(--cream);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;padding:18px 36px;display:grid;position:sticky;top:75px}.banner-icon[data-v-061c5ae6]{background:var(--accent-soft);width:42px;height:42px;color:var(--primary-deep);border-radius:50%;place-items:center;display:grid;box-shadow:0 5px 16px oklch(0% none none/.18)}.banner-icon svg[data-v-061c5ae6]{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.banner-copy[data-v-061c5ae6]{gap:4px;font-size:14px;line-height:1.4;display:grid}.banner-status[data-v-061c5ae6]{flex-wrap:wrap;align-items:baseline;gap:0 7px;display:flex}.banner-status strong[data-v-061c5ae6]{font-family:DM Serif Display,serif;font-size:20px;font-weight:400}.banner-copy b[data-v-061c5ae6],.watch-video-link[data-v-061c5ae6]{color:var(--accent-soft)}.notification-note[data-v-061c5ae6]{color:color-mix(in oklch, var(--cream) 82%, transparent);align-items:center;gap:7px;display:inline-flex}.notification-row[data-v-061c5ae6]{align-items:center;gap:9px;display:inline-flex}.notification-dot[data-v-061c5ae6]{background:color-mix(in oklch, var(--cream) 64%, transparent);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in oklch, var(--cream) 12%, transparent);border-radius:50%}.notification-enable[data-v-061c5ae6]{border:1px solid color-mix(in oklch, var(--accent-soft) 55%, transparent);background:color-mix(in oklch, var(--cream) 10%, transparent);color:var(--accent-soft);cursor:pointer;font:inherit;border-radius:7px;padding:4px 8px;font-size:11px;font-weight:900}.notification-enable[data-v-061c5ae6]:hover{background:color-mix(in oklch, var(--cream) 18%, transparent);color:var(--cream)}.notification-enable[data-v-061c5ae6]:focus-visible{outline:2px solid var(--accent-soft);outline-offset:2px}.banner-details[data-v-061c5ae6]{justify-items:start;gap:2px;font-size:12px;font-weight:700;display:grid}.why-wait-row[data-v-061c5ae6]{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.watch-video-link[data-v-061c5ae6]{text-underline-offset:3px;align-items:center;gap:5px;display:inline-flex}.youtube-icon[data-v-061c5ae6]{fill:#f03;flex:none;width:19px;height:auto}.youtube-icon path[data-v-061c5ae6]{fill:#fff}.watch-video-link[data-v-061c5ae6]:hover{color:var(--cream)}.watch-video-link[data-v-061c5ae6]:focus-visible{outline:2px solid var(--accent-soft);outline-offset:3px;border-radius:3px}.banner-progress[data-v-061c5ae6]{color:color-mix(in oklch, var(--cream) 78%, transparent);justify-items:end;gap:2px;font-size:11px;line-height:1.3;display:grid}.banner-progress strong[data-v-061c5ae6]{color:inherit;justify-items:end;gap:2px;font-size:13px;display:grid}.current-review-copy[data-v-061c5ae6]{color:var(--accent-soft)}.review-count-highlight[data-v-061c5ae6]{color:color-mix(in oklch, var(--cream) 78%, transparent)}@media (width<=900px){.learning-complete-banner[data-v-061c5ae6]{top:auto;bottom:calc(67px + env(safe-area-inset-bottom,0px));z-index:85;border-top:1px solid color-mix(in oklch, var(--accent-soft) 38%, var(--primary));box-shadow:0 -10px 30px color-mix(in oklch, var(--primary-deep) 22%, transparent);border-bottom:0;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:14px 16px;position:fixed;left:0;right:0}.banner-icon[data-v-061c5ae6]{width:34px;height:34px}.banner-copy[data-v-061c5ae6]{gap:2px;font-size:12.5px}.banner-status strong[data-v-061c5ae6]{font-size:16px}.banner-details[data-v-061c5ae6],.why-wait-row[data-v-061c5ae6]{white-space:normal;font-size:11.5px}.banner-progress[data-v-061c5ae6]{grid-column:2;justify-items:start;width:100%}.banner-progress strong[data-v-061c5ae6]{white-space:normal;justify-items:start}}@media (width<=440px){.learning-complete-banner[data-v-061c5ae6]{bottom:calc(63px + env(safe-area-inset-bottom,0px))}.banner-progress strong[data-v-061c5ae6]{justify-self:start}}.rollout-backdrop[data-v-b84040ef]{z-index:10000;background:linear-gradient(145deg, color-mix(in oklch, var(--primary) 24%, transparent), transparent 42%), color-mix(in oklch, var(--ink) 62%, transparent);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.rollout-dialog[data-v-b84040ef]{border:1px solid color-mix(in oklch, var(--accent) 34%, var(--line-soft));background:var(--cream);width:min(680px,100%);max-height:calc(100dvh - 48px);color:var(--ink);box-shadow:0 26px 80px color-mix(in oklch, var(--ink) 38%, transparent);border-radius:14px;padding:clamp(28px,5vw,42px);position:relative;overflow:hidden auto}.rollout-mark[data-v-b84040ef]{color:color-mix(in oklch, var(--accent) 13%, transparent);font-family:"DM Serif Display", var(--thai-font), serif;pointer-events:none;font-size:190px;line-height:1;position:absolute;top:-50px;right:-24px}.rollout-header[data-v-b84040ef],.reset-icon[data-v-b84040ef],.rollout-kicker[data-v-b84040ef],.rollout-dialog h1[data-v-b84040ef],.rollout-intro[data-v-b84040ef],.learner-summary[data-v-b84040ef],.choice-list[data-v-b84040ef],.rollout-error[data-v-b84040ef],.confirm-button[data-v-b84040ef],.reset-actions[data-v-b84040ef]{position:relative}.rollout-kicker[data-v-b84040ef]{color:var(--accent-deep);font-family:"JetBrains Mono", var(--thai-font), monospace;letter-spacing:.14em;text-transform:uppercase;margin:0 0 10px;font-size:11px;font-weight:800}.rollout-dialog h1[data-v-b84040ef]{max-width:560px;font-family:"DM Serif Display", var(--thai-font), serif;margin:0;font-size:clamp(30px,5vw,42px);font-weight:400;line-height:1.06}.rollout-intro[data-v-b84040ef]{max-width:540px;color:var(--ink-soft);margin:14px 0 26px;font-size:15px;line-height:1.55}.learner-summary[data-v-b84040ef]{border:1px solid color-mix(in oklch, var(--accent) 24%, var(--line-soft));background:color-mix(in oklch, var(--accent) 7%, var(--cream));border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0 0 18px;display:grid}.learner-summary>div[data-v-b84040ef]{gap:4px;padding:13px 16px;display:grid}.learner-summary>div+div[data-v-b84040ef]{border-left:1px solid color-mix(in oklch, var(--accent) 20%, var(--line-soft))}.learner-summary span[data-v-b84040ef]{color:var(--ink-mute);font-family:"JetBrains Mono", var(--thai-font), monospace;letter-spacing:.09em;text-transform:uppercase;font-size:9px;font-weight:800}.learner-summary strong[data-v-b84040ef]{color:var(--primary);font-size:16px;font-weight:850}.choice-list[data-v-b84040ef]{gap:10px;display:grid}.choice-row[data-v-b84040ef]{appearance:none;border:1px solid var(--line-soft);background:color-mix(in oklch, var(--cream-warm) 44%, var(--cream));width:100%;min-height:78px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;border-radius:10px;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:14px;padding:15px 17px;transition:border-color .15s,background .15s,box-shadow .15s,transform .15s;display:grid}.choice-row[data-v-b84040ef]:hover:not(:disabled),.choice-row[data-v-b84040ef]:focus-visible{border-color:color-mix(in oklch, var(--primary) 55%, var(--line));background:var(--cream-warm);outline:none;transform:translateY(-1px)}.choice-row.selected[data-v-b84040ef]{border-color:var(--primary);background:color-mix(in oklch, var(--primary) 7%, var(--cream));box-shadow:0 0 0 2px color-mix(in oklch, var(--primary) 16%, transparent)}.choice-row.reset-choice.selected[data-v-b84040ef]{border-color:var(--danger);background:color-mix(in oklch, var(--danger) 6%, var(--cream));box-shadow:0 0 0 2px color-mix(in oklch, var(--danger) 14%, transparent)}.choice-row[data-v-b84040ef]:disabled{cursor:wait;opacity:.62}.choice-radio[data-v-b84040ef]{border:1.5px solid var(--line);background:var(--cream);border-radius:50%;place-items:center;width:20px;height:20px;transition:border-color .15s;display:grid}.choice-radio span[data-v-b84040ef]{background:0 0;border-radius:50%;width:10px;height:10px;transition:background .15s}.choice-row.selected .choice-radio[data-v-b84040ef]{border-color:var(--primary)}.choice-row.selected .choice-radio span[data-v-b84040ef]{background:var(--primary)}.choice-row.reset-choice.selected .choice-radio[data-v-b84040ef]{border-color:var(--danger)}.choice-row.reset-choice.selected .choice-radio span[data-v-b84040ef]{background:var(--danger)}.choice-copy[data-v-b84040ef]{gap:4px;display:grid}.choice-copy strong[data-v-b84040ef]{font-size:15px;font-weight:800;line-height:1.3}.choice-copy small[data-v-b84040ef]{color:var(--ink-soft);font-size:13px;line-height:1.4}.choice-title[data-v-b84040ef]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.recommended-badge[data-v-b84040ef]{background:color-mix(in oklch, var(--accent) 24%, var(--cream));color:var(--accent-deep);font-family:"JetBrains Mono", var(--thai-font), monospace;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:3px 7px;font-size:9px;font-weight:800;line-height:1.3}.confirm-button[data-v-b84040ef],.secondary-button[data-v-b84040ef],.danger-button[data-v-b84040ef]{appearance:none;font:inherit;cursor:pointer;border:0;border-radius:10px;font-weight:800;transition:background .15s,box-shadow .15s,transform .15s,opacity .15s}.confirm-button[data-v-b84040ef]{background:var(--primary);width:100%;min-height:54px;color:var(--cream);box-shadow:0 8px 18px color-mix(in oklch, var(--primary) 24%, transparent);margin-top:18px}.confirm-button[data-v-b84040ef]:hover:not(:disabled),.confirm-button[data-v-b84040ef]:focus-visible{background:var(--primary-deep);transform:translateY(-1px)}.confirm-button[data-v-b84040ef]:disabled,.secondary-button[data-v-b84040ef]:disabled,.danger-button[data-v-b84040ef]:disabled{cursor:not-allowed;opacity:.48;box-shadow:none;transform:none}.rollout-error[data-v-b84040ef]{color:var(--danger);margin:14px 0 0;font-size:13px;font-weight:700;line-height:1.45}.danger-text[data-v-b84040ef]{color:var(--danger)}.reset-icon[data-v-b84040ef]{background:color-mix(in oklch, var(--danger) 12%, var(--cream));width:44px;height:44px;color:var(--danger);border-radius:50%;place-items:center;margin-bottom:20px;font-size:22px;font-weight:900;display:grid}.reset-actions[data-v-b84040ef]{grid-template-columns:1fr 1.6fr;gap:10px;margin-top:24px;display:grid}.secondary-button[data-v-b84040ef],.danger-button[data-v-b84040ef]{min-height:52px;padding:11px 16px}.secondary-button[data-v-b84040ef]{border:1px solid var(--line);background:var(--cream-warm);color:var(--ink-soft)}.secondary-button[data-v-b84040ef]:hover:not(:disabled),.secondary-button[data-v-b84040ef]:focus-visible{background:var(--cream-deep);color:var(--ink)}.danger-button[data-v-b84040ef]{background:var(--danger);color:var(--cream);box-shadow:0 8px 18px color-mix(in oklch, var(--danger) 22%, transparent)}.danger-button[data-v-b84040ef]:hover:not(:disabled),.danger-button[data-v-b84040ef]:focus-visible{background:color-mix(in oklch, var(--danger) 82%, var(--ink));transform:translateY(-1px)}@media (width<=560px){.rollout-backdrop[data-v-b84040ef]{align-items:end;padding:0}.rollout-dialog[data-v-b84040ef]{border-bottom:0;border-left:0;border-right:0;border-radius:14px 14px 0 0;width:100%;max-height:94dvh;padding:30px 20px 22px}.rollout-mark[data-v-b84040ef]{font-size:150px}.rollout-dialog h1[data-v-b84040ef]{font-size:32px}.rollout-intro[data-v-b84040ef]{margin-bottom:22px}.learner-summary>div[data-v-b84040ef]{padding:12px}.choice-row[data-v-b84040ef]{min-height:72px;padding:13px 14px}.reset-actions[data-v-b84040ef]{grid-template-columns:1fr}.secondary-button[data-v-b84040ef]{order:2}}body.script-rollout-open{overflow:hidden}.app-shell[data-v-a74a47aa]{background:var(--cream);min-height:100vh;color:var(--ink)}@media (width<=900px){.app-shell.has-bottom-nav[data-v-a74a47aa]{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}.app-shell.has-bottom-nav.has-learning-complete-banner[data-v-a74a47aa]{padding-bottom:calc(236px + env(safe-area-inset-bottom,0px))}}:root{--primary:oklch(36% .07 175);--primary-deep:oklch(28% .05 175);--primary-soft:oklch(48% .06 170);--accent:oklch(74% .13 80);--accent-deep:oklch(62% .13 70);--accent-soft:oklch(84% .1 85);--cream:oklch(96% .018 80);--cream-warm:oklch(93% .024 75);--cream-deep:oklch(88% .03 70);--ink:oklch(20% .02 30);--ink-soft:oklch(40% .02 30);--ink-mute:oklch(58% .015 35);--line:oklch(78% .018 60);--line-soft:oklch(86% .018 70);--danger:oklch(55% .18 25);--success:oklch(40% .12 145);--green:oklch(55% .13 145);--blue:oklch(42% .14 255);--blue-deep:oklch(32% .12 255);--forest:oklch(32% .07 155);--forest-deep:oklch(22% .05 155);--srs-0:oklch(72% .1 235);--srs-1:oklch(68.462% .15156 153.592);--srs-2:oklch(60.165% .16505 27.111);--srs-3:var(--primary);--srs-4:var(--blue);--srs-5:oklch(34% .015 35);--google-yellow:#ffc107;--google-red:#ff3d00;--google-green:#4caf50;--google-blue:#1976d2;--thai-font-classic:"Manrope";--thai-font-modern:"IBM Plex Sans Thai";--thai-font:var(--thai-font-classic);--thai-placeholder-font-classic:"Noto Sans Thai Looped";--thai-placeholder-font-modern:"IBM Plex Sans Thai";--thai-placeholder-font:var(--thai-placeholder-font-classic)}.thai-font-classic{--thai-font:var(--thai-font-classic);--thai-placeholder-font:var(--thai-placeholder-font-classic)}.thai-font-modern{--thai-font:var(--thai-font-modern);--thai-placeholder-font:var(--thai-placeholder-font-modern)}.thai-placeholder-text{font-feature-settings:"mark" 1, "mkmk" 1;font-family:"Manrope", var(--thai-placeholder-font), sans-serif!important}*{box-sizing:border-box}html,body{background:var(--cream);height:100%;color:var(--ink);margin:0;padding:0}html{touch-action:manipulation}body{font-family:"Manrope", var(--thai-font), ui-sans-serif, system-ui, sans-serif;font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}#app{height:100%}::selection{background:var(--accent);color:var(--cream)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn-base{appearance:none;color:inherit;font:inherit;letter-spacing:.005em;white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:10px;padding:10px 16px;font-size:13px;font-weight:600;line-height:1.1;text-decoration:none;transition:transform .12s,background .15s,border-color .15s,box-shadow .15s,color .15s;display:inline-flex}.btn-base:hover:not(:disabled){transform:translateY(-1px)}.btn-base:active:not(:disabled){transform:translateY(0)}.btn-base:disabled,.btn-base[aria-disabled=true]{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.btn-full{width:100%}.btn-sm{border-radius:9px;padding:10px 16px;font-size:13px}.btn-lg{border-radius:10px;padding:14px 18px;font-size:15px}.btn-primary{background:var(--primary);color:var(--cream);box-shadow:inset 0 1px 0 color-mix(in oklch, var(--cream) 15%, transparent), 0 6px 14px color-mix(in oklch, var(--primary) 25%, transparent)}.btn-primary:hover:not(:disabled){background:var(--primary-deep);box-shadow:inset 0 1px 0 color-mix(in oklch, var(--cream) 15%, transparent), 0 10px 22px color-mix(in oklch, var(--primary) 32%, transparent)}.btn-accent{background:var(--accent);color:var(--cream);box-shadow:inset 0 1px 0 color-mix(in oklch, var(--cream) 18%, transparent), 0 6px 14px color-mix(in oklch, var(--accent) 25%, transparent)}.btn-accent:hover:not(:disabled){background:var(--accent-deep);box-shadow:inset 0 1px 0 color-mix(in oklch, var(--cream) 18%, transparent), 0 10px 22px color-mix(in oklch, var(--accent) 30%, transparent)}.btn-cream{background:var(--cream);color:var(--ink);border-color:var(--line)}.btn-cream:hover:not(:disabled){background:var(--cream-warm);border-color:var(--accent-soft)}.btn-ghost{background:color-mix(in oklch, var(--cream) 16%, transparent);color:var(--cream);border-color:color-mix(in oklch, var(--cream) 20%, transparent)}.btn-ghost:hover:not(:disabled){background:color-mix(in oklch, var(--cream) 22%, transparent)}.btn-tone-primary{color:var(--primary-deep)}.btn-tone-accent{color:var(--accent-deep)}.btn-base .arrow{transition:transform .2s}.btn-base:hover:not(:disabled) .arrow{transform:translate(3px)}.btn-base svg{flex:none;width:18px;height:18px}.btn-add{appearance:none;cursor:pointer;border:1.5px dashed var(--line);color:var(--ink-soft);font:inherit;background:0 0;border-radius:9px;align-items:center;gap:7px;padding:10px 14px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.btn-add:hover{border-color:var(--primary);color:var(--primary);background:color-mix(in oklch, var(--primary) 10%, transparent)}.btn-add svg{flex:none;width:12px;height:12px}.user-note{gap:10px;display:grid}.user-note p{white-space:pre-wrap;margin:0}.note-edit{justify-self:start}.note-editor{gap:10px;width:min(100%,520px);display:grid}.note-editor textarea{resize:vertical;border:1px solid var(--line);background:var(--cream);width:100%;min-height:108px;color:var(--ink);font:inherit;border-radius:8px;padding:11px 12px;font-size:14px;line-height:1.45}.note-editor textarea:focus{outline:2px solid color-mix(in oklch, var(--primary) 35%, transparent);outline-offset:2px;border-color:var(--primary)}.note-actions{flex-wrap:wrap;gap:8px;display:flex}.note-action{appearance:none;border:1px solid var(--line);background:var(--cream);color:var(--ink-soft);font:inherit;cursor:pointer;border-radius:8px;padding:8px 11px;font-size:12px;font-weight:700}.note-action.primary{background:var(--primary);border-color:var(--primary);color:#fff}.note-action.danger{color:var(--accent-deep)}.note-action:disabled{opacity:.55;cursor:default}.note-error{color:var(--accent-deep);font-size:12px;font-weight:700}.skeleton{background:color-mix(in oklch, var(--line-soft) 55%, var(--cream));color:#0000;pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:8px;display:block;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in oklch, var(--cream) 72%, transparent), transparent);animation:1.35s ease-in-out infinite skeleton-shimmer;position:absolute;inset:0;transform:translate(-100%)}.skeleton-line{border-radius:999px;width:100%;height:.85em}.skeleton-line-sm{height:.65em}.skeleton-line-lg{height:1.15em}.skeleton-block{width:100%;min-height:120px}.skeleton-tile{aspect-ratio:1}.skeleton-circle{aspect-ratio:1;border-radius:50%}.skeleton-dark{background:color-mix(in oklch, var(--cream) 14%, transparent)}.skeleton-dark:after{background:linear-gradient(90deg, transparent, color-mix(in oklch, var(--cream) 20%, transparent), transparent)}@keyframes skeleton-shimmer{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.skeleton:after{opacity:.45;animation:none;transform:none}}@media (width<=880px){html,body,*{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar{width:0;height:0;display:none}body::-webkit-scrollbar{width:0;height:0;display:none}::-webkit-scrollbar{width:0;height:0;display:none}}
