.sidebar[data-v-dca8850a]{display:flex;flex-direction:column;width:248px;height:100dvh;padding:20px 14px;background:var(--bg-surface,#fff);border-right:1px solid var(--border-subtle,#d8deea);box-sizing:border-box}.sidebar-brand[data-v-dca8850a]{min-height:48px;display:flex;align-items:center;padding:0 8px 20px}.sidebar-menu[data-v-dca8850a]{display:flex;flex-direction:column;gap:4px}.nav-link[data-v-dca8850a]{min-height:46px;display:flex;align-items:center;gap:12px;padding:0 12px;border-radius:12px;color:var(--text-secondary,#536079);text-decoration:none;font-weight:650}.nav-link[data-v-dca8850a]:hover{color:var(--text-primary,#1f2635);background:var(--bg-elevated,#f2f5fa)}.nav-link.active[data-v-dca8850a]{color:var(--action-primary,#3d66cc);background:color-mix(in srgb,var(--action-primary,#3d66cc) 12%,transparent)}.nav-link[data-v-dca8850a]:focus-visible{outline:2px solid var(--action-primary,#3d66cc);outline-offset:2px}.nav-link-icon[data-v-dca8850a]{width:24px;display:inline-flex;justify-content:center;flex:0 0 auto}.sidebar-footer[data-v-dca8850a]{margin-top:auto;display:grid;gap:12px;padding:16px 8px 0;border-top:1px solid var(--border-subtle,#d8deea);color:var(--text-secondary,#536079)}.profile-section[data-v-dca8850a]{display:flex;align-items:center;gap:10px}.profile-mark[data-v-dca8850a]{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--bg-canvas-alt,#f4f6fa);color:var(--action-primary,#3d66cc);font-size:21px}.profile-copy[data-v-dca8850a]{display:flex;flex-direction:column;min-width:0;font-size:12px}.profile-copy strong[data-v-dca8850a]{color:var(--text-primary,#1f2635);font-size:13px}@media(min-width:768px)and (max-width:1023px){.sidebar[data-v-dca8850a]{width:76px;padding:16px 10px;align-items:center}.sidebar-brand[data-v-dca8850a]{width:44px;overflow:hidden;padding:0 0 18px;justify-content:flex-start}.sidebar-menu[data-v-dca8850a]{width:100%}.nav-link[data-v-dca8850a]{justify-content:center;padding:0}.nav-link-label[data-v-dca8850a],.sidebar-footer[data-v-dca8850a]{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}}@media(max-width:767px),(max-width:1023px)and (max-height:500px)and (orientation:landscape){.sidebar[data-v-dca8850a]{display:none}}.page-topbar[data-v-21ee8c32]{height:64px;display:grid;grid-template-columns:minmax(120px,1fr) auto minmax(120px,1fr);align-items:center;gap:16px;padding:0 24px;box-sizing:border-box;background:color-mix(in srgb,var(--bg-canvas-alt,#f7f8fc) 94%,transparent);border-bottom:1px solid var(--border-subtle,#d8deea);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.page-topbar-left[data-v-21ee8c32],.page-topbar-actions[data-v-21ee8c32]{display:flex;align-items:center;gap:10px}.page-topbar-actions[data-v-21ee8c32]{justify-self:end}.page-topbar-title-text[data-v-21ee8c32]{margin:0;max-width:50vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary,#536079);font-size:13px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.topbar-brand[data-v-21ee8c32]{display:none}.page-topbar-nav-button[data-v-21ee8c32],.compact-menu-button[data-v-21ee8c32]{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--border-subtle,#d8deea);border-radius:12px;background:var(--bg-surface,#fff);color:var(--text-primary,#1f2635);cursor:pointer}.page-topbar-nav-button[data-v-21ee8c32]:focus-visible,.compact-menu-button[data-v-21ee8c32]:focus-visible,.compact-menu-panel a[data-v-21ee8c32]:focus-visible{outline:2px solid var(--action-primary,#3d66cc);outline-offset:2px}.compact-navigation[data-v-21ee8c32]{display:none;position:relative}.compact-menu-panel[data-v-21ee8c32]{position:absolute;top:calc(100% + 8px);left:0;z-index:140;width:220px;max-height:calc(100dvh - 72px - env(safe-area-inset-bottom,0px));overflow-y:auto;overscroll-behavior:contain;padding:6px;border:1px solid var(--border-subtle,#d8deea);border-radius:14px;background:var(--bg-surface,#fff);box-shadow:0 14px 38px #12192633}.compact-menu-panel a[data-v-21ee8c32]{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border-radius:9px;color:var(--text-primary,#1f2635);text-decoration:none;font-weight:650}.compact-menu-panel a[data-v-21ee8c32]:hover,.compact-menu-panel a.active[data-v-21ee8c32]{background:var(--bg-elevated,#f2f5fa);color:var(--action-primary,#3d66cc)}@media(max-width:767px){.page-topbar[data-v-21ee8c32]{height:calc(60px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 12px 0;grid-template-columns:minmax(0,1fr) auto;gap:8px;background:var(--bg-surface,#fff)}.topbar-brand[data-v-21ee8c32]{display:flex;min-width:0}.page-topbar--shell .page-topbar-title-text[data-v-21ee8c32],.page-topbar--title-hidden-mobile .page-topbar-title-text[data-v-21ee8c32]{display:none}.page-topbar-actions[data-v-21ee8c32]{gap:6px}.page-topbar-actions[data-v-21ee8c32] .status-badges-group{display:none}.topbar-brand[data-v-21ee8c32] .umi-brand-tool{display:inline}}@media(max-width:1023px)and (max-height:500px)and (orientation:landscape){.page-topbar[data-v-21ee8c32]{height:52px;padding:4px 12px;grid-template-columns:1fr auto 1fr}.compact-navigation[data-v-21ee8c32]{display:block}.topbar-brand[data-v-21ee8c32]{display:none}.page-topbar--shell .page-topbar-title-text[data-v-21ee8c32]{display:block;font-size:11px}.page-topbar-actions[data-v-21ee8c32] .status-badges-group{display:none}}@media(max-width:767px){.page-topbar[data-v-21ee8c32]:not(.page-topbar--shell){grid-template-columns:auto minmax(0,1fr) auto;height:auto;min-height:52px;padding:8px 0;background:transparent}.page-topbar:not(.page-topbar--shell) .page-topbar-title-text[data-v-21ee8c32]{max-width:none;white-space:normal;text-align:left}}.mobile-tabbar[data-v-6db67a2e]{display:none;position:fixed;z-index:110;left:0;right:0;bottom:0;height:calc(64px + env(safe-area-inset-bottom,0px));padding:0 2px env(safe-area-inset-bottom,0px);background:var(--bg-surface,#fff);border-top:1px solid var(--border-subtle,#d8deea);box-sizing:border-box}.mobile-tab[data-v-6db67a2e]{flex:1;min-width:0;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;background:transparent;color:var(--text-secondary,#536079);text-decoration:none;font:inherit;cursor:pointer}.mobile-tab-icon[data-v-6db67a2e]{display:inline-flex}.mobile-tab-label[data-v-6db67a2e]{font-size:10px;font-weight:650;white-space:nowrap}.mobile-tab.active[data-v-6db67a2e]{color:var(--action-primary,#3d66cc)}.mobile-tab[data-v-6db67a2e]:focus-visible,.mobile-more-menu a[data-v-6db67a2e]:focus-visible{outline:2px solid var(--action-primary,#3d66cc);outline-offset:-3px;border-radius:8px}.mobile-more-menu[data-v-6db67a2e]{position:absolute;right:10px;bottom:calc(100% + 8px);min-width:190px;padding:6px;border:1px solid var(--border-subtle,#d8deea);border-radius:14px;background:var(--bg-surface,#fff);box-shadow:0 12px 34px #1219262e}.mobile-more-menu a[data-v-6db67a2e]{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 12px;border-radius:9px;color:var(--text-primary,#1f2635);text-decoration:none;font-weight:650}.mobile-more-menu a[data-v-6db67a2e]:hover,.mobile-more-menu a.active[data-v-6db67a2e]{background:var(--bg-elevated,#f2f5fa);color:var(--action-primary,#3d66cc)}@media(max-width:767px){.mobile-tabbar[data-v-6db67a2e]{display:flex}}@media(max-width:1023px)and (max-height:500px)and (orientation:landscape){.mobile-tabbar[data-v-6db67a2e]{display:none}}.app-shell-container[data-v-afc87058]{display:flex;min-height:100dvh;width:100%;background-color:var(--bg-canvas, #eef1f7);color:var(--text-primary, #1f2635);overflow-x:clip;box-sizing:border-box;transition:background-color var(--motion-base, .18s ease-out),color var(--motion-base, .18s ease-out)}.app-shell-container[data-v-afc87058]{--topbar-height-mobile: calc(60px + env(safe-area-inset-top, 0px)) ;--tabbar-height-mobile: calc(64px + env(safe-area-inset-bottom, 0px)) }.app-shell-sidebar[data-v-afc87058]{position:sticky;top:0;flex-shrink:0;z-index:90}.app-shell-main[data-v-afc87058]{display:flex;flex-direction:column;flex-grow:1;min-width:0;box-sizing:border-box;min-height:100dvh}.app-shell-topbar[data-v-afc87058]{position:sticky;top:0;z-index:80}.app-shell-content[data-v-afc87058]{flex-grow:1;padding:var(--space-6, 1.5rem);box-sizing:border-box;max-width:var(--content-max-width, 1600px);width:100%;margin:0 auto}.status-badges-group[data-v-afc87058]{display:flex;align-items:center;gap:var(--space-3, .75rem)}.status-badge[data-v-afc87058]{display:inline-flex;align-items:center;gap:var(--space-2, .5rem);font-family:var(--font-body, "Public Sans", sans-serif);font-size:var(--text-xs, .75rem);font-weight:var(--weight-medium, 500);color:var(--text-secondary, #536079);padding:var(--space-1, .25rem) var(--space-2h, .625rem);background-color:var(--bg-surface, #ffffff);border:1px solid var(--border-subtle, #d8deea);border-radius:var(--radius-pill, 999px);height:28px;box-sizing:border-box;transition:all var(--motion-fast, .12s ease-out)}.badge-dot[data-v-afc87058]{width:6px;height:6px;border-radius:var(--radius-pill, 999px)}.badge-label[data-v-afc87058]{white-space:nowrap}@media(min-width:768px)and (max-width:1023px){.badge-label--desktop[data-v-afc87058]{display:none}}@media(max-width:767px){.app-shell-container[data-v-afc87058]{flex-direction:column}.app-shell-main[data-v-afc87058]{padding-bottom:var(--tabbar-height-mobile);min-height:100dvh}.app-shell-content[data-v-afc87058]{padding:var(--space-4, 1rem)}.badge-label[data-v-afc87058]{display:none}.status-badge[data-v-afc87058]{padding:var(--space-1, .25rem);width:28px;justify-content:center}}@media(max-width:1023px)and (max-height:500px)and (orientation:landscape){.app-shell-main[data-v-afc87058]{padding-bottom:0}.app-shell-content[data-v-afc87058]{padding:12px}}.badge-dot--success[data-v-2db97ba1]{background-color:var(--action-success, #31a958)}.badge-dot--warning[data-v-2db97ba1]{background-color:var(--action-warning, #f39a25)}.responsive-disclosure[data-v-52aac4c9]{min-width:0}summary[data-v-52aac4c9]{min-height:44px;padding:8px 12px;box-sizing:border-box;cursor:pointer;font-weight:600;color:var(--text-primary)}summary[data-v-52aac4c9]:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.responsive-disclosure__content[data-v-52aac4c9]{min-width:0}.runtime-banner[data-v-1e3682e5]{background-color:var(--status-warning-bg, #fff0db);border-bottom:1px solid var(--status-warning-border, #f39a25);color:var(--status-warning-fg, #8b5310);padding:0 12px;font-family:var(--font-body, "Public Sans", sans-serif);font-size:var(--text-sm, .875rem);font-weight:var(--weight-medium, 500);width:100%;box-sizing:border-box;z-index:70;display:flex;justify-content:center;align-items:center}.runtime-banner-disclosure[data-v-1e3682e5]{width:100%;max-width:var(--content-max-width, 1600px)}.runtime-banner-content[data-v-1e3682e5]{padding:0 0 12px}.runtime-banner--update[data-v-1e3682e5]{background-color:var(--action-config-soft);border-bottom-color:var(--action-config);color:var(--text-primary)}.runtime-banner-content[data-v-1e3682e5]{display:flex;align-items:center;gap:var(--space-3, .75rem);max-width:var(--content-max-width, 1600px);width:100%}.runtime-banner-icon[data-v-1e3682e5]{width:20px;height:20px;flex-shrink:0;opacity:.9}.runtime-banner-text[data-v-1e3682e5]{line-height:1.4;flex-grow:1}.runtime-update-status[data-v-1e3682e5]{display:block}.runtime-banner-text>span+.runtime-update-status[data-v-1e3682e5]{margin-top:var(--space-2, .5rem)}.runtime-banner-actions[data-v-1e3682e5]{display:flex;flex-shrink:0;align-items:center;gap:var(--space-2, .5rem)}.runtime-banner-btn[data-v-1e3682e5]{display:inline-flex;min-height:44px;align-items:center;justify-content:center;background:transparent;border:1px solid currentColor;color:inherit;padding:var(--space-1, .25rem) var(--space-3, .75rem);border-radius:var(--radius-sm, .625rem);font-family:inherit;font-size:var(--text-xs, .75rem);font-weight:var(--weight-semibold, 600);cursor:pointer;white-space:nowrap;transition:all var(--motion-fast, .12s ease-out)}.runtime-banner-btn[data-v-1e3682e5]:hover{background-color:#0000000d}.runtime-banner-btn[data-v-1e3682e5]:active{transform:scale(.97)}.runtime-banner-btn[data-v-1e3682e5]:disabled{cursor:wait;opacity:.65;transform:none}.runtime-banner-btn[data-v-1e3682e5]:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.banner-fade-enter-active[data-v-1e3682e5],.banner-fade-leave-active[data-v-1e3682e5]{transition:all var(--motion-base, .18s ease-out)}.banner-fade-enter-from[data-v-1e3682e5],.banner-fade-leave-to[data-v-1e3682e5]{opacity:0;transform:translateY(-8px)}@media(max-width:600px){.runtime-banner-content[data-v-1e3682e5]{flex-wrap:wrap;gap:var(--space-2, .5rem)}.runtime-banner-icon[data-v-1e3682e5]{align-self:flex-start;margin-top:var(--space-2, .5rem)}.runtime-banner-text[data-v-1e3682e5]{flex:1 1 calc(100% - 32px)}.runtime-banner-actions[data-v-1e3682e5]{width:100%;flex-direction:column}.runtime-banner-btn[data-v-1e3682e5]{width:100%;text-align:center;justify-content:center;padding:var(--space-2, .5rem)}}.keyboard-shortcuts-overlay[data-v-0ad74f58]{background:var(--overlay-bg, rgba(13, 17, 23, .75));-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.keyboard-shortcuts-card[data-v-0ad74f58]{max-width:520px;width:min(520px,92vw);background:var(--bg-surface, #1e293b);border:1px solid var(--border-subtle, #334155);box-shadow:var(--shadow-glass, 0 8px 32px 0 rgba(0, 0, 0, .4));border-radius:var(--radius-xl, 16px);padding:var(--space-5, 24px);display:flex;flex-direction:column;gap:var(--space-4, 16px)}.keyboard-shortcuts-header[data-v-0ad74f58]{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-subtle, #334155);padding-bottom:var(--space-3, 12px);margin:0}.title[data-v-0ad74f58]{font-family:var(--font-heading),sans-serif;font-size:1.25rem;font-weight:600;color:var(--text-primary, #f8fafc);margin:0;text-transform:capitalize}.close-button[data-v-0ad74f58]{background:transparent;border:none;color:var(--text-secondary, #94a3b8);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md, 8px);transition:all var(--motion-fast, .15s) ease;width:32px;height:32px;min-width:32px;min-height:32px;padding:0}.close-button[data-v-0ad74f58]:hover{background:var(--bg-elevated, #334155);color:var(--text-primary, #f8fafc)}.search-container[data-v-0ad74f58]{position:relative;width:100%}.search-icon[data-v-0ad74f58]{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted, #64748b);pointer-events:none}.search-input[data-v-0ad74f58]{width:100%;padding:var(--space-2h, 10px) var(--space-3, 12px) var(--space-2h, 10px) 38px;font-family:var(--font-body),sans-serif;font-size:.875rem;color:var(--text-primary, #f8fafc);background:var(--bg-elevated, #0f172a);border:1px solid var(--border-subtle, #334155);border-radius:var(--radius-md, 8px);transition:border-color .15s ease,box-shadow .15s ease}.search-input[data-v-0ad74f58]:focus{outline:none;border-color:var(--focus-ring, #3b82f6);box-shadow:0 0 0 2px var(--bg-surface),0 0 0 4px var(--focus-ring, #3b82f6)}.keyboard-shortcuts-body[data-v-0ad74f58]{max-height:360px;overflow-y:auto;padding-right:4px;display:flex;flex-direction:column;gap:var(--space-4, 16px)}.keyboard-shortcuts-body[data-v-0ad74f58]::-webkit-scrollbar{width:6px}.keyboard-shortcuts-body[data-v-0ad74f58]::-webkit-scrollbar-track{background:transparent}.keyboard-shortcuts-body[data-v-0ad74f58]::-webkit-scrollbar-thumb{background:var(--border-subtle, #334155);border-radius:3px}.keyboard-shortcuts-body[data-v-0ad74f58]::-webkit-scrollbar-thumb:hover{background:var(--text-muted, #64748b)}.shortcut-group[data-v-0ad74f58]{display:flex;flex-direction:column;gap:var(--space-2, 8px)}.group-title[data-v-0ad74f58]{font-family:var(--font-heading),sans-serif;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #64748b);margin:0;font-weight:700}.shortcut-list[data-v-0ad74f58]{display:flex;flex-direction:column;gap:var(--space-1h, 6px)}.shortcut-row[data-v-0ad74f58]{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2, 8px) var(--space-2h, 10px);background:var(--bg-elevated, #0f172a);border:1px solid var(--border-subtle, #334155);border-radius:var(--radius-md, 8px);transition:background .15s ease,border-color .15s ease}.shortcut-row[data-v-0ad74f58]:hover{background:color-mix(in srgb,var(--bg-elevated) 90%,var(--text-primary) 10%);border-color:var(--border-strong, #475569)}.shortcut-desc[data-v-0ad74f58]{font-family:var(--font-body),sans-serif;font-size:.875rem;color:var(--text-secondary, #cbd5e1)}.shortcut-key[data-v-0ad74f58]{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);font-size:.75rem;font-weight:600;padding:2px 6px;background:var(--bg-surface, #1e293b);color:var(--text-primary, #f8fafc);border:1px solid var(--border-subtle, #334155);border-radius:var(--radius-sm, 4px);box-shadow:0 1px #0003}.no-results[data-v-0ad74f58]{font-family:var(--font-body),sans-serif;font-size:.875rem;color:var(--text-muted, #64748b);text-align:center;padding:var(--space-4, 16px) 0}.keyboard-shortcuts-footer[data-v-0ad74f58]{border-top:1px solid var(--border-subtle, #334155);padding-top:var(--space-3, 12px);display:flex;justify-content:center}.dismiss-affordance[data-v-0ad74f58]{font-family:var(--font-body),sans-serif;font-size:.75rem;color:var(--text-muted, #64748b);display:flex;align-items:center;gap:4px}.footer-kbd[data-v-0ad74f58]{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);font-size:.7rem;font-weight:600;padding:1px 4px;background:var(--bg-elevated, #0f172a);color:var(--text-secondary, #cbd5e1);border:1px solid var(--border-subtle, #334155);border-radius:3px}.email-key-copy[data-v-897a6615]{padding:var(--space-5, 1.25rem);line-height:1.5}h2[data-v-897a6615]{font-size:1.25rem}button[data-v-897a6615]{min-height:44px}:root{color-scheme:light dark;font-family:Public Sans,Avenir Next,Segoe UI,sans-serif;--font-heading: "Sora", "Avenir Next", "Segoe UI", sans-serif;--font-body: "Public Sans", "Avenir Next", "Segoe UI", sans-serif;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.25rem;--text-xl: clamp(1.7rem, 4.5vw, 2.2rem);--text-heading-2: 1.15rem;--text-heading-3: 1.2rem;--text-heading-card: 1.05rem;--text-metric-xl: 1.6rem;--content-max-width: 1600px;--space-1: .25rem;--space-2: .5rem;--space-2h: .625rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--radius-sm: .625rem;--radius-md: .875rem;--radius-lg: 1rem;--radius-xl: 1.25rem;--radius-pill: 999px;--motion-fast: .12s ease-out;--motion-base: .18s ease-out;--motion-slow: .26s cubic-bezier(.2, .8, .2, 1);--motion-emphasis: .32s cubic-bezier(.2, .8, .2, 1);--bg-canvas: #eef1f7;--bg-canvas-alt: #f7f8fc;--bg-surface: #ffffff;--bg-elevated: #f8fafe;--bg-glass: #ffffff;--text-primary: #1f2635;--text-secondary: #536079;--text-muted: #78839a;--text-inverse: #f8fbff;--border-subtle: #d8deea;--border-strong: #a8b4cd;--focus-ring: #8dc4ff;--action-primary: #3d66cc;--action-primary-hover: #3259b8;--action-secondary: #6b7790;--action-secondary-hover: #55627d;--action-special: #6a4de0;--action-special-hover: #5b40cc;--action-warning: #f39a25;--action-warning-hover: #de8612;--action-warning-fg: #8b5310;--action-danger: #ef4b42;--action-danger-hover: #da392f;--action-success: #31a958;--action-success-hover: #278d49;--action-upload: #355fd8;--action-upload-hover: #264bbf;--action-paste: #7b4fd9;--action-paste-hover: #673bc3;--action-view: #4462cb;--action-view-hover: #314fb8;--action-view-soft: #e5ebff;--action-tactics: #1a8e7a;--action-tactics-hover: #11705f;--action-tactics-soft: #dff2ed;--action-config: #2f7099;--action-config-hover: #245b7d;--action-config-soft: #dfedf8;--action-cloud: #14829c;--action-cloud-hover: #0d6c82;--action-cloud-soft: #def4f8;--action-hint: #b78419;--action-hint-hover: #946710;--action-hint-fg: #7a5a14;--action-hint-soft: #fff0ca;--action-utility: #5b687f;--action-utility-hover: #49596f;--action-utility-soft: #edf1f6;--action-primary-soft: #ecebff;--action-success-soft: #e4f6e8;--action-special-soft: #f0e8ff;--action-warning-soft: #fff0dd;--action-danger-soft: #ffe2e0;--overlay-bg: rgb(18 28 46 / 52%);--status-good: #2fb15b;--status-good-fg: #227f40;--status-warning-bg: #fff0db;--status-warning-border: #f39a25;--status-warning-fg: #8b5310;--status-error-bg: #ffe3e1;--status-error-fg: #b3342d;--status-warning: #8b5310;--bg-muted: #edf1f6;--badge-mode-bg: #e8e1ff;--badge-bg: #ece9ff;--badge-border: #d4cbff;--badge-fg: #4e41bb;--tile-good: #c9f0d5;--tile-due: #cfe2ff;--tile-orange: #ffd7aa;--tile-amber: #ffc77e;--tile-failed: #ffd3cf;--tile-skipped: #edf1f8;--tile-skipped-strike: color-mix(in srgb, var(--text-secondary) 88%, white 12%);--overview-thumb-status-good-dark: #73b35a;--overview-thumb-status-good-light: #f4fbef;--overview-thumb-status-caution-dark: #e0a14a;--overview-thumb-status-caution-light: #fff7ec;--overview-thumb-status-danger-dark: #d78379;--overview-thumb-status-danger-light: #fff3f1;--overview-thumb-status-neutral-dark: #9aa8c1;--overview-thumb-status-neutral-light: #f7f9fd;--action-danger-fg: #b83b33;--action-danger-border: #f3b2ad;--action-danger-bg-hover: #ffe9e7;--confirm-danger-bg: #fff2f1;--progress-track: #e2e5f2;--code-bg: #1d2538;--code-fg: #e4eaf9;--hero-from: #eef1f7;--hero-to: #f7f8fc;--shadow-card: 0 8px 24px rgb(23 35 58 / 10%);--shadow-float: 0 16px 34px rgb(17 30 54 / 18%);--shadow-glass: 0 18px 44px rgb(17 30 54 / 18%);--shadow-shell-sticky: 0 14px 28px rgb(17 30 54 / 8%);--shadow-pill-surface: 0 1px 0 rgb(255 255 255 / 74%);--shadow-pill-active: 0 12px 24px rgb(61 102 204 / 20%);--swatch-board-shadow: 0 10px 20px rgb(17 30 54 / 20%), inset 0 0 0 1px rgb(255 255 255 / .22);--swatch-piece-shadow: 0 2px 8px rgb(16 22 38 / 18%);--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-right: env(safe-area-inset-right, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: env(safe-area-inset-left, 0px)}:root[data-theme=dark]{--bg-canvas: #0e1321;--bg-canvas-alt: #11192b;--bg-surface: #171f32;--bg-elevated: #212b41;--bg-glass: #171f32;--text-primary: #f0f4ff;--text-secondary: #c1ccde;--text-muted: #9dacc5;--text-inverse: #f5f8ff;--border-subtle: #36415a;--border-strong: #5f6f8e;--focus-ring: #8db3ff;--action-primary: #4968bf;--action-primary-hover: #4264bd;--action-secondary: #5f6f8e;--action-secondary-hover: #465878;--action-special: #9a7fff;--action-special-hover: #866dee;--action-warning: #ffb243;--action-warning-hover: #f2a132;--action-warning-fg: #f2a132;--action-danger: #ff7771;--action-danger-hover: #f5645e;--action-success: #42c777;--action-success-hover: #2fae62;--action-upload: #6a8ef8;--action-upload-hover: #587de9;--action-paste: #a389ff;--action-paste-hover: #9177f0;--action-view: #8ca1ff;--action-view-hover: #b6c3ff;--action-view-soft: #27365d;--action-config: #6fb3dc;--action-config-hover: #96c9e7;--action-config-soft: #1d3447;--action-cloud: #66d3e7;--action-cloud-hover: #8ce3f1;--action-cloud-soft: #173746;--action-tactics: #5fd5b5;--action-tactics-hover: #7ce0c4;--action-tactics-soft: #16382f;--action-hint: #f0c35f;--action-hint-hover: #ffd78c;--action-hint-fg: #ffd78c;--action-hint-soft: #453416;--action-utility: #bdc9db;--action-utility-hover: #dbe3ef;--action-utility-soft: #212c40;--action-primary-soft: #33395f;--action-success-soft: #1c3a2b;--action-special-soft: #352b5c;--action-warning-soft: #3f2d13;--action-danger-soft: #462122;--overlay-bg: rgb(3 8 18 / 72%);--status-good: #4fd389;--status-good-fg: #76e8aa;--status-warning: #ffd597;--status-warning-bg: #3a2d19;--status-warning-border: #ffb243;--status-warning-fg: #ffd597;--status-error-bg: #472124;--status-error-fg: #ff9d98;--bg-muted: #212c40;--badge-mode-bg: #2b3157;--badge-bg: #30265b;--badge-border: #443677;--badge-fg: #d7ccff;--tile-good: #1f3f2a;--tile-due: #223a63;--tile-orange: #3e2e18;--tile-amber: #4b3618;--tile-failed: #4a2325;--tile-skipped: #293246;--tile-skipped-strike: color-mix(in srgb, var(--text-secondary) 88%, white 12%);--overview-thumb-status-good-dark: #5d9f5f;--overview-thumb-status-good-light: #b9dfb2;--overview-thumb-status-caution-dark: #ca8f3f;--overview-thumb-status-caution-light: #f0ca8e;--overview-thumb-status-danger-dark: #c8776f;--overview-thumb-status-danger-light: #e4b2ac;--overview-thumb-status-neutral-dark: #8090a9;--overview-thumb-status-neutral-light: #c8d1df;--action-danger-fg: #ff9d98;--action-danger-border: #724246;--action-danger-bg-hover: #432124;--confirm-danger-bg: #3a1e22;--progress-track: #2d3851;--code-bg: #0f1626;--code-fg: #d8e2fb;--hero-from: #0e1321;--hero-to: #11192b;--shadow-card: 0 10px 28px rgb(1 6 16 / 52%);--shadow-float: 0 18px 44px rgb(1 6 16 / 66%);--shadow-glass: 0 18px 44px rgb(1 6 16 / 58%);--shadow-shell-sticky: 0 16px 34px rgb(1 6 16 / 44%);--shadow-pill-surface: 0 1px 0 rgb(255 255 255 / 8%);--shadow-pill-active: 0 14px 28px rgb(104 137 239 / 24%);--swatch-board-shadow: 0 10px 20px rgb(17 30 54 / 20%), inset 0 0 0 1px rgb(255 255 255 / .22);--swatch-piece-shadow: 0 2px 8px rgb(16 22 38 / 18%)}:root[data-theme=light]{--bg-canvas: #eef1f7;--bg-canvas-alt: #f7f8fc;--bg-surface: #ffffff;--bg-elevated: #f8fafe;--bg-glass: #ffffff;--text-primary: #1f2635;--text-secondary: #536079;--text-muted: #78839a;--text-inverse: #f8fbff;--border-subtle: #d8deea;--border-strong: #a8b4cd;--focus-ring: #8dc4ff;--action-primary: #3d66cc;--action-primary-hover: #3259b8;--action-secondary: #6b7790;--action-secondary-hover: #55627d;--action-special: #6a4de0;--action-special-hover: #5b40cc;--action-warning: #f39a25;--action-warning-hover: #de8612;--action-danger: #ef4b42;--action-danger-hover: #da392f;--action-success: #31a958;--action-success-hover: #278d49;--action-primary-soft: #ecebff;--action-success-soft: #e4f6e8;--action-special-soft: #f0e8ff;--action-warning-soft: #fff0dd;--action-danger-soft: #ffe2e0;--overlay-bg: rgb(18 28 46 / 52%);--status-good: #2fb15b;--status-good-fg: #227f40;--status-warning-bg: #fff0db;--status-warning-border: #f39a25;--status-warning-fg: #8b5310;--status-error-bg: #ffe3e1;--status-error-fg: #b3342d;--status-warning: #8b5310;--bg-muted: #edf1f6;--badge-mode-bg: #e8e1ff;--badge-bg: #ece9ff;--badge-border: #d4cbff;--badge-fg: #4e41bb;--tile-good: #c9f0d5;--tile-due: #cfe2ff;--tile-orange: #ffd7aa;--tile-amber: #ffc77e;--tile-failed: #ffd3cf;--tile-skipped: #edf1f8;--tile-skipped-strike: color-mix(in srgb, var(--text-secondary) 88%, white 12%);--action-danger-fg: #b83b33;--action-danger-border: #f3b2ad;--action-danger-bg-hover: #ffe9e7;--confirm-danger-bg: #fff2f1;--progress-track: #e2e5f2;--code-bg: #1d2538;--code-fg: #e4eaf9;--hero-from: #eef1f7;--hero-to: #f7f8fc;--shadow-card: 0 8px 24px rgb(23 35 58 / 10%);--shadow-float: 0 16px 34px rgb(17 30 54 / 18%);--shadow-glass: 0 18px 44px rgb(17 30 54 / 18%);--shadow-shell-sticky: 0 14px 28px rgb(17 30 54 / 8%);--shadow-pill-surface: 0 1px 0 rgb(255 255 255 / 74%);--shadow-pill-active: 0 12px 24px rgb(61 102 204 / 20%);--swatch-board-shadow: 0 10px 20px rgb(17 30 54 / 20%), inset 0 0 0 1px rgb(255 255 255 / .22);--swatch-piece-shadow: 0 2px 8px rgb(16 22 38 / 18%)}*{box-sizing:border-box}html,body,#app{min-height:100%}body{margin:0;font-family:var(--font-body);color:var(--text-primary);background:linear-gradient(180deg,var(--bg-canvas) 0%,var(--bg-canvas-alt) 100%);line-height:1.45;transition:background var(--motion-slow),color var(--motion-base)}a{color:var(--action-special)}h1,h2,h3,h4{margin:0;font-family:var(--font-heading);color:var(--text-primary);letter-spacing:-.01em}h1{font-size:var(--text-xl)}h2{font-size:var(--text-heading-2)}h3{font-size:var(--text-md)}p,ul,ol{margin:0;color:var(--text-secondary)}ul,ol{padding-left:var(--space-4)}button,input,select,textarea{font:inherit}button,a:is(.btn-primary,.btn-success,.btn-special,.btn-warning,.btn-danger,.btn-outline,.btn-muted,.btn-ghost,.btn-upload,.btn-paste,.btn-view,.btn-tactics,.btn-config,.btn-cloud,.btn-hint,.btn-utility),select,input,textarea,.overview-tile{min-height:44px}button,a:is(.btn-primary,.btn-success,.btn-special,.btn-warning,.btn-danger,.btn-outline,.btn-muted,.btn-ghost,.btn-upload,.btn-paste,.btn-view,.btn-tactics,.btn-config,.btn-cloud,.btn-hint,.btn-utility){border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-primary);border-radius:var(--radius-md);font-weight:var(--weight-semibold);padding:var(--space-2h) var(--space-4);cursor:pointer;transition:transform var(--motion-fast),box-shadow var(--motion-fast),border-color var(--motion-fast),background var(--motion-fast),color var(--motion-fast);box-shadow:var(--shadow-card);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1)}a:is(.btn-primary,.btn-success,.btn-special,.btn-warning,.btn-danger,.btn-outline,.btn-muted,.btn-ghost,.btn-upload,.btn-paste,.btn-view,.btn-tactics,.btn-config,.btn-cloud,.btn-hint,.btn-utility){text-decoration:none}button:hover:enabled,a:is(.btn-primary,.btn-success,.btn-special,.btn-warning,.btn-danger,.btn-outline,.btn-muted,.btn-ghost,.btn-upload,.btn-paste,.btn-view,.btn-tactics,.btn-config,.btn-cloud,.btn-hint,.btn-utility):hover,.overview-tile:hover{transform:translateY(-1px);box-shadow:var(--shadow-float)}button:active:enabled,a:is(.btn-primary,.btn-success,.btn-special,.btn-warning,.btn-danger,.btn-outline,.btn-muted,.btn-ghost,.btn-upload,.btn-paste,.btn-view,.btn-tactics,.btn-config,.btn-cloud,.btn-hint,.btn-utility):active,.overview-tile:active{transform:translateY(0)}button:disabled,select:disabled,input:disabled,textarea:disabled{cursor:not-allowed;opacity:.62}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,.overview-tile:focus-visible,a:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}select,input,textarea{width:100%;color:var(--text-primary);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-2h) var(--space-3);transition:border-color var(--motion-fast),box-shadow var(--motion-fast),background var(--motion-fast)}select:hover,input:hover,textarea:hover{border-color:var(--border-strong)}textarea{min-height:120px;resize:vertical}input::placeholder,textarea::placeholder{color:var(--text-muted)}.btn-primary{border-color:transparent;background:var(--action-primary);color:var(--text-inverse)}.btn-primary:hover:enabled{border-color:transparent;background:var(--action-primary-hover)}a.btn-primary:hover{border-color:transparent;background:var(--action-primary-hover)}.btn-success{border-color:transparent;background:var(--action-success);color:var(--text-inverse)}.btn-success:hover:enabled{border-color:transparent;background:var(--action-success-hover)}a.btn-success:hover{border-color:transparent;background:var(--action-success-hover)}.btn-special{border-color:transparent;background:var(--action-special);color:var(--text-inverse)}.btn-special:hover:enabled{border-color:transparent;background:var(--action-special-hover)}a.btn-special:hover{border-color:transparent;background:var(--action-special-hover)}.btn-upload{border-color:transparent;background:var(--action-upload);color:var(--text-inverse)}.btn-upload:hover:enabled{border-color:transparent;background:var(--action-upload-hover)}a.btn-upload:hover{border-color:transparent;background:var(--action-upload-hover)}.btn-paste{border-color:transparent;background:var(--action-paste);color:var(--text-inverse)}.btn-paste:hover:enabled{border-color:transparent;background:var(--action-paste-hover)}a.btn-paste:hover{border-color:transparent;background:var(--action-paste-hover)}.btn-warning{border-color:var(--action-warning);color:var(--action-warning-fg);background:var(--action-warning-soft)}.btn-warning:hover:enabled{border-color:var(--action-warning-hover)}a.btn-warning:hover{border-color:var(--action-warning-hover)}.btn-danger,.danger,.danger-button{border-color:var(--action-danger-border);color:var(--action-danger-fg);background:var(--action-danger-soft)}.btn-danger:hover:enabled,.danger:hover:enabled,.danger-button:hover:enabled{border-color:var(--action-danger);background:var(--action-danger-bg-hover)}a.btn-danger:hover{border-color:var(--action-danger);background:var(--action-danger-bg-hover)}.btn-outline{background:var(--bg-surface);border-color:var(--border-subtle);color:var(--text-primary)}.btn-muted{background:var(--bg-elevated);color:var(--text-secondary)}.btn-view{border-color:color-mix(in srgb,var(--action-view) 34%,var(--border-subtle));background:var(--action-view-soft);color:var(--action-view-hover)}.btn-view:hover:enabled,a.btn-view:hover{border-color:var(--action-view);background:color-mix(in srgb,var(--action-view-soft) 74%,var(--bg-surface) 26%)}.btn-config{border-color:color-mix(in srgb,var(--action-config) 32%,var(--border-subtle));background:var(--action-config-soft);color:var(--action-config-hover)}.btn-config:hover:enabled,a.btn-config:hover{border-color:var(--action-config);background:color-mix(in srgb,var(--action-config-soft) 72%,var(--bg-surface) 28%)}.btn-cloud{border-color:color-mix(in srgb,var(--action-cloud) 32%,var(--border-subtle));background:var(--action-cloud-soft);color:var(--action-cloud-hover)}.btn-cloud:hover:enabled,a.btn-cloud:hover{border-color:var(--action-cloud);background:color-mix(in srgb,var(--action-cloud-soft) 72%,var(--bg-surface) 28%)}.btn-tactics{border-color:color-mix(in srgb,var(--action-tactics) 34%,var(--border-subtle));background:var(--action-tactics-soft);color:var(--action-tactics-hover)}.btn-tactics:hover:enabled,a.btn-tactics:hover{border-color:var(--action-tactics);background:color-mix(in srgb,var(--action-tactics-soft) 74%,var(--bg-surface) 26%)}.btn-hint{border-color:color-mix(in srgb,var(--action-hint) 32%,var(--border-subtle));background:var(--action-hint-soft);color:var(--action-hint-fg)}.btn-hint:hover:enabled,a.btn-hint:hover{border-color:var(--action-hint);background:color-mix(in srgb,var(--action-hint-soft) 76%,var(--bg-surface) 24%)}.btn-utility{border-color:color-mix(in srgb,var(--action-utility) 28%,var(--border-subtle));background:var(--action-utility-soft);color:var(--action-utility-hover)}.btn-utility:hover:enabled,a.btn-utility:hover{border-color:var(--action-utility);background:color-mix(in srgb,var(--action-utility-soft) 70%,var(--bg-surface) 30%)}.btn-icon{min-height:44px;min-width:44px;padding:var(--space-2)}.btn-icon-sm{min-height:32px;min-width:32px;padding:var(--space-1)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--bg-elevated);color:var(--text-primary)}.btn-icon-active{color:var(--action-primary);border-color:var(--action-primary);background:color-mix(in srgb,var(--action-primary) 12%,transparent)}.btn-config.btn-icon-active{color:var(--text-inverse);border-color:var(--action-config);background:var(--action-config);box-shadow:0 0 0 .18rem color-mix(in srgb,var(--action-config) 18%,transparent)}.btn-config.btn-icon-active:hover:enabled{background:var(--action-config-hover);border-color:var(--action-config-hover)}.badge,.course-mode,.mode-chip,.mode-label-chip{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-1) var(--space-2h);border-radius:var(--radius-pill);border:1px solid var(--badge-border);background:var(--badge-bg);color:var(--badge-fg);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.01em}.status-line{margin-top:var(--space-2h);border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-elevated);padding:var(--space-2h) var(--space-3);color:var(--text-secondary);font-size:var(--text-sm)}.status-line.status-good{border-color:var(--status-good);background:var(--action-success-soft);color:var(--status-good-fg)}.status-line.status-warning{border-color:var(--status-warning-border);background:var(--status-warning-bg);color:var(--status-warning-fg)}.status-line.status-error{border-color:var(--action-danger-border);background:var(--status-error-bg);color:var(--status-error-fg)}.cloud-sync-chip{display:inline-flex;align-items:center;min-height:44px;margin-top:.5rem;padding:.35rem .75rem;border-radius:999px;font-size:.875rem;background:var(--bg-muted);color:var(--text-secondary)}.cloud-sync-chip--synced{background:color-mix(in srgb,var(--status-good) 18%,var(--bg-surface));color:var(--status-good)}.cloud-sync-chip--error,.cloud-sync-chip--quota-blocked{background:color-mix(in srgb,var(--status-warning) 18%,var(--bg-surface));color:var(--status-warning)}.cloud-sync-chip--offline{background:var(--bg-muted);color:var(--text-secondary)}.cloud-sync-chip--local-ahead{background:color-mix(in srgb,var(--status-warning) 16%,var(--bg-surface));color:var(--status-warning)}.cloud-sync-posture-badge{display:inline-flex;align-items:center;min-height:32px;padding:.2rem .65rem;border-radius:999px;border:1px solid transparent;font-size:.75rem;font-weight:600;cursor:pointer}.cloud-sync-posture-badge--current{background:color-mix(in srgb,var(--status-good) 16%,var(--bg-surface));color:var(--status-good)}.cloud-sync-posture-badge--local_ahead{background:color-mix(in srgb,var(--status-warning) 16%,var(--bg-surface));color:var(--status-warning)}.cloud-sync-posture-badge--cloud_ahead{background:color-mix(in srgb,var(--action-primary) 14%,var(--bg-surface));color:var(--action-primary)}.cloud-sync-posture-badge--diverged{background:color-mix(in srgb,#8b5cf6 16%,var(--bg-surface));color:#8b5cf6}.cloud-sync-posture-badge--unknown{background:var(--bg-muted);color:var(--text-secondary)}.course-card-head-badges{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-2)}.cloud-sync-stale-banner{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);border:1px solid color-mix(in srgb,var(--action-primary) 24%,var(--border-subtle));background:color-mix(in srgb,var(--action-primary) 8%,var(--bg-surface))}.cloud-sync-stale-banner--settings{margin-top:0;margin-bottom:var(--space-4)}.cloud-sync-stale-banner__title{margin:0;font-size:var(--text-sm);font-weight:600}.cloud-sync-stale-banner__message,.cloud-sync-stale-banner__hint{margin:.25rem 0 0;font-size:var(--text-sm);color:var(--text-secondary)}.cloud-sync-stale-banner__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.cloud-sync-stale-banner__actions .btn-sm{min-height:44px}.cloud-sync-prompt-sheet{align-items:end}.cloud-sync-prompt-sheet__card{width:min(480px,100%)}.cloud-sync-prompt-sheet__actions{flex-direction:column-reverse;align-items:stretch}.cloud-sync-prompt-sheet__actions .btn-outline,.cloud-sync-prompt-sheet__actions .btn-primary{width:100%;min-height:44px;justify-content:center}@media(min-width:641px){.cloud-sync-prompt-sheet{align-items:center}.cloud-sync-prompt-sheet__card{border-radius:var(--radius-xl)}.cloud-sync-prompt-sheet__actions{flex-direction:row;justify-content:flex-end;align-items:center}.cloud-sync-prompt-sheet__actions .btn-outline,.cloud-sync-prompt-sheet__actions .btn-primary{width:auto}}.cloud-quota-warning{margin-top:.35rem;font-size:.875rem;color:var(--status-warning)}.grid{display:grid;gap:var(--space-4);margin-top:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.surface-card,.card,.settings-card,.course-card,.import-card,.modal-card,.analysis-panel,.mode-summary,.board-shell,.puzzle-header-notes,.empty-state,.snapshot-row,.override-preview{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-card)}.card,.settings-card,.import-card,.analysis-panel,.mode-summary,.board-shell,.puzzle-header-notes,.empty-state{padding:var(--space-5)}.card,.settings-card,.import-card,.course-card,.snapshot-row,.empty-state,.overview-tile{transition:transform var(--motion-fast),box-shadow var(--motion-fast),border-color var(--motion-fast)}.card:hover,.settings-card:hover,.import-card:hover,.course-card:hover,.empty-state:hover,.snapshot-row:hover{transform:translateY(-1px);box-shadow:var(--shadow-float)}.app-shell{min-height:100vh;padding-top:var(--safe-area-top);padding-right:var(--safe-area-right);padding-bottom:var(--safe-area-bottom);padding-left:var(--safe-area-left);display:flex;flex-direction:column}.app-header-shell{position:sticky;top:0;z-index:20;padding:var(--space-3) var(--space-4) var(--space-2);background:linear-gradient(180deg,color-mix(in srgb,var(--bg-surface) 98%,var(--bg-canvas-alt) 2%),color-mix(in srgb,var(--bg-surface) 92%,var(--bg-canvas-alt) 8%));border-bottom:1px solid transparent;transition:padding var(--motion-slow),border-color var(--motion-base),box-shadow var(--motion-base),background var(--motion-base)}.app-runtime-stack{width:min(calc(100% - (var(--space-4) * 2)),var(--content-max-width));margin:var(--space-3) auto 0;display:grid;gap:var(--space-2)}.app-runtime-banner{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-3)}.app-runtime-banner .runtime-status-banner{min-width:0}.app-runtime-banner-actions{display:flex;align-items:center;gap:var(--space-2);flex:0 0 auto}.app-header-shell--scrolled{padding-top:var(--space-2);border-bottom-color:color-mix(in srgb,var(--border-subtle) 88%,var(--bg-surface) 12%);box-shadow:var(--shadow-shell-sticky);background:color-mix(in srgb,var(--bg-surface) 96%,var(--bg-canvas-alt) 4%)}.app-header{max-width:var(--content-max-width);margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-4)}.menu-toggle{display:none}.menu-toggle svg{flex-shrink:0}.app-brand{display:inline-flex;align-items:center;justify-self:start;gap:var(--space-3);min-width:0;text-decoration:none}.app-brand-logo{width:38px;height:38px;object-fit:contain;flex-shrink:0;transition:width var(--motion-base),height var(--motion-base),transform var(--motion-base)}.app-header-shell--scrolled .app-brand-logo{width:34px;height:34px;transform:translateY(-1px)}.app-title{color:var(--text-primary);font-family:var(--font-heading);font-size:clamp(1.3rem,1rem + .9vw,2rem);font-weight:var(--weight-bold);line-height:1.05;letter-spacing:-.03em;white-space:nowrap}.app-nav{display:flex;justify-self:end;gap:var(--space-2);align-items:center;justify-content:flex-end;flex-wrap:wrap}.app-nav a{text-decoration:none;color:var(--text-primary);border:1px solid color-mix(in srgb,var(--border-subtle) 82%,var(--bg-surface) 18%);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--bg-surface) 84%,var(--bg-elevated) 16%);box-shadow:var(--shadow-pill-surface);padding:calc(var(--space-2) + 1px) var(--space-4);font-weight:var(--weight-semibold);min-height:44px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;transition:transform var(--motion-fast),box-shadow var(--motion-fast),border-color var(--motion-fast),background var(--motion-fast),color var(--motion-fast)}.app-nav a:hover{transform:translateY(-1px);box-shadow:var(--shadow-card);border-color:color-mix(in srgb,var(--action-primary) 20%,var(--border-subtle))}.app-nav a.router-link-exact-active{color:var(--text-inverse);border-color:var(--action-primary);background:var(--action-primary);box-shadow:var(--shadow-pill-active)}.app-main-content{flex:1;min-width:0}.course-selection-page,.overview-page,.settings-page,.puzzle-page,.runtime-placeholder{max-width:var(--content-max-width);margin:0 auto;padding:var(--space-4);padding-bottom:calc(var(--space-8) + var(--safe-area-bottom));display:grid;gap:var(--space-4)}.page-topbar{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr) minmax(0,auto);align-items:center;gap:var(--space-3);padding:var(--space-1) 0}.page-topbar-nav{display:flex;align-items:center;gap:var(--space-1);justify-self:start}.page-topbar-nav-button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0;border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-primary);transition:border-color var(--motion-fast),background var(--motion-fast),transform var(--motion-fast)}.page-topbar-nav-button:hover{border-color:color-mix(in srgb,var(--action-primary) 30%,var(--border-subtle));background:color-mix(in srgb,var(--bg-elevated) 82%,var(--action-primary-soft) 18%)}.page-topbar-nav-button:active{transform:translateY(1px)}.page-topbar-nav-button:disabled{opacity:.5;cursor:not-allowed}.page-topbar-title{margin:0;text-align:center;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-weight:var(--weight-semibold)}.page-topbar-spacer{min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:flex-end}.page-topbar--title-hidden-mobile{grid-template-columns:minmax(0,auto) minmax(0,1fr)}.page-header{display:grid;gap:var(--space-2);padding:var(--space-1) 0 var(--space-2)}.page-header p{font-size:var(--text-md)}.page-header-actions,.sync-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.page-header-copy{display:grid;gap:var(--space-2)}.page-header--home{gap:var(--space-3)}.page-kicker{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--action-primary);font-weight:var(--weight-semibold)}.import-entry-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--space-2)}.import-entry-row--home{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.import-entry-row--home>*{min-width:0}.import-entry-label{display:inline}.import-entry-label--compact{display:none}.import-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-4)}.import-card{display:grid;gap:var(--space-3)}.import-card h2{font-size:var(--text-heading-card)}.import-card label,.modal-card label{display:grid;gap:var(--space-1);font-weight:var(--weight-semibold);color:var(--text-primary);font-size:var(--text-sm)}.mode-explainer,.clone-help,.import-helper{color:var(--text-muted);font-size:var(--text-sm);line-height:1.4}.empty-state{text-align:center;display:grid;gap:var(--space-3);justify-items:center;padding:var(--space-6)}.empty-state-illustration{width:min(100%,260px);height:auto;display:block}.empty-state-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center}.course-list{display:grid;gap:var(--space-4)}.course-card{padding:var(--space-5);display:grid;gap:var(--space-3);position:relative}.course-card--mode-normal,.course-card--mode-woodpecker,.course-card--mode-rush,.course-card--mode-repetition{border-width:2px}.course-card--mode-normal{border-color:var(--action-success)}.course-card--mode-woodpecker{border-color:var(--action-warning)}.course-card--mode-rush{border-color:var(--action-danger-border)}.course-card--mode-repetition{border-color:var(--action-special)}.course-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.course-card-head h3{font-size:var(--text-heading-3)}.course-mode{background:var(--badge-mode-bg);border-color:var(--action-primary-soft);color:var(--action-primary)}.course-mode.mode-normal{background:var(--action-success-soft);border-color:var(--action-success);color:var(--action-success-hover)}.course-mode.mode-woodpecker{background:var(--action-warning-soft);border-color:var(--action-warning);color:var(--action-warning-hover)}.course-mode.mode-rush{background:var(--action-danger-soft);border-color:var(--action-danger-border);color:var(--action-danger-fg)}.course-mode.mode-repetition{background:var(--action-special-soft);border-color:var(--action-special);color:var(--action-special)}.course-mode-explainer{font-size:var(--text-sm)}.course-progress-row{display:flex;align-items:center;gap:var(--space-3)}.course-progress{flex:1;height:12px;border-radius:var(--radius-pill);overflow:hidden;background:var(--progress-track)}.course-progress-value{height:100%;border-radius:inherit;background:var(--action-success)}.course-progress-label{margin:0;min-width:88px;text-align:right;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}.course-stats-row{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0}.course-stats-row--detail{gap:var(--space-1)}.course-stat-chip{border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--bg-elevated);padding:var(--space-1) var(--space-3);font-size:var(--text-sm);color:var(--text-secondary)}.course-stat-chip--detail{padding:var(--space-1) var(--space-2h);font-size:var(--text-xs);color:var(--text-muted)}.course-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-2);position:relative}.course-actions button{width:100%}.course-actions-overflow{position:absolute;right:0;top:calc(100% + var(--space-2));z-index:20;min-width:10rem;display:grid;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:var(--shadow-float)}.course-actions-overflow--inline{position:static;right:auto;top:auto;z-index:auto;min-width:0;grid-column:1 / -1}.overview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,88px));justify-content:start;gap:var(--space-2)}.overview-tile{--overview-tile-accent: color-mix(in srgb, var(--border-subtle) 78%, var(--text-muted) 22%);--overview-tile-tint: var(--bg-elevated);border:1px solid color-mix(in srgb,var(--overview-tile-accent) 32%,var(--border-subtle));border-radius:var(--radius-lg);background:linear-gradient(180deg,color-mix(in srgb,var(--overview-tile-tint) 52%,var(--bg-surface) 48%) 0%,var(--bg-surface) 100%);position:relative;overflow:hidden;padding:var(--space-1);aspect-ratio:1;display:grid;place-items:stretch;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--overview-tile-accent) 12%,transparent),var(--shadow-card)}.overview-tile:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 14% 16%,color-mix(in srgb,var(--text-inverse) 55%,transparent) 0%,transparent 30%),linear-gradient(180deg,color-mix(in srgb,var(--overview-tile-tint) 24%,transparent) 0%,transparent 70%);pointer-events:none}.overview-tile-index{position:absolute;top:var(--space-1);left:var(--space-1);z-index:2;min-width:1.85rem;min-height:1.85rem;padding:0 var(--space-1);border-radius:var(--radius-pill);border:1px solid color-mix(in srgb,var(--overview-tile-accent) 42%,var(--border-subtle));background:color-mix(in srgb,var(--bg-surface) 86%,var(--text-inverse) 14%);color:var(--text-primary);box-shadow:var(--shadow-card);display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-xs);line-height:1}.overview-thumbnail{position:relative;z-index:1;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:1px;padding:1px;aspect-ratio:1;overflow:hidden;border-radius:calc(var(--radius-md) + 2px);background:color-mix(in srgb,var(--overview-tile-accent) 18%,var(--border-subtle));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--text-inverse) 20%,transparent),inset 0 -.4rem .9rem color-mix(in srgb,var(--text-primary) 8%,transparent);font-size:clamp(.72rem,1.1vw + .3rem,1rem)}.overview-thumbnail-square{display:grid;place-items:center;aspect-ratio:1}.overview-thumbnail-square--dark{background:var(--overview-thumb-dark)}.overview-thumbnail-square--light{background:var(--overview-thumb-light)}.overview-thumbnail-piece{font-family:Times New Roman,Georgia,serif;font-size:.92em;line-height:1;transform:translateY(.04em);text-shadow:0 1px 1px color-mix(in srgb,var(--text-primary) 18%,transparent)}.overview-thumbnail-piece--light{color:var(--overview-thumb-piece-light)}.overview-thumbnail-piece--dark{color:var(--overview-thumb-piece-dark)}.tile-not-attempted{--overview-tile-accent: color-mix(in srgb, var(--border-subtle) 78%, var(--text-muted) 22%);--overview-tile-tint: var(--bg-elevated)}.tile-good{--overview-tile-accent: var(--status-good);--overview-tile-tint: var(--tile-good)}.tile-due{--overview-tile-accent: color-mix(in srgb, var(--action-primary) 64%, var(--tile-due) 36%);--overview-tile-tint: var(--tile-due)}.tile-orange{--overview-tile-accent: var(--status-warning-border);--overview-tile-tint: var(--tile-orange)}.tile-amber{--overview-tile-accent: color-mix(in srgb, var(--status-warning-border) 78%, var(--status-warning-fg) 22%);--overview-tile-tint: var(--tile-amber)}.tile-failed{--overview-tile-accent: var(--status-error-fg);--overview-tile-tint: var(--tile-failed)}.overview-tile.tile-skipped{--overview-tile-accent: color-mix(in srgb, var(--text-secondary) 68%, var(--tile-skipped) 32%);--overview-tile-tint: var(--tile-skipped);border-style:dashed;color:var(--text-secondary)}.overview-tile.tile-skipped:after{content:"";position:absolute;left:10%;right:10%;top:54%;height:.2rem;border-radius:999px;background:var(--tile-skipped-strike);transform:translateY(-50%) rotate(-13deg);opacity:.9;z-index:1;pointer-events:none}.overview-preview-float{position:fixed;top:calc(var(--safe-area-top) + 6rem);right:max(var(--space-4),var(--safe-area-right));z-index:25;width:min(24rem,34vw);padding:var(--space-3);pointer-events:none}.overview-preview-modal{width:min(32rem,96vw)}.overview-preview-content{--overview-preview-accent: color-mix(in srgb, var(--border-subtle) 78%, var(--text-muted) 22%);--overview-preview-tint: var(--bg-elevated);display:grid;gap:var(--space-3)}.overview-preview-content.tile-good{--overview-preview-accent: var(--status-good);--overview-preview-tint: var(--tile-good)}.overview-preview-content.tile-due{--overview-preview-accent: color-mix(in srgb, var(--action-primary) 64%, var(--tile-due) 36%);--overview-preview-tint: var(--tile-due)}.overview-preview-content.tile-orange{--overview-preview-accent: var(--status-warning-border);--overview-preview-tint: var(--tile-orange)}.overview-preview-content.tile-amber{--overview-preview-accent: color-mix(in srgb, var(--status-warning-border) 78%, var(--status-warning-fg) 22%);--overview-preview-tint: var(--tile-amber)}.overview-preview-content.tile-failed{--overview-preview-accent: var(--status-error-fg);--overview-preview-tint: var(--tile-failed)}.overview-preview-content.tile-skipped{--overview-preview-accent: color-mix(in srgb, var(--text-secondary) 68%, var(--tile-skipped) 32%);--overview-preview-tint: var(--tile-skipped)}.overview-preview-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.overview-preview-copy{display:grid;gap:var(--space-1)}.overview-preview-copy h2{margin:0}.overview-preview-status{display:inline-flex;align-items:center;gap:var(--space-1);width:fit-content;margin:0;padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);border:1px solid color-mix(in srgb,var(--overview-preview-accent) 34%,var(--border-subtle));background:color-mix(in srgb,var(--overview-preview-tint) 68%,var(--bg-surface) 32%);color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.overview-preview-status-dot{width:.65rem;height:.65rem;border-radius:999px;background:var(--overview-preview-accent);box-shadow:0 0 0 .16rem color-mix(in srgb,var(--overview-preview-accent) 16%,transparent)}.overview-preview-content .board-shell{margin:0;padding:var(--space-4);border-color:color-mix(in srgb,var(--overview-preview-accent) 28%,var(--border-subtle));background:color-mix(in srgb,var(--overview-preview-tint) 18%,var(--bg-surface) 82%);box-shadow:none}.overview-preview-actions{justify-content:flex-end}.overview-header{grid-template-columns:minmax(0,1fr) auto;align-items:start}.overview-course-name{font-size:var(--text-heading-3);color:var(--text-primary);font-weight:var(--weight-semibold)}.overview-lead-copy{max-width:62ch}.overview-header .page-header-actions{justify-self:end;align-self:start}.overview-summary-shell{display:grid;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 88%,var(--bg-surface) 12%),color-mix(in srgb,var(--bg-surface) 95%,var(--bg-canvas-alt) 5%));box-shadow:var(--shadow-card)}.overview-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.overview-summary-head h2{font-size:var(--text-heading-card)}.overview-summary-head p{max-width:64ch;color:var(--text-secondary)}.overview-summary-total{color:var(--text-muted);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.overview-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-2)}.overview-summary-card{position:relative;display:grid;gap:var(--space-1);padding:var(--space-3);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background:var(--bg-surface);overflow:hidden}.overview-summary-card:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:color-mix(in srgb,var(--border-subtle) 78%,var(--text-muted) 22%)}.overview-summary-card-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:var(--weight-semibold)}.overview-summary-card-value{color:var(--text-primary);font-size:var(--text-heading-2)}.overview-summary-card-caption{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.45}.overview-summary-card--primary:before{background:var(--action-primary)}.overview-summary-card--success:before{background:var(--status-good)}.overview-summary-card--warning:before{background:var(--status-warning-border)}.overview-summary-card--danger:before{background:var(--status-error-fg)}.overview-summary-card--neutral:before{background:color-mix(in srgb,var(--border-subtle) 78%,var(--text-muted) 22%)}.about-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4)}.about-card,.about-callout{display:grid;gap:var(--space-2)}.about-card h2,.about-card h3,.about-callout h2,.about-callout h3{margin:0}.welcome-intro-modal .about-callout p{margin:0;color:var(--text-secondary)}.about-contact{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.about-contact-copy{display:grid;gap:var(--space-2);max-width:40rem}.about-contact-url{margin:0;color:var(--text-muted);font-size:var(--text-sm);word-break:break-word}.about-list{margin:0;padding-left:1.2rem;color:var(--text-secondary);display:grid;gap:var(--space-1)}.puzzle-header-notes{display:grid;gap:var(--space-2)}.puzzle-header-title{margin:0;font-family:var(--font-heading);font-size:var(--text-heading-2);color:var(--text-primary);letter-spacing:-.01em;line-height:1.25}.puzzle-header-meta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-width:0}.puzzle-header-meta-text{margin:0;color:var(--text-muted);font-size:var(--text-sm);line-height:1.3;min-width:0}.puzzle-header-notes-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);flex-shrink:0;min-height:32px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--bg-elevated);color:var(--text-secondary);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.puzzle-header-notes-btn:hover:enabled{border-color:color-mix(in srgb,var(--action-config) 30%,var(--border-subtle));color:var(--text-primary)}.puzzle-header-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.mode-label{margin:0;color:var(--text-muted);font-size:var(--text-sm)}.notes-panel{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-elevated);padding:var(--space-3);color:var(--text-secondary)}.notes-panel--plain{white-space:pre-wrap}.notes-panel--structured{display:flex;flex-direction:column;gap:var(--space-2h)}.note-segment{margin:0;line-height:1.5}.note-segment--header{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary);padding-bottom:var(--space-1);border-bottom:1px solid var(--border-subtle);margin-top:var(--space-1)}.note-segment--header:first-child{margin-top:0}.note-segment--text{font-size:var(--text-sm);color:var(--text-secondary)}.note-segment--candidates{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3)}.note-candidate-item{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-primary);font-family:var(--font-heading);padding:var(--space-1) var(--space-2);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.note-segment--quote{border-left:3px solid var(--border-strong);padding:var(--space-1) var(--space-3);color:var(--text-muted);font-style:italic;font-size:var(--text-sm)}.note-segment--divider{display:flex;align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;margin-top:var(--space-1)}.note-segment--divider:before,.note-segment--divider:after{content:"";flex:1;height:1px;background:var(--border-subtle)}.note-divider-label{white-space:nowrap}.timer-label{border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--bg-elevated);color:var(--text-secondary);font-weight:var(--weight-semibold);display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3)}.runtime-status-slot{display:grid}.runtime-status-slot--overlay{align-self:start;max-width:min(100%,16rem);z-index:2;pointer-events:none}.runtime-status-inline-slot{min-height:1.25rem;max-height:1.25rem;display:flex;align-items:center;pointer-events:none}.runtime-status-inline{margin:0;width:100%;color:var(--text-secondary);font-size:var(--text-xs);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.runtime-status-inline--success{color:var(--status-good-fg)}.runtime-status-inline--warning{color:var(--status-warning-fg)}.runtime-status-inline--danger{color:var(--status-error-fg)}.runtime-status-inline--hint{color:var(--action-hint-fg)}.runtime-status-inline--info{color:var(--text-secondary)}.runtime-status-banner{--runtime-status-border: color-mix(in srgb, var(--action-config) 24%, var(--border-subtle));--runtime-status-bg: linear-gradient( 135deg, color-mix(in srgb, var(--action-config-soft) 58%, var(--bg-surface) 42%), color-mix(in srgb, var(--bg-elevated) 90%, var(--bg-surface) 10%) );--runtime-status-icon-bg: color-mix(in srgb, var(--bg-surface) 88%, var(--action-config-soft) 12%);--runtime-status-icon-fg: var(--action-config);--runtime-status-label-fg: color-mix(in srgb, var(--action-config) 82%, var(--text-primary) 18%);border:1px solid var(--runtime-status-border);border-radius:var(--radius-lg);background:var(--runtime-status-bg);box-shadow:var(--shadow-card);display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-3);align-items:start;padding:var(--space-3)}.runtime-status-banner--success{--runtime-status-border: color-mix(in srgb, var(--status-good) 34%, var(--border-subtle));--runtime-status-bg: linear-gradient( 135deg, color-mix(in srgb, var(--action-success-soft) 62%, var(--bg-surface) 38%), color-mix(in srgb, var(--bg-elevated) 90%, var(--bg-surface) 10%) );--runtime-status-icon-bg: color-mix(in srgb, var(--bg-surface) 84%, var(--action-success-soft) 16%);--runtime-status-icon-fg: var(--status-good);--runtime-status-label-fg: var(--status-good-fg)}.runtime-status-banner--warning{--runtime-status-border: color-mix(in srgb, var(--status-warning-border) 34%, var(--border-subtle));--runtime-status-bg: linear-gradient( 135deg, color-mix(in srgb, var(--status-warning-bg) 68%, var(--bg-surface) 32%), color-mix(in srgb, var(--bg-elevated) 90%, var(--bg-surface) 10%) );--runtime-status-icon-bg: color-mix(in srgb, var(--bg-surface) 84%, var(--status-warning-bg) 16%);--runtime-status-icon-fg: var(--status-warning-border);--runtime-status-label-fg: var(--status-warning-fg)}.runtime-status-banner--danger{--runtime-status-border: color-mix(in srgb, var(--action-danger) 28%, var(--border-subtle));--runtime-status-bg: linear-gradient( 135deg, color-mix(in srgb, var(--status-error-bg) 70%, var(--bg-surface) 30%), color-mix(in srgb, var(--bg-elevated) 90%, var(--bg-surface) 10%) );--runtime-status-icon-bg: color-mix(in srgb, var(--bg-surface) 84%, var(--status-error-bg) 16%);--runtime-status-icon-fg: var(--action-danger-fg);--runtime-status-label-fg: var(--status-error-fg)}.runtime-status-banner--hint{--runtime-status-border: color-mix(in srgb, var(--action-hint) 32%, var(--border-subtle));--runtime-status-bg: linear-gradient( 135deg, color-mix(in srgb, var(--action-hint-soft) 72%, var(--bg-surface) 28%), color-mix(in srgb, var(--bg-elevated) 90%, var(--bg-surface) 10%) );--runtime-status-icon-bg: color-mix(in srgb, var(--bg-surface) 82%, var(--action-hint-soft) 18%);--runtime-status-icon-fg: var(--action-hint);--runtime-status-label-fg: var(--action-hint-fg)}.runtime-status-icon-wrap{width:2.5rem;min-height:2.5rem;border-radius:calc(var(--radius-md) + 2px);background:var(--runtime-status-icon-bg);color:var(--runtime-status-icon-fg);display:grid;place-items:center;box-shadow:var(--shadow-pill-surface)}.runtime-status-icon{display:inline-flex;align-items:center;justify-content:center}.runtime-status-copy{min-width:0;display:grid;gap:var(--space-1)}.runtime-status-label,.runtime-status-message{margin:0}.runtime-status-label{color:var(--runtime-status-label-fg);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase}.runtime-status-message{color:var(--text-primary);font-size:var(--text-sm);line-height:1.45;text-wrap:pretty}.runtime-status-banner--compact{gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-4);border-radius:var(--radius-xl);box-shadow:var(--shadow-pill-surface)}.runtime-status-banner--compact .runtime-status-copy{align-content:center}.runtime-status-banner--compact .runtime-status-icon-wrap{width:2.5rem;min-height:2.5rem;border-radius:var(--radius-pill);box-shadow:none}.runtime-status-message--compact{font-size:var(--text-md);line-height:1.4}.board-shell{display:grid;gap:var(--space-3)}.puzzle-page{padding-bottom:var(--keyboard-inset, 0px)}.puzzle-runtime-split{display:grid;gap:var(--space-3)}.puzzle-runtime-split--active{grid-template-columns:minmax(0,1fr) minmax(280px,420px);align-items:start}.puzzle-runtime-split--active .puzzle-runtime-board-stack{max-width:640px}.puzzle-runtime-side-panel{display:grid;gap:var(--space-3);min-width:0}.modal-overlay,.modal-card{padding-bottom:var(--keyboard-inset, 0px)}@media(min-width:900px){.settings-page--wide-grid .settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.puzzle-runtime-board-stack,.puzzle-runtime-controls-stack,.puzzle-runtime-stage-cluster{display:grid;gap:var(--space-3)}.puzzle-runtime-board-column{min-width:0;display:grid;gap:var(--space-3);position:relative;overflow:visible}.board-shell-header{display:flex;align-items:center;justify-content:space-between}.chessboard-stage{width:min(100%,var(--board-max-size, 34rem));justify-self:center;position:relative}.board-resize-handle{position:absolute;right:-6px;bottom:-6px;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;padding:0;margin:0;border:1px solid var(--border-subtle);border-radius:5px;background:color-mix(in srgb,var(--bg-elevated) 92%,transparent);color:var(--text-secondary);cursor:nwse-resize;touch-action:none;-webkit-user-select:none;user-select:none;z-index:4;opacity:.45;transition:opacity var(--motion-base),background-color var(--motion-base),border-color var(--motion-base),box-shadow var(--motion-base),transform var(--motion-base)}.board-resize-handle:hover,.board-resize-handle:focus-visible{opacity:1;background:var(--bg-surface);border-color:var(--border-strong);box-shadow:0 4px 14px -6px color-mix(in srgb,var(--text-primary) 45%,transparent);transform:scale(1.08)}.board-resize-handle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.board-resize-handle--active{opacity:1;background:var(--bg-surface);border-color:var(--action-primary);color:var(--action-primary);box-shadow:0 6px 18px -6px color-mix(in srgb,var(--action-primary) 55%,transparent);transform:scale(1.12)}.board-resize-handle__glyph{width:12px;height:12px;display:block;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><g fill='none' stroke='%23364055' stroke-width='1.4' stroke-linecap='round'><path d='M9.5 2.5 L2.5 9.5'/><path d='M9.5 6.2 L6.2 9.5'/><path d='M9.5 2.5 L5.8 2.5 M9.5 2.5 L9.5 6.2'/></g></svg>");background-repeat:no-repeat;background-position:center;background-size:contain}.board-resize-handle--active .board-resize-handle__glyph{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><g fill='none' stroke='%233d66cc' stroke-width='1.4' stroke-linecap='round'><path d='M9.5 2.5 L2.5 9.5'/><path d='M9.5 6.2 L6.2 9.5'/><path d='M9.5 2.5 L5.8 2.5 M9.5 2.5 L9.5 6.2'/></g></svg>")}@media(max-width:760px){.board-resize-handle{display:none!important}}.chessboard-canvas{width:100%}.board-shell label{display:grid;gap:var(--space-1);font-weight:var(--weight-semibold);color:var(--text-primary);font-size:var(--text-sm)}.fen-text,.expected-hint,.queue-label{font-size:var(--text-sm);color:var(--text-muted);word-break:break-word}.puzzle-runtime-board-column .runtime-status-slot--overlay{position:absolute;top:var(--space-2);left:50%;width:min(calc(100% - (var(--space-3) * 2)),28rem);max-width:min(100%,28rem);transform:translate(-50%)}@media(min-width:980px){.puzzle-runtime-board-column .runtime-status-slot--overlay{top:50%;left:max(0px,calc(50% - (var(--runtime-board-size, 34rem) / 2) - 7.95rem));width:clamp(9.5rem,16vw,10.5rem);transform:translateY(-50%)}}.puzzle-controls{display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:center}.puzzle-controls-shell{position:relative}.puzzle-action{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-3)}.puzzle-action-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.control-action-label{display:inline;font-size:var(--text-sm);line-height:1.1;text-align:center;white-space:nowrap}.puzzle-controls-overflow{position:absolute;right:0;bottom:calc(100% + var(--space-2));min-width:10.5rem;display:grid;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:var(--shadow-float);z-index:20}.puzzle-overflow-action{width:100%;display:inline-flex;align-items:center;justify-content:flex-start;gap:var(--space-2)}.repetition-controls,.analysis-panel{display:grid;gap:var(--space-2)}.analysis-meta{color:var(--text-muted);font-size:var(--text-sm)}.analysis-lines{margin:0;padding-left:var(--space-4);display:grid;gap:var(--space-2)}.analysis-lines li{color:var(--text-primary)}.analysis-score{margin-left:var(--space-1);color:var(--action-special);font-weight:var(--weight-bold)}.analysis-move{margin-left:var(--space-1);color:var(--text-primary);font-weight:var(--weight-semibold)}.analysis-lines code{display:block;margin-top:var(--space-1);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--code-bg);color:var(--code-fg);padding:var(--space-1) var(--space-2);overflow-x:auto}.mode-summary{display:grid;gap:var(--space-2)}.mode-summary-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.mode-summary-list li{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-2h);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-secondary)}.mode-summary-list strong{color:var(--text-primary)}.runtime-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.modal-overlay{position:fixed;inset:0;z-index:70;background:var(--overlay-bg);display:grid;place-items:center;padding:var(--space-4);animation:overlay-enter var(--motion-base)}.modal-card{width:min(760px,96vw);max-height:min(86vh,920px);overflow:auto;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-glass);padding:var(--space-5);display:grid;gap:var(--space-3);animation:dialog-enter var(--motion-slow)}.modal-card--wide{width:min(860px,96vw)}.modal-card--fixed-actions{padding:0;gap:0;overflow:hidden;grid-template-rows:auto minmax(0,1fr) auto}.modal-card--fixed-actions .modal-body{min-height:0;overflow:auto;display:grid;gap:var(--space-3);padding:0 var(--space-5) var(--space-4)}.modal-card--confirm{width:min(480px,92vw)}.modal-actions,.settings-confirm-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:var(--space-2)}.modal-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:var(--space-3)}.modal-header--sticky{position:sticky;top:calc(-1 * var(--space-5));z-index:2;margin-inline:calc(-1 * var(--space-5));margin-top:calc(-1 * var(--space-5));padding:var(--space-5) var(--space-5) var(--space-3);background:linear-gradient(180deg,var(--bg-surface) 0%,var(--bg-surface) calc(100% - 1.25rem),color-mix(in srgb,var(--bg-surface) 0%,transparent) 100%)}.modal-header h2,.modal-header h3{margin:0}.modal-header .btn-icon{justify-self:end}.modal-copy{color:var(--text-secondary)}.modal-footer{display:grid;gap:var(--space-2)}.modal-card--fixed-actions .modal-header--sticky,.modal-card--fixed-actions .modal-footer--sticky{position:static;top:auto;bottom:auto;z-index:auto;margin:0}.modal-card--fixed-actions .modal-header--sticky{padding:var(--space-5) var(--space-5) var(--space-3);background:var(--bg-surface)}.modal-card--fixed-actions .modal-footer--sticky{padding:var(--space-3) var(--space-5) calc(var(--space-3) + var(--safe-area-bottom));background:var(--bg-surface)}.modal-footer--sticky{position:sticky;bottom:calc(-1 * var(--space-5));z-index:1;margin-inline:calc(-1 * var(--space-5));margin-bottom:calc(-1 * var(--space-5));padding:var(--space-3) var(--space-5) calc(var(--space-3) + var(--safe-area-bottom));border-top:1px solid color-mix(in srgb,var(--border-subtle) 88%,var(--bg-surface) 12%);background:linear-gradient(180deg,color-mix(in srgb,var(--bg-surface) 0%,transparent) 0%,var(--bg-surface) 1.25rem,var(--bg-surface) 100%)}.modal-footer--sticky .status-line{margin:0}.modal-advanced{border-top:1px solid var(--border-subtle);padding-top:var(--space-3)}.modal-advanced summary{cursor:pointer;color:var(--text-primary);font-weight:var(--weight-semibold)}.modal-advanced-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-3);margin-top:var(--space-3)}.lichess-theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--space-2);margin-top:var(--space-2)}.lichess-theme-card{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);padding:var(--space-2) var(--space-3);min-height:44px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);cursor:pointer;text-align:left;font-size:var(--text-sm);transition:border-color .15s,background .15s}.lichess-theme-card:hover:enabled{border-color:var(--action-primary)}.lichess-theme-card[aria-pressed=true]{border-color:var(--action-primary);background:var(--action-primary-soft)}.lichess-theme-card:focus-visible{outline:2px solid var(--action-primary);outline-offset:2px}.lichess-theme-category-heading{margin-top:var(--space-3);margin-bottom:var(--space-1);font-size:var(--text-sm);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.lichess-theme-search{width:100%;margin-bottom:var(--space-2)}.segmented{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-1);padding:var(--space-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-elevated)}.segmented.segmented-3{grid-template-columns:repeat(3,minmax(0,1fr))}.segmented.segmented-4{grid-template-columns:repeat(4,minmax(0,1fr))}.segmented.segmented-5{grid-template-columns:repeat(5,minmax(0,1fr))}.segmented button,.segmented-option{min-height:44px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;box-shadow:none;color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.segmented button.active,.segmented-option.active{color:var(--text-inverse);background:var(--action-primary)}.segmented button:hover:enabled,.segmented-option:hover{box-shadow:none;transform:none}.settings-page{gap:var(--space-4)}.settings-page-note{display:grid;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-elevated)}.settings-page-note .badge{width:fit-content}.course-settings-header{gap:var(--space-3)}.course-settings-name{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary)}.course-settings-note{gap:var(--space-2)}.course-settings-note .page-header-actions{align-items:center}.course-settings-missing-state{max-width:42rem;margin:0 auto}.course-settings-missing-state p{max-width:34rem}.runtime-recovery-state{max-width:42rem;margin:0 auto}.runtime-recovery-state p{max-width:34rem}.course-override-shell{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.85fr);gap:var(--space-4);align-items:start}.course-override-main{display:grid;gap:var(--space-4)}.course-override-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.42fr);gap:var(--space-3);align-items:stretch}.course-override-intro-copy{display:grid;gap:var(--space-2)}.course-override-intro-copy .badge{width:fit-content}.course-override-stat{display:grid;gap:var(--space-2);align-content:start;padding:var(--space-3);border-radius:var(--radius-lg);border:1px solid color-mix(in srgb,var(--action-primary) 20%,var(--border-subtle));background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 74%,var(--action-primary-soft) 26%),color-mix(in srgb,var(--bg-surface) 86%,var(--action-primary-soft) 14%))}.course-override-stat-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:var(--weight-semibold)}.course-override-stat strong{font-size:clamp(1.9rem,1.3rem + 1vw,2.6rem);line-height:1;color:var(--text-primary)}.course-override-stat p{color:var(--text-secondary);font-size:var(--text-sm)}.course-override-group,.course-override-actions{display:grid;gap:var(--space-3)}.course-override-group-head{display:grid;gap:var(--space-1)}.course-override-group-head p{color:var(--text-muted);font-size:var(--text-sm);line-height:1.45}.course-override-group .settings-row{padding:var(--space-3);border-radius:var(--radius-lg);border:1px solid color-mix(in srgb,var(--border-subtle) 88%,var(--bg-surface) 12%);background:linear-gradient(180deg,color-mix(in srgb,var(--bg-surface) 90%,var(--bg-elevated) 10%),color-mix(in srgb,var(--bg-surface) 84%,var(--bg-canvas-alt) 16%))}.course-override-group .settings-row>span{font-size:var(--text-md)}.course-override-group .settings-field-group{max-width:420px}.course-override-group .settings-row select,.course-override-group .settings-row input{width:100%}.override-preview-panel{display:grid;gap:var(--space-3);align-self:start;position:sticky;top:calc(var(--space-4) + 74px)}.override-preview-panel-head{display:grid;gap:var(--space-2)}.override-preview-panel-head .badge{width:fit-content}.override-preview-grid{display:grid;gap:var(--space-2)}.override-preview-item{display:grid;gap:var(--space-1);padding:var(--space-3);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background:color-mix(in srgb,var(--bg-elevated) 84%,var(--bg-surface) 16%)}.override-preview-item.tone-good{border-color:color-mix(in srgb,var(--status-good) 38%,var(--border-subtle));background:color-mix(in srgb,var(--action-success-soft) 50%,var(--bg-surface) 50%)}.override-preview-item.tone-accent{border-color:color-mix(in srgb,var(--action-primary) 26%,var(--border-subtle));background:color-mix(in srgb,var(--action-primary-soft) 44%,var(--bg-surface) 56%)}.override-preview-item.tone-muted{border-color:color-mix(in srgb,var(--status-warning-border) 30%,var(--border-subtle));background:color-mix(in srgb,var(--status-warning-bg) 58%,var(--bg-surface) 42%)}.override-preview-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;font-weight:var(--weight-semibold);color:var(--text-muted)}.override-preview-value{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary)}.override-preview-note,.override-preview-empty{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.45}.override-preview-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-4);align-items:start}.settings-card{display:grid;gap:var(--space-3)}.settings-card-intro,.settings-section-note{color:var(--text-muted);font-size:var(--text-sm);line-height:1.5}.settings-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-3)}.settings-row>span{color:var(--text-primary);font-weight:var(--weight-medium)}.settings-row-copy{display:grid;gap:var(--space-1)}.settings-row-title{color:var(--text-primary);font-weight:var(--weight-medium)}.settings-row-description{color:var(--text-muted);font-size:var(--text-sm);font-weight:400;line-height:1.45}.settings-row .segmented{width:min(360px,100%)}.settings-row--stack{grid-template-columns:1fr;justify-items:start}.settings-field-group{width:100%;display:grid;gap:var(--space-2)}.settings-inline-input{display:grid;gap:var(--space-1);width:100%;font-size:var(--text-sm);color:var(--text-secondary)}.settings-segmented{width:min(100%,520px)}.settings-row input[type=checkbox]{appearance:none;width:48px;height:28px;border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--border-strong);position:relative;margin:0;cursor:pointer;transition:background var(--motion-fast),border-color var(--motion-fast),box-shadow var(--motion-fast);box-shadow:none;min-height:28px}.settings-row input[type=checkbox]:before{content:"";position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:var(--radius-pill);background:var(--bg-surface);transition:transform var(--motion-fast);box-shadow:var(--shadow-card)}.settings-row input[type=checkbox]:checked{background:var(--action-success);border-color:var(--action-success)}.settings-row input[type=checkbox]:checked:before{transform:translate(20px)}.settings-row input[type=checkbox]:disabled{cursor:not-allowed}.settings-confirm{border:1px solid var(--action-danger-border);border-radius:var(--radius-md);background:var(--confirm-danger-bg);padding:var(--space-3);display:grid;gap:var(--space-2)}.settings-reset-card{border-color:var(--action-danger-border);gap:var(--space-3);background:color-mix(in srgb,var(--action-danger-soft) 28%,var(--bg-surface))}.settings-reset-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-3);align-items:center}.settings-reset-copy{display:grid;gap:var(--space-2)}.settings-reset-button{justify-self:end;white-space:nowrap}.override-preview{display:grid;gap:var(--space-2)}.settings-section-divider{height:1px;width:100%;background:var(--border-subtle);margin:var(--space-2) 0 0}.settings-swatch-grid{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:var(--space-2)}.board-size-preview-panel{display:grid;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-elevated) 78%,var(--bg-surface) 22%)}.board-size-preview-head{display:grid;gap:var(--space-1)}.board-size-preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-2)}.board-size-preview-card{display:grid;gap:var(--space-2);padding:var(--space-2h);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface)}.board-size-preview-card.active{border-color:var(--action-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--action-primary) 18%,transparent)}.board-size-preview-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.board-size-preview-label{color:var(--text-primary);font-weight:var(--weight-medium)}.board-size-preview-chip{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:0 var(--space-2);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--action-primary) 16%,var(--bg-elevated));color:var(--action-primary);font-size:var(--text-xs);font-weight:var(--weight-medium)}.board-size-preview-value{color:var(--text-primary);font-size:var(--text-sm)}.board-size-preview-screen{width:100%;min-height:140px;border:1px dashed color-mix(in srgb,var(--border-subtle) 72%,var(--text-muted) 28%);border-radius:var(--radius-md);background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 88%,transparent),color-mix(in srgb,var(--bg-surface) 92%,transparent)),color-mix(in srgb,var(--bg-surface) 90%,var(--bg-elevated) 10%);display:grid;place-items:center;padding:var(--space-2)}.board-size-preview-board{width:var(--board-preview-fill);aspect-ratio:1;max-width:100%;border-radius:calc(var(--radius-md) - 2px);border:1px solid color-mix(in srgb,var(--action-primary) 30%,var(--border-subtle) 70%);box-shadow:var(--shadow-card);background:repeating-conic-gradient(from 45deg,color-mix(in srgb,var(--tile-amber) 68%,var(--bg-surface) 32%) 0 25%,color-mix(in srgb,var(--tile-orange) 40%,var(--bg-surface) 60%) 0 50%) 50% / 25% 25%}.board-size-preview-note{color:var(--text-muted);font-size:var(--text-sm);line-height:1.45}.settings-swatch-card{width:100%;padding:var(--space-2);display:grid;gap:var(--space-2);justify-items:center;background:var(--bg-elevated);box-shadow:none}.settings-swatch-card.active{border-color:var(--action-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--action-primary) 18%,transparent)}.settings-swatch-preview{--swatch-preview-border: color-mix(in srgb, var(--swatch-dark) 60%, black 12%);--swatch-preview-bg-start: color-mix(in srgb, var(--swatch-light) 78%, white 22%);--swatch-preview-bg-end: color-mix(in srgb, var(--swatch-dark) 16%, var(--swatch-light) 84%);width:100%;aspect-ratio:1.35;border-radius:var(--radius-md);border:1px solid var(--swatch-preview-border);background:linear-gradient(180deg,var(--swatch-preview-bg-start),var(--swatch-preview-bg-end));display:grid;place-items:center;padding:var(--space-2h);overflow:hidden}.settings-swatch-board{height:100%;max-width:100%;aspect-ratio:1;display:grid;grid-template-columns:repeat(8,1fr);border-radius:calc(var(--radius-md) - 2px);overflow:hidden;box-shadow:var(--swatch-board-shadow)}.settings-swatch-square{display:flex;align-items:center;justify-content:center}.settings-swatch-square--light{background:var(--swatch-light)}.settings-swatch-square--dark{background:var(--swatch-dark)}.settings-swatch-piece{font-family:"Noto Sans Symbols 2",Segoe UI Symbol,Apple Symbols,serif;font-size:.72rem;line-height:1;text-shadow:var(--swatch-piece-shadow)}.settings-swatch-piece--light{color:var(--swatch-piece-light)}.settings-swatch-piece--dark{color:var(--swatch-piece-dark)}.settings-swatch-label{font-size:var(--text-sm);color:var(--text-primary)}.sync-page .settings-card h2{display:flex;align-items:center;gap:var(--space-1)}.sync-token-field,.sync-token-actions{width:min(100%,32rem)}.sync-token-field>span{color:var(--text-primary);font-weight:var(--weight-medium)}.snapshot-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.snapshot-row{padding:var(--space-3);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.storage-list{display:grid;gap:var(--space-2)}.storage-item{display:flex;align-items:center;gap:var(--space-2);min-height:44px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-elevated);padding:var(--space-2) var(--space-2h)}.storage-item input[type=checkbox]{margin:0;width:18px;height:18px;min-height:18px;accent-color:var(--action-special)}.analytics-page{gap:var(--space-4)}.analytics-header{gap:var(--space-3)}.analytics-summary-band{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-3)}.analytics-summary-block{display:grid;gap:var(--space-1)}.analytics-summary-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:var(--weight-semibold)}.analytics-summary-value{color:var(--text-primary);font-weight:var(--weight-semibold);font-size:var(--text-md)}.analytics-metric-grid,.analytics-chart-grid,.analytics-detail-grid{display:grid;gap:var(--space-4)}.analytics-metric-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.analytics-chart-grid,.analytics-detail-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.analytics-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.analytics-table th,.analytics-table td{text-align:left;padding:var(--space-2);border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}.analytics-table th{color:var(--text-primary)}.metric-card{display:grid;gap:var(--space-2);position:relative;overflow:hidden}.metric-card:before{content:"";position:absolute;inset:0 auto 0 0;width:6px;background:color-mix(in srgb,var(--action-primary) 55%,var(--border-subtle))}.metric-card--completion:before{background:color-mix(in srgb,var(--action-primary) 68%,var(--status-good) 32%)}.metric-card--accuracy:before{background:color-mix(in srgb,var(--status-good) 78%,var(--action-primary) 22%)}.metric-card--speed:before{background:color-mix(in srgb,var(--action-special) 76%,var(--action-primary) 24%)}.metric-card--solved:before{background:color-mix(in srgb,var(--status-warning-border) 66%,var(--action-primary) 34%)}.metric-card-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.metric-label{font-size:var(--text-sm);color:var(--text-muted)}.metric-value{font-size:var(--text-metric-xl);font-weight:var(--weight-bold);color:var(--text-primary)}.metric-caption{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.45}.metric-delta{color:var(--status-good-fg);font-weight:var(--weight-semibold)}.trend-card{display:grid;gap:var(--space-3)}.trend-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.trend-card-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);min-width:150px}.trend-card-stats div{display:grid;gap:2px;padding:var(--space-2);border-radius:var(--radius-md);background:color-mix(in srgb,var(--bg-elevated) 84%,var(--bg-surface) 16%)}.trend-card-stats span{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted)}.trend-card-stats strong{color:var(--text-primary)}.trend-chart-shell{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 86%,var(--bg-surface) 14%),color-mix(in srgb,var(--bg-surface) 92%,var(--bg-canvas-alt) 8%));padding:var(--space-2)}.trend-svg{width:100%;height:auto}.trend-grid-line{stroke:color-mix(in srgb,var(--border-subtle) 76%,transparent);stroke-width:1;stroke-dasharray:4 6}.trend-empty{display:grid;place-items:center;min-height:180px;border:1px dashed var(--border-subtle);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-elevated) 82%,var(--bg-surface) 18%);color:var(--text-secondary);text-align:center;padding:var(--space-4)}.trend-axis-label{font-size:var(--text-xs);color:var(--text-muted);line-height:1.45}.analytics-breakdown-card,.analytics-export-card{display:grid;gap:var(--space-3)}.analytics-table-shell{overflow-x:auto}.analytics-table-shell--desktop{display:block}.analytics-table--mode tbody tr{transition:background var(--motion-fast)}.analytics-table--mode tbody tr:hover{background:color-mix(in srgb,var(--bg-elevated) 78%,var(--action-primary-soft) 22%)}.analytics-mode-cell{display:grid;gap:var(--space-1);min-width:180px}.analytics-mode-cell p{color:var(--text-secondary);font-size:var(--text-xs);line-height:1.45}.analytics-value-stack{display:grid;gap:2px;min-width:112px}.analytics-value-stack strong{color:var(--text-primary)}.analytics-value-stack span{color:var(--text-muted);font-size:var(--text-xs)}.analytics-table-empty td{color:var(--text-muted);text-align:center;padding:var(--space-4)}.analytics-mode-list{display:none;gap:var(--space-3)}.analytics-mode-card{display:grid;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background:color-mix(in srgb,var(--bg-elevated) 78%,var(--bg-surface) 22%)}.analytics-mode-card-head{display:grid;gap:var(--space-2)}.analytics-mode-card-head .course-mode{width:fit-content}.analytics-mode-card-head p{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.45}.analytics-mode-stats{display:grid;gap:var(--space-2)}.analytics-mode-stat{display:grid;gap:var(--space-1);padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-surface)}.analytics-mode-stat dt{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:var(--weight-semibold)}.analytics-mode-stat dd{display:grid;gap:2px;margin:0}.analytics-mode-stat strong{color:var(--text-primary);font-size:var(--text-lg);line-height:1.2}.analytics-mode-stat span,.analytics-mode-empty{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.45}.analytics-mode-empty{display:none;text-align:center;padding:var(--space-4);border:1px dashed var(--border-subtle);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-elevated) 82%,var(--bg-surface) 18%)}.analytics-export-head{display:grid;gap:var(--space-2);align-items:start}.analytics-export-head .badge{width:fit-content}.analytics-export-actions{align-items:stretch}.analytics-empty-state{text-align:left}.qa-event,.qa-readout pre,.qa-event pre{border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-elevated);padding:var(--space-3)}.qa-readout pre,.qa-event pre{background:var(--code-bg);color:var(--code-fg);overflow-x:auto}.import-card button,.runtime-actions button,.modal-actions button,.modal-header button,.sync-actions button,.settings-confirm-actions button,.course-actions button,.promotion-actions button,.empty-state-actions button,.overview-tile{min-height:44px}.promotion-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.sync-actions{align-items:center}.storage-warning{border-color:var(--status-warning-border);background:var(--status-warning-bg)}.storage-warning h2,.storage-warning p{color:var(--status-warning-fg)}@keyframes dialog-enter{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes overlay-enter{0%{opacity:0}to{opacity:1}}@media(min-width:860px){.app-shell{display:flex;flex-direction:column}.app-nav{width:auto}.app-main-content{margin:0 var(--space-4) var(--space-4)}}@media(max-width:959px){.course-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.overview-header{grid-template-columns:1fr}.overview-header .page-header-actions{justify-self:start}}@media(max-width:760px){.app-header-shell{padding:var(--space-2) var(--space-3) var(--space-2)}.app-runtime-stack{width:calc(100% - (var(--space-3) * 2))}.app-runtime-banner{grid-template-columns:minmax(0,1fr)}.app-runtime-banner-actions{justify-content:flex-end}.app-main-content{margin:0 var(--space-3) var(--space-3)}.app-header{gap:var(--space-2)}.app-header-shell--mobile-home .menu-toggle{display:inline-flex;align-items:center;justify-content:center;padding:0;min-width:44px;min-height:44px;border-radius:var(--radius-pill)}.app-header-shell--mobile-home .app-brand{gap:var(--space-2);min-width:0}.app-header-shell--mobile-home .app-brand-logo{width:32px;height:32px}.app-header-shell--mobile-home .app-title{font-size:clamp(1.05rem,.9rem + .9vw,1.35rem);overflow:hidden;text-overflow:ellipsis}.app-header-shell--mobile-home .app-nav{display:none;grid-column:1 / -1;grid-template-columns:1fr;justify-self:stretch;width:100%;margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border-subtle)}.app-header-shell--mobile-home .app-nav.open{display:grid}.app-header-shell--mobile-home .app-nav a{width:100%}.course-selection-page,.overview-page,.settings-page,.runtime-placeholder{padding:var(--space-3);padding-bottom:calc(var(--space-8) + var(--safe-area-bottom))}.puzzle-page{padding:var(--space-2) var(--space-3);padding-bottom:calc(var(--space-8) + var(--safe-area-bottom))}.puzzle-header-notes{gap:var(--space-1);padding:var(--space-2) var(--space-3)}.puzzle-header-title{font-size:var(--text-sm);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.puzzle-header-meta-text{font-size:var(--text-xs)}.puzzle-header-notes-btn{min-width:44px;min-height:32px;padding:var(--space-1) var(--space-2)}.notes-panel{padding:var(--space-2);font-size:var(--text-sm)}.notes-panel--structured{gap:var(--space-2)}.note-candidate-item{padding:var(--space-1) var(--space-2h)}.timer-label{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}.puzzle-runtime-board-stack,.puzzle-runtime-controls-stack,.puzzle-runtime-stage-cluster{gap:var(--space-2)}.board-shell{gap:var(--space-2);padding:var(--space-3)}.board-shell-header p{font-size:var(--text-xs)}.course-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-1)}.course-actions button{min-height:34px;padding:var(--space-1) var(--space-2h);font-size:var(--text-sm)}.course-actions-overflow button{min-height:36px;padding:var(--space-1) var(--space-2h);font-size:var(--text-sm)}.course-card .sync-actions{gap:var(--space-1)}.course-card .sync-actions button{min-height:34px;padding:var(--space-1) var(--space-2h);font-size:var(--text-sm)}.course-stats-row{flex-wrap:nowrap;gap:var(--space-1)}.course-stats-row .course-stat-chip{flex:1 1 0;min-width:0;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overview-grid{grid-template-columns:repeat(auto-fill,minmax(84px,84px))}.overview-preview-overlay{place-items:end center;padding:var(--space-3)}.overview-preview-modal{width:min(100%,34rem);max-height:min(84vh,52rem);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--space-4)}.overview-preview-content .board-shell{padding:var(--space-3)}.course-override-shell,.course-override-intro{grid-template-columns:1fr}.override-preview-panel{position:static}.trend-card-head{display:grid;grid-template-columns:1fr}.trend-card-stats{min-width:0}.analytics-table-shell--desktop{display:none}.analytics-mode-list{display:grid}.analytics-mode-empty{display:block}.puzzle-controls-shell{border:1px solid var(--border-subtle);border-radius:var(--radius-xl);background:var(--bg-surface);padding:var(--space-1h);box-shadow:var(--shadow-float)}.puzzle-controls{gap:var(--space-1);flex-wrap:nowrap;justify-content:stretch}.puzzle-action{flex:1 1 0;min-width:0;min-height:45px;padding:var(--space-1h) var(--space-1);border-radius:var(--radius-md);flex-direction:column;gap:.2rem}.puzzle-action-icon svg{width:14px;height:14px}.control-action-label{display:block;font-size:.51rem;line-height:1.05;text-align:center;white-space:nowrap}.puzzle-controls-overflow{left:0;right:0;min-width:0}.puzzle-overflow-action{min-height:44px;padding:var(--space-2) var(--space-3)}.snapshot-row{flex-direction:column;align-items:flex-start}.import-entry-row--home{gap:var(--space-1)}.import-entry-row--home :is(button,a){padding:var(--space-2h) var(--space-2);font-size:var(--text-sm)}}@media(max-width:480px){.runtime-status-banner{gap:var(--space-2);padding:var(--space-2h) var(--space-3)}.about-contact .btn-primary{width:100%;justify-content:center}.runtime-status-icon-wrap{width:2.25rem;min-height:2.25rem;border-radius:var(--radius-md)}.board-size-preview-screen{min-height:120px}.modal-overlay{padding:var(--space-2)}.course-actions:not(.course-actions--compact){grid-template-columns:1fr}.course-progress-row{flex-direction:column;align-items:stretch}.course-progress-label{text-align:left}.settings-row{grid-template-columns:1fr;justify-items:start}.analytics-summary-band,.analytics-metric-grid,.analytics-chart-grid,.analytics-detail-grid{grid-template-columns:1fr}.analytics-summary-value{font-size:var(--text-sm)}.page-topbar{gap:var(--space-2)}.page-topbar-title{font-size:.68rem}.import-entry-row--home .import-entry-label--full{display:none}.import-entry-row--home .import-entry-label--compact{display:inline;white-space:nowrap}.overview-summary-grid{grid-template-columns:1fr}.course-override-group .settings-row{padding:var(--space-2h)}.settings-row select,.settings-row input,.settings-row textarea{width:100%}.settings-reset-summary{grid-template-columns:1fr;align-items:stretch}.settings-reset-button{width:100%;justify-self:stretch}.modal-card{width:100%;max-width:none;padding:var(--space-4)}.modal-card--fixed-actions{padding:0}.modal-card--fixed-actions .modal-body{padding:0 var(--space-4) var(--space-4)}.modal-card--fixed-actions .modal-header--sticky{padding:var(--space-4) var(--space-4) var(--space-3)}.modal-card--fixed-actions .modal-footer--sticky{padding:var(--space-3) var(--space-4) calc(var(--space-3) + var(--safe-area-bottom))}.modal-header--sticky{top:calc(-1 * var(--space-4));margin-inline:calc(-1 * var(--space-4));margin-top:calc(-1 * var(--space-4));padding:var(--space-4) var(--space-4) var(--space-3)}.modal-footer--sticky{bottom:calc(-1 * var(--space-4));margin-inline:calc(-1 * var(--space-4));margin-bottom:calc(-1 * var(--space-4));padding:var(--space-3) var(--space-4) calc(var(--space-3) + var(--safe-area-bottom))}.runtime-actions,.sync-actions,.modal-actions,.settings-confirm-actions,.empty-state-actions{display:grid;grid-template-columns:1fr}.segmented.segmented-4{grid-template-columns:repeat(2,minmax(0,1fr))}.segmented.segmented-5{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:390px){.course-card-head{display:grid;grid-template-columns:minmax(0,1fr);justify-items:start;gap:var(--space-2)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}}.toast-host{position:fixed;bottom:var(--space-4, 16px);right:var(--space-4, 16px);z-index:100;display:flex;flex-direction:column;gap:var(--space-2, 8px);max-width:min(400px,92vw);pointer-events:none}.toast-item{pointer-events:auto;display:flex;align-items:flex-start;gap:var(--space-2, 8px);padding:var(--space-3, 12px) var(--space-4, 16px);background:var(--bg-elevated, #0f172a);border:1px solid var(--border-subtle, #334155);border-radius:var(--radius-md, 8px);box-shadow:var(--shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, .1));font-family:var(--font-body),sans-serif;color:var(--text-primary, #f8fafc);animation:toast-enter .2s ease-out}@keyframes toast-enter{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.toast-content{flex:1;display:flex;flex-direction:column;gap:2px}.toast-title{font-weight:var(--weight-bold, 600);font-size:.875rem;color:var(--text-primary, #f8fafc)}.toast-message{font-size:.85rem;color:var(--text-secondary, #cbd5e1);line-height:1.4}.toast-dismiss-btn{background:transparent;border:none;color:var(--text-muted, #64748b);cursor:pointer;padding:2px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm, 4px);transition:color .15s ease,background .15s ease;margin-top:-2px;margin-right:-6px}.toast-dismiss-btn:hover{color:var(--text-primary, #f8fafc);background:var(--bg-surface, #1e293b)}.toast-item--success{border-left:4px solid var(--status-good, #10b981)}.toast-item--warning{border-left:4px solid var(--status-warning, #f59e0b)}.toast-item--error{border-left:4px solid var(--status-error, #ef4444)}.toast-item--info{border-left:4px solid var(--focus-ring, #3b82f6)}:root,:root[data-theme=light],:root[data-theme=dark]{font-family:var(--umi-font);--font-body: var(--umi-font);--font-heading: var(--umi-font);--bg-canvas: var(--umi-canvas);--bg-canvas-alt: var(--umi-canvas);--bg-surface: var(--umi-surface);--bg-elevated: var(--umi-surface-subtle);--bg-glass: var(--umi-surface);--bg-muted: var(--umi-surface-subtle);--text-primary: var(--umi-ink);--text-secondary: var(--umi-muted);--text-muted: var(--umi-muted);--text-inverse: var(--umi-on-accent);--border-subtle: var(--umi-line);--border-strong: var(--umi-muted);--focus-ring: var(--umi-focus);--action-primary: var(--umi-accent);--action-primary-hover: var(--umi-accent-hover);--action-primary-soft: var(--umi-accent-soft);--action-secondary: var(--umi-muted);--action-secondary-hover: var(--umi-ink);--action-special: var(--umi-accent);--action-special-hover: var(--umi-accent-hover);--action-special-soft: var(--umi-accent-soft);--action-upload: var(--umi-accent);--action-upload-hover: var(--umi-accent-hover);--action-paste: var(--umi-accent);--action-paste-hover: var(--umi-accent-hover);--action-view: var(--umi-accent);--action-view-hover: var(--umi-accent-hover);--action-view-soft: var(--umi-accent-soft);--action-config: var(--umi-accent);--action-config-hover: var(--umi-accent-hover);--action-config-soft: var(--umi-accent-soft);--action-tactics: var(--umi-success);--action-tactics-hover: var(--umi-success);--action-tactics-soft: var(--umi-success-soft);--action-cloud: var(--umi-accent);--action-cloud-hover: var(--umi-accent-hover);--action-cloud-soft: var(--umi-accent-soft);--action-utility: var(--umi-muted);--action-utility-hover: var(--umi-ink);--action-utility-soft: var(--umi-surface-subtle);--action-danger: var(--umi-danger);--action-danger-hover: var(--umi-danger);--action-danger-fg: var(--umi-danger);--action-danger-soft: var(--umi-danger-soft);--action-danger-border: var(--umi-danger);--action-danger-bg-hover: var(--umi-danger-soft);--confirm-danger-bg: var(--umi-danger-soft);--action-success: var(--umi-success);--action-success-hover: var(--umi-success);--action-success-soft: var(--umi-success-soft);--action-warning: var(--umi-warning);--action-warning-hover: var(--umi-warning);--action-warning-fg: var(--umi-warning);--action-warning-soft: var(--umi-warning-soft);--action-hint: var(--umi-warning);--action-hint-hover: var(--umi-warning);--action-hint-fg: var(--umi-warning);--action-hint-soft: var(--umi-warning-soft);--status-good: var(--umi-success);--status-good-fg: var(--umi-success);--status-warning: var(--umi-warning);--status-warning-bg: var(--umi-warning-soft);--status-warning-border: var(--umi-warning);--status-warning-fg: var(--umi-warning);--status-error: var(--umi-danger);--status-error-bg: var(--umi-danger-soft);--status-error-fg: var(--umi-danger);--status-bad: var(--umi-danger);--status-danger: var(--umi-danger);--badge-mode-bg: var(--umi-accent-soft);--badge-bg: var(--umi-accent-soft);--badge-border: var(--umi-line);--badge-fg: var(--umi-ink);--overlay-bg: var(--umi-overlay);--progress-track: var(--umi-surface-subtle);--hero-from: var(--umi-canvas);--hero-to: var(--umi-canvas);--shadow-card: var(--umi-shadow-sm);--shadow-float: var(--umi-shadow-lg);--shadow-glass: var(--umi-shadow-lg);--shadow-shell-sticky: var(--umi-shadow-sm);--shadow-pill-active: none;--radius-sm: .5rem;--radius-md: .65rem;--radius-lg: .9rem;--radius-xl: 1rem}body{background:var(--umi-canvas)}button{box-shadow:none}button:hover:enabled{box-shadow:none;transform:none}button:disabled,select:disabled,input:disabled,textarea:disabled{opacity:1;color:var(--umi-muted);background:var(--umi-surface-subtle);border-color:var(--umi-line)}.btn-icon,.toast-dismiss-btn{min-width:44px;min-height:44px}.app-shell-content{overflow-wrap:anywhere}.app-shell-content>section{min-width:0}.app-shell-content h1{letter-spacing:-.035em}.app-shell-content h2,.app-shell-content h3{letter-spacing:-.015em}.app-shell-content .page-kicker{color:var(--umi-muted)}.app-shell-content .study-detail-page,.app-shell-content .studies-page{padding-inline:0}input[type=checkbox],input[type=radio]{width:18px;min-height:18px;height:18px;flex-shrink:0;accent-color:var(--umi-accent)}label:has(>input[type=checkbox]),label:has(>input[type=radio]){min-height:44px}.modal-overlay{z-index:200;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.modal-card{max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.toast-host{bottom:calc(16px + env(safe-area-inset-bottom));z-index:210}.toast-item{box-shadow:var(--umi-shadow-lg)}@media(max-width:767px){.app-shell-container .app-shell-content{padding:12px}.app-shell-container .app-shell-content>:is(div,section){padding:0}.app-shell-content h1{font-size:1.35rem;line-height:1.2}.app-shell-content :is(.page-header,.overview-header){gap:8px;margin-bottom:12px}.app-shell-content .page-header-copy{margin:4px 0}:is(button,a,summary,input,select,textarea):focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.modal-card{width:100%}.modal-card .modal-footer{position:sticky;bottom:0;background:var(--bg-surface)}.toast-host{bottom:calc(72px + env(safe-area-inset-bottom));right:12px;max-width:calc(100vw - 24px)}.app-shell-content .page-header-actions{flex-wrap:wrap;gap:8px}.app-shell-content .study-chapter-row{grid-template-columns:minmax(0,1fr)}.study-chapter-row .study-chapter-meta,.study-chapter-row .study-chapter-board{grid-column:1}.study-chapter-row .study-chapter-board{max-width:180px}.study-chapter-row .study-chapter-preview{white-space:normal;overflow-wrap:anywhere}.app-shell-content .study-chapters-toolbar,.app-shell-content .diagnostics-header{flex-wrap:wrap}.games-openings-samples li{flex-wrap:wrap;gap:4px}.settings-row,.export-actions{min-width:0}.app-shell-content .settings-row{align-items:stretch}.app-shell-content .export-actions,.modal-card .modal-footer{flex-wrap:wrap}}@media(max-width:767px)and (orientation:portrait){body:has(.runtime-banner) .app-shell-content :is(.board-workspace__board,.model-games-board-column)>.chessboard-view,body:has(.runtime-banner) .app-shell-content :is(.board-relative-container,.game-detail-replay-board)>.chessboard-view{width:min(100%,max(240px,calc(100dvh - 445px)));margin-inline:auto}}@media(max-width:1023px){.app-shell-container .app-shell-content :is(button,a[class*=btn],summary){min-height:44px;min-width:44px;box-sizing:border-box}.app-shell-container .app-shell-content :is(input,textarea,select):not([type=checkbox]):not([type=radio]){font-size:16px;min-height:44px}.modal-card :is(input,textarea,select):not([type=checkbox]):not([type=radio]){font-size:16px;min-height:44px}}@media(max-width:1023px)and (max-height:500px)and (orientation:landscape){.toast-host{bottom:calc(12px + env(safe-area-inset-bottom))}}.practice-session-page .feedback-banner--ok{color:var(--umi-success);background:var(--umi-success-soft)}.practice-session-page .feedback-banner--err{color:var(--umi-danger);background:var(--umi-danger-soft)}.practice-session-page .feedback-banner--info,.practice-session-page .feedback-banner--warn{color:var(--umi-warning);background:var(--umi-warning-soft)}.board-controls-group.segmented-5{grid-template-columns:repeat(5,minmax(0,1fr))}.board-controls-group .board-control-btn{padding:8px 0}:root,:root[data-theme=light],:root[data-theme=dark]{--bg-subtle:var(--umi-surface-subtle);--accent-primary:var(--umi-accent);--accent-info:var(--umi-accent);--accent-danger:var(--umi-danger);--accent-accent:var(--umi-warning);--font-mono:var(--umi-mono);--shadow-lg:var(--umi-shadow-lg);--shadow-modal:var(--umi-shadow-lg);--space-1h:.375rem}.app-shell-content .model-games-page{padding:0}@media(max-width:1023px)and (max-height:500px)and (orientation:landscape){.model-games-page .model-games-header{gap:8px}.model-games-header .page-kicker,.model-games-header .page-header-copy{display:none}.model-games-header h1{font-size:1.15rem;margin:0}.model-games-header .model-games-source{width:auto;flex:1;min-width:0}.model-games-page .model-games-source-note{margin:0;font-size:.8125rem}.model-games-replay .model-games-replay-header h2{font-size:1.05rem}}
