@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideLeft{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideRight{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes popIn{0%{opacity:0;transform:translate(-50%) scale(.8)}to{opacity:1;transform:translate(-50%) scale(1)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.1)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 4px currentColor}50%{box-shadow:0 0 12px currentColor}}@keyframes check-pulse{0%,to{box-shadow:0 0 4px #ff525280}50%{box-shadow:0 0 16px #ff5252cc;background:#ff5252}}@keyframes thinking-glow{0%,to{box-shadow:0 0 8px #4caf5033}50%{box-shadow:0 0 16px #4caf5066}}@keyframes thinking-glow-light{0%,to{box-shadow:0 2px 8px #0000001a}50%{box-shadow:0 4px 16px #4caf504d}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes resultBounce{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes result-icon-bounce{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}@keyframes confetti{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(300px) rotate(720deg);opacity:0}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-slide-in{0%{transform:translateY(20px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-slide-in{0%{transform:translateY(20px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes confirmation-dialog-slide-in{0%{transform:translate(-50%,-50%) translateY(20px) scale(.95);opacity:0}to{transform:translate(-50%,-50%) translateY(0) scale(1);opacity:1}}@keyframes confirmation-dialog-slide-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes toast-slide-in{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes toast-slide-out{0%{transform:translateY(0);opacity:1}to{transform:translateY(-20px);opacity:0}}@keyframes onboarding-fade-in{0%{opacity:0}to{opacity:1}}@keyframes onboarding-hint-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{touch-action:manipulation;-webkit-touch-callout:none;overscroll-behavior:none}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;background-color:var(--bg-secondary);color:var(--text-primary);line-height:1.5;min-height:100vh}h1,h2,h3,h4,h5,h6{line-height:1.2;font-weight:600}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-base)}p{margin-bottom:var(--spacing-md)}p:last-child{margin-bottom:0}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}ul,ol{padding-left:var(--spacing-lg)}code,pre{font-family:SF Mono,Monaco,Menlo,Courier New,monospace}code{padding:.2em .4em;background-color:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:.9em}pre{padding:var(--spacing-md);background-color:var(--bg-tertiary);border-radius:var(--radius-md);overflow-x:auto}pre code{padding:0;background:none;border-radius:0;font-size:inherit}img{max-width:100%;height:auto;display:block}table{border-collapse:collapse;width:100%}input,textarea,select,button{font-family:inherit;font-size:inherit}:focus{outline:none}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}::selection{background-color:var(--color-primary);color:var(--color-white)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-gray-400);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-500)}*{scrollbar-width:thin;scrollbar-color:var(--color-gray-400) var(--bg-secondary)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-uppercase{text-transform:uppercase}.text-lowercase{text-transform:lowercase}.text-capitalize{text-transform:capitalize}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.hidden{display:none}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.flex-1{flex:1}.flex-auto{flex:auto}.flex-none{flex:none}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.gap-xl{gap:var(--spacing-xl)}.m-0{margin:0}.p-0{padding:0}.m-xs{margin:var(--spacing-xs)}.p-xs{padding:var(--spacing-xs)}.m-sm{margin:var(--spacing-sm)}.p-sm{padding:var(--spacing-sm)}.m-md{margin:var(--spacing-md)}.p-md{padding:var(--spacing-md)}.m-lg{margin:var(--spacing-lg)}.p-lg{padding:var(--spacing-lg)}.m-xl{margin:var(--spacing-xl)}.p-xl{padding:var(--spacing-xl)}.m-2xl{margin:var(--spacing-2xl)}.p-2xl{padding:var(--spacing-2xl)}.mt-0{margin-top:0}.pt-0{padding-top:0}.mt-xs{margin-top:var(--spacing-xs)}.pt-xs{padding-top:var(--spacing-xs)}.mt-sm{margin-top:var(--spacing-sm)}.pt-sm{padding-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.pt-md{padding-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.pt-lg{padding-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.pt-xl{padding-top:var(--spacing-xl)}.mt-2xl{margin-top:var(--spacing-2xl)}.pt-2xl{padding-top:var(--spacing-2xl)}.mr-0{margin-right:0}.pr-0{padding-right:0}.mr-xs{margin-right:var(--spacing-xs)}.pr-xs{padding-right:var(--spacing-xs)}.mr-sm{margin-right:var(--spacing-sm)}.pr-sm{padding-right:var(--spacing-sm)}.mr-md{margin-right:var(--spacing-md)}.pr-md{padding-right:var(--spacing-md)}.mr-lg{margin-right:var(--spacing-lg)}.pr-lg{padding-right:var(--spacing-lg)}.mr-xl{margin-right:var(--spacing-xl)}.pr-xl{padding-right:var(--spacing-xl)}.mr-2xl{margin-right:var(--spacing-2xl)}.pr-2xl{padding-right:var(--spacing-2xl)}.mb-0{margin-bottom:0}.pb-0{padding-bottom:0}.mb-xs{margin-bottom:var(--spacing-xs)}.pb-xs{padding-bottom:var(--spacing-xs)}.mb-sm{margin-bottom:var(--spacing-sm)}.pb-sm{padding-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.pb-md{padding-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.pb-lg{padding-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.pb-xl{padding-bottom:var(--spacing-xl)}.mb-2xl{margin-bottom:var(--spacing-2xl)}.pb-2xl{padding-bottom:var(--spacing-2xl)}.ml-0{margin-left:0}.pl-0{padding-left:0}.ml-xs{margin-left:var(--spacing-xs)}.pl-xs{padding-left:var(--spacing-xs)}.ml-sm{margin-left:var(--spacing-sm)}.pl-sm{padding-left:var(--spacing-sm)}.ml-md{margin-left:var(--spacing-md)}.pl-md{padding-left:var(--spacing-md)}.ml-lg{margin-left:var(--spacing-lg)}.pl-lg{padding-left:var(--spacing-lg)}.ml-xl{margin-left:var(--spacing-xl)}.pl-xl{padding-left:var(--spacing-xl)}.ml-2xl{margin-left:var(--spacing-2xl)}.pl-2xl{padding-left:var(--spacing-2xl)}.mx-0{margin-left:0;margin-right:0}.px-0{padding-left:0;padding-right:0}.mx-xs{margin-left:var(--spacing-xs);margin-right:var(--spacing-xs)}.px-xs{padding-left:var(--spacing-xs);padding-right:var(--spacing-xs)}.mx-sm{margin-left:var(--spacing-sm);margin-right:var(--spacing-sm)}.px-sm{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}.mx-md{margin-left:var(--spacing-md);margin-right:var(--spacing-md)}.px-md{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.mx-lg{margin-left:var(--spacing-lg);margin-right:var(--spacing-lg)}.px-lg{padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}.mx-xl{margin-left:var(--spacing-xl);margin-right:var(--spacing-xl)}.px-xl{padding-left:var(--spacing-xl);padding-right:var(--spacing-xl)}.mx-2xl{margin-left:var(--spacing-2xl);margin-right:var(--spacing-2xl)}.px-2xl{padding-left:var(--spacing-2xl);padding-right:var(--spacing-2xl)}.my-0{margin-top:0;margin-bottom:0}.py-0{padding-top:0;padding-bottom:0}.my-xs{margin-top:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.py-xs{padding-top:var(--spacing-xs);padding-bottom:var(--spacing-xs)}.my-sm{margin-top:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.py-sm{padding-top:var(--spacing-sm);padding-bottom:var(--spacing-sm)}.my-md{margin-top:var(--spacing-md);margin-bottom:var(--spacing-md)}.py-md{padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}.my-lg{margin-top:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.py-lg{padding-top:var(--spacing-lg);padding-bottom:var(--spacing-lg)}.my-xl{margin-top:var(--spacing-xl);margin-bottom:var(--spacing-xl)}.py-xl{padding-top:var(--spacing-xl);padding-bottom:var(--spacing-xl)}.my-2xl{margin-top:var(--spacing-2xl);margin-bottom:var(--spacing-2xl)}.py-2xl{padding-top:var(--spacing-2xl);padding-bottom:var(--spacing-2xl)}.mx-auto{margin-left:auto;margin-right:auto}.w-full{width:100%}.h-full{height:100%}.w-screen{width:100vw}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.inset-0{inset:0}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.select-none{-webkit-user-select:none;user-select:none}.select-auto{-webkit-user-select:auto;user-select:auto}.select-all{-webkit-user-select:all;user-select:all}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-inverse{color:var(--text-inverse)}.text-success{color:var(--color-success)}.text-danger{color:var(--color-danger)}.text-warning{color:var(--color-warning)}.bg-primary{background-color:var(--bg-primary)}.bg-secondary{background-color:var(--bg-secondary)}.bg-tertiary{background-color:var(--bg-tertiary)}.transition{transition:all var(--transition-normal)}.transition-fast{transition:all var(--transition-fast)}.transition-slow{transition:all var(--transition-slow)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--text-base);font-weight:500;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);text-decoration:none;white-space:nowrap}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:var(--text-inverse)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background-color:var(--color-gray-200);border-color:var(--border-color-hover)}.btn-success{background-color:var(--color-success);color:var(--text-inverse)}.btn-success:hover:not(:disabled){background-color:#1a9a49}.btn-danger{background-color:var(--color-danger);color:var(--text-inverse)}.btn-danger:hover:not(:disabled){background-color:#eb1515}.btn-warning{background-color:var(--color-warning);color:var(--color-black)}.btn-warning:hover:not(:disabled){background-color:#c57f08}.btn-ghost{background:transparent;color:var(--text-primary)}.btn-ghost:hover:not(:disabled){background-color:var(--bg-tertiary)}.btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--text-sm)}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--text-lg)}.btn-icon{font-size:1.1em}.btn-icon-only{padding:var(--spacing-sm)}.btn-icon-only .btn-icon{margin:0}.control-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);flex:1;justify-content:center}.control-btn:hover:not(:disabled){background-color:var(--color-gray-200);border-color:var(--border-color-hover)}.control-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.control-btn:disabled{opacity:.5;cursor:not-allowed}.control-btn .btn-icon{font-size:var(--text-lg)}.new-game-btn{background-color:var(--color-primary);color:var(--text-inverse);border-color:var(--color-primary)}.new-game-btn:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.resign-btn:hover:not(:disabled){background-color:var(--color-danger-light);color:var(--color-danger);border-color:var(--color-danger)}.modal-button{display:flex;align-items:center;justify-content:center;padding:12px 24px;border:none;border-radius:8px;font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease-out;min-height:44px}.modal-button.primary{background:var(--color-primary);color:var(--text-primary)}.modal-button.primary:hover,.modal-button.primary:active{background:var(--color-primary-hover)}.modal-button.secondary{background:#ffffff1a;color:var(--text-secondary)}.modal-button.secondary:hover{background:#ffffff26}.modal-button.secondary:active{background:#fff3}@media(prefers-color-scheme:light){.modal-button.secondary{background:#00000014}.modal-button.secondary:hover{background:#0000001f}.modal-button.secondary:active{background:#00000026}}.export-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:none;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--text-xs);cursor:pointer;transition:all var(--transition-fast)}.export-btn:hover{background-color:var(--bg-tertiary)}.close-button{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;font-size:var(--text-xl);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.close-button:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.toggle-button{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.toggle-button.on{background-color:var(--color-success-light);border-color:var(--color-success)}.toggle-icon{font-size:var(--text-lg)}.toggle-text{font-size:var(--text-sm);font-weight:500}.form-group{margin-bottom:var(--spacing-md)}.form-group:last-child{margin-bottom:0}.form-label,.setting-label,.option-label{display:block;font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);margin-bottom:var(--spacing-sm)}.form-input,.form-textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--text-primary);transition:border-color var(--transition-fast)}.form-input:hover:not(:disabled),.form-textarea:hover:not(:disabled){border-color:var(--border-color-hover)}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #4a90d933}.form-input:disabled,.form-textarea:disabled{opacity:.5;cursor:not-allowed}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-tertiary)}.form-select{width:100%;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--text-primary);cursor:pointer;transition:border-color var(--transition-fast);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%236b7280' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.form-select:hover:not(:disabled){border-color:var(--border-color-hover)}.form-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #4a90d933}.form-select:disabled{opacity:.5;cursor:not-allowed}.form-checkbox,.form-radio{width:1.25rem;height:1.25rem;cursor:pointer;accent-color:var(--color-primary)}.form-textarea{min-height:100px;resize:vertical}.toggle-switch{display:flex;align-items:center;gap:12px;padding:12px 16px;border:none;border-radius:8px;background:#ffffff0d;transition:all .15s ease-out}.toggle-switch:hover{background:#ffffff1a}@media(prefers-color-scheme:light){.toggle-switch{background:#0000000a}.toggle-switch:hover{background:#00000014}}.toggle-switch{cursor:pointer}.toggle-switch.disabled{opacity:.4;cursor:not-allowed}.toggle-switch.disabled:hover{transform:none}.toggle-switch:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.toggle-slider{position:relative;width:44px;height:24px;border-radius:12px;background:#fff3;transition:background .15s ease-out}.toggle-slider:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .15s ease-out}.toggle-switch.on .toggle-slider{background:var(--color-primary)}.toggle-switch.on .toggle-slider:after{transform:translate(20px)}@media(prefers-color-scheme:light){.toggle-slider{background:#00000026}}.toggle-label{font-family:system-ui,-apple-system,sans-serif;font-size:14px;color:var(--text-secondary)}.form-range{width:100%;height:8px;border-radius:4px;background:#ffffff1a;appearance:none;cursor:pointer}.form-range::-webkit-slider-thumb{appearance:none;width:28px;height:28px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:2px solid rgba(255,255,255,.3);transition:transform .15s ease-out}.form-range::-webkit-slider-thumb:hover{transform:scale(1.1)}.form-range::-moz-range-thumb{width:28px;height:28px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:2px solid rgba(255,255,255,.3)}@media(prefers-color-scheme:light){.form-range{background:#0000001a}.form-range::-webkit-slider-thumb{border-color:#0003}.form-range::-moz-range-thumb{border-color:#0003}}.option-group{margin-bottom:var(--spacing-lg)}.option-group:last-child{margin-bottom:0}.mode-options,.color-options{display:flex;gap:var(--spacing-sm)}.mode-option,.color-option{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background-color:var(--bg-tertiary);border:2px solid transparent;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast)}.mode-option:hover,.color-option:hover{background-color:var(--color-gray-200)}.mode-option.active,.color-option.active{border-color:var(--color-primary);background-color:var(--color-primary-light)}.mode-icon{font-size:var(--text-2xl)}.color-piece{font-size:var(--text-3xl)}.color-option.white .color-piece{color:var(--color-gray-400)}.color-option.black .color-piece{color:var(--color-gray-800)}.difficulty-options{display:flex;flex-direction:column;gap:var(--spacing-xs)}.difficulty-option{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.difficulty-option:hover{background-color:var(--color-gray-200)}.difficulty-option.active{background-color:var(--color-primary-light);border-color:var(--color-primary)}.difficulty-option:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.difficulty-level{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background-color:var(--color-primary);color:var(--text-inverse);font-size:var(--text-sm);font-weight:600;border-radius:var(--radius-full)}.difficulty-name{flex:1;font-weight:500}.difficulty-elo{font-size:var(--text-xs);color:var(--text-secondary)}.difficulty-slider{display:flex;gap:var(--spacing-xs)}.difficulty-btn{flex:1;padding:var(--spacing-sm);background-color:var(--bg-tertiary);border:2px solid transparent;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.difficulty-btn:hover{background-color:var(--color-gray-200)}.difficulty-btn.active{background-color:var(--color-primary);color:var(--text-inverse);border-color:var(--color-primary)}.difficulty-info{display:block;margin-top:var(--spacing-sm);font-size:var(--text-sm);color:var(--text-secondary);text-align:center}.chess-game{display:flex;flex-direction:column;max-width:1200px;margin:0 auto;padding:var(--spacing-md);min-height:100vh}.game-content{display:flex;flex-direction:column;gap:var(--spacing-lg);flex:1}.board-section{display:flex;justify-content:center;position:relative}.fullscreen-enter-btn{position:absolute;bottom:var(--spacing-sm);right:var(--spacing-sm);width:40px;height:40px;padding:0;border:none;border-radius:var(--radius-md);background:#0009;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.6;transition:opacity var(--transition-fast),transform var(--transition-fast);z-index:10}.fullscreen-enter-btn:hover{opacity:1;transform:scale(1.05)}.fullscreen-enter-btn:active{transform:scale(.95)}.fullscreen-enter-btn svg{width:20px;height:20px}.sidebar{display:flex;flex-direction:column;gap:var(--spacing-md)}@media(min-width:768px){.chess-game{padding:var(--spacing-xl)}.game-content{flex-direction:row;align-items:flex-start}.board-section{flex:0 0 auto}.sidebar{flex:1;max-width:350px;min-width:280px}}.game-header{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.header-content{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}.header-center{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs)}.player-info{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);border-radius:var(--radius-md);transition:all var(--transition-fast)}.player-info.active{background-color:var(--color-primary-light)}.player-avatar{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background-color:var(--bg-tertiary)}.avatar-piece{font-size:var(--text-2xl)}.avatar-piece.white{color:var(--color-gray-700)}.avatar-piece.black{color:var(--color-gray-800)}.player-details{display:flex;flex-direction:column}.player-name{font-weight:600;font-size:var(--text-sm);color:var(--text-primary)}.difficulty-label{font-weight:400;color:var(--text-secondary);margin-left:var(--spacing-xs)}.player-rating{font-size:var(--text-xs);color:var(--text-secondary)}.turn-indicator{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-md);background-color:var(--bg-tertiary);border-radius:var(--radius-full)}.turn-dot{width:12px;height:12px;border-radius:var(--radius-full);transition:all var(--transition-fast)}.turn-dot.white{background-color:var(--color-gray-200);border:2px solid var(--color-gray-400)}.turn-dot.black{background-color:var(--color-gray-800);border:2px solid var(--color-gray-600)}.turn-dot.thinking{animation:pulse 1s ease-in-out infinite}.turn-text{font-size:var(--text-sm);font-weight:500;color:var(--text-secondary)}.check-indicator{font-size:var(--text-xs);font-weight:600;color:var(--color-danger);padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-danger-light);border-radius:var(--radius-sm)}@media(max-width:768px){.game-header{padding:var(--spacing-sm)}.header-content{flex-direction:column;gap:var(--spacing-sm)}.player-info{width:100%;justify-content:flex-start}}.board-container{position:relative;-webkit-user-select:none;user-select:none}.board{display:flex;flex-direction:column;background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--spacing-sm)}.board-labels{display:flex;align-items:center;padding:0 var(--spacing-xs)}.board-labels-top,.board-labels-bottom{height:20px}.corner-label{width:20px}.file-label{width:var(--square-size);text-align:center;font-size:var(--text-xs);font-weight:600;color:var(--text-tertiary);text-transform:lowercase}.board-main{display:flex}.rank-labels{display:flex;flex-direction:column;width:20px}.rank-label{height:var(--square-size);display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:600;color:var(--text-tertiary)}.squares-container{display:flex;flex-direction:column;border-radius:var(--radius-sm);overflow:hidden}.board-row{display:flex}.square{width:var(--square-size);height:var(--square-size);display:flex;align-items:center;justify-content:center;position:relative;cursor:pointer;transition:background-color var(--transition-fast)}.square.light{background-color:var(--light-square)}.square.dark{background-color:var(--dark-square)}.square.selected{background-color:var(--selected-color)!important}.square.last-move{background-color:var(--last-move-color)!important}.square.in-check{background-color:var(--check-color)!important}.square.disabled{cursor:not-allowed}.square:focus-visible{outline:3px solid var(--color-primary);outline-offset:-3px;z-index:1}.piece{font-size:calc(var(--square-size) * .8);line-height:1;z-index:1;pointer-events:none;transition:transform var(--transition-fast)}.piece.white{color:var(--color-white);text-shadow:-1px -1px 0 var(--color-gray-600),1px -1px 0 var(--color-gray-600),-1px 1px 0 var(--color-gray-600),1px 1px 0 var(--color-gray-600)}.piece.black{color:var(--color-gray-800);text-shadow:-1px -1px 0 var(--color-gray-400),1px -1px 0 var(--color-gray-400),-1px 1px 0 var(--color-gray-400),1px 1px 0 var(--color-gray-400)}.legal-move-indicator{position:absolute;width:30%;height:30%;background-color:var(--legal-move-color);border-radius:var(--radius-full);pointer-events:none}.square.legal-capture .legal-move-indicator{display:none}.square.legal-capture:after{content:"";position:absolute;inset:0;border:4px solid var(--legal-move-color);border-radius:var(--radius-sm);pointer-events:none}.ai-thinking-overlay{position:absolute;inset:0;background-color:#0000004d;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--spacing-md);border-radius:var(--radius-lg);color:var(--color-white);font-weight:500}.ai-thinking-spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.3);border-top-color:var(--color-white);border-radius:var(--radius-full);animation:spin 1s linear infinite}.game-controls{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-md)}.controls-row{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.controls-row+.controls-row{margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--border-color)}@media(max-width:768px){.control-btn .btn-text{display:none}.control-btn{padding:var(--spacing-sm)}}.settings-panel{position:absolute;top:100%;right:0;width:300px;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);z-index:100;margin-top:var(--spacing-sm)}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);border-bottom:1px solid var(--border-color)}.settings-header h3{font-size:var(--text-lg);font-weight:600}.settings-content{padding:var(--spacing-md)}.setting-group{margin-bottom:var(--spacing-lg)}.setting-group:last-child{margin-bottom:0}.theme-options{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--spacing-sm)}.theme-option{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm);background:none;border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.theme-option:hover{background-color:var(--bg-tertiary)}.theme-option.active{border-color:var(--color-primary);background-color:var(--color-primary-light)}.theme-option:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.theme-preview{display:grid;grid-template-columns:repeat(2,1fr);width:32px;height:32px;border-radius:var(--radius-sm);overflow:hidden}.preview-square{width:16px;height:16px}.theme-name{font-size:var(--text-xs);color:var(--text-secondary)}.move-history{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:0;display:flex;flex-direction:column;max-height:300px}.history-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);border-bottom:1px solid var(--border-color)}.history-title{font-size:var(--text-base);font-weight:600}.history-list{flex:1;overflow-y:auto;padding:var(--spacing-sm)}.history-list-header{display:grid;grid-template-columns:2rem 1fr 1fr;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--text-xs);font-weight:600;color:var(--text-tertiary);text-transform:uppercase;border-bottom:1px solid var(--border-color);margin-bottom:var(--spacing-sm)}.move-pair{display:grid;grid-template-columns:2rem 1fr 1fr;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm)}.move-pair:hover{background-color:var(--bg-tertiary)}.move-number-col{color:var(--text-tertiary);font-size:var(--text-sm)}.white-move,.black-move{font-family:Courier New,Courier,monospace;font-size:var(--text-sm)}.move-item.current{background-color:var(--color-primary-light);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-weight:600}.history-empty{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);color:var(--text-tertiary);font-style:italic}.game-result-indicator{padding:var(--spacing-md);text-align:center;font-weight:600;border-top:1px solid var(--border-color);margin-top:var(--spacing-sm)}@media(max-width:768px){.move-history{max-height:200px}}@media(min-width:1024px){.move-history{max-height:400px}}.dialog-overlay{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px;animation:dialog-fade-in .2s ease-out}.dialog-content{background:var(--surface-tertiary);border-radius:16px;width:100%;max-width:400px;max-height:calc(100vh - 32px);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 16px 48px #0006;border:1px solid var(--border-subtle);animation:dialog-slide-in .25s var(--easing-standard)}.dialog-content.dialog-sm{max-width:320px}.dialog-content.dialog-md{max-width:400px}.dialog-content.dialog-lg{max-width:500px}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border-subtle)}.dialog-title{margin:0;font-family:system-ui,-apple-system,sans-serif;font-size:20px;font-weight:600;color:var(--text-primary)}.dialog-close{display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:1px solid transparent;border-radius:50%;background:#ffffff14;color:var(--text-secondary);line-height:0;appearance:none;cursor:pointer;transition:all .15s ease-out}.dialog-close:hover{background:#ffffff24;color:var(--text-primary);border-color:var(--border-subtle)}.dialog-close:active{background:#fff3}.dialog-close:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media(prefers-color-scheme:light){.dialog-close{background:#0000000d}.dialog-close:hover{background:#0000001a}.dialog-close:active{background:#00000026}}.dialog-close svg{width:24px;height:24px;flex-shrink:0}.dialog-body{flex:1;overflow-y:auto;padding:24px;-webkit-overflow-scrolling:touch}.dialog-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border-subtle)}@media(max-width:480px){.dialog-content{max-width:none;max-height:calc(100vh - 32px);border-radius:16px 16px 0 0;position:fixed;bottom:0;left:0;right:0}.dialog-overlay{align-items:flex-end;padding:0}}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md);animation:fadeIn var(--transition-fast)}.modal-content{background-color:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:400px;width:100%;animation:slideUp var(--transition-normal)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.modal-header h2{font-size:var(--text-xl);font-weight:600}.modal-body{padding:var(--spacing-lg)}.modal-footer{display:flex;gap:var(--spacing-sm);padding:var(--spacing-lg);border-top:1px solid var(--border-color)}.modal-footer .btn{flex:1}.fullscreen-modal-overlay{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px;animation:modal-fade-in .2s ease-out}.fullscreen-modal-content{background:var(--surface-tertiary);border-radius:16px;width:100%;max-width:400px;max-height:calc(100vh - 32px);overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--border-subtle);box-shadow:0 16px 48px #0006;animation:modal-slide-in .25s var(--easing-standard)}.fullscreen-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border-subtle)}.fullscreen-modal-header h2{margin:0;font-family:system-ui,-apple-system,sans-serif;font-size:20px;font-weight:600;color:var(--text-primary)}.fullscreen-modal-close{display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:1px solid transparent;border-radius:50%;background:#ffffff14;color:var(--text-secondary);line-height:0;appearance:none;cursor:pointer;transition:all .15s ease-out}.fullscreen-modal-close:hover{background:#ffffff24;color:var(--text-primary);border-color:var(--border-subtle)}.fullscreen-modal-close:active{background:#fff3}.fullscreen-modal-close:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media(prefers-color-scheme:light){.fullscreen-modal-close{background:#0000000d}.fullscreen-modal-close:hover{background:#0000001a}.fullscreen-modal-close:active{background:#00000026}}.fullscreen-modal-close{font-size:24px}.fullscreen-modal-body{flex:1;overflow-y:auto;padding:24px;-webkit-overflow-scrolling:touch}.fullscreen-modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border-subtle)}@media(max-width:480px){.modal-content{margin:var(--spacing-md)}.fullscreen-modal-content{max-width:none;max-height:calc(100vh - 32px);border-radius:16px 16px 0 0;position:fixed;bottom:0;left:0;right:0}.fullscreen-modal-overlay{align-items:flex-end;padding:0}.fullscreen-modal-header{padding:16px 20px}.fullscreen-modal-body{padding:20px}}@media(prefers-reduced-motion:reduce){.fullscreen-modal-overlay,.fullscreen-modal-content{animation:none}}.toast-container{position:fixed;top:calc(24px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:200;display:flex;flex-direction:column;gap:8px;pointer-events:none;max-width:calc(100vw - 32px)}.toast{display:flex;align-items:center;gap:12px;padding:12px 20px;border-radius:12px;background:#2a2a2af2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 4px 16px #0000004d;border:1px solid var(--border-subtle);pointer-events:auto;cursor:pointer;transition:all .15s ease-out}.toast:hover{transform:scale(1.02)}@media(prefers-color-scheme:light){.toast{background:#fffffff2;box-shadow:0 4px 16px #00000026}}.toast-message{font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:500;color:var(--text-primary);white-space:nowrap}.toast-success{border-left:3px solid var(--color-primary)}.toast-success .toast-message{color:#81c784}.toast-info{border-left:3px solid #2196f3}.toast-info .toast-message{color:#64b5f6}.toast-warning{border-left:3px solid #ff9800}.toast-warning .toast-message{color:#ffb74d}.toast-error{border-left:3px solid #f44336}.toast-error .toast-message{color:#e57373}.toast-enter{animation:toast-slide-in .2s ease-out}.toast-exit{animation:toast-slide-out .2s ease-in forwards}@media(prefers-reduced-motion:reduce){.toast-enter,.toast-exit{animation:none}}.game-result-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100}.game-result-modal{text-align:center;max-width:360px;overflow:hidden;background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:16px;padding:0;box-shadow:0 20px 60px #00000080;width:90%}.game-result-modal.animating{animation:resultBounce var(--transition-slow)}.game-result-modal.win{border:3px solid var(--color-success)}.game-result-modal.win .result-title{color:var(--color-success)}.game-result-modal.loss{border:3px solid var(--color-danger)}.game-result-modal.loss .result-title{color:var(--color-danger)}.game-result-modal.draw{border:3px solid #2196f3}.game-result-modal.draw .result-title{color:#2196f3}@media(prefers-color-scheme:light){.game-result-modal{background:linear-gradient(135deg,#f8f9fa,#e9ecef)}}.result-header{padding:var(--spacing-xl) var(--spacing-lg) var(--spacing-md)}.result-title{font-size:var(--text-2xl);font-weight:700;margin-bottom:var(--spacing-sm)}.result-icon{font-size:var(--text-4xl)}.result-icon-large{font-size:4rem;line-height:1;animation:result-icon-bounce .6s ease-out}.result-content{padding:1.5rem;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.result-message{padding:0 var(--spacing-lg) var(--spacing-lg);color:var(--text-secondary);font-size:1.125rem;text-align:center;margin:0;line-height:1.6}.result-stats{padding:var(--spacing-lg);background-color:var(--bg-tertiary);width:100%;border-radius:12px;display:flex;flex-direction:column;gap:1rem}@media(prefers-color-scheme:light){.result-stats{background:#0000000a}}.stat-row{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) 0;font-size:.875rem}.stat-row:not(:last-child){border-bottom:1px solid var(--border-color)}.stat-row.record{padding-top:.75rem;border-top:1px solid var(--border-subtle)}.stat-row.record .stat-value{display:flex;gap:var(--spacing-sm)}.stat-row.record .wins{color:var(--color-success)}.stat-row.record .losses{color:var(--color-danger)}.stat-row.record .draws{color:#2196f3}.stat-row.record .separator{color:var(--text-tertiary);margin:0 .5rem}@media(prefers-color-scheme:light){.stat-row.record .separator{color:#0000004d}}.stat-label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.stat-value{font-weight:600;font-size:.875rem;color:var(--text-primary)}.rating-change{display:flex;flex-direction:column;align-items:flex-end}.rating-values{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--text-sm)}.old-rating,.rating-arrow{color:var(--text-tertiary)}.new-rating{font-weight:700}.rating-delta{font-size:var(--text-xs);font-weight:600;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full)}.rating-delta.positive{background-color:var(--color-success-light);color:var(--color-success)}.rating-delta.negative{background-color:var(--color-danger-light);color:var(--color-danger)}.rating-delta.neutral{background-color:var(--bg-tertiary);color:var(--text-secondary)}.streak-display{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:linear-gradient(135deg,var(--color-warning) 0%,#f97316 100%);color:var(--color-white);border-radius:var(--radius-md);margin-top:var(--spacing-sm)}.streak-emoji{font-size:var(--text-xl)}.streak-text{font-weight:600}.win-streak-badge{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:linear-gradient(135deg,var(--color-warning) 0%,#f97316 100%);border-radius:var(--radius-full);color:var(--color-white);font-size:var(--text-xs);font-weight:600}.streak-icon{font-size:var(--text-sm)}.result-actions{display:flex;gap:.75rem;padding:var(--spacing-lg);width:100%}.result-actions .btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1.5rem;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.result-actions .btn:disabled{opacity:.5;cursor:not-allowed}.result-actions .btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.result-actions .btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #667eea66}.result-actions .btn-secondary{background:#ffffff1a;color:#fff;border:1px solid var(--border-default)}.result-actions .btn-secondary:hover:not(:disabled){background:#ffffff26;border-color:#ffffff4d}@media(prefers-color-scheme:light){.result-actions .btn-secondary{background:#00000014;color:var(--text-primary);border-color:#00000026}.result-actions .btn-secondary:hover:not(:disabled){background:#0000001f;border-color:#0003}}.result-actions .btn-icon{font-size:1.125rem}.auto-restart-countdown{margin-left:.25rem;font-weight:400;opacity:.8;font-size:.875rem}.celebration-animation{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:99;overflow:hidden}.celebration-particle{position:absolute;width:10px;height:10px;background:linear-gradient(135deg,gold,#ffb700);border-radius:var(--radius-full);animation:confetti 1.5s ease-out forwards}.celebration-particle:nth-child(odd){background:linear-gradient(135deg,#ff6b6b,#ee5a24)}.celebration-particle:nth-child(3n){background:linear-gradient(135deg,#4ecdc4,#44bd32)}@media(max-width:480px){.game-result-modal{width:95%;max-width:none}.result-content{padding:1rem;gap:1rem}.result-icon-large{font-size:3rem}.result-message{font-size:1rem}.result-actions{flex-direction:column}.result-actions .btn{width:100%}}@media(prefers-reduced-motion:reduce){.result-icon-large,.celebration-animation{animation:none}}.promotion-overlay{background-color:#000000b3;z-index:150}.promotion-dialog{position:absolute;left:var(--target-left);transform:translate(-50%);background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:var(--spacing-md);animation:popIn var(--transition-fast)}.promotion-dialog.above{bottom:60%}.promotion-dialog.below{top:60%}.promotion-title{font-size:var(--text-sm);font-weight:600;text-align:center;margin-bottom:var(--spacing-md);color:var(--text-secondary)}.promotion-options{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.promotion-option{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;border:2px solid transparent;border-radius:12px;background:#ffffff0d;transition:all .15s ease-out}.promotion-option:hover{background:#ffffff1a}@media(prefers-color-scheme:light){.promotion-option{background:#0000000a}.promotion-option:hover{background:#00000014}}.promotion-option{cursor:pointer}.promotion-option:hover{border-color:#4caf5080}.promotion-option:focus{outline:none;border-color:var(--color-primary);background:#4caf501a}.promotion-option:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.promotion-piece-img{width:48px;height:48px;object-fit:contain}.promotion-piece{font-size:40px;line-height:1}.promotion-piece.white{color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3)}.promotion-piece.black{color:#333}.promotion-option.white .promotion-piece{color:var(--color-gray-300);text-shadow:-1px -1px 0 var(--color-gray-600),1px -1px 0 var(--color-gray-600),-1px 1px 0 var(--color-gray-600),1px 1px 0 var(--color-gray-600)}.promotion-option.black .promotion-piece{color:var(--color-gray-800)}.promotion-label{font-family:system-ui,-apple-system,sans-serif;font-size:11px;font-weight:500;color:var(--text-secondary)}.promotion-shortcut{font-size:var(--text-xs);color:var(--text-tertiary, var(--color-gray-400));font-family:monospace;opacity:.7}.promotion-cancel{display:block;width:100%;margin-top:var(--spacing-sm);padding:var(--spacing-sm);background:none;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.promotion-cancel:hover{background-color:var(--bg-tertiary)}@media(max-width:768px){.promotion-dialog{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);bottom:auto}.promotion-dialog.above,.promotion-dialog.below{top:50%;bottom:auto}}@media(max-width:380px){.promotion-options{grid-template-columns:repeat(2,1fr)}}.confirmation-dialog{position:fixed;inset:0;width:100%;height:100%;max-width:100%;max-height:100%;border:none;padding:0;margin:0;background:transparent;z-index:150}.confirmation-dialog::backdrop{background:#000000b3;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.confirmation-dialog-content{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--surface-tertiary);border-radius:16px;width:calc(100% - 32px);max-width:400px;padding:24px;box-shadow:0 16px 48px #0006;border:1px solid var(--border-subtle);animation:confirmation-dialog-slide-in .25s var(--easing-standard)}.confirmation-dialog-title{margin:0 0 12px;font-family:system-ui,-apple-system,sans-serif;font-size:20px;font-weight:600;color:var(--text-primary);line-height:1.3}.confirmation-dialog-message{margin:0 0 24px;font-family:system-ui,-apple-system,sans-serif;font-size:14px;color:var(--text-secondary);line-height:1.5}.confirmation-dialog-actions{display:flex;justify-content:flex-end;gap:12px}.confirmation-dialog-button{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border:none;border-radius:8px;font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease-out;min-height:44px}.confirmation-dialog-button:disabled{cursor:not-allowed;opacity:.7}.confirmation-dialog-button.cancel{background:var(--border-subtle);color:var(--text-secondary)}.confirmation-dialog-button.cancel:hover:not(:disabled){background:var(--border-default)}.confirmation-dialog-button.cancel:active:not(:disabled){background:var(--surface-elevated)}.confirmation-dialog-button.cancel:focus{outline:none;box-shadow:0 0 0 2px var(--border-default)}.confirmation-dialog-button.confirm{background:var(--color-primary);color:#fff}.confirmation-dialog-button.confirm:hover:not(:disabled){background:var(--color-primary-hover)}.confirmation-dialog-button.confirm:active:not(:disabled){background:var(--color-primary-hover)}.confirmation-dialog-button.confirm:focus{outline:none;box-shadow:0 0 0 2px #4caf5080}.confirmation-dialog-button.confirm.loading{cursor:wait}.confirmation-dialog-button.confirm.dangerous{background:#f44336;color:#fff}.confirmation-dialog-button.confirm.dangerous:hover:not(:disabled){background:#e53935}.confirmation-dialog-button.confirm.dangerous:active:not(:disabled){background:#d32f2f}.confirmation-dialog-button.confirm.dangerous:focus{outline:none;box-shadow:0 0 0 2px #f4433680}.loading-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:confirmation-spinner .8s linear infinite}.loading-text{font-size:14px}@keyframes confirmation-spinner{to{transform:rotate(360deg)}}@media(max-width:480px){.confirmation-dialog-content{width:calc(100% - 24px);padding:20px;border-radius:16px 16px 0 0;position:fixed;inset:auto 0 0;transform:none;max-width:none;animation:confirmation-dialog-slide-up .25s var(--easing-standard)}.confirmation-dialog-actions{flex-direction:column-reverse;gap:8px}.confirmation-dialog-button{width:100%}}@media(prefers-reduced-motion:reduce){.confirmation-dialog-content{animation:none}.confirmation-dialog-button{transition:none}}@media(prefers-contrast:high){.confirmation-dialog-content{border:2px solid var(--text-primary)}.confirmation-dialog-button.cancel{border:1px solid var(--text-tertiary)}.confirmation-dialog-button.confirm{border:1px solid var(--color-primary)}.confirmation-dialog-button.confirm.dangerous{border:1px solid #f44336}}.ml-training-panel{padding:0}.ml-training-panel h3{margin:0 0 1.5rem;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.ml-training-panel h4{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:var(--text-secondary)}.ml-section{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-subtle)}.ml-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.ml-section{padding-bottom:1.5rem;border-bottom-color:var(--border-color)}.ml-toggle{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-size:1rem;font-weight:500;margin-bottom:.5rem}.ml-toggle input[type=checkbox]{width:1.25rem;height:1.25rem;cursor:pointer}.ml-description{margin:0;font-size:.875rem;color:var(--text-tertiary);line-height:1.5}.ml-stats,.ml-recent{background:var(--bg-secondary);padding:1rem;border-radius:.5rem;border-bottom:none}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.stat-item{display:flex;flex-direction:column;gap:.25rem}.stat-label{font-size:.75rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:1.125rem;font-weight:600;color:var(--text-primary)}.ml-no-data{margin:0;font-style:italic;color:var(--text-tertiary)}.ml-progress{background:var(--bg-secondary);padding:1rem;border-radius:.5rem;border-bottom:none}.progress-bar{height:.5rem;background:var(--border-subtle);border-radius:.25rem;overflow:hidden}.progress-bar .progress-fill{height:100%;border-radius:.25rem;background:linear-gradient(90deg,#4caf50,#8bc34a);transition:width .3s ease}.progress-bar{margin-bottom:.5rem}.progress-text{margin:0;font-size:.875rem;color:var(--text-secondary);text-align:center}.ml-actions{display:flex;gap:.75rem;border-bottom:none}.ml-button{flex:1;padding:.75rem 1rem;font-size:.875rem;font-weight:600;border:none;border-radius:.375rem;cursor:pointer;transition:all .2s ease}.ml-button:disabled{opacity:.5;cursor:not-allowed}.ml-button-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.ml-button-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.ml-button-danger{background:#f44336;color:#fff}.ml-button-danger:hover:not(:disabled){background:#d32f2f;transform:translateY(-1px);box-shadow:0 4px 12px #f4433666}.ml-info{background:var(--bg-info, var(--bg-secondary));padding:1rem;border-radius:.5rem;border-bottom:none}.ml-info ul{margin:0;padding-left:1.25rem}.ml-info li{font-size:.875rem;color:var(--text-secondary);line-height:1.6;margin-bottom:.5rem}.ml-info li:last-child{margin-bottom:0}.mode-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.mode-button{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;background:var(--bg-secondary);border:2px solid transparent;border-radius:.5rem;cursor:pointer;transition:all .2s ease}.mode-button:hover{background:var(--bg-tertiary);transform:translateY(-1px)}.mode-button.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;color:#fff}.mode-icon{font-size:2rem}.mode-name{font-size:1rem;font-weight:600}.mode-desc{font-size:.75rem;opacity:.8}.mode-button.active .mode-desc{opacity:1}.ml-status{background:var(--bg-secondary);padding:1rem;border-radius:.5rem;border-bottom:none}.status-text{margin:0;font-size:1rem;font-weight:500;display:flex;align-items:center;gap:.5rem}.status-text.training{color:#2196f3}.status-text.waiting{color:#ff9800}.status-text.playing{color:#4caf50}.status-text.manual{color:#9c27b0}.status-text.idle{color:#757575}.ml-score{background:linear-gradient(135deg,#667eea15,#764ba215);padding:1rem;border-radius:.5rem;border:2px solid #667eea;border-bottom:none}.score-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.score-item{display:flex;flex-direction:column;align-items:center;gap:.25rem;text-align:center}.score-label{font-size:.75rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.score-value{font-size:1.25rem;font-weight:700;color:var(--text-primary)}.score-value.highlight{color:#667eea;font-size:1.5rem}.ml-data-quality{background:var(--bg-secondary);padding:1rem;border-radius:.5rem;border-bottom:none}.stat-full-width{grid-column:1/-1}.phase-distribution{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.phase-bar-container{display:flex;flex-direction:column;gap:.5rem}.phase-bar-labels{display:flex;justify-content:space-between;font-size:.75rem;color:var(--text-secondary)}.phase-label{font-weight:500}.phase-bar{display:flex;height:1.5rem;border-radius:.375rem;overflow:hidden;background:var(--bg-tertiary)}.phase-segment{transition:width .3s ease;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;color:#fff}.phase-segment.opening{background:linear-gradient(135deg,#4caf50,#66bb6a)}.phase-segment.middlegame{background:linear-gradient(135deg,#2196f3,#42a5f5)}.phase-segment.endgame{background:linear-gradient(135deg,#ff9800,#ffa726)}.depth-distribution{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.depth-item{display:flex;justify-content:space-between;padding:.5rem;background:var(--bg-tertiary);border-radius:.25rem}.depth-label{font-size:.875rem;font-weight:500;color:var(--text-secondary)}.depth-value{font-size:.875rem;font-weight:600;color:var(--text-primary)}.ml-speed{background:linear-gradient(135deg,#ff572215,#ff910015);padding:1rem;border-radius:.5rem;border:2px solid #ff5722}.speed-control{display:flex;flex-direction:column;gap:.75rem}.speed-header{display:flex;justify-content:space-between;align-items:center}.speed-label{font-size:.875rem;font-weight:500;color:var(--text-secondary)}.speed-value{font-size:1.125rem;font-weight:700;color:#ff5722}.speed-slider{width:100%;height:8px;border-radius:4px;background:linear-gradient(90deg,#4caf50,#ffc107,#ff5722);outline:none;appearance:none;cursor:pointer}.speed-slider::-webkit-slider-thumb{appearance:none;width:20px;height:20px;border-radius:50%;background:#fff;border:3px solid #ff5722;cursor:pointer;box-shadow:0 2px 6px #0003;transition:transform .15s ease}.speed-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#fff;border:3px solid #ff5722;cursor:pointer;box-shadow:0 2px 6px #0003}.speed-labels{display:flex;justify-content:space-between;font-size:.75rem;color:var(--text-tertiary)}.speed-description{margin:.5rem 0 0;font-size:.75rem;color:var(--text-tertiary);line-height:1.4}.model-management-panel{background:var(--surface-tertiary);border-radius:8px;padding:16px;margin-bottom:16px}.model-management-panel .panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.model-management-panel h3{margin:0;font-size:1.1rem;color:var(--text-primary)}.model-management-panel .header-actions{display:flex;gap:8px}.model-management-panel .loading-message{text-align:center;color:var(--text-tertiary);padding:20px}.model-management-panel .error-message{background:#f443361a;border:1px solid #f44336;border-radius:4px;padding:12px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center;color:#ff6b6b}.model-management-panel .error-message .btn-close{background:none;border:none;color:#ff6b6b;font-size:1.5rem;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.model-management-panel .error-message .btn-close:hover{opacity:.7}.model-management-panel .empty-state{text-align:center;padding:40px 20px;color:var(--text-tertiary)}.model-management-panel .empty-state p{margin:8px 0}.model-management-panel .empty-state .hint{font-size:.9rem;color:var(--text-secondary)}.model-management-panel .models-list{display:flex;flex-direction:column;gap:12px}.model-management-panel .model-card{background:var(--surface-elevated);border:2px solid var(--border-subtle);border-radius:8px;padding:16px;transition:all .2s ease}.model-management-panel .model-card:hover{border-color:var(--border-default);transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.model-management-panel .model-card.active{border-color:#4caf50;background:#4caf501a}.model-management-panel .model-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.model-management-panel .model-title{display:flex;align-items:center;gap:8px}.model-management-panel .model-version{font-weight:700;font-size:1.1rem;color:var(--text-primary)}.model-management-panel .active-badge{background:#4caf50;color:#fff;padding:2px 8px;border-radius:12px;font-size:.75rem;font-weight:600}.model-management-panel .model-actions{display:flex;gap:8px}.model-management-panel .btn-icon{background:var(--border-subtle);border:1px solid var(--border-default);border-radius:4px;padding:6px 10px;cursor:pointer;transition:all .2s ease;font-size:1rem;color:var(--text-primary)}.model-management-panel .btn-icon:hover:not(:disabled){background:var(--border-default);transform:scale(1.05)}.model-management-panel .btn-icon:disabled{opacity:.5;cursor:not-allowed}.model-management-panel .btn-icon.btn-danger:hover:not(:disabled){background:#f4433633;border-color:#f44336}.model-management-panel .model-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.model-management-panel .stat-row{display:flex;flex-direction:column;gap:4px}.model-management-panel .stat-label{font-size:.85rem;color:var(--text-tertiary)}.model-management-panel .stat-value{font-size:.95rem;color:var(--text-primary);font-weight:500}.model-management-panel .action-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:1000;gap:16px}.model-management-panel .action-overlay p{color:#fff;font-size:1.1rem}.model-management-panel .spinner{width:48px;height:48px;border:4px solid var(--border-default);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.model-management-panel .btn{padding:8px 16px;border-radius:4px;border:none;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s ease}.model-management-panel .btn:disabled{opacity:.5;cursor:not-allowed}.model-management-panel .btn-primary{background:var(--color-primary);color:#fff}.model-management-panel .btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.model-management-panel .btn-secondary{background:var(--border-subtle);color:var(--text-primary);border:1px solid var(--border-default)}.model-management-panel .btn-secondary:hover:not(:disabled){background:var(--border-default)}.model-management-panel .btn-warning{background:#ff980033;color:#ffb74d;border:1px solid rgba(255,152,0,.4)}.model-management-panel .btn-warning:hover:not(:disabled){background:#ff98004d;border-color:#ff980099}.model-management-panel .btn-sm{padding:6px 12px;font-size:.85rem}@media(max-width:640px){.model-management-panel .panel-header{flex-direction:column;align-items:flex-start;gap:12px}.model-management-panel .header-actions{width:100%;flex-direction:column}.model-management-panel .header-actions .btn{width:100%;justify-content:center}.model-management-panel .model-stats{grid-template-columns:1fr}.model-management-panel .model-header{flex-direction:column;align-items:flex-start;gap:12px}.model-management-panel .model-actions{align-self:flex-end}}.version-dashboard-panel{background:var(--surface-tertiary);border-radius:8px;padding:16px;margin-bottom:16px}.version-dashboard-panel .panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.version-dashboard-panel h3{margin:0;font-size:1.1rem;color:var(--text-primary)}.version-dashboard-panel h4{margin:0 0 12px;font-size:.95rem;color:var(--text-secondary);font-weight:500}.version-dashboard-panel .loading-message{text-align:center;color:var(--text-tertiary);padding:20px}.version-dashboard-panel .error-message{background:#f443361a;border:1px solid #f44336;border-radius:4px;padding:12px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center;color:#ff6b6b}.version-dashboard-panel .error-message .btn-close{background:none;border:none;color:#ff6b6b;font-size:1.5rem;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.version-dashboard-panel .error-message .btn-close:hover{opacity:.7}.version-dashboard-panel .active-version-summary{background:#4caf501a;border:1px solid rgba(76,175,80,.3);border-radius:8px;padding:16px;margin-bottom:16px}.version-dashboard-panel .summary-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.version-dashboard-panel .summary-header .active-label{font-size:.85rem;color:var(--text-secondary)}.version-dashboard-panel .summary-header .version-name{font-weight:600;color:var(--text-primary)}.version-dashboard-panel .summary-metrics{display:flex;gap:24px}.version-dashboard-panel .empty-state{text-align:center;padding:32px 20px;color:var(--text-tertiary)}.version-dashboard-panel .empty-state p{margin:8px 0}.version-dashboard-panel .empty-state .hint{font-size:.9rem;color:var(--text-secondary)}.version-dashboard-panel .version-history{margin-top:16px}.version-dashboard-panel .versions-list{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto;padding-right:4px}.version-dashboard-panel .version-card{background:var(--surface-elevated);border:2px solid var(--border-subtle);border-radius:8px;padding:14px;transition:all .2s ease}.version-dashboard-panel .version-card:hover{border-color:var(--border-default);transform:translateY(-1px);box-shadow:0 2px 8px #0003}.version-dashboard-panel .version-card.active{border-color:#4caf50;background:#4caf500d}.version-dashboard-panel .version-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.version-dashboard-panel .version-info{display:flex;align-items:center;gap:8px}.version-dashboard-panel .version-number{font-weight:700;font-size:1rem;color:var(--text-primary)}.version-dashboard-panel .active-badge{background:#4caf50;color:#fff;padding:2px 8px;border-radius:12px;font-size:.7rem;font-weight:600}.version-dashboard-panel .auto-badge{background:var(--border-subtle);color:var(--text-secondary);padding:2px 6px;border-radius:8px;font-size:.7rem;font-weight:500}.version-dashboard-panel .version-time{font-size:.85rem;color:var(--text-tertiary)}.version-dashboard-panel .version-name{font-size:.9rem;color:var(--text-secondary);font-style:italic;margin-bottom:10px}.version-dashboard-panel .version-metrics,.version-dashboard-panel .metric{display:flex}.version-dashboard-panel .version-metrics{gap:16px;margin-bottom:12px}.version-dashboard-panel .metric{flex-direction:column;gap:2px}.version-dashboard-panel .metric .metric-label{font-size:.75rem;color:var(--text-tertiary)}.version-dashboard-panel .metric .metric-value{font-size:.9rem;color:var(--text-primary);font-weight:500}.version-dashboard-panel .metric.improvement .metric-value{color:#4caf50}.version-dashboard-panel .metric.regression .metric-value{color:#f44336}.version-dashboard-panel .version-actions{display:flex;gap:8px;justify-content:flex-end}.version-dashboard-panel .btn{padding:8px 16px;border-radius:4px;border:none;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s ease}.version-dashboard-panel .btn:disabled{opacity:.5;cursor:not-allowed}.version-dashboard-panel .btn-primary{background:var(--color-primary);color:#fff}.version-dashboard-panel .btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.version-dashboard-panel .btn-secondary{background:var(--border-subtle);color:var(--text-primary);border:1px solid var(--border-default)}.version-dashboard-panel .btn-secondary:hover:not(:disabled){background:var(--border-default)}.version-dashboard-panel .btn-danger{background:#f443361a;color:#ff6b6b;border:1px solid rgba(244,67,54,.3)}.version-dashboard-panel .btn-danger:hover:not(:disabled){background:#f4433633;border-color:#f4433680}.version-dashboard-panel .btn-sm{padding:6px 12px;font-size:.85rem}.version-dashboard-panel .version-name-input{width:100%;padding:10px 12px;margin-top:12px;border:1px solid var(--border-default);border-radius:4px;background:var(--surface-elevated);color:var(--text-primary);font-size:.95rem}.version-dashboard-panel .version-name-input::placeholder{color:var(--text-tertiary)}.version-dashboard-panel .version-name-input:focus{outline:none;border-color:var(--color-primary)}.version-dashboard-panel .save-version-dialog{position:fixed;inset:0;z-index:1000;background:#000000b3;display:flex;align-items:center;justify-content:center;border:none;padding:0;margin:0;width:100%;height:100%}.version-dashboard-panel .save-version-dialog .dialog-content{background:var(--surface-elevated);border-radius:12px;padding:24px;max-width:400px;width:90%}.version-dashboard-panel .save-version-dialog .dialog-content h3{margin:0 0 12px;color:var(--text-primary)}.version-dashboard-panel .save-version-dialog .dialog-content p{margin:0 0 16px;color:var(--text-secondary)}.version-dashboard-panel .save-version-dialog .dialog-content .version-name-input{margin-top:0;margin-bottom:16px}.version-dashboard-panel .save-version-dialog .dialog-actions{display:flex;gap:12px;justify-content:flex-end}.version-dashboard-panel .action-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:1000;gap:16px}.version-dashboard-panel .action-overlay p{color:#fff;font-size:1.1rem}.version-dashboard-panel .spinner{width:48px;height:48px;border:4px solid var(--border-default);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:640px){.version-dashboard-panel .panel-header{flex-direction:column;align-items:flex-start;gap:12px}.version-dashboard-panel .panel-header .btn{width:100%}.version-dashboard-panel .summary-metrics{flex-direction:column;gap:12px}.version-dashboard-panel .version-metrics{flex-wrap:wrap}.version-dashboard-panel .version-header{flex-direction:column;align-items:flex-start;gap:8px}.version-dashboard-panel .version-time{align-self:flex-end;margin-top:-24px}.version-dashboard-panel .version-actions{width:100%}.version-dashboard-panel .version-actions .btn{flex:1}}.training-progress-chart{background:var(--surface-color, rgba(255, 255, 255, .05));border-radius:8px;padding:16px}.training-progress-chart .section-header{font-size:14px;font-weight:600;color:var(--text-primary, #fff);margin-bottom:16px;text-transform:uppercase;letter-spacing:.5px}.training-progress-chart.loading,.training-progress-chart.error,.training-progress-chart.empty{min-height:120px;display:flex;flex-direction:column}.training-progress-chart .loading-message,.training-progress-chart .error-message{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-secondary, rgba(255, 255, 255, .6));font-size:13px}.training-progress-chart .error-message{color:var(--error-color, #f44336)}.training-progress-chart .empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--text-secondary, rgba(255, 255, 255, .6));font-size:13px}.training-progress-chart .empty-state .hint{font-size:12px;opacity:.7;margin-top:4px}.summary-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.summary-stats .stat{text-align:center;padding:8px 4px;background:var(--surface-elevated, rgba(255, 255, 255, .03));border-radius:6px}.summary-stats .stat .stat-value{display:block;font-size:16px;font-weight:600;color:var(--text-primary, #fff);margin-bottom:2px}.summary-stats .stat .stat-label{display:block;font-size:10px;color:var(--text-secondary, rgba(255, 255, 255, .5));text-transform:uppercase;letter-spacing:.3px}.charts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}@media(max-width:480px){.charts-grid{grid-template-columns:1fr}}.mini-chart{background:var(--surface-elevated, rgba(255, 255, 255, .03));border-radius:6px;padding:10px}.mini-chart.empty{display:flex;align-items:center;justify-content:space-between}.mini-chart.empty .no-data{font-size:11px;color:var(--text-secondary, rgba(255, 255, 255, .4))}.mini-chart .chart-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.mini-chart .chart-label{font-size:11px;color:var(--text-secondary, rgba(255, 255, 255, .6));text-transform:uppercase;letter-spacing:.3px}.mini-chart .chart-value{font-size:13px;font-weight:600;color:var(--text-primary, #fff)}.mini-chart .chart-value .change{font-size:10px;font-weight:500;margin-left:4px;padding:1px 4px;border-radius:3px}.mini-chart .chart-value .change.positive{color:#4caf50;background:#4caf5026}.mini-chart .chart-value .change.negative{color:#f44336;background:#f4433626}.mini-chart .chart-value .change.neutral{color:var(--text-secondary, rgba(255, 255, 255, .5));background:#ffffff0d}.mini-chart .chart-bars{display:flex;align-items:flex-end;gap:2px;height:40px}.mini-chart .chart-bars .bar{flex:1;min-width:4px;border-radius:2px 2px 0 0;transition:height .2s ease}.mini-chart .chart-bars .bar:hover{opacity:1!important}.session-history .history-header{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:8px;padding:8px 12px;font-size:10px;color:var(--text-secondary, rgba(255, 255, 255, .5));text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--border-color, rgba(255, 255, 255, .1))}.session-history .history-list{max-height:180px;overflow-y:auto}.session-row{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:8px;padding:10px 12px;font-size:12px;color:var(--text-primary, #fff);border-bottom:1px solid var(--border-color, rgba(255, 255, 255, .05));transition:background-color .15s ease}.session-row:hover{background:var(--surface-elevated, rgba(255, 255, 255, .03))}.session-row.latest{background:#4caf5014}.session-row.latest:hover{background:#4caf501f}.session-row .session-time{color:var(--text-secondary, rgba(255, 255, 255, .6))}.session-row .session-version{font-weight:500}.session-row .session-accuracy{color:#4caf50;font-weight:500}.session-row .session-loss{color:var(--text-secondary, rgba(255, 255, 255, .7))}.session-row .session-duration{color:var(--text-secondary, rgba(255, 255, 255, .5));font-size:11px}@media(prefers-color-scheme:light){.training-progress-chart{background:#00000008}.training-progress-chart .section-header{color:#333}.summary-stats .stat{background:#00000005}.summary-stats .stat .stat-value{color:#333}.summary-stats .stat .stat-label{color:#666}.mini-chart{background:#00000005}.mini-chart .chart-label{color:#666}.mini-chart .chart-value{color:#333}.session-row{color:#333;border-bottom-color:#0000000d}.session-row:hover{background:#00000005}.session-row.latest{background:#4caf501a}.session-row .session-time,.session-row .session-duration{color:#666}}:root{--color-primary: #4a90d9;--color-primary-hover: #3a7bc8;--color-primary-light: #e8f1fb;--color-secondary: #6b7280;--color-secondary-hover: #4b5563;--color-success: #22c55e;--color-success-light: #dcfce7;--color-danger: #ef4444;--color-danger-light: #fee2e2;--color-warning: #f59e0b;--color-warning-light: #fef3c7;--color-white: #ffffff;--color-black: #000000;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--bg-primary: var(--color-white);--bg-secondary: var(--color-gray-50);--bg-tertiary: var(--color-gray-100);--text-primary: var(--color-gray-900);--text-secondary: var(--color-gray-600);--text-tertiary: var(--color-gray-400);--text-inverse: var(--color-white);--border-color: var(--color-gray-200);--border-color-hover: var(--color-gray-300);--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--board-size: min(90vw, 500px);--square-size: calc(var(--board-size) / 8);--easing-standard: cubic-bezier(.4, 0, .2, 1);--easing-decelerate: cubic-bezier(0, 0, .2, 1);--easing-accelerate: cubic-bezier(.4, 0, 1, 1);--surface-primary: #ffffff;--surface-secondary: #f5f5f5;--surface-tertiary: #eeeeee;--surface-elevated: #ffffff;--border-subtle: rgba(0, 0, 0, .08);--border-default: rgba(0, 0, 0, .15)}@media(prefers-color-scheme:dark){:root{--bg-primary: var(--color-gray-900);--bg-secondary: var(--color-gray-800);--bg-tertiary: var(--color-gray-700);--text-primary: var(--color-gray-100);--text-secondary: var(--color-gray-300);--text-tertiary: var(--color-gray-500);--border-color: var(--color-gray-700);--border-color-hover: var(--color-gray-600);--color-primary-light: rgba(74, 144, 217, .2);--color-success-light: rgba(34, 197, 94, .2);--color-danger-light: rgba(239, 68, 68, .2);--surface-primary: #1a1a1a;--surface-secondary: #242424;--surface-tertiary: #2a2a2a;--surface-elevated: #333333;--border-subtle: rgba(255, 255, 255, .1);--border-default: rgba(255, 255, 255, .2);--text-primary: rgba(255, 255, 255, .95);--text-secondary: rgba(255, 255, 255, .7);--text-tertiary: rgba(255, 255, 255, .5)}}@media(prefers-color-scheme:light){:root{--surface-primary: #ffffff;--surface-secondary: #f5f5f5;--surface-tertiary: #eeeeee;--surface-elevated: #ffffff;--border-subtle: rgba(0, 0, 0, .08);--border-default: rgba(0, 0, 0, .15);--text-primary: rgba(0, 0, 0, .9);--text-secondary: rgba(0, 0, 0, .6);--text-tertiary: rgba(0, 0, 0, .4)}}@media(min-width:768px){:root{--board-size: min(60vw, 560px)}}@media(min-width:1024px){:root{--board-size: min(50vw, 600px)}}.fullscreen-mode body{overflow:hidden;margin:0;padding:0}.fullscreen-board-container{position:fixed;inset:0;width:100vw;height:100vh;background:var(--surface-primary);display:flex;align-items:center;justify-content:center;overflow:hidden;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.fullscreen-board-container:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 50%,rgba(0,0,0,.3) 100%);z-index:1}@media(prefers-color-scheme:light){.fullscreen-board-container:before{background:radial-gradient(ellipse at center,transparent 50%,rgba(0,0,0,.1) 100%)}}.fullscreen-board-wrapper{position:relative;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);aspect-ratio:1/1;z-index:2}@media(max-width:768px){.fullscreen-board-wrapper{max-width:calc(100vw - 16px);max-height:calc(100vh - 16px)}}.fullscreen-board-canvas{width:100%;height:100%;display:block;border-radius:4px;box-shadow:0 8px 32px #00000080}.control-overlay{position:fixed;inset:0;pointer-events:none;z-index:10;transition:opacity .2s ease-out}.control-overlay.hidden{opacity:0}.control-overlay.visible{opacity:1}.control-top-bar{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:16px 24px;padding-top:calc(16px + env(safe-area-inset-top));background:linear-gradient(to bottom,rgba(0,0,0,.6) 0%,transparent 100%);pointer-events:auto}@media(prefers-color-scheme:light){.control-top-bar{background:linear-gradient(to bottom,rgba(255,255,255,.9) 0%,transparent 100%)}}.player-info{display:flex;align-items:center;gap:12px;color:var(--text-primary);font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:500}.player-indicator{width:12px;height:12px;border-radius:50%;border:2px solid rgba(255,255,255,.3)}.player-indicator.white{background:#fff}.player-indicator.black{background:#333}.player-indicator.active{box-shadow:0 0 8px currentColor;animation:pulse-glow 1.5s ease-in-out infinite}@media(prefers-color-scheme:light){.player-indicator{border-color:#0003}}.game-status{padding:6px 12px;background:#ffffff1a;border-radius:16px;color:var(--text-primary);font-family:system-ui,-apple-system,sans-serif;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.game-status.check{background:#ff52524d;color:#ff5252}.game-status.checkmate{background:#ff525280;color:var(--text-primary)}.game-status.draw{background:#ffc1074d;color:#ffc107}@media(prefers-color-scheme:light){.game-status{background:#00000014}}.move-drawer-backdrop{position:fixed;inset:0;background:#00000080;opacity:0;visibility:hidden;transition:opacity .2s ease-out,visibility .2s ease-out;z-index:20}.move-drawer-backdrop.open{opacity:1;visibility:visible}.move-drawer{position:fixed;top:0;right:0;bottom:0;width:320px;max-width:85vw;background:var(--surface-secondary);transform:translate(100%);transition:transform .25s var(--easing-standard);z-index:21;display:flex;flex-direction:column;box-shadow:-4px 0 16px #0000004d}.move-drawer.open{transform:translate(0)}@media(max-width:480px){.move-drawer{width:100%;max-width:none}}.move-drawer-header{display:flex;justify-content:space-between;align-items:center;padding:20px;padding-top:calc(20px + env(safe-area-inset-top));border-bottom:1px solid var(--border-subtle)}.move-drawer-title{margin:0;font-family:system-ui,-apple-system,sans-serif;font-size:18px;font-weight:600;color:var(--text-primary)}.move-drawer-close{display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:1px solid transparent;border-radius:50%;background:#ffffff14;color:var(--text-secondary);line-height:0;appearance:none;cursor:pointer;transition:all .15s ease-out}.move-drawer-close:hover{background:#ffffff24;color:var(--text-primary);border-color:var(--border-subtle)}.move-drawer-close:active{background:#fff3}.move-drawer-close:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media(prefers-color-scheme:light){.move-drawer-close{background:#0000000d}.move-drawer-close:hover{background:#0000001a}.move-drawer-close:active{background:#00000026}}.move-drawer-close svg{width:24px;height:24px;flex-shrink:0}.move-drawer-content{flex:1;overflow-y:auto;padding:16px;-webkit-overflow-scrolling:touch}.move-list{display:flex;flex-direction:column;gap:4px}.move-row{display:grid;grid-template-columns:36px 1fr 1fr;gap:8px;align-items:center;padding:8px 12px;border-radius:8px;background:#ffffff08;transition:background .15s ease-out}.move-row:hover{background:#ffffff14}@media(prefers-color-scheme:light){.move-row{background:#00000008}.move-row:hover{background:#0000000f}}.move-number{font-family:system-ui,-apple-system,sans-serif;font-size:12px;color:var(--text-secondary);font-weight:500}.move-notation{font-family:SF Mono,Monaco,Menlo,monospace;font-size:14px;color:var(--text-primary)}.move-notation.white{color:var(--text-primary)}.move-notation.black{color:var(--text-secondary)}.move-notation.last{background:#4caf5033;padding:2px 6px;border-radius:4px}.move-drawer-empty{display:flex;align-items:center;justify-content:center;flex-direction:column;height:200px;color:var(--text-secondary);font-family:system-ui,-apple-system,sans-serif;font-size:14px;text-align:center}.move-drawer-footer{padding:16px 20px;padding-bottom:calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--border-subtle)}.export-pgn-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border:none;border-radius:8px;background:#ffffff1a;color:var(--text-primary);font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease-out;min-height:44px}.export-pgn-btn:hover{background:#fff3}.export-pgn-btn:active{background:#ffffff26}.export-pgn-btn svg{width:18px;height:18px}@media(prefers-color-scheme:light){.export-pgn-btn{background:#00000014}.export-pgn-btn:hover{background:#0000001f}.export-pgn-btn:active{background:#00000026}}.turn-indicator{position:absolute;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:20px;background:#0009;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:5;transition:all .2s ease-out;pointer-events:none}.turn-indicator.top{top:16px}.turn-indicator.bottom{bottom:16px}.turn-indicator.check .turn-indicator-dot{animation:check-pulse .6s ease-in-out infinite}.turn-indicator.thinking{background:#000000bf;animation:thinking-glow 2s ease-in-out infinite}@media(prefers-color-scheme:light){.turn-indicator{background:#ffffffe6;box-shadow:0 2px 8px #00000026}.turn-indicator.thinking{background:#fffffff2;animation:thinking-glow-light 2s ease-in-out infinite}}.turn-indicator-dot{width:10px;height:10px;border-radius:50%;transition:all .2s ease-out}.turn-indicator-dot.white{background:#fff;box-shadow:0 0 8px #ffffff80}.turn-indicator-dot.black{background:#444;box-shadow:0 0 8px #44444480}.turn-indicator-text{font-family:system-ui,-apple-system,sans-serif;font-size:12px;font-weight:500;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.thinking-spinner{width:16px;height:16px;border:2px solid var(--border-default);border-top-color:var(--text-primary);border-radius:50%;animation:spin .8s linear infinite}@media(prefers-color-scheme:light){.thinking-spinner{border-color:#00000026;border-top-color:var(--text-primary)}}@media(max-width:480px){.control-top-bar{padding:12px 16px}.player-info{font-size:13px}.game-status{font-size:11px;padding:4px 10px}.turn-indicator{padding:6px 12px}.turn-indicator-dot{width:8px;height:8px}.turn-indicator-text{font-size:11px}}@media(max-height:480px)and (orientation:landscape){.control-top-bar{padding-top:8px;padding-bottom:8px}.fullscreen-board-wrapper{max-height:calc(100vh - 8px)}}@media(prefers-contrast:high){.game-status{border:1px solid currentColor}}@media(prefers-reduced-motion:reduce){.control-overlay,.move-drawer,.move-drawer-backdrop,.turn-indicator,.turn-indicator-dot,.player-indicator{transition:none}.player-indicator.active,.turn-indicator.check .turn-indicator-dot,.turn-indicator.thinking,.thinking-spinner{animation:none}}.settings-section{margin-bottom:24px}.settings-section:last-child{margin-bottom:0}.new-game-error-message{margin-bottom:16px;padding:10px 12px;border:1px solid rgba(244,67,54,.55);border-radius:8px;background:#f443361f;color:#f44336;font-family:system-ui,-apple-system,sans-serif;font-size:13px;line-height:1.4}.settings-label{display:block;font-family:system-ui,-apple-system,sans-serif;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:8px}@media(max-width:480px){.theme-grid{grid-template-columns:repeat(3,1fr)}}.theme-button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;border:2px solid transparent;border-radius:12px;background:#ffffff0d;transition:all .15s ease-out}.theme-button:hover{background:#ffffff1a}@media(prefers-color-scheme:light){.theme-button{background:#0000000a}.theme-button:hover{background:#00000014}}.theme-button{cursor:pointer}.theme-button.active{border-color:var(--color-primary);background:#4caf501a}.theme-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.theme-preview-squares{display:grid;grid-template-columns:1fr 1fr;width:40px;height:40px;border-radius:4px;overflow:hidden}.theme-preview-squares .preview-square{width:20px;height:20px}.theme-label{font-family:system-ui,-apple-system,sans-serif;font-size:11px;color:var(--text-secondary)}.difficulty-buttons{display:flex;flex-direction:column;gap:8px}.difficulty-button{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:12px;padding:12px 16px;border:2px solid transparent;border-radius:10px;background:#ffffff0d;transition:all .15s ease-out}.difficulty-button:hover{background:#ffffff1a}@media(prefers-color-scheme:light){.difficulty-button{background:#0000000a}.difficulty-button:hover{background:#00000014}}.difficulty-button{cursor:pointer;text-align:left}.difficulty-button.active{border-color:var(--color-primary);background:#4caf501a}.difficulty-button.active .difficulty-level{background:var(--color-primary)}.difficulty-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.difficulty-level{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#ffffff1a;font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:600;color:var(--text-primary)}@media(prefers-color-scheme:light){.difficulty-level{background:#00000014}}.difficulty-name{font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:500;color:var(--text-primary)}.difficulty-elo{font-family:system-ui,-apple-system,sans-serif;font-size:12px;color:var(--text-secondary)}.mode-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mode-buttons-3{grid-template-columns:repeat(3,1fr);gap:8px}.mode-button{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 16px;border:2px solid transparent;border-radius:12px;background:#ffffff0d;transition:all .15s ease-out}.mode-button:hover{background:#ffffff1a}@media(prefers-color-scheme:light){.mode-button{background:#0000000a}.mode-button:hover{background:#00000014}}.mode-button{cursor:pointer}.mode-button.active{border-color:var(--color-primary);background:#4caf501a}.mode-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.mode-icon{font-size:28px}.mode-text{font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:500;color:var(--text-primary)}.ai-vs-ai-icons{display:flex;align-items:center;gap:4px;color:var(--text-primary)}.vs-text{font-size:10px;font-weight:600;opacity:.7}.ai-player-config{display:flex;flex-direction:column;gap:10px}.ai-type-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ai-type-button{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;border:2px solid transparent;border-radius:8px;background:#ffffff0d;transition:all .15s ease-out}.ai-type-button:hover{background:#ffffff1a}@media(prefers-color-scheme:light){.ai-type-button{background:#0000000a}.ai-type-button:hover{background:#00000014}}.ai-type-button{font-family:system-ui,-apple-system,sans-serif;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer}.ai-type-button.active{border-color:var(--color-primary);background:#4caf501a;color:var(--color-primary)}.ai-type-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.difficulty-compact{display:flex;gap:6px;justify-content:center}.difficulty-pip-small{width:32px;min-height:44px;display:flex;align-items:center;justify-content:center;border:2px solid transparent;border-radius:6px;background:#ffffff0d;transition:all .15s ease-out}.difficulty-pip-small:hover{background:#ffffff1a}@media(prefers-color-scheme:light){.difficulty-pip-small{background:#0000000a}.difficulty-pip-small:hover{background:#00000014}}.difficulty-pip-small{font-family:system-ui,-apple-system,sans-serif;font-size:13px;font-weight:600;color:var(--text-secondary);cursor:pointer}.difficulty-pip-small:hover{color:var(--text-primary)}.difficulty-pip-small.active{border-color:var(--color-primary);background:#4caf5026;color:var(--color-primary)}.ml-model-info{text-align:center;font-size:12px;color:var(--text-secondary);font-style:italic;padding:8px}.color-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px}.color-button{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;border:2px solid transparent;border-radius:12px;background:#ffffff0d;transition:all .15s ease-out}.color-button:hover{background:#ffffff1a}@media(prefers-color-scheme:light){.color-button{background:#0000000a}.color-button:hover{background:#00000014}}.color-button{cursor:pointer}.color-button.active{border-color:var(--color-primary);background:#4caf501a}.color-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.color-piece{font-size:36px;line-height:1}.color-button.white .color-piece{color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3)}.color-button.black .color-piece{color:#333}.color-text{font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:500;color:var(--text-secondary)}.difficulty-slider-row{display:flex;gap:8px;margin-bottom:8px}.difficulty-pip{flex:1;display:flex;align-items:center;justify-content:center;height:40px;border:2px solid transparent;border-radius:8px;background:#ffffff1a;font-family:system-ui,-apple-system,sans-serif;font-size:16px;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .15s ease-out}.difficulty-pip:hover{background:#ffffff26}.difficulty-pip.active{border-color:var(--color-primary);background:#4caf5033;color:var(--color-primary)}@media(prefers-color-scheme:light){.difficulty-pip{background:#00000014}.difficulty-pip:hover{background:#0000001f}.difficulty-pip.active{background:#4caf5033}}.difficulty-info-text{font-family:system-ui,-apple-system,sans-serif;font-size:13px;color:var(--text-secondary);text-align:center}.speed-slider-container{display:flex;flex-direction:column;gap:8px}.speed-slider{width:100%;height:8px;border-radius:4px;background:#ffffff1a;appearance:none;cursor:pointer}.speed-slider::-webkit-slider-thumb{appearance:none;width:28px;height:28px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:2px solid rgba(255,255,255,.3);transition:transform .15s ease-out}.speed-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.speed-slider::-moz-range-thumb{width:28px;height:28px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:2px solid rgba(255,255,255,.3)}@media(prefers-color-scheme:light){.speed-slider{background:#0000001a}.speed-slider::-webkit-slider-thumb{border-color:#0003}.speed-slider::-moz-range-thumb{border-color:#0003}}.speed-labels{display:flex;justify-content:space-between;font-size:12px;color:var(--text-secondary)}.speed-labels .speed-value{color:var(--color-primary);font-weight:600}.action-sheet-trigger{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom));right:24px;z-index:15;padding:0;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;border-radius:12px;background:#ffffff1f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 2px 12px #00000040;color:var(--text-primary);cursor:pointer;transition:all .15s ease-out}.action-sheet-trigger:hover{background:#fff3}.action-sheet-trigger:active{transform:scale(.95)}@media(max-width:480px){.action-sheet-trigger{bottom:calc(16px + env(safe-area-inset-bottom));right:16px}}@media(prefers-color-scheme:light){.action-sheet-trigger{background:#00000014;box-shadow:0 2px 12px #0000001a}.action-sheet-trigger:hover{background:#0000001f}}.action-sheet-backdrop{position:fixed;inset:0;background:#00000080;opacity:0;visibility:hidden;transition:opacity .2s ease-out,visibility .2s ease-out;z-index:20}.action-sheet-backdrop.open{opacity:1;visibility:visible}.action-sheet{position:fixed;bottom:0;left:0;right:0;background:var(--surface-secondary);border-radius:16px 16px 0 0;transform:translateY(100%);transition:transform .25s var(--easing-standard);z-index:21;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom)}.action-sheet.open{transform:translateY(0)}.action-sheet-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.08)}@media(prefers-color-scheme:light){.action-sheet-header{border-bottom-color:#00000014}}.action-sheet-title{font-family:system-ui,-apple-system,sans-serif;font-size:16px;font-weight:600;color:var(--text-primary)}.action-sheet-close{display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:1px solid transparent;border-radius:50%;background:#ffffff14;color:var(--text-secondary);line-height:0;appearance:none;cursor:pointer;transition:all .15s ease-out}.action-sheet-close:hover{background:#ffffff24;color:var(--text-primary);border-color:var(--border-subtle)}.action-sheet-close:active{background:#fff3}.action-sheet-close:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media(prefers-color-scheme:light){.action-sheet-close{background:#0000000d}.action-sheet-close:hover{background:#0000001a}.action-sheet-close:active{background:#00000026}}.action-sheet-close svg{width:24px;height:24px;flex-shrink:0}.action-sheet-list{display:flex;flex-direction:column;padding:8px 0;overflow-y:auto;-webkit-overflow-scrolling:touch}.action-sheet-item{display:flex;align-items:center;gap:16px;width:100%;padding:14px 20px;border:none;background:transparent;color:var(--text-primary);cursor:pointer;transition:background .15s ease-out;text-align:left}.action-sheet-item:hover{background:#ffffff0f}.action-sheet-item:active{background:#ffffff1a}.action-sheet-item:disabled{opacity:.4;cursor:not-allowed}.action-sheet-item:disabled:hover{background:transparent}@media(max-width:480px){.action-sheet-item{padding:16px 20px}}.action-sheet-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}@media(prefers-color-scheme:light){.action-sheet-item:hover{background:#0000000d}.action-sheet-item:active{background:#00000014}}.action-sheet-item-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:#ffffff14;color:var(--text-primary);flex-shrink:0}@media(max-width:480px){.action-sheet-item-icon{width:36px;height:36px}}@media(prefers-color-scheme:light){.action-sheet-item-icon{background:#0000000f}}.action-sheet-item-label{font-family:system-ui,-apple-system,sans-serif;font-size:15px;font-weight:500;color:var(--text-primary)}.game-rules-panel{width:100%}.game-rules-panel .panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.game-rules-panel .panel-title{font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:600;color:var(--text-primary);margin:0}.game-rules-panel .reset-button{padding:4px 12px;border:1px solid var(--border-default);border-radius:6px;background:transparent;color:var(--text-secondary);font-family:system-ui,-apple-system,sans-serif;font-size:12px;cursor:pointer;transition:all .15s ease-out}.game-rules-panel .reset-button:hover{border-color:#fff6;color:var(--text-primary);background:#ffffff0d}@media(prefers-color-scheme:light){.game-rules-panel .reset-button:hover{border-color:#0000004d;background:#0000000a}}.rules-container{display:flex;flex-direction:column;gap:20px}.rule-category{display:flex;flex-direction:column;gap:8px}.rule-category-title{font-family:system-ui,-apple-system,sans-serif;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);margin:0 0 4px}.rule-category-items{display:flex;flex-direction:column;gap:4px}.rule-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:8px;background:#ffffff08;transition:background .15s ease-out}.rule-item:hover{background:#ffffff0f}.rule-item.disabled{opacity:.4;pointer-events:none}@media(prefers-color-scheme:light){.rule-item{background:#00000008}.rule-item:hover{background:#0000000d}}.rule-item-number{flex-direction:column;align-items:stretch;gap:10px}.rule-item-number .rule-info{width:100%}.rule-item-number.disabled{opacity:.4;pointer-events:none}.rule-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.rule-label{font-family:system-ui,-apple-system,sans-serif;font-size:13px;font-weight:500;color:var(--text-primary)}.rule-description{font-family:system-ui,-apple-system,sans-serif;font-size:11px;color:var(--text-secondary);line-height:1.3}.rule-input-group{display:flex;align-items:center;gap:12px;width:100%}.rule-slider{flex:1;height:4px;appearance:none;background:#ffffff1a;border-radius:2px;outline:none}.rule-slider::-webkit-slider-thumb{appearance:none;width:28px;height:28px;border-radius:50%;background:var(--color-primary);cursor:pointer;transition:transform .15s ease-out}.rule-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.rule-slider::-moz-range-thumb{width:28px;height:28px;border:none;border-radius:50%;background:var(--color-primary);cursor:pointer}@media(prefers-color-scheme:light){.rule-slider{background:#0000001a}}.rule-value{font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:600;color:var(--text-primary);min-width:28px;text-align:right}.onboarding-overlay{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:250;cursor:pointer;animation:onboarding-fade-in .4s ease-out}.onboarding-content{display:flex;flex-direction:column;align-items:center;gap:32px;padding:32px;max-width:320px;text-align:center}.onboarding-hints{display:flex;flex-direction:column;gap:20px}.onboarding-hint{display:flex;align-items:center;gap:16px;animation:onboarding-hint-in .5s ease-out both}.onboarding-hint:nth-child(1){animation-delay:.2s}.onboarding-hint:nth-child(2){animation-delay:.4s}.onboarding-hint:nth-child(3){animation-delay:.6s}.onboarding-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;background:#ffffff1a;color:var(--text-primary);flex-shrink:0}@media(prefers-color-scheme:light){.onboarding-icon{background:#00000014}}.onboarding-text{font-family:system-ui,-apple-system,sans-serif;font-size:15px;font-weight:500;color:var(--text-primary);text-align:left}.onboarding-dismiss{font-family:system-ui,-apple-system,sans-serif;font-size:13px;color:var(--text-tertiary);margin:0;animation:onboarding-hint-in .5s ease-out .8s both}@media(prefers-reduced-motion:reduce){.onboarding-overlay,.onboarding-hint,.onboarding-dismiss{animation:none}.action-sheet-trigger,.action-sheet-backdrop,.action-sheet,.action-sheet-close,.action-sheet-item{transition:none}}
