@font-face{font-family:Public Sans;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/public-sans-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/public-sans-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora;font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/sora-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora;font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/sora-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}: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;--bg-muted: #e9eef6;--muted-background: #e9eef6;--skeleton-color: #d8deea;--text-primary: #1f2635;--text-secondary: #536079;--text-muted: #65728a;--text-inverse: #f8fbff;--border-subtle: #d8deea;--border-strong: #a8b4cd;--focus-ring: #075fc6;--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: #8b5310;--status-warning-bg: #fff0db;--status-warning-border: #f39a25;--status-warning-fg: #8b5310;--warning-background: #fff0db;--warning-border: #f39a25;--status-error-bg: #ffe3e1;--status-error-fg: #b3342d;--status-diverged: #8b5cf6;--badge-mode-bg: #e8e1ff;--badge-bg: #ece9ff;--badge-border: #d4cbff;--badge-fg: #4e41bb;--blindfold-dot-white: #ffffff;--blindfold-dot-black: #1a1a1a;--blindfold-dot-shadow: 0 0 3px rgb(0 0 0 / 60%);--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;--bg-muted: #222e44;--muted-background: #222e44;--skeleton-color: #36415a;--text-primary: #f0f4ff;--text-secondary: #c1ccde;--text-muted: #9dacc5;--text-inverse: #f5f8ff;--border-subtle: #36415a;--border-strong: #627091;--focus-ring: #9ec5ff;--action-primary: #6889ef;--action-primary-hover: #587adf;--action-secondary: #a7b5cf;--action-secondary-hover: #c3cde0;--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;--warning-background: #3a2d19;--warning-border: #ffb243;--status-error-bg: #472124;--status-error-fg: #ff9d98;--status-diverged: #b18cff;--badge-mode-bg: #2b3157;--badge-bg: #30265b;--badge-border: #443677;--badge-fg: #d7ccff;--blindfold-dot-white: #f0f4ff;--blindfold-dot-black: #0e1321;--blindfold-dot-shadow: 0 0 3px rgb(0 0 0 / 60%);--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;--bg-muted: #e9eef6;--muted-background: #e9eef6;--skeleton-color: #d8deea;--text-primary: #1f2635;--text-secondary: #536079;--text-muted: #65728a;--text-inverse: #f8fbff;--border-subtle: #d8deea;--border-strong: #a8b4cd;--focus-ring: #075fc6;--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: #8b5310;--status-warning-bg: #fff0db;--status-warning-border: #f39a25;--status-warning-fg: #8b5310;--warning-background: #fff0db;--warning-border: #f39a25;--status-error-bg: #ffe3e1;--status-error-fg: #b3342d;--badge-mode-bg: #e8e1ff;--badge-bg: #ece9ff;--badge-border: #d4cbff;--badge-fg: #4e41bb;--blindfold-dot-white: #ffffff;--blindfold-dot-black: #1a1a1a;--blindfold-dot-shadow: 0 0 3px rgb(0 0 0 / 60%);--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)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}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,.btn-icon-sm{min-height:44px;min-width:44px;padding:var(--space-2)}.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-outline--selected{color:var(--text-inverse);border-color:var(--action-primary);background:var(--action-primary);box-shadow:0 0 0 .18rem color-mix(in srgb,var(--action-primary) 16%,transparent)}.btn-outline--selected:hover:enabled{border-color:var(--action-primary-hover);background:var(--action-primary-hover)}.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:44px;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,var(--status-diverged) 16%,var(--bg-surface));color:var(--status-diverged)}.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:44px;min-height:44px;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}.skip-link{position:fixed;z-index:100;top:var(--space-2);left:var(--space-2);transform:translateY(-160%);border:2px solid var(--focus-ring);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-primary);padding:var(--space-2) var(--space-3);font-weight:var(--weight-semibold);text-decoration:none;box-shadow:var(--shadow-float);transition:transform var(--motion-fast)}.skip-link:focus-visible{transform:translateY(0);outline:2px solid var(--focus-ring);outline-offset:2px}.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)}.course-selection-page>*,.overview-page>*,.settings-page>*,.puzzle-page>*,.runtime-placeholder>*{min-width:0}.page-topbar{position:relative;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-menu-toggle,.page-topbar-menu{display:none}.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;grid-template-columns:minmax(0,1fr);gap:var(--space-4);min-width:0}.course-card{padding:var(--space-5);display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3);position:relative;min-width:0}.course-card>*{min-width:0}.course-card--mode-normal,.course-card--mode-woodpecker,.course-card--mode-rush,.course-card--mode-repetition,.course-card--mode-blindfold{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--mode-blindfold{border-color:var(--action-special, var(--action-primary))}.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-blindfold{background:var(--action-special-soft, var(--action-primary-soft));border-color:var(--action-special, var(--action-primary));color:var(--action-special, var(--action-primary))}.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-metadata{display:grid;gap:var(--space-1);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:44px;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;gap:var(--space-2);max-width:100%;min-height:44px;box-sizing:border-box;padding:var(--space-1) var(--space-3)}.timer-label--with-details{justify-content:space-between}.timer-label-text{min-width:0;overflow-wrap:anywhere}.timer-label-details-btn,.timer-label--details-restore{flex-shrink:0;min-height:44px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);border-color:var(--border-subtle);background:var(--bg-surface);color:var(--text-primary);box-shadow:var(--shadow-pill-surface)}.timer-label--details-restore{cursor:pointer;justify-self:start;width:fit-content}.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);min-width:0;max-width:100%}.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{width:100%}.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:hidden}.board-shell-header{display:flex;align-items:center;justify-content:space-between}.board-shell-header-actions{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2)}.chessboard-stage{width:min(100%,var(--board-max-size, 34rem));max-width:100%;box-sizing:border-box;justify-self:center;position:relative;overflow:hidden}.board-resize-rail{width:min(100%,var(--board-max-size, 34rem));max-width:100%;height:44px;box-sizing:border-box;justify-self:center;display:flex;justify-content:flex-end;margin-top:calc(var(--space-3) * -1)}.board-resize-handle{position:relative;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0;margin:0;border:1px solid var(--border-subtle);border-top:0;border-radius:0 0 5px 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;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:enabled,.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:none}.board-resize-handle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-3px}.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:none}.board-resize-handle:active:enabled,button.board-resize-handle.board-resize-handle--active{transform:none}.board-resize-handle__glyph{width:14px;height:14px;display:block;background:linear-gradient(135deg,transparent 0 33%,currentColor 34% 43%,transparent 44% 57%,currentColor 58% 67%,transparent 68%)}@media(max-width:760px){.board-resize-rail,.board-resize-handle{display:none!important}}.chessboard-canvas{width:100%}.chessboard-canvas.pieces-hidden .pieces-layer{visibility:hidden}.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}label.import-warning-confirmation{display:flex;align-items:center;gap:var(--space-2);min-height:44px;margin:0;padding:var(--space-2) var(--space-3);border:1px solid var(--status-warning-border);border-radius:var(--radius-md);background:var(--status-warning-bg);color:var(--status-warning-fg);font-size:var(--text-sm);line-height:1.4;text-align:left}.import-warning-confirmation input[type=checkbox]{flex:0 0 auto;width:22px;height:22px;min-width:22px;min-height:22px;accent-color:var(--action-primary)}.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:not([type=checkbox]){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:52px;height:44px;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:44px}.settings-row input[type=checkbox]:before{content:"";position:absolute;top:3px;left:3px;width:36px;height:36px;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(10px)}.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:44px}.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:44px;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,.course-actions-overflow button{min-height:44px;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:44px;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)}.page-topbar-spacer{gap:var(--space-1)}.page-topbar-menu-toggle{display:inline-flex}.page-topbar-menu{position:absolute;z-index:30;top:calc(100% + var(--space-1));right:0;width:min(100%,17rem);padding:var(--space-2);grid-template-columns:1fr;gap:var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-card);background:var(--bg-surface);box-shadow:var(--shadow-float)}.page-topbar-menu.open{display:grid}.page-topbar-menu a{min-height:44px;padding:calc(var(--space-2) + 1px) var(--space-3);display:inline-flex;align-items:center;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);color:var(--text-primary);font-weight:var(--weight-semibold);text-decoration:none}.page-topbar-menu a.router-link-exact-active{border-color:var(--action-primary);background:var(--action-primary);box-shadow:var(--shadow-pill-active);color:var(--text-inverse)}}@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{grid-template-columns:auto minmax(0,1fr) auto;gap:var(--space-2)}.page-topbar-nav{grid-column:1;grid-row:1}.page-topbar-brand{grid-column:2;grid-row:1;justify-self:center;min-width:0;overflow:hidden}.page-topbar-brand .umi-brand{max-width:100%;overflow:hidden}.page-topbar-brand .umi-brand-copy{min-width:0}.page-topbar-title{grid-column:1 / -1;grid-row:2;text-align:left}.page-topbar-spacer{grid-column:3;grid-row:1}.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:not([type=checkbox]),.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))}}:root[data-tool=tactics]{font-family:var(--umi-font);--font-heading: var(--umi-font);--font-body: var(--umi-font);--bg-canvas: var(--umi-canvas);--bg-canvas-alt: var(--umi-surface-subtle);--bg-surface: var(--umi-surface);--bg-elevated: var(--umi-surface-subtle);--bg-glass: var(--umi-surface);--bg-muted: var(--umi-surface-subtle);--muted-background: 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-line);--focus-ring: var(--umi-focus);--action-primary: var(--umi-accent);--action-on-primary: var(--umi-on-accent);--action-primary-hover: var(--umi-accent-hover);--action-secondary: var(--umi-muted);--action-secondary-hover: var(--umi-ink);--action-special: var(--umi-accent);--action-special-hover: var(--umi-accent-hover);--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-tactics: var(--umi-accent);--action-tactics-hover: var(--umi-accent-hover);--action-config: var(--umi-muted);--action-config-hover: var(--umi-ink);--action-cloud: var(--umi-muted);--action-cloud-hover: var(--umi-ink);--action-primary-soft: var(--umi-accent-soft);--action-special-soft: var(--umi-tactics-soft);--action-view-soft: var(--umi-accent-soft);--action-tactics-soft: var(--umi-accent-soft);--action-config-soft: var(--umi-surface-subtle);--action-cloud-soft: var(--umi-surface-subtle);--action-hint: var(--umi-warning);--action-hint-hover: var(--umi-warning);--action-hint-fg: var(--umi-warning);--action-hint-soft: var(--umi-warning-soft);--action-utility: var(--umi-muted);--action-utility-hover: var(--umi-ink);--action-utility-soft: var(--umi-surface-subtle);--action-success: var(--umi-success);--action-success-hover: var(--umi-success);--action-success-soft: var(--umi-success-soft);--action-danger: var(--umi-danger);--action-danger-hover: var(--umi-danger);--action-danger-soft: var(--umi-danger-soft);--action-danger-fg: var(--umi-danger);--action-danger-border: color-mix(in srgb, var(--umi-danger) 34%, var(--umi-line));--action-danger-bg-hover: color-mix(in srgb, var(--umi-danger-soft) 74%, var(--umi-surface) 26%);--confirm-danger-bg: color-mix(in srgb, var(--umi-danger-soft) 58%, var(--umi-surface) 42%);--action-warning: color-mix(in srgb, var(--umi-warning) 72%, var(--umi-tactics) 28%);--action-warning-hover: color-mix(in srgb, var(--umi-warning) 66%, var(--umi-tactics-action) 34%);--action-warning-soft: color-mix(in srgb, var(--umi-warning-soft) 78%, var(--umi-tactics-soft) 22%);--action-warning-fg: color-mix(in srgb, var(--umi-warning) 72%, var(--umi-tactics-action) 28%);--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);--warning-background: var(--umi-warning-soft);--warning-border: var(--umi-warning);--status-error-bg: var(--umi-danger-soft);--status-error-fg: var(--umi-danger);--badge-mode-bg: var(--umi-tactics-soft);--badge-bg: var(--umi-tactics-soft);--badge-border: color-mix(in srgb, var(--umi-tactics) 36%, var(--umi-line));--badge-fg: var(--umi-tactics-action);--overlay-bg: var(--umi-overlay);--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);--radius-sm: .75rem;--radius-md: 1rem;--radius-lg: 1.25rem;--radius-xl: 1.5rem}body{background:var(--umi-canvas);color:var(--umi-ink)}.app-header-shell{background:color-mix(in srgb,var(--umi-surface) 94%,var(--umi-canvas) 6%);border-bottom-color:var(--umi-line)}.app-header-shell--scrolled{background:color-mix(in srgb,var(--umi-surface) 98%,var(--umi-canvas) 2%);box-shadow:var(--umi-shadow-sm)}.app-header{grid-template-columns:minmax(0,1fr) auto auto;gap:var(--space-3)}.app-brand .chessumi-brand-wordmark,.empty-state-wordmark{color:var(--umi-ink)}.app-theme-control,.page-topbar-theme-control{flex:0 0 auto}.app-theme-control{grid-column:3;grid-row:1}.app-main-content:focus,.app-main-content main:focus{outline:none}.app-nav a,.page-topbar-nav-button,.page-topbar-menu a{border-radius:var(--radius-md);box-shadow:none}.app-nav a.router-link-exact-active,.page-topbar-menu a.router-link-exact-active{box-shadow:none}.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{box-shadow:var(--umi-shadow-sm)}.card:hover,.settings-card:hover,.import-card:hover,.course-card:hover,.empty-state:hover,.snapshot-row:hover{box-shadow:var(--umi-shadow-lg)}.page-header h1,.course-card h3,.settings-card h2,.modal-card h2,.modal-card h3,.analytics-page h1,.overview-page h1,.puzzle-page h1{font-family:var(--umi-font);font-weight:800;letter-spacing:-.035em}.empty-state{justify-items:start;gap:var(--space-3);border-style:dashed}.empty-state-wordmark{display:inline-flex;min-height:44px}.modal-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal-card,.cloud-sync-prompt-sheet__card{border-radius:var(--radius-xl);box-shadow:var(--umi-shadow-lg)}.trend-chart-shell,.analytics-mode-card,.analytics-mode-stat{border-radius:var(--radius-md)}:root[data-tool=tactics] :is(.btn-primary,.btn-special,.btn-upload,.btn-paste){border-color:var(--umi-tactics-action);background:var(--umi-tactics-action);color:var(--umi-on-accent)}:root[data-tool=tactics] :is(.btn-primary,.btn-special,.btn-upload,.btn-paste):hover:enabled,:root[data-tool=tactics] :is(a.btn-primary,a.btn-special,a.btn-upload,a.btn-paste):hover{border-color:var(--umi-accent-hover);background:var(--umi-accent-hover);color:var(--umi-on-accent)}:root[data-tool=tactics] :is(.btn-primary,.btn-special,.btn-upload,.btn-paste):active:enabled{border-color:var(--umi-tactics-action);background:var(--umi-tactics-action);box-shadow:var(--umi-shadow-sm);transform:translateY(1px)}:root[data-tool=tactics] :is(a.btn-primary,a.btn-special,a.btn-upload,a.btn-paste):active{border-color:var(--umi-tactics-action);background:var(--umi-tactics-action);box-shadow:var(--umi-shadow-sm);transform:translateY(1px)}:root[data-tool=tactics] :is(.btn-outline,.btn-muted,.btn-view,.btn-tactics,.btn-config,.btn-cloud,.btn-utility){border-color:color-mix(in srgb,var(--umi-tactics) 34%,var(--umi-line));background:color-mix(in srgb,var(--umi-tactics-soft) 68%,var(--umi-surface) 32%);color:var(--umi-tactics-action)}:root[data-tool=tactics] :is(.btn-outline,.btn-muted,.btn-view,.btn-tactics,.btn-config,.btn-cloud,.btn-utility):hover:enabled,:root[data-tool=tactics] :is(a.btn-outline,a.btn-muted,a.btn-view,a.btn-tactics,a.btn-config,a.btn-cloud,a.btn-utility):hover{border-color:var(--umi-tactics);background:var(--umi-tactics-soft);color:var(--umi-tactics-action)}:root[data-tool=tactics] :is(.btn-outline,.btn-muted,.btn-view,.btn-tactics,.btn-config,.btn-cloud,.btn-utility):active:enabled{border-color:var(--umi-tactics-action);background:color-mix(in srgb,var(--umi-tactics-soft) 78%,var(--umi-tactics) 22%);box-shadow:var(--umi-shadow-sm);transform:translateY(1px)}:root[data-tool=tactics] :is(a.btn-outline,a.btn-muted,a.btn-view,a.btn-tactics,a.btn-config,a.btn-cloud,a.btn-utility):active{border-color:var(--umi-tactics-action);background:color-mix(in srgb,var(--umi-tactics-soft) 78%,var(--umi-tactics) 22%);box-shadow:var(--umi-shadow-sm);transform:translateY(1px)}:root[data-tool=tactics] .btn-hint{border-color:color-mix(in srgb,var(--umi-warning) 42%,var(--umi-line));background:var(--umi-warning-soft);color:var(--umi-warning)}:root[data-tool=tactics] .btn-hint:hover:enabled,:root[data-tool=tactics] a.btn-hint:hover{border-color:var(--umi-warning);background:color-mix(in srgb,var(--umi-warning-soft) 90%,var(--umi-warning) 10%);color:var(--umi-warning)}:root[data-tool=tactics] .btn-warning{border-color:color-mix(in srgb,var(--action-warning) 66%,var(--umi-line));background:color-mix(in srgb,var(--action-warning-soft) 82%,var(--umi-surface) 18%);color:var(--action-warning-fg)}:root[data-tool=tactics] .btn-warning:hover:enabled,:root[data-tool=tactics] a.btn-warning:hover{border-color:var(--action-warning-hover);background:color-mix(in srgb,var(--action-warning-soft) 82%,var(--action-warning-hover) 18%);color:var(--action-warning-fg)}:root[data-tool=tactics] :is(.btn-hint,.btn-warning):active:enabled{box-shadow:var(--umi-shadow-sm);transform:translateY(1px)}:root[data-tool=tactics] :is(a.btn-hint,a.btn-warning):active{box-shadow:var(--umi-shadow-sm);transform:translateY(1px)}:root[data-tool=tactics] :is(.btn-danger,.danger,.danger-button){border-color:color-mix(in srgb,var(--umi-danger) 42%,var(--umi-line));background:var(--umi-danger-soft);color:var(--umi-danger)}:root[data-tool=tactics] :is(.btn-danger,.danger,.danger-button):hover:enabled,:root[data-tool=tactics] a.btn-danger:hover{border-color:var(--umi-danger);background:color-mix(in srgb,var(--umi-danger-soft) 82%,var(--umi-danger) 18%);color:var(--umi-danger)}:root[data-tool=tactics] :is(.btn-danger,.danger,.danger-button):active:enabled{box-shadow:var(--umi-shadow-sm);transform:translateY(1px)}:root[data-tool=tactics] a.btn-danger:active{box-shadow:var(--umi-shadow-sm);transform:translateY(1px)}:root[data-tool=tactics] :is(button,a,.overview-tile):focus-visible{outline-color:var(--umi-focus);outline-offset:3px}:root[data-tool=tactics] :is(.btn-outline--selected,.btn-icon-active,.btn-config.btn-icon-active),:root[data-tool=tactics] .segmented :is(button.active,.segmented-option.active){border-color:var(--umi-tactics-action);background:var(--umi-tactics-action);color:var(--umi-on-accent);box-shadow:0 0 0 .18rem color-mix(in srgb,var(--umi-tactics) 22%,transparent)}:root[data-tool=tactics] :is(.btn-outline--selected,.btn-icon-active,.btn-config.btn-icon-active):hover:enabled,:root[data-tool=tactics] :is(a.btn-outline--selected,a.btn-icon-active,a.btn-config.btn-icon-active):hover,:root[data-tool=tactics] .segmented :is(button.active,.segmented-option.active):hover:enabled{border-color:var(--umi-accent-hover);background:var(--umi-accent-hover);color:var(--umi-on-accent)}:root[data-tool=tactics] :is(.app-nav a,.page-topbar-nav-button,.page-topbar-menu a){border-color:color-mix(in srgb,var(--umi-tactics) 28%,var(--umi-line));background:color-mix(in srgb,var(--umi-tactics-soft) 54%,var(--umi-surface) 46%);color:var(--umi-tactics-action)}:root[data-tool=tactics] :is(.app-nav a:not(.router-link-exact-active),.page-topbar-nav-button,.page-topbar-menu a:not(.router-link-exact-active)):hover:not(:disabled){border-color:var(--umi-tactics);background:var(--umi-tactics-soft);color:var(--umi-tactics-action)}:root[data-tool=tactics] :is(.app-nav a.router-link-exact-active,.page-topbar-menu a.router-link-exact-active){border-color:var(--umi-tactics-action);background:var(--umi-tactics-action);color:var(--umi-on-accent);box-shadow:var(--umi-shadow-sm)}:root[data-tool=tactics] :is(.app-nav a.router-link-exact-active,.page-topbar-menu a.router-link-exact-active):hover{border-color:var(--umi-accent-hover);background:var(--umi-accent-hover);color:var(--umi-on-accent);box-shadow:var(--umi-shadow-sm)}:root[data-tool=tactics] :is(button,.btn-primary,.btn-special,.btn-upload,.btn-paste,.btn-outline,.btn-muted,.btn-view,.btn-tactics,.btn-config,.btn-cloud,.btn-utility,.btn-hint,.btn-warning,.btn-danger,.danger,.danger-button):disabled{border-color:var(--umi-line);background:var(--umi-surface-subtle);color:var(--umi-muted);box-shadow:none;opacity:1;transform:none}@media(max-width:760px){.app-header{grid-template-columns:minmax(0,1fr) auto auto}.app-header-shell--mobile-home .app-nav{grid-row:2}.app-header-shell--mobile-home .app-brand .chessumi-brand-wordmark{max-width:min(50vw,13rem)}.page-topbar{grid-template-columns:auto minmax(0,1fr) auto;gap:var(--space-2)}.page-topbar-nav{grid-column:1;grid-row:1}.page-topbar-brand{grid-column:2;grid-row:1;justify-self:center;min-width:0;overflow:hidden}.page-topbar-brand .umi-brand{max-width:100%;overflow:hidden}.page-topbar-brand .umi-brand-copy{min-width:0}.page-topbar-title{grid-column:1 / -1;grid-row:2;text-align:left}.page-topbar-spacer{grid-column:3;grid-row:1}.page-topbar-theme-control{min-width:44px}}@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}}.cm-chessboard .board.input-enabled .square{cursor:pointer}.cm-chessboard .coordinates,.cm-chessboard .markers-layer,.cm-chessboard .pieces-layer,.cm-chessboard .markers-top-layer{pointer-events:none}.cm-chessboard-content .list-inline{padding-left:0;list-style:none}.cm-chessboard-content .list-inline-item{display:inline-block}.cm-chessboard-content .list-inline-item:not(:last-child){margin-right:1rem}.cm-chessboard-accessibility.visually-hidden{width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cm-chessboard.default .board .square.white{fill:#ecdab9}.cm-chessboard.default .board .square.black{fill:#c5a076}.cm-chessboard.default.border-type-thin .board .border{stroke:#c5a076;stroke-width:.7%;fill:#c5a076}.cm-chessboard.default.border-type-none .board .border{stroke:#c5a076;stroke-width:0;fill:#c5a076}.cm-chessboard.default.border-type-frame .board .border{fill:#ecdab9;stroke:none}.cm-chessboard.default.border-type-frame .board .border-inner{fill:#c5a076;stroke:#c5a076;stroke-width:.7%}.cm-chessboard.default .coordinates{pointer-events:none;-webkit-user-select:none;user-select:none}.cm-chessboard.default .coordinates .coordinate{fill:#b5936d;font-size:7px;cursor:default}.cm-chessboard.default .coordinates .coordinate.black{fill:#eeddbf}.cm-chessboard.default .coordinates .coordinate.white{fill:#b5936d}.cm-chessboard.default-contrast .board .square.white{fill:#ecdab9}.cm-chessboard.default-contrast .board .square.black{fill:#c5a076}.cm-chessboard.default-contrast.border-type-thin .board .border{stroke:#c5a076;stroke-width:.7%;fill:#c5a076}.cm-chessboard.default-contrast.border-type-none .board .border{stroke:#c5a076;stroke-width:0;fill:#c5a076}.cm-chessboard.default-contrast.border-type-frame .board .border{fill:#ecdab9;stroke:none}.cm-chessboard.default-contrast.border-type-frame .board .border-inner{fill:#c5a076;stroke:#c5a076;stroke-width:.7%}.cm-chessboard.default-contrast .coordinates{pointer-events:none;-webkit-user-select:none;user-select:none}.cm-chessboard.default-contrast .coordinates .coordinate{fill:#b5936d;font-size:7px;cursor:default}.cm-chessboard.default-contrast .coordinates .coordinate.black,.cm-chessboard.default-contrast .coordinates .coordinate.white{fill:#333}.cm-chessboard.green .board .square.white{fill:#e0ddcc}.cm-chessboard.green .board .square.black{fill:#4c946a}.cm-chessboard.green.border-type-thin .board .border{stroke:#4c946a;stroke-width:.7%;fill:#4c946a}.cm-chessboard.green.border-type-none .board .border{stroke:#4c946a;stroke-width:0;fill:#4c946a}.cm-chessboard.green.border-type-frame .board .border{fill:#e0ddcc;stroke:none}.cm-chessboard.green.border-type-frame .board .border-inner{fill:#4c946a;stroke:#4c946a;stroke-width:.7%}.cm-chessboard.green .coordinates{pointer-events:none;-webkit-user-select:none;user-select:none}.cm-chessboard.green .coordinates .coordinate{fill:#468862;font-size:7px;cursor:default}.cm-chessboard.green .coordinates .coordinate.black{fill:#e2e0d0}.cm-chessboard.green .coordinates .coordinate.white{fill:#468862}.cm-chessboard.blue .board .square.white{fill:#d8ecfb}.cm-chessboard.blue .board .square.black{fill:#86afcf}.cm-chessboard.blue.border-type-thin .board .border{stroke:#86afcf;stroke-width:.7%;fill:#86afcf}.cm-chessboard.blue.border-type-none .board .border{stroke:#86afcf;stroke-width:0;fill:#86afcf}.cm-chessboard.blue.border-type-frame .board .border{fill:#d8ecfb;stroke:none}.cm-chessboard.blue.border-type-frame .board .border-inner{fill:#86afcf;stroke:#86afcf;stroke-width:.7%}.cm-chessboard.blue .coordinates{pointer-events:none;-webkit-user-select:none;user-select:none}.cm-chessboard.blue .coordinates .coordinate{fill:#7ba1be;font-size:7px;cursor:default}.cm-chessboard.blue .coordinates .coordinate.black{fill:#dbeefb}.cm-chessboard.blue .coordinates .coordinate.white{fill:#7ba1be}.cm-chessboard.chess-club .board .square.white{fill:#e6d3b1}.cm-chessboard.chess-club .board .square.black{fill:#af6b3f}.cm-chessboard.chess-club.border-type-thin .board .border{stroke:#692e2b;stroke-width:.7%;fill:#af6b3f}.cm-chessboard.chess-club.border-type-none .board .border{stroke:#692e2b;stroke-width:0;fill:#af6b3f}.cm-chessboard.chess-club.border-type-frame .board .border{fill:#692e2b;stroke:none}.cm-chessboard.chess-club.border-type-frame .board .border-inner{fill:#af6b3f;stroke:#692e2b;stroke-width:.7%}.cm-chessboard.chess-club .coordinates{pointer-events:none;-webkit-user-select:none;user-select:none}.cm-chessboard.chess-club .coordinates .coordinate{fill:#e6d3b1;font-size:7px;cursor:default}.cm-chessboard.chess-club .coordinates .coordinate.black{fill:#e6d3b1}.cm-chessboard.chess-club .coordinates .coordinate.white{fill:#af6b3f}.cm-chessboard.chessboard-js .board .square.white{fill:#f0d9b5}.cm-chessboard.chessboard-js .board .square.black{fill:#b58863}.cm-chessboard.chessboard-js.border-type-thin .board .border{stroke:#404040;stroke-width:.7%;fill:#b58863}.cm-chessboard.chessboard-js.border-type-none .board .border{stroke:#404040;stroke-width:0;fill:#b58863}.cm-chessboard.chessboard-js.border-type-frame .board .border{fill:#f0d9b5;stroke:none}.cm-chessboard.chessboard-js.border-type-frame .board .border-inner{fill:#b58863;stroke:#404040;stroke-width:.7%}.cm-chessboard.chessboard-js .coordinates{pointer-events:none;-webkit-user-select:none;user-select:none}.cm-chessboard.chessboard-js .coordinates .coordinate{fill:#404040;font-size:7px;cursor:default}.cm-chessboard.chessboard-js .coordinates .coordinate.black{fill:#f0d9b5}.cm-chessboard.chessboard-js .coordinates .coordinate.white{fill:#b58863}.cm-chessboard.black-and-white .board .square.white{fill:#fff}.cm-chessboard.black-and-white .board .square.black{fill:#9c9c9c}.cm-chessboard.black-and-white.border-type-thin .board .border{stroke:#9c9c9c;stroke-width:.7%;fill:#9c9c9c}.cm-chessboard.black-and-white.border-type-none .board .border{stroke:#9c9c9c;stroke-width:0;fill:#9c9c9c}.cm-chessboard.black-and-white.border-type-frame .board .border{fill:#fff;stroke:none}.cm-chessboard.black-and-white.border-type-frame .board .border-inner{fill:#9c9c9c;stroke:#9c9c9c;stroke-width:.7%}.cm-chessboard.black-and-white .coordinates{pointer-events:none;-webkit-user-select:none;user-select:none}.cm-chessboard.black-and-white .coordinates .coordinate{fill:#909090;font-size:7px;cursor:default}.cm-chessboard.black-and-white .coordinates .coordinate.black{fill:#fff}.cm-chessboard.black-and-white .coordinates .coordinate.white{fill:#909090}.cm-chessboard .markers{pointer-events:none}.cm-chessboard .markers .marker.marker-frame{stroke:#000;stroke-width:1.8px;opacity:.5}.cm-chessboard .markers .marker.marker-frame-primary,.cm-chessboard .markers .marker.marker-frame-info{stroke:#00f;stroke-width:1.8px;opacity:.4}.cm-chessboard .markers .marker.marker-frame-danger{stroke:red;stroke-width:1.8px;opacity:.4}.cm-chessboard .markers .marker.marker-frame-warning{stroke:orange;stroke-width:1.8px;opacity:.4}.cm-chessboard .markers .marker.marker-circle{stroke:#000;stroke-width:3px;opacity:.3}.cm-chessboard .markers .marker.marker-circle-primary,.cm-chessboard .markers .marker.marker-circle-info{stroke:#00f;stroke-width:3px;opacity:.4}.cm-chessboard .markers .marker.marker-circle-info-filled{stroke:#00f;fill:#00f;stroke-width:3px;opacity:.4}.cm-chessboard .markers .marker.marker-circle-danger{stroke:red;stroke-width:3px;opacity:.4}.cm-chessboard .markers .marker.marker-circle-danger-filled{stroke:red;fill:red;stroke-width:3px;opacity:.4}.cm-chessboard .markers .marker.marker-circle-warning{stroke:orange;stroke-width:3px;opacity:.4}.cm-chessboard .markers .marker.marker-circle-warning-filled{stroke:orange;fill:orange;stroke-width:3px;opacity:.4}.cm-chessboard .markers .marker.marker-circle-success{stroke:green;stroke-width:3px;opacity:.4}.cm-chessboard .markers .marker.marker-circle-success-filled{stroke:green;fill:green;stroke-width:3px;opacity:.4}.cm-chessboard .markers .marker.marker-square{fill:#000;opacity:.11}.cm-chessboard .markers .marker.marker-dot,.cm-chessboard .markers .marker.marker-bevel{fill:#000;opacity:.2}.analysis-panel-header[data-v-cae9718f]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2)}.analysis-panel-header h3[data-v-cae9718f]{margin:0}.analysis-panel-actions[data-v-cae9718f]{display:flex;flex-wrap:wrap;gap:var(--space-2)}.analysis-helper[data-v-cae9718f]{margin:0;color:var(--text-muted);font-size:var(--text-sm)}.runtime-reflection-panel[data-v-cae9718f]{display:grid;gap:var(--space-2);margin-top:var(--space-3);padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--muted-background)}.runtime-reflection-heading[data-v-cae9718f]{display:flex;flex-wrap:wrap;align-items:start;justify-content:space-between;gap:var(--space-2)}.runtime-reflection-heading h3[data-v-cae9718f],.runtime-reflection-heading p[data-v-cae9718f]{margin:0}.runtime-reflection-heading p[data-v-cae9718f]{margin-top:var(--space-1);color:var(--text-secondary)}.runtime-reflection-panel label[data-v-cae9718f]{display:grid;gap:var(--space-1);font-weight:var(--weight-semibold)}.runtime-reflection-panel textarea[data-v-cae9718f]{width:100%;min-height:88px}.runtime-reflection-conflicts ul[data-v-cae9718f]{display:grid;gap:var(--space-2);margin:var(--space-2) 0 0;padding:0;list-style:none}.runtime-reflection-conflicts li[data-v-cae9718f]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface)}.runtime-reflection-conflicts p[data-v-cae9718f]{margin:0;white-space:pre-wrap}.blindfold-preview-banner[data-v-cae9718f]{font-weight:var(--weight-semibold);color:var(--action-special, var(--action-primary));text-align:center}.blindfold-dots-overlay[data-v-cae9718f]{position:absolute;inset:0;pointer-events:none;z-index:3}.blindfold-dot[data-v-cae9718f]{position:absolute;width:12px;height:12px;border-radius:50%;transform:translate(-50%,-50%);box-shadow:var(--blindfold-dot-shadow)}.blindfold-dot--white[data-v-cae9718f]{background:var(--blindfold-dot-white);border:1px solid var(--border-strong)}.blindfold-dot--black[data-v-cae9718f]{background:var(--blindfold-dot-black);border:1px solid var(--text-primary)}.course-content-card[data-v-cae9718f]{width:min(100% - (2 * var(--space-3)),48rem);margin:var(--space-4) auto;display:grid;gap:var(--space-3)}.course-content-card h2[data-v-cae9718f],.course-content-card h3[data-v-cae9718f],.course-content-card p[data-v-cae9718f]{margin:0}.course-content-card__prompt[data-v-cae9718f],.course-content-card__segment[data-v-cae9718f],.course-content-card__answer[data-v-cae9718f]{white-space:pre-wrap;line-height:1.55}.course-content-card__answer[data-v-cae9718f]{display:grid;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:var(--muted-background)}.course-content-card__solution[data-v-cae9718f]{font-family:var(--font-mono, monospace);overflow-wrap:anywhere}.segmented.segmented-source button[data-v-c76cb71c]{flex-direction:column;gap:2px;line-height:1.15;min-height:44px}.seg-caption[data-v-c76cb71c]{font-size:var(--text-xs, .72rem);font-weight:400;opacity:.8}.today-dashboard[data-v-20d4198f]{margin:0 0 1.25rem;padding:1rem;border:1px solid var(--border-color);border-radius:1rem;background:var(--surface-color)}.today-dashboard-header[data-v-20d4198f]{display:flex;justify-content:space-between;gap:1rem;align-items:end}.today-dashboard-header h2[data-v-20d4198f]{margin:0}.today-dashboard-header p[data-v-20d4198f]{margin:0;color:var(--text-muted)}.today-dashboard-grid[data-v-20d4198f]{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.8rem;margin-top:1rem}.today-card[data-v-20d4198f]{display:flex;flex-direction:column;gap:.55rem;padding:.9rem;min-height:13rem;border:1px solid var(--border-color);border-radius:.75rem;background:var(--muted-background, var(--background-subtle))}.today-card header[data-v-20d4198f]{display:flex;align-items:center;gap:.55rem}.today-card h3[data-v-20d4198f]{overflow:hidden;margin:0;text-overflow:ellipsis;white-space:nowrap}.today-card-main[data-v-20d4198f]{font-size:1.15rem}.today-card p[data-v-20d4198f]{flex:1;margin:0;color:var(--text-muted)}.today-card-actions[data-v-20d4198f]{display:flex;flex-wrap:wrap;gap:.55rem}.today-dashboard-empty[data-v-20d4198f]{margin:1rem 0 0;color:var(--text-muted)}.today-card--skeleton span[data-v-20d4198f]{display:block;height:1rem;border-radius:.3rem;background:var(--skeleton-color);animation:pulse-20d4198f 1.2s ease-in-out infinite alternate}.today-card--skeleton span[data-v-20d4198f]:nth-child(2){width:72%;height:1.5rem}.today-card--skeleton span[data-v-20d4198f]:nth-child(3){width:88%}@keyframes pulse-20d4198f{0%{opacity:.45}to{opacity:1}}@media(max-width:480px){.today-dashboard-header[data-v-20d4198f]{display:block}.today-dashboard-header>p[data-v-20d4198f]{margin-top:.45rem}}.lichess-chapter-toolbar[data-v-28578279]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2, .5rem);margin-top:var(--space-2, .5rem)}.lichess-chapter-toolbar-actions[data-v-28578279]{display:flex;gap:var(--space-1, .25rem);flex-wrap:wrap}.lichess-chapter-count[data-v-28578279]{font-size:.875rem;color:var(--text-secondary, currentColor)}.btn-outline--compact[data-v-28578279]{min-height:44px;padding:.25rem .75rem;font-size:.8125rem}.lichess-chapter-list[data-v-28578279]{list-style:none;margin:var(--space-2, .5rem) 0 0;padding:0;max-height:40vh;overflow-y:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-md, 6px);background:var(--bg-surface)}.lichess-chapter-row[data-v-28578279]{border-bottom:1px solid var(--border-subtle)}.lichess-chapter-row[data-v-28578279]:last-child{border-bottom:none}.lichess-chapter-label[data-v-28578279]{display:flex;align-items:center;gap:var(--space-2, .625rem);min-height:44px;padding:.5rem .75rem;cursor:pointer}.lichess-chapter-label input[type=checkbox][data-v-28578279]{flex:0 0 auto;width:20px;height:20px;margin:0}.lichess-chapter-name[data-v-28578279]{flex:1 1 auto;min-width:0;word-break:break-word;font-size:.9375rem}.sr-only[data-v-78c03fb4]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.course-search[data-v-5c05d07b]{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;min-width:0}.course-search-input[data-v-5c05d07b]{flex:1 1 220px;min-height:44px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-primary);font-size:var(--text-sm)}.course-search-input[data-v-5c05d07b]:focus{outline:none;border-color:var(--action-primary)}.course-search-btn[data-v-5c05d07b],.course-search-clear[data-v-5c05d07b]{min-height:44px}.course-search-empty[data-v-5c05d07b]{color:var(--text-secondary);font-size:var(--text-sm)}.library-toolbar[data-v-5c05d07b],.library-view-tabs[data-v-5c05d07b],.library-lifecycle-actions[data-v-5c05d07b]{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.library-toolbar[data-v-5c05d07b]{justify-content:space-between;margin-bottom:var(--space-3)}.library-view-tabs button[aria-selected=true][data-v-5c05d07b]{background:var(--action-primary);border-color:var(--action-primary);color:var(--action-on-primary)}.library-sort-label[data-v-5c05d07b]{display:flex;align-items:center;gap:var(--space-2)}.library-sort-label select[data-v-5c05d07b]{min-height:44px}.library-lifecycle-list[data-v-5c05d07b]{display:grid;gap:var(--space-3)}.library-lifecycle-card[data-v-5c05d07b]{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface)}.library-lifecycle-card h3[data-v-5c05d07b],.library-lifecycle-card p[data-v-5c05d07b]{margin:0}.library-lifecycle-card p[data-v-5c05d07b]{margin-top:var(--space-1);color:var(--text-secondary)}.reset-undo-action[data-v-5c05d07b]{margin:0 0 var(--space-3)}@media(max-width:480px){.library-toolbar[data-v-5c05d07b],.library-lifecycle-card[data-v-5c05d07b]{align-items:stretch;flex-direction:column}.library-lifecycle-actions[data-v-5c05d07b]{width:100%}}.import-choice-grid[data-v-5c05d07b]{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:var(--space-2)}.import-choice-grid button[data-v-5c05d07b]{display:grid;min-height:88px;text-align:left}.import-choice-grid span[data-v-5c05d07b]{font-size:var(--text-sm);opacity:.9}.import-preview-counts[data-v-5c05d07b]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);margin:var(--space-3) 0}.import-preview-counts div[data-v-5c05d07b]{padding:var(--space-2);border-radius:var(--radius-md);background:var(--bg-subtle)}.import-preview-counts dt[data-v-5c05d07b]{color:var(--text-secondary)}.import-preview-counts dd[data-v-5c05d07b]{margin:var(--space-1) 0 0;font-weight:700}.settings-section-nav[data-v-6601e9b1]{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:1rem}.settings-section-nav button[data-v-6601e9b1],.settings-section-nav a[data-v-6601e9b1]{min-height:44px}.settings-section-nav button[aria-pressed=true][data-v-6601e9b1]{border-color:var(--action-primary);background:var(--action-primary);color:var(--action-on-primary)}.overview-training-controls[data-v-f30ef561]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);margin:var(--space-5) 0;padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface)}.overview-chapter-list[data-v-f30ef561]{display:grid;gap:var(--space-5)}.overview-chapter-group[data-v-f30ef561]{display:grid;gap:var(--space-3)}.overview-chapter-heading[data-v-f30ef561]{display:grid;grid-template-columns:1fr auto;align-items:end;gap:0 var(--space-3)}.overview-chapter-heading .page-kicker[data-v-f30ef561]{grid-column:1 / -1}.overview-chapter-heading h2[data-v-f30ef561],.overview-chapter-heading p[data-v-f30ef561]{margin:0}.overview-chapter-heading p[data-v-f30ef561]{color:var(--text-secondary)}.overview-content-tile[data-v-f30ef561]{min-height:10rem;display:grid;align-content:start;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);color:inherit;text-align:start;cursor:pointer}.overview-content-tile[data-v-f30ef561]:hover,.overview-content-tile[data-v-f30ef561]:focus-visible{border-color:var(--accent-primary);outline:none}.overview-content-tile--prompt_reveal[data-v-f30ef561]{border-inline-start:4px solid var(--accent-primary)}.overview-content-tile--lesson[data-v-f30ef561]{border-inline-start:4px solid var(--accent-secondary)}.overview-content-tile--reference[data-v-f30ef561],.overview-content-tile--unsupported[data-v-f30ef561]{border-inline-start:4px solid var(--text-secondary)}.overview-content-tile__type[data-v-f30ef561]{color:var(--text-secondary);font-size:.78rem;font-weight:700;text-transform:uppercase}.overview-content-tile__copy[data-v-f30ef561]{display:-webkit-box;overflow:hidden;color:var(--text-secondary);line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:3}.overview-content-tile__status[data-v-f30ef561]{margin-top:auto;color:var(--text-secondary);font-size:.85rem}.overview-training-controls label[data-v-f30ef561],.overview-reflection-actions label[data-v-f30ef561]{display:grid;gap:var(--space-1);font-weight:600}.overview-training-controls input[data-v-f30ef561],.overview-training-controls select[data-v-f30ef561],.overview-reflection-actions textarea[data-v-f30ef561]{width:100%;min-height:44px}.overview-queue-actions[data-v-f30ef561]{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:var(--space-2)}.overview-marked-review-list[data-v-f30ef561]{display:grid;gap:var(--space-3);margin:var(--space-5) 0;padding:var(--space-4);border:1px solid var(--action-primary);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--action-primary-soft) 55%,var(--bg-surface) 45%)}.overview-marked-review-list>header[data-v-f30ef561]{display:flex;align-items:start;justify-content:space-between;gap:var(--space-3)}.overview-marked-review-list h2[data-v-f30ef561],.overview-marked-review-list h3[data-v-f30ef561],.overview-marked-review-list p[data-v-f30ef561]{margin:0}.overview-marked-review-list>header p[data-v-f30ef561]{margin-top:var(--space-1);color:var(--text-secondary)}.overview-marked-review-items[data-v-f30ef561]{display:grid;gap:var(--space-2)}.overview-marked-review-item[data-v-f30ef561]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface)}.overview-marked-review-item>div[data-v-f30ef561]{display:grid;gap:var(--space-1);min-width:0}.overview-marked-review-item p[data-v-f30ef561]{color:var(--text-secondary)}.overview-reflection-list[data-v-f30ef561]{display:grid;gap:var(--space-3);margin-top:var(--space-5)}.overview-reflection-list>header h2[data-v-f30ef561],.overview-reflection-list>header p[data-v-f30ef561],.overview-reflection-card h3[data-v-f30ef561],.overview-reflection-card p[data-v-f30ef561]{margin:0}.overview-reflection-list>header p[data-v-f30ef561]{margin-top:var(--space-1);color:var(--text-secondary)}.overview-reflection-card[data-v-f30ef561]{display:grid;grid-template-columns:minmax(13rem,1fr) minmax(16rem,1.2fr);gap:var(--space-4);padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface)}.overview-reflection-copy[data-v-f30ef561]{display:grid;align-content:start;gap:var(--space-2)}.overview-reflection-actions[data-v-f30ef561]{display:grid;gap:var(--space-2);align-content:start}.imported-instruction[data-v-f30ef561]{padding:var(--space-2);border-inline-start:3px solid var(--accent-secondary);background:var(--muted-background);color:var(--text-secondary)}.imported-instruction span[data-v-f30ef561]{display:block;margin-bottom:var(--space-1);font-size:.78rem;font-weight:700;text-transform:uppercase}.overview-statuses[data-v-f30ef561]{color:var(--text-secondary)}.overview-preview-history[data-v-f30ef561]{margin:var(--space-3) 0 0;padding-inline-start:1.15rem;color:var(--text-secondary)}@media(max-width:720px){.overview-training-controls[data-v-f30ef561],.overview-reflection-card[data-v-f30ef561],.overview-chapter-heading[data-v-f30ef561]{grid-template-columns:1fr}.overview-marked-review-list>header[data-v-f30ef561],.overview-marked-review-item[data-v-f30ef561]{align-items:stretch;flex-direction:column}.overview-marked-review-item .btn-outline[data-v-f30ef561]{width:100%}}.history-page[data-v-699788a8]{width:min(100%,68rem);margin:0 auto}.history-filters[data-v-699788a8]{display:flex;flex-wrap:wrap;gap:.8rem;margin:1rem 0}.history-filters label[data-v-699788a8]{display:grid;gap:.3rem;min-width:10rem}.history-list[data-v-699788a8]{display:grid;gap:.65rem;padding:0;list-style:none}.history-entry[data-v-699788a8]{display:flex;justify-content:space-between;gap:1rem;padding:.9rem 1rem;border:1px solid var(--border-color);border-radius:.75rem;background:var(--surface-color)}.history-entry p[data-v-699788a8]{margin:.25rem 0 0;color:var(--text-muted)}.history-entry-meta[data-v-699788a8]{display:flex;flex-wrap:wrap;align-content:flex-start;justify-content:flex-end;gap:.5rem;text-align:right}.history-more[data-v-699788a8]{margin-top:.8rem}@media(max-width:480px){.history-entry[data-v-699788a8]{flex-direction:column}.history-entry-meta[data-v-699788a8]{justify-content:flex-start;text-align:left}}.data-settings-page[data-v-599cc842]{width:min(100%,56rem);margin:0 auto}.settings-card[data-v-599cc842]{margin:1rem 0}.data-warning[data-v-599cc842]{border-color:var(--warning-border);background:var(--warning-background)}.backup-file-label[data-v-599cc842]{display:grid;gap:.4rem;max-width:28rem}.backup-file-label input[data-v-599cc842]{min-height:44px}.restore-point-list[data-v-599cc842]{display:grid;gap:.45rem;padding-left:1.25rem}.restore-point-list li[data-v-599cc842]{display:flex;flex-wrap:wrap;gap:.6rem}.help-page[data-v-1158181c]{width:min(100%,68rem);margin:0 auto}.help-section[data-v-1158181c]{margin:1rem 0;padding:1.1rem;border:1px solid var(--border-color);border-radius:.9rem;background:var(--surface-color)}.help-section h2[data-v-1158181c]{margin-top:0}.help-definition-list[data-v-1158181c]{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.9rem;margin:0}.help-definition-list div[data-v-1158181c]{padding:.8rem;border-radius:.65rem;background:var(--muted-background, var(--background-subtle))}.help-definition-list dt[data-v-1158181c]{font-weight:700}.help-definition-list dd[data-v-1158181c]{margin:.3rem 0 0}
