:root{--color-blue-50: #eef5ff;--color-blue-100: #d9e8ff;--color-blue-200: #bcd6ff;--color-blue-300: #8ebbff;--color-blue-400: #5996ff;--color-blue-500: #3371f5;--color-blue-600: #1f55e0;--color-blue-700: #1a44b8;--color-blue-800: #1b3a91;--color-blue-900: #1b3373;--color-orange-50: #fff6ed;--color-orange-100: #ffead3;--color-orange-200: #ffd1a6;--color-orange-300: #ffb06e;--color-orange-400: #ff8a3d;--color-orange-500: #f76b15;--color-orange-600: #db5209;--color-orange-700: #b53e0b;--color-orange-800: #8f3311;--color-orange-900: #742c12;--color-teal-50: #edfcf9;--color-teal-100: #d2f7f0;--color-teal-200: #a8ede2;--color-teal-300: #6fddce;--color-teal-400: #36c4b4;--color-teal-500: #17a89a;--color-teal-600: #0e877d;--color-teal-700: #106c65;--color-teal-800: #125652;--color-teal-900: #134844;--color-violet-50: #f5f2ff;--color-violet-100: #ece6ff;--color-violet-200: #dacfff;--color-violet-300: #c0abff;--color-violet-400: #a07cfc;--color-violet-500: #8452f6;--color-violet-600: #7232ea;--color-violet-700: #6123cf;--color-violet-800: #511ea9;--color-violet-900: #431c89;--color-green-50: #effdf3;--color-green-100: #d8f9e2;--color-green-200: #b2f1c7;--color-green-300: #7de3a3;--color-green-400: #43cb78;--color-green-500: #22ae5a;--color-green-600: #13803f;--color-green-700: #146534;--color-green-800: #155230;--color-green-900: #14432a;--color-red-50: #fff1f1;--color-red-100: #ffe0e0;--color-red-200: #ffc6c6;--color-red-300: #ff9e9e;--color-red-400: #fc6767;--color-red-500: #f23d3d;--color-red-600: #d41c1c;--color-red-700: #b31717;--color-red-800: #941818;--color-red-900: #7a1a1a;--color-yellow-50: #fffbeb;--color-yellow-100: #fff4c2;--color-yellow-200: #ffe985;--color-yellow-300: #ffda47;--color-yellow-400: #ffc71f;--color-yellow-500: #f2ae07;--color-yellow-600: #cc8a02;--color-yellow-700: #a16806;--color-yellow-800: #84520c;--color-yellow-900: #6e4410;--color-brown-50: #faf4ec;--color-brown-100: #f3e6d8;--color-brown-200: #e5cbae;--color-brown-300: #d1a77a;--color-brown-400: #b9834f;--color-brown-500: #9c6635;--color-brown-600: #7d4f28;--color-brown-700: #5f3c20;--color-brown-800: #452c19;--color-brown-900: #2f1e12;--color-neutral-0: #ffffff;--color-neutral-50: #f7f8fc;--color-neutral-100: #eef0f7;--color-neutral-200: #dfe3ee;--color-neutral-300: #c5cbdb;--color-neutral-400: #9aa2b8;--color-neutral-500: #687189;--color-neutral-600: #545c73;--color-neutral-700: #3f465a;--color-neutral-800: #2a3043;--color-neutral-900: #1a1e2e;--color-bg-page: var(--color-neutral-50);--color-bg-surface: var(--color-neutral-0);--color-bg-surface-muted: var(--color-neutral-100);--color-bg-overlay: rgb(26 30 46 / .48);--color-text-primary: var(--color-neutral-900);--color-text-secondary: var(--color-neutral-600);--color-text-muted: var(--color-neutral-500);--color-text-inverse: var(--color-neutral-0);--color-text-link: var(--color-blue-600);--color-border: var(--color-neutral-200);--color-border-strong: var(--color-neutral-300);--color-focus-ring: var(--color-blue-400);--color-primary: var(--color-blue-600);--color-primary-hover: var(--color-blue-700);--color-primary-active: var(--color-blue-800);--color-primary-subtle: var(--color-blue-50);--color-primary-text: var(--color-blue-600);--color-on-primary: var(--color-neutral-0);--color-accent: var(--color-orange-500);--color-accent-hover: var(--color-orange-600);--color-accent-active: var(--color-orange-700);--color-accent-subtle: var(--color-orange-50);--color-on-accent: var(--color-neutral-900);--color-secondary: var(--color-neutral-200);--color-secondary-hover: var(--color-neutral-300);--color-secondary-active: var(--color-neutral-400);--color-success: var(--color-green-600);--color-success-subtle: var(--color-green-50);--color-success-text: var(--color-green-700);--color-error: var(--color-red-600);--color-error-subtle: var(--color-red-50);--color-error-text: var(--color-red-700);--color-warning: var(--color-yellow-400);--color-warning-subtle: var(--color-yellow-50);--color-warning-text: var(--color-yellow-800);--color-on-level: var(--color-neutral-0);--color-level-simple: var(--color-teal-600);--color-level-simple-subtle: var(--color-teal-50);--color-level-simple-text: var(--color-teal-700);--color-level-small-friends: var(--color-orange-600);--color-level-small-friends-subtle: var(--color-orange-50);--color-level-small-friends-text: var(--color-orange-700);--color-level-big-friends: var(--color-violet-600);--color-level-big-friends-subtle: var(--color-violet-50);--color-level-big-friends-text: var(--color-violet-700);--color-training-turbo: var(--color-orange-600);--color-training-turbo-subtle: var(--color-orange-50);--color-training-turbo-text: var(--color-orange-700);--color-training-columns: var(--color-blue-600);--color-training-columns-subtle: var(--color-blue-50);--color-training-columns-text: var(--color-blue-700);--color-training-abacus: var(--color-brown-600);--color-training-abacus-subtle: var(--color-brown-50);--color-training-abacus-text: var(--color-brown-700);--color-training-abacus-random: var(--color-teal-600);--color-training-abacus-random-subtle: var(--color-teal-50);--color-training-abacus-random-text: var(--color-teal-700);--color-training-anzan: var(--color-violet-600);--color-training-anzan-subtle: var(--color-violet-50);--color-training-anzan-text: var(--color-violet-700);--color-training-negative: var(--color-green-600);--color-training-negative-subtle: var(--color-green-50);--color-training-negative-text: var(--color-green-700);--color-flash-number: var(--color-violet-700);--color-abacus-bg: var(--color-neutral-300);--color-abacus-frame: var(--color-brown-500);--color-abacus-frame-shade: var(--color-brown-700);--color-abacus-beam: var(--color-brown-800);--color-abacus-beam-dot: var(--color-neutral-0);--color-abacus-rod: var(--color-neutral-500);--color-abacus-bead-units: var(--color-orange-500);--color-abacus-bead-tens: var(--color-red-500);--color-abacus-bead-hundreds: var(--color-blue-500);--color-abacus-bead-thousands: var(--color-neutral-0);--color-abacus-bead-hint: var(--color-yellow-300);--color-abacus-button: var(--color-neutral-500);--color-abacus-button-light: var(--color-neutral-300);--color-abacus-button-side: var(--color-neutral-700);--color-abacus-bead-shade: var(--color-neutral-900);--color-abacus-bead-light: var(--color-neutral-0);--color-star: var(--color-yellow-400);--color-star-shade: var(--color-yellow-600);--font-family-base: "Nunito", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--font-size-3xl: 2.5rem;--font-size-4xl: 3.5rem;--font-size-flash: clamp(5rem, 22vw, 12rem);--font-weight-regular: 400;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--line-height-tight: 1.1;--line-height-snug: 1.3;--line-height-base: 1.5;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--size-touch-target: 3rem;--size-control-md: 3rem;--size-control-lg: 3.5rem;--size-content-max: 60rem;--size-toolbar: 4.5rem;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-pill: 999px;--radius-round: 50%;--border-width-sm: 1px;--border-width-md: 2px;--border-width-lg: 3px;--shadow-sm: 0 1px 2px rgb(26 30 46 / .08);--shadow-md: 0 4px 12px rgb(26 30 46 / .1);--shadow-lg: 0 12px 32px rgb(26 30 46 / .14);--focus-ring: 0 0 0 3px var(--color-focus-ring);--depth-button: 4px;--depth-button-pressed: 1px;--duration-fast: .12s;--duration-base: .2s;--duration-slow: .32s;--easing-standard: cubic-bezier(.2, 0, 0, 1);--easing-bounce: cubic-bezier(.34, 1.56, .64, 1);--z-base: 0;--z-dropdown: 100;--z-sticky: 200;--z-overlay: 300;--z-modal: 400;--z-toast: 500}:root{color-scheme:light}:root[data-theme=dark]{color-scheme:dark;--color-bg-page: var(--color-neutral-900);--color-bg-surface: var(--color-neutral-800);--color-bg-surface-muted: var(--color-neutral-700);--color-bg-overlay: rgb(0 0 0 / .6);--color-text-primary: var(--color-neutral-50);--color-text-secondary: var(--color-neutral-300);--color-text-muted: var(--color-neutral-400);--color-text-inverse: var(--color-neutral-900);--color-text-link: var(--color-blue-300);--color-border: var(--color-neutral-700);--color-border-strong: var(--color-neutral-600);--color-primary: var(--color-blue-500);--color-primary-hover: var(--color-blue-400);--color-primary-active: var(--color-blue-700);--color-primary-subtle: var(--color-blue-900);--color-primary-text: var(--color-blue-300);--color-accent-subtle: var(--color-orange-900);--color-secondary: var(--color-neutral-700);--color-secondary-hover: var(--color-neutral-600);--color-secondary-active: var(--color-neutral-900);--color-success: var(--color-green-500);--color-success-subtle: var(--color-green-900);--color-success-text: var(--color-green-300);--color-error: var(--color-red-500);--color-error-subtle: var(--color-red-900);--color-error-text: var(--color-red-300);--color-warning-subtle: var(--color-yellow-900);--color-warning-text: var(--color-yellow-300);--color-level-simple: var(--color-teal-500);--color-level-simple-subtle: var(--color-teal-900);--color-level-simple-text: var(--color-teal-300);--color-level-small-friends: var(--color-orange-500);--color-level-small-friends-subtle: var(--color-orange-900);--color-level-small-friends-text: var(--color-orange-300);--color-level-big-friends: var(--color-violet-500);--color-level-big-friends-subtle: var(--color-violet-900);--color-level-big-friends-text: var(--color-violet-300);--color-training-turbo: var(--color-orange-500);--color-training-turbo-subtle: var(--color-orange-900);--color-training-turbo-text: var(--color-orange-300);--color-training-columns: var(--color-blue-500);--color-training-columns-subtle: var(--color-blue-900);--color-training-columns-text: var(--color-blue-300);--color-training-abacus: var(--color-brown-400);--color-training-abacus-subtle: var(--color-brown-900);--color-training-abacus-text: var(--color-brown-200);--color-training-abacus-random: var(--color-teal-500);--color-training-abacus-random-subtle: var(--color-teal-900);--color-training-abacus-random-text: var(--color-teal-300);--color-training-anzan: var(--color-violet-500);--color-training-anzan-subtle: var(--color-violet-900);--color-training-anzan-text: var(--color-violet-300);--color-training-negative: var(--color-green-500);--color-training-negative-subtle: var(--color-green-900);--color-training-negative-text: var(--color-green-300);--color-flash-number: var(--color-violet-300);--color-abacus-bg: var(--color-neutral-700);--color-abacus-rod: var(--color-neutral-400);--shadow-sm: 0 1px 2px rgb(0 0 0 / .3);--shadow-md: 0 4px 12px rgb(0 0 0 / .35);--shadow-lg: 0 12px 32px rgb(0 0 0 / .45)}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%;z-index:1000}.cdk-overlay-backdrop{position:absolute;inset:0;pointer-events:auto;-webkit-tap-highlight-color:transparent;opacity:0;touch-action:manipulation;z-index:1000;transition:opacity .4s cubic-bezier(.25,.8,.25,1)}@media(prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors:active){.cdk-overlay-backdrop-showing{opacity:.6}}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px;z-index:1000}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-overlay-popover{background:none;border:none;padding:0;outline:0;overflow:visible;position:fixed;pointer-events:none;white-space:normal;color:inherit;text-decoration:none;width:100%;height:100%;inset:0 auto auto 0}.cdk-overlay-popover::backdrop{display:none}.cdk-overlay-popover .cdk-overlay-backdrop{position:fixed;z-index:auto}.cdk-dialog-container:focus{outline:none}.abacus-menu{min-width:12rem;padding:var(--space-2);border:var(--border-width-sm) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-surface);box-shadow:var(--shadow-lg)}.abacus-menu-item{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:var(--size-touch-target);padding:0 var(--space-3);border:0;border-radius:var(--radius-md);background:none;color:var(--color-text-primary);font:inherit;font-weight:var(--font-weight-semibold);text-align:start;text-decoration:none;cursor:pointer}.abacus-menu-item:hover{background:var(--color-bg-surface-muted)}.abacus-menu-item:focus-visible{outline:none;box-shadow:var(--focus-ring)}.abacus-menu-item[aria-current],.abacus-menu-item[aria-expanded=true],.abacus-menu-item[aria-selected=true]{background:var(--color-primary-subtle);color:var(--color-primary-text)}.abacus-menu-item[aria-disabled=true]{background:none;color:var(--color-text-muted);cursor:not-allowed}.abacus-tooltip{pointer-events:none}.abacus-dialog{width:min(32rem,100vw - 2 * var(--space-4));padding:var(--space-6);border-radius:var(--radius-xl);background:var(--color-bg-surface);box-shadow:var(--shadow-lg)}.abacus-dialog-backdrop{background:var(--color-bg-overlay)}.settings-form{display:grid;gap:var(--space-8);max-width:40rem;margin-top:var(--space-6)}.settings-hint{margin:var(--space-2) 0 0;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.settings-group{display:grid;gap:var(--space-3);margin:0;padding:0;border:0}.settings-legend{margin-bottom:var(--space-1);padding:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-extrabold)}.settings-start{justify-self:start}.run-stage{position:relative;display:grid;place-content:center;justify-items:center;gap:var(--space-6);min-height:min(60vh,30rem);margin-top:var(--space-6);padding:var(--space-12) var(--space-6);border-radius:var(--radius-xl);background:var(--color-bg-surface);box-shadow:var(--shadow-md);text-align:center}.run-controls{position:absolute;top:var(--space-3);right:var(--space-3);z-index:1;display:flex;gap:var(--space-2)}.run-step{position:absolute;top:var(--space-5);left:var(--space-5);color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.run-countdown{color:var(--color-text-muted);font-size:var(--font-size-flash);font-weight:var(--font-weight-extrabold);font-variant-numeric:tabular-nums;line-height:1}.run-message{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-lg)}.run-review{display:block;margin-top:var(--space-8)}*,*:before,*:after{box-sizing:border-box}html{scroll-padding-top:var(--size-toolbar)}body{margin:0;font-family:var(--font-family-base);font-size:var(--font-size-md);line-height:var(--line-height-base);color:var(--color-text-primary);background:var(--color-bg-page)}.page-title{margin:0;font-size:var(--font-size-3xl);font-weight:var(--font-weight-extrabold);line-height:var(--line-height-tight)}
