*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#1a1a2e;color:#e0e0e0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}#root,body{min-height:100vh}.lobby{margin:0 auto;max-width:520px;padding:40px 20px}.lobby-title{color:#fff;font-size:2rem;font-weight:700;margin-bottom:4px;text-align:center}.lobby-subtitle{color:#aaa;font-size:.95rem;margin-bottom:32px;text-align:center}.lobby-card{background:#16213e;background:var(--color-bg-primary);border-radius:8px;margin-bottom:16px;padding:20px}.lobby-card-title{color:#ccc;font-size:1rem;font-weight:600;margin-bottom:12px}.lobby-label{color:#b0b0b0;display:block;font-size:.85rem;margin-bottom:6px}.lobby-input{background:#0f1a30;background:var(--color-bg-secondary);border:1px solid #2a2a4a;border:1px solid var(--color-border);border-radius:6px;color:#e0e0e0;font-size:.95rem;margin-bottom:10px;padding:10px 12px;transition:border-color .2s;width:100%}.lobby-input:focus{border-color:#5c6bc0}.lobby-input::placeholder{color:#888}.lobby-error{background:#3e1a1a;border:1px solid #6b2b2b;border-radius:6px;color:#ff8a80;font-size:.9rem;margin-bottom:16px;padding:10px 14px}.lobby-muted{color:#999;font-size:.9rem}.btn{border:none;border-radius:6px;cursor:pointer;display:inline-block;font-size:.95rem;font-weight:500;padding:10px 20px;transition:background-color .15s,opacity .15s}.btn:disabled{cursor:not-allowed;opacity:.4}.btn-primary{background:#5c6bc0;color:#fff;width:100%}.btn-primary:hover:not(:disabled){background:#7986cb}.btn-secondary{background:#2a3a5c;color:#c5cae9}.btn-secondary:hover:not(:disabled){background:#3a4a6c}.btn-danger{background:#5c2a2a;color:#ef9a9a}.btn-danger:hover:not(:disabled){background:#6b3a3a}.btn-small{background:#2a3a5c;border:none;border-radius:4px;color:#c5cae9;cursor:pointer;font-size:.85rem;padding:6px 14px}.btn-small:hover{background:#3a4a6c}.add-bot-btn:focus-visible,.auth-tab:focus-visible,.btn-link:focus-visible,.btn-small:focus-visible,.btn:focus-visible,.fill-bots-btn:focus-visible,.pocket-piece-clickable:focus-visible,.seat-picker-seat.clickable:focus-visible,.user-dropdown-item:focus-visible,.user-menu-button:focus-visible{outline:2px solid #90caf9;outline-offset:2px}.lobby-input:focus-visible{border-color:#5c6bc0;outline:2px solid #5c6bc0;outline-offset:0}.game-list{display:flex;flex-direction:column;gap:8px}.game-list-item{align-items:center;background:#0f1a30;background:var(--color-bg-secondary);border-radius:6px;display:flex;justify-content:space-between;padding:10px 14px}.game-list-info{display:flex;flex-direction:column;gap:2px}.game-list-id{color:#aaa;font-family:SF Mono,Fira Code,monospace;font-size:.9rem}.game-list-players{color:#999;font-size:.8rem}.lobby-user-bar{display:flex;justify-content:center;margin-bottom:16px}.user-menu{align-items:center;display:flex;gap:10px;position:relative}.user-menu-guest{color:#888;font-size:.9rem}.user-menu-button{align-items:center;background:#16213e;background:var(--color-bg-primary);border:1px solid #2a2a4a;border:1px solid var(--color-border);border-radius:20px;color:#e0e0e0;cursor:pointer;display:flex;font-size:.9rem;gap:8px;padding:6px 14px 6px 6px}.user-menu-button:hover{border-color:#5c6bc0}.user-avatar,.user-initials{border-radius:50%;height:28px;width:28px}.user-initials{align-items:center;background:#5c6bc0;color:#fff;display:flex;font-size:.75rem;font-weight:600;justify-content:center}.user-menu-name{font-weight:500}.user-dropdown{background:#16213e;background:var(--color-bg-primary);border:1px solid #2a2a4a;border:1px solid var(--color-border);border-radius:8px;margin-top:4px;min-width:180px;overflow:hidden;position:absolute;right:0;top:100%;z-index:50}.user-dropdown-email{border-bottom:1px solid #2a2a4a;border-bottom:1px solid var(--color-border);color:#888;font-size:.8rem;padding:10px 14px}.user-dropdown-item{background:none;border:none;color:#e0e0e0;cursor:pointer;display:block;font-size:.9rem;padding:10px 14px;text-align:left;width:100%}.user-dropdown-item:hover{background:#1a2a4a}.auth-overlay{align-items:center;background:#0a0a1eeb;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:200}.auth-modal{background:#16213e;background:var(--color-bg-primary);border:1px solid #2a2a4a;border:1px solid var(--color-border);border-radius:12px;max-width:380px;padding:24px;width:90%}.auth-tabs{border-bottom:1px solid #2a2a4a;border-bottom:1px solid var(--color-border);display:flex;gap:0;margin-bottom:16px}.auth-tab{background:none;border:none;border-bottom:2px solid #0000;color:#888;cursor:pointer;flex:1 1;font-size:.9rem;padding:10px;transition:color .15s,border-color .15s}.auth-tab:hover{color:#ccc}.auth-tab.active{border-bottom-color:#5c6bc0;color:#e0e0e0}.auth-form{display:flex;flex-direction:column;gap:10px}.auth-error{background:#3e1a1a;border:1px solid #6b2b2b;border-radius:6px;color:#ff8a80;font-size:.85rem;margin-bottom:12px;padding:8px 12px}.btn-google{background:#fff;border:1px solid #ddd;color:#333;font-weight:500;width:100%}.btn-google:hover:not(:disabled){background:#f5f5f5}.seat-picker{margin-top:4px}.seat-picker-boards{display:flex;gap:12px}.seat-picker-board{display:flex;flex:1 1;flex-direction:column;gap:6px}.seat-picker-board-title{color:#888;font-size:.8rem;letter-spacing:.5px;margin-bottom:2px;text-align:center;text-transform:uppercase}.seat-picker-seat{background:#0f1a30;background:var(--color-bg-secondary);border:1px solid #2a2a4a;border:1px solid var(--color-border);border-radius:6px;display:flex;flex-direction:column;gap:2px;padding:8px 10px;transition:border-color .15s,background .15s}.seat-picker-seat.clickable{cursor:pointer}.seat-picker-seat.clickable:hover{background:#1a2540;border-color:#5c6bc0}.seat-picker-seat.selected{background:#2a3060;border-color:#5c6bc0}.seat-picker-seat.taken{cursor:not-allowed;opacity:.5}.seat-picker-label{color:#ccc;font-size:.8rem;font-weight:500}.seat-picker-team-label{color:#7986cb;font-size:.7rem}.seat-picker-occupant{color:#999;font-size:.75rem}.seat-picker-seat.taken .seat-picker-occupant{color:#81c784}.seat-picker-expand{background:#0f1a30;background:var(--color-bg-secondary);border-radius:0 0 6px 6px;border-top:1px solid #1a2540;padding:12px 14px 14px}.seat-picker-actions{display:flex;gap:8px;margin-top:10px}.btn-join-confirm{flex:1 1}.seat-picker-selection{color:#90caf9;font-size:.85rem;margin-top:8px}.game-list-item-wrapper{background:#0f1a30;background:var(--color-bg-secondary);border-radius:6px;overflow:hidden}.game-list-item-wrapper .game-list-item{border-radius:0}.btn-link{background:none;border:none;color:#7986cb;cursor:pointer;display:block;font-size:.85rem;padding:0;text-align:center;width:100%}.btn-link:hover{color:#9fa8da}.game-view{position:relative}.game-view,.game-view-error{display:flex;flex-direction:column;min-height:100vh}.game-view-error{align-items:center;color:#999;gap:20px;justify-content:center}.game-header{align-items:center;background:#16213e;background:var(--color-bg-primary);border-bottom:1px solid #2a2a4a;border-bottom:1px solid var(--color-border);display:flex;flex-shrink:0;justify-content:space-between;padding:10px 20px}.game-header-center{align-items:center;display:flex;gap:12px}.game-header-right{align-items:center;display:flex;gap:8px}.game-id{color:#888;font-family:SF Mono,Fira Code,monospace;font-size:.85rem}.status-badge{border-radius:12px;font-size:.8rem;font-weight:500;padding:3px 10px}.status-waiting{background:#3e3a16;color:#ffd54f}.status-playing{background:#1a3e1a;color:#81c784}.status-my-turn{animation:pulse-glow 1.5s ease-in-out infinite;background:#1a3e1a;color:#69f0ae}.status-finished{background:#3e1a1a;color:#ef9a9a}.status-connecting{background:#3e3a16;color:#ffb74d}@keyframes pulse-glow{0%,to{opacity:1}50%{opacity:.7}}@media (prefers-reduced-motion:reduce){.status-my-turn{animation:none}}.team-badge{background:#2a3a5c;border-radius:12px;color:#90caf9;font-size:.8rem;font-weight:600;padding:3px 10px}.spectator-badge{background:#3a2a5c;color:#ce93d8}.connection-indicator{align-items:center;display:inline-flex}.connection-dot{border-radius:50%;display:inline-block;height:8px;width:8px}.boards-area{align-items:flex-start;display:flex;flex:1 1;gap:40px;justify-content:center;padding:24px 20px}.board-panel{flex-direction:column;gap:6px}.board-panel,.board-player{align-items:center;display:flex}.board-player{gap:10px;justify-content:space-between;min-height:44px;padding:4px 2px;width:100%}.board-player.top{flex-direction:row}.board-player.bottom{flex-direction:row-reverse}.player-name{color:#999;font-size:.95rem;font-weight:500;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-name.active-turn{color:#69f0ae;font-weight:600}.board-wrapper{align-items:center;display:flex;flex-direction:column}.board-label{color:#888;font-size:.75rem;letter-spacing:1px;margin-bottom:4px;text-transform:uppercase}.board-container{align-items:flex-start;display:flex}.board-grid{border:2px solid #3a3a5a;border-radius:2px;display:grid;grid-template-columns:repeat(8,64px);grid-template-columns:repeat(8,var(--sq-size,64px));grid-template-rows:repeat(8,64px);grid-template-rows:repeat(8,var(--sq-size,64px))}.rank-labels{flex-direction:column;height:516px;height:calc(var(--sq-size, 64px)*8 + 4px);padding-right:4px}.file-labels,.rank-labels{display:flex;justify-content:space-around}.file-labels{padding-top:2px;width:516px;width:calc(var(--sq-size, 64px)*8 + 4px)}.coord-label{align-items:center;color:#888;display:flex;font-size:.7rem;justify-content:center}.rank-label{height:64px;height:var(--sq-size,64px)}.file-label{width:64px;width:var(--sq-size,64px)}.square{align-items:center;cursor:default;display:flex;justify-content:center;position:relative;-webkit-user-select:none;user-select:none}.square.light{background-color:#f0d9b5}.square.dark{background-color:#b58863}.square.selected{background-color:#829769}.square.last-move.light{background-color:#cdd26a}.square.last-move.dark{background-color:#aaa23a}.square.can-move{cursor:pointer}.piece{font-size:52.48px;font-size:calc(var(--sq-size, 64px)*.82);line-height:1;pointer-events:none;z-index:1}.piece-white{color:#fff;text-shadow:-1px -1px 0 #333,1px -1px 0 #333,-1px 1px 0 #333,1px 1px 0 #333,0 -1px 0 #333,0 1px 0 #333,-1px 0 0 #333,1px 0 0 #333}.piece-black{color:#1a1a1a;text-shadow:-1px -1px 0 #ffffff59,1px -1px 0 #ffffff59,-1px 1px 0 #ffffff59,1px 1px 0 #ffffff59}.move-dot{background:#0003;height:25%;width:25%}.capture-ring,.move-dot{border-radius:50%;pointer-events:none;position:absolute;z-index:2}.capture-ring{border:4px solid #0003;height:85%;width:85%}.pocket{align-items:center;background:#0f1a30;background:var(--color-bg-secondary);border:1px solid #222;border-radius:6px;display:flex;gap:4px;min-height:36px;min-width:60px;padding:4px 8px}.pocket-active{border-color:#5c6bc0}.pocket-empty{color:#444;font-size:.8rem}.pocket-piece{align-items:center;border-radius:4px;display:flex;padding:2px 3px;transition:background .15s}.pocket-piece-clickable{cursor:pointer}.pocket-piece-clickable:hover{background:#2a3a5c}.pocket-piece-selected{background:#5c6bc0}.pocket-piece-char{font-size:1.5rem;line-height:1}.pocket-piece-count{color:#ccc;font-size:.7rem;font-weight:600;margin-left:1px}.overlay-base,.waiting-overlay{align-items:center;background:#0a0a1eeb;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:100}.waiting-content{background:#16213e;background:var(--color-bg-primary);border:1px solid #2a2a4a;border:1px solid var(--color-border);border-radius:12px;max-width:480px;padding:40px;text-align:center;width:90%}.waiting-content h2{color:#ffd54f;font-size:1.5rem;margin-bottom:12px}.waiting-content p{color:#999;margin-bottom:8px}.game-code{background:#0f1a30;background:var(--color-bg-secondary);border-radius:6px;color:#90caf9;font-family:SF Mono,Fira Code,monospace;font-size:1.2rem;margin:12px 0;padding:12px 20px;-webkit-user-select:all;user-select:all;word-break:break-all}.waiting-players{color:#aaa;font-size:.95rem;margin-bottom:16px}.player-slots{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-top:16px}.player-slot{background:#0f1a30;background:var(--color-bg-secondary);border:1px solid #222;border-radius:6px;display:flex;flex-direction:column;gap:4px;padding:10px}.player-slot.filled{border-color:#4caf50}.slot-seat{color:#666;font-size:.75rem;letter-spacing:.5px;text-transform:uppercase}.slot-name{color:#ccc;font-size:.9rem;font-weight:500}.player-slot:not(.filled) .slot-name{color:#555}.slot-team{color:#888;font-size:.7rem}.add-bot-btn{background:#2a3a5c;border-radius:4px;color:#c5cae9;font-size:.75rem;margin-top:4px;padding:4px 10px}.add-bot-btn:hover:not(:disabled){background:#3a4a6c}.fill-bots-btn{background:#2a3a5c;border-radius:6px;color:#c5cae9;font-size:.9rem;margin-top:16px;padding:8px 20px}.fill-bots-btn:hover:not(:disabled){background:#3a4a6c}.game-over-overlay{align-items:center;background:#0a0a1eeb;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:100}.game-over-content{background:#16213e;background:var(--color-bg-primary);border:1px solid #2a2a4a;border:1px solid var(--color-border);border-radius:12px;max-width:400px;padding:40px;text-align:center;width:90%}.game-over-content h2{color:#fff;font-size:1.8rem;margin-bottom:12px}.game-over-reason{color:#999;margin-bottom:8px}.game-over-winner{color:#ffd54f;font-size:1.2rem;font-weight:600;margin-bottom:20px}.game-error{background:#3e1a1a;border-bottom:1px solid #6b2b2b;color:#ff8a80;font-size:.9rem;padding:8px 20px;text-align:center}.game-footer{align-items:center;background:#16213e;background:var(--color-bg-primary);border-top:1px solid #2a2a4a;border-top:1px solid var(--color-border);display:flex;flex-shrink:0;gap:20px;justify-content:center;padding:12px 20px}.partner-info{color:#888;font-size:.9rem}:root{--sq-size:64px;--color-bg-primary:#16213e;--color-bg-secondary:#0f1a30;--color-bg-page:#1a1a2e;--color-border:#2a2a4a;--color-accent:#5c6bc0;--color-accent-hover:#7986cb;--color-text:#e0e0e0;--color-text-muted:#999}@media (max-width:1200px){:root{--sq-size:52px}.boards-area{gap:24px}}@media (max-width:960px){:root{--sq-size:42px}.boards-area{gap:16px;padding:16px 10px}.pocket-piece-char{font-size:1.2rem}}@media (max-width:720px){:root{--sq-size:36px}.boards-area{align-items:center;flex-direction:column;gap:20px}.game-header{flex-wrap:wrap;gap:8px}.game-header-center{flex-wrap:wrap;gap:6px}}@media (max-width:400px){:root{--sq-size:calc(12.5vw - 7.5px)}}
/*# sourceMappingURL=main.af275ccf.css.map*/