body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.api-unreachable-banner{background:#c53030;color:#fff;font-size:14px;padding:10px 16px;text-align:center}.api-unreachable-banner code{background:#fff3;border-radius:4px;font-size:13px;padding:2px 6px}:root{--dark-square:#1a1a1a;--light-square:#f2f2f2;--board-border:#2a2a2a;--text-color:#161616;--text-muted:#5c5c5c;--user-message-bg:#f0f0f0;--assistant-message-bg:#f7f7f7;--system-message-bg:#efefef;--primary-color:#111;--primary-hover:#000;--accent-soft:#ebebeb;--background-color:#f4f4f2;--surface-color:#fff;--border-color:#e2e2e2;--shadow-color:#00000014;--header-bg:#ffffffeb;--header-text:#111;--nav-active-bg:#111;--nav-active-text:#fff}[data-theme=dark]{--dark-square:#2a2a2a;--light-square:#cfcfcf;--board-border:#555;--text-color:#f0f0f0;--text-muted:#a3a3a3;--user-message-bg:#2f2f2f;--assistant-message-bg:#252525;--system-message-bg:#3a3a3a;--primary-color:#f2f2f2;--primary-hover:#fff;--accent-soft:#333;--background-color:#121212;--surface-color:#1c1c1c;--border-color:#333;--shadow-color:#0006;--header-bg:#161616f0;--header-text:#f2f2f2;--nav-active-bg:#f2f2f2;--nav-active-text:#111}[data-theme=auto]{color-scheme:light dark}@media (prefers-color-scheme:dark){[data-theme=auto]{--dark-square:#2a2a2a;--light-square:#cfcfcf;--board-border:#555;--text-color:#f0f0f0;--text-muted:#a3a3a3;--user-message-bg:#2f2f2f;--assistant-message-bg:#252525;--system-message-bg:#3a3a3a;--primary-color:#f2f2f2;--primary-hover:#fff;--accent-soft:#333;--background-color:#121212;--surface-color:#1c1c1c;--border-color:#333;--shadow-color:#0006;--header-bg:#161616f0;--header-text:#f2f2f2;--nav-active-bg:#f2f2f2;--nav-active-text:#111}[data-theme=auto] .message-content pre{background-color:#333;color:#f8f8f8}[data-theme=auto] .fen-pgn-text-display{background-color:#2a2a2a;border-color:#404040;color:#e8e8e8}[data-theme=auto] .fen-pgn-text-display pre{color:#e8e8e8}}[data-theme=dark] .message-content pre{background-color:#333;color:#f8f8f8}[data-theme=dark] .fen-pgn-text-display{background-color:#2a2a2a;border-color:#404040;color:#e8e8e8}[data-theme=dark] .fen-pgn-text-display pre{color:#e8e8e8}body{background-color:#f4f4f2;background-color:var(--background-color);color:#161616;color:var(--text-color);font-family:Outfit,Segoe UI,sans-serif;margin:0;transition:background-color .3s ease,color .3s ease}.App{display:flex;flex-direction:column;min-height:100vh}.App-header{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background-color:#ffffffeb;background-color:var(--header-bg);border-bottom:1px solid #e2e2e2;border-bottom:1px solid var(--border-color);color:#111;color:var(--header-text);padding:.85rem 1.25rem;position:-webkit-sticky;position:sticky;text-align:center;top:0;transition:padding .3s cubic-bezier(.4,0,.2,1),box-shadow .3s cubic-bezier(.4,0,.2,1);z-index:100}.App-header.scrolled{box-shadow:0 4px 16px #00000014;box-shadow:0 4px 16px var(--shadow-color);padding:.55rem 1.25rem}.header-content{gap:1rem;justify-content:space-between;margin:0 auto;max-width:1200px}.header-content,.header-left{align-items:center;display:flex}.header-left{gap:.75rem;min-width:0}.header-right{align-items:center;display:flex;flex-shrink:0;gap:.5rem}.app-logo{height:2.1rem;transform:translateZ(0);transition:height .3s cubic-bezier(.4,0,.2,1);width:auto}.App-header.scrolled .app-logo{height:1.65rem}.App-header h1{font-family:Fraunces,Georgia,serif;font-size:1.45rem;font-weight:650;letter-spacing:-.02em;margin:0;transform:translateZ(0);transition:font-size .3s cubic-bezier(.4,0,.2,1)}.App-header.scrolled h1{font-size:1.2rem}.app-nav{align-items:center;background:#ebebeb;background:var(--accent-soft);border-radius:10px;display:flex;gap:.35rem;padding:.2rem}.app-nav-item{background:#0000;border:none;border-radius:8px;color:#5c5c5c;color:var(--text-muted);cursor:pointer;font-family:inherit;font-size:.9rem;font-weight:600;padding:.45rem 1rem;transition:background .15s ease,color .15s ease}.app-nav-item:hover{color:#161616;color:var(--text-color)}.app-nav-item.active{background:#111;background:var(--nav-active-bg);color:#fff;color:var(--nav-active-text)}.sidebar-toggle{align-items:center;background:#fff;background:var(--surface-color);border:1px solid #e2e2e2;border:1px solid var(--border-color);border-radius:8px;color:#111;color:var(--header-text);cursor:pointer;display:inline-flex;height:36px;justify-content:center;width:36px}.sidebar-toggle:hover{background:#ebebeb;background:var(--accent-soft)}.chat-shell{overflow:hidden;width:100%}.chat-main,.chat-shell{display:flex;flex:1 1;min-height:0;position:relative}.chat-main{flex-direction:column;min-width:0}.chat-sidebar{background:#171717;border-right:1px solid #ffffff0f;color:#f3f3f3;display:flex;flex-direction:column;flex-shrink:0;width:260px;z-index:120}.chat-sidebar-backdrop,.chat-sidebar.collapsed{display:none}.chat-sidebar-top{align-items:center;display:flex;gap:.5rem;padding:.85rem .75rem .5rem}.chat-new-btn{align-items:center;background:#0000;border:1px solid #ffffff29;border-radius:10px;color:#f5f5f5;cursor:pointer;display:inline-flex;flex:1 1;font-family:inherit;font-size:.9rem;font-weight:600;gap:.45rem;justify-content:center;padding:.65rem .75rem;transition:background .15s ease,border-color .15s ease}.chat-new-btn:hover{background:#ffffff14;border-color:#ffffff47}.chat-sidebar-close{background:#0000;border:none;border-radius:8px;color:#cfcfcf;cursor:pointer;display:none;height:36px;width:36px}.chat-sidebar-section-label{color:#ffffff73;font-size:.72rem;font-weight:650;letter-spacing:.06em;padding:.85rem 1rem .4rem;text-transform:uppercase}.chat-sidebar-list{display:flex;flex:1 1;flex-direction:column;gap:.2rem;overflow-y:auto;padding:.25rem .55rem 1rem}.chat-sidebar-empty{color:#ffffff73;font-size:.85rem;line-height:1.4;margin:.75rem .5rem}.chat-sidebar-item{align-items:center;border-radius:8px;display:flex;gap:.15rem}.chat-sidebar-item.active,.chat-sidebar-item:hover{background:#ffffff14}.chat-sidebar-item-main{background:#0000;border:none;color:inherit;cursor:pointer;flex:1 1;font-family:inherit;min-width:0;padding:.55rem;text-align:left}.chat-sidebar-item-title{display:block;font-size:.88rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-sidebar-item-meta{color:#fff6;display:block;font-size:.72rem;margin-top:.15rem}.chat-sidebar-item-delete{align-items:center;background:#0000;border:none;border-radius:6px;color:#ffffff8c;cursor:pointer;display:inline-flex;height:30px;justify-content:center;opacity:0;width:30px}.chat-sidebar-item.active .chat-sidebar-item-delete,.chat-sidebar-item:hover .chat-sidebar-item-delete{opacity:1}.chat-sidebar-item-delete:hover{background:#ffffff1a;color:#fff}@media (max-width:899px){.chat-sidebar:not(.collapsed){bottom:0;box-shadow:8px 0 30px #00000059;left:0;position:fixed;top:0;width:min(280px,86vw)}.chat-sidebar-backdrop{background:#00000073;border:none;display:block;inset:0;position:fixed;z-index:115}.chat-sidebar-close{align-items:center;display:inline-flex;justify-content:center}}.chat-container{align-items:stretch;box-sizing:border-box;display:flex;flex:1 1;flex-direction:row;gap:1rem;margin:0 auto;max-width:1100px;min-height:0;padding:1rem 1rem .75rem;position:relative;width:100%}.chat-container.with-board{max-width:1180px}.chat-thread{display:flex;flex:1 1;flex-direction:column;max-height:calc(100vh - 7.5rem);min-height:0;min-width:0}.App.view-chat{background:radial-gradient(ellipse 80% 50% at 50% -10%,#0000000a,#0000 55%),linear-gradient(180deg,#f7f7f5,#f3f3f1)}[data-theme=dark] .App.view-chat{background:radial-gradient(ellipse 80% 50% at 50% -10%,#ffffff0a,#0000 55%),linear-gradient(180deg,#101010,#141414)}@media (prefers-color-scheme:dark){[data-theme=auto] .App.view-chat{background:radial-gradient(ellipse 80% 50% at 50% -10%,#ffffff0a,#0000 55%),linear-gradient(180deg,#101010,#141414)}}.chat-container:before{content:none}.knowledge-container{box-sizing:border-box;flex:1 1;margin:0 auto;max-width:1100px;padding:1.5rem 1.25rem 3rem;width:100%}.floating-chessboard{align-self:flex-start;background:#fff;background:var(--surface-color);border:1px solid #e2e2e2;border:1px solid var(--border-color);border-radius:14px;box-shadow:0 10px 28px #00000014;box-shadow:0 10px 28px var(--shadow-color);flex:0 0 min(320px,34vw);max-height:calc(100vh - 6.5rem);overflow:hidden;position:-webkit-sticky;position:sticky;top:4.75rem;width:min(320px,34vw);z-index:40}.chessboard-floating-header{background:linear-gradient(180deg,#1a1a1a,#111);padding:10px 14px}.chessboard-floating-header h4{color:#f2f2f2;font-size:.75rem;font-weight:600;letter-spacing:.04em;margin:0;text-transform:uppercase}.floating-board-image{display:block;width:100%}.chat-composer,.floating-input-container{align-items:center;background:#fff;background:var(--surface-color);border:1px solid #e2e2e2;border:1px solid var(--border-color);border-radius:14px;bottom:auto;box-shadow:0 8px 24px #00000014;box-shadow:0 8px 24px var(--shadow-color);box-sizing:border-box;display:flex;flex-shrink:0;gap:12px;left:auto;margin:0 0 .75rem;padding:.7rem .85rem;position:relative;right:auto;width:auto;z-index:50}.chat-composer:focus-within,.floating-input-container:focus-within{border-color:#111;box-shadow:0 10px 28px #0000001f}.App.has-chessboard .floating-input-container,.App.view-chat .floating-input-container,.App.view-chat.has-chessboard .floating-input-container,.App.view-chat.sidebar-open .floating-input-container,.App.view-chat.sidebar-open.has-chessboard .floating-input-container{left:auto;right:auto}.integrated-coach-selector{align-items:center;display:flex;position:relative}.default-coach-image{border:2px solid #111;border-radius:50%;cursor:pointer;height:40px;object-fit:cover;padding:2px;transition:all .2s ease;width:40px}.default-coach-image:hover{background-color:#ebebeb;background-color:var(--accent-soft);transform:scale(1.04)}.coach-dropdown{background:#fff;background:var(--surface-color);border:1px solid #e2e2e2;border:1px solid var(--border-color);border-radius:12px;bottom:100%;box-shadow:0 8px 25px #00000014;box-shadow:0 8px 25px var(--shadow-color);left:0;margin-bottom:8px;min-width:200px;padding:8px;position:absolute;z-index:1000}.coach-dropdown-option{align-items:center;border-radius:8px;cursor:pointer;display:flex;gap:12px;padding:10px 12px;transition:all .2s ease}.coach-dropdown-option.selected,.coach-dropdown-option:hover{background-color:#ebebeb;background-color:var(--accent-soft)}.coach-dropdown-option.selected{box-shadow:inset 3px 0 0 #111}.coach-dropdown-image{border-radius:50%;height:32px;object-fit:cover;width:32px}.coach-dropdown-name{color:#161616;color:var(--text-color);font-size:.9rem;font-weight:500}.welcome-message{align-self:center;animation:auth-rise .45s ease-out both;background:#0000;border:none;border-radius:0;box-shadow:none;color:#161616;color:var(--text-color);margin:auto 0;max-width:42rem;overflow:hidden;padding:2.5rem 1.75rem 2rem;position:relative;text-align:center;width:100%}.welcome-board{display:none}.welcome-eyebrow{color:#5c5c5c;color:var(--text-muted);font-size:.75rem;font-weight:650;letter-spacing:.08em;margin:0 0 .55rem;position:relative;text-transform:uppercase}.welcome-message h2{color:#161616;color:var(--text-color);font-family:Fraunces,Georgia,serif;font-size:clamp(1.55rem,3vw,2rem);letter-spacing:-.02em;margin:0 auto .65rem;max-width:18ch;position:relative}.welcome-message>p{color:#5c5c5c;color:var(--text-muted);line-height:1.5;margin:0 auto 1.15rem;max-width:40ch;position:relative}.welcome-prompts{grid-gap:.55rem;display:grid;gap:.55rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:1rem;position:relative;text-align:left}.welcome-prompt{background:#fff;background:var(--surface-color);border:1px solid #e2e2e2;border:1px solid var(--border-color);border-radius:12px;box-shadow:0 4px 12px #00000014;box-shadow:0 4px 12px var(--shadow-color);color:#161616;color:var(--text-color);cursor:pointer;font-family:inherit;font-size:.88rem;font-weight:500;line-height:1.35;padding:.75rem .85rem;text-align:left;transition:background .15s ease,border-color .15s ease,transform .15s ease}.welcome-prompt:hover:not(:disabled){background:#ebebeb;background:var(--accent-soft);border-color:#bdbdbd;transform:translateY(-1px)}.welcome-hint{color:#5c5c5c;color:var(--text-muted);font-size:.86rem;margin:0;position:relative}.welcome-hint code{background:#ebebeb;background:var(--accent-soft);border-radius:4px;font-size:.85em;padding:.1rem .35rem}.messages-container{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0000;border:none;border-radius:0;box-shadow:none;display:flex;flex:1 1;flex-direction:column;gap:.75rem;margin-bottom:0;min-width:0;overflow-y:auto;padding:.5rem .25rem 1rem;position:relative;z-index:1}[data-theme=dark] .messages-container{background:#0000;border-color:#0000}.position-chip{display:flex;flex-direction:column;gap:.3rem}.position-chip-label{font-size:.78rem;font-weight:650;letter-spacing:.04em;opacity:.75;text-transform:uppercase}.position-chip-fen{font-size:.78rem;line-height:1.35;opacity:.9;word-break:break-all}.position-ref{color:#5c5c5c;color:var(--text-muted);font-size:.8rem;font-style:italic;margin:.45rem 0 0}.message{animation:auth-rise .35s ease-out both;border-radius:14px;max-width:min(92%,640px);padding:.85rem 1rem;word-break:break-word}.message.user{align-self:flex-end;background-color:#111;border-top-right-radius:4px;box-shadow:0 6px 16px #0000001f;color:#f7f7f7}.message.assistant{align-self:flex-start;background-color:#fff;border:1px solid #e2e2e2;border:1px solid var(--border-color);border-left:3px solid #111;border-top-left-radius:4px;box-shadow:0 4px 14px #0000000d}[data-theme=dark] .message.assistant{background-color:#1f1f1f}.message.system{align-self:center;background-color:#efefef;background-color:var(--system-message-bg);border:1px solid #e2e2e2;border:1px solid var(--border-color);font-style:italic}.message.user .message-content a{color:#d7d7d7}.message.user .message-content code{background:#ffffff1f}.message-content{line-height:1.5;position:relative}.message-content p{margin:.5rem 0}.message-content pre{background-color:#f6f8fa;border-radius:4px;overflow-x:auto;padding:.5rem}.message-content code{background-color:#0000000d;border-radius:3px;font-size:.9em;padding:.1rem .3rem}.message-content ol,.message-content ul{margin:.5rem 0;padding-left:1.5rem}.text-input{background:#0000;border:none;color:#161616;color:var(--text-color);flex:1 1;font-size:1rem;outline:none;padding:.5rem}.text-input::placeholder{color:#999}.input-actions{gap:.5rem}.input-actions,.send-button{align-items:center;display:flex}.send-button{border:none;border-radius:6px;cursor:pointer;height:32px;justify-content:center;outline:none;transition:all .2s ease;width:32px}.send-button.disabled{background-color:#e9ecef;color:#adb5bd;cursor:not-allowed}.send-button.disabled:hover{background-color:#e9ecef;transform:none}.send-button.enabled{background-color:#111!important;background-color:var(--primary-color)!important;color:#fff!important;color:var(--nav-active-text)!important;display:flex!important;opacity:1!important;visibility:visible!important}.send-button.enabled:hover{background-color:#000!important;background-color:var(--primary-hover)!important;transform:translateY(-1px)}.send-button.enabled:focus{box-shadow:0 0 0 2px #0003}.send-button:disabled{background-color:#f8f9fa!important;color:#6c757d!important;cursor:not-allowed;opacity:.7!important;transform:none!important}.voice-input-compact{position:relative}.voice-button-compact{align-items:center;background-color:#f0f0f0;border:none;border-radius:6px;color:#666;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s ease;width:32px}.voice-button-compact:hover:not(:disabled){background-color:#e0e0e0;color:#333}.voice-button-compact.recording{animation:pulse 1.5s infinite;background-color:#f44;color:#fff}.voice-button-compact.processing{background-color:#4a90e2;color:#fff}.voice-button-compact:disabled{background-color:#f5f5f5;color:#ccc;cursor:not-allowed}.recording-indicator-compact{animation:pulse 1.5s infinite;font-size:12px;position:absolute;right:-8px;top:-8px}.input-section{background:#fff;border-top:1px solid #e0e0e0;padding:1rem}.input-mode-toggle{display:flex;gap:.5rem;justify-content:center;margin-bottom:1rem}.toggle-btn{background-color:#f0f0f0;border:1px solid #ccc;border-radius:20px;cursor:pointer;font-weight:500;padding:.5rem 1.5rem;transition:all .2s ease}.toggle-btn.active{background-color:#1a1a1a;background-color:var(--dark-square);border-color:#1a1a1a;border-color:var(--dark-square);color:#fff}.toggle-btn:hover:not(.active):not(:disabled){background-color:#e0e0e0}.toggle-btn:disabled{cursor:not-allowed;opacity:.6}.voice-input-container{display:flex;justify-content:center;padding:.5rem 0}.voice-input{flex-direction:column;gap:1rem}.voice-button,.voice-input{align-items:center;display:flex}.voice-button{background-color:#1a1a1a;background-color:var(--dark-square);border:none;border-radius:50%;box-shadow:0 2px 10px #0000001a;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;height:80px;justify-content:center;padding:1rem;transition:all .2s ease;width:80px}.voice-button.recording{animation:pulse 1.5s infinite;background-color:#d9534f;transform:scale(1.1)}.voice-button.processing{animation:spin 1s linear infinite;background-color:#f0ad4e}.voice-button:hover:not(:disabled){box-shadow:0 4px 12px #00000026;transform:scale(1.05)}.voice-button:disabled{cursor:not-allowed;opacity:.7}.recording-indicator{align-items:center;color:#d9534f;display:flex;font-weight:600;gap:.5rem}.recording-indicator:before{animation:pulse 1.5s infinite;background-color:#d9534f;border-radius:50%;content:"";display:inline-block;height:10px;width:10px}.error-message{color:#d9534f;font-size:.9rem;margin-bottom:.5rem;text-align:center}.message-actions{display:flex;justify-content:flex-end;margin-top:.5rem}.play-button{align-items:center;background-color:#1a1a1a;background-color:var(--dark-square);border:none;border-radius:50%;box-shadow:0 1px 3px #0003;color:#fff;cursor:pointer;display:flex;height:32px;justify-content:center;padding:.3rem;transition:all .2s ease;width:32px}.play-button:hover{background-color:#658547;transform:scale(1.1)}.play-button.playing{animation:pulse 2s infinite;background-color:#d9534f}.play-button svg{height:16px;width:16px}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.typing-indicator{align-items:center;display:flex;gap:4px}.typing-indicator span{animation:typing 1.4s infinite both;background-color:#1a1a1a;background-color:var(--dark-square);border-radius:50%;height:8px;opacity:.6;width:8px}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%{opacity:.6;transform:translateY(0)}50%{opacity:1;transform:translateY(-5px)}to{opacity:.6;transform:translateY(0)}}.App-footer{background-color:initial;border-top:1px solid #e2e2e2;border-top:1px solid var(--border-color);color:#5c5c5c;color:var(--text-muted);font-size:.8rem;margin-top:auto;padding:.75rem;text-align:center}.board-image-container{margin:15px 0;text-align:center}.board-image{border:2px solid #333;border-radius:8px;box-shadow:0 4px 8px #0000001a;height:auto;max-width:400px;width:100%}.fen-pgn-display{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;margin-top:10px;padding:10px}.notation-section{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.notation-section strong{color:#1a1a1a;color:var(--dark-square);font-size:.9rem;min-width:40px}.notation-text{background-color:#e9ecef;border:1px solid #ced4da;border-radius:4px;color:#495057;flex:1 1;font-family:Courier New,monospace;font-size:.8rem;max-width:280px;padding:4px 8px;word-break:break-all}.copy-button{background:none;border:none;border-radius:3px;cursor:pointer;font-size:.9rem;padding:2px 6px;transition:background-color .2s}.copy-button:hover{background-color:#dee2e6}.floating-fen-pgn-display{background-color:#fff;border-radius:0 0 12px 12px;border-top:1px solid #0000001a;padding:10px}.floating-notation-section{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.floating-notation-section strong{color:#1a1a1a;color:var(--dark-square);font-size:.8rem;min-width:35px}.floating-notation-text{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:3px;color:#495057;flex:1 1;font-family:Courier New,monospace;font-size:.75rem;max-width:200px;padding:3px 6px;word-break:break-all}.floating-copy-button{background:none;border:none;border-radius:2px;cursor:pointer;font-size:.8rem;padding:1px 4px;transition:background-color .2s}.floating-copy-button:hover{background-color:#dee2e6}.coach-selector{display:flex;justify-content:center;margin-bottom:.5rem}.coach-options{display:flex;gap:.5rem}.coach-option{align-items:center;background-color:#f4f4f2;background-color:var(--background-color);border:2px solid #e2e2e2;border:2px solid var(--border-color);border-radius:6px;cursor:pointer;display:flex;flex-direction:column;min-width:60px;padding:.25rem;transition:all .2s ease}.coach-option:hover{background-color:var(--light-background)}.coach-option.selected,.coach-option:hover{border-color:#111;border-color:var(--primary-color)}.coach-option.selected{background-color:#111;background-color:var(--primary-color);color:#fff}.coach-option-image{border:2px solid #e2e2e2;border:2px solid var(--border-color);border-radius:50%;height:40px;object-fit:cover;width:40px}.coach-option.selected .coach-option-image{border-color:#fff}.coach-option-name{font-size:.7rem;font-weight:500;margin-top:.2rem;text-align:center}.coach-avatar{align-items:center;display:flex;margin-right:1rem}.coach-image{border:2px solid #e2e2e2;border:2px solid var(--border-color);border-radius:50%;height:50px;object-fit:cover;width:50px}.message.assistant{align-items:flex-start;display:flex}@media (max-width:900px){.chat-container,.chat-container.with-board{flex-direction:column;max-width:980px}.floating-chessboard{align-self:center;flex:0 0 auto;max-height:none;position:relative;top:auto;width:min(360px,100%)}.chat-thread{max-height:none}}@media (max-width:600px){.message{max-width:95%}.board-image{max-width:280px}}.fen-pgn-text-display{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:4px;font-family:Courier New,monospace;font-size:.85rem;line-height:1.4;margin-top:8px;max-width:100%;overflow-x:auto;padding:8px 12px}.fen-pgn-text-display pre{color:#495057;margin:0;white-space:pre-wrap;word-break:break-all}.floating-chessboard .fen-pgn-text-display{margin:8px}.theme-selector{display:inline-block;position:relative}.theme-selector-button{align-items:center;background:#fff;background:var(--surface-color);border:1px solid #e2e2e2;border:1px solid var(--border-color);border-radius:8px;color:#161616;color:var(--text-color);cursor:pointer;display:flex;font-size:.9rem;gap:.5rem;min-width:80px;padding:.5rem .75rem;transition:all .3s ease}.theme-selector-button:hover{background:#e2e2e2;background:var(--border-color);border-color:#111;border-color:var(--primary-color)}.theme-selector-icon{height:16px;opacity:.8;width:16px}.theme-dropdown{background:#fff;background:var(--surface-color);border:1px solid #e2e2e2;border:1px solid var(--border-color);border-radius:8px;box-shadow:0 8px 25px #00000014;box-shadow:0 8px 25px var(--shadow-color);margin-top:.5rem;min-width:120px;padding:.5rem;position:absolute;right:0;top:100%;z-index:1000}.theme-option{align-items:center;border-radius:6px;color:#161616;color:var(--text-color);cursor:pointer;display:flex;font-size:.85rem;gap:.5rem;padding:.5rem .75rem;transition:background-color .2s ease}.theme-option:hover{background:#e2e2e2;background:var(--border-color)}.theme-option.selected{background:#111;background:var(--primary-color);color:#fff}.theme-option-icon{height:14px;width:14px}.theme-text{font-weight:500}.auth-shell{--auth-ink:#111;--auth-muted:#5c5c5c;--auth-panel:#fffffff5;--auth-light-sq:#f2f2f2;--auth-dark-sq:#1a1a1a;align-items:center;background:linear-gradient(135deg,#0a0a0a,#1c1c1c 42%,#2e2e2e 68%,#121212);color:var(--auth-ink);display:flex;font-family:Outfit,sans-serif;justify-content:center;min-height:100vh;overflow:hidden;padding:clamp(1.25rem,4vw,2.5rem);position:relative}.auth-board{animation:auth-board-drift 18s ease-in-out infinite alternate;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);inset:-8% -4%;opacity:.38;pointer-events:none;position:absolute;transform:rotate(-6deg) scale(1.08)}.auth-sq{display:block}.auth-sq.light{background:var(--auth-light-sq)}.auth-sq.dark{background:var(--auth-dark-sq)}.auth-vignette{background:radial-gradient(ellipse 70% 55% at 18% 42%,#ffffff1f,#0000 55%),radial-gradient(ellipse 55% 50% at 82% 58%,#0000008c,#0000 60%),linear-gradient(180deg,#0003,#0000009e);inset:0;pointer-events:none;position:absolute}.auth-layout{grid-gap:clamp(1.5rem,4vw,3.5rem);align-items:center;animation:auth-rise .7s ease-out both;display:grid;gap:clamp(1.5rem,4vw,3.5rem);grid-template-columns:1.15fr .95fr;position:relative;width:min(1040px,100%);z-index:1}.auth-brand{animation:auth-brand-in .85s ease-out .08s both;color:#f7f7f7;text-align:center}.auth-brand-mark{display:block;filter:drop-shadow(0 6px 18px rgba(0,0,0,.4)) grayscale(.15);height:clamp(96px,14vw,128px);margin:0 auto 1.15rem;object-fit:contain;width:clamp(96px,14vw,128px)}.auth-brand-name{color:#fff;font-size:clamp(2.6rem,6vw,3.75rem);font-weight:700;letter-spacing:-.02em;line-height:1;text-align:center}.auth-brand-name,.auth-brand-title{font-family:Fraunces,Georgia,serif;margin:0 auto .85rem}.auth-brand-title{color:#e8e8e8;font-size:clamp(1.35rem,2.6vw,1.85rem);font-weight:500;line-height:1.25;max-width:18ch}.auth-brand-copy{color:#ffffffb8;font-size:1.05rem;line-height:1.55;margin:0 auto;max-width:34ch}.auth-panel{animation:auth-panel-in .75s ease-out .16s both;background:var(--auth-panel);border:1px solid #0000001f;border-radius:14px;box-shadow:0 22px 50px #00000073;justify-self:end;max-width:420px;padding:clamp(1.35rem,3vw,1.85rem);width:100%}.auth-panel-head{margin-bottom:1.15rem;text-align:left}.auth-panel-head h2{color:var(--auth-ink);font-family:Fraunces,Georgia,serif;font-size:1.55rem;font-weight:650;margin:0 0 .25rem}.auth-panel-head p{color:var(--auth-muted);font-size:.95rem;margin:0}.auth-page{align-items:center;background:linear-gradient(135deg,#0a0a0a,#1c1c1c 42%,#2e2e2e 68%,#121212);color:#111;color:var(--auth-ink,#111);display:flex;font-family:Outfit,sans-serif;justify-content:center;min-height:100vh;padding:1.5rem}.auth-card{background:#fffffff5;border:1px solid #0000001f;border-radius:14px;box-shadow:0 22px 50px #00000073;max-width:420px;padding:2rem 1.75rem;text-align:center;width:100%}.auth-logo{height:56px;margin-bottom:.75rem;object-fit:contain;width:56px}.auth-card h1{font-family:Fraunces,Georgia,serif;font-size:1.6rem;margin:0 0 .35rem}.auth-subtitle{color:#5c5c5c;font-size:.95rem;margin:0 0 1.25rem}.auth-form{gap:.85rem;text-align:left}.auth-form,.auth-form label{display:flex;flex-direction:column}.auth-form label{color:#111;color:var(--auth-ink,#111);font-size:.85rem;font-weight:600;gap:.35rem}.auth-label-row{align-items:center;display:flex;gap:.5rem;justify-content:space-between}.auth-form input{background:#fff;border:1px solid #d0d0d0;border-radius:10px;color:#111;color:var(--auth-ink,#111);font-family:inherit;font-size:1rem;padding:.75rem .85rem;transition:border-color .2s ease,box-shadow .2s ease}.auth-form input:focus{border-color:#111;box-shadow:0 0 0 3px #0000001f;outline:none}.auth-form input::placeholder{color:#9a9a9a}.auth-optional{font-weight:400;opacity:.7}.auth-google,.auth-primary,.auth-secondary{border:none;border-radius:10px;cursor:pointer;font-family:inherit;font-size:.95rem;font-weight:600;padding:.8rem 1rem;transition:transform .15s ease,background .15s ease,border-color .15s ease}.auth-google:hover:not(:disabled),.auth-primary:hover:not(:disabled),.auth-secondary:hover:not(:disabled){transform:translateY(-1px)}.auth-google:disabled,.auth-primary:disabled{cursor:not-allowed;opacity:.55;transform:none}.auth-primary{background:#111;color:#fff;margin-top:.25rem}.auth-primary:hover:not(:disabled){background:#000}.auth-secondary{background:#e8e8e8;color:#111;color:var(--auth-ink,#111)}.auth-google{align-items:center;background:#fff;border:1px solid #cfcfcf;color:#111;display:inline-flex;gap:.55rem;justify-content:center;width:100%}.auth-google-icon{flex-shrink:0;height:18px;width:18px}.auth-link{background:none;border:none;color:#111;cursor:pointer;font-family:inherit;font-weight:600;padding:.35rem;text-decoration:underline;text-underline-offset:2px}.auth-link-inline{font-size:.8rem;font-weight:600;padding:0}.auth-divider{align-items:center;color:#7a7a7a;display:flex;font-size:.85rem;gap:.75rem;margin:1rem 0}.auth-divider:after,.auth-divider:before{background:#d6d6d6;content:"";flex:1 1;height:1px}.auth-switch{color:#5c5c5c;color:var(--auth-muted,#5c5c5c);font-size:.9rem;margin-bottom:0;margin-top:1rem;text-align:center}.auth-alert{background:#f5f5f5;border:1px solid #d0d0d0;border-left:3px solid #111;border-radius:10px;color:#3a3a3a;text-align:left}.auth-alert,.auth-info{font-size:.9rem;margin-bottom:1rem;padding:.75rem}.auth-info{background:#f0f0f0;border:1px solid #d0d0d0;border-radius:10px;color:#222}.auth-pending-box{background:#f3f3f3;border-radius:10px;display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem;padding:1rem;text-align:left}.auth-status-badge{border-radius:6px;display:inline-block;font-size:.8rem;letter-spacing:.03em;margin-top:.25rem;padding:.2rem .55rem;text-transform:uppercase}.auth-status-badge.pending{background:#e8e8e8;color:#222}.auth-help{color:#5c5c5c;font-size:.9rem}.auth-actions-row{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}@keyframes auth-board-drift{0%{transform:rotate(-6deg) scale(1.08) translateY(0)}to{transform:rotate(-4deg) scale(1.1) translateY(-1.5%)}}@keyframes auth-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes auth-brand-in{0%{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:translateX(0)}}@keyframes auth-panel-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media (max-width:860px){.auth-layout{gap:1.5rem;grid-template-columns:1fr}.auth-brand{text-align:center}.auth-brand-copy,.auth-brand-title{margin-left:auto;margin-right:auto;max-width:none}.auth-brand-mark{margin-left:auto;margin-right:auto}.auth-panel{justify-self:center}.auth-board{opacity:.2;transform:rotate(0deg) scale(1.2)}}@media (prefers-reduced-motion:reduce){.auth-board,.auth-brand,.auth-layout,.auth-panel{animation:none}}.header-user{align-items:center;display:flex;gap:.5rem;margin-right:.5rem}.header-user-email{font-size:.8rem;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-text-button{background:#0000;border:1px solid #e2e2e2;border:1px solid var(--border-color);border-radius:8px;color:#111;color:var(--header-text);cursor:pointer;font-family:inherit;font-size:.8rem;font-weight:500;padding:.4rem .75rem}.header-text-button:hover{background:#ebebeb;background:var(--accent-soft)}.kb-page{animation:auth-rise .45s ease-out both}.kb-hero{margin-bottom:2rem;max-width:40rem}.kb-eyebrow{color:#5c5c5c;color:var(--text-muted);font-size:.8rem;font-weight:600;letter-spacing:.06em;margin:0 0 .4rem;text-transform:uppercase}.kb-hero h2{color:#161616;color:var(--text-color);font-family:Fraunces,Georgia,serif;font-size:clamp(1.75rem,3vw,2.25rem);font-weight:650;letter-spacing:-.02em;margin:0 0 .65rem}.kb-lead{color:#5c5c5c;color:var(--text-muted);font-size:1.05rem;line-height:1.55;margin:0}.kb-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.kb-section{background:#fff;background:var(--surface-color);border:1px solid #e2e2e2;border:1px solid var(--border-color);border-radius:12px;padding:1.15rem 1.2rem 1.25rem}.kb-section h3{font-family:Fraunces,Georgia,serif;font-size:1.15rem;font-weight:650;margin:0 0 .85rem}.kb-list{gap:.55rem;list-style:none;margin:0;padding:0}.kb-link,.kb-list{display:flex;flex-direction:column}.kb-link{border-radius:8px;color:inherit;gap:.2rem;padding:.65rem .7rem;text-decoration:none;transition:background .15s ease}.kb-link:hover{background:#ebebeb;background:var(--accent-soft)}.kb-link-title{color:#161616;color:var(--text-color);font-size:.95rem;font-weight:600}.kb-link-blurb{font-size:.85rem;line-height:1.4}.kb-link-blurb,.kb-tip{color:#5c5c5c;color:var(--text-muted)}.kb-tip{background:#fff;background:var(--surface-color);border:1px dashed #e2e2e2;border:1px dashed var(--border-color);border-radius:10px;font-size:.95rem;line-height:1.5;margin-top:1.75rem;padding:1rem 1.15rem}.kb-tip code{background:#ebebeb;background:var(--accent-soft);border-radius:4px;font-size:.85em;padding:.1rem .35rem}@media (max-width:720px){.header-content{flex-wrap:wrap}.app-nav{justify-content:stretch;order:3;width:100%}.app-nav-item{flex:1 1}.header-user-email{display:none}.App-header h1{font-size:1.2rem}}.admin-page{color:#161616;color:var(--text-color);margin:0 auto;max-width:1100px;padding:1.5rem}.admin-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.25rem}.admin-header h1{font-size:1.4rem;margin:0}.admin-empty{opacity:.75}.admin-table-wrap{background:#fff;background:var(--surface-color);border:1px solid #e2e2e2;border:1px solid var(--border-color);border-radius:12px;overflow-x:auto}.admin-table{border-collapse:collapse;font-size:.9rem;width:100%}.admin-table td,.admin-table th{border-bottom:1px solid #e2e2e2;border-bottom:1px solid var(--border-color);padding:.75rem;text-align:left;vertical-align:middle}.admin-table th{background:#f4f4f2;background:var(--background-color);font-weight:600}.admin-actions{display:flex;flex-wrap:wrap;gap:.5rem}.admin-actions .auth-primary,.admin-actions .auth-secondary{font-size:.8rem;padding:.4rem .7rem}
/*# sourceMappingURL=main.99b6436f.css.map*/