:root{--radius: 12px;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}[data-theme=dark]{--bg: #0f1216;--bg-grad: radial-gradient(1100px 560px at 72% -12%, #22304a 0%, #12161d 45%, #0d1014 100%);--surface: #171b21;--surface-2: #1e242c;--border: #2a323d;--text: #e7ecf2;--text-dim: #97a3b2;--accent: #6ea8fe;--accent-2: #a78bfa;--accent-strong: #4b8bff;--accent-grad: linear-gradient(135deg, #4b8bff 0%, #7c5cff 100%);--glow: 0 0 0 rgba(0, 0, 0, 0);--shadow: 0 6px 24px rgba(0, 0, 0, .38);--c-best: #4ade80;--c-good: #86efac;--c-inaccuracy: #fbbf24;--c-mistake: #fb923c;--c-blunder: #f87171;--win: #4ade80;--draw: #94a3b8;--loss: #f87171;--warm: #f59e0b;--violet: #a78bfa;--teal: #2dd4bf}[data-theme=medium]{--bg: #6d7197;--bg-grad: radial-gradient(1100px 560px at 76% -12%, #aaa8d8 0%, #8587b6 43%, #626889 100%);--surface: #787ca2;--surface-2: #898db0;--border: #a9add0;--text: #fcfbff;--text-dim: #e3e3f2;--accent: #c7dfff;--accent-2: #e0ccff;--accent-strong: #657ad1;--accent-grad: linear-gradient(135deg, #648fe2 0%, #805fc9 100%);--glow: 0 0 20px rgba(91, 157, 239, .25);--shadow: 0 8px 26px rgba(22, 36, 61, .32);--c-best: #65e2ad;--c-good: #93ecc6;--c-inaccuracy: #ffd166;--c-mistake: #ffad66;--c-blunder: #ff8f9d;--win: #65e2ad;--draw: #d0dbea;--loss: #ff8f9d;--warm: #ffd166;--violet: #d0c4ff;--teal: #75e4e1}[data-theme=light]{--bg: #f2efff;--bg-grad: radial-gradient(1100px 560px at 76% -12%, #d9d2ff 0%, #e8e5ff 43%, #f5f3ff 100%);--surface: #fdfcff;--surface-2: #ebe8fa;--border: #d4ceea;--text: #231d3e;--text-dim: #665e82;--accent: #496ec4;--accent-2: #7456c7;--accent-strong: #155ab8;--accent-grad: linear-gradient(135deg, #1674d1 0%, #5855c7 100%);--glow: 0 0 18px rgba(33, 104, 201, .18);--shadow: 0 8px 24px rgba(31, 74, 128, .14);--c-best: #087a4b;--c-good: #168f5b;--c-inaccuracy: #a65c00;--c-mistake: #bd480d;--c-blunder: #bd2438;--win: #087a4b;--draw: #637b99;--loss: #bd2438;--warm: #9a5700;--violet: #5744b8;--teal: #087a84}*{box-sizing:border-box}.recharts-tooltip-wrapper .recharts-default-tooltip{background:var(--surface-2)!important;border-color:var(--border)!important}.recharts-tooltip-wrapper .recharts-tooltip-label,.recharts-tooltip-wrapper .recharts-tooltip-item{color:var(--text)!important}body{margin:0;background:var(--bg-grad);background-attachment:fixed;color:var(--text);min-height:100vh;transition:background .3s ease,color .3s ease}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.22;background-image:linear-gradient(45deg,color-mix(in srgb,var(--accent) 8%,transparent) 25%,transparent 25%),linear-gradient(-45deg,color-mix(in srgb,var(--accent-2) 7%,transparent) 25%,transparent 25%);background-size:72px 72px;-webkit-mask-image:linear-gradient(to bottom,#000,transparent 52%);mask-image:linear-gradient(to bottom,#000,transparent 52%);z-index:-1}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{font-weight:650;letter-spacing:-.01em}button{font:inherit;cursor:pointer;border:none;border-radius:10px;padding:10px 16px;background:var(--accent-grad);color:#fff;box-shadow:var(--glow);transition:filter .15s ease,transform .06s ease,box-shadow .2s ease}button:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 4px 18px #5a5aff59}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border);box-shadow:none}button.ghost{background:transparent;color:var(--text-dim);box-shadow:none}button.danger{background:var(--c-blunder);color:#fff;box-shadow:none}input,textarea,select{font:inherit;width:100%;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;color:var(--text)}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px}label{display:block;margin-bottom:6px;color:var(--text-dim);font-size:.85rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);transition:background .3s ease,border-color .3s ease,transform .12s ease,box-shadow .2s ease}.card::selection{background:color-mix(in srgb,var(--accent) 35%,transparent)}a.card:hover{transform:translateY(-2px);box-shadow:0 10px 30px #3c50c82e;text-decoration:none}.container{max-width:1140px;margin:0 auto;padding:24px}.page-hero{min-height:168px;display:flex;align-items:center;justify-content:space-between;gap:28px;overflow:hidden;padding:26px 34px;margin-bottom:24px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:20px;background:linear-gradient(125deg,color-mix(in srgb,var(--surface) 94%,transparent),color-mix(in srgb,var(--accent-2) 18%,var(--surface)));box-shadow:var(--shadow);position:relative}.page-hero h1{margin:4px 0 10px;max-width:650px;font-size:clamp(2rem,5vw,3.45rem);line-height:1.02}.page-hero p{max-width:620px;margin:0;color:var(--text-dim);font-size:1.05rem;line-height:1.6}.page-hero .chess-mark{flex:0 0 auto;margin-bottom:12px;filter:drop-shadow(0 12px 16px rgba(35,15,70,.42));z-index:1}.eyebrow{color:var(--warm);text-transform:uppercase;letter-spacing:.13em;font-size:.76rem;font-weight:800}.hero-steps{display:flex;align-items:baseline;flex-wrap:nowrap;gap:.18em;margin:0;max-width:none!important;white-space:nowrap;font-size:clamp(1.8rem,4vw,3.65rem)!important;line-height:1;background:linear-gradient(105deg,var(--warm),#ef6c35 38%,var(--violet) 72%,var(--accent));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero-steps i{font-family:inherit;font-style:normal}.wooden-pieces{position:absolute;right:20px;bottom:7px;display:flex;align-items:end;gap:9px;font-family:Georgia,Times New Roman,serif;font-size:26px;line-height:1;filter:drop-shadow(0 2px 2px rgba(0,0,0,.6))}.wooden-pieces span{background:linear-gradient(145deg,#fff0b5 4%,#dfa84a 35%,#9a531c 68%,#542607 96%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.wooden-pieces span:nth-child(2n){background-image:linear-gradient(145deg,#f4c783 4%,#bd6c2d 42%,#713313 72%,#351405 96%)}.wooden-pieces span:nth-child(5){font-size:30px}.wooden-pieces span:nth-child(6){font-size:31px}.page-profile-links{min-height:28px;display:flex;justify-content:flex-end;align-items:center;margin-bottom:8px}.page-back-links{display:flex;align-items:center;gap:18px;margin-bottom:8px;font-size:.88rem}.page-back-links a{text-decoration:none}.page-back-links a:hover{color:var(--accent);text-decoration:underline}.coach-navbar-tabs{display:flex;align-items:center;gap:5px;margin-left:18px}.coach-navbar-tabs a{display:inline-flex;align-items:center;gap:5px}.coach-navbar-tabs a span{display:inline-grid;width:22px;height:22px;place-items:center;border-radius:7px;background:linear-gradient(145deg,#f59e0b,#ea580c);color:#fff;font-family:Georgia,serif;font-size:.95rem}.coach-navbar-tabs a:nth-child(2) span{background:linear-gradient(145deg,#fb7185,#db2777)}.coach-navbar-tabs a:nth-child(3) span{background:linear-gradient(145deg,#fbbf24,#d97706)}.coach-navbar-tabs a:nth-child(4) span{background:linear-gradient(145deg,#a78bfa,#6366f1)}.coach-navbar-tabs a:nth-child(5) span{background:linear-gradient(145deg,#38bdf8,#2563eb)}.coach-navbar-tabs a:nth-child(6) span{background:linear-gradient(145deg,#34d399,#059669)}.coach-navbar-tabs a:nth-child(7) span{background:linear-gradient(145deg,#f472b6,#e11d48)}.player-navbar-tabs{display:flex;align-items:center;gap:12px}.player-navbar-tabs a{display:inline-flex;align-items:center;gap:5px;color:var(--text-dim);font-size:.88rem;font-weight:700;text-decoration:none;white-space:nowrap}.player-navbar-tabs a span{display:inline-grid;width:23px;height:23px;place-items:center;border-radius:7px;background:linear-gradient(145deg,#ffb12b,#ef5b39);color:#fff;font-family:Georgia,serif;font-size:1rem;line-height:1;box-shadow:0 3px 9px #672d0f40}.player-navbar-tabs a:nth-child(2) span{background:linear-gradient(145deg,#fb7185,#db2777)}.player-navbar-tabs a:nth-child(3) span{background:linear-gradient(145deg,#a78bfa,#6366f1)}.player-navbar-tabs a:nth-child(4) span{background:linear-gradient(145deg,#38bdf8,#2563eb)}.player-navbar-tabs a:nth-child(5) span{background:linear-gradient(145deg,#34d399,#059669)}.player-navbar-tabs a:nth-child(6) span{background:linear-gradient(145deg,#facc15,#ea580c)}.player-navbar-tabs a:hover,.player-navbar-tabs a.active{color:var(--accent);text-decoration:none}.coach-navbar-tabs a{padding:8px 11px;border:1px solid transparent;border-radius:9px;color:var(--text-dim);font-size:.84rem;font-weight:750;text-decoration:none;white-space:nowrap}.coach-navbar-tabs a:hover{border-color:var(--border);color:var(--text);background:var(--surface-2);text-decoration:none}.coach-navbar-tabs a.active{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:var(--accent-grad);color:#fff;box-shadow:var(--glow)}.navbar-account{color:var(--text-dim);font-weight:650;text-decoration:none;white-space:nowrap}.navbar-account.coach-account{color:var(--text);font-size:1rem;font-weight:800}.navbar-help{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border:1px solid color-mix(in srgb,#8b5cf6 42%,var(--border));border-radius:999px;background:color-mix(in srgb,#8b5cf6 10%,var(--surface));color:var(--text);font-size:.82rem;font-weight:800;text-decoration:none;white-space:nowrap}.navbar-help>span{width:20px;height:20px;display:inline-grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#a78bfa,#6366f1);color:#fff;font-size:.75rem}.navbar-help:hover,.navbar-help.active{background:linear-gradient(135deg,#8b5cf6,#4f46e5);color:#fff;text-decoration:none}.help-page{display:grid;gap:20px}.help-hero{position:relative;min-height:205px;display:flex;align-items:center;justify-content:space-between;gap:28px;overflow:hidden;padding:30px 36px;border:1px solid color-mix(in srgb,#8b5cf6 42%,var(--border));border-radius:24px;background:linear-gradient(120deg,color-mix(in srgb,#38bdf8 13%,var(--surface)),color-mix(in srgb,#8b5cf6 20%,var(--surface)) 55%,color-mix(in srgb,#ec4899 14%,var(--surface)));box-shadow:var(--shadow)}.help-hero h1{margin:4px 0 10px;font-size:clamp(2rem,5vw,3.3rem);line-height:1}.help-hero p:last-child{max-width:620px;margin:0;color:var(--text-dim);font-size:1.02rem}.help-hero .chess-mark{position:relative;z-index:1;flex:0 0 auto;filter:drop-shadow(0 12px 16px rgb(42 20 66 / 35%))}.help-piece-line{position:absolute;right:22px;bottom:-12px;color:#ffffff21;font-family:Georgia,serif;font-size:4rem;letter-spacing:-.06em}.help-intro{display:flex;align-items:center;gap:18px;border-left:5px solid #38bdf8;background:linear-gradient(110deg,color-mix(in srgb,#38bdf8 10%,var(--surface)),var(--surface))}.help-intro h2,.help-intro p{margin:0}.help-intro p{margin-top:5px;color:var(--text-dim);line-height:1.6}.help-badge{width:48px;height:48px;display:grid;flex:0 0 auto;place-items:center;border-radius:50%;background:linear-gradient(145deg,#38bdf8,#2563eb);color:#fff;font-size:1.45rem;font-weight:900;box-shadow:0 7px 16px #2563eb40}.help-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;counter-reset:help-step}.help-step{min-height:225px;display:grid;grid-template-columns:76px 1fr;gap:18px;overflow:hidden;border:0;border-top:5px solid var(--step-color);background:linear-gradient(145deg,color-mix(in srgb,var(--step-color) 11%,var(--surface)),var(--surface));box-shadow:0 10px 28px #1c144621}.help-step:nth-child(4n+1){--step-color: #f97316}.help-step:nth-child(4n+2){--step-color: #ec4899}.help-step:nth-child(4n+3){--step-color: #8b5cf6}.help-step:nth-child(4n+4){--step-color: #10b981}.help-step-marker{display:flex;flex-direction:column;align-items:center;gap:14px}.help-step-marker span{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--step-color);color:#fff;font-size:1rem;font-weight:900;box-shadow:0 6px 14px color-mix(in srgb,var(--step-color) 30%,transparent)}.help-step-marker i{color:color-mix(in srgb,var(--step-color) 68%,var(--text));font-family:Georgia,serif;font-size:2.5rem;font-style:normal}.help-step-copy{display:flex;min-width:0;flex-direction:column;align-items:flex-start}.help-step-copy h2{margin:0 0 8px}.help-step-copy>p:not(.about-card-kicker){flex:1;margin:0 0 18px;color:var(--text-dim);line-height:1.65}.help-step-link{display:inline-flex;align-items:center;gap:8px;color:color-mix(in srgb,var(--step-color) 78%,var(--text));font-size:.84rem;font-weight:900;text-decoration:none}.help-step-link:hover{text-decoration:underline}.help-finish{display:grid;grid-template-columns:60px 1fr auto;align-items:center;gap:18px;border-left:5px solid #f59e0b;background:linear-gradient(110deg,color-mix(in srgb,#f59e0b 12%,var(--surface)),color-mix(in srgb,#8b5cf6 8%,var(--surface)))}.help-finish>div:first-child{color:#f59e0b;font-family:Georgia,serif;font-size:3rem;text-align:center}.help-finish h2,.help-finish p{margin:0}.help-finish p:last-child{margin-top:5px;color:var(--text-dim)}.about-me-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-me-grid label strong{display:block;margin-bottom:10px;color:var(--text);font-size:1.05rem}.about-me-grid textarea{resize:vertical}.about-me-edit>label{position:relative;overflow:hidden;padding-top:24px;border-top:4px solid var(--accent)}.about-me-edit>label:nth-child(2n){border-top-color:#ec4899}.about-me-edit>label:nth-child(3n){border-top-color:#f59e0b}.about-me-edit label small{display:block;margin-top:9px;color:var(--text-dim);font-size:.76rem;line-height:1.45}.about-edit-number{position:absolute;top:16px;right:18px;color:color-mix(in srgb,var(--accent) 55%,var(--text-dim));font-size:.72rem;font-weight:900;letter-spacing:.12em}.about-form-actions{grid-column:1 / -1;align-items:center}.about-me-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.about-me-hero{position:relative;overflow:hidden;padding:28px 32px;border:1px solid color-mix(in srgb,#8b5cf6 40%,var(--border));border-radius:24px;background:linear-gradient(125deg,color-mix(in srgb,#f97316 18%,var(--surface)),color-mix(in srgb,#ec4899 15%,var(--surface)) 48%,color-mix(in srgb,#6366f1 22%,var(--surface)));box-shadow:var(--shadow)}.about-me-hero .page-title-row{margin:0}.about-me-hero .page-title-row p:last-child{margin:6px 0 0;color:var(--text-dim)}.about-me-identity{display:inline-flex;align-items:center;gap:12px;margin-top:24px;padding:10px 16px 10px 10px;border:1px solid rgb(255 255 255 / 28%);border-radius:999px;background:#ffffff1f;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.about-avatar{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#f59e0b,#ea580c);color:#fff;font-family:Georgia,serif;font-size:1.6rem;box-shadow:0 5px 14px #7c2d1247}.about-me-identity>div:last-child{display:grid;gap:2px}.about-me-identity strong{font-size:1rem}.about-me-identity span{max-width:560px;overflow:hidden;color:var(--text-dim);font-size:.8rem;text-overflow:ellipsis;white-space:nowrap}.about-piece-line{position:absolute;right:24px;bottom:-10px;color:#ffffff21;font-family:Georgia,serif;font-size:4.5rem;letter-spacing:-.08em}.about-private-note{display:flex;align-items:center;gap:8px;margin:16px 4px;color:var(--text-dim);font-size:.88rem}.about-private-note span{color:#ec4899}.about-me-read{gap:18px}.about-me-read>.card{position:relative;min-height:200px;overflow:hidden;border:0;box-shadow:0 10px 28px #1c144621}.about-me-read>.card:nth-child(1){border-top:5px solid #f97316;background:linear-gradient(145deg,color-mix(in srgb,#f97316 11%,var(--surface)),var(--surface))}.about-me-read>.card:nth-child(2){border-top:5px solid #ec4899;background:linear-gradient(145deg,color-mix(in srgb,#ec4899 11%,var(--surface)),var(--surface))}.about-me-read>.card:nth-child(3){border-top:5px solid #8b5cf6;background:linear-gradient(145deg,color-mix(in srgb,#8b5cf6 11%,var(--surface)),var(--surface))}.about-me-read>.card:nth-child(4){border-top:5px solid #10b981;background:linear-gradient(145deg,color-mix(in srgb,#10b981 11%,var(--surface)),var(--surface))}.about-me-read>.card:nth-child(5){border-top:5px solid #3b82f6;background:linear-gradient(145deg,color-mix(in srgb,#3b82f6 11%,var(--surface)),var(--surface))}.about-me-read>.card:nth-child(6){border-top:5px solid #eab308;background:linear-gradient(145deg,color-mix(in srgb,#eab308 11%,var(--surface)),var(--surface))}.about-me-read>.card:nth-child(7){border-top:5px solid #ef4444;background:linear-gradient(145deg,color-mix(in srgb,#ef4444 11%,var(--surface)),var(--surface))}.about-me-read .about-piece{position:absolute;right:18px;bottom:-12px;color:color-mix(in srgb,var(--accent) 20%,transparent);font-family:Georgia,serif;font-size:6.5rem;line-height:1;transform:rotate(-7deg)}.about-me-read h2{position:relative;margin-top:0;padding-right:70px;color:var(--text)}.about-card-kicker{margin:0 0 7px;color:var(--accent)!important;font-size:.7rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.about-copy{position:relative;max-width:92%;color:var(--text-dim);line-height:1.7}.about-copy p{margin:0 0 14px}.about-copy p:last-child{margin-bottom:0}.about-copy ul,.about-copy ol{display:grid;gap:8px;margin:8px 0 16px;padding-left:1.45rem}.about-copy li{padding-left:.25rem}.about-copy li::marker{color:var(--accent);font-weight:900}.about-empty{position:relative;max-width:80%;margin-top:18px;color:var(--text-dim);font-style:italic;line-height:1.65}.tournament-overview{margin:14px 0 20px;gap:12px}.tournament-overview .card{min-height:0;padding:13px 16px;box-shadow:none}.tournament-overview .stat{margin-top:1px;font-size:1.75rem;line-height:1.05}.tournament-overview .stat-label{font-size:.7rem}.tournament-overview .muted{margin-top:3px}.performance-heading{scroll-margin-top:100px}.student-dashboard{display:grid;gap:20px}.dashboard-welcome{position:relative;min-height:210px;display:flex;align-items:center;justify-content:space-between;gap:28px;overflow:hidden;padding:30px 36px;border:1px solid color-mix(in srgb,var(--warm) 42%,var(--border));border-radius:24px;background:linear-gradient(120deg,color-mix(in srgb,var(--surface) 94%,transparent),color-mix(in srgb,#f97316 20%,var(--surface)) 52%,color-mix(in srgb,#7c3aed 24%,var(--surface)));box-shadow:var(--shadow)}.dashboard-welcome h1{margin:4px 0 10px;font-size:clamp(2rem,5vw,3.25rem);line-height:1}.dashboard-welcome p{max-width:680px;margin:0;font-size:1.02rem;line-height:1.55}.dashboard-welcome .chess-mark{flex:0 0 auto;filter:drop-shadow(0 14px 16px rgb(42 20 66 / 35%))}.dashboard-piece-line{position:absolute;right:22px;bottom:-5px;color:#ffffff21;font-family:Georgia,serif;font-size:3rem;letter-spacing:.04em;white-space:nowrap}.dashboard-next{display:flex;align-items:center;justify-content:space-between;gap:24px;border-left:5px solid #3b82f6;background-image:linear-gradient(105deg,color-mix(in srgb,#3b82f6 10%,var(--surface)),var(--surface))}.dashboard-next>div{min-width:0}.dashboard-next .snapshot-icon{float:left;margin-right:14px}.dashboard-next h2{margin:3px 0}.dashboard-snapshot-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.snapshot-card{min-height:190px;display:flex;flex-direction:column;padding:20px;border:1px solid rgb(255 255 255 / 18%);border-radius:18px;color:#fff;text-decoration:none;box-shadow:0 10px 24px #14143738;transition:transform .16s ease,box-shadow .16s ease}.snapshot-card:hover{color:#fff;text-decoration:none;transform:translateY(-3px);box-shadow:0 15px 30px #1414374d}.snapshot-card>div{flex:1}.snapshot-card.ratings{grid-column:span 5;background:linear-gradient(140deg,#a34c13,#ef8c27)}.snapshot-card.assignments{grid-column:span 3;background:linear-gradient(140deg,#174bb5,#428cf2)}.snapshot-card.planner{grid-column:span 4;background:linear-gradient(140deg,#08795a,#21b887)}.snapshot-card.tournaments{grid-column:span 3;background:linear-gradient(140deg,#a82b55,#ed6684)}.snapshot-card.performance{grid-column:span 4;background:linear-gradient(140deg,#5030a7,#8b5cf6)}.snapshot-card.profile{grid-column:span 5;background:linear-gradient(140deg,#a83f30,#ec7355)}.snapshot-card.quiz{grid-column:span 12;min-height:165px;background:linear-gradient(140deg,#08795a,#10b981 48%,#2563eb)}.snapshot-icon{width:42px;height:42px;display:grid;place-items:center;margin-bottom:12px;border:1px solid rgb(255 255 255 / 42%);border-radius:50%;background:#ffffff2e;color:#fff;font-family:Georgia,serif;font-size:1.55rem;box-shadow:inset 0 1px 2px #ffffff59}.snapshot-label{margin:0 0 8px;font-size:.78rem;font-weight:850;letter-spacing:.11em;text-transform:uppercase;opacity:.84}.snapshot-number{display:block;font-size:2.65rem;line-height:1}.snapshot-card p:not(.snapshot-label){margin:8px 0;color:#ffffffd6}.snapshot-link{margin-top:12px;font-size:.82rem;font-weight:800}.rating-pair{display:grid;grid-template-columns:1fr auto;gap:9px 14px;font-size:1.15rem}.rating-pair small{align-self:center;opacity:.8}.snapshot-progress{height:7px;overflow:hidden;border-radius:99px;background:#0000002e}.snapshot-progress i{display:block;height:100%;border-radius:inherit;background:#fff}.dashboard-lower{align-items:stretch}.focus-row,.glance-row{display:grid;grid-template-columns:minmax(90px,auto) 1fr auto;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--border)}.focus-row span{color:var(--warm);font-size:.75rem;font-weight:800;text-transform:uppercase}.focus-row small{color:var(--text-dim)}.glance-row{grid-template-columns:1fr auto}.glance-row span{color:var(--text-dim)}.glance-row strong{text-transform:capitalize}.coach-welcome{background:linear-gradient(120deg,color-mix(in srgb,var(--surface) 94%,transparent),color-mix(in srgb,#7c3aed 24%,var(--surface)) 52%,color-mix(in srgb,#f59e0b 18%,var(--surface)))}.coach-dashboard .dashboard-snapshot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.coach-dashboard .snapshot-card.ratings,.coach-dashboard .snapshot-card.assignments,.coach-dashboard .snapshot-card.planner,.coach-dashboard .snapshot-card.tournaments,.coach-dashboard .snapshot-card.performance,.coach-dashboard .snapshot-card.profile{grid-column:auto;min-height:220px}.coach-dashboard .snapshot-card{justify-content:space-between}.coach-dashboard .dashboard-lower>.card{height:100%}.coach-player-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));margin-top:20px}.coach-player-card{border-top:4px solid var(--warm)}.coach-player-card h2,.coach-player-card p{margin:4px 0}.player-avatar{float:left;width:48px;height:48px;display:grid;place-items:center;margin-right:12px;border-radius:50%;background:linear-gradient(145deg,#fb7185,#7c3aed);color:#fff;font-family:Georgia,serif;font-size:1.8rem}.player-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;clear:both;margin:18px 0}.player-metrics span{display:grid;gap:3px;padding:10px;border-radius:9px;background:var(--surface-2);color:var(--text-dim);font-size:.7rem;text-align:center}.player-metrics strong{color:var(--text);font-size:1.15rem}.schedule-list{display:grid;gap:12px}.schedule-item{display:grid;grid-template-columns:74px 1fr auto;align-items:start;gap:14px;border-left:4px solid #ec4899}.schedule-item h3,.schedule-item p{margin:0 0 6px}.schedule-date{display:grid;place-items:center;padding:9px;border-radius:10px;background:linear-gradient(145deg,#f472b6,#7c3aed);color:#fff;text-align:center}.schedule-page{display:grid;gap:18px}.schedule-view-tabs{display:flex;gap:6px;padding:5px;width:fit-content;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}.schedule-view-tabs button{min-width:82px;padding:8px 13px;box-shadow:none}.schedule-view-tabs button.active{background:var(--accent-grad)}.availability-manager{overflow:hidden;border:1px solid color-mix(in srgb,#10b981 38%,var(--border));border-radius:14px;background:color-mix(in srgb,#10b981 6%,var(--surface));box-shadow:var(--shadow)}.availability-manager summary{padding:15px 18px;color:var(--text);cursor:pointer;font-weight:850}.availability-manager-body{display:grid;gap:14px;padding:4px 18px 18px;border-top:1px solid var(--border)}.availability-manager-body>label:first-child{width:min(100%,280px);margin-top:14px}.off-day-toggle{display:flex;align-items:center;gap:9px;width:fit-content;color:var(--text);font-weight:750}.off-day-toggle input{width:19px;height:19px;margin:0}.availability-window-list{display:grid;gap:10px}.availability-window-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.availability-window-heading button{padding:7px 10px}.availability-window-row{display:grid;grid-template-columns:minmax(130px,220px) minmax(130px,220px) auto;align-items:end;gap:10px}.availability-window-row label{margin:0}.availability-window-row button{margin-bottom:1px}.weekly-availability-editor{gap:10px}.weekly-rule{display:grid;grid-template-columns:130px minmax(0,1fr) auto;align-items:start;gap:12px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.weekly-rule-heading,.weekly-window-list{display:grid;gap:8px}.weekly-add-window{align-self:end;padding:8px 10px}.date-override-manager{border-color:color-mix(in srgb,#f59e0b 42%,var(--border));background:color-mix(in srgb,#f59e0b 6%,var(--surface))}.schedule-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.schedule-summary-grid .card{display:grid;gap:4px;min-height:112px;align-content:center;border-top:4px solid #8b5cf6}.schedule-summary-grid .card:nth-child(2){border-top-color:#ec4899}.schedule-summary-grid .card:nth-child(3){border-top-color:#10b981}.schedule-summary-grid span,.schedule-summary-grid small{color:var(--text-dim)}.schedule-summary-grid strong{font-size:1.8rem}.schedule-calendar-controls{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:8px}.schedule-calendar-controls h2{margin:0;text-align:center}.schedule-calendar-controls>div{min-width:0;text-align:center}.schedule-timezone{display:flex;align-items:center;justify-content:center;gap:5px;margin:4px 0 0;color:var(--text-dim);font-size:.72rem}.schedule-timezone span{color:var(--accent)}.schedule-calendar-controls button:first-child,.schedule-calendar-controls button:last-child{width:42px;padding:8px;font-size:1.35rem}.schedule-workspace{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:24px;align-items:start}.schedule-form-card{position:sticky;top:92px}.schedule-form-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.schedule-form-heading h2{margin-top:0}.schedule-form-heading span{max-width:58%;overflow:hidden;padding:5px 9px;border:1px solid color-mix(in srgb,#8b5cf6 38%,var(--border));border-radius:999px;background:color-mix(in srgb,#8b5cf6 9%,var(--surface));color:var(--text-dim);font-size:.68rem;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.schedule-form-card label small{color:var(--text-dim);font-size:.7rem;font-weight:600}.day-view-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;align-items:start}.calendar-day-column{min-width:128px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}.calendar-day-heading{height:62px;display:flex;align-items:center;justify-content:center;gap:8px;border-bottom:1px solid var(--border)}.calendar-day-heading strong{font-size:.8rem;text-transform:uppercase}.calendar-day-heading span{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;font-weight:800}.calendar-day-heading span.today{background:var(--accent-grad);color:#fff}.calendar-timeline{position:relative;margin-left:42px;background:repeating-linear-gradient(to bottom,transparent 0,transparent 57px,var(--border) 58px)}.calendar-hour-line{position:absolute;left:-42px;right:0;height:1px}.calendar-hour-line span{position:absolute;top:-7px;left:4px;color:var(--text-dim);font-size:.65rem}.calendar-positioned-session{position:absolute;left:3px;right:5px;z-index:1}.calendar-session{height:100%;overflow:hidden;padding:8px 10px;border-left:4px solid #6366f1;border-radius:8px;background:linear-gradient(135deg,color-mix(in srgb,#6366f1 24%,var(--surface)),color-mix(in srgb,#38bdf8 13%,var(--surface)));box-shadow:0 4px 10px #1e295a2e}.calendar-session strong,.calendar-session span,.calendar-session small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-session strong{font-size:.78rem}.calendar-session span,.calendar-session small{color:var(--text-dim);font-size:.67rem}.calendar-session.completed{border-left-color:#10b981;opacity:.7}.calendar-day-column.full .calendar-session{padding:8px 12px}.calendar-day-column.full .calendar-session strong{font-size:.9rem}.free-time-panel{position:sticky;top:92px;display:grid;gap:8px}.free-time-panel h2,.free-time-panel p{margin:0}.free-window{display:grid;gap:3px;padding:10px 12px;border:1px solid color-mix(in srgb,#10b981 40%,var(--border));background:color-mix(in srgb,#10b981 10%,var(--surface));color:var(--text);box-shadow:none;text-align:left}.free-window span{color:var(--text-dim);font-size:.74rem}.free-window:hover:not(:disabled){background:color-mix(in srgb,#10b981 18%,var(--surface));box-shadow:none}.free-window-choice{overflow:hidden;border:1px solid transparent;border-radius:10px}.free-window-choice.selected{border-color:color-mix(in srgb,#10b981 50%,var(--border))}.free-window-choice .free-window{width:100%;border:0;border-radius:9px}.slot-confirm{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:6px;padding:8px;background:color-mix(in srgb,#10b981 12%,var(--surface))}.slot-confirm span{color:var(--text-dim);font-size:.72rem}.slot-confirm button{padding:6px 9px;font-size:.72rem}.week-calendar{display:grid;grid-template-columns:repeat(7,minmax(128px,1fr));gap:7px;overflow-x:auto;padding:2px 2px 14px}.month-calendar{overflow:hidden;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}.month-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.month-weekdays span{padding:12px;color:var(--text-dim);font-size:.72rem;font-weight:800;text-align:center;text-transform:uppercase}.month-day{min-height:118px;display:block;overflow:hidden;padding:9px;border:0;border-top:1px solid var(--border);border-right:1px solid var(--border);border-radius:0;background:transparent;color:var(--text);box-shadow:none;text-align:left}.month-day:nth-child(7n){border-right:0}.month-day:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 9%,var(--surface));box-shadow:none;filter:none}.month-day>span{width:27px;height:27px;display:grid;place-items:center;margin-bottom:5px;border-radius:50%;font-weight:800}.month-day.today>span{background:var(--accent-grad);color:#fff}.month-day.outside{opacity:.42}.month-day.off{background:color-mix(in srgb,var(--text-dim) 9%,var(--surface))}.month-day>b{display:inline-block;padding:2px 6px;border-radius:99px;background:color-mix(in srgb,var(--text-dim) 18%,var(--surface));color:var(--text-dim);font-size:.62rem}.month-day i{display:block;overflow:hidden;margin:3px 0;padding:3px 5px;border-radius:4px;background:color-mix(in srgb,#6366f1 18%,var(--surface-2));color:var(--text);font-size:.65rem;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.month-day small{color:var(--accent);font-size:.65rem}.schedule-add-drawer{border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}.schedule-add-drawer summary{padding:16px 20px;color:var(--accent);cursor:pointer;font-weight:850}.schedule-add-drawer .schedule-form-card{position:static;border:0;border-top:1px solid var(--border);border-radius:0;box-shadow:none}.planner-card-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.planner-card-grid h2{margin:8px 0}.federation-profile-links{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap;color:var(--text-dim);font-size:.82rem}.federation-profile-links .profile-link{display:inline-flex;align-items:center;gap:6px;padding:5px 10px 5px 6px;border:1px solid color-mix(in srgb,var(--profile-color) 38%,var(--border));border-radius:999px;background:color-mix(in srgb,var(--profile-color) 10%,var(--surface));color:color-mix(in srgb,var(--profile-color) 80%,var(--text));font-weight:800;text-decoration:none}.federation-profile-links .profile-link>span{width:19px;height:19px;display:inline-grid;place-items:center;border-radius:50%;background:var(--profile-color);color:#fff;font-family:Georgia,serif;font-size:.65rem;line-height:1}.federation-profile-links .profile-link:hover{background:color-mix(in srgb,var(--profile-color) 18%,var(--surface));text-decoration:none;transform:translateY(-1px)}.profile-link.uscf{--profile-color: #1d4ed8}.profile-link.fide{--profile-color: #b7791f}.profile-link.chesscom{--profile-color: #5d8c3e}.profile-link.lichess{--profile-color: #a05a2c}.puzzle-page{display:grid;gap:20px}.puzzle-hero{min-height:190px;display:flex;align-items:center;justify-content:space-between;gap:24px;overflow:hidden;padding:30px 36px;border:1px solid color-mix(in srgb,#10b981 42%,var(--border));border-radius:24px;background:linear-gradient(120deg,color-mix(in srgb,#10b981 15%,var(--surface)),color-mix(in srgb,#38bdf8 14%,var(--surface)) 55%,color-mix(in srgb,#8b5cf6 16%,var(--surface)));box-shadow:var(--shadow)}.puzzle-hero h1{margin:4px 0 10px;font-size:clamp(2rem,5vw,3.2rem)}.puzzle-hero p:last-child{max-width:650px;margin:0;color:var(--text-dim)}.puzzle-hero>span{color:#10b981;font-family:Georgia,serif;font-size:7rem;filter:drop-shadow(0 12px 16px rgb(20 83 65 / 28%))}.puzzle-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.puzzle-stats .card{display:grid;gap:4px;border-top:4px solid #10b981}.puzzle-stats .card:nth-child(2){border-top-color:#8b5cf6}.puzzle-stats .card:nth-child(3){border-top-color:#f59e0b}.puzzle-stats span{color:var(--text-dim);font-size:.75rem;font-weight:800;text-transform:uppercase}.puzzle-stats strong{font-size:1.8rem}.puzzle-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px;align-items:start}.puzzle-board-card{min-width:0;border-top:5px solid #10b981}.puzzle-board-heading{display:flex;align-items:start;justify-content:space-between;gap:12px}.puzzle-board-heading h2{margin-top:0}.puzzle-board-heading>span{padding:5px 9px;border-radius:99px;background:color-mix(in srgb,#10b981 14%,var(--surface));color:#10b981;font-size:.75rem;font-weight:800}.puzzle-board{width:fit-content;max-width:100%;overflow:hidden;margin:0 auto;border:5px solid color-mix(in srgb,#10b981 40%,var(--border));border-radius:8px;box-shadow:0 14px 28px #14324638}.puzzle-feedback{min-height:26px;margin:14px 0;color:var(--text-dim);font-weight:750}.puzzle-empty{min-height:420px;display:grid;place-content:center;justify-items:center;color:var(--text-dim);text-align:center}.puzzle-empty span{color:#10b981;font-family:Georgia,serif;font-size:6rem}.puzzle-controls{position:sticky;top:92px;border-top:5px solid #8b5cf6}.puzzle-controls label{margin-top:14px}.puzzle-instructions{display:grid;gap:8px;padding-left:1.3rem;color:var(--text-dim)}.puzzle-instructions li::marker{color:#8b5cf6;font-weight:900}.puzzle-credit{color:var(--text-dim);font-size:.75rem;line-height:1.5}.puzzle-options,.quiz-mode{border:0;padding:0;margin:16px 0}.puzzle-options legend,.quiz-mode legend{margin-bottom:8px;font-weight:800}.puzzle-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.puzzle-options legend{grid-column:1 / -1}.puzzle-options button{text-align:left}.puzzle-options button span{margin-right:6px}.quiz-mode{display:grid;gap:8px}.quiz-mode label{display:flex;align-items:center;gap:8px;margin:0;font-weight:600}.quiz-mode input{width:auto}.dashboard-lead{grid-template-columns:minmax(0,1.08fr) minmax(330px,.92fr);align-items:start}.section-heading,.page-title-row,.game-heading{display:flex;align-items:center;gap:13px;margin:8px 0 18px}.section-heading h2,.section-heading p{margin:0}.section-heading p{margin-top:3px;color:var(--text-dim);font-size:.88rem}.section-icon{width:48px;height:48px;display:inline-grid;flex:0 0 auto;place-items:center;border:2px solid rgb(255 255 255 / 42%);border-radius:50%;font-family:Georgia,Times New Roman,serif;font-size:1.7rem;color:#fff;text-shadow:0 2px 3px rgb(0 0 0 / 32%);box-shadow:inset 0 1px 3px #ffffff6b,0 8px 18px #0003}.section-icon.amber{background:radial-gradient(circle at 32% 25%,#ffe08a,#f59e0b 42%,#b45309)}.section-icon.violet{background:radial-gradient(circle at 32% 25%,#d8b4fe,#8b5cf6 42%,#4338ca)}.student-selector{width:min(100%,480px);padding:10px 12px 12px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--surface) 88%,transparent);box-shadow:0 5px 16px #1f2a5014}.student-selector-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px;color:var(--text-dim);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.student-selector-title small{font-size:.68rem;font-weight:650;letter-spacing:0;text-transform:none}.student-selector-controls{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(170px,1.2fr);gap:8px}.student-selector input,.student-selector select{height:38px;padding:7px 10px;border-radius:8px;font-size:.88rem}.planner-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:24px 0 18px}.planner-heading h2,.planner-heading p{margin:0}.planner-heading .muted{margin-top:5px}.planner-table-wrap{padding:0;overflow-x:auto}.planner-table{min-width:900px}.planner-table th{background:color-mix(in srgb,var(--accent) 10%,var(--surface))}.planner-table td{vertical-align:middle}.planner-table input,.planner-table select{min-width:120px;padding:8px 9px}.planner-table td:nth-child(2) input{min-width:230px}.planner-number{width:64px;color:var(--accent);font-size:1.1rem;font-weight:800;text-align:center}.planner-actions{display:flex;gap:6px}.planner-actions button{padding:8px 10px;font-size:.78rem}.progress-input{display:flex;align-items:center;gap:6px}.progress-input input{min-width:74px;width:74px}.planner-progress{height:5px;margin-top:7px;overflow:hidden;border-radius:99px;background:var(--surface-2)}.planner-progress i{display:block;height:100%;border-radius:inherit;background:var(--accent-grad)}.planner-new-row td{background:color-mix(in srgb,var(--warm) 6%,var(--surface))}.planner-empty{padding:34px!important;color:var(--text-dim);text-align:center}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.dashboard-lead{grid-template-columns:minmax(0,1fr) minmax(300px,340px);gap:22px}.tournament-library{min-width:0}.tournament-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.add-games-rail{min-width:0;padding-top:74px}.add-games-rail>.card{position:sticky;top:92px}.tournament-card{position:relative;display:block;min-width:0;min-height:116px;padding:18px 42px 18px 18px;overflow:hidden;border:1px solid var(--border);border-top:3px solid var(--warm);background:linear-gradient(145deg,color-mix(in srgb,var(--warm) 7%,var(--surface)),var(--surface) 70%);color:inherit}.tournament-card:hover{border-color:color-mix(in srgb,var(--warm) 60%,var(--border));text-decoration:none}.tournament-card:after{content:"→";position:absolute;right:16px;bottom:16px;color:var(--accent);font-size:1.15rem}.tournament-card-content{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;align-items:start}.tournament-card-copy{min-width:0}.tournament-card-copy strong{display:block;color:var(--text);line-height:1.3;overflow-wrap:anywhere}.tournament-card-copy .muted{margin-top:7px;font-size:.8rem;line-height:1.4}.tournament-icon{width:34px;height:34px;display:grid;place-items:center;margin:0;border-radius:10px;color:#fff;background:linear-gradient(135deg,var(--warm),#e85d04);font-family:Georgia,serif;font-size:1.1rem;box-shadow:0 4px 10px #7c2d1233}.row{display:flex;gap:16px;flex-wrap:wrap}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 900px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.muted{color:var(--text-dim)}.center{text-align:center}.spacer{flex:1}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.75rem;font-weight:600;border:1px solid var(--border)}.badge.win{color:var(--win);border-color:var(--win)}.badge.loss{color:var(--loss);border-color:var(--loss)}.badge.draw{color:var(--draw);border-color:var(--draw)}.stat{font-size:2rem;font-weight:700;background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.stat-label{color:var(--text-dim);font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}.navbar{display:flex;align-items:center;gap:20px;padding:16px 24px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 72%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:10}.brand{display:inline-flex;align-items:center;gap:7px;font-weight:800;font-size:1.15rem;color:var(--text)}.brand:hover{text-decoration:none}.brand-name strong{background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.chess-mark{display:block}.notification-badge{padding:6px 10px;border-radius:999px;background:color-mix(in srgb,var(--warm) 18%,var(--surface));border:1px solid var(--warm);color:var(--warm);font-weight:800}.notification-badge:hover{text-decoration:none}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:100%;max-width:420px}.error{color:var(--c-blunder);font-size:.9rem;margin-top:8px}.success{color:var(--c-best);font-size:.9rem}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}th{color:var(--text-dim);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.sort-button{display:inline-flex;align-items:center;gap:7px;width:100%;padding:4px 0;border-radius:4px;background:transparent;color:inherit;box-shadow:none;text-align:left;text-transform:inherit;letter-spacing:inherit;font-size:inherit;font-weight:700}.sort-button:hover:not(:disabled){color:var(--text);background:transparent;box-shadow:none;filter:none}.sort-button span{color:var(--accent);font-size:.72rem}tr:hover td{background:var(--surface-2)}.table-card{padding:0;overflow-x:auto}.table-card th{background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.table-card tbody tr:nth-child(2n) td{background:color-mix(in srgb,var(--surface-2) 55%,transparent)}.pill-row{display:flex;gap:8px;flex-wrap:wrap}.move-list{max-height:460px;overflow-y:auto}.move-pair{display:grid;grid-template-columns:34px minmax(0,1fr) minmax(0,1fr);align-items:start}.move-number{padding:8px 4px}.move-slot{min-width:0}.move{padding:6px 10px;border-radius:8px;cursor:pointer;display:flex;gap:8px;align-items:baseline}.move:hover{background:var(--surface-2)}.move.active{background:var(--accent-strong);color:#fff}.move-button{width:100%;border:0;box-shadow:none;background:transparent;color:var(--text);text-align:left;font-size:.95rem}.move-button:hover{filter:none;transform:none;box-shadow:none}.move-feedback{margin:0 8px 8px;padding:9px 12px;border-left:3px solid;background:var(--surface-2);color:var(--text-dim);font-size:.86rem}.game-board{width:min(400px,calc(100vw - 98px))}.game-board>div:first-child{width:100%!important}.analysis-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.analysis-toolbar button{padding:7px 11px}.fullscreen-button{width:42px;height:38px;padding:0!important;font-size:1.35rem;line-height:1}.engine-note{margin-top:12px;border-left:4px solid var(--teal)}.variation-line{margin:7px 0;font-weight:700;line-height:1.6}.variation-branch{margin:0 0 12px;padding:12px;border:1px solid color-mix(in srgb,var(--teal) 45%,var(--border));border-left:4px solid var(--teal);border-radius:9px;background:color-mix(in srgb,var(--teal) 8%,var(--surface-2))}.variation-branch .muted{margin-top:4px;font-size:.78rem}.analysis-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;overflow:hidden;padding:16px;margin:0;background:var(--bg-grad);grid-template-columns:32px minmax(0,1fr) minmax(300px,25vw);align-items:start;align-content:start}.analysis-fullscreen .game-board{width:auto;max-width:none;justify-self:center}.analysis-fullscreen .moves-panel{width:100%;height:calc(100vh - 40px);justify-self:stretch;overflow:hidden}.analysis-fullscreen .move-list{max-height:calc(100vh - 165px);overflow-y:auto}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.game-review-layout{display:grid;grid-template-columns:26px minmax(300px,400px) minmax(300px,1fr);gap:16px;margin-top:16px;align-items:start}.moves-panel{min-width:0;border-top:4px solid var(--violet)}.game-comments .card:nth-child(1){border-top:4px solid var(--c-best)}.game-comments .card:nth-child(2){border-top:4px solid var(--c-blunder)}.game-comments .card:nth-child(3){border-top:4px solid var(--warm)}.assignment-form{border-top:4px solid var(--warm);margin:24px 0}.assignment-form label{margin-bottom:14px}.assignment-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.coach-assignment-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(285px,340px);gap:24px;align-items:start}.assignment-rail{position:sticky;top:88px;max-height:calc(100vh - 110px);overflow-y:auto;padding:16px;border:1px solid var(--border);border-radius:16px;background:color-mix(in srgb,var(--surface) 90%,transparent);box-shadow:var(--shadow)}.assignment-rail-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.assignment-rail-heading h2,.assignment-rail-heading p{margin:0}.assignment-rail-heading p{margin-top:3px;color:var(--text-dim);font-size:.78rem}.assignment-rail-heading button{padding:7px 10px;font-size:.8rem;white-space:nowrap}.assignment-rail-list{display:grid;gap:9px}.assignment-rail .assignment-card{padding:0;box-shadow:none;overflow:hidden}.assignment-summary{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px;border-radius:0;background:transparent;color:var(--text);box-shadow:none;text-align:left}.assignment-summary:hover:not(:disabled){background:var(--surface-2);box-shadow:none;filter:none}.assignment-summary span:first-child{min-width:0;display:grid;gap:3px}.assignment-summary strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-summary small{color:var(--text-dim);font-size:.72rem}.assignment-card-body,.assignment-rail .assignment-card>form{padding:0 12px 14px}.assignment-rail .assignment-card-body p{font-size:.84rem}.compact-create-form{margin-top:16px;scroll-margin-top:90px}.assignment-card{border-left:4px solid var(--violet)}.assignment-card h3{margin-bottom:8px}.assignment-card label{margin-bottom:12px}.assignment-instructions{white-space:pre-wrap;line-height:1.65}.assignment-file{margin-bottom:16px;overflow:hidden}.assignment-preview{display:block;width:100%;max-height:70vh;object-fit:contain;border-radius:10px;background:#111}.assignment-document{display:block;width:100%;min-height:70vh;border:1px solid var(--border);border-radius:10px;background:#fff}.status-fieldset{border:0;padding:0;margin:24px 0 0}.status-fieldset legend{font-weight:800;margin-bottom:10px}.button-link{display:inline-flex;align-items:center;padding:10px 16px;border-radius:8px;background:var(--accent-grad);color:#fff;font-weight:800;text-decoration:none}.button-link:hover{text-decoration:none;filter:brightness(1.08)}.submission-list{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:16px 0}.submission-actions{display:flex;flex-wrap:wrap;gap:8px}.homework-submit-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:18px 0}.camera-capture{width:100%;margin:18px 0;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}.camera-viewport{position:relative;min-height:min(72vh,760px);overflow:hidden;border-radius:12px;background:#111}.camera-capture video{display:block;width:100%;height:min(72vh,760px);object-fit:contain}.camera-capture img{display:block;width:100%;max-height:78vh;object-fit:contain;border-radius:10px;background:#111}.camera-shutter{position:absolute;right:clamp(14px,3vw,32px);top:50%;width:70px;height:70px;padding:7px;transform:translateY(-50%);border:3px solid #fff;border-radius:50%;background:#00000073;box-shadow:0 3px 18px #00000073}.camera-shutter span{display:block;width:100%;height:100%;border-radius:50%;background:#fff}.camera-shutter:hover:not(:disabled),.camera-shutter:focus-visible{filter:none;transform:translateY(-50%) scale(1.06)}.camera-help{display:flex;align-items:center;justify-content:space-between;gap:12px}.camera-capture p{margin:12px 0}.image-editor{display:grid;gap:14px}.image-editor-stage{position:relative;display:grid;place-items:center;min-height:280px;max-height:72vh;overflow:hidden;border-radius:10px;background:#111;touch-action:none}.image-editor-stage img{display:block;max-width:100%;max-height:72vh;object-fit:contain;-webkit-user-select:none;user-select:none}.crop-selection{position:absolute;border:3px solid #fff;outline:9999px solid rgb(0 0 0 / 48%);pointer-events:none}.image-editor-tools{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.image-editor-tools label{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0;font-weight:700}.image-editor-tools input[type=range]{width:min(240px,45vw);margin:0}.image-editor-tools output{min-width:44px;color:var(--text-dim)}.coach-image-editor{margin-bottom:24px;border-top:4px solid var(--warm)}.file-submission-form{margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}.success{color:var(--win);font-weight:700}.progress-note{margin:14px 0;padding:14px;border-radius:10px;background:var(--surface-2);border-left:4px solid var(--warm)}.progress-note p{white-space:pre-wrap;margin:8px 0}.assignment-insights{margin:24px 0 30px}.insight-stat{border-top:4px solid var(--accent)}.insight-stat:nth-child(2){border-top-color:var(--warm)}.insight-stat:nth-child(3){border-top-color:var(--c-blunder)}.insight-stat:nth-child(4){border-top-color:var(--teal)}.insight-stat p{color:var(--text-dim);margin:6px 0 0;font-size:.84rem}.insight-charts{margin-top:16px}.insight-charts h3{margin-top:0}.chart-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;color:var(--text-dim);font-size:.84rem}.chart-legend span{display:inline-flex;align-items:center;gap:6px}.chart-legend i{width:9px;height:9px;border-radius:50%}.deadline-bars{display:grid;gap:10px}.deadline-bars div{display:flex;justify-content:space-between;gap:16px;padding:12px;border-radius:9px;background:var(--surface-2)}.deadline-bars strong{color:var(--accent);font-size:1.12rem}.rec{border-left:3px solid var(--accent);padding:12px 16px;background:var(--surface-2);border-radius:8px;margin-bottom:12px}.rec h4{margin:0 0 4px}.rec p{margin:0;color:var(--text-dim);font-size:.9rem}.theme-switch{position:fixed;top:14px;right:16px;z-index:50;display:flex;gap:2px;padding:4px;border-radius:999px;background:color-mix(in srgb,var(--surface) 80%,transparent);border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow)}.theme-switch.inline{position:static;top:auto;right:auto;z-index:auto;flex-direction:column;flex:0 0 auto;gap:0;padding:2px;border-radius:11px;box-shadow:none}.theme-switch.inline .theme-opt{width:100%;justify-content:flex-start;padding:3px 7px;border-radius:8px;font-size:.68rem;line-height:1.1}.theme-switch.inline .theme-ic{width:14px;font-size:.78rem;text-align:center}.theme-switch.inline .theme-opt.active{box-shadow:none}.theme-opt{background:transparent;color:var(--text-dim);border-radius:999px;padding:6px 12px;font-size:.82rem;font-weight:600;box-shadow:none;display:inline-flex;align-items:center;gap:6px}.theme-opt:hover:not(:disabled){filter:none;color:var(--text);box-shadow:none}.theme-opt.active{background:var(--accent-grad);color:#fff;box-shadow:var(--glow)}.theme-ic{font-size:1rem;line-height:1}@media (max-width: 620px){.theme-switch:not(.inline) .theme-lbl{display:none}}@media (max-width: 620px){.tournament-grid{grid-template-columns:1fr}.container{padding:16px}.move-feedback{margin-left:16px}.navbar{gap:8px;padding:11px 14px}.brand-name{display:none}.coach-navbar-tabs{order:2;width:100%;margin:2px 0 0;overflow-x:auto}.coach-navbar-tabs a{padding:7px 9px;font-size:.78rem}.navbar:has(.coach-navbar-tabs){flex-wrap:wrap}.navbar:has(.coach-navbar-tabs) .spacer{display:none}.navbar-account.coach-account{margin-left:auto;font-size:.92rem}.navbar:has(.player-navbar-tabs){flex-wrap:wrap}.navbar:has(.player-navbar-tabs) .spacer{display:none}.player-navbar-tabs{order:2;width:100%;overflow-x:auto;padding-bottom:2px}.navbar-help{margin-left:auto}.about-me-grid{grid-template-columns:1fr}.puzzle-hero{min-height:165px;padding:22px 18px}.puzzle-hero>span{font-size:4.5rem}.puzzle-stats,.puzzle-layout{grid-template-columns:1fr}.puzzle-controls{position:static}.puzzle-empty{min-height:280px}.puzzle-options{grid-template-columns:1fr}.about-me-hero{padding:22px 18px;border-radius:18px}.about-me-heading{align-items:flex-start;flex-direction:column}.about-me-heading button{width:100%}.about-me-identity{max-width:100%;margin-top:18px}.about-me-identity>div:last-child{min-width:0}.about-me-identity span{max-width:68vw}.about-piece-line{display:none}.about-me-read>.card{min-height:170px}.dashboard-welcome{min-height:190px;padding:24px 20px}.help-hero{min-height:180px;padding:24px 20px}.help-hero .chess-mark{width:72px;height:72px}.help-piece-line{display:none}.help-steps{grid-template-columns:1fr}.help-step{min-height:0;grid-template-columns:54px 1fr;gap:12px;padding:18px}.help-step-marker span{width:36px;height:36px}.help-step-marker i{font-size:2rem}.help-finish{grid-template-columns:44px 1fr}.help-finish .button-link{grid-column:1 / -1;justify-content:center}.schedule-summary-grid{grid-template-columns:1fr}.schedule-summary-grid .card{min-height:82px}.schedule-calendar-controls{grid-template-columns:auto auto 1fr auto}.schedule-calendar-controls h2{font-size:1rem}.schedule-workspace,.day-view-layout{grid-template-columns:1fr}.schedule-form-card,.free-time-panel{position:static}.schedule-view-tabs{width:100%;overflow-x:auto}.schedule-view-tabs button{flex:1 0 auto;min-width:76px}.availability-window-row{grid-template-columns:1fr 1fr}.availability-window-row button{grid-column:1 / -1;justify-self:start}.weekly-rule{grid-template-columns:1fr}.weekly-rule-heading{display:flex;align-items:center;justify-content:space-between}.weekly-add-window{justify-self:start}.month-day{min-height:72px;padding:5px}.month-day i{width:7px;height:7px;display:inline-block;overflow:hidden;padding:0;border-radius:50%;color:transparent}.month-day small{display:block}.dashboard-welcome .chess-mark{width:74px;height:74px}.dashboard-piece-line{display:none}.dashboard-next{align-items:flex-start;flex-direction:column}.dashboard-snapshot-grid{grid-template-columns:1fr}.snapshot-card.ratings,.snapshot-card.assignments,.snapshot-card.planner,.snapshot-card.tournaments,.snapshot-card.performance,.snapshot-card.profile,.snapshot-card.quiz{grid-column:auto}.navbar>a.muted{max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-hero{min-height:145px;padding:22px 18px;border-radius:18px}.page-hero .chess-mark{width:70px;height:70px;opacity:.8}.page-hero:after{display:none}.wooden-pieces{display:none}.page-profile-links{margin-bottom:6px}.federation-profile-links{gap:12px}.student-selector-controls{grid-template-columns:1fr}.page-hero h1{font-size:clamp(1.35rem,6.1vw,2rem)!important}.page-hero p{font-size:.92rem}.section-heading{align-items:flex-start}.table-card{border-radius:12px}th,td{min-width:105px;padding:9px}.game-review-layout{grid-template-columns:22px minmax(0,1fr)}.moves-panel{grid-column:1 / -1}.game-board{width:min(100%,calc(100vw - 70px))}.analysis-fullscreen{padding:12px;grid-template-columns:22px minmax(0,1fr)}.analysis-fullscreen .game-board{width:calc(100vw - 58px)}.analysis-fullscreen .moves-panel{width:100%;height:auto}.camera-capture{margin-inline:-8px;width:calc(100% + 16px);padding:8px}.camera-viewport{min-height:68vh}.camera-capture video{height:68vh}.camera-shutter{right:12px;width:64px;height:64px}}@media (max-width: 900px){.dashboard-lead{grid-template-columns:1fr}.add-games-rail{padding-top:0}.add-games-rail>.card{position:static}.coach-assignment-layout{grid-template-columns:1fr}.assignment-rail{position:static;max-height:none;grid-row:1}.game-review-layout{grid-template-columns:26px minmax(280px,400px);justify-content:center}.moves-panel{grid-column:1 / -1;width:min(100%,680px);justify-self:center}.coach-dashboard .dashboard-snapshot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}.site-menu{display:contents}.mobile-menu-button{display:none}.puzzle-board{width:min(520px,100%)}.game-board{width:min(400px,100%);min-width:0}.analysis-fullscreen{overflow:auto}.tournament-name-input{min-width:0;width:100%;font-size:1.4rem;font-weight:700;padding:6px 8px}.tournament-rename-button{padding:6px 8px}.round-input{width:64px}.player-input{width:150px}.unset-select{background:#ffb4001f}@media (max-width: 900px){.puzzle-layout,.schedule-workspace,.day-view-layout{grid-template-columns:1fr}.puzzle-controls,.schedule-form-card,.free-time-panel{position:static}.player-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 700px){button,.button-link,input,select{min-height:44px}.navbar{min-height:64px;flex-wrap:wrap;padding:10px 14px}.brand-name{display:inline}.mobile-menu-button{display:inline-flex;align-items:center;gap:7px;min-height:44px;margin-left:auto;padding:8px 12px}.mobile-menu-button>span:first-child{font-size:1.3rem;line-height:1}.site-menu{display:none;width:100%;max-height:calc(100dvh - 76px);overflow-y:auto;padding:8px 0 4px;border-top:1px solid var(--border)}.navbar.menu-open .site-menu{display:grid;gap:8px}.site-menu .spacer{display:none}.coach-navbar-tabs,.player-navbar-tabs{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0;overflow:visible;order:initial}.coach-navbar-tabs a,.player-navbar-tabs a{min-height:44px;padding:9px;border:1px solid transparent;border-radius:9px;white-space:normal}.player-navbar-tabs a:hover,.player-navbar-tabs a.active{border-color:var(--border);background:var(--surface-2)}.navbar-help,.navbar-account,.site-menu>button.ghost{width:100%;min-height:44px;justify-content:flex-start;margin:0;padding:10px}.site-menu>button.ghost{text-align:left}.theme-switch.inline{width:100%;flex-direction:row;padding:4px}.theme-switch.inline .theme-opt{min-height:44px;justify-content:center}.theme-switch.inline .theme-lbl{display:inline}.card{padding:16px}.container{padding:14px}.page-title-row,.game-heading{align-items:flex-start}.page-title-row>.row,.game-heading>.row{min-width:0;flex-wrap:wrap}.page-title-row h2,.game-heading h2{overflow-wrap:anywhere}.tournament-name-input{flex-basis:100%;font-size:1.15rem}.table-card th,.table-card td{min-width:auto}.table-card table{min-width:760px}.table-card input,.table-card select{min-height:40px}.round-input{width:64px}.player-input{width:132px}.schedule-calendar-controls{grid-template-columns:44px 1fr 44px}.schedule-calendar-controls>button:nth-of-type(1){grid-column:1}.schedule-calendar-controls>div{grid-column:2;grid-row:1}.schedule-calendar-controls>button:last-child{grid-column:3;grid-row:1}.schedule-calendar-controls>button:not(:first-child):not(:last-child){grid-column:1 / -1}.game-review-layout{grid-template-columns:18px minmax(0,1fr);gap:8px}.game-board,.analysis-fullscreen .game-board{width:100%}.analysis-fullscreen{padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}.analysis-fullscreen .moves-panel{height:auto}.moves-panel{grid-column:1 / -1}.move{min-height:44px}.puzzle-board-card{padding:12px}.puzzle-board{width:100%}.puzzle-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.puzzle-stats .card{padding:12px 8px}.puzzle-stats strong{font-size:1.35rem}}@media (max-width: 380px){.brand-name{display:none}.coach-navbar-tabs,.player-navbar-tabs,.player-metrics{grid-template-columns:1fr}}
