:root{color-scheme:light;--bg: #f3f5f9;--surface: #ffffff;--surface-2: #eef1f6;--surface-3: #e3e8f0;--border: #dbe1ea;--border-strong: #c3ccd9;--text: #0f1726;--text-muted: #5a6577;--text-faint: #8791a2;--primary: #1f6feb;--primary-strong: #1558c7;--primary-soft: #e3edfd;--primary-contrast: #ffffff;--accent: #0f9d6e;--accent-soft: #dcf5ec;--warning: #b86e00;--warning-soft: #fdf0d9;--danger: #d02f2f;--danger-soft: #fde6e6;--gold: #d4a017;--silver: #9aa6b5;--bronze: #b8733c;--grid-dot: rgba(15, 23, 38, .07);--shadow-sm: 0 1px 2px rgba(15, 23, 38, .06), 0 1px 1px rgba(15, 23, 38, .04);--shadow-md: 0 6px 20px rgba(15, 23, 38, .08), 0 2px 6px rgba(15, 23, 38, .05);--shadow-lg: 0 18px 48px rgba(15, 23, 38, .18);--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--tap: 48px;--nav-height: 64px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace}:root[data-theme=dark]{color-scheme:dark;--bg: #0b1119;--surface: #121a25;--surface-2: #19232f;--surface-3: #212d3c;--border: #243140;--border-strong: #33445a;--text: #e6ecf4;--text-muted: #98a5b8;--text-faint: #6c788b;--primary: #4d8dff;--primary-strong: #74a6ff;--primary-soft: #16294a;--primary-contrast: #06101f;--accent: #2fcf8f;--accent-soft: #10322a;--warning: #f0a93b;--warning-soft: #3a2a10;--danger: #ff6b6b;--danger-soft: #3d1818;--grid-dot: rgba(230, 236, 244, .06);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 6px 20px rgba(0, 0, 0, .35);--shadow-lg: 0 18px 48px rgba(0, 0, 0, .55)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{margin:0;min-height:100dvh;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}.status-bar{position:fixed;top:0;left:0;right:0;z-index:1000;height:var(--safe-top);background:var(--bg)}:root:has(app-simon-page,app-final-results) .status-bar{background:#070c14}h1,h2,h3,h4,p{margin:0}h1{font-size:1.35rem;font-weight:700;letter-spacing:-.01em}h2{font-size:1.05rem;font-weight:650}h3{font-size:.95rem;font-weight:600}a{color:var(--primary);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.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}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.tabular{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.small{font-size:.85rem}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.page{width:100%;max-width:820px;margin:0 auto;padding:calc(16px + var(--safe-top)) 16px calc(var(--nav-height) + var(--safe-bottom) + 24px);display:flex;flex-direction:column;gap:16px}@media(min-width:900px){.page{padding-top:calc(24px + var(--safe-top))}}.page-head{display:flex;align-items:center;gap:8px;min-height:40px}.page-head h1{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stack{display:flex;flex-direction:column;gap:12px}.stack-sm{display:flex;flex-direction:column;gap:8px}.row{display:flex;align-items:center;gap:8px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:8px}.grow{flex:1;min-width:0}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.78rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:4px 2px -4px}.section-title a,.section-title button{text-transform:none;letter-spacing:0}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:0 18px;border-radius:var(--radius);border:1px solid transparent;background:var(--surface-2);color:var(--text);font-weight:600;font-size:.95rem;cursor:pointer;-webkit-user-select:none;user-select:none;text-decoration:none;transition:background-color .15s,border-color .15s,transform .08s}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn app-icon{flex-shrink:0}.btn-primary{background:var(--primary);color:var(--primary-contrast)}.btn-primary:hover:not(:disabled){background:var(--primary-strong)}.btn-accent{background:var(--accent);color:#fff}.btn-outline{background:transparent;border-color:var(--border-strong)}.btn-outline:hover:not(:disabled){background:var(--surface-2)}.btn-ghost{background:transparent}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-danger{background:var(--danger);color:#fff}.btn-danger-ghost{background:transparent;color:var(--danger)}.btn-danger-ghost:hover:not(:disabled){background:var(--danger-soft)}.btn-sm{min-height:36px;padding:0 12px;font-size:.85rem;border-radius:var(--radius-sm)}.btn-lg{min-height:56px;font-size:1.05rem;border-radius:var(--radius-lg)}.btn-block{width:100%}.icon-btn{display:inline-grid;place-items:center;width:40px;height:40px;flex-shrink:0;border-radius:10px;border:none;background:transparent;color:var(--text-muted);cursor:pointer}.icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card-pad{padding:16px}.list{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;padding:0;margin:0;list-style:none}.list-item{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:10px 14px;border:none;background:transparent;text-align:left;color:inherit;cursor:pointer;text-decoration:none}.list-item+.list-item{border-top:1px solid var(--border)}.list-item:hover{background:var(--surface-2)}li+li>.list-item,li+li.list-item{border-top:1px solid var(--border)}.item-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-sub{font-size:.82rem;color:var(--text-muted)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:650;line-height:1.5;white-space:nowrap;background:var(--surface-2);color:var(--text-muted)}.badge-success{background:var(--accent-soft);color:var(--accent)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-primary{background:var(--primary-soft);color:var(--primary)}.field{display:flex;flex-direction:column;gap:6px}.field>label,.field .label{font-size:.85rem;font-weight:600;color:var(--text-muted)}.input,.textarea,.select{width:100%;min-height:var(--tap);padding:10px 14px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);font-size:16px;transition:border-color .15s,box-shadow .15s}.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.input.ng-invalid.ng-touched,.textarea.ng-invalid.ng-touched,.select.ng-invalid.ng-touched{border-color:var(--danger)}.input::placeholder,.textarea::placeholder,.select::placeholder{color:var(--text-faint)}input[type=number]{appearance:textfield;-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.textarea{min-height:96px;resize:vertical}.hint{font-size:.8rem;color:var(--text-faint)}.field-error{font-size:.82rem;color:var(--danger);font-weight:500}.form-success{display:flex;align-items:center;gap:8px;color:var(--accent)}.form-error{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:var(--radius);background:var(--danger-soft);color:var(--danger);font-size:.88rem;font-weight:500}.switch{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--tap);cursor:pointer}.switch input{appearance:none;position:relative;flex-shrink:0;width:46px;height:28px;margin:0;border-radius:999px;background:var(--surface-3);border:1px solid var(--border-strong);cursor:pointer;transition:background-color .15s}.switch input:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform .15s}.switch input:checked{background:var(--accent);border-color:var(--accent)}.switch input:checked:after{transform:translate(18px)}.switch input:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.progress{height:8px;border-radius:999px;background:var(--surface-3);overflow:hidden}.progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--accent));transition:width .4s ease}.skeleton{border-radius:var(--radius);background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.rank{display:inline-grid;place-items:center;width:34px;height:34px;flex-shrink:0;border-radius:10px;background:var(--surface-2);font-weight:700;font-size:.9rem;font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.rank.rank-1{background:color-mix(in srgb,var(--gold) 22%,transparent);color:color-mix(in srgb,var(--gold) 80%,var(--text))}.rank.rank-2{background:color-mix(in srgb,var(--silver) 25%,transparent);color:color-mix(in srgb,var(--silver) 60%,var(--text))}.rank.rank-3{background:color-mix(in srgb,var(--bronze) 22%,transparent);color:color-mix(in srgb,var(--bronze) 80%,var(--text))}
