.app-main:has(.puzzle-solver-page){position:fixed;inset:0;max-width:none;margin:0;padding:0;overflow:hidden;display:flex;flex-direction:column}.app-main:has(.puzzle-solver-page)>.topbar{position:relative;flex-shrink:0;border-radius:0;border:none;border-bottom:1px solid rgba(25,38,70,.9);margin:0;padding:10px 20px;background:#050914;backdrop-filter:none;-webkit-backdrop-filter:none;overflow:hidden}.app-main:has(.puzzle-solver-page)>.topbar .topbar-links{flex-wrap:nowrap;overflow:hidden;gap:4px}.app-main:has(.puzzle-solver-page)>.topbar .topbar-links a,.app-main:has(.puzzle-solver-page)>.topbar .topbar-links button{font-size:.82rem;padding:5px 9px;white-space:nowrap}.app-main:has(.puzzle-solver-page)>.topbar .brand{font-size:.9rem;white-space:nowrap}.app-main-body:has(.puzzle-solver-page){flex:1 1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.puzzle-solver-page{display:flex;flex-direction:column;flex:1 1;min-height:0;overflow:hidden;background:#060b1a}.puzzle-solver-header{display:flex;align-items:center;gap:12px;padding:0 20px;height:44px;flex-shrink:0;background:rgba(6,10,22,.98);border-bottom:1px solid #142042}.puzzle-solver-back{display:inline-flex;align-items:center;gap:5px;font-size:.76rem;font-weight:600;color:#475569;text-decoration:none;padding:5px 12px;border-radius:7px;border:1px solid rgba(51,65,100,.5);background:rgba(12,20,42,.7);transition:color .15s,border-color .15s,background .15s;white-space:nowrap;letter-spacing:.01em}.puzzle-solver-back:hover{color:#94a3b8;border-color:rgba(71,90,140,.7);background:rgba(18,30,62,.9)}.puzzle-solver-header-center{gap:8px;flex:1 1}.puzzle-solver-header-center,.puzzle-solver-header-right{display:flex;align-items:center}.puzzle-solver-rating-badge{background:rgba(99,102,241,.18);color:#818cf8;border:1px solid rgba(99,102,241,.32);border-radius:6px;font-size:.74rem;font-weight:800;padding:3px 10px;letter-spacing:.04em}.puzzle-to-move-badge{display:inline-flex;align-items:center;gap:7px;font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:6px 14px;border-radius:8px;border:1.5px solid transparent}.puzzle-to-move-badge--white{background:rgba(248,250,252,.1);color:#f1f5f9;border-color:rgba(241,245,249,.5);box-shadow:0 0 14px rgba(241,245,249,.08),0 2px 6px rgba(0,0,0,.35)}.puzzle-to-move-badge--black{background:rgba(15,23,42,.85);color:#94a3b8;border-color:rgba(71,85,105,.6);box-shadow:0 2px 6px rgba(0,0,0,.45)}.puzzle-to-move-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.puzzle-to-move-dot--white{background:#f1f5f9;box-shadow:0 0 7px rgba(241,245,249,.8),0 0 14px rgba(241,245,249,.4)}.puzzle-to-move-dot--black{background:#1e293b;border:2px solid #64748b}.puzzle-audit-btn{font-size:.6rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;border-radius:5px;padding:3px 9px;border:1.5px solid rgba(51,65,100,.4);background:rgba(10,18,40,.6);color:#334155;cursor:pointer;transition:background .15s,color .15s}.puzzle-audit-btn:hover{background:rgba(20,32,66,.8);color:#475569}.puzzle-audit-btn--on{background:rgba(80,40,4,.45);border-color:rgba(251,191,36,.4);color:#fbbf24}.puzzle-solver-body{flex:1 1;flex-direction:row;align-items:stretch}.puzzle-solver-board-col,.puzzle-solver-body{min-height:0;overflow:hidden;display:flex;justify-content:center}.puzzle-solver-board-col{flex:0 1 900px;min-width:300px;flex-direction:column;align-items:center;background:radial-gradient(ellipse 55% 60% at 50% 38%,rgba(16,32,78,.22) 0,transparent 70%),#060b1a}.puzzle-board-center-unit{flex-shrink:0;display:flex;flex-direction:column;align-items:stretch}.puzzle-player-bar{display:flex;align-items:center;gap:6px;padding:0 10px;height:16px;min-height:16px;box-sizing:border-box;overflow:hidden;border:1px solid rgba(25,38,70,.7)}.puzzle-player-bar--black{background:rgba(5,9,20,.95);border-radius:8px 8px 0 0;border-bottom:none}.puzzle-player-bar--white{background:rgba(8,13,30,.85);border-radius:0 0 8px 8px;border-top:none}.puzzle-player-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.puzzle-player-dot--white{background:#e2e8f0;box-shadow:0 0 4px rgba(226,232,240,.4)}.puzzle-player-dot--black{background:#0f172a;border:2px solid #334155}.puzzle-player-name{font-size:.82rem;font-weight:700;color:#64748b;letter-spacing:.01em}.puzzle-player-you{font-weight:500;color:#38bdf8;font-size:.76rem}.puzzle-player-captured{font-size:.7rem;color:#334155;margin-left:2px}.puzzle-player-adv{font-size:.7rem;font-weight:700;color:#475569;margin-left:2px}.puzzle-solver-board-wrap{flex-shrink:0;line-height:0;padding:10px;border:1px solid rgba(147,197,253,.28);border-radius:0;overflow:hidden;background:radial-gradient(ellipse 92% 88% at 50% 42%,rgba(59,130,246,.07),transparent 55%),linear-gradient(180deg,rgba(10,21,46,.72),rgba(7,15,32,.92));box-shadow:0 10px 28px rgba(3,8,19,.34),inset 0 1px 0 hsla(0,0%,100%,.05);display:flex;justify-content:center;align-items:center;transition:box-shadow .15s}.puzzle-solver-board-wrap--white-to-move{border-color:hsla(0,0%,100%,.55);box-shadow:0 0 0 2px hsla(0,0%,100%,.22),0 0 18px hsla(0,0%,100%,.1),0 10px 28px rgba(3,8,19,.34),inset 0 1px 0 hsla(0,0%,100%,.05)}.puzzle-board-flash-correct{box-shadow:0 0 0 3px rgba(34,197,94,.8),0 16px 48px rgba(2,5,14,.7)}.puzzle-board-flash-wrong{box-shadow:0 0 0 3px rgba(239,68,68,.8),0 16px 48px rgba(2,5,14,.7);animation:puzzle-wrong-shake .28s ease}@keyframes puzzle-wrong-shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.puzzle-nav-row{display:flex;justify-content:center;align-items:center;gap:6px;padding:0 12px;margin-top:2px;height:36px;box-sizing:border-box;border:1px solid rgba(147,197,253,.2);border-radius:12px;background:rgba(15,23,42,.5);width:100%;flex-shrink:0}.puzzle-nav-gap{width:1px;height:22px;background:rgba(148,163,184,.2);border-radius:1px;flex-shrink:0;margin:0 2px}.puzzle-nav-btn{width:38px;height:30px;border-radius:8px;border:1px solid rgba(148,163,184,.25);background:rgba(30,41,59,.7);font-size:14px;color:#cbd5e1;cursor:pointer;transition:background .15s,border-color .15s,color .15s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.puzzle-nav-btn:hover:not(:disabled){background:rgba(30,41,59,.95);border-color:rgba(186,200,220,.45);color:#f8fafc}.puzzle-nav-btn:disabled{opacity:.3;cursor:not-allowed}.puzzle-nav-btn--next-puzzle,.puzzle-nav-btn--prev-puzzle{background:rgba(79,82,210,.12);border-color:rgba(99,102,241,.3);color:#818cf8;font-weight:700}.puzzle-nav-btn--next-puzzle:hover,.puzzle-nav-btn--prev-puzzle:hover{background:rgba(99,102,241,.22);color:#a5b4fc;border-color:rgba(99,102,241,.45)}.puzzle-solver-panel{flex:0 0 380px;width:380px;overflow-y:auto;display:flex;flex-direction:column;background:rgba(5,9,20,.99);border-left:1px solid #142044}.puzzle-solver-panel::-webkit-scrollbar{width:3px}.puzzle-solver-panel::-webkit-scrollbar-thumb{background:rgba(40,58,108,.5);border-radius:3px}.pnl-section{padding:18px 20px 14px;flex-shrink:0}.pnl-eyebrow{margin:0 0 10px;font-size:.58rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:#334155}.pnl-info-row{align-items:center;gap:8px;margin-bottom:12px}.pnl-info-row,.puzzle-tags{display:flex;flex-wrap:wrap}.puzzle-tags{gap:5px}.puzzle-tag{background:rgba(16,26,58,.9);color:#475569;border:1px solid rgba(30,46,96,.7);border-radius:5px;font-size:.68rem;font-weight:600;padding:3px 9px;letter-spacing:.03em;text-transform:capitalize}.pnl-status{padding:16px 20px 18px;flex-shrink:0;border-top:1px solid rgba(20,32,68,.9);transition:background .3s}.pnl-status-text{font-size:1rem;font-weight:700;line-height:1.3;transition:color .3s}.pnl-status--idle{background:transparent}.pnl-status--idle .pnl-status-text{color:#334155}.pnl-status--waiting{background:rgba(2,16,36,.75)}.pnl-status--waiting .pnl-status-text{color:#38bdf8;font-size:1.15rem}.pnl-status--computer{background:transparent}.pnl-status--computer .pnl-status-text{color:#334155;font-style:italic;font-size:.9rem;font-weight:500}.pnl-status--correct{background:rgba(2,22,14,.8)}.pnl-status--correct .pnl-status-text{color:#4ade80}.pnl-status--wrong{background:rgba(30,6,6,.8)}.pnl-status--wrong .pnl-status-text{color:#f87171}.pnl-status--solved{background:rgba(2,22,14,.85)}.pnl-status--solved .pnl-status-text{color:#4ade80;font-size:1.12rem}.puzzle-progress-dots{display:flex;gap:8px;align-items:center;margin-top:14px}.puzzle-dot{width:10px;height:10px;border-radius:50%;background:rgba(25,40,88,.7);border:1.5px solid rgba(35,56,112,.75);transition:background .2s,border-color .2s,box-shadow .2s}.puzzle-dot--done{background:#22c55e;border-color:#22c55e;box-shadow:0 0 7px rgba(34,197,94,.5)}.puzzle-dot--active{background:rgba(56,189,248,.18);border-color:#38bdf8;box-shadow:0 0 10px rgba(56,189,248,.6)}.pnl-actions{padding:14px 20px 20px;flex-shrink:0;display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;border-top:1px solid rgba(20,32,68,.9)}.pnl-btn{flex:1 1;min-width:84px;padding:10px 14px;border-radius:8px;font-size:.86rem;font-weight:700;letter-spacing:.02em;text-align:center;cursor:pointer;border:1.5px solid transparent;transition:opacity .12s,transform .1s,background .15s,color .15s,border-color .15s}.pnl-btn:hover{transform:translateY(-1px)}.pnl-btn:active{transform:none;opacity:.8}.pnl-btn--primary{flex:0 0 100%;background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff;border-color:transparent;box-shadow:0 4px 20px rgba(79,82,210,.4)}.pnl-btn--primary:hover{opacity:.88}.pnl-btn--hint{background:rgba(12,20,46,.7);color:#475569;border-color:rgba(35,56,108,.6)}.pnl-btn--hint:hover{background:rgba(18,30,64,.9);color:#64748b;border-color:rgba(51,78,140,.7)}.pnl-btn--hint.active{background:rgba(2,16,36,.85);color:#38bdf8;border-color:rgba(56,189,248,.42)}.pnl-btn--ghost{background:rgba(16,26,58,.85);color:#64748b;border-color:rgba(35,56,108,.6)}.pnl-btn--ghost:hover{background:#16244c;color:#94a3b8;border-color:rgba(51,78,140,.8)}.puzzle-solver-loading{gap:16px;color:#334155;font-size:.9rem}.puzzle-solver-error,.puzzle-solver-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1 1}.puzzle-solver-error{gap:14px;padding:32px;text-align:center}.puzzle-solver-error__icon{width:64px;height:64px;border-radius:50%;background:rgba(99,102,241,.08);border:1.5px solid rgba(99,102,241,.2);display:flex;align-items:center;justify-content:center;color:#818cf8;box-shadow:0 0 28px rgba(99,102,241,.08);margin-bottom:4px}.puzzle-solver-error__title{color:#cbd5e1;font-size:1rem;font-weight:500;letter-spacing:.01em;margin:0}.puzzle-solver-error__sub{color:rgba(148,163,184,.5);font-size:.8rem;letter-spacing:.03em;margin:0}.puzzle-solver-error__back{margin-top:8px;padding:8px 20px;border-radius:8px;border:1.5px solid rgba(99,102,241,.35);background:rgba(99,102,241,.1);color:#a5b4fc;font-size:.85rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.puzzle-solver-error__back:hover{background:rgba(99,102,241,.2);border-color:rgba(99,102,241,.55);color:#c7d2fe}.puzzle-spinner{width:32px;height:32px;border:3px solid rgba(25,40,88,.5);border-top-color:#6366f1;border-radius:50%;animation:puzzle-spin .7s linear infinite}@keyframes puzzle-spin{to{transform:rotate(1turn)}}.puzzle-confetti-wrap{position:fixed;inset:0;pointer-events:none;z-index:9999;overflow:hidden}@keyframes puzzle-confetti-fall{0%{transform:translateY(0) rotate(0deg);opacity:1}80%{opacity:1}to{transform:translateY(105vh) rotate(2turn);opacity:0}}@media (max-width:700px){.app-main:has(.puzzle-solver-page){position:relative;height:auto;min-height:100dvh;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.app-main-body:has(.puzzle-solver-page){flex:none;overflow:visible;min-height:0}.puzzle-solver-page{overflow:visible;flex:none;min-height:0}.app-main:has(.puzzle-solver-page)>.topbar{height:auto;min-height:44px;max-height:none;padding:6px 12px}.app-main:has(.puzzle-solver-page)>.topbar .topbar-links{gap:2px}.app-main:has(.puzzle-solver-page)>.topbar .topbar-links a,.app-main:has(.puzzle-solver-page)>.topbar .topbar-links button{font-size:.75rem;padding:4px 7px}.puzzle-solver-header{height:40px;min-height:40px;padding:0 10px;gap:6px;flex-wrap:nowrap;overflow:hidden}.puzzle-solver-back{padding:4px 8px;font-size:.72rem;flex-shrink:0}.puzzle-solver-rating-badge{font-size:.68rem;padding:2px 7px}.puzzle-to-move-badge{font-size:.65rem;padding:4px 10px;letter-spacing:.09em}.puzzle-audit-btn{font-size:.58rem;padding:3px 7px;flex-shrink:0}.puzzle-solver-body{display:flex;flex-direction:column;overflow:visible;height:auto;flex:none}.puzzle-solver-board-col{flex:none;width:100%;overflow:visible;padding:8px 8px 0;min-height:unset;align-items:stretch;justify-content:flex-start;background:#060b1a}.puzzle-board-center-unit{width:100%!important;box-sizing:border-box}.puzzle-solver-board-wrap{padding:6px}.puzzle-player-bar{gap:8px;padding:5px 10px;height:auto;min-height:32px}.puzzle-player-name{font-size:.8rem}.puzzle-player-captured{font-size:.72rem}.puzzle-player-dot{width:8px;height:8px}.puzzle-nav-row{height:auto;margin-top:8px;padding:8px 10px;gap:8px;border-radius:10px}.puzzle-nav-btn{width:48px;height:48px;font-size:17px;border-radius:10px;flex-shrink:1}.puzzle-nav-gap{height:28px;margin:0 4px}.puzzle-solver-panel{width:100%;border-left:none;border-top:1px solid rgba(20,32,68,.9);overflow:visible;flex-shrink:0}.puzzle-solver-panel::-webkit-scrollbar{display:none}.pnl-section{padding:12px 16px 10px}.pnl-eyebrow{margin-bottom:7px}.pnl-info-row{gap:7px;margin-bottom:10px}.pnl-status{padding:14px 16px 16px}.pnl-status-text{font-size:1.05rem}.pnl-status--waiting .pnl-status-text{font-size:1.1rem}.pnl-status--solved .pnl-status-text{font-size:1.05rem}.puzzle-progress-dots{margin-top:12px;gap:10px}.puzzle-dot{width:12px;height:12px}.pnl-actions{padding:12px 16px 24px;gap:10px}.pnl-btn{padding:14px 16px;font-size:.92rem;min-height:50px;border-radius:10px}.puzzle-tag{font-size:.72rem;padding:4px 10px}}@media (max-width:390px){.puzzle-nav-btn{width:42px;height:44px;font-size:15px}.puzzle-nav-row{gap:5px;padding:7px 8px}.puzzle-nav-gap{margin:0 2px}}.puzzle-board-center-unit--study{flex-direction:row!important;align-items:flex-start;gap:8px}.puzzle-board-inner-col{display:flex;flex-direction:column;align-items:stretch;flex:1 1;min-width:0}.puzzle-eval-bar{width:14px;border-radius:4px;overflow:hidden;flex-shrink:0;border:1px solid rgba(50,70,120,.5);display:flex;flex-direction:column;justify-content:flex-end;background:#0a1022;margin-top:16px}.puzzle-eval-bar-white{background:#e2e8f0;border-radius:0 0 3px 3px;flex-shrink:0;transition:height .4s ease}.puzzle-sq-badge{position:absolute;transform:translate(-50%,-50%);height:30px;min-width:30px;padding:0 7px;border-radius:15px;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:900;letter-spacing:.01em;white-space:nowrap;pointer-events:none;z-index:30;border:2.5px solid hsla(0,0%,100%,.85);box-shadow:0 3px 12px rgba(0,0,0,.65);animation:puzzle-badge-pop .2s cubic-bezier(.34,1.56,.64,1)}@keyframes puzzle-badge-pop{0%{transform:translate(-50%,-50%) scale(.3);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}
/* ! Best / Good — green */.puzzle-sq-badge--best,.puzzle-sq-badge--good{background:#16a34a;color:#fff}.puzzle-sq-badge--inaccuracy{background:#d97706;color:#fff}.puzzle-sq-badge--mistake{background:#dc2626;color:#fff}.puzzle-sq-badge--blunder{background:#b91c1c;color:#fff}.puzzle-nav-btn--exit-study{background:rgba(120,36,36,.2);border-color:rgba(239,68,68,.3);color:#f87171;font-size:13px}.puzzle-nav-btn--exit-study:hover{background:rgba(180,40,40,.3);border-color:rgba(239,68,68,.5);color:#fca5a5}.pnl-engine-ctrl-grid{display:grid;grid-template-columns:1fr auto;grid-gap:6px;gap:6px;align-items:center}.pnl-engine-depth-chip{font-size:.6rem;font-weight:700;letter-spacing:.06em;color:#334155;padding:4px 9px;border-radius:5px;border:1px solid rgba(30,46,90,.6);background:rgba(10,18,42,.7);white-space:nowrap;justify-self:end;text-align:center}.pnl-btn--full{flex:0 0 100%}.pnl-engine-eval-row{display:flex;align-items:center;gap:10px;padding:10px 20px 12px;border-top:1px solid rgba(20,32,68,.9);flex-shrink:0}.pnl-engine-eval-label{font-size:1rem;font-weight:900;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;width:48px;flex-shrink:0}.pnl-engine-eval-label--pos{color:#f8fafc}.pnl-engine-eval-label--neg{color:#94a3b8}.pnl-engine-eval-label--even{color:#64748b}.pnl-engine-hbar{flex:1 1;height:7px;background:#0f172a;border-radius:4px;border:1px solid rgba(30,46,90,.6);overflow:hidden}.pnl-engine-hbar-white{height:100%;background:#e2e8f0;border-radius:3px 0 0 3px;transition:width .4s ease}.pnl-engine-lines{flex-shrink:0;border-top:1px solid rgba(20,32,68,.9);padding:4px 0}.pnl-engine-line{display:grid;grid-template-columns:48px 1fr;grid-gap:8px;gap:8px;align-items:center;padding:8px 20px;border-bottom:1px solid rgba(12,20,48,.7);transition:background .12s}.pnl-engine-line:last-child{border-bottom:none}.pnl-engine-line:hover{background:rgba(20,32,68,.5)}.pnl-engine-line--top{background:rgba(10,22,56,.6)}.pnl-engine-line--top:hover{background:rgba(14,28,66,.75)}.pnl-engine-line-eval{font-size:.8rem;font-weight:900;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.pnl-engine-line-eval--pos{color:#f1f5f9}.pnl-engine-line-eval--neg{color:#64748b}.pnl-engine-line-eval--even{color:#475569}.pnl-engine-line-moves{font-size:.78rem;font-weight:500;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.01em}.pnl-engine-line--top .pnl-engine-line-moves{color:#cbd5e1}.pnl-engine-loading-row{display:flex;align-items:center;gap:10px;padding:16px 20px;color:#334155;font-size:.82rem}.puzzle-spinner--sm{width:16px;height:16px;border-width:2px;flex-shrink:0}.pnl-engine-turn-row{display:flex;align-items:center;gap:7px;margin-top:10px;padding:7px 10px;border-radius:7px;background:rgba(10,18,44,.6);border:1px solid rgba(30,46,90,.5)}.pnl-engine-turn-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.pnl-engine-turn-dot--w{background:#e2e8f0;box-shadow:0 0 5px rgba(226,232,240,.6)}.pnl-engine-turn-dot--b{background:#1e293b;border:2px solid #475569}.pnl-engine-turn-label{font-size:.72rem;font-weight:600;color:#64748b;flex:1 1;letter-spacing:.01em}.pnl-engine-autoplay-btn{font-size:.68rem;font-weight:800;letter-spacing:.06em;padding:4px 10px;border-radius:6px;border:1.5px solid rgba(99,102,241,.5);background:rgba(99,102,241,.18);color:#a5b4fc;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap;flex-shrink:0}.pnl-engine-autoplay-btn:hover:not(:disabled){background:rgba(99,102,241,.32);color:#c7d2fe}.pnl-engine-autoplay-btn:disabled{opacity:.35;cursor:not-allowed}.pnl-btn--engine{background:rgba(16,26,58,.85);color:#818cf8;border-color:rgba(99,102,241,.35)}.pnl-btn--engine:hover{background:#16244c;color:#a5b4fc;border-color:rgba(99,102,241,.55)}@media (max-width:700px){.pnl-section{padding:8px 16px 4px}.pnl-eyebrow{display:none}.puzzle-tags{max-height:56px;overflow:hidden}.pnl-status{padding:12px 16px 14px}.pnl-actions{position:-webkit-sticky;position:sticky;bottom:0;z-index:5;background:rgba(5,9,20,.99);border-top:1px solid rgba(20,32,68,.9);padding-bottom:max(20px,env(safe-area-inset-bottom,0px));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}}