:root{--sidebar-bg:#fff;--sidebar-border:#e6e8ec;--icon-color:#6b7280;--icon-hover-bg:#f3f4f6;--text-color:#111827;--muted-text:#6b7280;--sidebar-collapsed-width:72px;--transition-fast:0.2s ease}.side-bar{align-items:center;background:#fff;background:var(--sidebar-bg);border-right:1px solid #e6e8ec;border-right:1px solid var(--sidebar-border);display:flex;flex-direction:column;flex-shrink:0;height:100%;min-height:100vh;min-height:100dvh;position:-webkit-sticky;position:sticky;top:0;width:72px;width:var(--sidebar-collapsed-width);z-index:50}.logo-link{all:unset;align-items:center;cursor:pointer;display:flex;height:44px;justify-content:center;margin:16px 0 24px;width:44px}.logo-text{font-size:28px;line-height:1}.icon{all:unset;align-items:center;border-radius:12px;color:#6b7280;color:var(--icon-color);cursor:pointer;display:flex;height:44px;justify-content:center;margin:6px 0;text-decoration:none;transition:background .2s ease,color .2s ease;transition:background var(--transition-fast),color var(--transition-fast);width:44px}.icon:hover{background:#f3f4f6;background:var(--icon-hover-bg);color:#111827;color:var(--text-color)}.icon.active{background:#629924;color:#fff}.icon svg{height:22px;width:22px}@keyframes ag-pulse{0%,to{box-shadow:0 0 0 0 #5dbb34b3}50%{box-shadow:0 0 0 6px #5dbb3400}}.active-games-btn,.active-games-wrap{position:relative}.active-games-pulse{animation:ag-pulse 1.8s ease-in-out infinite;background:#5dbb34;border:2px solid #fff;border:2px solid var(--sidebar-bg);border-radius:50%;height:9px;pointer-events:none;position:absolute;right:7px;top:7px;width:9px}.active-games-popover{background:#1a1816;border:1px solid #3a3735;border-radius:10px;box-shadow:0 8px 24px #00000080;left:calc(100% + 10px);padding:10px 0 6px;position:absolute;top:0;width:220px;z-index:200}.active-games-title{border-bottom:1px solid #2e2c2a;color:#777;font-size:11px;font-weight:700;letter-spacing:.08em;margin:0;padding:0 14px 6px;text-transform:uppercase}.active-game-row{all:unset;align-items:center;box-sizing:border-box;cursor:pointer;display:flex;gap:10px;padding:9px 14px;transition:background .15s;width:100%}.active-game-row:hover{background:#262421}.agr-dot{animation:ag-pulse 1.8s ease-in-out infinite;background:#5dbb34;border-radius:50%;flex-shrink:0;height:8px;width:8px}.agr-info{display:flex;flex-direction:column;gap:1px;overflow:hidden}.agr-opponent{color:#e8e6e3;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agr-meta{color:#888;font-size:11px}.royale-container{background:linear-gradient(180deg,#2a2418,#1a1816);border:2px solid #5c4a1f;border-radius:8px;gap:14px;padding:16px;width:100%}.royale-container,.royale-tier{display:flex;flex-direction:column}.royale-tier{gap:8px}.royale-tier-label{color:#d4a843;font-size:11px;font-weight:700;letter-spacing:1px;text-align:left;text-transform:uppercase}.royale-tier-row{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(3,1fr)}.royale-button{align-items:center;background:linear-gradient(180deg,#3d3528,#2a2418);border:1px solid #5c4a1f;border-radius:6px;color:#f0e6c8;cursor:pointer;display:flex;flex-direction:column;font-family:inherit;justify-content:center;min-height:64px;padding:14px 8px;transition:background .15s,border-color .15s,transform .1s,opacity .2s}.royale-button:hover{background:linear-gradient(180deg,#4a4030,#353020);border-color:#d4a843;transform:translateY(-1px)}.royale-button.dimmed{opacity:.5}.royale-button.dimmed:hover{opacity:.85}.royale-button.seeking{background:linear-gradient(180deg,#4a3a15,#3a2e10);border-color:#d4a843;box-shadow:0 0 12px #d4a84340;color:#fff}.royale-button.seeking:hover{border-color:#e6912c}.royale-button .seek-spinner{animation:seek-spin .75s linear infinite;border:3px solid #d4a84333;border-radius:50%;border-top-color:#d4a843;height:26px;width:26px}.royale-button .seek-cancel-label{color:#a89878;font-size:.65rem;letter-spacing:.5px;margin-top:6px;text-transform:uppercase}.royale-button.seeking:hover .seek-cancel-label{color:#e6912c}@keyframes seek-spin{to{transform:rotate(1turn)}}.royale-time{font-size:1.4rem;font-weight:700;line-height:1}.royale-unit{font-size:.6rem;letter-spacing:.3px;line-height:1.2;margin-top:4px;opacity:.6;text-align:center;text-transform:uppercase}.royale-container.royale-hero{background:#0000;border:none;border-radius:0;gap:16px;padding:0}.royale-hero .royale-grid-wrap{position:relative;width:100%}.royale-hero .royale-grid-watermark{color:#fff;height:auto;opacity:.06;pointer-events:none;position:absolute;right:-4%;top:22%;width:min(72%,320px);z-index:0}.royale-hero .royale-tiers{display:flex;flex-direction:column;gap:16px;position:relative;z-index:1}.royale-hero .royale-tier-label{color:#999;font-size:.85rem;font-weight:400;letter-spacing:0;margin-bottom:2px;text-transform:none}.royale-hero .royale-tier-row{gap:8px}.royale-hero .royale-button{background:#34312e;border:none;border-radius:10px;color:#fff;min-height:96px;padding:16px 12px;transform:none}.royale-hero .royale-button:hover{background:#3d3a37;border-color:#0000;transform:none}.royale-hero .royale-button.dimmed{opacity:.45}.royale-hero .royale-button.dimmed:hover{opacity:.75}.royale-hero .royale-button.seeking{background:#3d3a37;box-shadow:inset 0 0 0 2px #e6912c}.royale-hero .royale-button.seeking:hover{background:#454240;border-color:#0000}.royale-hero .royale-button .seek-spinner{border-top-color:#e6912c}.royale-hero .royale-time{font-size:clamp(1.6rem,4vw,2rem);font-weight:400}.royale-hero .royale-unit{color:#999;font-size:.85rem;margin-top:6px;opacity:1;text-transform:capitalize}@media (min-width:520px){.royale-hero .royale-button{min-height:108px}.royale-hero .royale-tier-row{gap:9px}}.challenge-btn-wrap{position:relative}.challenge-btn{align-items:center;background:#262421;border:1px solid #403d39;border-radius:8px;cursor:pointer;display:flex;height:40px;justify-content:center;transition:background .15s,border-color .15s,transform .15s;width:40px}.challenge-btn.open,.challenge-btn:hover{background:#33302c;border-color:#555}.challenge-btn.waiting{border-color:#d4a8438c;box-shadow:0 0 0 1px #d4a84326}.challenge-btn-icon{font-size:18px;line-height:1}.challenge-panel{background:#262421;border:1px solid #403d39;border-radius:10px;box-shadow:0 12px 40px #00000073;padding:16px;position:absolute;right:0;top:calc(100% + 8px);width:min(340px,calc(100vw - 24px));z-index:200}.challenge-panel-head h2{color:#fff;font-size:15px;font-weight:600;margin:0 0 4px}.challenge-panel-head p{color:#888;font-size:12px;line-height:1.45;margin:0 0 14px}.challenge-mode-tabs{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-bottom:12px}.challenge-mode-tabs button{background:#1a1816;border:1px solid #403d39;border-radius:6px;color:#aaa;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;padding:8px 10px}.challenge-mode-tabs button.active{background:#62992426;border-color:#629924;color:#b8e88a}.challenge-time-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(2,1fr);margin-bottom:12px}.challenge-time-btn{background:#1a1816;border:1px solid #403d39;border-radius:6px;color:#ddd;cursor:pointer;font-family:inherit;font-size:14px;font-weight:700;padding:10px 8px}.challenge-time-btn.selected{background:#5b8def1f;border-color:#5b8def;color:#b8d4ff}.challenge-recipient{color:#888;display:flex;flex-direction:column;font-size:12px;gap:6px;margin-bottom:12px}.challenge-recipient input{background:#1a1816;border:1px solid #403d39;border-radius:6px;color:#ddd;font-family:inherit;font-size:14px;padding:9px 10px}.challenge-create-btn{background:linear-gradient(180deg,#629924,#4d7a1c);border:none;border-radius:6px;color:#fff;cursor:pointer;font-family:inherit;font-size:14px;font-weight:700;padding:11px 14px;width:100%}.challenge-create-btn:disabled{cursor:not-allowed;opacity:.6}.challenge-error{color:#e08080;font-size:12px;margin:0 0 10px}.challenge-created-label{color:#ccc;font-size:13px;font-weight:600;margin:0 0 10px}.challenge-link-row{display:flex;gap:8px;margin-bottom:12px}.challenge-link-row input{background:#1a1816;border:1px solid #403d39;border-radius:6px;color:#bbb;flex:1 1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;min-width:0;padding:9px 10px}.challenge-copy-btn{align-items:center;background:#5b8def;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:5px;padding:0 12px;white-space:nowrap}.challenge-waiting{align-items:center;color:#d4a843;display:flex;font-size:13px;gap:8px;margin:0 0 12px}.challenge-wait-pulse{animation:challenge-pulse 1.2s ease-in-out infinite;background:#d4a843;border-radius:50%;height:8px;width:8px}@keyframes challenge-pulse{0%,to{opacity:.35;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}.challenge-new-btn{background:#0000;border:1px solid #403d39;border-radius:6px;color:#aaa;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;padding:9px 12px;width:100%}.challenge-new-btn:hover{background:#2e2b28;color:#ddd}.notification-bell-wrap{position:relative}.notification-bell-btn{align-items:center;background:#262421;border:1px solid #403d39;border-radius:8px;color:#ccc;cursor:pointer;display:flex;height:40px;justify-content:center;position:relative;transition:background .15s,color .15s,border-color .15s;width:40px}.notification-bell-btn.open,.notification-bell-btn:hover{background:#33302c;border-color:#555;color:#fff}.notification-badge{background:#c33;border-radius:999px;color:#fff;font-size:10px;font-weight:700;height:18px;line-height:18px;min-width:18px;padding:0 5px;position:absolute;right:-4px;text-align:center;top:-4px}.notification-panel{background:#262421;border:1px solid #403d39;border-radius:10px;box-shadow:0 12px 40px #00000073;display:flex;flex-direction:column;max-height:min(420px,calc(100vh - 80px));overflow:hidden;position:absolute;right:0;top:calc(100% + 8px);width:min(360px,calc(100vw - 24px));z-index:200}.notification-panel-head{align-items:center;border-bottom:1px solid #403d39;display:flex;gap:12px;justify-content:space-between;padding:14px 16px}.notification-panel-head h2{color:#fff;font-size:15px;font-weight:600;margin:0}.notification-mark-all{background:none;border:none;color:#8eb8ff;cursor:pointer;font-size:12px;font-weight:600;padding:0}.notification-mark-all:hover{color:#b8d4ff}.notification-list{overflow-y:auto}.notification-empty{color:#888;font-size:13px;margin:0;padding:24px 16px;text-align:center}.notification-item{background:#0000;border:none;border-bottom:1px solid #332f2c;cursor:pointer;display:block;font-family:inherit;padding:12px 16px;text-align:left;transition:background .12s;width:100%}.notification-item:hover{background:#2e2b28}.notification-item.unread{background:#62992414}.notification-item.unread:hover{background:#6299241f}.notification-item-top{align-items:flex-start;display:flex;gap:10px;justify-content:space-between;margin-bottom:4px}.notification-item-title{color:#eee;font-size:13px;font-weight:600;line-height:1.35}.notification-item-time{color:#777;flex-shrink:0;font-size:11px}.notification-item-body{color:#999;font-size:12px;line-height:1.45;margin:0}.app-topbar{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#161512eb;border-bottom:1px solid #2a2724;display:flex;justify-content:flex-end;min-height:52px;padding:8px 16px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.app-topbar-actions{align-items:center;display:flex;gap:8px}@keyframes ag-tb-pulse{0%,to{box-shadow:0 0 0 0 #5dbb34b3}50%{box-shadow:0 0 0 5px #5dbb3400}}.ag-wrap{position:relative}.ag-btn{all:unset;align-items:center;background:#62992426;border:1px solid #62992459;border-radius:8px;color:#88c057;cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:5px;padding:5px 10px;position:relative;transition:background .15s,border-color .15s}.ag-btn:hover{background:#62992440;border-color:#62992499}.ag-btn.open{background:#6299244d}.ag-count{font-size:12px;font-weight:700;line-height:1;min-width:14px;text-align:center}.ag-pulse-dot{animation:ag-tb-pulse 1.8s ease-in-out infinite;background:#5dbb34;border-radius:50%;flex-shrink:0;height:7px;width:7px}.ag-popover{background:#1a1816;border:1px solid #3a3735;border-radius:10px;box-shadow:0 8px 28px #0000008c;padding:10px 0 6px;position:absolute;right:0;top:calc(100% + 8px);width:230px;z-index:300}.ag-popover-title{border-bottom:1px solid #2e2c2a;color:#777;font-size:11px;font-weight:700;letter-spacing:.08em;margin:0;padding:0 14px 6px;text-transform:uppercase}.ag-row{all:unset;align-items:center;box-sizing:border-box;cursor:pointer;display:flex;gap:10px;padding:9px 14px;transition:background .12s;width:100%}.ag-row:hover{background:#262421}.ag-row-dot{animation:ag-tb-pulse 1.8s ease-in-out infinite;background:#5dbb34;border-radius:50%;flex-shrink:0;height:7px;width:7px}.ag-row-info{display:flex;flex-direction:column;gap:1px;overflow:hidden}.ag-row-opponent{color:#e8e6e3;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ag-row-meta{color:#888;font-size:11px}.auth-page{align-items:center;background:#161512;display:flex;justify-content:center;min-height:100vh;padding:20px}.auth-card{background:#262421;border-radius:8px;box-shadow:0 8px 32px #0006;max-width:400px;padding:40px;width:100%}.auth-card h1{color:#fff;font-size:2rem;margin-bottom:8px;text-align:center}.auth-subtitle{color:#999;margin-bottom:28px;text-align:center}.auth-card form{gap:16px}.auth-card form,.auth-card label{display:flex;flex-direction:column}.auth-card label{color:#bbb;font-size:14px;gap:6px}.auth-card input{background:#1a1816;border:1px solid #403d39;border-radius:4px;color:#fff;font-size:16px;padding:12px}.auth-card input:focus{border-color:#629924;outline:none}.auth-card button{background:#629924;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:8px;padding:14px}.auth-card button:hover:not(:disabled){background:#7ab82e}.auth-card button:disabled{cursor:not-allowed;opacity:.6}.auth-error{background:#3d2020;border-radius:4px;color:#ff6b6b;font-size:14px;padding:10px 14px}.auth-switch{color:#999;font-size:14px;margin-top:20px;text-align:center}.auth-switch a{color:#629924;text-decoration:none}.auth-switch a:hover{text-decoration:underline}.page-loading{align-items:center;background:#161512;color:#999;display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:100vh}.play-pairing-grid-wrap{position:relative;width:100%}.bg-deco{color:#fff;opacity:.05;pointer-events:none;position:absolute;z-index:0}.bg-deco-sword-left{left:2%;max-width:60px;top:-5%;transform:rotate(-22deg);transform-origin:bottom center;width:7%}.bg-deco-sword-right{max-width:60px;right:2%;top:-5%;transform:rotate(22deg);transform-origin:bottom center;width:7%}.bg-deco-rook{left:50%;max-width:260px;opacity:.04;top:50%;transform:translate(-50%,-50%);width:30%}.royale-mode .bg-deco{color:#d4a843;opacity:.09}.royale-mode .bg-deco-rook{opacity:.06}.play-pairing-grid{grid-gap:clamp(6px,.9vw,11px);background:#0000;display:grid;font-family:Roboto,Noto Sans,sans-serif;font-size:clamp(14px,2vw + 1.2vh,36px);font-weight:300;gap:clamp(6px,.9vw,11px);grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(4,1fr);height:min(72svh,560px);padding-top:clamp(6px,.9vw,11px);position:relative;width:100%;z-index:1}.play-pairing-cell{align-items:center;background:#34312de6;border:none;border-radius:7px;color:#b0aca6;cursor:pointer;display:flex;flex-direction:column;font-family:inherit;font-weight:inherit;justify-content:center;padding:.3em .3em .4em;transition:background .12s,color .12s,opacity .12s}.play-pairing-cell:hover:not(:disabled){background:#5b4c33f2;color:#fff}.play-pairing-cell-empty{background:#0000;pointer-events:none}.play-pairing-cell.dimmed:not(:disabled){opacity:.35}.play-pairing-cell.dimmed:hover:not(:disabled){opacity:.7}.play-pairing-cell.seeking{background:#2e401cf2;box-shadow:0 4px 18px #00000080,0 0 0 2px #629924;color:#fff}.play-pairing-cell.seeking:hover{background:#384f22f2}.play-pairing-cell.disabled-cell{border-color:#0000;color:#555;cursor:default}.play-pairing-cell.disabled-cell .cell-primary{color:#555;font-size:.75em;font-weight:400}.play-pairing-cell .seek-spinner{animation:play-pairing-spin .75s linear infinite;border:3px solid #ffffff1f;border-radius:50%;border-top-color:#629924;flex:0 0 auto;height:1.8em;margin-bottom:.4em;width:1.8em}.play-pairing-cell .seek-cancel-label{color:#aaa;font-size:.55em;letter-spacing:.06em;text-transform:uppercase}.play-pairing-cell.seeking:hover .seek-cancel-label{color:#e6912c}@keyframes play-pairing-spin{to{transform:rotate(1turn)}}.cell-primary{color:inherit;display:block;font-size:2.2em;letter-spacing:.04em;line-height:1.2}.cell-label{color:#666;font-size:.8em;line-height:1;margin-top:.3em}.play-pairing-cell:hover:not(:disabled) .cell-label{color:#aaa}.royale-mode .play-pairing-cell{animation:royale-pulse 6s ease-in-out infinite;animation-delay:0ms;animation-delay:var(--royale-sync,0ms);background:#352e22eb;border:1px solid #67553266;color:#c8a96e}.royale-mode .play-pairing-cell:hover:not(:disabled){animation:none;background:#534428fa;border-color:#cca13380;box-shadow:0 0 18px #f4b92559;color:#f0d080}.royale-mode .cell-primary{color:#e8c878}.royale-mode .play-pairing-cell:hover:not(:disabled) .cell-primary{color:#f8e090}.royale-mode .cell-label{color:#7a6030}.royale-mode .play-pairing-cell:hover:not(:disabled) .cell-label{color:#b89050}.royale-mode .play-pairing-cell.seeking{background:#453817f2;box-shadow:0 4px 18px #00000080,0 0 0 2px #d4a843;color:#f0d080}.royale-mode .play-pairing-cell.seeking:hover{background:#54441cf2}.royale-mode .play-pairing-cell .seek-spinner{border-top-color:#d4a843}.royale-mode .play-pairing-cell.seeking:hover .seek-cancel-label{color:#f0d080}@keyframes royale-pulse{0%,to{border-color:#67553266;box-shadow:0 0 0 #e8b43000}50%{border-color:#b8912ebf;box-shadow:0 0 14px #e8b43040}}.lobby-page{animation:page-fade-in .18s ease-out both;background:#262421;box-sizing:border-box;color:#fff;flex:1 1;overflow-anchor:none;overflow-y:auto;padding:clamp(16px,2.5vw,32px);width:100%}.lobby-header{display:none}.lobby-seek-banner{align-items:center;background:#34312e;border-radius:4px;color:#ccc;display:flex;flex-wrap:wrap;font-size:14px;gap:12px;margin:0 auto 16px;max-width:700px;padding:12px 16px;width:100%}.lobby-seek-banner strong{color:#e6912c}.lobby-seek-spinner{animation:lobby-seek-spin .75s linear infinite;border:2px solid #ffffff26;border-radius:50%;border-top-color:#e6912c;flex-shrink:0;height:18px;width:18px}.lobby-seek-cancel{background:#0000;border:none;color:#e6912c;cursor:pointer;font-family:inherit;font-size:13px;margin-left:auto;padding:4px 8px;text-decoration:underline;text-underline-offset:2px}.lobby-seek-cancel:hover{color:#fff}@keyframes lobby-seek-spin{to{transform:rotate(1turn)}}.connection-warning{color:#e6912c;font-size:13px;margin:0 auto 12px;max-width:700px;text-align:center;width:100%}.connection-warning.seek-error{color:#ff6b6b}.lobby-layout{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr;margin:0 auto;max-width:820px;width:100%}@media (min-width:1000px){.lobby-layout{align-items:start;grid-template-columns:minmax(0,1fr) 220px;max-width:1060px}}.lobby-main{display:flex;flex-direction:column;min-width:0}.lobby-play-card{width:100%}.lobby-mode-dock{grid-gap:0;background:#0000;display:grid;gap:0;grid-template-columns:1fr 1fr;margin-bottom:4px}.lobby-mode-tab{background:#0000;border:none;color:#999;cursor:pointer;font-family:inherit;font-size:clamp(1rem,2.5vw,1.15rem);font-weight:400;padding:14px 8px 16px;position:relative;text-align:center;transition:color .15s}.lobby-mode-tab:hover{color:#ccc}.lobby-mode-tab.active{color:#e6912c}.lobby-mode-tab.active:after{background:#e6912c;border-radius:2px 2px 0 0;bottom:0;content:"";height:4px;left:0;position:absolute;right:0}.lobby-mode-tab.royale-tab.active{color:#d4a843}.lobby-mode-tab.royale-tab.active:after{background:#d4a843}.lobby-mode-panel{align-items:stretch;display:flex;flex-direction:column;padding:8px 0 0}.lobby-mode-desc{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.lobby-stats{background:#34312e;border-radius:4px;padding:16px;width:100%}.lobby-stats h3{color:#999;font-size:.8rem;font-weight:400;margin:0 0 12px}.rating-pools-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.rating-pool-stat{align-items:center;background:#262421;border-radius:4px;display:flex;flex-direction:column;gap:2px;padding:10px 6px}.rating-pool-stat .stat-value{color:#e6912c;font-size:1.2rem;font-weight:600}.rating-pool-stat .stat-label{color:#777;font-size:10px;text-align:center}.rating-pool-stat .stat-sub{color:#555;font-size:10px}.lobby-no-ratings{color:#666;font-size:12px;grid-column:1/-1;margin:0;padding:8px 0;text-align:center}.piece{align-items:center;cursor:pointer;display:inline-flex;font-weight:700;justify-content:center;text-shadow:1px 1px 2px #0000004d;transition:transform .2s ease;-webkit-user-select:none;user-select:none;z-index:2}.piece:hover{transform:scale(1.1)}.piece.selected{filter:drop-shadow(0 0 8px rgba(255,255,0,.8));transform:scale(1.15)}.piece.dragging{cursor:grabbing;opacity:.8;transform:scale(1.1);z-index:10}.piece-image{-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;user-drag:none;height:100%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%}.piece-symbol{display:inline-block;line-height:1}@keyframes pieceMove{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.piece.moving{animation:pieceMove .3s ease-in-out}.piece.in-check{animation:checkPulse 1s infinite;filter:drop-shadow(0 0 8px #ff6b6b)}@media (prefers-contrast:high){.piece{text-shadow:2px 2px 4px #000c}.piece-image{filter:contrast(1.2)}}@media (prefers-reduced-motion:reduce){.piece,.piece-image{transition:none}.piece.in-check,.piece.moving{animation:none}}@media (hover:none) and (pointer:coarse){.piece:hover{transform:none}.piece.selected{transform:scale(1.05)}}.arrow{filter:drop-shadow(0 1px 2px rgba(0,0,0,.2));pointer-events:none;z-index:10}.arrow line,.arrow polygon{transition:opacity .3s ease}.arrow line{stroke-linecap:round}.arrow line,.arrow polygon{stroke-linejoin:round}.arrow polygon[fill]{filter:drop-shadow(0 0 1px rgba(0,0,0,.3))}.arrow polygon[fill=none]{stroke-linecap:round}.arrow:hover line,.arrow:hover polygon{opacity:1!important}.arrow.primary{z-index:15}.arrow.secondary{z-index:10}.arrow.highlight{z-index:20}.arrow.red line,.arrow.red polygon{stroke:#ff6b6b;fill:#ff6b6b}.arrow.blue line,.arrow.blue polygon{stroke:#4dabf7;fill:#4dabf7}.arrow.green line,.arrow.green polygon{stroke:#51cf66;fill:#51cf66}.arrow.yellow line,.arrow.yellow polygon{stroke:#ffd43b;fill:#ffd43b}.arrow.purple line,.arrow.purple polygon{stroke:#9775fa;fill:#9775fa}@media (max-width:768px){.arrow line{stroke-width:1.5}.arrow polygon{transform:scale(.8)}}@media (prefers-reduced-motion:reduce){.arrow line,.arrow polygon{transition:none}}.chessboard-container{display:inline-block;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.chessboard{background:#8b4513;border:2px solid #8b4513;border-radius:4px;box-shadow:0 4px 8px #0000004d;display:flex;flex-direction:column;position:relative}.rank{display:flex;flex:1 1}.square{align-items:center;cursor:pointer;display:flex;justify-content:center;position:relative;transition:all .2s ease;-webkit-user-select:none;user-select:none}.square-light{background-color:#f0d9b5}.square-dark{background-color:#b58863}.square:hover{box-shadow:inset 0 0 0 2px #ffff0080}.square.selected{background-color:#ff0!important;box-shadow:inset 0 0 0 3px #ff6b6b}.square.highlighted{background-color:#ffff94!important;box-shadow:inset 0 0 0 2px #4ecdc4}.square.possible-move{background-color:#ffff94!important;position:relative}.square.possible-move:after{background-color:#0000004d;border-radius:50%;content:"";height:20%;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:20%}.square.capture{background-color:#fcc!important;position:relative}.square.capture:after{border:3px solid #ff6b6b;border-radius:2px;bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.square.last-move{background-color:#cdd26a!important}.square.premove-from,.square.premove-to{background-color:#f77f2a!important;opacity:.85}.square.premove-selected{background-color:#f77f2a!important;box-shadow:inset 0 0 0 3px #c45f00}.square.premove-possible{position:relative}.square.premove-possible:after{background-color:#f77f2ab3;border-radius:50%;content:"";height:22%;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:22%}.promotion-overlay{background:#00000073;inset:0;position:absolute;z-index:30}.promotion-picker{border:2px solid #ffffff26;border-radius:4px;box-shadow:0 8px 32px #000000b3;display:flex;flex-direction:column;overflow:hidden;position:absolute;z-index:31}.promotion-option{align-items:center;cursor:pointer;display:flex;justify-content:center;transition:background .1s ease}.promotion-option:nth-child(odd){background-color:#f0d9b5}.promotion-option:nth-child(2n){background-color:#b58863}.promotion-option:hover{background-color:#cdd26a!important}.square.in-check{animation:checkPulse 1s ease-in-out infinite alternate;box-shadow:inset 0 0 0 3px red}.coordinate{color:#8b4513;font-size:.7em;font-weight:700;pointer-events:none;position:absolute;text-shadow:1px 1px 1px #fffc;z-index:1}.file-coordinate{bottom:2px;right:4px}.rank-coordinate{left:4px;top:2px}@media (max-width:600px){.chessboard{max-height:100vw;max-width:100%}.coordinate{font-size:.6em}}.square.drag-over{background-color:#4ecdc4!important;opacity:.7}.square.in-check{animation:checkPulse 1s infinite;background-color:#ff6b6b!important}@keyframes checkPulse{0%,to{box-shadow:inset 0 0 0 3px #ff6b6b}50%{box-shadow:inset 0 0 0 6px #ff6b6b}}.chessboard.flipped,.chessboard.flipped .coordinate{transform:rotate(180deg)}.square:focus{outline:3px solid #4ecdc4;outline-offset:-3px}@media (prefers-contrast:high){.square-light{background-color:#fff}.square-dark{background-color:#000}.piece{text-shadow:2px 2px 4px #000c}}@media (prefers-reduced-motion:reduce){.piece,.square{transition:none}.piece.moving,.square.in-check{animation:none}}.game-social-panel{background:#262421;border-radius:8px;display:flex;flex-direction:column;gap:8px;margin-top:12px;padding:12px}.social-panel-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.social-panel-label{color:#666;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase}.social-mute-btn{background:#0000;border:none;border-radius:4px;cursor:pointer;font-size:14px;line-height:1;opacity:.6;padding:2px 4px}.social-mute-btn:hover{background:#403d39;opacity:1}.social-mute-btn.muted{opacity:.35}.social-muted-note{color:#555;font-size:12px;font-style:italic;margin:0;padding:12px 0;text-align:center}.chat-scroll{height:180px;margin-bottom:4px;min-height:180px;overflow-y:auto;overscroll-behavior:contain;padding-right:2px}.chat-empty{color:#555;font-size:13px;font-style:italic;margin:0;padding:16px 0;text-align:center}.chat-line{font-size:13px;margin-bottom:8px}.chat-line.self .chat-author{color:#8bb866}.chat-meta{align-items:baseline;display:flex;gap:8px;margin-bottom:2px}.chat-author{color:#ccc;font-size:12px;font-weight:600}.chat-time{color:#555;font-size:11px}.chat-text{color:#ddd;line-height:1.35;word-break:break-word}.chat-line.emoji-msg .chat-text{font-size:1.6rem;line-height:1.1}.chat-error{background:#e6912c1f;border-radius:4px;color:#f0a070;font-size:12px;line-height:1.35;margin:0 0 6px;padding:6px 8px}.reaction-burst-stage{height:0;overflow:visible;pointer-events:none;position:relative}.reaction-burst{align-items:center;animation:burst-rise 2s ease-out forwards;bottom:0;display:flex;flex-direction:column;left:50%;pointer-events:none;position:absolute;transform:translateX(-50%);z-index:10}.burst-emoji{filter:drop-shadow(0 4px 16px rgba(0,0,0,.5));font-size:4.5rem;line-height:1}@keyframes burst-rise{0%{opacity:0;transform:translateX(-50%) translateY(16px) scale(.4)}15%{opacity:1;transform:translateX(-50%) translateY(0) scale(1.15)}70%{opacity:1;transform:translateX(-50%) translateY(-60px) scale(1)}to{opacity:0;transform:translateX(-50%) translateY(-110px) scale(.85)}}.chat-form{align-items:stretch;display:flex;gap:6px;position:relative}.chat-input-wrap{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.chat-char-count{color:#555;font-size:10px;padding-right:2px;text-align:right}.chat-char-count.near-limit{color:#e6912c}.chat-input{background:#1f1d1b;border:1px solid #403d39;border-radius:4px;color:#eee;font-family:inherit;font-size:13px;padding:8px 10px;width:100%}.chat-input:focus{border-color:#629924;outline:none}.chat-send{align-items:center;align-self:flex-start;background:#403d39;border:none;border-radius:4px;color:#eee;cursor:pointer;display:flex;font-family:inherit;font-size:13px;font-weight:600;height:36px;padding:0 14px;white-space:nowrap}.chat-send:hover:not(:disabled){background:#629924}.chat-send:disabled{cursor:not-allowed;opacity:.4}.emoji-picker-wrap{align-self:flex-start;flex-shrink:0;position:relative}.emoji-trigger-btn{align-items:center;background:#1f1d1b;border:1px solid #403d39;border-radius:6px;cursor:pointer;display:flex;font-size:1.1rem;height:36px;justify-content:center;line-height:1;padding:0;transition:background .15s ease,border-color .15s ease,transform .1s ease;width:36px}.emoji-trigger-btn.open,.emoji-trigger-btn:hover{background:#3d3829;border-color:#629924}.emoji-trigger-btn.open{transform:scale(.95)}.emoji-picker-popup{grid-gap:5px;animation:picker-pop .15s ease-out both;background:#1a1816;border:1px solid #403d39;border-radius:10px;bottom:calc(100% + 8px);box-shadow:0 8px 24px #00000080;display:grid;gap:5px;grid-template-columns:repeat(3,1fr);left:0;padding:8px;position:absolute;z-index:50}@keyframes picker-pop{0%{opacity:0;transform:translateY(6px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.emoji-pick-btn{align-items:center;background:#262421;border:1px solid #302e2b;border-radius:8px;cursor:pointer;display:flex;font-size:1.35rem;height:44px;justify-content:center;line-height:1;padding:0;transition:background .12s ease,transform .12s ease,border-color .12s ease;width:44px}.emoji-pick-btn:hover{background:#3d3829;border-color:#629924;transform:scale(1.18)}.emoji-pick-btn:active{transform:scale(.92)}.chat-ping{color:#6b6560;font-size:.68rem;letter-spacing:.02em;margin:4px 0 0;padding:0 2px;text-align:right;-webkit-user-select:none;user-select:none}.game-page{align-items:center;background:#161512;box-sizing:border-box;color:#fff;flex:1 1;min-height:0;overflow:hidden;padding:24px}.game-layout,.game-page{display:flex;justify-content:center}.game-layout{align-items:flex-start;gap:24px;max-width:1400px;width:100%}.game-board-area{flex-shrink:0}.player-bar{padding:8px 0}.player-bar.opponent{margin-bottom:8px}.player-bar.self{margin-top:8px}.game-clock{align-items:center;background:#262421;border-radius:4px;display:flex;gap:12px;padding:8px 12px;width:-webkit-fit-content;width:fit-content}.game-clock.active{background:#3d3829;box-shadow:inset 0 0 0 2px #629924}.clock-label{color:#bbb;font-size:14px}.clock-time{font-feature-settings:"tnum";font-size:1.5rem;font-variant-numeric:tabular-nums;font-weight:700;min-width:60px}.clock-display{align-items:center;display:flex;justify-content:flex-end}.clock-display.royale-display{min-height:2.4rem;min-width:88px}.clock-display.standard-display{min-height:2.4rem;min-width:60px}.game-clock.standard-clock:not(.active) .waiting-dot{background:#777}.clock-waiting{gap:12px;justify-content:space-between;min-height:2.4rem;width:100%}.clock-waiting,.waiting-dots{align-items:center;display:flex}.waiting-dots{flex:1 1;gap:5px;justify-content:center}.waiting-dot{animation:waiting-dot-pulse 1.2s ease-in-out infinite;background:#888;border-radius:50%;height:7px;width:7px}.waiting-dot:nth-child(2){animation-delay:.15s}.waiting-dot:nth-child(3){animation-delay:.3s}@keyframes waiting-dot-pulse{0%,70%,to{opacity:.25;transform:translateY(0) scale(.85)}35%{opacity:1;transform:translateY(-3px) scale(1)}}.game-clock.royale-clock:not(.active) .waiting-dot{background:#a89878}.clock-time.low{color:#e6912c}.board-wrapper{border-radius:4px;overflow:hidden;position:relative}.board-wrapper.board-shaking{animation:board-shake .65s cubic-bezier(.36,.07,.19,.97)}@keyframes board-shake{0%,to{transform:translate(0) rotate(0deg)}10%{transform:translate(-6px,2px) rotate(-1.2deg)}20%{transform:translate(7px,-3px) rotate(1.4deg)}30%{transform:translate(-8px,-2px) rotate(-1deg)}40%{transform:translate(8px,3px) rotate(1.2deg)}50%{transform:translate(-5px,1px) rotate(-.8deg)}60%{transform:translate(5px,-2px) rotate(.9deg)}70%{transform:translate(-3px,2px) rotate(-.5deg)}80%{transform:translate(3px,-1px) rotate(.4deg)}90%{transform:translate(-1px) rotate(-.2deg)}}.strike-overlay{align-items:center;animation:strike-flash 1.2s ease-out forwards;display:flex;inset:0;justify-content:center;pointer-events:none;position:absolute;z-index:10}.strike-text{animation:strike-shake .5s ease-in-out;color:#f44;font-size:3rem;font-weight:900;letter-spacing:4px;text-shadow:0 0 24px #f44c,0 2px 8px #000c}@keyframes strike-flash{0%{background:#ff28288c}40%{background:#ff282859}to{background:#0000}}@keyframes strike-shake{0%,to{transform:translateX(0)}20%{transform:translateX(-8px) rotate(-2deg)}40%{transform:translateX(8px) rotate(2deg)}60%{transform:translateX(-6px)}80%{transform:translateX(6px)}}.game-clock.royale-clock.active{background:#3d3520;box-shadow:inset 0 0 0 2px #d4a843}.clock-time.royale-time{align-items:baseline;display:flex;font-size:2rem;gap:2px;justify-content:flex-end;min-height:2.4rem;min-width:88px}.clock-unit{color:#999;font-size:.9rem;font-weight:600}.royale-timer{align-items:center;display:flex;gap:8px;justify-content:flex-end;width:100%}.royale-timer.royale-watching{opacity:.85}.clock-phase,.royale-timer.royale-grace .clock-time{color:#8ecae6}.clock-phase{font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.royale-status-hint{color:#8ecae6}.strike-pips{display:flex;flex-shrink:0;gap:6px}.clock-waiting .strike-pips{gap:5px}.clock-waiting .strike-pip{height:11px;width:11px}.clock-game-result{align-items:center;display:flex;justify-content:center;min-height:2.4rem;width:100%}.result-emoji{animation:result-emoji-pop .45s cubic-bezier(.34,1.56,.64,1);font-size:2rem;line-height:1}@keyframes result-emoji-pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.strike-pip{background:#629924;border:2px solid #629924;border-radius:50%;height:14px;width:14px}.strike-pip.used{background:#0000;border-color:#e6912c}.royale-hint{color:#a89878;font-size:12px;line-height:1.4;margin-bottom:12px}.position-status{font-size:13px;margin:0 0 12px}.position-status.check{color:#e68a00}.position-status.ending{color:#81b64c}.game-sidebar{display:flex;flex:0 0 300px;flex-direction:column;gap:12px;max-height:100%;overflow-y:auto;width:300px}.game-info-panel{background:#262421;border-radius:8px;padding:20px}.game-info-panel h3{color:#999;font-size:1rem;margin-bottom:16px}.resign-btn{background:#0000;border:1px solid #403d39;border-radius:4px;color:#bbb;cursor:pointer;font-size:14px;padding:12px;width:100%}.resign-btn:hover{background:#403d39;color:#fff}.draw-actions{margin-bottom:10px}.draw-accept-btn,.draw-decline-btn,.draw-offer-btn{border:1px solid #403d39;border-radius:4px;cursor:pointer;font-size:14px;padding:12px;width:100%}.draw-offer-btn{background:#0000;color:#bbb}.draw-offer-btn:hover{background:#403d39;color:#fff}.draw-offer-text{color:#c9b896;font-size:13px;margin:0 0 8px;text-align:center}.draw-offer-sent{color:#888;font-size:13px;margin:0 0 10px;text-align:center}.draw-offer-btns{display:flex;gap:8px;margin-bottom:10px}.draw-accept-btn{background:#3d4a2a;border-color:#629924;color:#d4e4bc;flex:1 1}.draw-accept-btn:hover{background:#4a5a32}.draw-decline-btn{background:#0000;color:#bbb;flex:1 1}.draw-decline-btn:hover{background:#403d39;color:#fff}.game-result{text-align:center}.result-text{font-size:1.25rem;font-weight:700;margin-bottom:8px}@keyframes delta-bop{0%{opacity:0;transform:translateY(-10px) scale(.7)}55%{opacity:1;transform:translateY(3px) scale(1.2)}75%{transform:translateY(-2px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.rating-anim{align-items:baseline;display:flex;gap:8px;justify-content:center;margin-bottom:10px}.rating-anim-value{font-feature-settings:"tnum";color:#e8e6e3;font-size:1.8rem;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.5px}.rating-anim-delta{animation:delta-bop .45s cubic-bezier(.34,1.56,.64,1) both;font-size:1.15rem;font-weight:700}.rating-anim-delta.gain{color:#5dbb34}.rating-anim-delta.loss{color:#e05252}.rating-anim-delta.draw{color:#999}.termination{color:#777;font-size:13px;margin-bottom:16px;text-transform:capitalize}.play-again-btn{background:#629924;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:600;padding:12px;width:100%}.play-again-btn:hover{background:#7ab82e}.move-list{background:#262421;border-radius:8px;display:flex;flex:0 0 auto;flex-direction:column;padding:16px}.move-list h4{color:#777;font-size:13px;margin-bottom:12px;text-transform:uppercase}.moves-scroll{flex:0 1 auto;font-size:14px;line-height:1.8;max-height:200px;overflow-y:auto}.move-token{margin-right:6px}.move-num{color:#777;margin-right:4px}.no-moves{color:#555;font-style:italic}@media (max-width:900px){.game-page{align-items:flex-start;overflow-y:auto}.game-layout{align-items:center;flex-direction:column;justify-content:flex-start}.game-sidebar{flex:none;max-height:none;max-width:480px;overflow-y:visible;width:100%}}.review-page{margin:0 auto;max-width:1100px;padding:20px}.review-header{margin-bottom:16px}.review-header h1{font-size:1.4rem;margin:0 0 6px}.review-meta{color:#888;font-size:14px;line-height:1.5}.review-meta strong{color:#ccc}.review-layout{align-items:flex-start;display:flex;flex-wrap:wrap;gap:24px}.review-board-col{flex:0 0 auto}.review-sidebar{flex:1 1;min-width:260px}.review-controls{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:12px}.review-controls button{background:#262421;border:1px solid #403d39;border-radius:6px;color:#ddd;cursor:pointer;font-size:16px;height:40px;min-width:44px;padding:0 12px}.review-controls button:hover:not(:disabled){background:#403d39}.review-controls button:disabled{cursor:not-allowed;opacity:.35}.review-controls .play-btn{background:#3d4a2a;border-color:#629924;color:#d4e4bc;font-size:13px;font-weight:600;min-width:72px}.review-controls .play-btn.playing{background:#4a3820;border-color:#d4a843;color:#f0d890}.review-ply-label{color:#999;font-size:13px;min-width:64px;text-align:center}.review-moves{background:#262421;border-radius:8px;max-height:480px;overflow-y:auto;padding:14px}.review-moves h4{color:#777;font-size:13px;margin:0 0 10px;text-transform:uppercase}.review-move-grid{display:flex;flex-wrap:wrap;font-family:ui-monospace,monospace;font-size:14px;gap:4px 10px}.review-move-token{border-radius:3px;color:#bbb;cursor:pointer;padding:2px 4px}.review-move-token:hover{background:#403d39}.review-move-token.active{background:#629924;color:#fff}.review-move-num{color:#666;margin-right:4px}.review-result{background:#262421;border-radius:8px;color:#aaa;font-size:14px;margin-top:12px;padding:12px}.review-back{color:#81b64c;display:inline-block;font-size:14px;margin-bottom:12px;text-decoration:none}.review-back:hover{text-decoration:underline}@media (max-width:800px){.review-layout{align-items:center;flex-direction:column}}.ladder-sort{color:#888;display:flex;flex-direction:column;font-size:12px;gap:6px;letter-spacing:.4px;text-transform:uppercase}.ladder-sort select{background:#262421;border:1px solid #403d39;border-radius:6px;color:#fff;font-size:14px;min-width:min(220px,100%);padding:10px 12px}.ladder-viewer-chip{align-items:center;background:#262421;border-radius:8px;color:#ccc;display:flex;flex-wrap:wrap;font-size:14px;gap:10px;padding:10px 14px}.ladder-viewer-chip strong{color:#629924}.ladder-viewer-meta{color:#888;font-size:13px}.ladder-jump-btn{background:#0000;border:1px solid #629924;border-radius:4px;color:#81b64c;cursor:pointer;font-size:12px;padding:6px 10px}.ladder-jump-btn:hover{background:#2a3320}.ladder-header-row,.ladder-row{grid-gap:8px;align-items:center;display:grid;font-size:clamp(13px,1.4vw,14px);gap:8px;grid-template-columns:minmax(40px,56px) minmax(120px,1fr) minmax(64px,96px) minmax(56px,80px) minmax(100px,140px);padding:clamp(10px,1.2vw,12px) clamp(12px,2vw,20px)}.ladder-row{border-top:1px solid #302e2b}.ladder-row.highlight{background:#2a3320}.ladder-row .rank{color:#777;font-weight:600}.ladder-row .name{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ladder-row .rating{color:#629924;font-weight:700}.ladder-row .record{color:#999;font-size:13px}.empty-ladder{color:#777;padding:40px;text-align:center}@media (max-width:720px){.ladder-header-row,.ladder-row{grid-template-columns:40px 1fr 72px}.ladder-header-row span:nth-child(4),.ladder-header-row span:nth-child(5),.ladder-row .games,.ladder-row .record{display:none}}@media (max-width:480px){.ladder-header-row,.ladder-row{grid-template-columns:36px 1fr 64px;padding-inline:12px}}.competitions-create-btn{align-items:center;animation:create-btn-gradient 14s ease infinite;background:linear-gradient(135deg,#629924,#81b64c 18%,#4ecdc4 36%,#d4a843 54%,#9b59b6 72%,#629924);background-size:400% 400%;border:none;border-radius:50%;box-shadow:0 0 16px #62992459,0 4px 12px #00000040;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:48px;justify-content:center;position:relative;transition:transform .25s ease;width:48px}.competitions-create-btn:hover{transform:scale(1.06)}.competitions-create-btn:active{transform:scale(.97)}.competitions-create-btn-glow{animation:create-btn-spin 18s linear infinite;background:conic-gradient(from 0deg,#629924,#81b64c,#4ecdc4,#d4a843,#9b59b6,#629924);border-radius:50%;filter:blur(8px);inset:-4px;opacity:.45;position:absolute;z-index:-1}.competitions-create-btn-ring{animation:create-btn-spin 22s linear infinite reverse;background:conic-gradient(from 0deg,#629924,#4ecdc4,#d4a843,#9b59b6,#81b64c,#629924);border-radius:50%;inset:-3px;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;-webkit-mask-composite:xor;opacity:.85;padding:3px;pointer-events:none;position:absolute}.competitions-create-btn svg{height:22px;position:relative;width:22px;z-index:1}@keyframes create-btn-gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}@keyframes create-btn-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.competitions-dock{display:flex;flex-wrap:wrap;gap:8px}.competitions-dock .dock-btn{background:#1f1d1b;border:1px solid #403d39;border-radius:999px;color:#bbb;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;padding:8px 18px}.competitions-dock .dock-btn:hover{background:#403d39;color:#fff}.competitions-dock .dock-btn.active{background:#3d4a2a;border-color:#629924;color:#d4e4bc}.competitions-header-row,.competitions-row{grid-gap:8px;align-items:center;display:grid;font-size:clamp(13px,1.4vw,14px);gap:8px;grid-template-columns:minmax(140px,1.6fr) minmax(100px,1fr) minmax(64px,72px) minmax(72px,88px) minmax(120px,1.3fr) minmax(140px,1.5fr);padding:clamp(10px,1.2vw,12px) clamp(12px,2vw,20px)}.competitions-row{border-top:1px solid #302e2b}.competitions-row-clickable{cursor:pointer;transition:background .15s ease}.competitions-row-clickable:hover{background:#2f2c28}.competitions-row-joined{background:#2a3320;box-shadow:inset 3px 0 0 #629924}.competitions-row-joined:hover{background:#314028}.comp-name-cell{align-items:center;display:flex;gap:8px;min-width:0}.comp-joined-pill{flex-shrink:0;font-size:10px;padding:2px 8px}.comp-name{font-weight:600}.comp-creator,.comp-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comp-creator{color:#ccc}.comp-mode{font-size:13px;font-weight:600}.comp-mode-standard{color:#629924}.comp-mode-royale{color:#d4a843}.comp-format{color:#bbb;font-weight:600}.comp-schedule{color:#bbb;display:flex;flex-direction:column;font-size:13px;gap:2px;line-height:1.35;min-width:0}.comp-schedule-countdown{font-feature-settings:"tnum";color:#81b64c;font-variant-numeric:tabular-nums;font-weight:700}.comp-notes{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#999;display:-webkit-box;font-size:13px;line-height:1.4;min-width:0;overflow:hidden;text-overflow:ellipsis}@media (max-width:960px){.competitions-header-row,.competitions-row{grid-template-columns:minmax(120px,1.4fr) minmax(80px,1fr) minmax(64px,72px) minmax(100px,1.2fr) minmax(120px,1.3fr)}.competitions-header-row span:nth-child(4),.competitions-row .comp-format{display:none}}@media (max-width:720px){.competitions-header-row,.competitions-row{gap:6px 12px;grid-template-columns:1fr 1fr}.competitions-header-row span:nth-child(n+3),.competitions-row span:nth-child(n+3){grid-column:span 1}.comp-name-cell{grid-column:1/-1}}@media (max-width:480px){.competitions-header-row,.competitions-row{grid-template-columns:1fr;padding-inline:12px}.competitions-header-row{display:none}.competitions-row{padding-block:14px}.comp-name-cell{grid-column:1}}.create-competition-page{background:#161512;color:#fff;flex:1 1;margin:0 auto;max-width:720px;min-height:100vh;padding:32px 20px 48px}.create-comp-back{align-items:center;background:none;border:none;color:#999;cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;gap:8px;margin-bottom:20px;padding:0}.create-comp-back:hover{color:#fff}.create-comp-card{background:#262421;border-radius:8px;padding:32px}.create-comp-card h1{font-size:1.75rem;font-weight:600;margin-bottom:6px}.create-comp-subtitle{color:#999;margin-bottom:28px}.create-comp-section{margin-bottom:28px}.create-comp-section h2{color:#777;font-size:13px;font-weight:600;letter-spacing:.5px;margin-bottom:12px;text-transform:uppercase}.create-comp-section label{color:#bbb;display:flex;flex-direction:column;font-size:14px;gap:6px;margin-bottom:12px}.create-comp-section input,.create-comp-section textarea{background:#1a1816;border:1px solid #403d39;border-radius:4px;color:#fff;font-family:inherit;font-size:15px;padding:12px}.create-comp-section input:focus,.create-comp-section textarea:focus{border-color:#629924;outline:none}.create-comp-dock{display:flex;flex-wrap:wrap;gap:8px}.create-comp-dock .dock-btn{background:#1f1d1b;border:1px solid #403d39;border-radius:999px;color:#bbb;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;padding:8px 16px}.create-comp-dock .dock-btn:hover{background:#403d39;color:#fff}.create-comp-dock .dock-btn.active{background:#3d4a2a;border-color:#629924;color:#d4e4bc}.create-comp-dock .dock-btn.royale-active.active{background:#3d3520;border-color:#d4a843;color:#f0d890}.create-comp-hint{color:#777;font-size:13px;line-height:1.45;margin-top:10px}.create-comp-fifm-note{background:#1a1816;border-left:3px solid #629924;border-radius:0 4px 4px 0;color:#aaa;font-size:13px;line-height:1.5;margin-top:12px;padding:12px 14px}.create-comp-format-grid{grid-gap:10px;display:grid;gap:10px}.format-card{align-items:flex-start;background:#1f1d1b;border:1px solid #403d39;border-radius:6px;color:#bbb;cursor:pointer;display:flex;flex-direction:column;font-family:inherit;gap:4px;padding:14px 16px;text-align:left}.format-card:hover{background:#302e2b}.format-card.active{background:#2a3320;border-color:#629924}.format-card-label{color:#fff;font-size:15px;font-weight:700}.format-card-desc{color:#888;font-size:13px;line-height:1.4}.create-comp-tc-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}.tc-btn{background:#1f1d1b;border:1px solid #403d39;border-radius:4px;color:#ccc;cursor:pointer;font-family:inherit;font-size:14px;font-weight:600;padding:10px 8px}.tc-btn:hover{background:#403d39}.tc-btn.active{background:#3d4a2a;border-color:#629924;color:#d4e4bc}.create-comp-royale-tiers{display:flex;flex-direction:column;gap:12px}.royale-tier-row-form{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.royale-tier-name{color:#777;font-size:13px;font-weight:600;width:56px}.royale-tier-btns{display:flex;flex-wrap:wrap;gap:8px}.create-comp-visibility{margin-top:16px}.field-label{color:#bbb;display:block;font-size:14px;margin-bottom:8px}.create-comp-limits-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr)}.create-comp-limits-grid label{margin-bottom:0}.duration-dock{margin-bottom:12px}.create-comp-error{color:#e6912c;font-size:14px;margin-bottom:12px}.create-comp-submit{background:#629924;border:none;border-radius:4px;color:#fff;cursor:pointer;font-family:inherit;font-size:16px;font-weight:600;padding:14px;width:100%}.create-comp-submit:hover:not(:disabled){background:#7ab82e}.create-comp-submit:disabled{cursor:not-allowed;opacity:.6}@media (max-width:600px){.create-comp-card{padding:20px}.create-comp-limits-grid{grid-template-columns:1fr}}.swiss-bracket-section{margin-top:28px}.swiss-bracket-head{margin-bottom:14px}.swiss-bracket-head h2{color:#eee;font-size:1.15rem;font-weight:700;margin:0 0 4px}.swiss-bracket-rules{color:#888;font-size:13px;margin:0}.swiss-bracket-scroll{display:flex;gap:14px;overflow-x:auto;padding-bottom:8px;scrollbar-color:#403d39 #0000;scrollbar-width:thin}.swiss-round-col{flex:0 0 auto;max-width:220px;min-width:168px}.swiss-round-label{color:#999;font-size:12px;font-weight:700;letter-spacing:.06em;margin-bottom:10px;text-align:center;text-transform:uppercase}.swiss-round-groups{display:flex;flex-direction:column;gap:10px}.swiss-record-box{background:#1e1c1a;border:2px solid #403d39;border-radius:8px;overflow:hidden}.swiss-record-positive{border-color:#3d7a32;box-shadow:inset 0 0 0 1px #62992426}.swiss-record-negative{border-color:#8b3a3a;box-shadow:inset 0 0 0 1px #b446461f}.swiss-record-even{border-color:#9a7b2e;box-shadow:inset 0 0 0 1px #d4a8431f}.swiss-record-header{align-items:center;background:#00000040;border-bottom:1px solid #ffffff0f;display:flex;gap:6px;justify-content:space-between;padding:6px 10px}.swiss-record-score{font-feature-settings:"tnum";color:#eee;font-size:15px;font-variant-numeric:tabular-nums;font-weight:800}.swiss-record-tag{border-radius:3px;font-size:9px;font-weight:800;letter-spacing:.08em;padding:2px 6px;text-transform:uppercase}.swiss-record-tag.advance{background:#2d5a24;color:#b8e88a}.swiss-record-tag.eliminated{background:#5a2424;color:#f0a0a0}.swiss-record-body{display:flex;flex-direction:column;gap:6px;padding:8px}.swiss-match{grid-gap:4px;align-items:center;background:#262421;border:1px solid #353330;border-radius:6px;display:grid;gap:4px;grid-template-columns:1fr auto 1fr;padding:6px 8px;position:relative}.swiss-match.clickable{cursor:pointer;transition:border-color .15s,background .15s}.swiss-match.clickable:hover{background:#2a2d35;border-color:#5b8def}.swiss-match-vs{color:#666;font-size:10px;font-weight:700;text-transform:uppercase}.swiss-match-badge{border-radius:3px;font-size:9px;font-weight:800;letter-spacing:.06em;padding:1px 5px;position:absolute;right:6px;text-transform:uppercase;top:-6px}.swiss-match-badge.live{background:#629924;color:#fff}.swiss-match-badge.joining{background:#5b8def;color:#fff}.swiss-match-badge.scheduled{background:#555;color:#ddd}.swiss-match-result{color:#d4a843;font-size:11px;font-weight:700;grid-column:1/-1;margin-top:2px;text-align:center}.swiss-player{color:#ddd;display:block;font-size:12px;font-weight:600;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.swiss-player.compact{font-size:11px}.swiss-player.is-viewer{color:#8eb8ff}.swiss-player-advanced{color:#9fd86a}.swiss-player-eliminated{color:#c08080;opacity:.85;text-decoration:line-through}.swiss-idle-row{align-items:center;background:#00000026;border:1px dashed #403d39;border-radius:6px;display:flex;gap:6px;justify-content:space-between;padding:4px 8px}.swiss-idle-label{color:#666;flex-shrink:0;font-size:10px;letter-spacing:.05em;text-transform:uppercase}.swiss-bracket-footer{border-top:1px solid #403d39;display:flex;flex-wrap:wrap;gap:16px;margin-top:16px;padding-top:14px}.swiss-status-block{flex:1 1;min-width:180px}.swiss-status-title{display:block;font-size:11px;font-weight:800;letter-spacing:.08em;margin-bottom:8px;text-transform:uppercase}.swiss-status-advanced .swiss-status-title{color:#9fd86a}.swiss-status-eliminated .swiss-status-title{color:#e08080}.swiss-status-chips{display:flex;flex-wrap:wrap;gap:6px}.swiss-status-chips .swiss-player{background:#262421;border:1px solid #403d39;border-radius:4px;display:inline-block;padding:4px 10px}.swiss-status-advanced .swiss-status-chips .swiss-player{background:#2d5a2440;border-color:#3d7a32}.swiss-status-eliminated .swiss-status-chips .swiss-player{background:#5a242433;border-color:#6a3030}@media (max-width:720px){.swiss-round-col{min-width:150px}}.comp-detail-page{background:#161512;color:#fff;flex:1 1;margin:0 auto;max-width:960px;min-height:100vh;padding:32px 20px 48px}.comp-detail-back{align-items:center;background:none;border:none;color:#999;cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;gap:8px;margin-bottom:20px;padding:0}.comp-detail-back:hover{color:#fff}.comp-detail-empty,.comp-detail-loading{color:#777;padding:40px 0;text-align:center}.comp-detail-error{color:#e6912c;margin-bottom:16px}.comp-detail-header{align-items:flex-start;border-radius:8px;display:flex;gap:20px;justify-content:space-between;margin-bottom:24px;padding:16px 20px}.comp-detail-header-joined{background:#2a3320;box-shadow:inset 4px 0 0 #629924}.comp-detail-title-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px}.comp-detail-header-joined .comp-detail-title-row{margin-bottom:0}.comp-detail-header-joined h1{margin-top:8px}.comp-joined-pill{background:#3d4a2a;border:1px solid #629924;border-radius:999px;color:#d4e4bc;font-size:11px;font-weight:700;letter-spacing:.4px;padding:3px 10px;text-transform:uppercase}.comp-detail-header h1{font-size:2rem;font-weight:600;margin:8px 0 6px}.comp-detail-meta{color:#999;font-size:14px}.comp-detail-schedule{background:#1a1816;border-radius:6px;color:#bbb;display:flex;flex-direction:column;font-size:14px;gap:4px;line-height:1.4;margin-top:12px;padding:10px 14px}.comp-detail-schedule-upcoming{border-left:3px solid #629924}.comp-detail-schedule-running{border-left:3px solid #d4a843}.comp-detail-schedule-done{border-left:3px solid #555}.comp-detail-schedule-countdown{font-feature-settings:"tnum";color:#81b64c;font-size:1.25rem;font-variant-numeric:tabular-nums;font-weight:700}.comp-detail-status{border-radius:999px;display:inline-block;font-size:11px;font-weight:700;letter-spacing:.4px;padding:4px 10px;text-transform:uppercase}.status-upcoming{background:#2a3320;color:#81b64c}.status-running{background:#3d3520;color:#d4a843}.status-done{background:#302e2b;color:#777}.comp-detail-actions{align-items:center;display:flex;flex-shrink:0;flex-wrap:wrap;gap:10px;justify-content:flex-end}.comp-join-btn{background:#629924;border:none;border-radius:6px;color:#fff;cursor:pointer;font-family:inherit;font-size:15px;font-weight:600;padding:12px 24px}.comp-join-btn:hover:not(:disabled){background:#7ab82e}.comp-join-btn:disabled{cursor:not-allowed;opacity:.6}.comp-leave-btn{background:#0000;border:1px solid #6a4040;border-radius:6px;color:#c08080;cursor:pointer;font-family:inherit;font-size:15px;font-weight:600;padding:12px 20px}.comp-leave-btn:hover:not(:disabled){background:#6a303040;border-color:#8a5050;color:#e8a0a0}.comp-leave-btn:disabled{cursor:not-allowed;opacity:.6}.comp-edit-btn{align-items:center;background:#0000;border:1px solid #555;border-radius:6px;color:#ccc;cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;font-weight:600;gap:6px;padding:12px 18px}.comp-edit-btn:hover{background:#33302c;border-color:#888;color:#fff}.comp-pool-btn{background:#3d3520;border:1px solid #d4a843;border-radius:6px;color:#f0d890;cursor:pointer;font-family:inherit;font-size:15px;font-weight:600;margin-right:10px;overflow:hidden;padding:12px 24px;position:relative;transition:transform .2s ease,box-shadow .2s ease}.comp-pool-btn:hover:not(:disabled){background:#4a4028;transform:translateY(-1px)}.comp-pool-btn.seeking{animation:pool-btn-shimmer 3s ease infinite;background:linear-gradient(135deg,#3d3520,#4a4028,#3d3520);background-size:200% 200%;border-color:#d4a843;box-shadow:0 0 20px #d4a84359,inset 0 0 12px #d4a84314;color:#f0d890}@keyframes pool-btn-shimmer{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.comp-pool-btn:disabled{cursor:not-allowed;opacity:.5}.comp-pool-banner{background:#1a1816;border:1px solid #403d39;border-radius:8px;margin-bottom:20px;overflow:hidden;padding:20px 24px;position:relative}.comp-pool-banner-glow{animation:pool-banner-spin 8s linear infinite;background:conic-gradient(from 0deg,#0000,#d4a84326,#0000,#6299241f,#0000);inset:-40%;pointer-events:none;position:absolute}@keyframes pool-banner-spin{to{transform:rotate(1turn)}}.comp-pool-rings{height:64px;pointer-events:none;position:absolute;right:28px;top:50%;transform:translateY(-50%);width:64px}.comp-pool-ring{animation:pool-ring-pulse 2.4s ease-out infinite;border:2px solid #d4a84380;border-radius:50%;inset:0;position:absolute}.comp-pool-ring:nth-child(2){animation-delay:.8s}.comp-pool-ring:nth-child(3){animation-delay:1.6s}@keyframes pool-ring-pulse{0%{opacity:.9;transform:scale(.35)}to{opacity:0;transform:scale(1.4)}}.comp-pool-banner-content{align-items:center;display:flex;gap:12px;position:relative;z-index:1}.comp-pool-pulse-dot{animation:pool-dot-pulse 1.2s ease-in-out infinite;background:#d4a843;border-radius:50%;box-shadow:0 0 12px #d4a843cc;flex-shrink:0;height:10px;width:10px}@keyframes pool-dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.65;transform:scale(1.35)}}.comp-pool-banner-text{color:#f0d890;font-size:15px;font-weight:600;letter-spacing:.2px;margin:0}.comp-joined-badge{background:#2a3320;border:1px solid #629924;border-radius:6px;color:#d4e4bc;display:inline-block;font-weight:600;padding:12px 24px}.comp-join-blocked{background:#1f1d1b;border:1px solid #403d39;border-radius:6px;color:#888;display:inline-block;font-size:13px;line-height:1.4;max-width:220px;padding:12px 16px;text-align:center}.comp-detail-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr;margin-bottom:24px}.comp-detail-card-wide{max-width:480px}.comp-leaderboard-section{background:#262421;border-radius:8px;overflow:hidden;padding:20px}.comp-leaderboard-head{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:12px}.comp-leaderboard-head h2{color:#777;font-size:13px;font-weight:600;letter-spacing:.5px;margin:0;text-transform:uppercase}.comp-viewer-rank{color:#999;font-size:14px}.comp-viewer-rank strong{color:#629924}.comp-leaderboard-hint{color:#777;font-size:13px;margin:0 0 12px}.comp-leaderboard-table{overflow-x:auto}.comp-leaderboard-header,.comp-leaderboard-row{grid-gap:8px;align-items:center;display:grid;font-size:14px;gap:8px;grid-template-columns:40px 1fr 72px 56px 40px 40px 40px 56px;min-width:520px;padding:12px 4px}.comp-leaderboard-header{border-bottom:1px solid #403d39;color:#777;font-size:12px;font-weight:600;letter-spacing:.4px;text-transform:uppercase}.comp-leaderboard-header span:not(:first-child):not(:nth-child(2)),.comp-leaderboard-row span:not(:first-child):not(:nth-child(2)){font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:center}.comp-leaderboard-row{border-bottom:1px solid #302e2b;color:#ccc}.comp-leaderboard-row.highlight{background:#2a3320}.comp-leaderboard-row .lb-rank{color:#777;font-weight:700}.comp-leaderboard-row .lb-name{color:#fff;font-weight:600}.comp-leaderboard-row .lb-rating{color:#629924;font-weight:700;text-align:center}.comp-leaderboard-row .lb-score{color:#d4a843;font-weight:700}.comp-detail-card{background:#262421;border-radius:8px;padding:20px}.comp-detail-card h2{color:#777;font-size:13px;font-weight:600;letter-spacing:.5px;margin:0 0 16px;text-transform:uppercase}.comp-detail-dl{grid-gap:12px;display:grid;gap:12px}.comp-detail-dl div{display:flex;font-size:14px;gap:12px;justify-content:space-between}.comp-detail-dl dt{color:#888}.comp-detail-dl dd{color:#ddd;font-weight:600;text-align:right}.comp-detail-notes{border-top:1px solid #403d39;color:#aaa;font-size:14px;line-height:1.5;margin-top:16px;padding-top:16px}.comp-detail-fifm-hint,.comp-detail-lock-hint,.comp-detail-scheduled-hint{background:#1a1816;border-radius:4px;color:#999;font-size:13px;line-height:1.45;margin-top:14px;padding:10px 12px}.comp-detail-fifm-hint{border-left:3px solid #629924}.comp-detail-scheduled-hint{border-left:3px solid #5b8def}.comp-detail-lock-hint{border-left:3px solid #d4a843}.comp-match-offer{background:linear-gradient(135deg,#1a2332f2,#141820fa);border:1px solid #5b8def73;border-radius:10px;margin:0 0 20px;overflow:hidden;padding:20px 22px;position:relative}.comp-match-offer.urgent{animation:comp-match-shake .4s ease-in-out infinite alternate;border-color:#d4a843a6}@keyframes comp-match-shake{0%{transform:translateX(-1px)}to{transform:translateX(1px)}}.comp-match-offer-glow{animation:comp-pool-glow-pulse 2.5s ease-in-out infinite;background:radial-gradient(circle at 30% 50%,#5b8def2e,#0000 55%);inset:-40%;pointer-events:none;position:absolute}.comp-match-offer.urgent .comp-match-offer-glow{background:radial-gradient(circle at 30% 50%,#d4a84333,#0000 55%)}.comp-match-offer-content{position:relative;z-index:1}.comp-match-offer-head{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:8px}.comp-match-offer-badge{color:#8eb8ff;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.comp-match-offer-timer{font-feature-settings:"tnum";color:#c8daff;font-size:14px;font-variant-numeric:tabular-nums;font-weight:700}.comp-match-offer-timer.urgent{color:#f0c96a}.comp-match-offer-vs{color:#eee;font-size:22px;margin:0 0 6px}.comp-match-offer-vs strong{color:#fff}.comp-match-offer-hint{color:#9aa8bc;font-size:13px;margin:0 0 14px}.comp-match-join-btn{background:linear-gradient(180deg,#5b8def,#3d6fd4);border:none;border-radius:6px;box-shadow:0 4px 14px #3b6fd459;color:#fff;cursor:pointer;font-size:15px;font-weight:700;padding:10px 22px;transition:transform .15s,box-shadow .15s}.comp-match-join-btn:hover:not(:disabled){box-shadow:0 6px 18px #3b6fd473;transform:translateY(-1px)}.comp-match-join-btn:disabled{cursor:not-allowed;opacity:.55}.comp-match-waiting{color:#a8c4ff;font-weight:600;gap:10px}.comp-match-waiting,.comp-waiting-banner{align-items:center;display:flex;font-size:14px}.comp-waiting-banner{background:#1a1816;border:1px dashed #403d39;border-radius:8px;color:#888;gap:12px;margin:0 0 20px;padding:14px 18px}.comp-waiting-banner p{margin:0}.comp-invite-welcome{background:#5b8def14;border:1px solid #5b8def59;border-radius:8px;color:#b8cff5;font-size:14px;margin:0 0 16px;padding:12px 14px}.comp-invite-panel{background:#262421;border:1px solid #403d39;border-radius:10px;margin:0 0 20px;padding:18px 20px}.comp-invite-panel h2{font-size:1rem;font-weight:600;margin:0 0 6px}.comp-invite-hint{color:#999;font-size:13px;line-height:1.45;margin:0 0 12px}.comp-invite-row{align-items:stretch;display:flex;gap:8px}.comp-invite-input{background:#1a1816;border:1px solid #403d39;border-radius:6px;color:#ddd;flex:1 1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;min-width:0;padding:10px 12px}.comp-invite-copy{align-items:center;background:#629924;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:0 14px;white-space:nowrap}.comp-invite-copy:hover{background:#73ad2a}@media (max-width:720px){.comp-detail-header,.comp-invite-row{flex-direction:column}}.challenge-page{align-items:center;display:flex;justify-content:center;min-height:calc(100vh - 120px);padding:24px}.challenge-page-loading{color:#888}.challenge-card{background:#262421;border:1px solid #403d39;border-radius:12px;padding:28px 26px;text-align:center;width:min(420px,100%)}.challenge-card-badge{color:#d4a843;display:inline-block;font-size:13px;font-weight:700;letter-spacing:.06em;margin-bottom:10px;text-transform:uppercase}.challenge-card h1{color:#fff;font-size:1.35rem;margin:0 0 8px}.challenge-card-clock{color:#8eb8ff;font-size:15px;font-weight:700;margin:0 0 14px}.challenge-card-hint{color:#999;font-size:14px;line-height:1.5;margin:0 0 18px}.challenge-page-error{color:#e08080;font-size:13px;margin:0 0 12px}.challenge-card button{background:#403d39;border:none;border-radius:6px;color:#eee;cursor:pointer;font-family:inherit;font-size:14px;font-weight:600;padding:11px 22px}.challenge-accept-btn{background:linear-gradient(180deg,#629924,#4d7a1c)!important;color:#fff!important;min-width:180px}.challenge-accept-btn:disabled{cursor:not-allowed;opacity:.65}.challenge-card button:hover:not(:disabled){filter:brightness(1.06)}.profile-page{background:#161512;color:#fff;flex:1 1;font-family:inherit;margin:0 auto;max-width:960px;min-height:100vh;padding:32px 20px 48px}.profile-header{margin-bottom:24px}.profile-header h1{font-size:2rem;font-weight:600;margin:0 0 4px}.profile-meta{color:#999;font-size:14px}.profile-charts{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-bottom:20px}.rating-spider-grid{display:contents}.spider-chart-wrap{background:#262421;border-radius:8px;padding:16px;text-align:center}.spider-chart-wrap h4{color:#777;font-size:12px;font-weight:600;letter-spacing:.5px;margin:0 0 8px;text-transform:uppercase}.spider-chart{height:auto;max-width:240px;width:100%}.spider-chart text{font-family:inherit}.spider-label{fill:#ccc;font-size:12px;font-weight:600}.spider-rating{fill:#629924;font-size:11px;font-weight:700}.spider-chart-wrap:last-child .spider-rating{fill:#d4a843}.ratings-table{background:#262421;border-radius:8px;margin-bottom:24px;overflow:hidden}.ratings-header-row,.ratings-row{align-items:center;display:grid;font-size:14px;grid-template-columns:1fr 72px 56px 40px 40px 40px;padding:12px 20px}.ratings-header-row{background:#1a1816;color:#777;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.ratings-header-row span:not(:first-child),.ratings-row span:not(:first-child){font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:center}.ratings-row{border-top:1px solid #302e2b}.pool-cell,.pool-mode{font-weight:600}.pool-mode{color:#777;display:inline-block;font-size:12px;letter-spacing:.3px;margin-right:8px;text-transform:uppercase}.rating-cell{color:#629924;font-weight:700}.num-cell{color:#999}.profile-docks{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.dock-row{display:flex;flex-wrap:wrap;gap:8px}.dock-btn{background:#1f1d1b;border:1px solid #403d39;border-radius:999px;color:#bbb;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;padding:8px 16px}.dock-btn:hover{background:#403d39;color:#fff}.dock-btn.active{background:#3d4a2a;border-color:#629924;color:#d4e4bc}.dock-btn.royale-active.active{background:#3d3520;border-color:#d4a843;color:#f0d890}.history-section{background:#262421;border-radius:8px;overflow:hidden;padding:16px 0}.history-section h3{color:#999;font-size:1rem;font-weight:600;margin:0 0 12px;padding:0 20px}.history-table{width:100%}.history-header-row,.history-row{align-items:center;display:grid;font-size:14px;grid-template-columns:1.4fr 1.2fr 72px 72px 48px;padding:12px 20px}.history-header-row{background:#1a1816;color:#777;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.history-row{border-top:1px solid #302e2b;cursor:pointer;transition:background .15s ease}.history-row:hover{background:#2f2c28}.history-row span:last-child{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.outcome-win{color:#629924;font-weight:700}.outcome-loss{color:#e6912c;font-weight:700}.outcome-draw{color:#8ecae6;font-weight:700}.history-empty{color:#777;padding:24px 20px;text-align:center}.history-pagination{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-top:12px;padding:0 20px}.history-pagination button{background:#0000;border:1px solid #403d39;border-radius:4px;color:#bbb;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;padding:8px 14px}.history-pagination button:disabled{cursor:not-allowed;opacity:.4}.history-pagination span{color:#777;font-size:13px}@media (max-width:720px){.profile-charts{grid-template-columns:1fr}.ratings-header-row,.ratings-row{font-size:13px;grid-template-columns:1fr 64px 48px 36px 36px 36px;padding:10px 12px}.history-header-row,.history-row{font-size:13px;grid-template-columns:1fr 1fr 56px 56px 40px;padding:10px 12px}}*{box-sizing:border-box;margin:0;padding:0}#root,body,html{height:100%}body{background:#161512;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.layout{display:flex;height:100%;min-height:100vh;min-height:100dvh}.main-content{height:100%;min-width:0}.main-content,.page-shell{display:flex;flex:1 1;flex-direction:column;min-height:0}.page-shell{animation:page-fade-in .18s ease-out both;background:#161512;color:#fff;padding:clamp(16px,2.5vw,32px);width:100%}@keyframes page-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page-shell-head{align-items:center;display:flex;flex-shrink:0;gap:16px;justify-content:space-between;min-height:72px}.page-shell-head h1{font-size:clamp(1.5rem,2.5vw,2rem);font-weight:600;margin-bottom:6px}.page-shell-desc{color:#999;font-size:clamp(13px,1.5vw,15px);margin:0}.page-shell-toolbar{align-items:center;display:flex;flex-shrink:0;flex-wrap:wrap;gap:16px;margin:clamp(12px,1.5vw,20px) 0;min-height:56px}.page-shell-body{display:flex;flex:1 1;flex-direction:column;min-height:0}.page-shell-foot{align-items:center;display:flex;flex-shrink:0;gap:12px;justify-content:space-between;margin-top:clamp(12px,1.5vw,16px);min-height:52px}.page-shell-foot button{background:#262421;border:1px solid #403d39;border-radius:6px;color:#fff;cursor:pointer;font-family:inherit;font-size:13px;min-width:96px;padding:10px 20px}.page-shell-foot button:hover:not(:disabled){background:#2e2c28}.page-shell-foot button:disabled{cursor:default;opacity:.35}.page-foot-info{color:#bbb;font-size:14px;text-align:center}.page-foot-sub{color:#666;display:block;font-size:12px;margin-top:2px}.data-table{background:#262421;border-radius:8px;display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.data-table-scroll{flex:1 1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.data-table-header{background:#1a1816;color:#777;flex-shrink:0;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.data-table-empty,.data-table-loading{align-items:center;color:#777;display:flex;flex:1 1;flex-direction:column;gap:16px;justify-content:center;min-height:120px;padding:40px 20px;text-align:center}.page-shell .page-loading{background:#0000;flex:1 1;min-height:0;min-height:auto}.spinner{animation:spin .8s linear infinite;border:3px solid #403d39;border-radius:50%;border-top-color:#629924;height:32px;width:32px}@keyframes spin{to{transform:rotate(1turn)}}.lichess-sidebar .logo-text{font-size:28px;line-height:1}.lichess-sidebar .logo-link{all:unset;align-items:center;cursor:pointer;display:flex;height:44px;justify-content:center;margin:16px 0 24px;width:44px}.lichess-sidebar .icon.active{background:#629924;color:#fff}.sidebar-spacer{flex:1 1}.sidebar-user{align-items:center;background:#262421;border-radius:50%;color:#629924;display:flex;font-size:11px;font-weight:700;height:44px;justify-content:center;margin-bottom:8px;text-decoration:none;width:44px}.sidebar-user-link:hover{background:#403d39}.logout-icon{margin-bottom:16px}
/*# sourceMappingURL=main.cd3928c3.css.map*/