.navbar{height:var(--navbar-height);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-lg);position:sticky;top:0;z-index:var(--z-navbar);box-shadow:var(--shadow-sm)}[data-theme=light] .navbar{background:repeating-linear-gradient(90deg,transparent,transparent 25px,var(--color-wood-grain) 25px,var(--color-wood-grain) 26px,transparent 26px,transparent 80px),linear-gradient(180deg,var(--color-wood-light) 0%,var(--color-wood-base) 50%,var(--color-wood-dark) 100%);border-bottom:2px solid var(--color-wood-dark);box-shadow:inset 0 1px 3px #fff6,0 2px 8px #0003}[data-theme=light] .navbar-brand{color:#4a3520;text-shadow:0 1px 1px rgba(255,255,255,.5)}[data-theme=light] .nav-link{color:#5d4634}[data-theme=light] .nav-link:hover{background:#0000001a;color:#3a2510}.navbar-brand{font-size:20px;font-weight:700;color:var(--color-text-primary);text-decoration:none;display:flex;align-items:center;gap:var(--spacing-sm)}.navbar-brand:hover{color:var(--color-accent-green);transition:color var(--transition-fast)}.navbar-nav{display:flex;align-items:center;gap:var(--spacing-md);list-style:none}.nav-item{display:flex;align-items:center}.nav-link{color:var(--color-text-secondary);text-decoration:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-weight:500;transition:all var(--transition-fast);cursor:pointer}.nav-link:hover{color:var(--color-text-primary);background:#ffffff0d}.nav-link.active{color:var(--color-accent-green);background:#4caf501a}.nav-link.primary{background:var(--color-accent-green);color:#fff;font-weight:700;padding:var(--spacing-sm) var(--spacing-lg)}.nav-link.primary:hover{background:#5bc45f;transform:translateY(-1px);box-shadow:var(--shadow-sm)}.navbar-toggle{display:none;background:transparent;border:none;color:var(--color-text-primary);font-size:24px;cursor:pointer;padding:var(--spacing-sm)}@media (max-width: 768px){.navbar{padding:0 var(--spacing-md)}.navbar-toggle{display:block}.navbar-nav{position:fixed;top:var(--navbar-height);left:0;right:0;background:var(--color-bg-secondary);flex-direction:column;align-items:stretch;gap:0;padding:var(--spacing-md);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-md);transform:translateY(-100%);opacity:0;transition:all var(--transition-normal);pointer-events:none}.navbar-nav.open{transform:translateY(0);opacity:1;pointer-events:all}.nav-link{width:100%;text-align:left;padding:var(--spacing-md)}.nav-link.primary{margin-top:var(--spacing-sm)}}.navbar-mobile-actions{display:none;align-items:center;gap:var(--spacing-xs)}.navbar-mobile-actions .action-btn{background:transparent;border:2px solid var(--color-border-hover);border-radius:var(--radius-lg);color:var(--color-text-primary);width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:22px;cursor:pointer;transition:all var(--transition-fast)}.navbar-mobile-actions .action-btn:hover{background:#4caf5026;color:var(--color-accent-green);border-color:var(--color-accent-green)}.navbar-mobile-actions .action-btn:active{transform:scale(.92);background:#4caf5040}[data-theme=light] .navbar-mobile-actions .action-btn{border-color:var(--color-wood-dark);color:#4a3520}[data-theme=light] .navbar-mobile-actions .action-btn:hover{background:#0000001a;border-color:#3a2510;color:#3a2510}@media (max-width: 768px){.navbar-mobile-actions{display:flex}}.time-control{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:Courier New,monospace;font-weight:600;font-size:16px;transition:all .3s cubic-bezier(.4,0,.2,1)}.time-control .time-icon{font-size:18px;opacity:.7}.time-control .time-display{color:var(--color-text-primary);min-width:60px;text-align:center}.time-control.active{border-color:var(--color-accent-green);box-shadow:0 0 0 2px #4caf5033;animation:pulseGreen 1.5s ease-in-out infinite}@keyframes pulseGreen{0%,to{box-shadow:0 0 0 2px #4caf5033}50%{box-shadow:0 0 0 4px #4caf504d}}.time-control.warning{border-color:#ffc10799;background:#ffc1070d}.time-control.warning .time-display{color:#ffc107}.time-control.low{border-color:#ff9800b3;background:#ff98001a}.time-control.low .time-display{color:#ff9800;animation:blink 1s ease-in-out infinite}.time-control.critical{border-color:#f44336cc;background:#f4433626}.time-control.critical .time-display{color:#f44336;animation:blink .5s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.4}}.time-control.black .time-icon{filter:drop-shadow(0 0 4px rgba(0,0,0,.8))}.time-control.white .time-icon{filter:drop-shadow(0 0 4px rgba(255,255,255,.4))}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:fadeInWithBlur .3s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}@keyframes fadeInWithBlur{0%{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{opacity:1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}}.settings-panel{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:0;max-width:500px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px #000000b3,0 10px 30px #00000080;animation:slideUp .4s cubic-bezier(.4,0,.2,1);scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}.settings-panel::-webkit-scrollbar{width:8px}.settings-panel::-webkit-scrollbar-track{background:transparent;border-radius:var(--radius-lg);margin:var(--spacing-md) 0}.settings-panel::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:var(--radius-lg);border:2px solid transparent;background-clip:padding-box}.settings-panel::-webkit-scrollbar-thumb:hover{background:#ffffff80;background-clip:padding-box}@keyframes slideUp{0%{opacity:0;transform:translateY(40px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.settings-header{position:sticky;top:0;z-index:10;background:var(--color-bg-secondary);display:flex;justify-content:space-between;align-items:flex-start;padding:var(--spacing-xl) var(--spacing-xl) var(--spacing-md);border-bottom:2px solid rgba(255,255,255,.1);gap:var(--spacing-md);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.settings-header-content{flex:1}.settings-header h2{color:var(--color-text-primary);margin:0 0 8px;font-size:28px}.settings-note{color:#ffd700cc;font-size:13px;margin:0;text-align:left;font-style:italic;font-weight:500}.close-button{background:transparent;border:none;color:var(--color-text-primary);font-size:32px;cursor:pointer;padding:0;width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:8px;transition:all .2s ease}.close-button:hover{background:#ffffff1a;transform:rotate(90deg)}.settings-content{display:flex;flex-direction:column;gap:var(--spacing-xl);padding:var(--spacing-md) var(--spacing-xl) var(--spacing-xl)}.settings-section{display:flex;flex-direction:column;gap:var(--spacing-md)}.section-title{color:var(--color-text-primary);font-size:18px;font-weight:600;margin:0 0 var(--spacing-sm) 0;padding-bottom:var(--spacing-sm);border-bottom:1px solid rgba(255,255,255,.1)}.difficulty-select{width:100%;padding:var(--spacing-sm) var(--spacing-md);background:#0000004d;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:16px;cursor:pointer;margin-bottom:var(--spacing-sm);transition:all .2s ease}.difficulty-select:hover{background:#0006;border-color:#ffffff4d}.difficulty-select:focus{outline:none;border-color:var(--color-accent-green);box-shadow:0 0 0 2px #4caf5033}.difficulty-select option{background:var(--color-bg-secondary);color:var(--color-text-primary)}.setting-item{background:#ffffff0d;padding:var(--spacing-md);border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.1);transition:all .2s ease}.setting-item:hover{background:#ffffff14;border-color:#fff3}.setting-label{display:flex;align-items:center;gap:12px;cursor:pointer;font-size:18px;font-weight:700;color:var(--color-text-primary);margin-bottom:8px}.setting-label input[type=checkbox]{width:24px;height:24px;cursor:pointer;accent-color:#a88f67}.setting-name{flex:1}.setting-description{color:#fff9;font-size:14px;margin:0 0 0 36px;line-height:1.5}[data-theme=light] .setting-description{color:#0009}[data-theme=light] .setting-item{background:#0000000d;border-color:#0000001a}[data-theme=light] .setting-item:hover{background:#00000014;border-color:#0003}[data-theme=light] .setting-label{color:var(--color-text-primary)}[data-theme=light] .settings-header{border-bottom-color:#0000001a}[data-theme=light] .settings-note{color:#b48200e6}[data-theme=light] .close-button:hover{background:#0000001a}[data-theme=light] .section-title{border-bottom-color:#0000001a}[data-theme=light] .difficulty-select{background:#fffc;border-color:#0003;color:var(--color-text-primary)}[data-theme=light] .difficulty-select:hover{background:#ffffffe6;border-color:#0000004d}[data-theme=light] .difficulty-select option{background:var(--color-bg-secondary);color:var(--color-text-primary)}.loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-bg-primary);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:var(--z-loading);animation:fadeIn .3s ease-out}.loading-spinner{width:60px;height:60px;border:4px solid rgba(255,255,255,.1);border-top-color:var(--color-accent-green);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{margin-top:var(--spacing-lg);color:var(--color-text-secondary);font-size:16px}.player-info{display:flex;align-items:center;gap:var(--spacing-sm)}.player-piece{width:24px;height:24px;border-radius:50%;box-shadow:var(--shadow-sm)}.player-piece.black{background:radial-gradient(circle at 30% 30%,#4a4a4a,#000)}.player-piece.white{background:radial-gradient(circle at 30% 30%,#fff,#ccc)}.score-box{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:#ffffff0d;border-radius:var(--radius-md)}.score-item{display:flex;align-items:center;gap:var(--spacing-sm)}.score-number{font-size:20px;font-weight:700;font-family:Courier New,monospace}.player-info-trigger{position:relative;display:inline-block;cursor:help}.player-info-card{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:var(--spacing-sm);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md);box-shadow:var(--shadow-lg);z-index:var(--z-modal);min-width:200px;animation:slideUp .2s ease-out;pointer-events:none}.player-avatar{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto var(--spacing-md);font-size:24px;font-weight:700;color:#fff;box-shadow:var(--shadow-md)}.player-avatar.black{background:radial-gradient(circle at 30% 30%,#4a4a4a,#000)}.player-avatar.white{background:radial-gradient(circle at 30% 30%,#fff,#ccc);color:#000}.avatar-initial{text-transform:uppercase}.player-details{text-align:center}.player-name{font-size:16px;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}.player-stats{display:flex;flex-direction:column;gap:var(--spacing-xs)}.stat-item{display:flex;justify-content:space-between;font-size:14px}.stat-label{color:var(--color-text-secondary)}.stat-value{color:var(--color-text-primary);font-weight:600;font-family:Courier New,monospace}.volume-slider-container{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.volume-slider{flex:1;height:8px;background:#ffffff1a;border-radius:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;transition:all .2s ease}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;background:var(--color-accent-green);border-radius:50%;cursor:pointer;box-shadow:0 2px 6px #0000004d;transition:transform .2s ease;margin-top:-5px}.volume-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.volume-slider::-moz-range-thumb{width:18px;height:18px;background:var(--color-accent-green);border-radius:50%;border:none;cursor:pointer;box-shadow:0 2px 6px #0000004d}.volume-slider::-webkit-slider-runnable-track{height:8px;background:linear-gradient(to right,var(--color-accent-green) 0%,var(--color-accent-green) var(--volume-percent, 100%),rgba(255,255,255,.1) var(--volume-percent, 100%),rgba(255,255,255,.1) 100%);border-radius:4px}.volume-icon{font-size:16px;opacity:.7;min-width:20px;text-align:center}.volume-value{font-size:14px;font-weight:600;color:var(--color-accent-green);min-width:45px;text-align:right}.custom-time-inputs{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.custom-time-row{display:flex;align-items:center}.custom-time-label{display:flex;align-items:center;justify-content:space-between;width:100%;font-size:14px;color:var(--color-text-secondary)}.custom-time-input{width:80px;padding:var(--spacing-xs) var(--spacing-sm);background:#0000004d;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:16px;font-family:Courier New,monospace;text-align:center;transition:all .2s ease}.custom-time-input:hover{background:#0006;border-color:#ffffff4d}.custom-time-input:focus{outline:none;border-color:var(--color-accent-green);box-shadow:0 0 0 2px #4caf5033}.custom-time-input::-webkit-outer-spin-button,.custom-time-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.custom-time-input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.game-replay{position:fixed;bottom:var(--spacing-lg);right:var(--spacing-lg);width:360px;max-height:450px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);z-index:var(--z-modal);animation:slideInFromRight .3s ease-out}@keyframes slideInFromRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@media (max-width: 768px){.game-replay{left:var(--spacing-sm);right:var(--spacing-sm);bottom:var(--spacing-sm);width:auto;max-height:45vh}}.replay-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-sm)}.replay-header h3{margin:0;font-size:16px;color:var(--color-text-primary)}.replay-close{background:none;border:none;color:var(--color-text-secondary);font-size:24px;cursor:pointer;padding:0 var(--spacing-xs);transition:color .2s ease}.replay-close:hover{color:var(--color-text-primary)}.replay-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm);font-size:14px}.replay-position{color:var(--color-text-secondary)}.replay-current-move{color:var(--color-text-primary);font-weight:500}.replay-score{color:var(--color-text-secondary);margin-left:var(--spacing-xs)}.replay-progress-container{position:relative;margin-bottom:var(--spacing-sm)}.replay-scrubber{width:100%;height:8px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ffffff1a;border-radius:4px;cursor:pointer}.replay-scrubber::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:var(--color-accent-green);border-radius:50%;cursor:grab}.replay-scrubber::-moz-range-thumb{width:16px;height:16px;background:var(--color-accent-green);border:none;border-radius:50%;cursor:grab}.replay-controls{display:flex;justify-content:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm);flex-wrap:wrap}.replay-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:var(--color-text-primary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);cursor:pointer;font-size:14px;transition:all .2s ease;flex-shrink:1;min-width:32px}.replay-btn:hover:not(:disabled){background:#fff3;border-color:#ffffff4d}.replay-btn:disabled{opacity:.4;cursor:not-allowed}.replay-btn-play{background:var(--color-accent-green);border-color:var(--color-accent-green);min-width:40px}.replay-btn-play:hover:not(:disabled){background:#5cb860}.replay-speed{font-family:Courier New,monospace;font-size:14px;min-width:50px}.replay-move-list{flex:1;overflow-y:auto;display:flex;flex-wrap:wrap;gap:4px;max-height:150px;padding:var(--spacing-xs);background:#0003;border-radius:var(--radius-sm)}.replay-move-item{display:flex;align-items:center;gap:2px;padding:2px 6px;background:#ffffff0d;border-radius:var(--radius-sm);font-size:12px;cursor:pointer;transition:all .2s ease}.replay-move-item:hover{background:#ffffff26}.replay-move-item.active{background:var(--color-accent-green);color:#fff}.replay-move-item .move-num{color:var(--color-text-secondary);font-size:10px}.replay-move-item .move-disc{font-size:10px}.replay-move-item .move-coord{font-family:Courier New,monospace}.replay-shortcuts{text-align:center;font-size:11px;color:var(--color-text-secondary);margin-top:var(--spacing-xs);padding-top:var(--spacing-xs);border-top:1px solid rgba(255,255,255,.1)}[data-theme=light] .game-replay{background:linear-gradient(180deg,var(--color-wood-light) 0%,var(--color-wood-base) 100%);border-color:var(--color-wood-dark);box-shadow:0 8px 32px #0003}[data-theme=light] .replay-header{border-bottom-color:#0000001a}[data-theme=light] .replay-scrubber{background:#0000001a}[data-theme=light] .replay-btn{background:#ffffff80;border-color:var(--color-wood-dark);color:#4a3520}[data-theme=light] .replay-btn:hover:not(:disabled){background:#ffffffb3;border-color:var(--color-wood-dark)}[data-theme=light] .replay-move-list,[data-theme=light] .replay-move-item{background:#0000000d}[data-theme=light] .replay-move-item:hover{background:#0000001a}[data-theme=light] .replay-shortcuts{border-top-color:#0000001a}.position-analysis{position:absolute;top:0;left:0;right:0;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md);z-index:50;box-shadow:var(--shadow-lg);animation:slideIn .2s ease-out}.analysis-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.analysis-header h4{margin:0;font-size:14px;color:var(--color-text-primary)}.analyzing-indicator{font-size:12px;color:var(--color-accent-green);animation:pulse 1s ease-in-out infinite}.best-move-highlight{background:#4caf5033;border:1px solid var(--color-accent-green);border-radius:var(--radius-sm);padding:var(--spacing-sm);margin-bottom:var(--spacing-sm);display:flex;justify-content:space-between;align-items:center}.best-move-label{font-size:12px;color:var(--color-text-secondary)}.best-move-coord{font-family:Courier New,monospace;font-size:16px;font-weight:700;color:var(--color-accent-green)}.move-analysis-list{max-height:150px;overflow-y:auto}.analysis-item{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);cursor:pointer;transition:background .2s ease}.analysis-item:hover{background:#ffffff1a}.analysis-rank{font-size:12px;color:var(--color-text-secondary);min-width:20px}.analysis-coord{font-family:Courier New,monospace;font-weight:500}.analysis-quality{flex:1;font-size:11px;text-align:right}.analysis-score{font-size:11px;color:var(--color-text-secondary);font-family:Courier New,monospace}.quality-best{color:#4caf50}.quality-corner{color:#ffeb3b}.quality-edge{color:#03a9f4}.quality-good{color:#8bc34a}.quality-risky{color:#ff5722}.quality-neutral{color:var(--color-text-secondary)}.analysis-legend{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid rgba(255,255,255,.1);justify-content:center}.legend-item{font-size:10px;color:var(--color-text-secondary)}.legend-best{color:#4caf50}.legend-corner{color:#ffeb3b}.legend-edge{color:#03a9f4}.no-moves{text-align:center;color:var(--color-text-secondary);font-size:13px;padding:var(--spacing-md)}[data-theme=light] .position-analysis{background:linear-gradient(180deg,var(--color-wood-light) 0%,var(--color-wood-base) 100%);border-color:var(--color-wood-dark)}[data-theme=light] .analysis-header h4{color:#4a3520}[data-theme=light] .analysis-item{background:#fff6;border-color:var(--color-wood-dark)}[data-theme=light] .analysis-item:hover{background:#fff9}[data-theme=light] .analysis-legend{border-top-color:var(--color-wood-dark)}.game-statistics-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;padding:var(--spacing-md)}.game-statistics{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);max-width:500px;width:100%;max-height:80vh;overflow-y:auto;animation:slideIn .3s ease;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}.game-statistics::-webkit-scrollbar{width:8px}.game-statistics::-webkit-scrollbar-track{background:transparent;border-radius:var(--radius-lg);margin:var(--spacing-md) 0}.game-statistics::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:var(--radius-lg);border:2px solid transparent;background-clip:padding-box}.game-statistics::-webkit-scrollbar-thumb:hover{background:#ffffff80;background-clip:padding-box}.stats-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);border-bottom:1px solid var(--color-border);position:sticky;top:0;background:var(--color-bg-secondary);z-index:1}.stats-header h3{margin:0;font-size:18px;color:var(--color-text-primary)}.stats-close{background:none;border:none;color:var(--color-text-secondary);font-size:24px;cursor:pointer;padding:0 var(--spacing-xs)}.stats-close:hover{color:var(--color-text-primary)}.stats-section{padding:var(--spacing-md);border-bottom:1px solid rgba(255,255,255,.05)}.stats-section h4{margin:0 0 var(--spacing-sm) 0;font-size:14px;color:var(--color-text-secondary)}.stats-record{display:flex;justify-content:space-around;margin-bottom:var(--spacing-sm)}.record-item{text-align:center}.record-value{display:block;font-size:32px;font-weight:700}.record-label{font-size:12px;color:var(--color-text-secondary)}.record-item.wins .record-value{color:#4caf50}.record-item.losses .record-value{color:#f44336}.record-item.draws .record-value{color:#9e9e9e}.win-rate{text-align:center;padding:var(--spacing-sm);background:#0003;border-radius:var(--radius-sm)}.win-rate-label{color:var(--color-text-secondary);margin-right:var(--spacing-xs)}.win-rate-value{font-size:20px;font-weight:700;color:var(--color-accent-green)}.streaks{display:flex;gap:var(--spacing-lg)}.streak-item{flex:1;display:flex;justify-content:space-between;padding:var(--spacing-xs) var(--spacing-sm);background:#0003;border-radius:var(--radius-sm)}.streak-label{color:var(--color-text-secondary);font-size:13px}.streak-value{font-weight:700;color:#ff9800}.difficulty-stats{display:flex;flex-direction:column;gap:var(--spacing-xs)}.difficulty-row{display:flex;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);background:#0003;border-radius:var(--radius-sm)}.difficulty-name{min-width:80px;font-weight:500}.difficulty-record{flex:1;text-align:center;font-size:13px;color:var(--color-text-secondary)}.difficulty-rate{min-width:50px;text-align:right;font-weight:700}.time-stats{display:flex;gap:var(--spacing-md)}.time-stat{flex:1;display:flex;flex-direction:column;gap:4px;padding:var(--spacing-sm);background:#0003;border-radius:var(--radius-sm);text-align:center}.time-label{font-size:12px;color:var(--color-text-secondary)}.time-value{font-family:Courier New,monospace;font-weight:700}.recent-games-list{max-height:200px;overflow-y:auto}.recent-game-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);transition:background .2s ease}.recent-game-item:hover{background:#ffffff0d}.game-info{display:flex;align-items:center;gap:var(--spacing-sm)}.result-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:10px}.result-badge.win{background:#4caf504d;color:#4caf50}.result-badge.loss{background:#f443364d;color:#f44336}.result-badge.draw{background:#9e9e9e4d;color:#9e9e9e}.result-badge.spectator{background:#9c27b04d;color:#ba68c8}.game-score{font-size:13px}.game-difficulty{font-size:11px;color:var(--color-text-secondary)}.timeout-badge{font-size:12px}.game-date{font-size:11px;color:var(--color-text-secondary)}.no-games{text-align:center;padding:var(--spacing-lg);color:var(--color-text-secondary)}.stats-actions{display:flex;justify-content:center}.clear-stats-btn{background:#f4433633;border:1px solid rgba(244,67,54,.5);color:#f44336;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.clear-stats-btn:hover{background:#f443364d}.confirm-clear{display:flex;align-items:center;gap:var(--spacing-sm)}.confirm-yes{background:#f44336;border:none;color:#fff;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);cursor:pointer}.confirm-no{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:var(--color-text-primary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);cursor:pointer}.stats-footer{text-align:center;padding:var(--spacing-sm);font-size:12px;color:var(--color-text-secondary)}.stats-loading{text-align:center;padding:var(--spacing-xl);color:var(--color-text-secondary)}.stats-tabs{display:flex;border-bottom:1px solid var(--color-border);margin-bottom:var(--spacing-md)}.stats-tab{flex:1;padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease;font-size:14px;font-weight:500}.stats-tab:hover{color:var(--color-text-primary);background:#ffffff0d}.stats-tab.active{color:var(--color-accent-green);border-bottom:2px solid var(--color-accent-green)}.stats-panel-large{max-width:600px;max-height:85vh}.all-games-list{max-height:400px;overflow-y:auto}.game-history-item{padding:var(--spacing-sm);border-bottom:1px solid rgba(255,255,255,.1)}.game-history-item:last-child{border-bottom:none}.game-info-row{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs)}.game-meta-row{display:flex;align-items:center;gap:var(--spacing-md);font-size:12px;color:var(--color-text-secondary)}.game-moves,.game-duration{opacity:.8}.history-replay-btn{background:transparent;border:1px solid var(--color-accent-green);color:var(--color-accent-green);padding:4px 10px;border-radius:var(--radius-sm);font-size:11px;font-weight:600;cursor:pointer;transition:all .2s ease;margin-left:auto}.history-replay-btn:hover{background:var(--color-accent-green);color:#fff}.no-replay-available{font-size:10px;color:var(--color-text-muted);margin-left:auto;opacity:.6}.replay-section{margin-bottom:var(--spacing-lg)}.replay-section h4{margin-bottom:var(--spacing-sm);color:var(--color-text-primary)}.replay-card{padding:var(--spacing-md);background:#4caf501a;border:1px solid rgba(76,175,80,.3);border-radius:var(--radius-md);text-align:center}.replay-card p{margin-bottom:var(--spacing-sm);color:var(--color-text-secondary)}.replay-btn{background:var(--color-accent-green);border:none;color:#fff;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);cursor:pointer;font-size:14px;font-weight:600;transition:all .2s ease}.replay-btn:hover{background:#5bc45f;transform:translateY(-1px)}.coming-soon-card{padding:var(--spacing-lg);background:#ffffff0d;border:1px dashed rgba(255,255,255,.2);border-radius:var(--radius-md);text-align:center}.coming-soon-icon{font-size:32px;display:block;margin-bottom:var(--spacing-sm)}.coming-soon-card p{color:var(--color-text-secondary);margin-bottom:var(--spacing-sm)}.coming-soon-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);background:#ffc10733;color:#ffc107;border-radius:var(--radius-sm);font-size:12px;font-weight:600}.result-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1100;animation:fadeIn .3s ease}.result-modal{background:var(--color-bg-secondary);border-radius:var(--radius-xl);padding:var(--spacing-xl);min-width:340px;max-width:90vw;text-align:center;animation:slideInWithScale .4s cubic-bezier(.34,1.56,.64,1);box-shadow:0 20px 60px #00000080}@keyframes slideInWithScale{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.result-pill{background:#4caf5033;color:var(--color-accent-green);padding:var(--spacing-xs) var(--spacing-md);border-radius:20px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.result-close{background:transparent;border:none;color:var(--color-text-secondary);font-size:24px;cursor:pointer;padding:var(--spacing-xs);line-height:1;transition:color .2s ease}.result-close:hover{color:var(--color-text-primary)}.result-body{margin-bottom:var(--spacing-xl)}.result-title{font-size:28px;font-weight:700;margin-bottom:var(--spacing-sm);color:var(--color-text-primary)}.result-subtitle{font-size:14px;color:var(--color-text-secondary);margin-bottom:var(--spacing-lg)}.result-score{display:flex;justify-content:center;align-items:center;gap:var(--spacing-lg)}.result-score-card{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:#ffffff0d;border-radius:var(--radius-lg);border:2px solid transparent;transition:all .3s ease}.result-score-card.winner{border-color:var(--color-accent-green);background:#4caf501a;box-shadow:0 0 20px #4caf504d}.result-score-value{font-size:36px;font-weight:700;font-family:Courier New,monospace}.result-score-separator{font-size:24px;color:var(--color-text-secondary)}.result-actions{display:flex;gap:var(--spacing-md);justify-content:center}.result-btn{padding:var(--spacing-md) var(--spacing-xl);border-radius:var(--radius-md);font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;min-width:140px}.result-btn.primary{background:var(--color-accent-green);border:none;color:#fff}.result-btn.primary:hover{background:#5bc45f;transform:translateY(-2px);box-shadow:0 4px 12px #4caf5066}.result-btn.secondary{background:transparent;border:2px solid var(--color-border);color:var(--color-text-primary)}.result-btn.secondary:hover{border-color:var(--color-text-secondary);background:#ffffff0d}.sidebar{display:flex;flex-direction:column;gap:var(--spacing-md);height:100%;min-height:0}.sidebar-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md);box-shadow:var(--shadow-sm)}[data-theme=light] .sidebar-card{background:repeating-linear-gradient(90deg,transparent,transparent 15px,var(--color-wood-grain) 15px,var(--color-wood-grain) 16px,transparent 16px,transparent 45px),linear-gradient(180deg,var(--color-wood-light) 0%,var(--color-wood-base) 100%);border:1px solid var(--color-wood-dark);box-shadow:inset 0 1px 3px #fff6,0 2px 8px #00000026}[data-theme=light] .sidebar-card-title{color:#4a3520;text-shadow:0 1px 1px rgba(255,255,255,.5)}.sidebar-card-title{font-size:14px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-md);text-align:center}.turn-controls{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);gap:var(--spacing-sm)}.turn-player{display:flex;align-items:center;gap:var(--spacing-xs);font-size:14px;font-weight:600;min-width:70px}.turn-player span{min-width:40px}.turn-piece{width:18px;height:18px;border-radius:50%;box-shadow:var(--shadow-sm)}.turn-piece.black{background:radial-gradient(circle at 30% 30%,#4a4a4a,#000)}.turn-piece.white{background:radial-gradient(circle at 30% 30%,#fff,#ccc)}.control-btn-compact{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:6px;padding:var(--spacing-xs) var(--spacing-sm);font-size:16px;cursor:pointer;transition:all .2s ease;min-width:36px;min-height:36px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0000004d,0 1px 2px #0003,inset 0 1px #ffffff1a}.control-btn-compact:hover:not(:disabled){background:var(--color-bg-hover);transform:translateY(-2px);box-shadow:0 4px 8px #0006,0 2px 4px #0000004d,inset 0 1px #ffffff26}.control-btn-compact:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 2px #0000004d,inset 0 2px 4px #0003}.control-btn-compact:disabled{opacity:.3;cursor:not-allowed;box-shadow:none}[data-theme=light] .control-btn-compact{background:linear-gradient(180deg,var(--color-wood-light) 0%,var(--color-wood-base) 100%);border:1px solid var(--color-wood-dark);color:#4a3520;box-shadow:inset 0 1px 2px #ffffff80,0 2px 4px #0003}[data-theme=light] .control-btn-compact:hover:not(:disabled){background:linear-gradient(180deg,var(--color-wood-base) 0%,var(--color-wood-dark) 100%);transform:translateY(-1px)}[data-theme=light] .control-btn-compact:active:not(:disabled){transform:translateY(0);box-shadow:inset 0 2px 4px #0003}[data-theme=light] .turn-controls{background:repeating-linear-gradient(90deg,transparent,transparent 12px,var(--color-wood-grain) 12px,var(--color-wood-grain) 13px,transparent 13px,transparent 35px),linear-gradient(180deg,var(--color-wood-light) 0%,var(--color-wood-base) 100%);border:1px solid var(--color-wood-dark);border-radius:var(--radius-lg);box-shadow:inset 0 1px 3px #fff6,0 2px 6px #00000026}[data-theme=light] .turn-player{color:#4a3520;text-shadow:0 1px 1px rgba(255,255,255,.5)}.hint-btn{position:relative}.hint-btn.active{background:#4caf5033;border-color:var(--color-accent-green);color:var(--color-accent-green)}.hint-badge{position:absolute;top:-4px;right:-4px;background:var(--color-accent-green);color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0000004d}.score-display{display:flex;justify-content:space-around;padding:var(--spacing-sm)}.score-item{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);position:relative}.score-value-container{position:relative;display:flex;align-items:center;justify-content:center}.score-value{font-size:24px;font-weight:700;font-family:Courier New,monospace;transition:all .3s cubic-bezier(.4,0,.2,1)}.score-value.score-increased{animation:scoreIncrease .5s cubic-bezier(.34,1.56,.64,1)}.score-value.score-decreased{animation:scoreDecrease .5s cubic-bezier(.34,1.56,.64,1)}@keyframes scoreDecrease{0%{transform:scale(1)}25%{transform:scale(.9) translate(-2px);color:#f44336;text-shadow:0 0 15px rgba(244,67,54,.6)}50%{transform:scale(.9) translate(2px)}to{transform:scale(1) translate(0)}}.score-delta{position:absolute;left:50%;bottom:100%;transform:translate(-50%);font-size:14px;font-weight:700;font-family:Courier New,monospace;animation:floatUpDelta 1s ease-out forwards;pointer-events:none}.score-delta.positive{color:var(--color-accent-green);text-shadow:0 0 10px rgba(76,175,80,.5)}.score-delta.negative{color:var(--color-accent-red);text-shadow:0 0 10px rgba(244,67,54,.5)}@keyframes floatUpDelta{0%{opacity:0;transform:translate(-50%) translateY(0)}20%{opacity:1}80%{opacity:1}to{opacity:0;transform:translate(-50%) translateY(-30px)}}.score-label{font-size:12px;color:var(--color-text-secondary);text-transform:uppercase}.score-separator{font-size:32px;color:var(--color-text-muted);align-self:center}.controls-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm)}.control-btn{background:var(--color-bg-tertiary);border:1px solid var(--color-border);color:var(--color-text-primary);padding:var(--spacing-md);border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);box-shadow:0 2px 4px #0003}.control-btn:hover:not(:disabled){background:var(--color-bg-tertiary);border-color:var(--color-border-hover);transform:translateY(-2px);box-shadow:0 4px 8px #0000004d}.control-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 2px #0003}.control-btn:disabled{opacity:.4;cursor:not-allowed}.control-btn.full-width{grid-column:1 / -1}.control-btn.primary{background:var(--color-accent-green);border-color:var(--color-accent-green);color:#fff}.control-btn.primary:hover:not(:disabled){background:#5bc45f;border-color:#5bc45f}.bonus-controls{display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.bonus-btn{flex:1;min-width:70px;padding:var(--spacing-xs) var(--spacing-sm);background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:12px;cursor:pointer;transition:all .2s ease;white-space:nowrap}.bonus-btn:hover:not(:disabled){background:#ffffff1a;border-color:#ffffff40;color:var(--color-text-primary)}.bonus-btn:disabled{opacity:.4;cursor:not-allowed}.bonus-btn.active{background:#4caf5033;border-color:var(--color-accent-green);color:var(--color-accent-green)}.bonus-btn.active:hover{background:#4caf504d}.move-history-card{flex:1 1 0;min-height:120px;display:flex;flex-direction:column;overflow:hidden}.move-history-card .sidebar-card-title{flex-shrink:0}.move-history{flex:1;overflow-y:auto;padding:var(--spacing-sm);scroll-behavior:smooth;min-height:0}.move-history::-webkit-scrollbar-track{background:var(--color-bg-tertiary);border-radius:3px}.move-history::-webkit-scrollbar-thumb{background:var(--color-border-hover);border-radius:3px}.move-list{list-style:none;display:flex;flex-direction:column;gap:var(--spacing-xs)}.move-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);border-radius:var(--radius-sm);font-size:14px;font-family:Courier New,monospace;transition:all .2s cubic-bezier(.4,0,.2,1);animation:slideInFromLeft .3s ease-out}@keyframes slideInFromLeft{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.move-item:hover{background:#ffffff0d;transform:translate(4px)}.move-number{color:var(--color-text-muted);min-width:30px}.move-notation{color:var(--color-text-primary)}.move-player{width:16px;height:16px;border-radius:50%;box-shadow:0 1px 3px #0000004d}.move-player.black{background:radial-gradient(circle at 30% 30%,#4a4a4a,#000)}.move-player.white{background:radial-gradient(circle at 30% 30%,#fff,#ccc)}.move-history::-webkit-scrollbar{width:6px}.move-history::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.move-history::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.move-history::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.game-message{padding:var(--spacing-md);text-align:center;font-weight:600;border-radius:var(--radius-md);background:#2196f31a;border:1px solid rgba(33,150,243,.3);color:var(--color-accent-blue);animation:fadeIn .3s ease-out}.game-message.error{background:#f443361a;border-color:#f443364d;color:var(--color-accent-red)}.game-message.success{background:#4caf501a;border-color:#4caf504d;color:var(--color-accent-green)}@media (max-width: 768px){.sidebar{gap:var(--spacing-sm);height:auto}.sidebar-card{padding:var(--spacing-sm)}.sidebar-card-title{font-size:11px;margin-bottom:var(--spacing-sm)}.control-btn-compact{min-width:40px;min-height:40px;font-size:18px}.turn-controls{padding:var(--spacing-sm)}.turn-player{font-size:13px}.turn-piece{width:20px;height:20px}.score-value{font-size:26px}.move-history-card{flex:0 1 auto;min-height:120px;max-height:200px}.move-history{max-height:160px;overflow-y:auto}.move-item{padding:var(--spacing-sm);font-size:12px}}@media (max-width: 480px){.sidebar-card-title{font-size:10px}.score-display{padding:var(--spacing-xs)}.score-value{font-size:22px}.turn-player{font-size:12px;min-width:60px}.turn-piece{width:16px;height:16px}.control-btn-compact{min-width:36px;min-height:36px;font-size:16px}.move-history-card{min-height:100px;max-height:160px}.move-item{font-size:11px}}@media (max-width: 375px){.sidebar-card{padding:var(--spacing-xs)}.score-value{font-size:20px}.turn-controls{padding:var(--spacing-xs);gap:var(--spacing-xs)}.control-btn-compact{min-width:32px;min-height:32px;font-size:14px;padding:4px}.move-history-card{min-height:80px;max-height:140px}}@media (max-width: 320px){.score-value{font-size:18px}.turn-player{font-size:11px;min-width:50px}.control-btn-compact{min-width:28px;min-height:28px;font-size:12px}}.Board{width:var(--board-max-size);height:var(--board-max-size);aspect-ratio:1;background:var(--color-board-bg);border-radius:var(--radius-lg);padding:var(--board-padding, var(--spacing-lg));box-shadow:var(--shadow-lg);max-width:100%;box-sizing:border-box}[data-theme=light] .Board{--color-board-bg: linear-gradient( 135deg, var(--color-wood-light) 0%, var(--color-wood-base) 50%, var(--color-wood-dark) 100% );background:repeating-linear-gradient(90deg,transparent,transparent 20px,var(--color-wood-grain) 20px,var(--color-wood-grain) 21px,transparent 21px,transparent 60px),repeating-linear-gradient(0deg,transparent,transparent 40px,var(--color-wood-grain-dark) 40px,var(--color-wood-grain-dark) 41px),linear-gradient(135deg,var(--color-wood-light) 0%,var(--color-wood-base) 30%,var(--color-wood-base) 70%,var(--color-wood-dark) 100%);box-shadow:inset 0 2px 8px #ffffff4d,0 8px 32px #00000040,0 2px 4px #00000026;border:2px solid var(--color-wood-dark)}.board-grid{width:100%;height:100%;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);gap:var(--board-grid-gap, 2px);background:#0000004d;border-radius:var(--radius-md);overflow:hidden}.Tile{background:var(--color-board-light);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast);position:relative;perspective:1000px;overflow:visible}.tile-inner{width:100%;height:100%;transform-style:preserve-3d;position:relative}.Tile svg{width:85%;height:85%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);filter:drop-shadow(0 2px 4px rgba(0,0,0,.4)) drop-shadow(0 4px 8px rgba(0,0,0,.2));transition:filter .3s ease,transform .3s ease}.Tile:hover svg{filter:drop-shadow(0 6px 12px rgba(0,0,0,.5)) drop-shadow(0 8px 16px rgba(0,0,0,.3));transform:translate(-50%,-50%) translateZ(10px) scale(1.05)}.Tile.dark{background:var(--color-board-dark)}.Tile.light{background:var(--color-board-light)}.Tile:hover{filter:brightness(1.05)}.Tile.valid-move{cursor:pointer}.Tile.valid-move .tile-inner .hint-dot{position:absolute;top:50%;left:50%;width:30%;height:30%;margin-top:-15%;margin-left:-15%;border-radius:50%;background:transparent;border:3px solid rgba(76,175,80,.7);box-shadow:0 0 0 2px #4caf5033;pointer-events:none;transition:all .2s ease;z-index:1}.Tile.valid-move:hover .tile-inner .hint-dot{border-color:#4caf50e6;box-shadow:0 0 0 4px #4caf504d;transform:scale(1.2)}.Tile.hint-move{box-shadow:inset 0 0 0 3px #ffc107,0 0 15px #ffc10780;animation:hint-pulse 1s ease-in-out infinite;z-index:5}.Tile.hint-move .tile-inner .hint-dot{border-color:#ffc107;background:#ffc1074d;box-shadow:0 0 8px #ffc10799}@keyframes hint-pulse{0%,to{box-shadow:inset 0 0 0 3px #ffc107,0 0 15px #ffc10780}50%{box-shadow:inset 0 0 0 4px #ffc107,0 0 25px #ffc107b3}}.Tile.last-move{box-shadow:inset 0 0 0 3px var(--color-accent-blue);animation:pulseLastMove .5s ease-out;position:relative;z-index:10}.Tile.last-move-no-glare{box-shadow:inset 0 0 0 3px var(--color-accent-blue);animation:pulseLastMove .5s ease-out;position:relative}.Tile.last-move:before{content:"";position:absolute;top:0;left:-50%;width:50%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.9) 50%,transparent 100%);transform:skew(-20deg);pointer-events:none;opacity:0;animation:glassGlare 5s ease-in-out infinite;z-index:20}.Tile.last-move:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#fff6,#fff3 30%,#fff0 50%,#fff0);pointer-events:none;opacity:0;animation:glareEffect .8s ease-out .2s forwards;z-index:15}@keyframes pulseLastMove{0%,to{box-shadow:inset 0 0 0 3px var(--color-accent-blue)}50%{box-shadow:inset 0 0 0 6px var(--color-accent-blue)}}@keyframes glareEffect{0%{opacity:0}30%{opacity:1}to{opacity:.3}}.Tile.initial-piece{position:relative;z-index:5}.Tile.glare-source{z-index:50}.Tile.glare-source:before{content:"";position:absolute;top:-50%;left:-200%;width:250%;height:250%;background:linear-gradient(90deg,transparent 0%,transparent 20%,rgba(255,255,255,.5) 35%,rgba(255,255,255,.8) 45%,rgba(255,255,255,.9) 50%,rgba(255,255,255,.8) 55%,rgba(255,255,255,.5) 65%,transparent 80%,transparent 100%);transform:skew(-20deg);pointer-events:none;opacity:0;animation:unifiedInitialGlare 1s ease-out .2s;z-index:100}@keyframes unifiedInitialGlare{0%{left:-200%;opacity:0}10%{opacity:1}70%{left:200%;opacity:1}80%{opacity:0;left:200%}to{left:200%;opacity:0}}.piece{width:85%;height:85%;border-radius:50%;box-shadow:0 2px 6px #0006,0 1px 3px #0000004d;transition:transform var(--transition-normal),box-shadow var(--transition-normal);position:relative}.piece.black{background:radial-gradient(circle at 30% 30%,#4a4a4a,#000)}.piece.white{background:radial-gradient(circle at 30% 30%,#fff,#ccc);box-shadow:0 2px 6px #00000080,0 1px 3px #0006,inset 0 -2px 4px #00000026}.piece:after{content:"";position:absolute;top:12%;left:18%;width:45%;height:45%;background:radial-gradient(ellipse at 35% 35%,rgba(255,255,255,.8),rgba(255,255,255,.4) 40%,rgba(255,255,255,.1) 60%,transparent 75%);border-radius:50%;pointer-events:none;z-index:1;animation:glareShimmer 4s ease-in-out infinite}.piece.black:after{opacity:.4}.piece.white:after{opacity:.7}@keyframes glareShimmer{0%,to{opacity:inherit;transform:scale(1)}50%{opacity:calc(var(--glare-opacity, .4) * 1.5);transform:scale(1.1)}}.piece:hover{transform:scale(1.05);box-shadow:0 4px 12px #00000080,0 2px 6px #0006}.piece.white:hover{box-shadow:0 4px 12px #0009,0 2px 6px #00000080,inset 0 -2px 4px #0003}@media (max-width: 768px){.Board{padding:var(--spacing-md)}.board-grid{gap:1px}.Tile{min-height:44px;min-width:44px}.piece{width:80%;height:80%}}@media (max-width: 480px){.Board{padding:var(--spacing-sm);border-radius:var(--radius-md)}.Tile.valid-move:after{width:30%;height:30%;border-width:3px}.Tile.last-move{box-shadow:inset 0 0 0 4px var(--color-accent-blue)}}@media (max-width: 768px) and (orientation: landscape){.Board{--board-max-size: min(85vh, 500px)}}.Tile.tile-flip .tile-inner{animation:flipAnimation .6s cubic-bezier(.4,0,.2,1)}.Tile.tile-flip svg{animation:flipPieceVisibility .6s cubic-bezier(.4,0,.2,1)}@keyframes flipAnimation{0%{transform:rotateY(0)}50%{transform:rotateY(90deg) scale(1.1)}to{transform:rotateY(180deg)}}@keyframes flipPieceVisibility{0%{opacity:1}45%{opacity:1}50%{opacity:0}55%{opacity:1}to{opacity:1}}@keyframes glassGlare{0%{left:-50%;opacity:0}1%{opacity:1}10%{left:100%;opacity:1}11%{opacity:0;left:100%}to{left:100%;opacity:0}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes scoreIncrease{0%{transform:scale(1)}50%{transform:scale(1.3);color:gold;text-shadow:0 0 20px rgba(255,215,0,.8)}to{transform:scale(1)}}@keyframes floatUp{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-40px) scale(.8)}}.score-change{animation:scoreIncrease .5s cubic-bezier(.34,1.56,.64,1)}.score-float{animation:floatUp 1s ease-out forwards}@keyframes timePulse{0%{transform:scale(1);box-shadow:0 0 #dc262600}50%{transform:scale(1.05);box-shadow:0 0 12px #dc262699}to{transform:scale(1);box-shadow:0 0 #dc262600}}@keyframes timeFlash{0%{background-color:transparent}30%{background-color:#facc154d}to{background-color:transparent}}.time-control.pulsing{animation:timePulse 1.5s ease-in-out infinite}.time-control.flashing{animation:timeFlash .3s ease-out}:root{--color-bg-primary: #1a1a1a;--color-bg-secondary: #2a2a2a;--color-bg-tertiary: #3a3a3a;--color-text-primary: #ffffff;--color-text-secondary: rgba(255, 255, 255, .7);--color-text-muted: rgba(255, 255, 255, .5);--color-border: rgba(255, 255, 255, .1);--color-border-hover: rgba(255, 255, 255, .2);--color-accent-green: #4caf50;--color-accent-blue: #2196f3;--color-accent-red: #f44336;--color-board-dark: #2c5f2d;--color-board-light: #97d077;--color-board-bg: linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 100%);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5);--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--navbar-height: 60px;--sidebar-width: 280px;--game-gap: 20px;--board-padding: 16px;--board-max-size: min( 80vh, calc(100vw - var(--sidebar-width) - var(--game-gap) * 3 - 40px), 650px );--board-grid-gap: 2px;--tile-size: calc( (var(--board-max-size) - var(--board-padding) * 2 - var(--board-grid-gap) * 7) / 8 );--z-navbar: 100;--z-menu: 200;--z-modal: 300;--z-loading: 400}[data-theme=light]{--color-bg-primary: #f5f5f5;--color-bg-secondary: #e8e8e8;--color-bg-tertiary: #d4d4d4;--color-text-primary: #1a1a1a;--color-text-secondary: rgba(0, 0, 0, .7);--color-text-muted: rgba(0, 0, 0, .5);--color-border: rgba(0, 0, 0, .1);--color-border-hover: rgba(0, 0, 0, .2);--color-board-dark: #2c5f2d;--color-board-light: #7cbc5c;--color-board-bg: linear-gradient(135deg, #e8e8e8 0%, #f5f5f5 100%);--color-wood-base: #d4a574;--color-wood-light: #e8c9a3;--color-wood-dark: #b8935c;--color-wood-grain: rgba(139, 90, 43, .15);--color-wood-grain-dark: rgba(101, 67, 33, .1);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .1);--shadow-md: 0 4px 16px rgba(0, 0, 0, .15);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .2)}@media (min-width: 1400px){:root{--sidebar-width: 320px;--board-max-size: min(85vh, calc(100vw - var(--sidebar-width) - 100px), 700px)}}@media (max-width: 1200px){:root{--sidebar-width: 260px;--board-max-size: min(80vh, calc(100vw - var(--sidebar-width) - 80px), 600px)}}@media (max-width: 1024px){:root{--sidebar-width: 240px;--game-gap: 16px;--board-padding: 12px;--board-max-size: min(75vh, calc(100vw - var(--sidebar-width) - 60px), 550px)}}@media (max-width: 768px){:root{--navbar-height: 56px;--sidebar-width: 100%;--game-gap: 12px;--board-padding: 10px;--board-max-size: min(60vh, calc(100vw - 24px) );--spacing-sm: 6px;--spacing-md: 10px;--spacing-lg: 14px}}@media (max-width: 480px){:root{--board-padding: 8px;--board-max-size: min(55vh, calc(100vw - 16px) );--spacing-sm: 4px;--spacing-md: 8px;--spacing-lg: 12px}}@media (max-width: 375px){:root{--board-padding: 6px;--board-grid-gap: 1px;--board-max-size: min(50vh, calc(100vw - 12px) );--spacing-xs: 2px;--spacing-sm: 4px;--spacing-md: 6px;--spacing-lg: 10px}}@media (max-width: 320px){:root{--board-padding: 4px;--board-grid-gap: 1px;--board-max-size: calc(100vw - 8px) ;--spacing-xs: 2px;--spacing-sm: 3px;--spacing-md: 5px;--spacing-lg: 8px}}.custom-scrollbar{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}[data-theme=light] .custom-scrollbar{scrollbar-color:rgba(0,0,0,.3) transparent}.custom-scrollbar::-webkit-scrollbar{width:8px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent;border-radius:var(--radius-lg);margin:var(--spacing-md) 0}.custom-scrollbar::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:var(--radius-lg);border:2px solid transparent;background-clip:padding-box}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#ffffff80;background-clip:padding-box}[data-theme=light] .custom-scrollbar::-webkit-scrollbar-thumb{background:#0000004d;background-clip:padding-box}[data-theme=light] .custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#00000080;background-clip:padding-box}.card{background:#0003;border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md)}[data-theme=light] .card{background:linear-gradient(180deg,var(--color-wood-light) 0%,var(--color-wood-base) 50%,var(--color-wood-dark) 100%);border-color:var(--color-wood-dark);box-shadow:inset 0 1px 3px #fff6,0 2px 8px #00000026}.card-header{font-size:14px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-md);text-align:center}[data-theme=light] .card-header{color:#4a3520;text-shadow:0 1px 1px rgba(255,255,255,.5)}.btn{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);cursor:pointer;font-size:14px;padding:var(--spacing-sm) var(--spacing-md);transition:all var(--transition-normal)}.btn:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-border-hover);transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--color-accent-green);border-color:var(--color-accent-green);color:#fff}.btn-primary:hover:not(:disabled){background:#45a049;border-color:#45a049}.btn-icon{min-width:36px;min-height:36px;padding:var(--spacing-xs);font-size:16px;display:flex;align-items:center;justify-content:center}.btn-compact{padding:var(--spacing-xs) var(--spacing-sm);font-size:16px;border-radius:6px}[data-theme=light] .btn{background:linear-gradient(180deg,var(--color-wood-light) 0%,var(--color-wood-base) 100%);border-color:var(--color-wood-dark);color:#4a3520;box-shadow:inset 0 1px 2px #ffffff80,0 2px 4px #0003}[data-theme=light] .btn:hover:not(:disabled){background:linear-gradient(180deg,var(--color-wood-base) 0%,var(--color-wood-dark) 100%)}.badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;font-size:11px;font-weight:600;border-radius:12px;text-transform:uppercase}.badge-success{background:#4caf5033;color:var(--color-accent-green)}.badge-warning{background:#ffc10733;color:#ffc107}.badge-error{background:#f4433633;color:var(--color-accent-red)}.badge-info{background:#2196f333;color:var(--color-accent-blue)}.badge-count{min-width:18px;height:18px;padding:0 4px;font-size:10px;font-weight:700;border-radius:50%;background:var(--color-accent-green);color:#fff}.message{padding:var(--spacing-md);text-align:center;font-weight:600;border-radius:var(--radius-md);background:#2196f31a;border:1px solid rgba(33,150,243,.3);color:var(--color-accent-blue);animation:fadeIn .3s ease-out}.message-error{background:#f443361a;border-color:#f443364d;color:var(--color-accent-red)}.message-success{background:#4caf501a;border-color:#4caf504d;color:var(--color-accent-green)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:fadeIn .3s ease;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.panel{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);max-width:500px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px #000000b3,0 10px 30px #00000080;animation:slideUp .4s cubic-bezier(.4,0,.2,1)}.panel-header{position:sticky;top:0;z-index:10;background:var(--color-bg-secondary);display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xl) var(--spacing-xl) var(--spacing-md);border-bottom:2px solid rgba(255,255,255,.1);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.panel-header h2,.panel-header h3{margin:0;color:var(--color-text-primary)}.panel-close{background:transparent;border:none;color:var(--color-text-primary);font-size:32px;cursor:pointer;padding:0;width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:8px;transition:all .2s ease}.panel-close:hover{background:#ffffff1a;transform:rotate(90deg)}.panel-body{padding:var(--spacing-md) var(--spacing-xl) var(--spacing-xl)}@media (max-width: 768px){.btn-icon{min-width:32px;min-height:32px}.card{padding:var(--spacing-sm)}.card-header{font-size:12px}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--color-bg-primary);color:var(--color-text-primary);overflow-x:hidden}#root{min-height:100vh;display:flex;flex-direction:column}.OthelloGame{display:flex;flex-direction:column;min-height:100vh}.game-wrapper{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-lg);padding-bottom:var(--spacing-md);flex:1;width:100%;max-width:1600px;margin:0 auto}.game-container{display:flex;justify-content:center;align-items:stretch;gap:var(--spacing-lg);width:100%}.board-area{display:flex;justify-content:center;align-items:center;flex:0 0 auto}.sidebar-area{position:relative;display:flex;flex-direction:column;gap:var(--spacing-md);flex:0 0 var(--sidebar-width);max-height:var(--board-max-size)}.action-bar{display:flex;justify-content:center;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);margin-top:var(--spacing-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:calc(var(--board-max-size) + var(--sidebar-width) + var(--spacing-lg))}.action-bar-btn{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;min-width:140px}.action-bar-btn:hover{background:var(--color-bg-hover, rgba(255, 255, 255, .1));border-color:var(--color-border-hover);transform:translateY(-2px)}.action-bar-btn:active{transform:translateY(0)}.action-bar-btn.primary{background:var(--color-accent-green);border-color:var(--color-accent-green);color:#fff}.action-bar-btn.primary:hover{background:#5cb860}.action-bar-btn .btn-icon{font-size:18px}.action-bar-btn .btn-text{display:inline}[data-theme=light] .action-bar{background:linear-gradient(180deg,var(--color-wood-light) 0%,var(--color-wood-base) 100%);border-color:var(--color-wood-dark)}[data-theme=light] .action-bar-btn{background:#ffffff80;border-color:var(--color-wood-dark);color:#4a3520}[data-theme=light] .action-bar-btn:hover{background:#ffffffb3}[data-theme=light] .action-bar-btn.primary{background:var(--color-accent-green);color:#fff}@media (max-width: 1024px){.sidebar-area{flex:0 0 280px}.action-bar-btn{min-width:120px;padding:var(--spacing-md) var(--spacing-lg)}}@media (max-width: 768px){.game-wrapper{padding:var(--spacing-md);padding-bottom:var(--spacing-sm)}.game-container{flex-direction:column;gap:var(--spacing-md)}.board-area{width:100%}.sidebar-area{width:100%;flex:1 1 auto;max-height:none}.action-bar{gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md)}.action-bar-btn{min-width:56px;width:56px;height:56px;padding:var(--spacing-sm);border-radius:var(--radius-lg)}.action-bar-btn .btn-text{display:none}.action-bar-btn .btn-icon{font-size:24px}}@media (max-width: 480px){.game-wrapper{padding:var(--spacing-sm)}.game-container{gap:var(--spacing-sm)}.action-bar-btn{min-width:48px;width:48px;height:48px}}.evaluation-panel{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:all .3s ease}.evaluation-panel.collapsed{padding:var(--spacing-xs)}.evaluation-panel.open{padding:var(--spacing-sm)}.evaluation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.evaluation-panel.collapsed .evaluation-header{margin-bottom:0}.evaluation-toggle{display:flex;align-items:center;gap:var(--spacing-sm);background:transparent;border:none;color:var(--color-text-primary);font-size:16px;cursor:pointer;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-md);transition:background .2s ease}.evaluation-toggle:hover{background:var(--color-bg-tertiary)}.toggle-text{font-size:12px;color:var(--color-text-secondary)}.zoom-controls{display:flex;align-items:center;gap:4px;background:var(--color-bg-tertiary);padding:2px;border-radius:var(--radius-sm)}.zoom-controls button{background:transparent;border:none;color:var(--color-text-secondary);font-size:14px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:var(--radius-xs)}.zoom-controls button:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.zoom-level{font-size:10px;color:var(--color-text-secondary);min-width:32px;text-align:center}.evaluation-graph-container{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;padding-bottom:4px}.evaluation-graph-container::-webkit-scrollbar{height:6px}.evaluation-graph-container::-webkit-scrollbar-track{background:transparent}.evaluation-graph-container::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:3px}.evaluation-graph{display:block;min-width:100%}.axis-label{font-size:10px;fill:var(--color-text-muted);font-family:Courier New,monospace}.graph-point{cursor:pointer;transition:r .15s ease}.graph-point:hover{r:6}.graph-legend{display:flex;gap:var(--spacing-lg);font-size:11px;color:var(--color-text-secondary)}.legend-black{color:var(--color-accent-green)}.legend-white{color:var(--color-accent-red)}.legend-hint{margin-left:auto;opacity:.7;font-style:italic}:root{--graph-bg: rgba(0, 0, 0, .3);--graph-zero-line: rgba(255, 255, 255, .3);--graph-black-area: rgba(76, 175, 80, .25);--graph-white-area: rgba(244, 67, 54, .25);--graph-line: #4fc3f7;--graph-current: rgba(255, 255, 255, .7);--graph-current-point: #ffffff;--graph-point: #4fc3f7}[data-theme=light]{--graph-bg: rgba(0, 0, 0, .05);--graph-zero-line: rgba(0, 0, 0, .2);--graph-black-area: rgba(76, 175, 80, .3);--graph-white-area: rgba(244, 67, 54, .3);--graph-line: #1976d2;--graph-current: rgba(0, 0, 0, .5);--graph-current-point: #1976d2;--graph-point: #1976d2}@media (max-width: 768px){.evaluation-panel{margin-top:var(--spacing-sm)}.evaluation-graph{width:100%;max-width:320px}}[data-theme=light] .evaluation-panel{background:linear-gradient(180deg,var(--color-wood-light) 0%,var(--color-wood-base) 100%);border-color:var(--color-wood-dark)}[data-theme=light] .evaluation-toggle{color:#4a3520}[data-theme=light] .toggle-text{color:#4a3520b3}
