.piece{cursor:pointer;transition:transform .15s ease-out}.piece:hover .piece-circle{filter:brightness(1.1)}.piece-circle{transition:filter .15s ease-out}.piece-selected{filter:drop-shadow(0 0 6px rgba(39,174,96,.8)) drop-shadow(0 0 14px rgba(39,174,96,.4));animation:neon-glow 1.5s ease-in-out infinite}@keyframes neon-glow{0%,to{filter:drop-shadow(0 0 6px rgba(39,174,96,.8)) drop-shadow(0 0 14px rgba(39,174,96,.4))}50%{filter:drop-shadow(0 0 10px rgba(39,174,96,1)) drop-shadow(0 0 22px rgba(39,174,96,.6))}}.piece-crown{pointer-events:none}.piece.dragging{cursor:grabbing;filter:drop-shadow(0 4px 8px rgba(0,0,0,.4))}.piece.dragging .piece-circle{filter:brightness(1.1)}@media (hover: none) and (pointer: coarse){.piece{cursor:default}.piece:active .piece-circle{filter:brightness(1.15)}}@media (prefers-reduced-motion: reduce){.piece-selected{animation-duration:.01ms!important;animation-iteration-count:1!important}}.game-board-container{display:flex;justify-content:center;align-items:center;width:100%;aspect-ratio:1}.game-board{width:100%;height:100%;cursor:pointer;display:block;transition:transform .3s ease;-webkit-tap-highlight-color:transparent}.game-board.flipped{transform:rotate(180deg)}.square-light{fill:var(--color-square-light)}.square-dark{fill:var(--color-square-dark)}.move-hint{fill:#2c5f2d73;opacity:.55;pointer-events:none}@media (hover: none) and (pointer: coarse){.game-board{cursor:default}}.board-coord{font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;font-weight:600;letter-spacing:.04em;-webkit-user-select:none;user-select:none;opacity:.45}.board-coord.on-light{fill:var(--color-square-dark, #B58863)}.board-coord.on-dark{fill:var(--color-square-light, #F0D9B5)}.board-corner__line{stroke:#ffdca08c;stroke-width:1.6;stroke-linecap:round}@media (max-width: 480px){.board-coord,.board-corner__line{display:none}}.game-header{display:flex;align-items:center;justify-content:center;gap:14px;padding:8px 18px;background:#ffffffd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;border:1px solid rgba(0,0,0,.06);font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:.85rem;font-weight:500;color:var(--color-text-secondary, #636E72);letter-spacing:.02em;align-self:stretch}.game-header__cell{display:inline-flex;align-items:center;gap:6px}.game-header__divider{width:1px;height:14px;background:#0000001f}.game-header__rated-dot{width:7px;height:7px;border-radius:50%;display:inline-block}.game-header__rated--on .game-header__rated-dot{background:var(--color-success, #27AE60);box-shadow:0 0 6px #27ae608c}.game-header__rated--off .game-header__rated-dot{background:#00000038}@media (max-width: 480px){.game-header{font-size:.78rem;gap:10px;padding:6px 8px}.game-header__divider{height:12px}}.user-avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:10px;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:700;color:#fff;text-transform:uppercase;flex-shrink:0;box-shadow:0 2px 6px #0000002e}.user-avatar--sm{width:32px;height:32px;border-radius:8px;font-size:.95rem}.user-avatar--md{font-size:1.15rem}.user-avatar--opponent{background:linear-gradient(135deg,#8B6F5C 0%,var(--color-brown-dark, #5D4037) 100%)}.user-avatar--self{background:linear-gradient(135deg,var(--color-forest-medium, #3D8B40) 0%,var(--color-forest-dark, #2C5F2D) 100%)}.user-avatar-piece-indicator{position:absolute;right:-5px;bottom:-5px;width:16px;height:16px;border-radius:50%;border:2px solid var(--gs-bg, #D8D0C2);box-shadow:0 1px 2px #00000040}.piece-indicator--white{background:radial-gradient(circle at 35% 30%,#fff,#e5d8c0 70%,#d5c5a5)}.piece-indicator--black{background:radial-gradient(circle at 35% 30%,#a08870,#5d4037 70%,#4a3228)}.player-clock{font-size:1.2rem;font-weight:700;font-variant-numeric:tabular-nums;padding:4px 10px;border-radius:6px;background:#ffffff0f;color:var(--color-text-secondary);white-space:nowrap;transition:all .2s ease}.player-clock.active{background:#2c5f2d33;color:var(--color-text)}.player-clock.low-time{background:#e5393533;color:var(--color-error);animation:pc-pulse .5s ease-in-out infinite alternate}@keyframes pc-pulse{0%{opacity:1}to{opacity:.7}}@media (prefers-reduced-motion: reduce){.player-clock.low-time{animation-duration:.01ms!important;animation-iteration-count:1!important}}.clock-monospace{display:inline-flex;align-items:center;justify-content:center;min-width:96px;height:42px;padding:0 14px;background:var(--clock-bg, #111511);color:var(--clock-text, #5A6A5A);border-radius:8px;font-family:JetBrains Mono,Menlo,Monaco,monospace;font-weight:700;font-size:1.65rem;letter-spacing:.04em;font-variant-numeric:tabular-nums;transition:background .25s ease,color .25s ease,box-shadow .25s ease;box-shadow:inset 0 1px #ffffff0a,0 1px 3px #00000040}.clock-monospace--active{background:var(--clock-active-bg, #0A1F0B);color:var(--clock-active-text, var(--color-forest-light, #A8D5A2));box-shadow:inset 0 1px #a8d5a214,0 0 18px #2c5f2d59;animation:clockGlow 1.6s ease-in-out infinite alternate}.clock-monospace--low{background:#2a0f12;color:var(--color-error, #E74C3C);animation:clockPulseLow .8s ease-in-out infinite alternate}@keyframes clockGlow{0%{box-shadow:inset 0 1px #a8d5a20f,0 0 12px #2c5f2d47}to{box-shadow:inset 0 1px #a8d5a21a,0 0 22px #2c5f2d73}}@keyframes clockPulseLow{0%{opacity:1}to{opacity:.72}}.clock-monospace .player-clock,.clock-monospace .player-clock.active,.clock-monospace .player-clock.low-time{background:transparent;padding:0;font:inherit;color:inherit;letter-spacing:inherit;border-radius:0;animation:none}@media (prefers-reduced-motion: reduce){.clock-monospace--active,.clock-monospace--low{animation:none}}.player-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;min-height:64px;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;border:1px solid rgba(0,0,0,.06);border-left:3px solid transparent;transition:border-left-color .25s ease,box-shadow .25s ease,background .25s ease;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;position:relative}.player-card--active{border-left-color:var(--color-forest-dark, #2C5F2D);box-shadow:0 4px 18px #2c5f2d2e}.player-card--disconnected{border-left-color:var(--color-warning, #F39C12)}.player-card__left{display:flex;align-items:center;gap:12px;min-width:0}.player-card__meta{display:flex;flex-direction:column;gap:3px;min-width:0}.player-card__name-row{display:flex;align-items:baseline;gap:8px;min-width:0}.player-card__username{font-weight:600;font-size:1rem;color:var(--color-text, #2D3436);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.player-card__rating{font-size:.82rem;color:var(--color-text-secondary, #636E72);font-variant-numeric:tabular-nums}.player-card__turn-indicator{font-size:.75rem;font-weight:600;color:var(--color-forest-dark, #2C5F2D);text-transform:uppercase;letter-spacing:.06em;animation:turnPulse 1.6s ease-in-out infinite alternate}@keyframes turnPulse{0%{opacity:.7}to{opacity:1}}.player-card__disconnected{font-size:.78rem;color:var(--color-warning, #F39C12);font-weight:500}.player-card__right{flex-shrink:0}@media (max-width: 480px){.player-card{min-height:52px;padding:8px 10px}.player-card__username{font-size:.92rem;max-width:110px}}@media (prefers-reduced-motion: reduce){.player-card__turn-indicator{animation:none}}body.gs-ambient:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:.1;background-image:url("data:image/svg+xml,%3Csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='w'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.02 0.2' numOctaves='5' seed='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23w)'/%3E%3C/svg%3E");background-size:300px 300px}body.gs-ambient:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,transparent 40%,rgba(60,40,25,.12) 100%)}.ambient-particles{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:.5}.ambient-glow{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;transition:opacity .8s ease,background .8s ease;opacity:0}body.your-turn .ambient-glow{opacity:1;background:linear-gradient(to right,rgba(44,95,45,.06) 0%,transparent 3%) left,linear-gradient(to left,rgba(44,95,45,.06) 0%,transparent 3%) right,linear-gradient(to bottom,rgba(44,95,45,.04) 0%,transparent 2%) top,linear-gradient(to top,rgba(44,95,45,.06) 0%,transparent 3%) bottom;background-repeat:no-repeat;background-size:100% 100%}body.low-time-glow .ambient-glow{opacity:1;background:linear-gradient(to right,rgba(231,76,60,.08) 0%,transparent 4%) left,linear-gradient(to left,rgba(231,76,60,.08) 0%,transparent 4%) right,linear-gradient(to bottom,rgba(231,76,60,.06) 0%,transparent 3%) top,linear-gradient(to top,rgba(231,76,60,.08) 0%,transparent 4%) bottom;background-repeat:no-repeat;background-size:100% 100%;animation:ambientPulse 1.2s ease-in-out infinite alternate}@keyframes ambientPulse{0%{opacity:.6}to{opacity:1}}@media (max-width: 767px){.ambient-particles{display:none}}@media (prefers-reduced-motion: reduce){.ambient-particles{display:none}body.low-time-glow .ambient-glow{animation:none}}.game-toolbar{display:flex;align-items:stretch;gap:0;width:100%;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;border:1px solid rgba(0,0,0,.05);box-shadow:0 1px 4px #00000012,0 3px 10px #0000000a;overflow:hidden;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif}.game-toolbar__btn{position:relative;flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;padding:10px 8px;font:inherit;border:none;background:transparent;color:var(--color-neutral-700, #4A5568);cursor:pointer;transition:background .25s cubic-bezier(.4,0,.2,1),color .25s cubic-bezier(.4,0,.2,1)}.game-toolbar__btn:not(:last-child):after{content:"";position:absolute;right:0;top:12px;bottom:12px;width:1px;background:#0000000f}.game-toolbar__btn svg{opacity:.6;transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .25s ease}.game-toolbar__btn span{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.4px;opacity:.55;transition:opacity .25s ease,color .25s ease}.game-toolbar__btn:hover:not(:disabled){background:#00000005}.game-toolbar__btn:hover:not(:disabled) svg{opacity:.9;transform:scale(1.12)}.game-toolbar__btn:hover:not(:disabled) span{opacity:.85}.game-toolbar__btn:active:not(:disabled){background:#0000000a}.game-toolbar__btn:active:not(:disabled) svg{transform:scale(.95);transition-duration:.1s}.game-toolbar__btn:disabled{opacity:.45;cursor:not-allowed}.game-toolbar__btn--resign:hover:not(:disabled){background:#e74c3c0d;color:var(--color-error, #E74C3C)}.game-toolbar__btn--resign:hover:not(:disabled) svg{opacity:1;transform:scale(1.12) rotate(-12deg)}.game-toolbar__btn--resign:hover:not(:disabled) span{color:var(--color-error, #E74C3C)}.game-toolbar__btn--draw:hover:not(:disabled){background:#b588630f;color:var(--color-brown-dark, #5D4037)}.game-toolbar__btn--draw:hover:not(:disabled) svg,.game-toolbar__btn--draw:hover:not(:disabled) .game-toolbar__half{opacity:.9;transform:scale(1.15)}.game-toolbar__half{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.2rem;font-weight:700;line-height:1;opacity:.6;transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .25s ease;display:inline-flex;align-items:center;justify-content:center;height:20px}.game-toolbar__btn--draw:hover:not(:disabled) span{color:var(--color-brown-dark, #5D4037)}.game-toolbar__btn--focus:hover:not(:disabled){background:#2c5f2d0a;color:var(--color-forest-dark, #2C5F2D)}.game-toolbar__btn--focus:hover:not(:disabled) svg{opacity:.9;transform:scale(1.15)}.game-toolbar__btn--focus:hover:not(:disabled) span{color:var(--color-forest-dark, #2C5F2D)}.game-toolbar__btn--focus-active{background:#2c5f2d14;color:var(--color-forest-dark, #2C5F2D)}.game-toolbar__btn--focus-active svg{opacity:.95}.game-toolbar__btn--focus-active span{opacity:.9;color:var(--color-forest-dark, #2C5F2D)}.game-toolbar__btn--accept{color:var(--color-success, #27AE60)}.game-toolbar__btn--accept span,.game-toolbar__btn--decline span{opacity:.85}.game-toolbar__btn--accept:hover:not(:disabled){background:#27ae601a}.game-toolbar__btn--decline{color:var(--color-error, #E74C3C)}.game-toolbar__btn--decline:hover:not(:disabled){background:#e74c3c1a}.game-toolbar--draw-offer .game-toolbar__draw-text{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;font-size:.88rem;color:var(--color-text-secondary, #636E72)}@media (max-width: 480px){.game-toolbar__btn span{display:none}.game-toolbar__btn{padding:8px 10px}.game-toolbar--draw-offer .game-toolbar__btn span{display:inline}.game-toolbar--draw-offer .game-toolbar__draw-text{display:none}}.ingame-settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2500;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);animation:ingame-settings-fade .15s ease-out}.ingame-settings-modal{background:var(--color-bg, #fff);border-radius:14px;width:100%;max-width:460px;max-height:88vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 12px 40px #00000059}.ingame-settings-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .08))}.ingame-settings-header .settings-title{margin:0}.ingame-settings-close{background:transparent;border:none;width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-secondary);cursor:pointer;transition:background .15s}.ingame-settings-close:hover{background:#0000000f;color:var(--color-text)}.ingame-settings-body{padding:var(--spacing-md) var(--spacing-lg);overflow-y:auto}.ingame-settings-body .settings-subtitle:first-child{margin-top:0}@keyframes ingame-settings-fade{0%{opacity:0}to{opacity:1}}:root{--gs-bg: #D8D0C2;--clock-bg: #111511;--clock-active-bg: #0A1F0B;--clock-text: #5A6A5A;--clock-active-text: var(--color-forest-light, #A8D5A2);--color-beige-cream: #F5F0E6;--color-beige-warm: #F0D9B5;--color-beige-sand: #E8D5B7;--color-forest-light: #A8D5A2;--color-forest-medium: #3D8B40;--color-brown-light: #D7C4A7;--gs-board-max: 600px}body.gs-ambient{background:var(--gs-bg);font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif}.game-screen{position:relative;z-index:1;display:flex;flex-direction:column;width:100%;height:100svh;overflow:hidden;color:var(--color-text, #2D3436)}.gs-header-slot{flex-shrink:0;position:relative;z-index:2}.gs-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;max-width:1200px;width:100%;margin:0 auto;padding:16px 20px;flex:1;min-height:0}.gs-board-column{display:flex;flex-direction:column;gap:10px;min-width:0;width:min(calc(100svh - 285px),calc(100vw - 430px),var(--gs-board-max));margin:0 auto;align-items:stretch}.gs-board-wrapper{position:relative;padding:5px;border-radius:10px;background:linear-gradient(145deg,#a08060,#7a6040,#a08060);box-shadow:0 8px 32px #0003,0 2px 8px #0000001f,inset 0 1px #fff3,inset 0 -1px #00000040}.gs-board-frame{position:relative;border-radius:7px;padding:2px;background:linear-gradient(145deg,#4a3828,#3a2a1a,#4a3828);box-shadow:inset 0 1px 3px #00000080,inset 0 -1px #ffffff0d}.gs-board-frame>.game-board-container{border-radius:5px;overflow:hidden}.gs-board-frame>.game-board-container>svg{display:block;width:100%;height:auto}.gs-sidebar{display:flex;flex-direction:column;min-height:0;background:#ffffff8c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:14px;border:1px solid rgba(0,0,0,.06);padding:12px;overflow:hidden}.gs-actions-slot{display:flex;justify-content:center}@media (max-width: 899px){.gs-grid{grid-template-columns:minmax(0,1fr);padding:12px 14px;gap:14px;overflow-y:auto}.gs-board-column{width:100%;max-width:600px}.gs-sidebar{width:100%;max-width:600px;margin:0 auto;min-height:280px}}@media (max-width: 479px){.gs-grid{padding:8px;gap:10px}.gs-board-column{gap:8px}.gs-board-wrapper{padding:3px;border-radius:8px}.gs-sidebar{padding:8px;border-radius:10px;min-height:220px}}@media (prefers-reduced-motion: reduce){.gs-board-wrapper{transition:none}}.gs-sidebar,.gs-header-slot,.game-header,.player-card__turn-indicator,.board-coord{transition:opacity .25s ease,visibility .25s ease}body.zen-partial .gs-sidebar{display:none}body.zen-partial .gs-grid{grid-template-columns:minmax(0,1fr);max-width:var(--gs-board-max)}body.zen-partial .board-coord{opacity:0}body.zen-total .gs-sidebar{display:none}body.zen-total .gs-grid{grid-template-columns:minmax(0,1fr);max-width:var(--gs-board-max)}body.zen-total .board-coord{opacity:0}body.zen-total .gs-header-slot,body.zen-total .game-header{display:none}body.zen-total .player-card__turn-indicator{display:none;animation:none}.gs-match-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#0f140feb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:gs-matchFadeIn .2s ease-out}@keyframes gs-matchFadeIn{0%{opacity:0}to{opacity:1}}.gs-match-card{background:var(--color-surface);border-radius:20px;padding:32px;width:340px;max-width:calc(100vw - 32px);text-align:center;box-shadow:0 16px 48px #0000004d;animation:gs-matchScaleIn .3s cubic-bezier(.34,1.56,.64,1)}@keyframes gs-matchScaleIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.gs-match-title{font-size:1.6rem;font-weight:700;color:var(--color-forest-dark);margin:0 0 20px;font-family:Georgia,serif}.gs-match-opponent{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.gs-match-label{font-size:.75rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.gs-match-name{font-size:1.3rem;font-weight:600;color:var(--color-text)}.gs-match-rating{font-size:.9rem;color:var(--color-text-secondary)}.gs-match-color{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;background:var(--color-beige-warm);border-radius:12px;margin-bottom:20px;font-size:.9rem;color:var(--color-text)}.gs-match-color-dot{width:16px;height:16px;border-radius:50%}.gs-match-color-dot.white{background:var(--color-beige-cream);border:2px solid var(--color-brown-medium)}.gs-match-color-dot.black{background:var(--color-brown-dark);border:2px solid var(--color-beige-cream)}.gs-match-opening{display:flex;flex-direction:column;gap:4px;margin-bottom:16px;padding:8px 12px;background:#ffffff0d;border-radius:8px}.gs-match-opening-label{font-size:.75rem;color:var(--color-text-secondary);text-transform:uppercase}.gs-match-opening-moves{font-size:.95rem;color:var(--color-text);font-weight:500}.gs-match-countdown{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:20px}.gs-match-countdown-label{font-size:.8rem;color:var(--color-text-secondary)}.gs-match-countdown-number{font-size:2.5rem;font-weight:700;color:var(--color-forest-dark);font-variant-numeric:tabular-nums;animation:gs-matchPulse 1s ease-in-out infinite}@keyframes gs-matchPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.gs-match-start-btn{width:100%;padding:14px 24px;background:var(--color-forest-dark);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s;min-height:44px}.gs-match-start-btn:hover{background:var(--color-forest-medium)}.gs-match-start-btn:active{transform:scale(.97)}@media (max-width: 479px){.gs-match-card{width:calc(100vw - 32px);padding:24px}}@media (prefers-reduced-motion: reduce){.gs-match-overlay,.gs-match-card,.gs-match-countdown-number{animation-duration:.01ms!important;animation-iteration-count:1!important}}.game-over-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000000bf;display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .2s ease-out}.game-over-modal{background-color:var(--color-surface);border-radius:12px;padding:var(--spacing-xl);text-align:center;max-width:90%;width:320px;box-shadow:0 8px 32px #00000080;animation:slideUp .3s ease-out}.game-over-title{font-size:1.75rem;margin-bottom:var(--spacing-md);color:var(--color-text)}.game-over-message{font-size:.95rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-lg)}.game-over-buttons{display:flex;gap:var(--spacing-sm);justify-content:center}.game-over-button{background-color:var(--color-primary);color:#fff;border:none;border-radius:8px;padding:var(--spacing-md) var(--spacing-xl);font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s,transform .1s;min-width:140px;min-height:44px}.game-over-button:hover{background-color:var(--color-primary-hover)}.game-over-button:active{transform:scale(.98)}.game-over-button--secondary{background-color:var(--color-surface-hover);color:var(--color-text-secondary)}.game-over-button--secondary:hover{background-color:var(--color-border)}@media (prefers-reduced-motion: reduce){.game-over-overlay,.game-over-modal{animation-duration:.01ms!important;animation-iteration-count:1!important}}.move-list{background-color:var(--color-surface);border-radius:8px;overflow-y:auto;flex:1;min-height:0;padding:var(--spacing-sm)}.move-list-empty{color:var(--color-text-secondary);text-align:center;padding:var(--spacing-lg);font-size:.85rem;font-style:italic}.move-list-table{width:100%;border-collapse:collapse;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:.85rem}.move-list-row:nth-child(odd){background-color:#ffffff08}.move-list-num{color:var(--color-text-secondary);padding:3px 6px 3px 4px;text-align:right;width:28px;font-size:.8rem;-webkit-user-select:none;user-select:none}.move-list-move{padding:3px 8px;color:var(--color-text);cursor:default}.move-list-move.last-move{background-color:rgba(var(--color-primary-rgb, 39, 174, 96),.2);border-radius:3px;font-weight:600}@media (max-width: 900px){.move-list{max-height:200px}}@media (max-width: 500px){.move-list{max-height:150px}}.local-game-header{display:flex;align-items:center;gap:12px}.local-game-back-btn{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:.9rem;padding:4px 8px}.local-game-variant-label{font-size:.9rem;color:var(--color-text-secondary)}.gs-action-icon{padding:6px 14px;height:36px;display:flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:8px;background:var(--color-surface);color:var(--color-text-secondary);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.gs-action-icon:hover{background:#ffffff1f}.gs-action-icon.resign:hover{background:#e74c3c33;color:var(--color-error)}.gs-action-icon.draw:hover:not(:disabled){background:#f39c1233;color:var(--color-warning, #f39c12)}.gs-action-icon.draw.offered{opacity:.4;cursor:default;pointer-events:none}.gs-action-icon.review{padding:6px 10px;min-width:36px}.gs-action-icon.review:disabled{opacity:.3;cursor:default;pointer-events:none}@media (max-width: 480px){.gs-action-icon{padding:6px 10px;height:44px;font-size:.8rem}}.puzzle-page{display:flex;flex-direction:column;align-items:center;padding:16px;max-width:600px;margin:0 auto;min-height:100dvh}.puzzle-header{display:flex;align-items:center;gap:12px;width:100%;margin-bottom:16px}.puzzle-back-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:4px 8px;color:var(--text-primary, #333)}.puzzle-title{font-size:1.25rem;font-weight:600;flex:1}.puzzle-rating-badge{font-size:.85rem;padding:4px 10px;border-radius:12px;background:var(--bg-secondary, #f0f0f0);color:var(--text-secondary, #666);font-weight:500}.puzzle-board-container{position:relative;width:100%;max-width:480px;aspect-ratio:1}.puzzle-feedback{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:12px 24px;border-radius:12px;font-size:1.1rem;font-weight:600;pointer-events:none;animation:puzzleFeedbackFade .8s ease-out forwards;z-index:10}.puzzle-feedback.correct{background:#22c55ee6;color:#fff}.puzzle-feedback.incorrect{background:#ef4444e6;color:#fff;animation:puzzleFeedbackShake .5s ease-out forwards}@keyframes puzzleFeedbackFade{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-60%) scale(.95)}}@keyframes puzzleFeedbackShake{0%,to{transform:translate(-50%,-50%)}20%{transform:translate(-55%,-50%)}40%{transform:translate(-45%,-50%)}60%{transform:translate(-53%,-50%)}80%{transform:translate(-47%,-50%)}}.puzzle-controls{width:100%;max-width:480px;margin-top:16px;display:flex;flex-direction:column;align-items:center;gap:12px}.puzzle-hint{font-size:1rem;color:var(--text-secondary, #666)}.puzzle-btn{padding:10px 24px;border-radius:8px;border:none;font-size:.95rem;font-weight:500;cursor:pointer;min-width:160px}.puzzle-btn.primary{background:var(--color-primary, #22c55e);color:#fff}.puzzle-btn.secondary{background:var(--bg-secondary, #f0f0f0);color:var(--text-primary, #333)}.puzzle-result{display:flex;flex-direction:column;align-items:center;gap:8px}.puzzle-result-text{font-size:1.2rem;font-weight:700}.puzzle-result-text.completed{color:var(--color-success, #22c55e)}.puzzle-result-text.failed{color:var(--color-error, #ef4444)}.puzzle-rating-change{font-size:1.5rem;font-weight:700}.puzzle-rating-change.positive{color:var(--color-success, #22c55e)}.puzzle-rating-change.negative{color:var(--color-error, #ef4444)}.puzzle-new-rating{font-size:.9rem;color:var(--text-secondary, #666)}.puzzle-themes{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.puzzle-theme-tag{padding:3px 10px;border-radius:10px;background:var(--bg-secondary, #f0f0f0);font-size:.8rem;color:var(--text-secondary, #666)}.puzzle-loading{display:flex;align-items:center;justify-content:center;min-height:300px;font-size:1rem;color:var(--text-secondary, #666)}.online-lobby{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 140px);padding:var(--spacing-lg)}.lobby-card{background-color:var(--color-surface);border-radius:12px;padding:var(--spacing-xl);max-width:400px;width:100%;text-align:center;box-shadow:0 4px 20px #0000004d}.lobby-card h2{margin-bottom:var(--spacing-lg);font-size:1.5rem}.lobby-card h3{margin-bottom:var(--spacing-sm);font-size:1.1rem;color:var(--color-text)}.lobby-card p{color:var(--color-text-secondary);margin-bottom:var(--spacing-md);font-size:.9rem}.lobby-section{margin-bottom:var(--spacing-lg)}.lobby-button{padding:var(--spacing-md) var(--spacing-xl);border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;min-height:44px;border:none}.lobby-button.primary{background-color:var(--color-primary);color:#fff}.lobby-button.primary:hover{background-color:var(--color-primary-hover)}.lobby-button.primary:disabled{background-color:var(--color-neutral-600);cursor:not-allowed}.lobby-button.secondary{background-color:transparent;color:var(--color-text-secondary);border:1px solid rgba(255,255,255,.2)}.lobby-button.secondary:hover{background-color:#ffffff1a}.lobby-divider{display:flex;align-items:center;margin:var(--spacing-lg) 0}.lobby-divider:before,.lobby-divider:after{content:"";flex:1;height:1px;background-color:#fff3}.lobby-divider span{padding:0 var(--spacing-md);color:var(--color-text-secondary);font-size:.85rem}.join-form{display:flex;gap:var(--spacing-sm)}.join-form input{flex:1;padding:var(--spacing-md);border-radius:8px;border:1px solid rgba(255,255,255,.2);background-color:#0003;color:var(--color-text);font-size:1rem;text-transform:uppercase;letter-spacing:2px;text-align:center}.join-form input::placeholder{text-transform:none;letter-spacing:normal}.join-form input:focus{outline:none;border-color:var(--color-primary)}.room-info{margin:var(--spacing-lg) 0}.room-code{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.room-code span{font-size:1.5rem;font-weight:700;letter-spacing:3px;background-color:#0000004d;padding:var(--spacing-sm) var(--spacing-md);border-radius:6px}.copy-button{padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;border:1px solid rgba(255,255,255,.2);background-color:transparent;color:var(--color-text);cursor:pointer;font-size:.85rem}.copy-button:hover{background-color:#ffffff1a}.variant-selector{display:flex;gap:var(--spacing-sm);justify-content:center;margin-bottom:var(--spacing-md)}.variant-button{padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;border:1px solid rgba(255,255,255,.2);background-color:transparent;color:var(--color-text-secondary);cursor:pointer;font-size:.85rem;transition:all .2s}.variant-button:hover{background-color:#ffffff1a}.variant-button.active{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.variant-info{color:var(--color-text);font-weight:600;font-size:.95rem}.color-info{color:var(--color-text)}.color-info strong{color:var(--color-primary)}.error-message{color:var(--color-error);background-color:#e74c3c1a;padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;margin-bottom:var(--spacing-md)}.spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;margin:var(--spacing-md) auto}.lobby-section.matchmaking{background:linear-gradient(135deg,#2c5f2d1a,#2c5f2d0d);border:1px solid rgba(44,95,45,.3);border-radius:10px;padding:var(--spacing-lg)}.lobby-section.matchmaking.disabled{background:#ffffff05;border-color:#ffffff1a}.login-hint{color:var(--color-text-secondary);font-style:italic}.time-control-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.time-control-button{padding:var(--spacing-sm) var(--spacing-xs);border-radius:6px;border:1px solid rgba(255,255,255,.2);background-color:transparent;color:var(--color-text-secondary);cursor:pointer;font-size:.8rem;transition:all .2s}.time-control-button:hover{background-color:#ffffff1a;border-color:#ffffff4d}.time-control-button.active{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.lobby-button.find-match{width:100%;font-size:1.1rem;padding:var(--spacing-md) var(--spacing-xl)}.lobby-card.searching{border:2px solid var(--color-primary)}.search-info{margin:var(--spacing-lg) 0}.variant-badge{display:inline-block;background-color:var(--color-brown-medium);color:#fff;padding:var(--spacing-xs) var(--spacing-md);border-radius:20px;font-weight:600;font-size:.85rem;margin-bottom:var(--spacing-xs)}.time-control-badge{display:inline-block;background-color:var(--color-primary);color:#fff;padding:var(--spacing-xs) var(--spacing-md);border-radius:20px;font-weight:600;font-size:.9rem;margin-bottom:var(--spacing-sm)}.search-timer{font-size:2rem;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums}.search-hint{font-size:.85rem;color:var(--color-text-secondary);margin-top:var(--spacing-md)}.custom-time-control{margin-top:var(--spacing-md)}@media (max-width: 400px){.time-control-selector{grid-template-columns:repeat(2,1fr)}}.chat-panel{display:flex;flex-direction:column;background-color:var(--color-surface);border:1px solid rgba(255,255,255,.1);border-radius:8px;overflow:hidden;transition:height .2s ease}.chat-panel.open{width:280px;max-height:400px}.chat-panel.closed{width:280px;height:auto}.chat-panel.compact.closed{display:none}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-primary);cursor:pointer;-webkit-user-select:none;user-select:none;min-height:40px}.chat-header:hover{background-color:var(--color-primary-hover)}.chat-title{font-weight:500;font-size:.9rem;color:var(--color-text)}.chat-toggle{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:.8rem;padding:2px 6px}.chat-badge{background-color:var(--color-primary);color:#fff;font-size:.7rem;font-weight:700;padding:2px 6px;border-radius:10px;min-width:18px;text-align:center}.chat-messages{flex:1;overflow-y:auto;padding:var(--spacing-sm);display:flex;flex-direction:column;gap:var(--spacing-xs);min-height:200px;max-height:300px}.chat-empty{color:var(--color-text-secondary);text-align:center;padding:var(--spacing-lg);font-size:.85rem;font-style:italic}.chat-message{display:flex;flex-direction:column;padding:var(--spacing-xs) var(--spacing-sm);border-radius:8px;max-width:85%;word-wrap:break-word}.chat-message.own{align-self:flex-end;background-color:var(--color-primary);color:#fff}.chat-message.opponent{align-self:flex-start;background-color:#ffffff1a}.chat-message.white .chat-sender{color:var(--color-beige-warm)}.chat-message.black .chat-sender{color:var(--color-brown-medium)}.chat-message.own .chat-sender{color:#fffc}.chat-message-header{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:2px}.chat-sender{font-size:.75rem;font-weight:600}.chat-time{font-size:.65rem;opacity:.6}.chat-message-content{font-size:.85rem;line-height:1.4}.chat-input-form{display:flex;gap:var(--spacing-xs);padding:var(--spacing-sm);background-color:#0003;border-top:1px solid rgba(255,255,255,.05)}.chat-input{flex:1;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid rgba(255,255,255,.1);border-radius:4px;background-color:#ffffff0d;color:var(--color-text);font-size:.85rem}.chat-input:focus{outline:none;border-color:var(--color-primary)}.chat-input:disabled{opacity:.5;cursor:not-allowed}.chat-input::placeholder{color:var(--color-text-secondary)}.chat-send-button{padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-primary);border:none;border-radius:4px;color:#fff;font-size:.8rem;font-weight:500;cursor:pointer;transition:background-color .2s}.chat-send-button:hover:not(:disabled){background-color:var(--color-primary-hover)}.chat-send-button:disabled{opacity:.5;cursor:not-allowed}.chat-toggle-button{position:relative;display:flex;align-items:center;justify-content:center;width:48px;height:48px;background-color:var(--color-surface);border:1px solid rgba(255,255,255,.1);border-radius:50%;cursor:pointer;transition:background-color .2s,transform .1s}.chat-toggle-button:hover{background-color:#ffffff1a;transform:scale(1.05)}.chat-icon{font-size:1.4rem}.chat-toggle-button .chat-badge{position:absolute;top:-4px;right:-4px}@media (max-width: 900px){.chat-panel.open{width:100%;max-width:100%;max-height:300px}.chat-messages{min-height:150px;max-height:200px}}@media (max-width: 500px){.chat-panel.open{max-height:250px}.chat-messages{min-height:120px;max-height:150px}.chat-message{max-width:90%}}.sidebar-tabs{display:flex;flex-direction:column;background-color:var(--color-surface);border:1px solid rgba(255,255,255,.1);border-radius:8px;overflow:hidden;width:280px;flex:1;min-height:0}.sidebar-tabs-bar{display:flex;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:var(--spacing-sm) var(--spacing-md);background:none;border:none;border-bottom:2px solid transparent;color:var(--color-text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;transition:color .15s,border-color .15s,background-color .15s;min-height:40px}.sidebar-tab:hover{color:var(--color-text);background-color:#ffffff0d}.sidebar-tab.active{color:var(--color-text);border-bottom-color:var(--color-primary)}.sidebar-tab-badge{background-color:var(--color-primary);color:#fff;font-size:.7rem;font-weight:700;padding:1px 5px;border-radius:10px;min-width:16px;text-align:center;line-height:1.3}.sidebar-tabs-content{flex:1;min-height:0;overflow-y:auto}.sidebar-tabs-content .move-list{border-radius:0;border:none}.sidebar-tabs-content .chat-panel{border-radius:0;border:none;width:100%}.sidebar-tabs-content .chat-panel.open{width:100%;max-height:360px}@media (max-width: 900px){.sidebar-tabs{width:100%;max-width:100%}}@media (max-width: 500px){.sidebar-tabs-content .chat-panel.open{max-height:250px}}.rematch-panel{padding:var(--spacing-md);border-top:1px solid rgba(255,255,255,.1);margin-top:var(--spacing-md)}.session-score{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding:var(--spacing-sm);background-color:#ffffff0d;border-radius:6px}.score-label{color:var(--color-text-secondary);font-size:.9rem}.score-value{font-size:1.2rem;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums}.rematch-notification{text-align:center;padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-md);background-color:#2c5f2d33;border:1px solid rgba(44,95,45,.4);border-radius:6px;color:var(--color-primary);font-weight:500;animation:pulse-bg 2s infinite}@keyframes pulse-bg{0%,to{background-color:#2c5f2d33}50%{background-color:#2c5f2d4d}}.rematch-waiting{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);color:var(--color-text-secondary);font-size:.9rem}.rematch-actions{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.rematch-btn{flex:1;padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;min-height:40px;display:flex;align-items:center;justify-content:center}.rematch-btn.request{background-color:var(--color-primary);color:#fff;border:none}.rematch-btn.request:hover:not(:disabled){background-color:var(--color-primary-hover)}.rematch-btn.request:disabled{opacity:.7;cursor:not-allowed}.rematch-btn.accept{background-color:var(--color-primary);color:#fff;border:none}.rematch-btn.accept:hover{background-color:var(--color-primary-hover)}.rematch-btn.decline{background-color:#e74c3c1a;color:#e74c3c;border:1px solid rgba(231,76,60,.3)}.rematch-btn.decline:hover{background-color:#e74c3c33}.new-game-btn{flex:1;padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;border:none;background-color:var(--color-primary);color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .2s;min-height:40px}.new-game-btn:hover{background-color:var(--color-primary-hover)}.spinner-small{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@media (max-width: 400px){.rematch-actions{flex-direction:column}.rematch-btn,.new-game-btn{width:100%}}@media (prefers-reduced-motion: reduce){.rematch-notification,.spinner-small{animation-duration:.01ms!important;animation-iteration-count:1!important}}.online-game{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);width:100%;max-width:900px;margin:0 auto;padding:0 var(--spacing-md)}.online-game-header{display:flex;gap:var(--spacing-lg);justify-content:center;flex-wrap:wrap}.room-badge,.player-badge{background-color:var(--color-surface);padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;font-size:.9rem}.room-badge span{font-weight:700;letter-spacing:1px}.player-badge span{font-weight:700}.player-badge span.black{color:var(--color-brown-medium)}.online-turn-indicator{display:flex;align-items:center;gap:var(--spacing-sm);font-size:1.1rem}.online-turn-indicator .turn-dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--color-text-secondary)}.online-turn-indicator .turn-dot.white{background-color:var(--color-beige-cream)}.online-turn-indicator .turn-dot.black{background-color:var(--color-brown-dark)}.online-turn-indicator .turn-dot.waiting{animation:pulse 1s ease-in-out infinite}.result-reason{color:var(--color-text-secondary);font-size:.9rem}.online-board-container{display:flex;flex-direction:row;gap:var(--spacing-md);align-items:flex-start;justify-content:center;width:100%}.player-info-bar{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-surface);border-radius:6px;font-size:1rem;width:100%;box-sizing:border-box;min-height:40px}@media (max-width: 900px){.online-game{max-width:100%}.online-board-container{flex-direction:column;align-items:center}.online-game-sidebar{width:100%;max-width:480px;min-width:unset}}.online-game-actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-md)}.action-button{padding:var(--spacing-sm) var(--spacing-lg);border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .2s;min-height:44px;border:1px solid rgba(255,255,255,.2);background-color:transparent;color:var(--color-text)}.action-button:hover{background-color:#ffffff1a}@media (prefers-reduced-motion: reduce){.online-turn-indicator .turn-dot.waiting{animation-duration:.01ms!important;animation-iteration-count:1!important}}.legal-page{max-width:900px;margin:0 auto;padding:0 var(--spacing-md) var(--spacing-xl)}.legal-hero-banner{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--color-forest-dark) 0%,var(--color-forest-medium) 60%,#4CAF50 100%);color:#fff;border-radius:16px;padding:24px 28px;margin-bottom:20px;box-shadow:0 4px 24px #2c5f2d4d;display:flex;align-items:center;gap:16px;min-height:130px}.legal-hero-banner-icon{position:absolute;top:50%;right:20px;transform:translateY(-50%);font-size:5rem;opacity:.22;pointer-events:none;line-height:1}.legal-hero-banner-content{flex:1;min-width:0}.legal-hero-banner-title{font-size:1.8rem;font-family:Georgia,serif;font-weight:700;margin:0 0 6px;color:#fff}.legal-hero-banner-subtitle{font-size:.95rem;margin:0;color:#fffc;line-height:1.4}.legal-back-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:.9rem;padding:8px 0;margin-bottom:16px;transition:color .2s}.legal-back-btn:hover{color:var(--text-primary)}.legal-content{background:var(--card-bg);border-radius:var(--radius-md);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);line-height:1.7;color:var(--text-primary)}.legal-content h2{font-size:1.3rem;font-weight:700;margin:2rem 0 .75rem;color:var(--text-primary)}.legal-content h2:first-child{margin-top:0}.legal-content h3{font-size:1.1rem;font-weight:600;margin:1.5rem 0 .5rem;color:var(--text-primary)}.legal-content p{margin:0 0 1rem;color:var(--text-secondary)}.legal-content ul,.legal-content ol{margin:0 0 1rem;padding-left:1.5rem;color:var(--text-secondary)}.legal-content li{margin-bottom:.4rem}.legal-content a{color:var(--color-forest-light);text-decoration:underline}.legal-content a:hover{color:var(--color-forest)}.legal-last-updated{font-size:.85rem;color:var(--text-tertiary);margin-bottom:1.5rem;font-style:italic}@media (max-width: 480px){.legal-hero-banner{padding:18px 16px;min-height:100px}.legal-hero-banner-title{font-size:1.4rem}.legal-hero-banner-subtitle{font-size:.85rem}.legal-hero-banner-icon{font-size:3.5rem;right:12px}.legal-content{padding:var(--spacing-md)}.legal-content h2{font-size:1.15rem}}.legal-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1100;padding:var(--spacing-md)}.legal-modal{background-color:var(--color-surface);border-radius:12px;max-width:700px;width:100%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0006}.legal-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}.legal-modal-header h3{margin:0;font-size:1.2rem;color:var(--text-primary)}.legal-modal-close{background:none;border:none;color:var(--color-text-secondary);font-size:1.5rem;cursor:pointer;padding:var(--spacing-xs) var(--spacing-sm);line-height:1;border-radius:6px}.legal-modal-close:hover{color:var(--color-text);background:#ffffff0d}.legal-modal-body{overflow-y:auto;padding:var(--spacing-lg);line-height:1.7;color:var(--text-primary)}.legal-modal-body h2{font-size:1.2rem;font-weight:700;margin:1.5rem 0 .6rem;color:var(--text-primary)}.legal-modal-body h2:first-child{margin-top:0}.legal-modal-body h3{font-size:1.05rem;font-weight:600;margin:1.2rem 0 .4rem;color:var(--text-primary)}.legal-modal-body p{margin:0 0 .8rem;color:var(--text-secondary);font-size:.92rem}.legal-modal-body ul,.legal-modal-body ol{margin:0 0 .8rem;padding-left:1.5rem;color:var(--text-secondary);font-size:.92rem}.legal-modal-body li{margin-bottom:.3rem}.legal-modal-body a{color:var(--color-forest-light);text-decoration:underline}.legal-modal-body a:hover{color:var(--color-forest)}@media (max-width: 480px){.legal-modal{max-height:90vh;border-radius:8px}.legal-modal-header{padding:var(--spacing-sm) var(--spacing-md)}.legal-modal-header h3{font-size:1.05rem}.legal-modal-body{padding:var(--spacing-md)}}.auth-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md)}.auth-modal{background-color:var(--color-surface);border-radius:12px;padding:var(--spacing-xl);max-width:400px;width:100%;position:relative;box-shadow:0 4px 20px #0000004d}.auth-modal-close{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);background:none;border:none;color:var(--color-text-secondary);font-size:1.5rem;cursor:pointer;padding:var(--spacing-sm);line-height:1}.auth-modal-close:hover{color:var(--color-text)}.auth-modal h2{text-align:center;margin-bottom:var(--spacing-lg);font-size:1.5rem}.auth-error{background-color:#e74c3c1a;border:1px solid var(--color-error);color:var(--color-error);padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;margin-bottom:var(--spacing-md);font-size:.9rem;text-align:center}.auth-resend-row{margin-top:8px}.auth-resend-link{background:none;border:none;color:var(--color-primary);cursor:pointer;text-decoration:underline;font-size:.85rem;padding:0}.auth-resend-link:hover{opacity:.8}.auth-resend-link:disabled{opacity:.5;cursor:default}.auth-resend-sent{color:var(--color-success, #4CAF50);font-size:.85rem}.auth-field{margin-bottom:var(--spacing-md)}.auth-field label{display:block;margin-bottom:var(--spacing-xs);font-size:.9rem;color:var(--color-text-secondary)}.auth-field input{width:100%;padding:var(--spacing-md);border-radius:8px;border:1px solid rgba(255,255,255,.2);background-color:#0003;color:var(--color-text);font-size:1rem;min-height:44px;box-sizing:border-box}.auth-field input:focus{outline:none;border-color:var(--color-primary)}.auth-field input::placeholder{color:var(--color-text-secondary)}.auth-field input.auth-input-error{border-color:var(--color-error)}.auth-field-error{display:block;color:var(--color-error);font-size:.78rem;margin-top:4px;line-height:1.3}.auth-password-wrapper{position:relative}.auth-password-wrapper input{width:100%;padding-right:44px}.auth-password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px}.auth-password-toggle:hover{color:var(--color-text)}.auth-pw-requirements{display:flex;gap:8px;margin-top:6px}.auth-pw-requirements span{font-size:.72rem;padding:2px 6px;border-radius:4px;background:#ffffff14;color:var(--color-text-secondary);transition:background .2s,color .2s}.auth-pw-requirements span.met{background:#4caf5033;color:var(--color-success, #4CAF50)}.auth-terms-checkbox{margin:var(--spacing-sm) 0}.auth-terms-label{display:flex;align-items:flex-start;gap:var(--spacing-sm);font-size:.85rem;color:var(--color-text-secondary);cursor:pointer;line-height:1.4}.auth-terms-label input[type=checkbox]{margin-top:3px;flex-shrink:0;cursor:pointer;width:16px;height:16px}.auth-terms-link{background:none;border:none;color:var(--color-primary);text-decoration:underline;cursor:pointer;font:inherit;line-height:inherit;padding:0}.auth-terms-link:hover{color:var(--color-primary-hover)}.auth-submit{width:100%;padding:var(--spacing-md);border-radius:8px;border:none;background-color:var(--color-primary);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;min-height:44px;margin-top:var(--spacing-md);display:flex;align-items:center;justify-content:center}.auth-submit:hover:not(:disabled){background-color:var(--color-primary-hover)}.auth-submit:disabled{background-color:var(--color-neutral-600);cursor:not-allowed}.auth-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:auth-spin 1s linear infinite}.auth-switch{text-align:center;margin-top:var(--spacing-lg);color:var(--color-text-secondary);font-size:.9rem}.auth-switch button{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:inherit;text-decoration:underline}.auth-switch button:hover{color:var(--color-primary-hover)}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-verification-message{text-align:center;padding:var(--spacing-md) 0}.auth-verification-icon{font-size:3rem;margin-bottom:var(--spacing-sm)}.auth-verification-message h3{color:var(--color-primary);margin-bottom:var(--spacing-sm);font-size:1.1rem}.auth-verification-message p{color:var(--color-text-secondary);font-size:.9rem;line-height:1.5;margin-bottom:var(--spacing-sm)}.auth-verification-hint{font-size:.8rem!important;opacity:.7}.verify-email-page{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:var(--spacing-xl)}.verify-email-card{background-color:var(--color-surface);border-radius:16px;padding:var(--spacing-xl) var(--spacing-xxl);max-width:460px;width:100%;text-align:center}.verify-email-card h2{margin-bottom:var(--spacing-md)}.verify-email-card p{color:var(--color-text-secondary);margin-bottom:var(--spacing-md);line-height:1.5}.verify-email-spinner{display:inline-block;width:40px;height:40px;border:3px solid rgba(255,255,255,.15);border-top-color:var(--color-primary);border-radius:50%;animation:auth-spin .8s linear infinite;margin:var(--spacing-lg) auto}.verify-email-success{color:var(--color-primary);font-size:1.1rem;font-weight:600}.verify-email-error{color:var(--color-error, #e74c3c)}.auth-forgot-link{text-align:right;margin-top:calc(-1 * var(--spacing-xs));margin-bottom:var(--spacing-xs)}.auth-forgot-link button{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:.82rem;text-decoration:underline;padding:0}.auth-forgot-link button:hover{color:var(--color-primary)}.auth-forgot-desc{color:var(--color-text-secondary);font-size:.9rem;line-height:1.5;margin-bottom:var(--spacing-md);text-align:center}@media (prefers-reduced-motion: reduce){.auth-spinner,.verify-email-spinner{animation-duration:.01ms!important;animation-iteration-count:1!important}}.guest-banner{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--surface-secondary, #2a2a3d);border-bottom:1px solid var(--border-color, #3a3a4d);font-size:.875rem;color:var(--text-secondary, #b0b0c0);z-index:100}.guest-banner-text{flex:1}.guest-banner-upgrade{padding:4px 12px;border-radius:4px;border:none;background:var(--accent-color, #4a90d9);color:#fff;font-size:.8125rem;font-weight:600;cursor:pointer;white-space:nowrap}.guest-banner-upgrade:hover{opacity:.9}.guest-banner-close{background:none;border:none;color:var(--text-secondary, #b0b0c0);font-size:1.25rem;cursor:pointer;padding:0 4px;line-height:1}.guest-banner-close:hover{color:var(--text-primary, #e0e0e0)}.game-replay{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-lg);max-width:600px;margin:0 auto}.replay-close{align-self:flex-start;background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:.9rem;padding:var(--spacing-xs) var(--spacing-sm);margin-bottom:var(--spacing-md)}.replay-close:hover{text-decoration:underline}.replay-info{text-align:center;margin-bottom:var(--spacing-lg)}.replay-players{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);font-size:1.1rem;margin-bottom:var(--spacing-sm)}.replay-player{font-weight:700}.replay-player.white{color:var(--color-beige-warm)}.replay-player.black{color:var(--color-brown-medium)}.replay-vs{color:var(--color-text-secondary);font-weight:400}.replay-result{font-size:1rem;color:var(--color-text);margin-bottom:var(--spacing-xs)}.replay-reason{color:var(--color-text-secondary);font-size:.9rem}.replay-meta{display:flex;gap:var(--spacing-md);justify-content:center;font-size:.85rem;color:var(--color-text-secondary)}.replay-meta span{background-color:#ffffff0d;padding:2px 8px;border-radius:4px}.replay-board-container{width:100%;max-width:480px;margin-bottom:var(--spacing-lg)}.replay-board{width:100%;height:auto;border-radius:8px;box-shadow:0 4px 20px #0000004d}.replay-board .square-light{fill:var(--color-square-light)}.replay-board .square-dark{fill:var(--color-square-dark)}.last-move-highlight{fill:#ffff004d}.replay-controls{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.replay-controls button{background-color:var(--color-surface);border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--color-text);cursor:pointer;font-size:1.2rem;padding:var(--spacing-sm) var(--spacing-md);transition:background-color .2s,border-color .2s}.replay-controls button:hover:not(:disabled){background-color:#ffffff1a;border-color:var(--color-primary)}.replay-controls button:disabled{opacity:.3;cursor:not-allowed}.replay-move-counter{font-size:.9rem;color:var(--color-text-secondary);min-width:60px;text-align:center}.replay-slider{width:100%;max-width:400px}.replay-slider input[type=range]{width:100%;height:8px;border-radius:4px;background:#ffffff1a;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.replay-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--color-primary);cursor:pointer}.replay-slider input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:none}.replay-actions{margin-top:var(--spacing-lg)}.pdn-download-btn{background-color:var(--color-primary);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:var(--spacing-sm) var(--spacing-lg);transition:background-color .2s,transform .1s}.pdn-download-btn:hover{background-color:var(--color-primary-hover);transform:translateY(-1px)}.pdn-download-btn:active{transform:translateY(0)}@media (max-width: 500px){.game-replay{padding:var(--spacing-sm)}.replay-players{flex-direction:column;gap:var(--spacing-xs)}.replay-controls button{padding:var(--spacing-xs) var(--spacing-sm);font-size:1rem}}.games-history-page{display:flex;justify-content:center;padding:var(--spacing-lg);min-height:400px}.games-card{background-color:var(--color-surface);border-radius:12px;padding:var(--spacing-xl);max-width:600px;width:100%;box-shadow:0 4px 20px #0000004d;position:relative}.games-card h2{margin:0 0 var(--spacing-sm) 0;color:var(--color-text);font-size:1.5rem}.games-back{position:absolute;top:var(--spacing-md);left:var(--spacing-md);background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:.9rem;padding:var(--spacing-xs) var(--spacing-sm)}.games-back:hover{text-decoration:underline}.games-count{color:var(--color-text-secondary);margin:0 0 var(--spacing-lg) 0;font-size:.9rem}.games-message{color:var(--color-text-secondary);text-align:center;padding:var(--spacing-xl) 0}.games-error{color:var(--color-error);text-align:center}.games-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--color-primary);border-radius:50%;animation:games-spin 1s linear infinite;margin:var(--spacing-md) auto}@keyframes games-spin{to{transform:rotate(360deg)}}.games-list{display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:500px;overflow-y:auto}.game-item{display:flex;flex-direction:column;gap:var(--spacing-xs);background-color:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:var(--spacing-md);cursor:pointer;transition:background-color .2s,border-color .2s;text-align:left;width:100%}.game-item:hover{background-color:#ffffff1a;border-color:var(--color-primary)}.game-item-main{display:flex;align-items:center;gap:var(--spacing-md)}.game-result{font-weight:700;font-size:.9rem;padding:var(--spacing-xs) var(--spacing-sm);border-radius:4px;min-width:50px;text-align:center}.result-win{background-color:#27ae6033;color:var(--color-success)}.result-loss{background-color:#e74c3c33;color:var(--color-error)}.result-draw{background-color:#f39c1233;color:var(--color-warning)}.game-opponent{color:var(--color-text);font-size:1rem}.game-item-details{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);font-size:.8rem;color:var(--color-text-secondary)}.game-variant,.game-time,.game-moves,.game-date{background-color:#ffffff0d;padding:2px 8px;border-radius:4px}@media (max-width: 600px){.games-history-page{padding:var(--spacing-sm)}.games-card{padding:var(--spacing-md)}.game-item-main{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}}@media (prefers-reduced-motion: reduce){.games-spinner{animation-duration:.01ms!important;animation-iteration-count:1!important}}.tournament-lobby{max-width:700px;margin:0 auto;padding:16px;padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}.lobby-header-new{display:flex;align-items:center;gap:16px;background:var(--color-surface);border-radius:16px;padding:16px;margin-bottom:16px;box-shadow:0 2px 12px #0000001a;border:1px solid var(--color-brown-light)}.back-button-new{background:none;border:none;color:var(--color-text-secondary);font-size:1.5rem;cursor:pointer;padding:8px;border-radius:var(--radius-md);transition:all .2s}.back-button-new:hover{background:var(--color-bg);color:var(--color-text)}.header-center{flex:1}.tournament-name-new{font-size:1.3rem;font-weight:600;margin:0 0 6px;color:var(--color-text)}.header-meta{display:flex;gap:8px;flex-wrap:wrap}.tournament-format-badge{padding:6px 12px;background:var(--color-format-arena);color:#fff;border-radius:4px;font-size:.75rem;font-weight:600;min-height:28px;display:inline-flex;align-items:center}.tournament-format-badge.swiss{background:var(--color-format-swiss, #2E7D32)}.tc-badge,.duration-badge{padding:3px 8px;background:var(--color-bg);color:var(--color-text-secondary);border-radius:4px;font-size:.75rem}.timer-container{display:flex;flex-direction:column;align-items:center;padding:8px 16px;background:var(--color-error);border-radius:var(--radius-md);min-width:90px}.timer-label{font-size:.65rem;color:#fffc;text-transform:uppercase;letter-spacing:.5px}.timer-value{font-size:1.2rem;font-weight:700;color:#fff;font-variant-numeric:tabular-nums}.my-position-bar{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:linear-gradient(135deg,var(--color-forest-dark) 0%,var(--color-forest-medium) 100%);border-radius:var(--radius-lg);padding:14px 20px;margin-bottom:16px;box-shadow:var(--shadow-md);transition:box-shadow .3s}.my-position-bar.highlighted{animation:position-glow 2s ease-out}@keyframes position-glow{0%{box-shadow:0 0 20px #ffd70099,var(--shadow-md)}50%{box-shadow:0 0 30px #ffd70066,var(--shadow-md)}to{box-shadow:var(--shadow-md)}}.position-title{font-size:.75rem;color:#fffc;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.position-stats{display:flex;align-items:center;gap:16px}.position-stat{display:flex;flex-direction:column;align-items:center}.position-stat.main{padding-right:16px}.position-divider{width:1px;height:36px;background:#ffffff4d}.position-rank{font-size:1.8rem;font-weight:700;color:#fff}.position-value{font-size:1.2rem;font-weight:600;color:#fff}.position-value.win-rate{color:var(--color-forest-light)}.position-label{font-size:.65rem;color:#ffffffb3;text-transform:uppercase;margin-top:2px}.pairing-status{background:var(--color-surface);border-radius:16px;padding:24px;text-align:center;margin-bottom:16px;min-height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--color-brown-light)}.searching-animation{display:flex;justify-content:center;gap:8px;margin-bottom:12px}.dot{width:10px;height:10px;background:var(--color-format-arena);border-radius:50%;animation:bounce 1.4s infinite ease-in-out both}.dot:nth-child(1){animation-delay:-.32s}.dot:nth-child(2){animation-delay:-.16s}.dot:nth-child(3){animation-delay:0s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.status-text{color:var(--color-text);font-size:1rem;margin:0}.status-text.paused{color:var(--color-text-secondary)}.lobby-error{background:#e74c3c1a;color:var(--color-error);padding:12px;border-radius:12px;text-align:center;margin-bottom:16px;border:1px solid rgba(231,76,60,.3)}.lobby-tabs{display:flex;gap:4px;background:var(--color-beige-sand);border-radius:16px;padding:4px;margin-bottom:16px;border:1px solid var(--color-brown-light);overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}.lobby-tab{flex:1;padding:10px 16px;background:transparent;border:none;border-radius:12px;color:var(--color-brown-dark);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;scroll-snap-align:center;white-space:nowrap}.lobby-tab:hover{background:#ffffff80;color:var(--color-text)}.lobby-tab.active{background:var(--color-forest-dark);color:#fff;box-shadow:0 4px 12px #2c5f2d4d}.lobby-content{background:var(--color-surface);border-radius:16px;padding:16px;margin-bottom:16px;min-height:300px;border:1px solid var(--color-brown-light);box-shadow:0 2px 12px #0000001a}.lobby-standings{overflow-x:auto}.standings-table{width:100%;border-collapse:collapse}.standings-table th{text-align:left;padding:10px 8px;border-bottom:2px solid var(--color-brown-light);color:var(--color-text-secondary);font-size:.75rem;text-transform:uppercase;font-weight:600}.standings-table td{padding:12px 8px;border-bottom:1px solid var(--color-brown-light);color:var(--color-text);font-size:.9rem}.standings-table tr{cursor:pointer;transition:background-color .15s}.standings-table tbody tr:hover{background:var(--color-bg)}.standings-table tr.top-1{background:#ffd70014}.standings-table tr.top-2{background:#c0c0c014}.standings-table tr.top-3{background:#cd7f3214}.rank-medal{font-size:1.1rem}.player-cell{display:flex;align-items:center;gap:6px}.player-name{font-weight:500}.player-rating{color:var(--color-text-secondary);font-size:.8rem}.streak-badge{font-size:.9rem}.points{font-weight:600;color:var(--color-forest-dark)}.games{color:var(--color-text-secondary)}.status-col{width:30px;text-align:center}.status-indicator{font-size:.9rem}.more-players{text-align:center;color:var(--color-text-secondary);font-size:.85rem;margin:16px 0 0;padding-top:12px;border-top:1px solid var(--color-brown-light)}.lobby-games{display:flex;flex-direction:column;min-height:200px}.games-filter-bar{display:flex;gap:8px;margin-bottom:12px}.games-filter-btn{padding:6px 14px;background:transparent;border:1px solid var(--color-brown-light);border-radius:8px;color:var(--color-text-secondary);font-size:.85rem;cursor:pointer;transition:all .2s}.games-filter-btn.active{background:var(--color-forest-dark);color:#fff;border-color:var(--color-forest-dark)}.games-filter-btn:hover:not(.active){background:var(--color-beige-warm)}.games-empty{display:flex;align-items:center;justify-content:center;min-height:150px;color:var(--color-text-secondary);text-align:center}.games-list{display:flex;flex-direction:column;gap:6px}.game-entry{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--color-beige-warm);border-radius:10px;gap:12px}.game-players{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.game-player{font-size:.85rem;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-player.winner{font-weight:600}.game-player-rating{color:var(--color-text-secondary);font-size:.75rem;margin-left:2px}.game-vs{color:var(--color-text-muted);font-size:.75rem;flex-shrink:0}.game-meta{display:flex;align-items:center;gap:8px;flex-shrink:0}.game-result-badge{padding:2px 6px;border-radius:4px;font-size:.75rem;font-weight:600}.game-result-badge.white-win{background:var(--color-beige-cream);color:var(--color-brown-dark)}.game-result-badge.black-win{background:var(--color-brown-dark);color:var(--color-beige-cream)}.game-result-badge.draw-result{background:var(--color-beige-sand);color:var(--color-text-secondary)}.game-result-badge.ongoing{background:var(--color-info);color:#fff}.game-moves,.game-time-ago{font-size:.75rem;color:var(--color-text-muted)}.participants-sort-bar{display:flex;gap:6px;margin-bottom:12px}.sort-btn{padding:6px 12px;background:transparent;border:1px solid var(--color-brown-light);border-radius:8px;color:var(--color-text-secondary);font-size:.8rem;cursor:pointer;transition:all .2s}.sort-btn.active{background:var(--color-forest-dark);color:#fff;border-color:var(--color-forest-dark)}.sort-btn:hover:not(.active){background:var(--color-beige-warm)}.participants-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}.participant-card{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;background:var(--color-beige-warm);border-radius:12px;cursor:pointer;transition:all .2s}.participant-card:hover{background:var(--color-beige-sand)}.participant-left{display:flex;align-items:center;gap:8px;min-width:0}.participant-status-dot{font-size:.85rem;flex-shrink:0}.participant-info{display:flex;align-items:center;gap:6px;min-width:0}.participant-name{font-weight:500;color:var(--color-text);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.participant-rating{color:var(--color-text-secondary);font-size:.8rem;flex-shrink:0}.participant-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.participant-record{font-size:.75rem;color:var(--color-text-muted)}.participant-points{font-size:.85rem;font-weight:600;color:var(--color-forest-dark)}.participant-streak{font-size:.85rem}.rules-accordion{background:var(--color-surface);border-radius:16px;margin-bottom:16px;overflow:hidden;border:1px solid var(--color-brown-light)}.rules-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:transparent;border:none;color:var(--color-forest-dark);font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s;font-family:Georgia,serif}.rules-toggle:hover{background:var(--color-beige-warm)}.rules-chevron{color:var(--color-text-secondary);font-size:.8rem}.rules-content{padding:0 16px 16px;display:flex;flex-direction:column;gap:10px}.rule-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--color-beige-warm);border-radius:12px;font-size:.85rem;color:var(--color-text)}.rule-icon{font-size:1rem;width:24px;text-align:center}.bottom-action-bar{position:fixed;bottom:0;left:0;right:0;display:flex;gap:12px;padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom));background:var(--color-surface);border-top:1px solid var(--color-brown-light);box-shadow:0 -4px 12px #0000001a;z-index:20}.action-button{flex:1;padding:14px 20px;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;min-height:48px}.action-button.pause{background:var(--color-beige-sand);color:var(--color-brown-dark);border:1px solid var(--color-brown-light)}.action-button.pause:hover{background:var(--color-beige-warm)}.action-button.resume{background:var(--color-forest-dark);color:#fff;box-shadow:0 4px 12px #2c5f2d4d}.action-button.resume:hover{background:var(--color-forest-medium)}.action-button.leave{background:transparent;border:1px solid var(--color-brown-light);color:var(--color-text-secondary)}.action-button.leave:hover{border-color:var(--color-error);color:var(--color-error)}.back-button{background:none;border:none;color:var(--color-info);font-size:1rem;cursor:pointer;padding:8px 0;margin-bottom:10px}.back-button:hover{color:var(--color-primary)}@media (max-width: 600px){.tournament-lobby{padding:12px;padding-bottom:calc(110px + env(safe-area-inset-bottom,0px))}.lobby-header-new{flex-wrap:wrap;gap:12px}.timer-container{width:100%;flex-direction:row;justify-content:center;gap:8px;order:-1}.timer-label{margin-right:4px}.position-stats{flex-wrap:wrap;gap:12px}.position-stat.main{padding-right:12px}.lobby-tab{padding:8px 12px;font-size:.85rem}.participants-grid{grid-template-columns:1fr}.bottom-action-bar{flex-direction:column;gap:8px}.action-button{padding:12px 16px}.standings-table .buchholz,.standings-table .sb,.standings-table .status-col{display:none}.game-entry{flex-direction:column;align-items:flex-start;gap:6px}.game-meta{width:100%;justify-content:flex-start}}@media (prefers-reduced-motion: reduce){.my-position-bar.highlighted,.dot{animation-duration:.01ms!important;animation-iteration-count:1!important}}.game-end-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f5f0e6f2;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:game-end-fadeIn .3s ease-out;padding:16px}@keyframes game-end-fadeIn{0%{opacity:0}to{opacity:1}}.game-end-card{width:360px;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:16px;animation:game-end-slideUp .4s cubic-bezier(.34,1.56,.64,1)}@keyframes game-end-slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.game-end-result{background:var(--color-surface);border-radius:16px;padding:24px;text-align:center;border:1px solid var(--color-brown-light);box-shadow:0 4px 16px #0000001a}.game-end-result.win{border-left:4px solid #27AE60}.game-end-result.loss{border-left:4px solid #E74C3C}.game-end-result.draw{border-left:4px solid #636E72}.game-end-result-icon{font-size:2rem;margin-bottom:4px}.game-end-result-text{font-size:1.4rem;font-weight:700;margin:0 0 8px;font-family:Georgia,serif}.game-end-result.win .game-end-result-text{color:#27ae60}.game-end-result.loss .game-end-result-text{color:#c0392b}.game-end-result.draw .game-end-result-text{color:#636e72}.game-end-opponent{font-size:.9rem;color:var(--color-text-secondary);margin:0}@media (max-width: 480px){.game-end-card{width:calc(100vw - 32px)}.game-end-result{padding:20px}}@media (prefers-reduced-motion: reduce){.game-end-overlay,.game-end-card{animation-duration:.01ms!important;animation-iteration-count:1!important}}.tournament-game{display:flex;flex-direction:column;align-items:center;padding:20px;max-width:800px;margin:0 auto}.tournament-game-header{width:100%;max-width:500px;margin-bottom:16px}.tournament-info-bar{display:flex;justify-content:space-between;align-items:center;background:var(--color-surface);padding:8px 12px;border-radius:8px;margin-bottom:12px}.tournament-name{color:var(--color-text);font-weight:500}.my-score{color:var(--color-warning);font-weight:600}.streak{margin-left:4px}.players-bar{display:flex;justify-content:center;align-items:center;gap:16px;margin-bottom:12px}.player{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-surface);border-radius:8px}.player.you{background:var(--color-success)}.color-badge{width:12px;height:12px;border-radius:50%}.color-badge.white{background:var(--color-beige-cream)}.color-badge.black{background:var(--color-brown-dark);border:2px solid var(--color-beige-cream)}.player .name{color:var(--color-text);font-weight:500}.player .rating{color:var(--color-text-secondary);font-size:.85rem}.vs{color:var(--color-text-secondary);font-size:.9rem}.turn-indicator{text-align:center;padding:12px;background:var(--color-surface);border-radius:8px}.turn-text{font-size:1.2rem;color:var(--color-text)}.turn-text.win{color:var(--color-success)}.turn-text.draw{color:var(--color-warning)}.turn-text.lose{color:var(--color-error)}.points-earned{margin-left:12px;padding:4px 8px;background:var(--color-warning);color:var(--color-neutral-900);border-radius:4px;font-weight:600;font-size:1rem}.game-area{width:100%;display:flex;flex-direction:row;gap:16px;align-items:center;justify-content:center}@media (max-width: 768px){.game-area{flex-direction:column}}.tournament-game-actions{display:flex;gap:16px;align-items:center;margin-top:16px;min-height:50px}.resign-button{padding:12px 20px;background:var(--color-surface);color:var(--color-text-secondary);border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .2s}.resign-button:hover{background:var(--color-error);color:#fff}.game-over-notice{color:var(--color-text-secondary);font-size:1rem;animation:fade-pulse 1s infinite}@keyframes fade-pulse{0%,to{opacity:1}50%{opacity:.5}}.tge-points-container{text-align:center;margin-bottom:12px}.tge-points-big{font-size:3rem;font-weight:800;display:inline-block;animation:tge-points-pop .4s cubic-bezier(.34,1.56,.64,1) .2s both}@keyframes tge-points-pop{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.tge-points-big.win{color:var(--color-success)}.tge-points-big.draw{color:var(--color-warning)}.tge-points-big.lose{color:var(--color-text-muted)}.tge-streak-bonus{font-size:1rem;color:var(--color-warning);margin-bottom:8px;text-align:center}.tge-rank{font-size:.9rem;color:var(--color-text-secondary);margin-bottom:8px;text-align:center}.tge-rating-change{display:flex;align-items:center;justify-content:center;gap:6px;font-size:.95rem;animation:tge-fade-in .4s ease-out .3s both}@keyframes tge-fade-in{0%{opacity:0}to{opacity:1}}.tge-rating-old{color:var(--color-text-secondary)}.tge-rating-arrow{color:var(--color-text-muted)}.tge-rating-new{color:var(--color-text);font-weight:600}.tge-rating-delta{font-weight:700}.tge-rating-delta.positive{color:var(--color-success)}.tge-rating-delta.negative{color:var(--color-error)}.tge-countdown{font-size:.85rem;color:var(--color-text-muted);text-align:center}.tge-continue-btn{width:100%;padding:14px 24px;background:var(--color-forest-dark);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s;min-height:48px}.tge-continue-btn:hover{background:var(--color-forest-medium)}@media (max-width: 600px){.tournament-game{padding:15px}.players-bar{flex-direction:column;gap:8px}.vs{display:none}.tournament-game-actions{flex-direction:column;gap:12px}.resign-button{width:100%;min-height:44px}}@media (prefers-reduced-motion: reduce){.game-over-notice,.tge-points-big,.tge-rating-change{animation-duration:.01ms!important;animation-iteration-count:1!important}}.arena-boost-btn{display:flex;align-items:center;gap:6px;padding:10px 18px;background:#f39c1226;border:2px solid #F39C12;border-radius:12px;color:#f39c12;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;min-height:44px;min-width:44px;animation:arena-boost-pulse 2s ease-in-out infinite}.arena-boost-btn:hover:not(:disabled){background:#f39c124d;transform:scale(1.05)}.arena-boost-btn:active:not(:disabled){transform:scale(.95)}.arena-boost-btn.activated{background:#f39c12;color:#fff;border-color:#f39c12;cursor:default;animation:arena-boost-activate .4s ease-out}.arena-boost-btn-icon{font-size:1.2rem}.arena-boost-btn-label{font-size:.9rem}@keyframes arena-boost-pulse{0%,to{box-shadow:0 0 #f39c1266}50%{box-shadow:0 0 0 6px #f39c1200}}@keyframes arena-boost-activate{0%{transform:scale(1)}30%{transform:scale(1.15)}to{transform:scale(1)}}@media (prefers-reduced-motion: reduce){.arena-boost-btn,.arena-boost-btn.activated{animation-duration:.01ms!important;animation-iteration-count:1!important}}.arena-game-end-points{background:var(--color-surface);border-radius:12px;padding:16px;border:1px solid var(--color-brown-light)}.arena-game-end-points-title{font-size:.75rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px}.arena-game-end-points-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:.9rem;color:var(--color-text)}.arena-game-end-points-row.total{border-top:1px solid var(--color-brown-light);margin-top:8px;padding-top:8px;font-weight:700;font-size:1rem}.arena-game-end-points-value{font-weight:600;font-variant-numeric:tabular-nums}.arena-game-end-points-value.positive{color:#27ae60}.arena-game-end-points-value.streak{color:#e74c3c}.arena-game-end-points-value.boost{color:#f39c12}.arena-game-end-stats{background:var(--color-surface);border-radius:12px;padding:16px;border:1px solid var(--color-brown-light);display:grid;grid-template-columns:repeat(3,1fr);gap:12px;text-align:center}.arena-game-end-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.arena-game-end-stat-value{font-size:1.2rem;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums}.arena-game-end-stat-label{font-size:.7rem;color:var(--color-text-secondary);text-transform:uppercase}.arena-game-end-rank-delta{font-size:.85rem;font-weight:600;margin-left:2px}.arena-game-end-rank-delta.up{color:#27ae60}.arena-game-end-rank-delta.down{color:#e74c3c}.arena-game-end-countdown{text-align:center;padding:8px}.arena-game-end-countdown-text{font-size:.85rem;color:var(--color-text-secondary);margin:0}.arena-game-end-countdown-number{font-weight:700;color:var(--color-forest-dark);font-variant-numeric:tabular-nums}.arena-game-end-actions{display:flex;gap:12px}.arena-game-end-btn{flex:1;padding:14px 16px;border-radius:12px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;min-height:44px;border:none}.arena-game-end-btn:active{transform:scale(.97)}.arena-game-end-btn.pause{background:var(--color-beige-sand);color:var(--color-brown-dark);border:1px solid var(--color-brown-light)}.arena-game-end-btn.pause:hover{background:var(--color-beige-warm)}.arena-game-end-btn.play{background:var(--color-forest-dark);color:#fff}.arena-game-end-btn.play:hover{background:var(--color-forest-medium)}.arena-game-end-animate{animation:arena-endCountFade .5s ease-out}@keyframes arena-endCountFade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.arena-game-end-rank-slide-up{animation:arena-endRankUp .6s ease-out}.arena-game-end-rank-slide-down{animation:arena-endRankDown .6s ease-out}@keyframes arena-endRankUp{0%{transform:translateY(8px);opacity:.5}to{transform:translateY(0);opacity:1}}@keyframes arena-endRankDown{0%{transform:translateY(-8px);opacity:.5}to{transform:translateY(0);opacity:1}}@media (max-width: 480px){.arena-game-end-btn{min-height:48px}}@media (prefers-reduced-motion: reduce){.arena-game-end-animate,.arena-game-end-rank-slide-up,.arena-game-end-rank-slide-down{animation-duration:.01ms!important;animation-iteration-count:1!important}}.arena-game{display:flex;flex-direction:column;align-items:center;padding:8px;max-width:800px;margin:0 auto;min-height:100dvh}.arena-game-bar{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:500px;padding:6px 12px;background:var(--color-surface);border-radius:8px;margin-bottom:8px;gap:12px}.arena-game-bar.time-warning{background:#e74c3c26}.arena-game-bar.time-warning .arena-game-bar-time{color:var(--color-error);animation:arena-time-pulse 1s infinite}@keyframes arena-time-pulse{0%,to{opacity:1}50%{opacity:.5}}.arena-game-bar-timer{display:flex;align-items:center;gap:4px}.arena-game-bar-icon{font-size:.85rem}.arena-game-bar-time{font-size:.9rem;font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}.arena-game-bar-position{display:flex;align-items:center;gap:8px}.arena-game-bar-rank{font-weight:700;color:var(--color-warning);font-size:.95rem}.arena-game-bar-points{font-size:.85rem;color:var(--color-text-secondary)}.arena-game-bar-streak{font-size:1rem}.arena-game-bar-delta{font-size:.75rem;font-weight:600;margin-left:2px}.arena-game-bar-delta.arena-rank-up{color:var(--color-success)}.arena-game-bar-delta.arena-rank-down{color:var(--color-error)}.arena-game-players{display:flex;justify-content:center;align-items:center;gap:12px;width:100%;max-width:500px;margin-bottom:6px}.arena-game-player{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--color-surface);border-radius:8px;font-size:.9rem}.arena-game-player.self{background:var(--color-success)}.arena-game-player-color{width:10px;height:10px;border-radius:50%;flex-shrink:0}.arena-game-player-color.white{background:var(--color-beige-cream)}.arena-game-player-color.black{background:var(--color-brown-dark);border:2px solid var(--color-beige-cream)}.arena-game-player-name{color:var(--color-text);font-weight:500}.arena-game-player-rating,.arena-game-vs{color:var(--color-text-secondary);font-size:.8rem}.arena-game-turn{text-align:center;padding:8px;width:100%;max-width:500px;background:var(--color-surface);border-radius:8px;margin-bottom:8px}.arena-game-turn-text{font-size:1.1rem;font-weight:500;color:var(--color-text)}.arena-game-turn-text.win{color:var(--color-success)}.arena-game-turn-text.draw{color:var(--color-warning)}.arena-game-turn-text.loss{color:var(--color-error)}.arena-game-board-area{width:100%;display:flex;flex-direction:row;gap:12px;align-items:center;justify-content:center;flex:1}.arena-game-actions{display:flex;gap:12px;align-items:center;justify-content:center;width:100%;max-width:500px;margin-top:8px;min-height:48px;padding-bottom:env(safe-area-inset-bottom,8px)}.arena-game-resign-btn{padding:12px 24px;background:var(--color-surface);color:var(--color-text-secondary);border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .2s;min-height:44px;min-width:44px}.arena-game-resign-btn:hover{background:var(--color-error);color:#fff}@media (max-width: 768px){.arena-game-board-area{flex-direction:column}.arena-game-players{flex-direction:column;gap:4px}.arena-game-vs{display:none}.arena-game-resign-btn{width:100%}}@media (max-width: 400px){.arena-game{padding:4px}.arena-game-bar{padding:4px 8px;font-size:.85rem}}@media (prefers-reduced-motion: reduce){.arena-game-bar.time-warning .arena-game-bar-time{animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--arena-boost-color: #F39C12;--arena-boost-bg: rgba(243, 156, 18, .15);--arena-boost-border: rgba(243, 156, 18, .25);--arena-streak-color: #E74C3C;--arena-win-color: #27AE60;--arena-loss-color: #E74C3C;--arena-draw-color: #636E72;--arena-variant-international: #2C5F2D;--arena-variant-italian: #E74C3C;--arena-variant-english: #2563EB;--arena-variant-brazilian: #008037;--arena-medal-gold: #FFD700;--arena-medal-silver: #C0C0C0;--arena-medal-bronze: #CD7F32;--arena-max-width: 900px;--arena-detail-max-width: 700px;--arena-card-radius: 16px;--arena-overlay-z: 100}@keyframes arena-rank-slide-up{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes arena-rank-slide-down{0%{transform:translateY(-12px);opacity:0}to{transform:translateY(0);opacity:1}}.arena-animate-rank-up{animation:arena-rank-slide-up .5s ease-out}.arena-animate-rank-down{animation:arena-rank-slide-down .5s ease-out}@keyframes arena-count-up{0%{opacity:0;transform:translateY(8px) scale(.8)}60%{opacity:1;transform:translateY(-2px) scale(1.05)}to{opacity:1;transform:translateY(0) scale(1)}}.arena-animate-count{animation:arena-count-up .5s ease-out}.arena-animate-count-delay-1{animation-delay:.1s;animation-fill-mode:both}.arena-animate-count-delay-2{animation-delay:.2s;animation-fill-mode:both}.arena-animate-count-delay-3{animation-delay:.3s;animation-fill-mode:both}.arena-animate-count-delay-4{animation-delay:.4s;animation-fill-mode:both}@keyframes arena-streak-grow{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.3)}to{transform:scale(1);opacity:1}}@keyframes arena-streak-shrink{0%{transform:scale(1);opacity:1}to{transform:scale(0);opacity:0}}@keyframes arena-streak-flicker{0%,to{transform:scale(1) rotate(0)}25%{transform:scale(1.05) rotate(-3deg)}50%{transform:scale(.95) rotate(2deg)}75%{transform:scale(1.08) rotate(-1deg)}}.arena-animate-streak-grow{animation:arena-streak-grow .3s ease-out}.arena-animate-streak-shrink{animation:arena-streak-shrink .3s ease-in forwards}.arena-animate-streak-active{display:inline-block;animation:arena-streak-flicker 1.5s ease-in-out infinite}@keyframes arena-match-found-pulse{0%{transform:scale(.9);opacity:0;box-shadow:0 0 #2c5f2d66}50%{transform:scale(1.02);box-shadow:0 0 0 15px #2c5f2d00}to{transform:scale(1);opacity:1;box-shadow:0 16px 48px #0000004d}}.arena-animate-match-found{animation:arena-match-found-pulse .4s cubic-bezier(.34,1.56,.64,1)}@keyframes arena-podium-enter{0%{transform:translateY(40px) scale(.8);opacity:0}60%{transform:translateY(-5px) scale(1.02)}to{transform:translateY(0) scale(1);opacity:1}}.arena-animate-podium-1st{animation:arena-podium-enter .7s cubic-bezier(.34,1.56,.64,1) .6s both}.arena-animate-podium-2nd{animation:arena-podium-enter .6s cubic-bezier(.34,1.56,.64,1) .8s both}.arena-animate-podium-3rd{animation:arena-podium-enter .6s cubic-bezier(.34,1.56,.64,1) 1s both}@keyframes arena-live-pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes arena-fade-in{0%{opacity:0}to{opacity:1}}@keyframes arena-slide-up{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.arena-card[data-variant=international]{border-left:4px solid var(--arena-variant-international)}.arena-card[data-variant=italian]{border-left:4px solid var(--arena-variant-italian)}.arena-card[data-variant=english]{border-left:4px solid var(--arena-variant-english)}.arena-card[data-variant=brazilian]{border-left:4px solid var(--arena-variant-brazilian)}.arena-tabular-nums{font-variant-numeric:tabular-nums}@media (pointer: coarse){.arena-action-button,.arena-tab,.arena-detail-tab,.arena-games-filter,.arena-searching-pause-btn,.arena-match-start-btn,.arena-game-end-btn,.arena-game-resign-btn,.arena-boost-btn{min-height:44px}}@supports (padding-bottom: env(safe-area-inset-bottom)){.arena-bottom-action-bar{padding-bottom:max(16px,env(safe-area-inset-bottom))}.arena-game-actions{padding-bottom:env(safe-area-inset-bottom,8px)}}@media (prefers-reduced-motion: reduce){.arena-animate-rank-up,.arena-animate-rank-down,.arena-animate-count,.arena-animate-streak-grow,.arena-animate-streak-shrink,.arena-animate-streak-active,.arena-animate-match-found,.arena-animate-podium-1st,.arena-animate-podium-2nd,.arena-animate-podium-3rd,.arena-boost-btn,.arena-match-countdown-number,.arena-podium-entry,.arena-final-trophy,.arena-final-rank-value,.arena-final-hero{animation-duration:.01ms!important;animation-iteration-count:1!important}}.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-width);background-color:var(--sidebar-bg);display:flex;flex-direction:column;z-index:100;box-shadow:var(--shadow-lg)}.sidebar-nav{flex:1;display:flex;flex-direction:column;padding:0}.sidebar-nav-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-md) var(--spacing-sm);background:none;border:none;color:var(--sidebar-text);cursor:pointer;transition:background-color .2s;gap:var(--spacing-xs);min-height:70px}.sidebar-nav-item:hover:not(.disabled){background-color:var(--sidebar-hover)}.sidebar-nav-item.active{background-color:var(--sidebar-active);border-left:3px solid var(--color-forest-light)}.sidebar-nav-item.disabled{opacity:.5;cursor:not-allowed}.sidebar-nav-icon{font-size:1.5rem}.sidebar-nav-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.5px;text-align:center}.sidebar-lock{position:absolute;top:var(--spacing-xs);right:var(--spacing-xs);font-size:.6rem}.sidebar-footer{padding:var(--spacing-md);border-top:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:var(--spacing-sm)}.sidebar-login-nav{background:var(--color-forest)!important;color:#fff!important;margin:var(--spacing-xs) var(--spacing-xs) 0;border-radius:var(--radius-sm)}.sidebar-login-nav:hover{background:var(--color-forest-light)!important}.sidebar-logout-nav{margin:var(--spacing-xs) var(--spacing-xs) 0;border-radius:var(--radius-sm);opacity:.7}.sidebar-logout-nav:hover{background:#e74c3c4d!important;opacity:1}.sidebar-logout-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-sm);background:none;border:none;color:var(--sidebar-text);cursor:pointer;transition:background-color .2s;gap:var(--spacing-xs);border-radius:var(--radius-sm)}.sidebar-logout-btn:hover{background-color:#e74c3c4d}.sidebar-logout-btn .sidebar-nav-icon{font-size:1.2rem}.sidebar-logout-btn .sidebar-nav-label{font-size:.6rem;text-transform:uppercase}.sidebar-language{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.sidebar-lang-btn{background:none;border:1px solid transparent;border-radius:var(--radius-sm);padding:4px;font-size:.9rem;cursor:pointer;transition:all .2s;opacity:.7}.sidebar-lang-btn:hover{opacity:1;background-color:var(--sidebar-hover)}.sidebar-lang-btn.active{opacity:1;border-color:#ffffff4d;background-color:var(--sidebar-active)}@media (max-width: 768px){.sidebar{top:auto;bottom:0;left:0;right:0;width:100%;height:var(--bottom-nav-height, 64px);flex-direction:row;border-top:1px solid rgba(255,255,255,.1);box-shadow:0 -2px 10px #0003}.sidebar-nav{flex:1;flex-direction:row;justify-content:space-around;align-items:center;padding:0}.sidebar-nav-item{flex:1;min-height:48px;padding:8px 4px;border-left:none}.sidebar-nav-item.active{border-left:none;border-top:3px solid var(--color-forest-light);background-color:var(--sidebar-active)}.sidebar-nav-icon{font-size:1.3rem}.sidebar-nav-label{font-size:.7rem}.sidebar-lock{top:2px;right:2px;font-size:.5rem}.sidebar-login-nav,.sidebar-logout-nav{margin:0;border-radius:0}.sidebar-footer{display:none}}.layout{min-height:100vh;background-color:var(--color-bg)}.layout.with-sidebar{padding-left:var(--sidebar-width)}.layout-content{min-height:100vh;display:flex;flex-direction:column}@media (max-width: 768px){.layout.with-sidebar{padding-left:0;padding-bottom:var(--bottom-nav-height, 64px)}}.cookie-banner{position:fixed;bottom:0;left:var(--sidebar-width);right:0;background-color:var(--color-surface);border-top:2px solid var(--color-primary);box-shadow:0 -4px 20px #00000026;z-index:9999;padding:var(--spacing-md) var(--spacing-lg)}.cookie-banner-content{max-width:900px;margin:0 auto;display:flex;align-items:center;gap:var(--spacing-lg)}.cookie-banner-text{flex:1;margin:0;font-size:.9rem;color:var(--color-text);line-height:1.4}.cookie-banner-actions{display:flex;gap:var(--spacing-sm);flex-shrink:0}.cookie-btn{padding:8px 16px;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;border:none;white-space:nowrap}.cookie-btn-accept{background-color:var(--color-primary);color:#fff}.cookie-btn-accept:hover{background-color:var(--color-primary-hover)}.cookie-btn-reject{background-color:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.cookie-btn-reject:hover{background-color:var(--color-bg)}@media (max-width: 600px){.cookie-banner{left:0}.cookie-banner-content{flex-direction:column;text-align:center}.cookie-banner-actions{width:100%;justify-content:center}.cookie-btn{min-height:44px;padding:10px 20px}}.animated-showcase-board{position:relative;display:flex;flex-direction:column;align-items:center}.showcase-board-svg{width:80vw;max-width:700px;min-width:280px;height:auto;aspect-ratio:1;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);overflow:hidden;border:3px solid var(--color-brown-dark)}.showcase-square-light{fill:var(--color-square-light)}.showcase-square-dark{fill:var(--color-square-dark)}.showcase-piece{transition:transform .4s ease-out}.showcase-piece.animating circle,.showcase-piece.animating path,.showcase-piece.animating rect{transition:all .4s ease-out}.capture-highlight{fill:#e74c3c4d;stroke:var(--color-error);stroke-width:3;animation:pulseHighlight .3s ease-out}.capture-highlight.fade-out{animation:fadeOut .4s ease-out forwards}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes pulseHighlight{0%{opacity:0;transform:scale(.5)}50%{opacity:1;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.captured-piece{animation:captureEffect .5s ease-out forwards}@keyframes captureEffect{0%{opacity:1;transform:scale(1)}30%{opacity:1;transform:scale(1.3)}to{opacity:0;transform:scale(0)}}.capture-flash{animation:flashSquare .4s ease-out}@keyframes flashSquare{0%{fill:var(--color-square-dark)}50%{fill:var(--color-error)}to{fill:var(--color-square-dark)}}.showcase-variant-label{margin-top:var(--spacing-md);font-size:1rem;font-weight:500;color:var(--color-text-secondary);text-align:center}@media (max-width: 900px){.showcase-board-svg{max-width:500px}}@media (max-width: 768px){.showcase-board-svg{max-width:400px}.showcase-variant-label{font-size:.9rem}}@media (max-width: 480px){.showcase-board-svg{max-width:320px}}@media (prefers-reduced-motion: reduce){.capture-highlight,.capture-highlight.fade-out,.captured-piece,.capture-flash{animation-duration:.01ms!important;animation-iteration-count:1!important}}.features-section{position:relative;z-index:1;padding:80px 40px}.features-container{max-width:1000px;margin:0 auto;text-align:center}.section-label{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--color-forest-medium);margin-bottom:12px}.section-title{font-family:Georgia,Times New Roman,serif;font-size:2.2rem;font-weight:700;color:var(--color-forest-dark);margin:0 0 12px;line-height:1.2}.section-subtitle{font-size:1.05rem;color:var(--color-text-secondary);max-width:560px;margin:0 auto 48px;line-height:1.5}.features-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.feature-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;padding:32px 24px;text-align:center;transition:transform .2s ease,box-shadow .2s ease}.feature-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000014}.feature-icon-box{width:56px;height:56px;border-radius:14px;background:#2c5f2d14;display:flex;align-items:center;justify-content:center;font-size:1.6rem;margin:0 auto 16px}.feature-title{font-size:1.05rem;font-weight:700;color:var(--color-text);margin:0 0 8px}.feature-desc{font-size:.88rem;color:var(--color-text-secondary);line-height:1.5;margin:0}@media (max-width: 900px){.features-section{padding:60px 24px}.features-grid{grid-template-columns:repeat(2,1fr)}.section-title{font-size:1.8rem}}@media (max-width: 480px){.features-section{padding:48px 16px}.features-grid{grid-template-columns:1fr;gap:16px}.section-title{font-size:1.5rem}.feature-card{padding:24px 20px}}.how-section{position:relative;z-index:1;padding:80px 40px;background:var(--color-surface)}.how-container{max-width:900px;margin:0 auto;text-align:center}.how-steps{display:flex;align-items:flex-start;justify-content:center;gap:0;margin-top:48px}.how-step{position:relative;flex:1;max-width:260px;padding:0 20px;display:flex;flex-direction:column;align-items:center;text-align:center}.step-circle{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--color-forest-dark),var(--color-forest-medium));color:#fff;font-size:1.2rem;font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:20px;flex-shrink:0;position:relative;z-index:2}.step-connector{position:absolute;top:24px;left:calc(50% + 30px);width:calc(100% - 20px);height:2px;background:var(--color-forest-light);z-index:1}.step-title{font-size:1.05rem;font-weight:700;color:var(--color-text);margin:0 0 8px}.step-desc{font-size:.88rem;color:var(--color-text-secondary);line-height:1.5;margin:0}@media (max-width: 768px){.how-section{padding:60px 24px}.how-steps{flex-direction:column;gap:32px;align-items:center}.how-step{max-width:400px}.step-connector{display:none}}@media (max-width: 480px){.how-section{padding:48px 16px}}.variants-section{position:relative;z-index:1;padding:80px 40px}.variants-container{max-width:1200px;margin:0 auto;text-align:center}.variants-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;margin-top:48px}.variant-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;overflow:hidden;text-align:left;transition:transform .2s ease,box-shadow .2s ease}.variant-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000014}.variant-preview{display:flex;align-items:center;justify-content:center;padding:28px;border-bottom:1px solid var(--color-border)}.variant-preview-intl{background:linear-gradient(135deg,#2c5f2d0f,#a8d5a226)}.variant-preview-ita{background:linear-gradient(135deg,#c9a84c14,#c9a84c2e)}.variant-preview-eng{background:linear-gradient(135deg,#2563a30f,#60a5e626)}.variant-preview-bra{background:linear-gradient(135deg,#00803714,#ffcc292e)}.mini-board{display:grid;border-radius:6px;overflow:hidden;box-shadow:0 2px 8px #0000001f}.mini-board-10{grid-template-columns:repeat(10,20px);grid-template-rows:repeat(10,20px)}.mini-board-8{grid-template-columns:repeat(8,24px);grid-template-rows:repeat(8,24px)}.mini-cell{display:flex;align-items:center;justify-content:center}.mini-cell.light{background:#f0d9b5}.mini-cell.dark{background:#b58863}.mini-piece{width:60%;height:60%;border-radius:50%}.mini-piece.white{background:radial-gradient(circle at 35% 35%,#fff,#ddd);box-shadow:0 1px 2px #0000004d}.mini-piece.black{background:radial-gradient(circle at 35% 35%,#555,#222);box-shadow:0 1px 2px #0006}.variant-info{padding:24px}.variant-badge{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:4px 10px;border-radius:6px;margin-bottom:10px}.variant-badge-intl{background:#2c5f2d1a;color:var(--color-forest-dark)}.variant-badge-ita{background:#8b69141a;color:#8b6914}.variant-badge-eng{background:#2563a31a;color:#2563a3}.variant-badge-bra{background:#0080371a;color:#008037}.variant-name{font-size:1.2rem;font-weight:700;color:var(--color-text);margin:0 0 8px}.variant-desc{font-size:.88rem;color:var(--color-text-secondary);line-height:1.5;margin:0 0 16px}.variant-specs{display:flex;flex-wrap:wrap;gap:8px}.spec-pill{font-size:.75rem;font-weight:600;color:var(--color-text-secondary);background:var(--color-bg);padding:5px 10px;border-radius:20px;white-space:nowrap}@media (max-width: 960px){.variants-grid{grid-template-columns:1fr}}@media (max-width: 768px){.variants-section{padding:60px 24px}}@media (max-width: 480px){.variants-section{padding:48px 16px}.mini-board-10{grid-template-columns:repeat(10,16px);grid-template-rows:repeat(10,16px)}.mini-board-8{grid-template-columns:repeat(8,20px);grid-template-rows:repeat(8,20px)}.variant-info{padding:20px}}.cta-banner{position:relative;z-index:1;padding:80px 40px;background:linear-gradient(135deg,var(--color-forest-dark) 0%,var(--color-forest-medium) 60%,#4CAF50 100%);overflow:hidden}.cta-watermark{position:absolute;top:50%;right:10%;transform:translateY(-50%);font-size:12rem;color:#fff;opacity:.06;pointer-events:none;line-height:1}.cta-content{position:relative;max-width:600px;margin:0 auto;text-align:center}.cta-title{font-family:Georgia,Times New Roman,serif;font-size:2.4rem;font-weight:700;color:#fff;margin:0 0 12px}.cta-subtitle{font-size:1.1rem;color:#ffffffd9;margin:0 0 32px;line-height:1.5}.cta-button{padding:16px 40px;background:#fff;border:none;border-radius:12px;color:var(--color-forest-dark);font-size:1.15rem;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 16px #00000026}.cta-button:hover{transform:translateY(-2px);box-shadow:0 6px 24px #0003}@media (max-width: 768px){.cta-banner{padding:60px 24px}.cta-title{font-size:1.8rem}.cta-watermark{font-size:8rem}}@media (max-width: 480px){.cta-banner{padding:48px 16px}.cta-title{font-size:1.5rem}.cta-subtitle{font-size:1rem}.cta-button{padding:14px 32px;font-size:1rem}}.daily-puzzle-card .dash-panel-header h3{display:flex;align-items:center;gap:var(--spacing-sm)}.daily-puzzle-solve-btn{padding:3px 10px;border-radius:4px;border:none;background:var(--color-primary, #22c55e);color:#fff;font-size:.7rem;font-weight:600;cursor:pointer;transition:opacity .15s;line-height:1;letter-spacing:.02em;text-transform:uppercase}.daily-puzzle-solve-btn:hover{opacity:.9}.daily-puzzle-solved-badge{font-size:.8rem;font-weight:600;color:var(--color-primary, #22c55e)}.daily-puzzle-body{display:flex;justify-content:center;align-items:center}.daily-puzzle-board{width:180px;height:180px;flex-shrink:0;border:2px solid var(--color-border);border-radius:var(--radius-sm)}.daily-puzzle-board .sq-light{fill:#f0d9b5}.daily-puzzle-board .sq-dark{fill:#b58863}.daily-puzzle-board .piece-white{fill:#f5f5f5;stroke:#2a2a2a;stroke-width:1.5}.daily-puzzle-board .piece-black{fill:#1a1a1a;stroke:#5a5a5a;stroke-width:1.5}.daily-puzzle-board .piece-king-mark{fill:#d4af37;stroke:#8a6d1a;stroke-width:1}.daily-puzzle-info{flex:1;display:flex;flex-direction:column;gap:var(--spacing-xs)}.daily-puzzle-side{font-weight:600;color:var(--color-text-primary);font-size:.95rem}.daily-puzzle-desc{color:var(--color-text-secondary);font-size:.85rem;line-height:1.4}.daily-puzzle-id{margin-top:auto;font-size:.75rem;color:var(--color-text-secondary);opacity:.6}@media (max-width: 600px){.daily-puzzle-body{flex-direction:column;align-items:stretch}.daily-puzzle-board{width:100%;height:auto;max-width:240px;margin:0 auto}}.dashboard{position:relative;max-width:1000px;margin:0 auto;padding:32px 24px 60px}.dash-hero{display:flex;align-items:center;gap:40px;margin-bottom:32px}.dash-hero-content{flex:1;display:flex;flex-direction:column;gap:8px}.dash-welcome{font-size:.9rem;color:var(--color-text-secondary);font-weight:500}.dash-username{font-family:Georgia,Times New Roman,serif;font-size:2.4rem;font-weight:700;color:var(--color-forest-dark);margin:0;line-height:1.1}.dash-cta-row{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}.dash-cta{padding:12px 20px!important;font-size:.95rem!important}.dash-cta.home-cta-primary{animation:none;box-shadow:0 4px 12px #2c5f2d40}.dash-hero-board{flex-shrink:0;max-width:260px}.dash-hero-board .showcase-board-svg{width:100%;max-width:260px}.dash-hero-board .showcase-variant-label{font-size:.75rem}.dash-ratings-header{display:flex;justify-content:flex-end;margin-bottom:12px}.dash-variant-toggle{display:flex;gap:4px;background:var(--color-bg);border-radius:8px;padding:3px}.dash-variant-btn{padding:6px 14px;border:none;border-radius:6px;background:transparent;color:var(--color-text-secondary);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s}.dash-variant-btn.active{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 4px #00000014}.dash-rating-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.dash-rating-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:20px 16px;text-align:center}.dash-rating-header{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:8px}.dash-rating-icon{font-size:1rem}.dash-rating-label{font-size:.8rem;color:var(--color-text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.dash-rating-value{font-size:1.8rem;font-weight:800;color:var(--color-text);line-height:1}.dash-panels{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.dash-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;overflow:hidden}.dash-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border)}.dash-panel-header h3{font-size:.95rem;font-weight:700;color:var(--color-text);margin:0}.dash-link{background:none;border:none;color:var(--color-forest-medium);font-size:.8rem;font-weight:600;cursor:pointer;padding:0;transition:color .15s}.dash-link:hover{color:var(--color-forest-dark)}.dash-panel-body{padding:8px 0}.dash-empty{padding:24px 20px;text-align:center;color:var(--color-text-muted);font-size:.88rem;margin:0}.dash-game-row{display:flex;align-items:center;gap:12px;padding:10px 20px;transition:background .1s}.dash-game-row:hover{background:#00000005}.dash-result-badge{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#fff;flex-shrink:0}.dash-result-win{background:#4caf50}.dash-result-loss{background:#e53935}.dash-result-draw{background:#9e9e9e}.dash-game-info{display:flex;flex-direction:column;gap:2px;min-width:0}.dash-game-opponent{font-size:.88rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-game-meta{font-size:.75rem;color:var(--color-text-muted)}.dash-event-row{display:flex;align-items:center;gap:12px;padding:10px 20px;cursor:pointer;transition:background .1s}.dash-event-row:hover{background:#00000005}.dash-event-icon{font-size:1.2rem;flex-shrink:0}.dash-event-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.dash-event-name{font-size:.88rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-event-meta{font-size:.75rem;color:var(--color-text-muted)}.dash-live-badge{font-size:.65rem;font-weight:700;color:#fff;background:#e53935;padding:3px 8px;border-radius:4px;letter-spacing:.5px;flex-shrink:0}.dash-join-btn{font-size:.75rem;font-weight:600;color:var(--color-forest-medium);padding:4px 12px;border:1px solid var(--color-forest-medium);border-radius:6px;flex-shrink:0}.dash-arena-panel{padding:16px 20px;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.dash-arena-desc{margin:0;color:var(--color-text-secondary);font-size:.85rem;text-align:center}.dash-create-arena-btn{font-size:.85rem!important;padding:8px 20px!important;display:inline-flex!important;align-items:center;gap:6px;width:auto!important}@media (max-width: 900px){.dash-hero{flex-direction:column;text-align:center;gap:24px}.dash-hero-content{align-items:center}.dash-hero-board{order:-1;max-width:220px}.dash-cta-row{justify-content:center}.dash-username{font-size:2rem}}@media (max-width: 768px){.dashboard{padding:24px 16px 48px}.dash-rating-cards{grid-template-columns:repeat(2,1fr)}.dash-panels{grid-template-columns:1fr}}@media (max-width: 480px){.dash-username{font-size:1.6rem}.dash-cta-row{flex-direction:column;align-items:stretch}.dash-rating-cards{grid-template-columns:repeat(2,1fr);gap:10px}.dash-rating-value{font-size:1.4rem}.dash-rating-card{padding:14px 10px}}@media (max-width: 360px){.dashboard{padding:16px 12px 40px}.dash-hero-board{max-width:180px}}.online-players-list{padding:0}.players-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-sm);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border)}.players-header h3{margin:0;font-size:.95rem;color:var(--color-text)}.player-count{background-color:var(--color-primary);color:#fff;padding:2px 10px;border-radius:var(--radius-lg);font-size:.8rem;font-weight:600}.players-list{list-style:none;padding:0;margin:0;max-height:180px;overflow-y:auto}.player-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-sm);border-bottom:1px solid var(--color-neutral-200);cursor:pointer;border-radius:var(--radius-sm);transition:background-color .15s}.player-item:last-child{border-bottom:none}.player-item:hover{background-color:var(--color-beige-cream)}.player-item.selected{background-color:#2c5f2d14;border-color:var(--color-primary)}.player-info{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.player-name{font-weight:600;color:var(--color-text);font-size:.9rem}.player-rating{font-size:.8rem;padding:2px 8px;border-radius:var(--radius-sm);font-weight:500}.player-rating.novice{background-color:#9696961f;color:var(--color-neutral-600)}.player-rating.intermediate{background-color:#4caf501f;color:var(--color-forest-medium)}.player-rating.advanced{background-color:#2196f31f;color:var(--color-info)}.player-rating.expert{background-color:#9c27b01f;color:#9c27b0}.player-rating.master{background-color:#ff98001f;color:var(--color-warning)}.player-rating.grandmaster{background-color:#f443361f;color:var(--color-error)}.player-rating.legend{background-color:#ffd70026;color:#b8960c}.status-badge{font-size:.7rem;padding:2px 8px;border-radius:10px;font-weight:500}.status-badge.available{background-color:#27ae601f;color:var(--color-success)}.status-badge.playing{background-color:#f39c121f;color:var(--color-warning)}.status-badge.away{background-color:#9e9e9e1f;color:var(--color-neutral-600)}.player-busy{font-size:.75rem;color:var(--color-text-secondary);font-style:italic}.player-selected-badge{color:var(--color-primary);font-size:1.1rem;font-weight:700}.login-required,.no-players{text-align:center;color:var(--color-text-secondary);padding:var(--spacing-md);font-size:.9rem}.error-message{color:var(--color-error);background-color:#e74c3c14;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);text-align:center}.spinner{width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;margin:var(--spacing-md) auto}.players-list::-webkit-scrollbar{width:5px}.players-list::-webkit-scrollbar-track{background:var(--color-neutral-200);border-radius:3px}.players-list::-webkit-scrollbar-thumb{background:var(--color-brown-light);border-radius:3px}.players-list::-webkit-scrollbar-thumb:hover{background:var(--color-brown-medium)}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:.01ms!important;animation-iteration-count:1!important}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:10000;padding:var(--spacing-md)}.send-challenge-modal{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);max-width:400px;width:100%;box-shadow:var(--shadow-lg),0 4px 30px #00000026;border:1px solid var(--color-border)}.send-challenge-modal h2{margin:0 0 var(--spacing-lg) 0;font-size:1.3rem;text-align:center;color:var(--color-text)}.challenge-players-section{margin-bottom:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-sm);background-color:var(--color-beige-cream)}.challenge-options{margin-bottom:var(--spacing-lg)}.option-section{margin-bottom:var(--spacing-md)}.option-section label{display:block;margin-bottom:var(--spacing-sm);font-size:.9rem;color:var(--color-text-secondary);font-weight:500}.variant-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm)}.variant-btn{flex:1;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:transparent;color:var(--color-text-secondary);cursor:pointer;font-size:.9rem;transition:all .2s}.variant-btn:hover{background-color:var(--color-beige-cream);border-color:var(--color-brown-medium)}.variant-btn.active{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.time-control-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-xs)}.time-control-btn{padding:var(--spacing-sm);border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:transparent;color:var(--color-text-secondary);cursor:pointer;font-size:.85rem;transition:all .2s}.time-control-btn:hover{background-color:var(--color-beige-cream);border-color:var(--color-brown-medium)}.time-control-btn.active{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.modal-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end}.cancel-btn{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:transparent;color:var(--color-text-secondary);cursor:pointer;font-size:.9rem;transition:all .2s}.cancel-btn:hover:not(:disabled){background-color:var(--color-beige-cream)}.cancel-btn:disabled{opacity:.5;cursor:not-allowed}.send-btn{padding:var(--spacing-sm) var(--spacing-xl);border-radius:var(--radius-md);border:none;background-color:var(--color-primary);color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .2s;min-width:100px;display:flex;align-items:center;justify-content:center}.send-btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.send-btn:disabled{opacity:.7;cursor:not-allowed}@media (max-width: 400px){.time-control-grid{grid-template-columns:repeat(2,1fr)}}@media (prefers-reduced-motion: reduce){.spinner-small{animation-duration:.01ms!important;animation-iteration-count:1!important}}.home-page-new{position:relative;display:flex;flex-direction:column;min-height:100vh;overflow:hidden}.home-bg-pattern{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:0;background-image:linear-gradient(45deg,rgba(139,115,85,.04) 25%,transparent 25%),linear-gradient(-45deg,rgba(139,115,85,.04) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(139,115,85,.04) 75%),linear-gradient(-45deg,transparent 75%,rgba(139,115,85,.04) 75%);background-size:60px 60px;background-position:0 0,0 30px,30px -30px,-30px 0}.home-hero{position:relative;z-index:1;flex:1;display:flex;align-items:center;justify-content:center;padding:40px;gap:60px;min-height:min(calc(100vh - 80px),700px)}.home-hero-content{flex:1;max-width:500px;display:flex;flex-direction:column;gap:20px}.home-hero-title{font-family:Georgia,Times New Roman,serif;font-size:3.2rem;font-weight:700;color:var(--color-forest-dark);line-height:1.1;margin:0}.home-hero-accent{color:var(--color-forest-medium)}.home-hero-tagline{font-size:1.15rem;color:var(--color-text-secondary);line-height:1.5;max-width:420px;margin:0}.home-cta-group{display:flex;flex-direction:column;gap:12px;margin-top:8px;max-width:400px}.home-cta-row{display:flex;gap:12px}.home-hero-board{flex-shrink:0;max-width:480px}.home-hero-board .showcase-board-svg{width:100%;max-width:420px}.home-hero-board .showcase-variant-label{font-size:.85rem;color:var(--color-text-muted)}.home-cta-primary{position:relative;padding:20px 40px;background:linear-gradient(135deg,var(--color-forest-dark) 0%,var(--color-forest-medium) 50%,#4CAF50 100%);border:none;border-radius:16px;color:#fff;font-size:1.4rem;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 6px 24px #2c5f2d59;animation:glow-pulse 2s ease-in-out infinite;overflow:hidden;letter-spacing:.5px}@keyframes glow-pulse{0%,to{box-shadow:0 4px 20px #2c5f2d66,0 0 30px #3d8b4033}50%{box-shadow:0 4px 25px #2c5f2d80,0 0 50px #3d8b4066}}.home-cta-primary:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:shimmer 3s ease-in-out infinite}@keyframes shimmer{0%{left:-100%}50%,to{left:100%}}.home-cta-primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px #2c5f2d73;animation:none}.home-cta-primary:active{transform:translateY(-1px)}.home-cta-secondary{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 20px;background:var(--color-surface);border:2px solid var(--color-forest-dark);border-radius:12px;color:var(--color-forest-dark);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.home-cta-secondary:hover{background:var(--color-forest-dark);color:#fff;transform:translateY(-2px)}.home-cta-tertiary{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 20px;background:var(--color-surface);border:2px solid #c9a84c;border-radius:12px;color:#8b6914;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.home-cta-tertiary:hover{background:#8b6914;color:#fff;transform:translateY(-2px)}.home-cta-icon{font-size:1.2rem}.home-cta-spinner{animation:home-cta-spin 1s linear infinite}@keyframes home-cta-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.home-cta-login-hint{font-size:.875rem;color:#ffffffb3;margin:0}.home-cta-login-link{background:none;border:none;color:gold;font-size:.875rem;cursor:pointer;padding:0;text-decoration:underline;font-weight:600}.home-cta-login-link:hover{color:#fff}.home-hero-stats{display:flex;align-items:center;gap:16px;margin-top:8px}.home-stat{display:flex;align-items:center;gap:6px;color:var(--color-text-secondary);font-size:.9rem}.home-stat-dot{width:8px;height:8px;background:#4caf50;border-radius:50%;animation:pulse-dot 2s infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.home-stat-separator{color:#c9a84c}.home-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.home-modal{position:relative;background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--spacing-xl);max-width:440px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.home-modal-close{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);width:32px;height:32px;background:transparent;border:none;border-radius:50%;color:var(--color-text-secondary);font-size:1.5rem;line-height:1;cursor:pointer;transition:all .2s}.home-modal-close:hover{background:var(--color-bg);color:var(--color-text)}.home-modal-title{font-size:1.5rem;font-weight:600;color:var(--color-text);text-align:center;margin-bottom:var(--spacing-xl)}.home-option-group{margin-bottom:var(--spacing-lg)}.home-option-label{display:block;font-size:.8rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-sm)}.home-option-buttons{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.home-option-buttons.time-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr))}.home-option-btn{flex:1;min-width:70px;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:.9rem;cursor:pointer;transition:border-color .15s,background-color .15s,color .15s}.home-option-btn:hover{border-color:var(--color-primary);background-color:#2c5f2d0d}.home-option-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.home-option-checkbox{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;font-size:.95rem;color:var(--color-text-primary)}.home-option-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer}.home-option-hint{font-size:.8rem;color:var(--color-text-secondary);margin-top:var(--spacing-xs);margin-left:26px}.home-modal:focus{outline:none}.home-modal-start{width:100%;min-height:44px;padding:var(--spacing-md) var(--spacing-xl);margin-top:var(--spacing-lg);background:linear-gradient(135deg,var(--color-forest-dark) 0%,var(--color-forest-medium) 100%);border:none;border-radius:var(--radius-lg);color:#fff;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #2c5f2d4d}.home-modal-start:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #2c5f2d66}.home-modal-start:disabled{opacity:.5;cursor:not-allowed}.home-challenge-section{max-height:400px;overflow-y:auto}.challenge-guest-error{background:#dc354526;color:#dc3545;padding:8px 12px;border-radius:6px;font-size:.85rem;text-align:center;margin-bottom:8px}.home-challenge-section .online-players-list{background:transparent;padding:0;box-shadow:none}.home-footer{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;color:var(--color-text-muted);font-size:.8rem}.home-footer button{background:none;border:none;color:var(--color-text-secondary);font-size:.8rem;cursor:pointer;padding:4px 2px;transition:color .2s}.home-footer button:hover{color:var(--color-text)}.home-footer span{color:var(--color-text-muted);opacity:.5}@media (max-width: 900px){.home-hero{flex-direction:column;padding:30px 20px;gap:30px;min-height:auto}.home-hero-content{align-items:center;text-align:center}.home-hero-title{font-size:2.4rem}.home-hero-tagline{font-size:1rem}.home-hero-board{order:-1;max-width:340px}.home-hero-stats{justify-content:center}}@media (max-width: 480px){.home-hero{padding:20px 16px;gap:24px}.home-hero-title{font-size:2rem}.home-hero-board{max-width:280px}.home-cta-primary{padding:16px 32px;font-size:1.2rem}.home-cta-row{flex-direction:column}}@media (max-width: 360px){.home-hero{padding:16px 12px;gap:16px}.home-hero-title{font-size:1.7rem}.home-hero-tagline{font-size:.9rem}.home-cta-primary{padding:14px 24px;font-size:1.1rem}.home-cta-secondary,.home-cta-tertiary{padding:12px 16px;font-size:.9rem}.home-hero-board{max-width:240px}.home-modal{width:95%;padding:var(--spacing-md);border-radius:var(--radius-lg)}.home-modal-title{font-size:1.25rem;margin-bottom:var(--spacing-md)}.home-option-buttons.time-grid{grid-template-columns:repeat(2,1fr)}.home-option-btn{min-width:unset;padding:var(--spacing-sm);font-size:.85rem}.home-modal-start{min-height:44px;font-size:1rem}}@media (prefers-reduced-motion: reduce){.home-cta-primary,.home-cta-primary:before,.home-stat-dot,.home-modal-overlay,.home-modal,.home-cta-spinner{animation-duration:.01ms!important;animation-iteration-count:1!important}}.challenge-modal{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);max-width:360px;width:100%;box-shadow:var(--shadow-lg),0 4px 30px #00000026}.challenge-modal.incoming{border:2px solid var(--color-primary);animation:pulse-border 2s infinite}@keyframes pulse-border{0%,to{border-color:var(--color-primary);box-shadow:var(--shadow-lg),0 0 20px #2c5f2d26}50%{border-color:var(--color-forest-medium);box-shadow:var(--shadow-lg),0 0 30px #2c5f2d40}}.challenge-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg)}.challenge-header h2{margin:0;font-size:1.2rem;color:var(--color-text)}.timer-badge{background-color:#f39c121f;color:var(--color-warning);padding:4px 12px;border-radius:var(--radius-lg);font-weight:600;font-size:.9rem;font-variant-numeric:tabular-nums;border:1px solid rgba(243,156,18,.2)}.challenger-info{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background-color:var(--color-beige-cream);border-radius:var(--radius-md);border:1px solid var(--color-border)}.challenger-name{font-size:1.3rem;font-weight:600;color:var(--color-text)}.challenger-rating{font-size:.9rem;padding:4px 10px;border-radius:var(--radius-sm);font-weight:500}.challenger-rating.novice{background-color:#9696961f;color:var(--color-neutral-600)}.challenger-rating.intermediate{background-color:#4caf501f;color:var(--color-forest-medium)}.challenger-rating.advanced{background-color:#2196f31f;color:var(--color-info)}.challenger-rating.expert{background-color:#9c27b01f;color:#9c27b0}.challenger-rating.master{background-color:#ff98001f;color:var(--color-warning)}.challenger-rating.grandmaster{background-color:#f443361f;color:var(--color-error)}.challenger-rating.legend{background-color:#ffd70026;color:#b8960c}.challenge-details{margin-bottom:var(--spacing-lg)}.detail-item{display:flex;justify-content:space-between;padding:var(--spacing-xs) 0}.detail-label{color:var(--color-text-secondary);font-size:.9rem}.detail-value{color:var(--color-text);font-weight:500;font-size:.9rem}.challenge-actions{display:flex;gap:var(--spacing-sm)}.decline-btn{flex:1;padding:var(--spacing-md);border-radius:var(--radius-md);border:1px solid rgba(231,76,60,.3);background-color:#e74c3c0f;color:var(--color-error);cursor:pointer;font-size:.95rem;font-weight:600;transition:all .2s}.decline-btn:hover:not(:disabled){background-color:#e74c3c1f}.decline-btn:disabled{opacity:.5;cursor:not-allowed}.accept-btn{flex:1;padding:var(--spacing-md);border-radius:var(--radius-md);border:none;background-color:var(--color-primary);color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;transition:all .2s;display:flex;align-items:center;justify-content:center}.accept-btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.accept-btn:disabled{opacity:.7;cursor:not-allowed}.spinner-small{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.challenge-modal.outgoing{border:2px solid var(--color-warning)}.challenge-modal.outgoing.status-message{border-color:var(--color-border)}.outgoing-spinner-container{display:flex;justify-content:center;margin-bottom:var(--spacing-lg)}.outgoing-spinner-container .spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@media (prefers-reduced-motion: reduce){.challenge-modal.incoming,.spinner-small,.outgoing-spinner-container .spinner{animation-duration:.01ms!important;animation-iteration-count:1!important}}.page-container{padding:var(--spacing-xl);max-width:1200px;margin:0 auto;width:100%}.back-button{background-color:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:.9rem;padding:var(--spacing-sm);margin-bottom:var(--spacing-md);transition:color .2s}.back-button:hover{color:var(--color-text)}.game-fullscreen{display:flex;flex-direction:column;height:100svh;overflow:hidden;background-color:var(--color-bg)}.game-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-surface);border-bottom:1px solid var(--color-border);gap:var(--spacing-md);flex-wrap:wrap}.game-back-btn{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:.9rem;padding:var(--spacing-sm);transition:color .2s}.game-back-btn:hover{color:var(--color-text)}.game-info{display:flex;align-items:center;gap:var(--spacing-lg);flex-wrap:wrap}.game-variant{font-size:.9rem;color:var(--color-text-secondary)}.game-main{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);overflow:auto}.game-footer{display:flex;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-surface);border-top:1px solid var(--color-border)}.turn-indicator{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.95rem;color:var(--color-text)}.turn-dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--color-border)}.turn-dot.white{background-color:var(--color-beige-cream)}.turn-dot.black{background-color:var(--color-brown-dark)}.turn-dot.thinking{animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.1)}}.game-layout{display:flex;align-items:center;gap:var(--spacing-lg)}.action-button{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:.9rem;cursor:pointer;transition:all .2s;min-height:44px;border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text)}.action-button:hover{background-color:var(--color-bg)}.action-button.resign{border-color:var(--color-error);color:var(--color-error)}.action-button.resign:hover{background-color:#e74c3c1a}.room-badge,.player-badge{background-color:var(--color-bg);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.85rem;color:var(--color-text-secondary)}.player-badge span.white{color:var(--color-beige-cream)}.player-badge span.black{color:var(--color-neutral-600)}.result-reason{color:var(--color-text-secondary);font-size:.85rem;margin-left:var(--spacing-sm)}.online-board-container{display:flex;flex-direction:row;gap:var(--spacing-lg);align-items:flex-start;justify-content:center;width:100%}.online-game-sidebar{display:flex;flex-direction:column;gap:var(--spacing-md);min-width:280px}.online-board-wrapper{display:flex;flex-direction:column;gap:var(--spacing-xs);width:900px}.player-info-bar{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;font-size:1rem;width:100%;box-sizing:border-box;min-height:40px}.player-info-bar .player-name{font-weight:600;color:var(--color-text)}.player-info-bar .player-rating{color:var(--color-text-secondary);font-size:.9rem}.player-info-bar.opponent,.player-info-bar.you{border-left:4px solid var(--color-neutral-600);background-color:#636e721a}.player-info-bar.disconnected{border-left-color:var(--color-warning, #f39c12);background-color:#f39c121a}.disconnection-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);margin-left:auto;padding:2px 8px;border-radius:var(--radius-sm);background-color:#f39c1233;color:var(--color-warning, #f39c12);font-size:.8rem;font-weight:500;animation:badge-pulse 2s ease-in-out infinite}@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.7}}@media (max-width: 1000px){.online-board-wrapper{width:100%;max-width:min(calc(100vw - 2rem),calc(100vh - 300px))}}@media (max-width: 900px){.game-layout{flex-direction:column}.online-board-container{flex-direction:column;align-items:center}.online-game-sidebar{width:100%;max-width:480px;min-width:unset}}@media (max-width: 600px){.game-header{padding:var(--spacing-sm)}.game-info{gap:var(--spacing-sm)}.game-main{padding:var(--spacing-md)}.game-footer{flex-wrap:wrap}}@media (prefers-reduced-motion: reduce){.turn-dot.thinking,.disconnection-badge{animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--color-beige-cream: #F5F0E6;--color-beige-warm: #F0D9B5;--color-beige-sand: #E8D5B7;--color-forest-dark: #2C5F2D;--color-forest-medium: #3D8B40;--color-forest-light: #A8D5A2;--color-brown-dark: #5D4037;--color-brown-medium: #B58863;--color-brown-light: #D7C4A7;--color-neutral-900: #2D3436;--color-neutral-600: #636E72;--color-neutral-200: #DFE6E9;--color-success: #27AE60;--color-warning: #F39C12;--color-error: #E74C3C;--color-info: #3498DB;--color-format-arena: #1565C0;--color-format-swiss: #2E7D32;--color-format-elimination: #E65100;--color-text-muted: #9CA3AF;--color-bg: var(--color-beige-cream);--color-surface: #FFFFFF;--color-text: var(--color-neutral-900);--color-text-secondary: var(--color-neutral-600);--color-primary: var(--color-forest-dark);--color-primary-hover: var(--color-forest-medium);--color-border: var(--color-brown-light);--color-square-light: var(--color-beige-warm);--color-square-dark: var(--color-brown-medium);--color-highlight: rgba(39, 174, 96, .4);--color-selection: rgba(243, 156, 18, .5);--sidebar-width: 80px;--sidebar-bg: var(--color-forest-dark);--sidebar-text: #FFFFFF;--sidebar-hover: rgba(255, 255, 255, .1);--sidebar-active: rgba(255, 255, 255, .2);--bottom-nav-height: 64px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;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}body{background-color:var(--color-bg);color:var(--color-text)}#root{height:100%}
