:root{color:#17231f;background:#f3f6ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--surface: #fbfbf4;--surface-strong: #ffffff;--ink: #17231f;--muted: #65716a;--border: rgba(23, 35, 31, .13);--green: #7fa68c;--green-strong: #275443;--amber: #d49a2c;--danger: #b94f40;--blue: #2c5f7e;--light-square: #eef5ef;--dark-square: #a4bea9;--board-frame: #1c2923;--shadow: 0 22px 56px rgba(34, 45, 38, .14)}*{box-sizing:border-box}html{min-height:100%}body{min-height:100%;margin:0}button,input,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}#root{min-height:100vh}.app-shell{min-height:100vh;padding:clamp(12px,2vw,28px);background:linear-gradient(180deg,#f6f8f3,#e8efe7)}.game-surface{width:min(1180px,100%);margin:0 auto}.game-header,.status-strip,.play-layout{width:100%}.game-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.game-title h1,.coach-panel h2{margin:0;color:var(--ink);letter-spacing:0}.game-title h1{font-size:clamp(24px,3vw,36px);line-height:1.08}.eyebrow{margin:0 0 4px;color:var(--green-strong);font-size:.76rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.game-header__controls{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;max-width:760px}.status-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;overflow:hidden;margin-bottom:14px;border:1px solid var(--border);border-radius:8px;background:var(--border);box-shadow:0 8px 20px #222d260d}.status-strip>div{min-width:0;padding:10px 12px;background:#fbfbf4f5}.status-strip span,.position-summary span{display:block;color:var(--muted);font-size:.76rem;font-weight:700;letter-spacing:0;text-transform:uppercase}.status-strip strong{display:block;margin-top:2px;color:var(--ink);font-size:.95rem}.status-strip p{margin:2px 0 0;color:var(--muted);font-size:.8rem}.play-layout{display:grid;grid-template-columns:minmax(320px,680px) minmax(300px,1fr);align-items:start;gap:18px}.board-panel,.coach-panel{border:1px solid var(--border);border-radius:8px;background:#fbfbf4f5;box-shadow:var(--shadow)}.board-panel{padding:clamp(10px,2vw,16px)}.board-wrap{position:relative;width:min(100%,680px);margin:0 auto}.chess-board{position:relative;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));width:100%;overflow:hidden;border:8px solid var(--board-frame);border-radius:8px;aspect-ratio:1;background:var(--board-frame);box-shadow:inset 0 0 0 1px #fff3,0 18px 36px #1c292333;touch-action:none;-webkit-user-select:none;user-select:none}.board-square{position:relative;display:grid;place-items:center;min-width:0;min-height:0;border:0;padding:0;color:var(--ink);cursor:pointer}.board-square:before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:"";pointer-events:none}.board-square--light{background:var(--light-square)}.board-square--dark{background:var(--dark-square)}.board-square--selected{box-shadow:inset 0 0 0 4px #2c5f7ed1}.board-square--last:after,.board-square--check:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:"";pointer-events:none}.board-square--last:after{background:#d49a2c52}.board-square--check:after{background:#b94f4061}.board-square--hint:before{background:#2c5f7e33;box-shadow:inset 0 0 0 3px #2c5f7e6b}.square-target{position:absolute;z-index:2;width:24%;border-radius:999px;aspect-ratio:1;background:#17231f57;pointer-events:none}.board-square--capture .square-target{width:78%;border:5px solid rgba(23,35,31,.3);background:transparent}.piece{position:relative;z-index:3;display:grid;place-items:center;width:100%;height:100%;cursor:grab}.piece__image{display:block;width:88%;height:88%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 1px 0 rgba(255,255,255,.35)) drop-shadow(0 7px 10px rgba(0,0,0,.18))}.piece--b .piece__image{filter:drop-shadow(0 1px 0 rgba(255,255,255,.42)) drop-shadow(0 8px 12px rgba(0,0,0,.22))}.piece--p .piece__image{width:76%;height:76%}.piece:active{cursor:grabbing}.piece--ghosted{opacity:.18}.piece--dragging{position:fixed;z-index:50;width:min(14vw,84px);height:min(14vw,84px);transform:translate(-50%,-50%);pointer-events:none}.piece--dragging .piece__image{width:100%;height:100%}.piece--dragging.piece--p .piece__image{width:86%;height:86%}.board-arrows{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;overflow:visible;pointer-events:none}.board-arrows line{stroke:#275443b8;stroke-linecap:round;stroke-width:2.3}.board-arrows marker path{fill:#275443b8}.square-rank,.square-file{position:absolute;z-index:4;color:#17231f8c;font-size:clamp(9px,1.7vw,13px);font-weight:800;line-height:1;pointer-events:none}.board-square--dark .square-rank,.board-square--dark .square-file{color:#ffffffb8}.square-rank{top:6px;left:6px}.square-file{right:6px;bottom:6px}.board-toolbar{display:flex;justify-content:space-between;gap:10px;margin-top:12px}.coach-panel{display:flex;flex-direction:column;gap:14px;padding:clamp(14px,2vw,18px)}.coach-panel__head{display:flex;align-items:center;gap:12px}.coach-avatar{display:grid;flex:0 0 auto;place-items:center;width:48px;border:1px solid rgba(84,117,98,.32);border-radius:8px;aspect-ratio:1;background:#e8f0e8;color:var(--green-strong);overflow:hidden}.coach-panel--botThinking .coach-avatar,.coach-panel--question .coach-avatar{background:#e7f0f5;color:var(--blue)}.coach-panel--warning .coach-avatar{background:#fff2d7;color:#9b6718}.coach-panel--error .coach-avatar{background:#fff0eb;color:var(--danger)}.coach-avatar__spin{animation:coach-spin .9s linear infinite}.coach-message{margin:0;min-height:72px;padding:12px;border-left:4px solid rgba(39,84,67,.72);border-radius:6px;background:#ffffffb8;color:#24342d}.coach-panel--good .coach-message{border-left-color:var(--green-strong)}.coach-panel--warning .coach-message{border-left-color:var(--amber);background:#fff9eb}.coach-panel--error .coach-message{border-left-color:var(--danger);background:#fff5f1}.coach-panel--question .coach-message,.coach-panel--botThinking .coach-message{border-left-color:var(--blue)}.coach-actions{display:flex;flex-wrap:wrap;gap:10px}.coach-actions--review{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.coach-question{display:grid;grid-template-columns:18px minmax(0,1fr) 36px;align-items:center;min-height:44px;border:1px solid rgba(23,35,31,.1);border-radius:8px;padding:0 4px 0 12px;gap:8px;background:#ffffffa8;color:var(--muted)}.coach-question input{min-width:0;border:0;outline:0;background:transparent;color:var(--ink)}.coach-question input::placeholder{color:#65716ae6}.coach-question button{display:grid;place-items:center;width:36px;border:0;border-radius:7px;aspect-ratio:1;background:var(--green-strong);color:#fbfbf4}.coach-question button:disabled,.coach-question input:disabled{cursor:not-allowed}.coach-question:has(input:disabled){opacity:.82}.quick-questions{display:flex;flex-wrap:wrap;gap:8px}.quick-questions button{min-height:32px;border:1px solid rgba(23,35,31,.1);border-radius:999px;padding:0 10px;background:#ffffffad;color:#3f4d46;cursor:pointer;font-size:.82rem;font-weight:750}.quick-questions button:disabled{cursor:not-allowed;opacity:.55}.coach-chat{display:grid;gap:8px}.coach-chat__message{max-width:92%;margin:0;border:1px solid rgba(23,35,31,.09);border-radius:8px;padding:8px 10px;background:#ffffff9e;color:#33423b;font-size:.88rem}.coach-chat__message--user{justify-self:end;background:#e8f0e8}.coach-chat__message--assistant{justify-self:start}.position-summary{display:grid;gap:10px}.position-summary>div{min-width:0}.position-summary details{min-width:0}.position-summary summary{cursor:pointer;color:var(--muted);font-size:.82rem;font-weight:800}.position-summary p,.position-summary code{display:block;width:100%;max-height:92px;overflow:auto;margin:4px 0 0;border:1px solid rgba(23,35,31,.08);border-radius:6px;padding:8px;background:#ffffff94;color:#304039;font-size:.84rem}.position-summary code{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;white-space:nowrap}.position-summary details>div{margin-top:10px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border:1px solid transparent;border-radius:8px;padding:0 14px;gap:8px;color:var(--ink);font-weight:800;cursor:pointer;transition:transform .14s ease,border-color .14s ease,background-color .14s ease,color .14s ease}.button:disabled{cursor:not-allowed;opacity:.5}.button:not(:disabled):active{transform:translateY(1px)}.button--primary{background:var(--green-strong);color:#fbfbf4}.button--secondary{border-color:var(--border);background:#fff}.button--ghost{border-color:#17231f1a;background:transparent}.button--danger{border-color:#b654453d;background:#fff2ed;color:var(--danger)}.button__icon{display:grid;flex:0 0 auto;place-items:center}.button__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.segmented{display:inline-grid;grid-template-columns:repeat(3,minmax(0,1fr));min-height:42px;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:#fff}.segmented__option{min-width:82px;border:0;border-right:1px solid var(--border);padding:0 10px;background:transparent;color:var(--muted);cursor:pointer;font-size:.9rem;font-weight:800}.segmented__option:last-child{border-right:0}.segmented__option[aria-pressed=true]{background:#e8f0e8;color:var(--green-strong)}@media(hover:hover){.button:not(:disabled):hover,.segmented__option:hover{border-color:#335d7852}.board-square:hover{filter:brightness(1.04)}}@media(max-width:880px){.game-header{align-items:flex-start;flex-direction:column}.game-header__controls{justify-content:stretch;max-width:none;width:100%}.segmented{flex:1 1 260px}.play-layout{grid-template-columns:1fr}}@media(max-width:620px){.app-shell{padding:10px}.status-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.game-title h1{font-size:1.75rem}.board-panel,.coach-panel{border-radius:8px}.chess-board{border-width:5px}.piece__image{width:90%;height:90%}.piece--p .piece__image{width:78%;height:78%}.board-toolbar,.coach-actions--primary{display:grid;grid-template-columns:1fr 1fr}.coach-actions--primary .button:last-child{grid-column:1 / -1}.button{width:100%;padding-inline:10px}}@keyframes coach-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
