.online-invitation{padding:12px 0;border-bottom:1px solid #eee4d6}.online-invitation>small{display:block;color:#9d8565;margin:4px 0 9px}.online-invitation>div{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.online-history,.online-ranking{margin-top:20px}.online-history h2,.online-ranking h2{margin-top:0}.online-waiting{text-align:center;padding:35px 20px}.online-waiting-mark{font-size:44px;color:#b28b4f}.online-waiting h2{font-size:23px}.online-waiting p{color:#998264}.online-match-tools{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.online-match-summary{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:10px 0 18px}.online-match-summary h1{font-size:25px;margin:0 0 6px}.online-match-summary p{font-size:13px;color:#978062;margin:0}.online-match-status{text-align:right;min-width:180px}.online-match-status>strong,.online-match-status>small{display:block}.online-presence{font-size:12px;color:#9c876c;display:block;margin-top:5px}.online-presence i,.online-pair-connections span:before{display:inline-block;content:'';width:7px;height:7px;background:#c7bba9;border-radius:50%;margin-right:4px}.online-presence i.connected,.online-pair-connections .connected:before{background:#63967b}.online-board-shell{border:1px solid #e3d8c7;border-radius:12px;overflow:hidden;background:#f5f3ee}.online-board-frame{display:block;border:0;width:100%;height:calc(100dvh - 230px);min-height:540px;max-height:1100px}.online-board-frame:fullscreen{height:100dvh;max-height:none;background:#f5f3ee}.online-arbiter-controls .card{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px}.online-arbiter-controls .card>div{display:flex;gap:10px;align-items:center}.online-arbiter-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-bottom:20px}.online-pair-heading{display:flex;justify-content:space-between;gap:8px;font-size:13px}.online-pair-heading .tag{font-size:10px;white-space:normal;max-width:130px;align-self:start}.online-mini-board{display:grid;grid-template-columns:repeat(8,1fr);width:min(100%,280px);aspect-ratio:1;margin:16px auto 8px;border:5px solid #a17b43;border-radius:3px;overflow:hidden}.online-mini-board span{display:grid;place-items:center;line-height:1;font-size:28px;background:#f1d69e}.online-mini-board span.dark{background:#a47a45}.online-mini-board .white-piece{color:#fff8e9;text-shadow:0 1px 2px #4b392b}.online-mini-board .black-piece{color:#2d241b}.online-pair-connections{display:flex;justify-content:space-between;font-size:12px;color:#9b8467}.online-pair-actions{display:flex;gap:8px;flex-wrap:wrap}.online-error{margin:12px 0}.online-error[hidden]{display:none}.online-pair .button.small{padding:8px 11px;font-size:12px}.online-waiting button{margin-top:10px}@media(max-width:900px){.online-match-summary{display:block}.online-match-status{text-align:left;margin-top:12px}.online-match-status>strong,.online-presence{display:inline-block;margin-right:12px}.online-board-frame{height:calc(100dvh - 180px);min-height:520px}.online-arbiter-controls .card{display:block}.online-arbiter-controls .card>div{margin-top:10px;flex-wrap:wrap}}@media(max-width:500px){.online-match-summary h1{font-size:21px}.online-board-frame{min-height:540px}.online-match-tools .button{font-size:12px;padding:8px 10px}.online-arbiter-grid{grid-template-columns:1fr}}

.online-invite-badge{border:1px solid #caab78;background:#f3e6ce;color:#785434;border-radius:8px;padding:8px 12px;font:inherit;font-size:12px;cursor:pointer}.online-invite-badge[hidden]{display:none}

.replay-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:18px;align-items:start}.replay-summary{padding:16px 20px;margin-bottom:12px}.replay-summary p{margin:6px 0 0;font-size:13px}.replay-frame{width:100%;height:calc(100dvh - 340px);min-height:440px;border:1px solid #e2d8c8;border-radius:12px;background:#f5f3ee}.replay-controls{padding:14px;margin-top:12px}.replay-controls>div{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.replay-controls button{border:1px solid #d8c5a7;border-radius:7px;background:#fffaf2;padding:9px 13px;cursor:pointer;font:inherit}.replay-controls button:disabled{opacity:.4;cursor:default}.replay-controls label{display:flex;align-items:center;gap:8px;font-size:12px;margin-left:auto}.replay-controls select{padding:7px}.replay-controls input[type=range]{width:100%;margin-top:14px;accent-color:#94704a}.replay-position{font-size:13px;margin:5px 0}.replay-moves h2{margin-top:0;font-size:19px}.replay-move-list{display:grid;grid-template-columns:35px 1fr 1fr;max-height:440px;overflow:auto;align-items:center;gap:3px}.replay-move-list>span{color:#ad9471;font-size:12px}.replay-move-list>button{border:0;background:transparent;padding:8px;border-radius:5px;cursor:pointer;text-align:left;font:inherit;font-size:14px}.replay-move-list>button[aria-current=true]{background:#eadbc0;font-weight:700}.replay-moves details{margin:16px 0;font-size:13px;line-height:1.5}.replay-export{font-size:13px}.replay-file-label{cursor:pointer}.replay-layout [hidden]{display:none}@media(max-width:850px){.replay-layout{grid-template-columns:1fr}.replay-frame{height:60dvh;min-height:380px}.replay-move-list{max-height:250px}.replay-controls label{margin-left:0}}

.replay-layout>*{min-width:0}

.online-lobby-card{margin-bottom:20px;padding:20px 24px}.online-invite-form{display:flex;align-items:flex-end;gap:12px;max-width:720px}.online-invite-form .online-opponent-field{flex:1;min-width:0}.online-invite-form label{display:block;margin:0;font-size:14px}.online-invite-form select{display:block;width:100%;min-width:0;margin-top:7px;height:46px;font:inherit;padding:10px 36px 10px 12px;text-overflow:ellipsis}.online-invite-form .button{flex:none;min-height:46px;padding:10px 22px;margin:0}.online-invite-form .button:disabled{opacity:.55;cursor:default}.online-current-games{margin-top:14px}.online-current-games h2{font-size:17px;margin:18px 0 0}#online-invitations>.muted{margin:0;font-size:13px}#online-invitations .online-invitation:last-child{border-bottom:0;padding-bottom:0}#online-invitations .online-invitation strong{overflow-wrap:anywhere}.online-current-games [hidden]{display:none}@media(max-width:550px){.online-lobby-card{padding:18px}.online-invite-form{flex-direction:column;align-items:stretch;gap:10px}.online-invite-form .online-opponent-field{flex:none}.online-invite-form .button{width:100%;min-height:44px}.online-invite-form select{height:46px}.online-current-games{margin-top:12px}}

.online-history>.section-head{margin:0 0 14px}.online-history td:last-child .text-button{display:inline-block;margin:0;padding:0;font:inherit}
