*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overscroll-behavior:none}body{min-height:100dvh;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}#root{min-height:100dvh;display:flex;flex-direction:column}::view-transition-old(root),::view-transition-new(root){animation-duration:.2s;animation-timing-function:ease-in-out}::view-transition-old(root){animation-name:fade-out}::view-transition-new(root){animation-name:fade-in;mix-blend-mode:normal}@keyframes fade-out{to{opacity:0}}@keyframes fade-in{0%{opacity:0}}@font-face{font-family:Geist;src:url(/fonts/Geist-Variable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/GeistMono-Variable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{--color-bg: #fafaf9;--color-surface: #ffffff;--color-surface-raised: #ffffff;--color-border: #e8e5e1;--color-border-light: #f0eeeb;--color-text: #1a1a1a;--color-text-secondary: #5c5c5c;--color-text-muted: #8a8a8a;--color-accent: #2080d0;--color-accent-light: #d6eaff;--color-accent-dark: #1a5f9e;--color-danger: #d63031;--color-danger-bg: rgba(214, 48, 49, .08);--color-warning: #c09020;--color-error: #d63031;--color-on-accent: #fafaf9;--color-favourite: #eab308;--color-favourite-flash: #facc15;--color-favourite-bg: rgba(234, 179, 8, .06);--color-favourite-border: rgba(234, 179, 8, .4);--color-eval-bg: #555;--color-eval-fill: #f0f0f0;--color-resign-hover: #c00;--header-bg: rgba(255, 255, 255, .92);--font-sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-full: 9999px;--shadow-card: 0 1px 3px rgba(0,0,0,.06), 0 0 0 1px rgba(0,0,0,.04);--shadow-btn: 0 1px 2px rgba(0,0,0,.05);--color-spare-piece-bg: var(--color-border-light);--font-size-title: clamp(1.25rem, 1.1rem + .5vw, 1.5rem);--font-size-heading: clamp(1.1rem, 1rem + .4vw, 1.25rem);--font-size-body: clamp(.875rem, .85rem + .15vw, 1rem)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg: #121210;--color-surface: #1a1918;--color-surface-raised: #222120;--color-border: #2e2c29;--color-border-light: #232220;--color-text: #e8e5e1;--color-text-secondary: #a8a4a0;--color-text-muted: #6e6a66;--color-accent: #33a0ff;--color-accent-light: #1a2e42;--color-accent-dark: #7ac4ff;--color-danger: #ff6b6b;--color-danger-bg: rgba(255, 107, 107, .1);--color-warning: #d4a030;--color-error: #ff6b6b;--color-on-accent: #fafaf9;--color-favourite: #eab308;--color-favourite-flash: #facc15;--color-favourite-bg: rgba(234, 179, 8, .08);--color-favourite-border: rgba(234, 179, 8, .4);--color-eval-bg: #333;--color-eval-fill: #f0f0f0;--color-resign-hover: #ff5555;--header-bg: rgba(18, 18, 16, .92);--shadow-card: 0 1px 3px rgba(0,0,0,.2), 0 0 0 1px rgba(255,255,255,.04);--shadow-btn: 0 1px 2px rgba(0,0,0,.15);--color-spare-piece-bg: #3a3835}}:root[data-theme=dark]{--color-bg: #121210;--color-surface: #1a1918;--color-surface-raised: #222120;--color-border: #2e2c29;--color-border-light: #232220;--color-text: #e8e5e1;--color-text-secondary: #a8a4a0;--color-text-muted: #6e6a66;--color-accent: #33a0ff;--color-accent-light: #1a2e42;--color-accent-dark: #7ac4ff;--color-danger: #ff6b6b;--color-danger-bg: rgba(255, 107, 107, .1);--color-warning: #d4a030;--color-error: #ff6b6b;--color-on-accent: #fafaf9;--color-favourite: #eab308;--color-favourite-flash: #facc15;--color-favourite-bg: rgba(234, 179, 8, .08);--color-favourite-border: rgba(234, 179, 8, .4);--color-eval-bg: #333;--color-eval-fill: #f0f0f0;--color-resign-hover: #ff5555;--header-bg: rgba(18, 18, 16, .92);--shadow-card: 0 1px 3px rgba(0,0,0,.2), 0 0 0 1px rgba(255,255,255,.04);--shadow-btn: 0 1px 2px rgba(0,0,0,.15);--color-spare-piece-bg: #3a3835}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-dark)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.skip-to-content{position:absolute;left:-9999px;top:auto;z-index:1000;padding:8px 16px;background:var(--color-text);color:var(--color-bg);font-size:.875rem;font-weight:600;border-radius:var(--radius-sm);text-decoration:none}.skip-to-content:focus{left:16px;top:16px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.container{width:100%;max-width:540px;margin:0 auto;padding:0 max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}@media(min-width:768px){.container{max-width:720px}}@media(min-width:1200px){.container{max-width:860px}}.app-header{position:sticky;top:0;z-index:100;background:var(--header-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--color-border-light);padding-top:env(safe-area-inset-top,0px);view-transition-name:header}.header-inner{margin:0 auto;padding:0 20px;height:52px;display:flex;align-items:center;justify-content:space-between}.header-logo{display:flex;align-items:center;gap:6px;text-decoration:none;color:var(--color-text);font-weight:700;font-size:1rem}.header-logo-icon{width:22px;height:22px;border-radius:4px}.header-nav{display:flex;gap:2px;align-items:center}.nav-link{padding:6px 12px;border-radius:var(--radius-full);text-decoration:none;color:var(--color-text-secondary);font-size:.875rem;font-weight:500;transition:all .15s;background:none;border:none;cursor:pointer;font-family:inherit}.nav-link:hover{color:var(--color-text);background:var(--color-border-light)}@media(hover:none){.nav-link:hover{color:var(--color-text-secondary);background:none}}.nav-link.active{color:var(--color-text);background:var(--color-border-light)}.nav-user-btn{padding:6px;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.user-menu-wrapper{position:relative}.user-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:200px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 8px 24px #0000001f;z-index:100;overflow:hidden;animation:dropdown-fade .12s ease-out}@keyframes dropdown-fade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.user-dropdown-email{padding:10px 14px;font-size:.75rem;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-dropdown-divider{height:1px;background:var(--color-border)}.user-dropdown-item{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;min-height:44px;font-size:.875rem;font-family:inherit;color:var(--color-text);background:none;border:none;cursor:pointer;transition:background .1s}.user-dropdown-item:hover{background:var(--color-border-light)}.user-dropdown-danger{color:var(--color-danger)}.user-dropdown-danger:hover{background:var(--color-danger-bg)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .user-dropdown{box-shadow:0 8px 24px #0006}}:root[data-theme=dark] .user-dropdown{box-shadow:0 8px 24px #0006}.main{padding:10px 0 40px;padding-bottom:calc(40px + env(safe-area-inset-bottom,0px));flex:1}@media(display-mode:standalone){.app-header,.btn,.nav-link,.upload-card,.scan-fab{-webkit-user-select:none;user-select:none}img{-webkit-touch-callout:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 20px;border-radius:var(--radius-md);font-size:.938rem;font-weight:600;cursor:pointer;border:1.5px solid transparent;text-decoration:none;transition:all .15s;width:100%;font-family:inherit;box-shadow:var(--shadow-btn);-webkit-tap-highlight-color:transparent}.btn-primary{background:var(--color-text);color:var(--color-surface);border-color:var(--color-text)}.btn-primary:hover{opacity:.88}@media(hover:none){.btn-primary:hover{opacity:1}.btn-primary:active{opacity:.85}}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{background:transparent;color:var(--color-text);border-color:var(--color-border);box-shadow:none}.btn-secondary:hover{border-color:var(--color-text-muted)}@media(hover:none){.btn-secondary:hover{border-color:var(--color-border)}.btn-secondary:active{border-color:var(--color-text-muted)}}.btn-google{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-google:hover{background:var(--color-border-light)}@media(hover:none){.btn-google:hover{background:var(--color-surface)}.btn-google:active{background:var(--color-border-light)}}.btn-email{background:transparent;color:var(--color-text);border-color:var(--color-border);box-shadow:none}.btn-email:hover{border-color:var(--color-text-muted)}@media(hover:none){.btn-email:hover{border-color:var(--color-border)}.btn-email:active{border-color:var(--color-text-muted)}}.btn-text{background:none;color:var(--color-text-muted);padding:8px;box-shadow:none;border:none}.btn-text:hover{color:var(--color-text)}.btn-lichess{background:#629924;color:var(--color-on-accent);border-color:#629924}.btn-lichess:hover{background:#6fad29;border-color:#6fad29;color:var(--color-on-accent)}@media(hover:none){.btn-lichess:hover{background:#629924;border-color:#629924}.btn-lichess:active{background:#6fad29;border-color:#6fad29}}.btn-lichess-editor{background:#4a7919;color:var(--color-on-accent);border-color:#4a7919}.btn-lichess-editor:hover{background:#578c1e;border-color:#578c1e;color:var(--color-on-accent)}.btn-chesscom{background:#312e2b;color:var(--color-on-accent);border-color:#312e2b}.btn-chesscom:hover{background:#3e3b37;border-color:#3e3b37;color:var(--color-on-accent)}@media(hover:none){.btn-chesscom:hover{background:#312e2b;border-color:#312e2b}.btn-chesscom:active{background:#3e3b37;border-color:#3e3b37}}.result-links .btn:focus:not(:focus-visible),.result-links .btn:active{outline:none;box-shadow:var(--shadow-btn)}.btn-flip{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-flip:hover{border-color:var(--color-text-muted)}@media(hover:none){.btn-flip:hover{border-color:var(--color-border)}.btn-flip:active{border-color:var(--color-text-muted);background:var(--color-border-light)}}.btn-edit{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-edit:hover{border-color:var(--color-text-muted)}@media(hover:none){.btn-edit:hover{border-color:var(--color-border)}.btn-edit:active{border-color:var(--color-text-muted);background:var(--color-border-light)}}.btn-favourite{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-favourite.active{color:var(--color-favourite);border-color:var(--color-favourite-border);background:var(--color-favourite-bg)}.btn-favourite:hover{border-color:var(--color-favourite);color:var(--color-favourite)}@media(hover:none){.btn-favourite:hover{border-color:var(--color-border);color:var(--color-text)}.btn-favourite.active:hover{border-color:var(--color-favourite-border);color:var(--color-favourite)}.btn-favourite:active{border-color:var(--color-favourite);color:var(--color-favourite)}}.btn-delete{background:var(--color-surface);color:var(--color-text-muted);border-color:var(--color-border)}.btn-delete:hover{border-color:var(--color-danger);color:var(--color-danger)}@media(hover:none){.btn-delete:hover{border-color:var(--color-border);color:var(--color-text-muted)}.btn-delete:active{border-color:var(--color-danger);color:var(--color-danger)}}.btn-share{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-share:hover{border-color:var(--color-text-muted)}.btn-save{background:var(--color-accent);color:var(--color-on-accent);border-color:var(--color-accent)}.btn-save:hover{opacity:.9}.btn-save.saved{background:var(--color-accent);opacity:.6;cursor:default}.btn-danger{background:transparent;color:var(--color-danger);border-color:var(--color-border);box-shadow:none}.btn-danger:hover{background:var(--color-danger-bg);border-color:var(--color-danger)}.btn-sm{padding:6px 12px;font-size:.813rem;width:auto;border-radius:var(--radius-sm);min-height:44px}.loading{display:flex;justify-content:center;align-items:center;min-height:calc(100dvh - 72px);padding:60px;background:var(--color-bg);color:var(--color-text-muted);font-size:.938rem}.spinner{width:28px;height:28px;border:2.5px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .7s linear infinite}.spinner.large{width:40px;height:40px}.app-recovery{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:32px 20px}.app-recovery-card{width:min(100%,460px);padding:24px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--color-surface) 94%,white 6%);box-shadow:0 12px 32px #00000014}.app-recovery-card h1{margin:0;font-size:var(--font-size-heading)}.app-recovery-copy{margin:12px 0 0;color:var(--color-text-muted);line-height:1.55}.app-recovery-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.error-banner{display:flex;align-items:flex-start;gap:10px;background:var(--color-danger-bg);border:1px solid color-mix(in srgb,var(--color-danger) 20%,transparent);color:var(--color-danger);padding:12px 14px;border-radius:var(--radius-md);margin:16px 0;font-size:.875rem;line-height:1.5;animation:errorSlideIn .25s ease-out}.error-banner svg{flex-shrink:0;margin-top:1px}.error-banner-body{flex:1;min-width:0}.error-banner-title{font-weight:600;margin-bottom:2px}.error-banner-message{opacity:.85}.error-banner-dismiss{flex-shrink:0;background:none;border:none;color:var(--color-danger);opacity:.5;cursor:pointer;padding:0;font-size:1.125rem;line-height:1}.error-banner-dismiss:hover{opacity:1}@keyframes errorSlideIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.error-banner--out{animation:errorSlideOut .2s ease-in forwards}@keyframes errorSlideOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}.error-msg{background:var(--color-danger-bg);color:var(--color-danger);padding:12px 16px;border-radius:var(--radius-sm);margin:12px 0;font-size:.875rem;line-height:1.5}.login-page{display:flex;align-items:center;justify-content:center;min-height:calc(100dvh - 20px);padding:20px;overscroll-behavior:contain}.login-card{width:100%;max-width:360px;background:var(--color-surface);border-radius:var(--radius-lg);padding:40px 32px;text-align:center;box-shadow:var(--shadow-card)}.login-brand{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:10px}.login-brand img{border-radius:8px;flex-shrink:0}.login-brand h1{font-size:1.375rem;font-weight:700;letter-spacing:-.01em;margin:0}.login-subtitle{color:var(--color-text-secondary);font-size:.938rem;margin-bottom:10px}.login-badge{display:inline-block;padding:3px 10px;border-radius:var(--radius-full);background:var(--color-border-light);border:1px solid var(--color-border);font-size:.75rem;font-weight:500;color:var(--color-text-secondary);margin-bottom:24px}.login-choices{display:flex;flex-direction:column;gap:10px}.google-btn-container{display:flex;justify-content:center;min-height:48px}.login-divider{display:flex;align-items:center;gap:16px;margin:6px 0;color:var(--color-text-muted);font-size:.813rem}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.login-form{display:flex;flex-direction:column;gap:10px}.login-form input{width:100%;padding:11px 14px;border-radius:var(--radius-sm);border:1.5px solid var(--color-border);background:var(--color-bg);color:var(--color-text);font-size:1rem;font-family:inherit;outline:none;transition:border-color .15s}.login-form input:focus{border-color:var(--color-accent)}.login-form input::placeholder{color:var(--color-text-muted)}.otp-input{text-align:center;font-size:1.5rem!important;letter-spacing:8px;font-family:var(--font-mono)}.otp-hint{color:var(--color-text-secondary);font-size:.875rem}.otp-actions{display:flex;gap:8px;justify-content:center}.otp-actions .btn-text{font-size:.813rem}.scan-section h2{font-size:var(--font-size-heading);font-weight:700;letter-spacing:-.01em;margin-bottom:6px}.scan-hint{color:var(--color-text-secondary);margin-bottom:20px;font-size:.938rem}.upload-zone{border:1px solid var(--color-border);border-radius:var(--radius-lg);aspect-ratio:2 / 1;max-width:400px;margin:0 auto;cursor:pointer;transition:all .15s;text-align:center;background:var(--color-surface);box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a;display:flex;align-items:center;justify-content:center}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--color-accent);background:var(--color-accent-light);box-shadow:0 2px 8px #00000014}.upload-zone.disabled{cursor:not-allowed}.upload-icon{margin-bottom:12px;color:var(--color-text-muted);display:flex;justify-content:center}.upload-title{font-size:1rem;font-weight:600;margin-bottom:4px}.upload-subtitle{color:var(--color-text-muted);font-size:.875rem;margin:0}.upload-hint{color:var(--color-text-muted);font-size:.875rem}.upload-split{display:flex;justify-content:center;gap:12px;max-width:500px;margin:0 auto}.upload-card{flex:1;min-width:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.job-card.upload-card{box-shadow:0 0 0 1px color-mix(in srgb,var(--color-accent) 22%,transparent),0 0 0 3.5px color-mix(in srgb,var(--color-accent) 8%,transparent),0 0 10px color-mix(in srgb,var(--color-accent) 14%,transparent)}.upload-card--wide{flex:unset;width:100%;max-width:400px}.upload-card--disabled{cursor:not-allowed;opacity:.6}.upload-card--dragover{background:var(--color-accent-light)!important;box-shadow:0 0 0 2px var(--color-accent)}.upload-card-title{font-weight:600;font-size:.88rem;color:var(--color-text)}.upload-card-icon{flex-shrink:0;width:80px;height:80px;border-radius:var(--radius-sm);background:var(--color-accent-light);display:flex;align-items:center;justify-content:center;color:var(--color-accent)}.upload-spinner{margin-bottom:12px;display:flex;justify-content:center}.sticky-upload-bar{position:fixed;top:0;left:0;right:0;z-index:90;transform:translateY(-100%);transition:transform .25s ease;background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:0 2px 8px #00000014;padding-top:env(safe-area-inset-top,0px)}.sticky-upload-bar.visible{transform:translateY(0)}.sticky-upload-inner{max-width:640px;margin:0 auto;padding:8px 16px;display:flex;align-items:center;justify-content:center}.sticky-upload-btn{display:flex;align-items:center;gap:8px;padding:8px 20px;font-size:.875rem}.positions-section{margin-top:36px;padding-top:20px;border-top:1px solid var(--color-border)}.jobs-section{margin-top:28px}.positions-heading{font-size:1.1rem;font-weight:700;letter-spacing:-.01em;margin-bottom:16px}.job-date-group{margin-bottom:20px}.job-date-group:last-child{margin-bottom:0}.load-more-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:12px;margin-top:12px;background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-md);color:var(--color-accent);font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.load-more-btn:hover:not(:disabled){background:var(--color-border-light);border-color:var(--color-accent)}.load-more-btn:disabled{opacity:.6;cursor:default}.job-date-heading{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);margin-bottom:8px}.job-list{display:flex;flex-direction:column;gap:8px}.job-card{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.skeleton-card{pointer-events:none}.skeleton{background:var(--color-border-light);border-radius:var(--radius-sm);animation:shimmer 1.5s ease-in-out infinite}.skeleton-thumb{flex-shrink:0;width:80px;height:80px}.skeleton-line{height:14px;width:70%;margin-bottom:6px}.skeleton-line.short{width:40%;margin-bottom:0}@keyframes shimmer{0%,to{opacity:.4}50%{opacity:.8}}.shimmer-image-wrapper{position:relative;overflow:hidden;border-radius:var(--radius-sm)}.shimmer-image-skeleton{position:absolute;inset:0;width:100%;height:100%}.shimmer-image-img{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .2s ease}.shimmer-image-img.visible{opacity:1}.job-card-completed{cursor:pointer;transition:background .15s;position:relative}.job-card-completed:hover{background:var(--color-border-light)}@media(hover:none){.job-card-completed:hover{background:var(--color-surface)}.job-card-completed:active{background:var(--color-border-light)}}.favourite-indicator{color:var(--color-favourite);flex-shrink:0;margin-right:4px;vertical-align:middle}@keyframes star-pop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.5);opacity:1}70%{transform:scale(.85)}to{transform:scale(1);opacity:1}}.favourite-indicator.animate-in{animation:star-pop .4s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes border-flash{0%{border-left-color:transparent}30%{border-left-color:var(--color-favourite-flash)}to{border-left-color:var(--color-favourite)}}.job-card--favourite.animate-favourite{animation:border-flash .5s ease-out}.job-date-heading--favourites{color:var(--color-favourite)}.job-card-content{display:flex;align-items:center;gap:12px;flex:1;min-width:0;cursor:pointer}.job-card-spinner{color:var(--color-accent);flex-shrink:0}.job-card-icon{color:var(--color-danger);flex-shrink:0}.job-card-preview{flex-shrink:0;width:64px;height:64px;border-radius:var(--radius-sm);overflow:hidden;position:relative}.job-card-preview img{width:100%;height:100%;object-fit:cover}.job-card-preview-overlay{position:absolute;inset:0;background:#00000059;display:flex;align-items:center;justify-content:center;color:var(--color-on-accent)}.job-card-board{flex-shrink:0;width:80px;height:80px;border-radius:var(--radius-sm);overflow:hidden}.job-card-board--clickable{cursor:pointer;transition:opacity .15s}.job-card-board--clickable:hover{opacity:.8}.job-card-board-photo{width:100%;height:100%}.game-position-header-photo{width:40px;height:40px}.job-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.job-card-status{font-size:.875rem;font-weight:500;color:var(--color-text)}.job-card-failed .job-card-status{color:var(--color-danger)}.job-card-meta{font-size:.75rem;color:var(--color-text-secondary)}.job-card-pieces{display:inline-flex;align-items:center;gap:3px}.job-card-pieces-sep{margin:0 1px}.job-card-eval{font-weight:600;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;gap:2px}.job-card-eval-sep{color:var(--color-text-muted);font-weight:400;margin:0 1px}.job-card-eval--white{color:var(--color-eval-white, #2e7d32)}.job-card-eval--black{color:var(--color-eval-black, #c62828)}.job-card-eval--equal,.job-card-eval--loading{color:var(--color-text-muted)}.job-card-time{display:inline-flex;align-items:center;gap:4px;font-size:.75rem;color:var(--color-text-muted)}.job-card-arrow{flex-shrink:0;font-size:.813rem;font-weight:600;color:var(--color-accent)}.job-card-actions{display:flex;flex-direction:row;align-items:center;gap:2px;flex-shrink:0}.job-card-action-btn{background:none;border:none;cursor:pointer;color:var(--color-text-muted);padding:6px;min-width:44px;min-height:44px;border-radius:4px;opacity:0;transition:opacity .15s,color .15s;display:flex;align-items:center;justify-content:center}.job-card-completed:hover .job-card-action-btn{opacity:.5}.job-card-action-btn:hover{opacity:1!important;color:var(--color-favourite)}.job-card-action-btn.active{opacity:.85!important;color:var(--color-favourite)}.job-card-action-btn--delete:hover{color:var(--color-danger)!important}.job-card-dismiss{flex-shrink:0;background:none;border:none;cursor:pointer;color:var(--color-text-muted);padding:8px;border-radius:4px;opacity:.5;transition:opacity .15s,color .15s;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.job-card-dismiss:hover{opacity:1;color:var(--color-danger)}.swipe-reveal-container{position:relative;overflow:hidden;border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.swipe-reveal-action--delete{position:absolute;inset:0 0 0 50%;display:flex;align-items:center;justify-content:flex-end;background:var(--color-danger-bg);color:var(--color-danger);border:none;cursor:pointer;padding:0 30px 0 0}.swipe-reveal-action--favourite{position:absolute;inset:0 50% 0 0;display:flex;align-items:center;justify-content:flex-start;background:var(--color-favourite-bg);color:var(--color-favourite);border:none;cursor:pointer;padding:0 0 0 30px}.swipe-reveal-container>.job-card{position:relative;z-index:1}@media(hover:none)and (pointer:coarse){.desktop-only{display:none!important}}.ctx-menu{position:fixed;z-index:1000;min-width:180px;background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-md);box-shadow:0 8px 24px #00000040;padding:4px 0;animation:ctx-menu-in .15s ease-out}@keyframes ctx-menu-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.ctx-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;border:none;background:none;color:var(--color-text);font-size:.875rem;font-family:inherit;cursor:pointer;text-align:left;min-height:44px}.ctx-menu-item:hover{background:var(--color-border-light)}@media(hover:none){.ctx-menu-item:hover{background:none}}.ctx-menu-item:active{background:var(--color-border)}.ctx-menu-icon{display:flex;align-items:center;color:var(--color-text-secondary)}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}.result-page{padding-top:0}.mp-loading-page{display:flex;justify-content:center;align-items:center;min-height:100dvh}.processing-status{display:flex;flex-direction:column;align-items:center;gap:16px;padding-top:80px}.processing-status h2{font-size:1.125rem;font-weight:600}.processing-hint{color:var(--color-text-secondary);font-size:.938rem}.result-warped-preview{display:block;max-width:260px;margin:16px auto;border-radius:var(--radius-md);box-shadow:var(--shadow-card);opacity:.8}.result-board{display:flex;justify-content:center;margin-bottom:16px;perspective:1000px}.board-flip-container{position:relative;transition:transform .5s;transform-style:preserve-3d}.board-flip-container.flipped{transform:rotateY(180deg)}.board-flip-front,.board-flip-back{backface-visibility:hidden;-webkit-backface-visibility:hidden}.board-flip-front{position:relative}.board-flip-front .chess-board{pointer-events:none}.board-flip-front .chess-board.interactive{pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.board-click-overlay{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer;z-index:10}.board-flip-back{position:absolute;top:0;left:0;width:100%;height:100%;transform:rotateY(180deg);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-card)}.board-original-img{width:100%;height:100%;object-fit:cover;display:block}.chess-board{border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-card);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.result-fen{display:flex;align-items:center;gap:0;margin-bottom:20px;position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.fen-text{flex:1;min-width:0;background:none;border:none;padding:10px 14px;font-size:.75rem;font-family:var(--font-mono);cursor:pointer;transition:background .15s;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fen-text:hover{background:var(--color-border-light)}@media(hover:none){.fen-text:hover{background:none}.fen-text:active{background:var(--color-border-light)}}.fen-copy-btn{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;background:none;border:none;border-left:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;padding:10px 0;transition:color .15s,background .15s;min-height:44px}.fen-copy-btn:hover{color:var(--color-text);background:var(--color-border-light)}@media(hover:none){.fen-copy-btn:hover{color:var(--color-text-muted);background:none}.fen-copy-btn:active{color:var(--color-text);background:var(--color-border-light)}}.fen-copied-check{color:var(--color-accent)}.result-meta{display:flex;gap:8px;justify-content:center;margin-bottom:16px;flex-wrap:wrap}.meta-chip{background:var(--color-surface);border:1px solid var(--color-border);padding:4px 12px;border-radius:var(--radius-full);font-size:.813rem;color:var(--color-text-secondary)}.result-actions{display:flex;gap:8px;margin-top:16px;margin-bottom:8px;flex-wrap:wrap}.result-actions .btn{flex:1}.result-secondary-actions{display:flex;gap:8px;margin-bottom:8px}.result-secondary-actions .btn{flex:1}.orientation-hint-card{width:100%;margin:0 0 8px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.82rem;color:var(--color-warning);background:#c090201a;border:1px solid rgba(192,144,32,.25);border-radius:8px}.orientation-hint-card span{flex:1}.orientation-hint-dismiss{background:none;border:none;padding:8px;color:inherit;opacity:.7;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}.orientation-hint-dismiss:hover{opacity:1;background:#c0902026}.result-links{display:flex;flex-direction:column;gap:8px;margin-top:8px;margin-bottom:16px}.result-links .btn{flex:1}.btn-back{display:inline-flex;align-items:center;gap:4px;background:none;border:none;color:var(--color-text-secondary);font-size:.875rem;font-weight:500;padding:8px 0;cursor:pointer;width:auto;box-shadow:none}.btn-back:hover{color:var(--color-text)}.result-top-bar{display:flex;justify-content:flex-start;margin-bottom:12px}.meta-chip-edited{background:var(--color-accent-light);color:var(--color-accent-dark);border-color:var(--color-accent)}.analysis-block{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);margin-bottom:8px;overflow:hidden}.analysis-block-header{display:flex;align-items:center;gap:6px;width:100%;padding:10px 14px;background:none;border:none;border-bottom:1px solid transparent;color:var(--color-text);font-size:.85rem;font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none}.analysis-block.open .analysis-block-header{border-bottom-color:var(--color-border)}.analysis-chevron{margin-left:auto;font-size:.7rem;color:var(--color-text-muted);opacity:.6}.analysis-blocked-hint{margin-left:auto;font-size:.75rem;color:var(--color-text-muted);font-weight:400}.analysis-block.blocked .analysis-block-header{cursor:default;opacity:.6}.analysis-blocked-links-hint{font-size:.8rem;color:var(--color-text-muted);text-align:center;padding:8px 0}.analysis-block-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease}.analysis-block.open .analysis-block-body{grid-template-rows:1fr}.analysis-block-inner{overflow:hidden;min-height:0}.analysis-block.open .analysis-block-inner{padding-bottom:14px}.analysis-controls-row{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding:0 14px;gap:4px;min-width:0}.sf-history-controls{display:flex;gap:4px}.btn-history-nav{display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;background:none;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:color .15s,border-color .15s}.btn-history-nav:hover:not(:disabled){color:var(--color-text);border-color:var(--color-text-muted)}.btn-history-nav:disabled{opacity:.3;cursor:default}.btn-show-arrows{display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;background:none;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:color .15s,border-color .15s;flex-shrink:0}.btn-show-arrows:hover{color:var(--color-text);border-color:var(--color-text-muted)}.btn-show-arrows.active{color:var(--color-accent);border-color:var(--color-accent)}.analysis-controls-right{display:flex;gap:4px;align-items:center;margin-left:auto;min-width:0}.btn-play-toggle{display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;background:none;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:color .15s,border-color .15s;flex-shrink:0}.btn-play-toggle:hover{color:var(--color-text);border-color:var(--color-text-muted)}.btn-play-toggle.active{color:var(--color-accent);border-color:var(--color-accent)}.sf-turn-toggle{display:flex;gap:4px}.btn-turn-icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;background:none;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:color .15s,border-color .15s}@media(hover:hover){.btn-turn-icon:hover{color:var(--color-text);border-color:var(--color-text-muted)}}.btn-turn-icon.active{color:var(--color-accent);border-color:var(--color-accent)}.icon-light-mode{display:inline-flex}.icon-dark-mode{display:none}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .icon-light-mode{display:none}:root:not([data-theme=light]) .icon-dark-mode{display:inline-flex}}:root[data-theme=dark] .icon-light-mode{display:none}:root[data-theme=dark] .icon-dark-mode{display:inline-flex}.engine-analysis{overflow:hidden}.engine-analysis.engine-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 14px;font-size:.75rem;color:var(--color-text-muted)}.engine-compact-bar{cursor:pointer;-webkit-user-select:none;user-select:none;background:none;border:none;width:100%;padding:0;text-align:left;font:inherit;color:inherit}.engine-eval-bar{height:6px;background:var(--color-eval-bg);position:relative;overflow:hidden}.engine-eval-bar-white{position:absolute;top:0;left:0;height:100%;background:var(--color-eval-fill);transition:width .3s ease}.engine-eval-info{display:flex;align-items:center;gap:8px;padding:6px 14px;font-size:.75rem;color:var(--color-text-muted)}.engine-eval-score{font-weight:700;font-family:var(--font-mono);font-size:.85rem;color:var(--color-text)}.engine-eval-score.engine-eval-zero{color:var(--color-text-muted)}.engine-eval-depth{display:flex;align-items:center;gap:3px;font-family:var(--font-mono);font-size:.7rem}.engine-expand-hint{margin-left:auto;font-size:.7rem;color:var(--color-text-muted);opacity:.6}.engine-searching-dot{display:inline-block;width:5px;height:5px;background:var(--color-accent);border-radius:50%;animation:engine-pulse 1s ease-in-out infinite}@keyframes engine-pulse{0%,to{opacity:.3}50%{opacity:1}}.engine-lines-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows .2s ease;overflow:hidden}.engine-lines-wrapper.engine-lines-open{grid-template-rows:1fr}.engine-lines{min-height:0;border-top:1px solid var(--color-border);padding:2px 0}.engine-line{display:flex;align-items:baseline;gap:8px;padding:3px 14px;font-size:.75rem;line-height:1.3}.engine-line-score{font-family:var(--font-mono);font-weight:600;font-size:.7rem;min-width:36px;color:var(--color-text-secondary)}.engine-line-moves{color:var(--color-text);font-family:var(--font-mono);font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.engine-line-placeholder{color:var(--color-text-muted);font-style:italic;padding:4px 14px;font-size:.75rem}.engine-attribution{font-size:.65rem;color:var(--color-text-muted);text-align:right;padding:4px 14px 0}.engine-attribution a{color:var(--color-text-muted);text-decoration:underline}.engine-error .engine-eval-info{justify-content:center}.engine-error-text{font-size:.75rem;color:var(--color-text-muted);font-style:italic}.engine-switch-btn{display:flex;align-items:center;gap:4px;height:30px;padding:0 8px;background:none;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;font-size:.8rem}.engine-switch-btn:hover{color:var(--color-text);border-color:var(--color-text-muted)}.engine-switch-label-static{display:flex;align-items:center;gap:4px;height:30px;padding:0;font-size:.8rem;color:var(--color-text-muted)}.engine-switch-chevron{font-size:.55rem;opacity:.6}.btn-engine-select{display:flex;align-items:center;gap:4px;height:30px;padding:0 8px;background:none;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:color .15s,border-color .15s;flex-shrink:1;min-width:0;font-size:.7rem}.btn-engine-select:hover{color:var(--color-text);border-color:var(--color-text-muted)}.btn-engine-select-label{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-engine-select-chevron{font-size:.55rem;opacity:.6}.engine-switch-dropdown{position:fixed;min-width:240px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:0 4px 16px #00000026;z-index:100;overflow:hidden}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .engine-switch-dropdown{box-shadow:0 4px 16px #0006}}:root[data-theme=dark] .engine-switch-dropdown{box-shadow:0 4px 16px #0006}.engine-switch-option{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:none;border:none;text-align:left;cursor:pointer;transition:background .15s;color:var(--color-text)}.engine-switch-option:not(:last-child){border-bottom:1px solid var(--color-border)}.engine-switch-option:hover:not(.disabled){background:var(--color-hover)}.engine-switch-option.selected{background:var(--color-hover)}.engine-switch-option.disabled{opacity:.45;cursor:not-allowed}.engine-switch-icon{flex-shrink:0;color:var(--color-text-muted)}.engine-switch-option.selected .engine-switch-icon{color:var(--color-accent)}.engine-switch-info{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.engine-switch-name{font-size:.8rem;font-weight:600;line-height:1.2}.engine-switch-desc{font-size:.65rem;color:var(--color-text-muted);line-height:1.2}.engine-switch-offline{color:var(--color-error)}.engine-switch-checking{font-style:italic}.engine-switch-check{flex-shrink:0;color:var(--color-accent)}.board-editor{display:flex;flex-direction:column;align-items:center}.board-editor-spare-pieces,.board-editor-info,.board-editor-controls,.board-editor-actions{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .25s ease,opacity .2s ease,margin-top .25s ease,margin-bottom .25s ease;margin-top:0}.board-editor-spare-pieces>*,.board-editor-info>*,.board-editor-controls>*,.board-editor-actions>*{overflow:hidden;min-height:0}.board-editor-spare-pieces.top.open{grid-template-rows:1fr;opacity:1;margin-bottom:8px}.board-editor-spare-pieces.bottom.open{grid-template-rows:1fr;opacity:1;margin-top:8px}.board-editor-controls.open,.board-editor-info.open{grid-template-rows:1fr;opacity:1;margin-top:10px}.board-editor-info-inner{display:flex;gap:10px;justify-content:center}.board-editor-info-chip{font-size:.7rem;color:var(--color-text-muted);font-family:var(--font-mono)}.board-editor-actions.open{grid-template-rows:1fr;opacity:1;margin-top:10px}.spare-row{display:flex;justify-content:center;gap:6px}.spare-piece-cell{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--color-spare-piece-bg, var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;padding:4px;transition:border-color .15s,background .15s;-webkit-tap-highlight-color:transparent}.spare-piece-cell:hover{border-color:var(--color-text-muted)}@media(hover:none){.spare-piece-cell:hover{border-color:var(--color-border)}}.spare-piece-cell.active{border:2px solid var(--color-accent);background:var(--color-accent-light);padding:3px}.board-editor-controls-inner{display:grid;grid-template-columns:1fr 1fr;gap:8px}.btn-editor-action{display:inline-flex;align-items:center;justify-content:center;gap:5px;background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border);padding:10px 14px;border-radius:var(--radius-md);font-size:.813rem;cursor:pointer;transition:border-color .15s,color .15s}.btn-editor-action:hover{border-color:var(--color-text-muted);color:var(--color-text)}.board-editor-controls-inner .btn-editor-action:last-child:nth-child(odd){grid-column:1 / -1}.board-editor-actions-inner{display:flex;gap:8px;width:100%;max-width:360px}.btn-editor-cancel{flex:1;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);padding:10px 16px;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:border-color .15s}.btn-editor-cancel:hover{border-color:var(--color-text-muted)}.btn-editor-done{flex:1;background:var(--color-accent);color:var(--color-on-accent);border:1px solid var(--color-accent);padding:10px 16px;border-radius:var(--radius-md);font-size:.875rem;font-weight:600;cursor:pointer;transition:opacity .15s}.btn-editor-done:hover{opacity:.9}.empty-state{text-align:center;color:var(--color-text-muted);padding:60px 0;font-size:.938rem}.empty-state--cta{display:flex;flex-direction:column;align-items:stretch;text-align:center;gap:8px;padding:48px 0 64px;max-width:340px;margin:0 auto}.empty-state-icon{color:var(--color-accent);opacity:.35;margin-bottom:4px}.empty-state-title{font-size:1.125rem;font-weight:600;color:var(--color-text);margin:0}.empty-state-desc{font-size:.875rem;color:var(--color-text-muted);line-height:1.45;margin:0 0 8px}.empty-state-btn{display:flex;align-items:center;justify-content:center;gap:6px;font-size:.938rem;padding:10px 24px;border-radius:999px;background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.empty-state-link{background:none;border:none;color:var(--color-accent);font-size:.813rem;cursor:pointer;padding:6px 0;text-decoration:none}.empty-state-link:hover{text-decoration:underline}.position-grid{display:flex;flex-direction:column;gap:12px}.position-card{background:var(--color-surface);border-radius:var(--radius-md);padding:16px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-card)}.position-board-mini{display:flex;justify-content:center}.position-info{display:flex;flex-direction:column;gap:4px}.fen-text-sm{font-size:.688rem;font-family:var(--font-mono);color:var(--color-text-muted);word-break:break-all}.position-date{font-size:.813rem;color:var(--color-text-muted)}.position-actions{display:flex;gap:8px;flex-wrap:wrap}@media(min-width:769px){.position-grid{display:grid;grid-template-columns:repeat(2,1fr)}}@media(min-width:1200px){.position-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:769px){.result-actions,.result-secondary-actions,.result-links,.result-fen,.result-meta,.analysis-block,.past-games,.result-board{max-width:480px;margin-left:auto;margin-right:auto}.result-actions .btn,.result-secondary-actions .btn,.result-challenge .btn,.result-links .btn{padding:8px 14px;font-size:.813rem}.result-challenge{max-width:480px;margin-left:auto;margin-right:auto}.result-links{flex-direction:row}}@media(max-width:768px){.btn-turn-icon,.btn-show-arrows,.btn-play-toggle,.btn-history-nav{width:36px;height:36px}.btn-turn-icon svg,.btn-show-arrows svg,.btn-play-toggle svg,.btn-history-nav svg{width:20px;height:20px}}@media(max-width:480px){.position-board-mini .chess-board{width:160px!important;height:160px!important}.login-card{padding:32px 20px}.container,.header-inner{padding:0 max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}}.consent-overlay{position:fixed;inset:0;z-index:200;background:#00000073;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px;animation:consent-fade-in .2s ease-out}@keyframes consent-fade-in{0%{opacity:0}to{opacity:1}}.consent-modal{width:100%;max-width:400px;background:var(--color-surface);border-radius:var(--radius-lg);padding:32px 28px 28px;box-shadow:0 8px 32px #0000002e,0 0 0 1px #0000000f;animation:consent-slide-up .25s ease-out;text-align:center}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .consent-modal{box-shadow:0 8px 32px #00000080,0 0 0 1px #ffffff0f}}:root[data-theme=dark] .consent-modal{box-shadow:0 8px 32px #00000080,0 0 0 1px #ffffff0f}@keyframes consent-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.consent-icon{margin-bottom:12px;color:var(--color-accent);display:flex;justify-content:center}.consent-modal h2{font-size:var(--font-size-heading);font-weight:700;letter-spacing:-.01em;margin-bottom:8px}.consent-body{color:var(--color-text-secondary);font-size:.938rem;line-height:1.55;margin-bottom:20px}.consent-links{display:flex;justify-content:center;gap:20px;margin-bottom:20px}.consent-links a{display:inline-flex;align-items:center;gap:4px;font-size:.875rem;font-weight:500;color:var(--color-accent);text-decoration:none;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--color-border);transition:all .15s}.consent-links a:hover{background:var(--color-accent-light);border-color:var(--color-accent)}.consent-checkbox{display:flex;align-items:flex-start;gap:10px;text-align:left;font-size:.875rem;color:var(--color-text);cursor:pointer;margin-bottom:20px;line-height:1.45}.consent-checkbox input[type=checkbox]{appearance:none;-webkit-appearance:none;width:20px;height:20px;min-width:20px;border:1.5px solid var(--color-border);border-radius:5px;background:var(--color-bg);cursor:pointer;margin-top:1px;transition:all .15s;position:relative}.consent-checkbox input[type=checkbox]:checked{background:var(--color-accent);border-color:var(--color-accent)}.consent-checkbox input[type=checkbox]:checked:after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.consent-btn{border-radius:var(--radius-md)}.scan-tips-overlay{position:fixed;inset:0;z-index:200;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px;animation:consent-fade-in .2s ease-out}.scan-tips-modal{width:100%;max-width:380px;background:var(--color-surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 8px 32px #00000038,0 0 0 1px #0000000f;animation:consent-slide-up .25s ease-out;position:relative}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .scan-tips-modal{box-shadow:0 8px 32px #0000008c,0 0 0 1px #ffffff0f}}:root[data-theme=dark] .scan-tips-modal{box-shadow:0 8px 32px #0000008c,0 0 0 1px #ffffff0f}.scan-tips-close{position:absolute;top:8px;right:8px;z-index:2;background:#00000073;color:var(--color-on-accent);border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}.scan-tips-close:hover{background:#000000a6}.scan-tips-image{width:100%;height:auto;display:block;object-fit:cover;max-height:220px}.scan-tips-content{padding:20px 24px 24px;text-align:center}.scan-tips-icon{color:var(--color-accent);margin-bottom:8px;display:flex;justify-content:center}.scan-tips-content h2{font-size:1.2rem;font-weight:700;letter-spacing:-.01em;margin-bottom:14px}.scan-tips-list{list-style:none;padding:0;margin:0 0 20px;text-align:left}.scan-tips-list li{position:relative;padding-left:20px;font-size:.9rem;line-height:1.5;color:var(--color-text-secondary);margin-bottom:10px}.scan-tips-list li:last-child{margin-bottom:0}.scan-tips-list li:before{content:"";position:absolute;left:0;top:7px;width:8px;height:8px;border-radius:50%;background:var(--color-accent)}.scan-tips-list li strong{color:var(--color-text)}.scan-tips-btn{width:100%;border-radius:var(--radius-md)}.toast-container{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);z-index:300;display:flex;flex-direction:column;gap:8px;width:calc(100% - 32px);max-width:400px;pointer-events:none}.toast{background:var(--color-text);color:var(--color-bg);padding:12px 16px;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;box-shadow:0 4px 16px #0003;display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:auto;animation:toastIn .25s ease-out;-webkit-user-select:none;user-select:none}.toast-message{flex:1;min-width:0}.toast-action{flex-shrink:0;background:none;border:none;color:var(--color-accent);font-weight:700;font-size:.875rem;cursor:pointer;padding:0;font-family:inherit}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}#sw-update-toast{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);z-index:310;background:var(--color-text);color:var(--color-bg);padding:12px 16px;border-radius:var(--radius-md, 10px);font-size:.875rem;font-weight:500;font-family:inherit;box-shadow:0 4px 16px #0003;display:flex;align-items:center;justify-content:space-between;gap:12px;width:calc(100% - 32px);max-width:400px;animation:toastIn .25s ease-out;-webkit-user-select:none;user-select:none}#sw-update-actions{display:inline-flex;align-items:center;gap:10px;flex-shrink:0}#sw-update-btn{flex-shrink:0;background:none;border:none;color:var(--color-accent);font-weight:700;font-size:.875rem;cursor:pointer;padding:0;font-family:inherit}#sw-update-later-btn{flex-shrink:0;background:none;border:none;color:color-mix(in srgb,var(--color-bg) 76%,transparent);font-weight:600;font-size:.875rem;cursor:pointer;padding:0;font-family:inherit}.header-scan-btn{display:none;align-items:center;gap:6px;font-size:.875rem;padding:6px 14px}@media(min-width:769px){.header-scan-btn{display:inline-flex}}.scan-fab{display:none;position:fixed;bottom:calc(84px + env(safe-area-inset-bottom,0px));right:max(20px,env(safe-area-inset-right,0px));z-index:90;width:56px;height:56px;border-radius:50%;border:none;background:var(--color-text);color:var(--color-surface);box-shadow:0 4px 14px #00000040;cursor:pointer;align-items:center;justify-content:center;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .25s cubic-bezier(.4,0,.2,1),box-shadow .15s ease;-webkit-tap-highlight-color:transparent;opacity:0;transform:scale(.4);pointer-events:none}.scan-fab--visible{opacity:1;transform:scale(1);pointer-events:auto}.scan-fab--visible:active{transform:scale(.92)}.scan-fab:disabled{opacity:.6;pointer-events:none}@media(max-width:768px){.scan-fab{display:flex}}.offline-banner{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));background:var(--color-warning);color:var(--color-text);font-size:.8125rem;font-weight:600;text-align:center}@keyframes resultFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.result-fade-in{animation:resultFadeIn .3s ease-out}@supports (view-transition-name: root){.result-fade-in{animation:none}}.install-banner{position:fixed;bottom:calc(16px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);z-index:250;display:flex;align-items:center;gap:12px;width:calc(100% - 32px);max-width:400px;padding:12px 16px;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg, 12px);box-shadow:0 8px 24px #00000026;animation:installBannerIn .35s ease-out;-webkit-user-select:none;user-select:none;touch-action:pan-y}.install-banner-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md, 8px);background:var(--color-accent-light);color:var(--color-accent)}.install-banner-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.install-banner-content strong{font-size:.875rem;line-height:1.3}.install-banner-content span{font-size:.75rem;color:var(--color-text-secondary);line-height:1.3}.install-banner-action{flex-shrink:0;padding:6px 14px;border:none;border-radius:var(--radius-md, 8px);background:var(--color-accent);color:var(--color-on-accent);font-size:.8125rem;font-weight:600;font-family:inherit;cursor:pointer;min-height:36px;-webkit-tap-highlight-color:transparent}.install-banner-action:active{transform:scale(.96)}.install-banner-close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:50%;background:transparent;color:var(--color-text-secondary);cursor:pointer;padding:0;-webkit-tap-highlight-color:transparent}.install-banner-close:active{background:var(--color-border-light)}@keyframes installBannerIn{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(hover:none){.install-banner-action:hover{background:var(--color-accent);transform:none}.install-banner-close:hover{background:transparent}}.settings-page{padding-top:8px;padding-bottom:60px}.btn-back{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;font-size:.875rem;font-weight:500;color:var(--color-text-secondary);background:none;border:none;cursor:pointer;border-radius:var(--radius-sm);transition:color .15s,background .15s;margin-left:-10px}.btn-back:hover{color:var(--color-text);background:var(--color-border-light)}.settings-title{font-size:var(--font-size-title);font-weight:700;letter-spacing:-.02em;margin:8px 0 20px}.settings-section{margin-bottom:24px}.settings-section-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-bottom:8px}.settings-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.settings-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;cursor:pointer}.settings-toggle-text{display:flex;flex-direction:column;gap:2px}.settings-toggle-label{font-size:.938rem;font-weight:500;color:var(--color-text)}.settings-toggle-desc{font-size:.813rem;color:var(--color-text-muted)}.settings-checkbox{width:44px;height:24px;appearance:none;-webkit-appearance:none;background:var(--color-border);border-radius:12px;position:relative;cursor:pointer;transition:background .2s;flex-shrink:0}.settings-checkbox:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px #00000026}.settings-checkbox:checked{background:var(--color-accent)}.settings-checkbox:checked:after{transform:translate(20px)}.settings-profile-row{display:flex;flex-direction:column;padding:14px 16px;gap:4px}.settings-profile-label{font-size:.813rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.settings-profile-hint{font-size:.75rem;color:var(--color-text-muted);margin-bottom:6px}.settings-name-btn{display:flex;align-items:center;gap:8px;background:none;border:1px solid var(--color-border);cursor:pointer;color:var(--color-text);font-size:1rem;font-weight:500;padding:10px 12px;border-radius:var(--radius-sm);width:100%;text-align:left}.settings-name-btn:hover{background:var(--color-surface-hover, var(--color-border-light))}.settings-name-btn svg{color:var(--color-text-muted);margin-left:auto;flex-shrink:0}.settings-name-edit{display:flex;align-items:center;gap:6px;width:100%}.settings-name-input{padding:10px 12px;border:1px solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);font-size:1rem;font-weight:500;flex:1;min-width:0;outline:none}.settings-name-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-accent) 20%,transparent)}.settings-name-save{padding:10px 12px;display:flex;align-items:center;background:var(--color-accent);color:var(--color-on-accent);border:none;flex-shrink:0;width:auto}.settings-segment{display:flex;background:var(--color-border);border-radius:8px;padding:2px;flex-shrink:0}.settings-segment-btn{padding:6px 14px;font-size:.813rem;font-weight:500;border:none;border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all .2s ease;white-space:nowrap}.settings-segment-btn.active{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 3px #0000001a}.settings-dropdown{position:relative;flex-shrink:0}.settings-dropdown-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;font-size:.813rem;font-weight:500;font-family:inherit;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:var(--color-text);cursor:pointer;white-space:nowrap}.settings-dropdown-chevron{font-size:.65rem;opacity:.6}.settings-dropdown-menu{position:fixed;min-width:200px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 4px 16px #00000026;z-index:100;overflow:hidden}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .settings-dropdown-menu{box-shadow:0 4px 16px #0006}}:root[data-theme=dark] .settings-dropdown-menu{box-shadow:0 4px 16px #0006}.settings-dropdown-option{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:10px 12px;background:none;border:none;text-align:left;cursor:pointer;transition:background .15s;color:var(--color-text);font-size:.813rem;font-family:inherit}.settings-dropdown-option:not(:last-child){border-bottom:1px solid var(--color-border)}.settings-dropdown-option:hover{background:var(--color-hover)}.settings-dropdown-option.selected{background:var(--color-hover);font-weight:600}.settings-dropdown-icon{flex-shrink:0;color:var(--color-text-muted)}.settings-dropdown-option.selected .settings-dropdown-icon{color:var(--color-accent)}.settings-dropdown-info{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.settings-dropdown-name{font-size:.8rem;font-weight:600;line-height:1.2}.settings-dropdown-desc{font-size:.65rem;color:var(--color-text-muted);line-height:1.2}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;font-size:.938rem}.settings-row-value{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.settings-link-row{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;font-size:.938rem;color:var(--color-text);text-decoration:none;transition:background .1s}.settings-link-row:hover{background:var(--color-border-light);color:var(--color-text)}.settings-link-row+.settings-link-row{border-top:1px solid var(--color-border)}.settings-link-row-label{display:flex;align-items:center;gap:8px}.settings-ack{padding:14px 16px}.settings-ack-item{margin-bottom:12px}.settings-ack-item:last-child{margin-bottom:0}.settings-ack-item strong{display:block;font-size:.875rem;margin-bottom:2px}.settings-ack-item span{font-size:.813rem;color:var(--color-text-muted)}.settings-ack-item a{color:var(--color-accent)}.settings-danger-zone .settings-section-title{color:var(--color-danger)}.settings-danger-zone .settings-card{border-color:var(--color-danger-bg);padding:16px}.settings-danger-text{font-size:.875rem;color:var(--color-text-secondary);margin-bottom:12px;line-height:1.5}.settings-danger-label{display:block;font-size:.813rem;color:var(--color-text-muted);margin-bottom:6px}.settings-danger-input{width:100%;padding:10px 12px;font-size:.938rem;font-family:var(--font-mono);letter-spacing:.08em;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);outline:none;transition:border-color .15s;margin-bottom:12px;box-sizing:border-box}.settings-danger-input:focus{border-color:var(--color-danger)}.settings-danger-error{font-size:.813rem;color:var(--color-danger);margin-bottom:8px}.btn-danger-delete{display:flex;align-items:center;justify-content:center;width:100%;padding:10px;font-size:.875rem;font-weight:600;font-family:inherit;color:var(--color-on-accent);background:var(--color-danger);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:opacity .15s}.btn-danger-delete:hover{opacity:.9}.btn-danger-delete:disabled{opacity:.4;cursor:not-allowed}.support-form{display:flex;flex-direction:column;gap:16px}.support-field{display:flex;flex-direction:column;gap:6px}.support-label{font-size:.813rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.support-input,.support-textarea{width:100%;padding:10px 12px;font-size:.938rem;font-family:inherit;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);outline:none;transition:border-color .15s;box-sizing:border-box}.support-input:focus,.support-textarea:focus{border-color:var(--color-accent)}.support-textarea{resize:vertical;min-height:120px;line-height:1.5}.support-submit{align-self:flex-start;padding:10px 24px}.support-error{font-size:.875rem;color:var(--color-danger)}.support-hint{font-size:.75rem;color:var(--color-text-muted);margin:0}.support-success{display:flex;flex-direction:column;align-items:center;text-align:center;padding:48px 16px;gap:12px}.support-success-icon{width:56px;height:56px;border-radius:50%;background:var(--color-accent);color:var(--color-on-accent);display:flex;align-items:center;justify-content:center;margin-bottom:8px}.support-success h2{font-size:var(--font-size-heading);font-weight:700;margin:0}.support-success p{font-size:.938rem;color:var(--color-text-secondary);max-width:360px;line-height:1.5;margin:0 0 12px}.play-block-body{padding:10px 14px 0}.play-status{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--color-text-muted);margin-bottom:8px}.play-result-card{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:8px 12px;font-size:.85rem;margin-bottom:8px;text-align:center}.play-result-reason{color:var(--color-text-muted)}.play-controls{display:flex;align-items:center;gap:6px;margin-top:8px;flex-wrap:wrap}.btn-resign,.btn-new-game,.btn-analyze-game,.btn-copy-pgn{display:flex;align-items:center;gap:4px;padding:6px 12px;font-size:.8rem;font-weight:500;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:none;color:var(--color-text);cursor:pointer;transition:border-color .15s,color .15s}.btn-resign:hover{border-color:var(--color-resign-hover);color:var(--color-resign-hover)}.resign-wrapper{position:relative;margin-left:auto}.resign-confirm{display:flex;align-items:center;gap:6px;white-space:nowrap;animation:resign-confirm-in .15s ease-out}.resign-confirm-label{font-size:.8rem;font-weight:500;color:var(--color-text-muted)}.resign-confirm-yes,.resign-confirm-no{padding:6px 14px;font-size:.8rem;font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}.resign-confirm-yes{background:var(--color-resign-hover);color:var(--color-on-accent);border:1px solid var(--color-resign-hover)}.resign-confirm-yes:hover{background:#900;border-color:#900}.resign-confirm-no{background:none;color:var(--color-text);border:1px solid var(--color-border)}.resign-confirm-no:hover{border-color:var(--color-text-muted)}@keyframes resign-confirm-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.btn-new-game:hover,.btn-analyze-game:hover,.btn-copy-pgn:hover{border-color:var(--color-text-muted)}@media(max-width:768px){.play-controls .btn-resign,.play-controls .btn-new-game,.play-controls .btn-analyze-game,.play-controls .btn-copy-pgn,.result-links .btn-copy-pgn,.result-secondary-actions .btn-copy-pgn{padding:11px 20px;font-size:.938rem;font-weight:600;border-radius:var(--radius-md);flex:1;justify-content:center}}.play-strength-row{display:flex;gap:4px;margin-top:10px}.btn-strength{flex:1;padding:6px 0;font-size:.78rem;font-weight:500;text-transform:capitalize;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:none;color:var(--color-text-muted);cursor:pointer;transition:border-color .15s,color .15s,background .15s}.btn-strength:hover:not(:disabled){border-color:var(--color-text-muted);color:var(--color-text)}.btn-strength.active{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}.btn-strength:disabled{opacity:.4;cursor:default}.move-list{max-height:160px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:4px 0;font-size:.82rem;font-variant-numeric:tabular-nums}.move-list-row{display:flex;align-items:center;padding:2px 10px}.move-list-num{width:30px;color:var(--color-text-muted);flex-shrink:0}.move-list-move{flex:1;padding:2px 6px;border-radius:3px;cursor:pointer;transition:background .12s;background:none;border:none;font:inherit;color:inherit;text-align:left}.move-list-move:hover{background:var(--color-border-light)}.move-list-move.active{background:var(--color-text);color:var(--color-bg)}.move-list-placeholder{color:var(--color-text-muted);cursor:default}.move-list-placeholder:hover{background:none}.home-tabbar{position:fixed;bottom:calc(16px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);z-index:80;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:6px;border-radius:999px;background:var(--color-surface);box-shadow:0 4px 20px #0000001f,0 0 0 1px var(--color-border-light);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.home-tabbar--3{grid-template-columns:1fr 1fr 1fr}.home-tabbar:before{content:"";position:absolute;top:6px;bottom:6px;left:0;width:var(--ind-width, calc(50% - 8px) );border-radius:999px;background:var(--color-border-light);transform:translate(var(--ind-x, 6px));will-change:transform;transition:transform .3s cubic-bezier(.4,0,.2,1),width .3s cubic-bezier(.4,0,.2,1);pointer-events:none;z-index:0}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .home-tabbar{box-shadow:0 4px 20px #0006,0 0 0 1px var(--color-border-light)}}:root[data-theme=dark] .home-tabbar{box-shadow:0 4px 20px #0006,0 0 0 1px var(--color-border-light)}.home-tabbar-item{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;font-size:.82rem;font-weight:600;color:var(--color-text-muted);background:none;border:none;border-radius:999px;cursor:pointer;transition:color .25s;white-space:nowrap}.home-tabbar-item.active{color:var(--color-text)}.tabbar-badge{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--color-accent);color:var(--color-on-accent);font-size:.7rem;font-weight:700;line-height:18px;text-align:center}.home-tabbar-item:active{transform:scale(.96)}.home-page{padding-top:12px;padding-bottom:calc(60px + env(safe-area-inset-bottom,0px))}.home-tab-panels{position:relative}.home-tab-panel{opacity:1;transition:opacity .15s ease}.home-tab-panel--hidden{position:absolute;top:0;left:0;right:0;opacity:0;visibility:hidden;pointer-events:none}.pull-to-refresh-indicator{display:flex;align-items:center;justify-content:center;overflow:hidden;transition:height .2s ease,opacity .2s ease}.pull-to-refresh-spinner{width:24px;height:24px;border:2.5px solid var(--color-border-light, #e0e0e0);border-top-color:var(--color-primary, #4a7);border-radius:50%}.pull-to-refresh-indicator--refreshing .pull-to-refresh-spinner{animation:ptr-spin .7s linear infinite}@keyframes ptr-spin{to{transform:rotate(360deg)}}.draw-position-card{cursor:pointer}.draw-position-players{font-weight:600;font-size:.88rem;color:var(--color-text)}.draw-position-theme{display:flex;align-items:center;gap:6px}.draw-position-streak{color:var(--color-text-faint);font-size:.75rem}.draw-position-streak:before{content:"·";margin-right:2px}.draw-position-title{font-size:1rem;font-weight:700;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.draw-position-meta{display:flex;flex-direction:column;gap:2px;padding:0 16px 8px}.draw-position-game-card{display:flex;flex-direction:column;gap:4px;padding:10px 14px;margin-bottom:12px;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.draw-position-event{font-size:.8rem;color:var(--color-text-muted)}.draw-position-game-card .draw-position-players{display:flex;flex-direction:column;gap:2px}.draw-position-player{display:flex;align-items:center;gap:6px;font-size:.9rem;font-weight:600;color:var(--color-text)}.draw-position-elo{font-weight:400;color:var(--color-text-muted)}.player-title{font-size:.7rem;font-weight:700;color:#b58863;background:#b588631f;padding:1px 4px;border-radius:3px;letter-spacing:.02em;line-height:1;flex-shrink:0}.color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.color-dot--white{background:#f0f0f0;border:1.5px solid #999}.color-dot--black{background:#333;border:1.5px solid #999}.game-position-group{border:1px solid var(--color-border-light);border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface)}.game-position-header{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--color-bg);border-bottom:1px solid var(--color-border-light);cursor:pointer}.game-position-label{font-size:.8rem;font-weight:500;color:var(--color-text-secondary);display:flex;align-items:center;flex-wrap:wrap;gap:2px}.game-position-children{display:flex;flex-direction:column}.game-position-children .job-card{border-radius:0;box-shadow:none;border-bottom:1px solid var(--color-border-light)}.game-position-children .job-card:last-child,.game-position-children .swipe-reveal-container:last-child .job-card{border-bottom:none}.game-position-children>.swipe-reveal-container{border-radius:0}.game-result-badge{display:inline-block;padding:1px 6px;font-size:.75rem;font-weight:600;border-radius:4px;text-transform:uppercase;letter-spacing:.02em}.game-result-won{background:#16a34a22;color:#16a34a}.game-result-lost{background:#dc262622;color:#dc2626}.game-result-draw{background:#a3a3a322;color:var(--color-text-muted)}.game-result-inprogress{background:#f59e0b22;color:#f59e0b}.game-engine-strength{color:var(--color-text-muted);font-size:.75rem;font-weight:400}.bot-modal-overlay{position:fixed;inset:0;z-index:200;background:#00000073;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px;animation:consent-fade-in .2s ease-out}.bot-modal{width:100%;max-width:360px;background:var(--color-surface);border-radius:var(--radius-lg);padding:24px 20px 20px;box-shadow:0 8px 32px #0000002e,0 0 0 1px #0000000f;animation:consent-slide-up .25s ease-out}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .bot-modal{box-shadow:0 8px 32px #00000080,0 0 0 1px #ffffff0f}}:root[data-theme=dark] .bot-modal{box-shadow:0 8px 32px #00000080,0 0 0 1px #ffffff0f}.bot-modal-header{display:flex;align-items:center;gap:10px;margin-bottom:20px}.bot-modal-icon{color:var(--color-accent);display:flex;align-items:center}.bot-modal h2{font-size:1.1rem;font-weight:700;letter-spacing:-.01em;margin:0}.bot-modal-accordion{display:flex;flex-direction:column;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--color-border)}.bot-acc-section+.bot-acc-section{border-top:1px solid var(--color-border)}.bot-acc-header{display:flex;align-items:center;gap:14px;width:100%;padding:16px 18px;border:none;background:var(--color-bg);cursor:pointer;color:var(--color-text);transition:background .15s;text-align:left}@media(hover:hover){.bot-acc-header:hover{background:var(--color-accent-light)}}.bot-acc-icon{flex-shrink:0;color:var(--color-text-secondary);transition:color .15s}.bot-acc-summary{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.bot-acc-value{font-weight:600;font-size:.95rem;line-height:1.25;transition:color .15s}.bot-acc-desc{font-size:.75rem;color:var(--color-text-muted);line-height:1.3;margin-top:1px}.bot-acc-chevron{flex-shrink:0;color:var(--color-text-muted);transition:transform .25s cubic-bezier(.22,1,.36,1)}.bot-acc-open>.bot-acc-header .bot-acc-chevron{transform:rotate(180deg)}.bot-acc-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s cubic-bezier(.22,1,.36,1)}.bot-acc-open>.bot-acc-body{grid-template-rows:1fr}.bot-acc-inner{overflow:hidden;min-height:0;display:flex;flex-direction:column;gap:4px;padding:0 14px}.bot-acc-open>.bot-acc-body>.bot-acc-inner{padding-top:6px;padding-bottom:14px}.bot-acc-inner--side{display:flex;flex-direction:row;gap:6px}.bot-acc-option{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;cursor:pointer;transition:all .15s;font-size:.85rem;color:var(--color-text);text-align:left}@media(hover:hover){.bot-acc-option:hover{background:var(--color-accent-light)}}.bot-acc-option.selected{background:var(--color-accent-light);border-color:var(--color-accent)}.bot-acc-option.disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.bot-acc-option-label{font-weight:600;flex:1}.bot-acc-option-meta{font-size:.72rem;color:var(--color-text-muted)}.bot-acc-check{flex-shrink:0;color:var(--color-accent)}.bot-acc-side-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);cursor:pointer;font-size:.8rem;font-weight:500;color:var(--color-text);transition:all .15s}@media(hover:hover){.bot-acc-side-btn:hover{border-color:var(--color-accent);background:var(--color-accent-light)}}.bot-acc-side-btn.selected{border-color:var(--color-accent);background:var(--color-accent-light)}.side-dot{display:inline-block;width:16px;height:16px;border-radius:50%;flex-shrink:0}.side-dot--lg{width:22px;height:22px}.side-dot--white{background:#fff;border:1.5px solid var(--color-border)}.side-dot--black{background:#333;border:1.5px solid #333}.side-circle{display:inline-block;width:16px;height:16px;border-radius:50%;flex-shrink:0}.side-circle.side-white{background:#fff;border:1.5px solid var(--color-border)}.side-circle.side-black{background:#333;border:1.5px solid #333}.bot-modal-actions{display:flex;gap:10px;margin-top:20px}.bot-modal-cancel{flex:1;padding:10px 16px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);font-weight:500;cursor:pointer;transition:all .15s}@media(hover:hover){.bot-modal-cancel:hover{background:var(--color-surface-hover, var(--color-bg));border-color:var(--color-text-muted)}}.bot-modal-start{flex:2;padding:10px 16px;border:none;border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-on-accent);font-weight:600;cursor:pointer;transition:all .15s}@media(hover:hover){.bot-modal-start:hover{opacity:.9}}.bot-acc-inner .tc-picker{margin-top:0}.tc-picker{margin-top:2px}.tc-picker-categories{display:flex;gap:4px;margin-bottom:10px}.tc-picker-cat{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-secondary);font-size:.72rem;cursor:pointer;flex:1;min-width:0;transition:all .15s}@media(hover:hover){.tc-picker-cat:hover{border-color:var(--color-accent);background:var(--color-accent-light)}}.tc-picker-cat--active{border-color:var(--color-accent);background:var(--color-accent-light);color:var(--color-text)}.tc-picker-cat svg{flex-shrink:0}.tc-picker-cat-label{white-space:nowrap}.tc-picker-presets{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.tc-picker-chip{padding:6px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-secondary);font-size:.82rem;font-weight:500;cursor:pointer;transition:all .15s}@media(hover:hover){.tc-picker-chip:hover{border-color:var(--color-accent);background:var(--color-accent-light)}}.tc-picker-chip--active{border-color:var(--color-accent);background:var(--color-accent-light);color:var(--color-text);font-weight:600}.tc-picker-chip--custom{font-style:italic;font-weight:400}.tc-picker-custom{display:flex;gap:8px;align-items:flex-end;margin-top:4px}.tc-picker-custom-field{display:flex;flex-direction:column;gap:3px;font-size:.72rem;color:var(--color-text-muted);flex:1}.tc-picker-custom-field input{padding:6px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);font-size:.85rem;width:100%}.tc-picker-custom-apply{padding:6px 14px;border:none;border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-on-accent, #fff);font-size:.82rem;font-weight:600;cursor:pointer;white-space:nowrap}.tc-picker-custom-apply:disabled{opacity:.4;cursor:not-allowed}.tc-badge{display:inline-flex;align-items:center;gap:3px;font-size:.72rem;font-weight:500;color:var(--color-text-muted);white-space:nowrap;vertical-align:middle;margin-left:4px}.position-preview-modal{max-width:360px}.position-preview-subtitle{font-size:.82rem;color:var(--color-text-muted);margin:-12px 0 16px;line-height:1.3}.position-preview-board{display:flex;justify-content:center;margin-bottom:20px}.position-preview-board svg{border-radius:var(--radius-sm);box-shadow:0 2px 8px #0000001a}.position-preview-board--shufflable{cursor:pointer;-webkit-tap-highlight-color:transparent}.position-preview-board--shufflable svg{transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.position-preview-board--shufflable:active svg{transform:scale(.95)}.position-preview-game-card{margin:-8px 0 16px;text-align:left}.position-preview-disclaimer{font-size:.72rem;color:var(--color-text-faint);text-align:center;margin:12px 0 -4px;line-height:1.4;font-style:italic}.position-preview-actions{display:flex;flex-direction:column;gap:10px}.position-preview-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 16px;border-radius:var(--radius-sm);font-weight:600;font-size:.92rem;cursor:pointer;transition:all .15s;border:none;background:var(--color-accent);color:var(--color-on-accent)}.position-preview-btn:hover{opacity:.9}.position-preview-btn--secondary{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border)}.position-preview-btn--secondary:hover{background:var(--color-surface-hover, var(--color-bg));border-color:var(--color-text-muted);opacity:1}.scan-section{display:grid;grid-template:1fr / 1fr}.scan-section>*{grid-area:1 / 1}.scan-section-scan,.scan-section-newgame,.scan-section-positions-intro{transition:opacity .25s ease,transform .25s ease}.scan-section-scan{opacity:1;transform:translateY(0);padding:16px}.scan-section-newgame{display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;transform:translateY(12px);pointer-events:none}.scan-section--games .scan-section-scan{opacity:0;transform:translateY(-12px);pointer-events:none}.scan-section--games .scan-section-newgame{opacity:1;transform:translateY(0);pointer-events:auto}.scan-section-positions-intro{display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;transform:translateY(12px);pointer-events:none}.positions-intro-card{max-width:400px;width:100%}.job-card.positions-intro-card{box-shadow:0 0 0 1px color-mix(in srgb,var(--color-accent) 22%,transparent),0 0 0 3.5px color-mix(in srgb,var(--color-accent) 8%,transparent),0 0 10px color-mix(in srgb,var(--color-accent) 14%,transparent)}.scan-section--positions .scan-section-scan{opacity:0;transform:translateY(-12px);pointer-events:none}.scan-section--positions .scan-section-positions-intro{opacity:1;transform:translateY(0);pointer-events:auto}.newgame-intro-cards{display:flex;gap:12px;max-width:500px;width:100%}.newgame-intro-card{flex:1;min-width:0}.job-card.newgame-intro-card{box-shadow:0 0 0 1px color-mix(in srgb,var(--color-accent) 22%,transparent),0 0 0 3.5px color-mix(in srgb,var(--color-accent) 8%,transparent),0 0 10px color-mix(in srgb,var(--color-accent) 14%,transparent)}.newgame-intro-card--boring .job-card-meta{opacity:.55;font-style:italic}@media(pointer:coarse){.scan-section--games .scan-section-scan,.scan-section--games .scan-section-positions-intro,.scan-section--positions .scan-section-scan,.scan-section--positions .scan-section-newgame{display:none}.scan-section:not(.scan-section--games):not(.scan-section--positions) .scan-section-newgame,.scan-section:not(.scan-section--games):not(.scan-section--positions) .scan-section-positions-intro{display:none}.newgame-intro-cards,.upload-split{flex-direction:column;max-width:unset}}.past-games{margin-top:16px}.past-games-heading{font-size:.8rem;font-weight:600;color:var(--color-text-muted);margin-bottom:4px}.past-game-row{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;font-size:.82rem;background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text);margin-bottom:4px;transition:background .15s}.past-game-row:hover{background:var(--color-surface-raised)}.past-game-result{font-weight:600;min-width:32px}.past-game-detail{flex:1;color:var(--color-text-muted);text-align:left}.past-game-moves,.past-game-time{color:var(--color-text-muted);font-size:.78rem}.game-analysis-page{padding:0 0 24px}.game-analysis-page .container{padding-top:0}.game-analysis-title{font-size:.9rem;font-weight:500;color:var(--color-text);margin-bottom:8px;text-align:center}.game-analysis-board{display:flex;justify-content:center;margin:0 auto;max-width:480px}.game-board-wrapper{max-width:480px;margin:0 auto 12px}.player-bar{display:flex;align-items:center;gap:8px;padding:4px;max-width:480px;font-size:.85rem;color:var(--color-text-secondary)}.player-bar--active{color:var(--color-text)}.player-bar-piece{display:inline-block;width:14px;height:14px;border-radius:50%;flex-shrink:0}.player-bar-piece--white{background:#fff;border:1.5px solid #888}.player-bar-piece--black{background:#333;border:1.5px solid #555}.player-bar-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-bar-turn{width:8px;height:8px;border-radius:50%;background:#4caf50;flex-shrink:0}.player-bar-turn--thinking{animation:pulse-turn 1s ease-in-out infinite}.player-bar-clock{margin-left:auto;flex-shrink:0}.chess-clock{display:inline-block;font-variant-numeric:tabular-nums;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.95rem;font-weight:500;padding:2px 8px;border-radius:4px;background:var(--color-surface-raised, var(--color-surface));color:var(--color-text-secondary);min-width:52px;text-align:center;letter-spacing:-.02em}.chess-clock--active{font-weight:700;color:var(--color-text);background:var(--color-accent-subtle, rgba(76, 175, 80, .12))}.chess-clock--critical{color:#e53935;animation:clock-pulse .6s ease-in-out infinite}.chess-clock--flagged{color:#e53935;opacity:.6}@keyframes clock-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse-turn{0%,to{opacity:1}50%{opacity:.3}}.game-analysis-eval{margin:0 auto 8px;max-width:480px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);overflow:hidden}.game-analysis-chart{margin:0 auto 12px;position:relative;max-width:480px}.game-analysis-batch-progress{text-align:center;font-size:.75rem;color:var(--color-text-secondary);margin-top:4px}.game-analysis-nav{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 auto 12px;max-width:480px}.game-analysis-move-counter{font-size:.82rem;color:var(--color-text-secondary);font-variant-numeric:tabular-nums;min-width:60px;text-align:center}.game-analysis-moves{margin:0 auto 16px;max-width:480px}.game-analysis-loading,.game-analysis-error{padding:40px 16px;text-align:center;color:var(--color-text-secondary);font-size:.9rem}:root{--eval-chart-line: #16a34a;--eval-chart-fill: rgba(22, 163, 74, .12)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--eval-chart-line: #4ade80;--eval-chart-fill: rgba(74, 222, 128, .1)}}:root[data-theme=dark]{--eval-chart-line: #4ade80;--eval-chart-fill: rgba(74, 222, 128, .1)}.eval-chart-wrap{border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;background:var(--color-surface);cursor:crosshair}.eval-chart{display:block;width:100%;height:80px}.eval-chart-empty{height:80px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-muted);font-size:.82rem}.promotion-btn:hover{background:#00000014}.promotion-btn:active{background:#00000026}.challenge-page{display:flex;flex-direction:column;align-items:center;padding:40px 16px;min-height:60vh;gap:16px}.challenge-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg, 16px);padding:32px 28px;max-width:380px;width:100%;text-align:center}.challenge-header{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:8px}.challenge-header h2{margin:0;font-size:var(--font-size-heading)}.challenge-from{color:var(--color-text-secondary, var(--color-text-muted));font-size:.95rem;margin:4px 0 16px}.challenge-board{display:flex;justify-content:center;margin:16px 0}.challenge-details{margin:12px 0 20px;font-size:.95rem}.challenge-details p{margin:4px 0}.challenge-time{color:var(--color-text-muted);font-size:.85rem}.challenge-subtext{color:var(--color-text-muted);font-size:.9rem;margin:8px 0}.btn-join{width:100%;padding:14px;font-size:1.05rem;font-weight:600}.challenge-auth{margin-top:8px}.challenge-pitch-card{max-width:380px;width:100%;padding:14px 16px;border-radius:var(--radius-lg, 16px);background:var(--color-surface);border:1px solid var(--color-border);font-size:.85rem;color:var(--color-text-muted);line-height:1.5;text-align:center}.challenge-pitch-card strong{color:var(--color-text)}.challenge-auth-label{font-size:.9rem;color:var(--color-text-muted);margin-bottom:12px}.challenge-auth .login-choices,.challenge-auth .login-form{max-width:100%}@media(max-width:480px){.challenge-card{padding:24px 16px}}.game-analysis-page .analysis-block,.game-analysis-page .mp-error-toast{max-width:480px;margin-left:auto;margin-right:auto}.mp-game-info{text-align:center}.mp-game-status{font-size:1rem;color:var(--text-secondary, #666)}.mp-game-reason{font-size:.875rem;color:var(--text-tertiary, #999);text-transform:capitalize}.draw-offer-bar{display:flex;align-items:center;gap:8px;background:var(--surface-secondary, #f5f5f5);border-radius:8px;padding:6px 10px;font-size:.875rem}.draw-offer-pending{font-size:.8rem;color:var(--text-secondary, #666);font-style:italic}.mp-error-toast{background:var(--color-danger);color:var(--color-on-accent);padding:8px 16px;border-radius:8px;font-size:.875rem;width:100%;text-align:center}.result-challenge{margin-top:8px;margin-bottom:4px}.result-challenge+.result-challenge{margin-top:0}.result-challenge .btn{width:100%}.btn-challenge{background:var(--color-accent);color:var(--color-on-accent);border-color:var(--color-accent);display:flex;align-items:center;justify-content:center;gap:6px}.btn-challenge:hover{background:var(--color-accent-dark);border-color:var(--color-accent-dark);color:var(--color-on-accent)}@media(hover:none){.btn-challenge:hover{background:var(--color-accent);border-color:var(--color-accent)}.btn-challenge:active{background:var(--color-accent-dark);border-color:var(--color-accent-dark)}}.btn-challenge-bot{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-challenge-bot:hover{background:var(--color-border-light);color:var(--color-text);border-color:var(--color-border)}@media(hover:none){.btn-challenge-bot:hover{background:var(--color-surface);border-color:var(--color-border)}.btn-challenge-bot:active{background:var(--color-border-light);border-color:var(--color-border)}}.challenge-modal{position:relative}.challenge-board-preview{display:flex;justify-content:center;margin:0 0 20px}.challenge-board-preview svg{width:100%;max-width:280px;height:auto;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.ch-color-group{display:flex;flex-direction:column;gap:8px}.ch-color-group+.ch-color-group{margin-top:8px}.ch-group-label{font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.ch-color-group .challenge-turn-toggle{display:inline-flex}.challenge-modal-close{position:absolute;top:12px;right:12px;background:none;border:none;cursor:pointer;color:var(--color-text-muted);padding:4px;border-radius:4px}.challenge-modal-close:hover{color:var(--color-text);background:var(--color-border-light)}.challenge-modal-subtitle{font-size:.9rem;color:var(--color-text-muted);margin:-4px 0 20px}.challenge-modal-error{color:var(--color-danger);font-size:.85rem;margin:8px 0}.challenge-modal-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 0;color:var(--color-text-muted)}.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.challenge-qr-container{display:flex;justify-content:center;margin:16px 0}.challenge-link-row{display:flex;gap:6px;margin:16px 0}.challenge-link-input{flex:1;padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);font-size:.8rem;font-family:var(--font-mono, monospace);min-width:0;outline:none}.challenge-link-input:focus{border-color:var(--color-accent)}.challenge-link-copy{flex-shrink:0;width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}@media(hover:hover){.challenge-link-copy:hover{background:var(--color-border-light);border-color:var(--color-text-muted)}}.challenge-link-copy:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.challenge-modal-share-actions{margin:12px 0}.challenge-modal-share-actions .btn{width:100%;display:flex;align-items:center;justify-content:center;gap:6px}.challenge-modal-timer{display:flex;align-items:center;justify-content:center;gap:8px;margin:16px 0 8px;font-size:.85rem}.challenge-timer-label{color:var(--color-text-muted)}.challenge-timer-value{font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-text)}.challenge-timer-value.expired{color:var(--color-danger)}.challenges-section{display:flex;flex-direction:column;gap:8px;margin-top:28px;margin-bottom:8px}.challenge-status-badge{display:inline-block;font-size:.75rem;font-weight:600;color:var(--color-accent);background:var(--color-accent-light);padding:2px 8px;border-radius:4px}.challenge-card--expired .challenge-status-badge{color:var(--color-text-muted);background:var(--color-border-light)}.challenge-card--expired{opacity:.6}.challenge-status-badge--incoming{color:var(--color-success, #22c55e);background:var(--color-success-light, rgba(34, 197, 94, .12))}.incoming-challenge-actions{display:flex;flex-direction:column;gap:6px;padding:0 4px}.incoming-challenge-btn{border:none;border-radius:6px;font-size:.75rem;font-weight:600;padding:5px 12px;cursor:pointer;white-space:nowrap}.incoming-challenge-btn:disabled{opacity:.5;cursor:default}.incoming-challenge-btn--accept{background:var(--color-accent);color:var(--color-on-accent)}.incoming-challenge-btn--decline{background:var(--color-border-light);color:var(--color-text-muted)}.mp-game-card{cursor:pointer}.mp-game-card--my-turn{box-shadow:0 0 0 2px color-mix(in srgb,var(--color-accent) 40%,transparent)}.mp-your-turn{color:var(--color-accent)!important;background:var(--color-accent-light)!important}.dev-tools-fab{position:fixed;bottom:calc(16px + env(safe-area-inset-bottom,0px));left:12px;z-index:200;width:32px;height:32px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#1e1e1ed9;color:#aaa;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:.5;transition:opacity .15s}.dev-tools-fab:hover{opacity:1}.dev-tools-badge{position:absolute;top:-4px;right:-4px;width:16px;height:16px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}.dev-tools-panel{position:fixed;bottom:calc(56px + env(safe-area-inset-bottom,0px));left:12px;z-index:200;background:#1e1e1ef2;color:#ddd;border-radius:10px;padding:10px 14px;font-size:13px;min-width:200px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08);box-shadow:0 8px 32px #0006}.dev-tools-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:#888}.dev-tools-close{background:none;border:none;color:#888;font-size:18px;cursor:pointer;padding:0 2px;line-height:1}.dev-tools-row{display:flex;align-items:center;gap:8px;padding:4px 0;cursor:pointer;-webkit-user-select:none;user-select:none}.dev-tools-row input[type=checkbox]{accent-color:var(--color-primary)}.dev-tools-action-btn{padding:6px 10px;border:1px solid #555;border-radius:6px;background:#333;color:#eee;font-size:13px;cursor:pointer;text-align:center}.dev-tools-action-btn:hover{background:#444}
