:root{--ink:#172321;--muted:#71807d;--line:#e7ece9;--paper:#f5f7f5;--white:#fff;--coral:#ee765f;--coral-dark:#d85f49;--green:#5f8d7a;--blue:#5686ae;--purple:#8170a8;--orange:#d99a55;--shadow:0 12px 34px rgba(34,57,50,.07)}
[hidden]{display:none!important}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:14px}button,input,select{font:inherit}button,a{transition:.2s ease}button{cursor:pointer}a{text-decoration:none;color:inherit}.muted{color:var(--muted)}.eyebrow{font-size:11px;font-weight:800;letter-spacing:1.5px;color:var(--coral)}
.login-body{background:#edf2ef;min-height:100vh}.login-shell{display:grid;grid-template-columns:1.1fr .9fr;min-height:100vh}.login-brand{position:relative;overflow:hidden;padding:48px 7vw;color:white;background:#536f72}.login-brand:before{content:"";position:absolute;right:-25%;bottom:-30%;width:78%;aspect-ratio:1;border:1px solid rgba(255,255,255,.13);border-radius:50%;box-shadow:0 0 0 90px rgba(255,255,255,.025),0 0 0 180px rgba(255,255,255,.025)}.brand-chip{display:inline-flex;padding:9px 14px;border:1px solid rgba(255,255,255,.22);border-radius:30px;background:rgba(255,255,255,.08);font-size:12px;font-weight:600}.brand-lockup{margin-top:13vh;width:320px;max-width:70%}.brand-lockup img,.mobile-logo img,.side-logo img{width:100%;height:auto;filter:invert(1);mix-blend-mode:screen}.hero-copy{position:relative;z-index:2;max-width:610px;margin-top:45px}.hero-copy h1{font:800 clamp(42px,5vw,74px)/1.05 Manrope;margin:0;letter-spacing:-3.8px}.hero-copy h1 em{color:#f4bd89;font-style:normal}.hero-copy p{max-width:530px;margin:26px 0;color:#dce5e3;font-size:17px;line-height:1.75}.login-visual{position:absolute;right:4vw;bottom:5vh;width:260px;height:210px}.piece{position:absolute;font:90px Georgia;color:rgba(255,255,255,.09)}.p1{right:10px;bottom:20px;font-size:170px}.p2{left:0;top:20px}.p3{right:5px;top:-20px;font-size:70px}.mini-stat{position:absolute;z-index:2;bottom:0;left:-80px;width:200px;padding:15px 18px;border-radius:13px;background:#fff;color:var(--ink);box-shadow:var(--shadow)}.mini-stat b{display:block;color:var(--coral);font-size:18px}.mini-stat small{color:var(--muted)}.login-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px}.login-card{width:min(100%,500px);padding:42px 45px;background:white;border-radius:20px;box-shadow:var(--shadow)}.mobile-logo{display:none}.login-card h2{font:800 30px Manrope;margin:8px 0}.role-grid{display:grid;gap:11px;margin-top:28px}.role-card{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:14px;text-align:left;padding:13px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink)}.role-card:hover{border-color:var(--coral);transform:translateY(-2px);box-shadow:0 8px 22px rgba(34,57,50,.08)}.role-card b,.role-card small{display:block}.role-card b{font-size:15px}.role-card small{color:var(--muted);margin-top:3px}.role-card i{margin-right:8px;font-style:normal;color:#aeb9b6;font-size:20px}.role-icon,.stat-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:#fff0ec;color:var(--coral);font-size:22px}.blue{background:#edf5fb!important;color:var(--blue)!important}.green{background:#edf6f0!important;color:var(--green)!important}.purple{background:#f2eef9!important;color:var(--purple)!important}.orange{background:#fff4e8!important;color:var(--orange)!important}.coral{background:#fff0ec!important;color:var(--coral)!important}.login-note{display:flex;gap:10px;margin-top:25px;padding:13px;background:#f7f9f8;border-radius:9px;color:var(--muted);font-size:12px}.login-note span{display:grid;place-items:center;flex:0 0 19px;height:19px;border-radius:50%;background:#dce8e4;color:var(--green);font-weight:bold}.copyright{margin-top:22px;color:#8c9996;font-size:11px}
.app{display:flex;min-height:100vh}.sidebar{position:fixed;z-index:20;inset:0 auto 0 0;width:244px;padding:27px 20px 20px;background:#263d3d;color:#dbe6e3;display:flex;flex-direction:column}.side-logo{display:block;width:174px;height:54px;overflow:hidden;margin:0 7px 25px}.side-logo img{filter:invert(1);object-fit:contain;height:54px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.nav-label{padding:8px 13px;color:#7f9b96;font-size:10px;font-weight:700;letter-spacing:1.5px}.sidebar nav a,.logout{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:9px;color:#adc0bc;font-weight:600}.sidebar nav a i,.logout i{width:21px;text-align:center;font-style:normal;font-size:17px}.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.1);color:white}.sidebar nav a.active{box-shadow:inset 3px 0 var(--coral)}.side-help{margin-top:auto;padding:17px;border-radius:13px;background:#314b49;text-align:center}.side-help>div{font-size:25px;color:#f4bd89}.side-help b,.side-help small{display:block}.side-help small{margin:5px 0 11px;color:#9db4af;font-size:11px}.side-help button{border:0;border-radius:7px;padding:8px 14px;background:#f2c08d;color:#263d3d;font-size:11px;font-weight:800}.logout{margin-top:10px}.main{margin-left:244px;width:calc(100% - 244px)}.topbar{height:76px;padding:0 34px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line)}.crumb{color:#9ba6a3}.top-actions,.user-box{display:flex;align-items:center}.top-actions{gap:17px}.icon-btn{position:relative;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:white}.icon-btn span{position:absolute;right:7px;top:6px;width:7px;height:7px;border:2px solid white;border-radius:50%;background:var(--coral)}.user-box{gap:9px;padding-left:16px;border-left:1px solid var(--line)}.user-box b,.user-box small{display:block}.user-box small{color:var(--muted);font-size:11px;margin-top:2px}.user-box i{color:#8b9693}.avatar{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:12px;background:#ebf1ef;color:var(--green);font-weight:800}.avatar.dark{background:#395454;color:white}.avatar.bot{font-size:23px;background:#fff0ec;color:var(--coral)}.menu-toggle{display:none;border:0;background:none;font-size:22px}.content{padding:34px;max-width:1540px;margin:auto}.welcome,.page-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:27px}.welcome h1,.page-heading h1{font:800 28px Manrope;margin:6px 0;letter-spacing:-.8px}.welcome p,.page-heading p{margin:0;color:var(--muted)}.primary,.soft,.danger{border:0;border-radius:9px;padding:11px 17px;font-weight:700}.primary{background:var(--coral);color:white;box-shadow:0 8px 17px rgba(238,118,95,.18)}.primary:hover{background:var(--coral-dark);transform:translateY(-1px)}.soft{background:#edf3f0;color:#3d6258}.danger{background:#fff1ef;color:#cd6653}.full{width:100%}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:17px}.stat-card{position:relative;min-height:144px;padding:20px;background:white;border:1px solid #edf0ee;border-radius:14px;box-shadow:0 5px 20px rgba(34,57,50,.035);overflow:hidden}.stat-card.accent{background:#385653;color:white}.stat-card>.stat-icon{float:right}.stat-card>small{display:block;margin:4px 0 11px;color:#899692;font-size:10px;font-weight:800;letter-spacing:1.1px}.stat-card.accent>small{color:#b8cbc6}.stat-card>b{display:block;font:800 27px Manrope}.stat-card b i{font:600 13px DM Sans;color:var(--muted);font-style:normal}.stat-card>em{display:block;margin-top:8px;color:#56a482;font-size:11px;font-style:normal}.stat-card.accent>em{color:#b6dccc}.stat-card .spark{position:absolute;right:16px;bottom:20px;color:#7fa59b;letter-spacing:-3px}.meter{height:5px;margin-top:12px;border-radius:5px;background:#edf0ee;overflow:hidden}.meter span{display:block;height:100%;background:var(--coral);border-radius:5px}.dashboard-grid{display:grid;grid-template-columns:1.25fr 1fr .78fr;gap:17px}.card{background:white;border:1px solid #e9edeb;border-radius:14px;padding:21px;box-shadow:0 6px 22px rgba(34,57,50,.035)}.card h2{font:800 18px Manrope;margin:5px 0}.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.card-head a{color:var(--coral);font-size:12px;font-weight:700}.card-head select{border:1px solid var(--line);border-radius:7px;padding:7px;background:white;color:var(--muted)}.tasks-card{grid-row:span 2}.progress-ring{display:grid;place-items:center;width:49px;height:49px;border:5px solid #d9eee5;border-right-color:var(--coral);border-radius:50%;font-size:17px}.progress-ring small{font-size:10px;color:var(--muted)}.task{display:grid;grid-template-columns:36px 1fr auto;gap:11px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}.task button{width:31px;height:31px;border:1px solid #d8e2de;border-radius:9px;background:white;color:#abb6b3}.task.active button{border-color:var(--coral);color:var(--coral)}.task.done button{background:#e4f1eb;color:#4e8f71;border:0}.task.done b{text-decoration:line-through;color:#8b9693}.task b,.task small{display:block}.task b{font-size:13px}.task small{color:var(--muted);margin-top:4px;font-size:11px}.task em{color:var(--coral);font-style:normal;font-size:11px;font-weight:700}.lesson-card{position:relative}.date-tile{float:left;margin-right:15px;padding:9px 13px;border-radius:10px;background:#fff0ec;text-align:center}.date-tile b,.date-tile span{display:block}.date-tile b{font-size:22px}.date-tile span{color:var(--coral);font-size:9px;font-weight:bold}.lesson-info h3{margin:2px 0 5px}.lesson-info p,.lesson-info span{margin:0;color:var(--muted);font-size:11px}.lesson-info span{display:block;margin-top:5px;color:var(--green);font-weight:700}.lesson-card>.soft{margin-top:18px;width:100%}.performance{grid-column:2}.chart{height:130px;display:flex;align-items:flex-end;gap:9%;padding:5px 5% 0;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to bottom,#fff 0,#fff 42px,#f2f4f3 43px)}.chart span{flex:1;max-width:21px;border-radius:5px 5px 0 0;background:#bdd2cb}.chart .today{background:var(--coral)}.chart-labels{display:flex;justify-content:space-around;margin-top:9px;color:#99a4a1;font-size:9px}.tournament{grid-column:3;grid-row:1/span 2;position:relative;overflow:hidden;background:#f2e9df}.tournament:after{content:"♞";position:absolute;right:-13px;top:24px;color:rgba(95,64,43,.07);font:150px Georgia}.tournament .trophy{display:grid;place-items:center;width:42px;height:42px;margin-bottom:30px;border-radius:50%;background:#fff;color:var(--orange);font-size:22px}.tournament p{color:#786e66;line-height:1.7}.participants{display:flex;align-items:center;margin:28px 0 17px}.participants span{display:grid;place-items:center;width:29px;height:29px;margin-right:-6px;border:2px solid #f2e9df;border-radius:50%;background:#587672;color:white;font-size:9px}.participants span:nth-child(2){background:#d58c70}.participants span:nth-child(3){background:white;color:#685d56}.participants small{margin-left:14px;color:#786e66}.wide{grid-column:span 2}.line-chart{height:180px;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to bottom,#fff 0,#fff 55px,#edf0ee 56px)}.line-chart svg{width:100%;height:100%}.schedule-row,.person-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px solid var(--line)}.schedule-row>b{padding:8px;border-radius:7px;background:#f0f4f2;color:var(--green)}.schedule-row span,.person-row span{flex:1}.schedule-row strong,.schedule-row small,.person-row b,.person-row small{display:block}.schedule-row small,.person-row small{color:var(--muted);margin-top:3px;font-size:11px}.schedule-row i{font-size:20px;color:#a6b1ae}.person-row em{font-style:normal;color:var(--muted);font-size:11px}.person-row button,.tr button{border:0;background:none;color:#98a39f}.table-card{grid-column:span 2}.page-heading{align-items:center}.play-layout{display:grid;grid-template-columns:minmax(500px,680px) 330px;gap:20px;justify-content:center}.chess-card{padding:16px}.board-top{display:flex;align-items:center;gap:11px;padding:0 3px 13px}.board-top div{flex:1}.board-top b,.board-top small{display:block}.board-top small{color:var(--muted);font-size:11px}.board-top time{padding:10px 14px;border-radius:8px;background:#253b3a;color:white;font:700 17px Manrope}.chessboard{display:grid;grid-template-columns:repeat(8,1fr);width:100%;aspect-ratio:1;border-radius:8px;overflow:hidden}.square{display:grid;place-items:center;border:0;padding:0;font:clamp(28px,4vw,52px) Georgia;line-height:1;text-shadow:0 2px 0 rgba(255,255,255,.2)}.light-square{background:#e8e2d5}.dark-square{background:#718b80}.square.selected-piece{box-shadow:inset 0 0 0 5px #efb55d;background:#f3ce85}.chessboard+.board-top{padding:13px 3px 3px}.game-actions{display:flex;justify-content:center;gap:9px;margin-top:12px}.game-sidebar{display:flex;flex-direction:column;gap:16px}.game-sidebar label{display:block;margin:22px 0 9px;color:var(--muted);font-size:11px;font-weight:700}.level-options{display:grid;grid-template-columns:1fr 1fr;gap:7px}.level-options button,.time-options button{padding:11px;border:1px solid var(--line);border-radius:8px;background:white}.level-options button{display:grid;grid-template-columns:auto 1fr;column-gap:7px;text-align:left}.level-options button span{grid-row:span 2;color:var(--green)}.level-options small{color:var(--muted)}.level-options button.selected,.time-options button.selected{border-color:var(--coral);background:#fff7f5}.time-options{display:flex;gap:7px;margin-bottom:20px}.time-options button{flex:1}.tip{display:flex;gap:12px;background:#fff9ed;border-color:#f3e2bf}.tip p{margin:5px 0;color:#877b65;font-size:12px;line-height:1.5}.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.module-card{min-height:190px}.module-card h2{margin-top:18px}.module-card p{color:var(--muted)}.module-card .soft{margin-top:22px}.module-date{display:inline-block;padding:6px 9px;border-radius:6px;font-size:10px;font-weight:800}.table-page{padding:0;overflow:hidden}.filters{display:flex;gap:10px;padding:18px}.search{flex:1;display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:0 12px;color:#94a09c}.search input{width:100%;padding:10px;border:0;outline:0}.filters select{min-width:170px;border:1px solid var(--line);border-radius:8px;padding:0 10px;background:white}.tr{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 30px;align-items:center;min-width:700px;padding:14px 20px;border-top:1px solid var(--line)}.tr:not(.th)>:first-child{float:left;margin-right:11px}.tr>span:first-of-type{display:block}.tr.th{background:#f8faf9;color:#87938f;font-size:10px;font-weight:800;letter-spacing:.8px}.tr b,.tr small{display:block}.tr small{margin-top:3px;color:var(--muted);font-size:11px}.status{display:inline-block;padding:5px 9px;border-radius:20px;background:#fff5e7;color:#b57a37;font-style:normal;font-size:10px;font-weight:700}.status.ok{background:#eaf5ef;color:#4c8c70}.toast{position:fixed;z-index:50;right:25px;bottom:25px;padding:13px 18px;border-radius:9px;background:#263d3d;color:white;box-shadow:var(--shadow);opacity:0;transform:translateY(20px);pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:none}.backdrop{display:none}
@media(max-width:1100px){.stat-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr 1fr}.tasks-card{grid-row:auto}.tournament{grid-column:auto;grid-row:auto}.performance{grid-column:auto}.module-grid{grid-template-columns:repeat(2,1fr)}.play-layout{grid-template-columns:minmax(460px,620px) 290px}.login-brand{padding-left:5vw}}
@media(max-width:820px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none}.backdrop.show{display:block;position:fixed;z-index:15;inset:0;background:rgba(15,28,26,.45)}.main{margin:0;width:100%}.menu-toggle{display:block}.topbar{padding:0 18px}.topbar>div:first-of-type{display:none}.content{padding:23px 18px}.login-shell{display:block}.login-brand{display:none}.login-panel{min-height:100vh;padding:22px}.mobile-logo{display:block;width:170px;height:58px;overflow:hidden;margin-bottom:20px}.mobile-logo img{filter:none;mix-blend-mode:multiply}.play-layout{grid-template-columns:1fr}.game-sidebar{order:-1}.game-sidebar .tip{display:none}.level-options{grid-template-columns:repeat(4,1fr)}.dashboard-grid{grid-template-columns:1fr}.wide,.table-card{grid-column:auto}.tournament{grid-column:auto}.performance{grid-column:auto}}
@media(max-width:560px){.login-card{padding:28px 22px}.user-box>span:nth-child(2),.user-box>i{display:none}.top-actions{gap:8px}.welcome,.page-heading{align-items:flex-start;gap:18px;flex-direction:column}.welcome .primary,.page-heading .primary{width:100%}.stat-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:15px;min-height:132px}.stat-card>.stat-icon{width:38px;height:38px}.dashboard-grid{display:block}.dashboard-grid>.card{margin-bottom:12px}.module-grid{grid-template-columns:1fr}.play-layout{display:block}.game-sidebar{margin-bottom:12px}.level-options{grid-template-columns:1fr 1fr}.square{font-size:9vw}.filters{flex-wrap:wrap}.filters select{flex:1}.data-table{overflow-x:auto}.welcome h1,.page-heading h1{font-size:24px}.content{padding:20px 13px}}
.person-cell{display:flex;align-items:center;gap:11px}.person-cell span{min-width:0}
.growth{color:var(--coral)}.skill-row{margin:20px 0}.skill-row>span{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.skill-row b{color:var(--ink)}.tournament-list{display:grid;gap:13px}.tournament-row{display:grid;grid-template-columns:75px 1fr 120px 120px;align-items:center;gap:20px}.tournament-row h2{margin:5px 0}.tournament-row p{margin:0;color:var(--muted)}.tournament-date{display:grid;place-items:center;padding:13px;border-radius:12px;background:#fff0ec}.tournament-date b{font:800 25px Manrope}.tournament-date span{font-size:10px;color:var(--coral);font-weight:800}.tournament-count b,.tournament-count small{display:block}.tournament-count small{color:var(--muted);font-size:10px}.lesson-attendees{margin-top:16px;color:var(--muted)}.task-action.completed{background:#e7f3ed;color:#4b8c6f}.message-layout,.settings-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:17px}.message-list{padding:8px}.message-item{display:grid;grid-template-columns:42px 1fr auto;width:100%;gap:10px;align-items:center;padding:14px;border:0;border-bottom:1px solid var(--line);background:white;text-align:left;border-radius:9px}.message-item.active{background:#f1f6f4}.message-item span:nth-child(2) b,.message-item span:nth-child(2) small{display:block}.message-item small{max-width:260px;margin-top:4px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-item em{font-size:9px;color:var(--muted);font-style:normal}.chat{display:flex;flex-direction:column;min-height:390px}.chat-bubble{max-width:80%;margin:35px 0 auto;padding:15px;border-radius:4px 14px 14px 14px;background:#edf4f1;line-height:1.6}.chat-compose{display:flex;gap:8px;border-top:1px solid var(--line);padding-top:15px}.chat-compose input{flex:1;padding:11px;border:1px solid var(--line);border-radius:8px}.settings-form label,.modal-card label{display:block;margin:15px 0;color:var(--muted);font-size:11px;font-weight:700}.settings-form input,.settings-form textarea,.modal-card input,.modal-card textarea{display:block;width:100%;margin-top:6px;padding:11px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink)}.settings-form textarea,.modal-card textarea{min-height:75px;resize:vertical}.toggle-row{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}.toggle-row span,.toggle-row small{display:block}.toggle-row small{margin-top:4px;color:var(--muted)}.toggle-row input{width:38px;height:20px;accent-color:var(--coral)}.modal-wrap{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:20px;background:rgba(17,31,29,.55);backdrop-filter:blur(4px)}.modal-card{position:relative;width:min(100%,450px);padding:28px;border-radius:16px;background:white;box-shadow:0 25px 80px rgba(0,0,0,.2)}.modal-card h2{font:800 22px Manrope}.modal-close{position:absolute;right:16px;top:14px;border:0;background:none;font-size:25px;color:var(--muted)}
@media(max-width:820px){.tournament-row{grid-template-columns:60px 1fr}.tournament-count{display:none}.tournament-row>button{grid-column:2}.message-layout,.settings-grid{grid-template-columns:1fr}}
@media(max-width:560px){.tournament-row{gap:12px}.tournament-row h2{font-size:15px}.message-item{grid-template-columns:38px 1fr}.message-item em{display:none}}
@media print{.sidebar,.topbar,.page-heading button{display:none!important}.main{margin:0;width:100%}.content{padding:10px}.card{box-shadow:none}}
/* Rule-aware chess board */
.chessboard{grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));aspect-ratio:1/1;isolation:isolate}
.chessboard .square{position:relative;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;font-size:inherit;text-shadow:none}
.chess-piece{position:relative;z-index:2;display:block;font-family:"Times New Roman","DejaVu Serif",serif;font-size:clamp(31px,4.2vw,58px);line-height:1;transform:translateY(-1%);pointer-events:none}
.white-piece{color:#fff;text-shadow:-1px -1px 0 #172321,1px -1px 0 #172321,-1px 1px 0 #172321,1px 1px 0 #172321,0 2px 2px rgba(0,0,0,.3)}
.black-piece{color:#172321;text-shadow:0 1px 1px rgba(255,255,255,.25)}
.square.last-move:after{content:"";position:absolute;inset:0;background:rgba(244,190,75,.3)}
.square.selected-piece{box-shadow:inset 0 0 0 5px #f2a94f}.light-square.selected-piece{background:#f0d492}.dark-square.selected-piece{background:#b59b56}
.square.legal-move:before{content:"";position:absolute;z-index:3;width:22%;aspect-ratio:1;border-radius:50%;background:rgba(28,57,51,.4)}
.square.legal-capture:before{content:"";position:absolute;z-index:3;inset:7%;border:5px solid rgba(207,77,59,.65);border-radius:50%}
.engine-error{grid-column:1/-1;display:grid;place-items:center;padding:30px;text-align:center;background:#fff1ef;color:#b85646}
.game-status{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;margin:8px 0;padding:10px 13px;border-radius:9px;background:#f3f7f5}
.game-status small{color:var(--muted)}.status-dot{width:9px;height:9px;border-radius:50%;background:#5aa07e;box-shadow:0 0 0 4px #e1f0e8}.status-dot.thinking{background:#e4a14f;box-shadow:0 0 0 4px #f9ead5}.status-dot.ended{background:#8b9693;box-shadow:none}
.move-panel{margin-top:20px;padding-top:17px;border-top:1px solid var(--line)}.move-panel-head{display:flex;justify-content:space-between}.move-panel-head small{color:var(--muted)}.move-history{display:grid;grid-template-columns:1fr 1fr;gap:5px 14px;max-height:120px;margin-top:10px;overflow:auto;font-size:12px}.move-history span{display:flex;gap:6px;padding:4px;border-radius:4px}.move-history b{color:var(--muted)}.move-history em{margin-left:auto;font-style:normal}.empty-moves{grid-column:1/-1;color:var(--muted)}
@media(max-width:560px){.chess-piece{font-size:10vw}.game-actions{flex-wrap:wrap}.game-status{grid-template-columns:auto 1fr}.game-status small{grid-column:2}}
.puzzle-layout{display:grid;grid-template-columns:minmax(500px,680px) 330px;gap:20px;justify-content:center}.puzzle-board-card{padding:16px}.puzzle-board-top{display:flex;align-items:center;justify-content:space-between;padding:3px 4px 15px}.puzzle-board-top h2{margin:5px 0 0}.puzzle-rating{padding:8px 13px;border-radius:9px;background:#fff0ec;text-align:right}.puzzle-rating small,.puzzle-rating b{display:block}.puzzle-rating small{font-size:8px;color:var(--coral);font-weight:800}.puzzle-rating b{font:800 18px Manrope}.puzzle-turn{display:flex;align-items:center;gap:11px;padding:15px 5px 3px}.puzzle-side{display:flex;flex-direction:column;gap:16px}.puzzle-score{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:18px 0}.puzzle-score div{padding:10px 5px;border-right:1px solid var(--line);text-align:center}.puzzle-score div:last-child{border:0}.puzzle-score b,.puzzle-score small{display:block}.puzzle-score b{font:800 22px Manrope}.puzzle-score small{margin-top:3px;color:var(--muted);font-size:9px}.puzzle-step{height:7px;margin-bottom:7px;border-radius:8px;background:#edf0ee;overflow:hidden}.puzzle-step span{display:block;height:100%;width:0;border-radius:8px;background:var(--coral);transition:.4s}.puzzle-progress>small{color:var(--muted)}.puzzle-side .card>p{line-height:1.6}.puzzle-next{margin-top:9px}.puzzle-next:disabled{opacity:.45;cursor:not-allowed}.puzzle-rule{display:flex;gap:12px;align-items:flex-start;background:#edf6f0}.puzzle-rule>span{display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:50%;background:#5f8d7a;color:white}.puzzle-rule p{margin:0!important}.puzzle-board.puzzle-success{animation:puzzleSuccess .7s}.puzzle-board.puzzle-wrong{animation:puzzleWrong .4s}@keyframes puzzleSuccess{50%{box-shadow:0 0 0 7px rgba(72,165,119,.35)}}@keyframes puzzleWrong{25%,75%{transform:translateX(-5px)}50%{transform:translateX(5px)}}
@media(max-width:820px){.puzzle-layout{grid-template-columns:minmax(420px,620px) 280px}}
@media(max-width:700px){.puzzle-layout{display:block}.puzzle-side{margin-top:14px}.puzzle-board .chess-piece{font-size:11vw}}
