/* Invitation-first PVP preview. Keep it scoped to avoid changing solo play. */
.nav-item .nav-dot{visibility:hidden;flex-shrink:0}.nav-item.active .nav-dot{visibility:visible}
.pvp-heading{margin-bottom:20px}.pvp-heading h1{flex-wrap:wrap}.pvp-connection{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;color:#9298ac;font-size:11px;margin-top:28px}.pvp-connection i{width:6px;height:6px;border-radius:50%;background:#c5a15b}.pvp-connection.is-online i{background:#59a586}.pvp-connection.is-online{color:#609882}
.pvp-preview-note{display:flex;align-items:center;gap:9px;padding:12px 16px;margin-bottom:20px;border:1px solid #e4e8fb;border-radius:10px;background:#f0f2fe;color:#7a83ac;font-size:11px;line-height:1.7}.pvp-preview-note .icon{width:16px;height:16px}
.pvp-match-bar{display:flex;align-items:center;gap:24px;background:white;border:1px solid var(--line);border-radius:13px;padding:20px 25px;margin-bottom:22px}.pvp-contender{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.pvp-contender strong{display:block;font-size:12px;font-weight:600;overflow-wrap:anywhere}.pvp-contender strong small{font-size:9px;color:#969eb7;font-weight:400;margin-left:5px}.pvp-contender div>span{display:block;color:#a2a8b9;font-size:10px;margin-top:6px}.pvp-contender .avatar{width:40px;height:40px}.pvp-versus{font-size:12px;font-weight:700;font-style:italic;color:#bcc2d8;letter-spacing:1px}.pvp-opponent{flex:1.7}.pvp-match-clock{display:flex;gap:8px;align-items:center;color:#8b94b1;font-family:ui-monospace,monospace;font-size:12px}.pvp-match-clock .icon{width:16px}
.pvp-grid{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:23px;align-items:stretch}.pvp-arena{position:relative;min-width:0;min-height:580px;isolation:isolate}.pvp-arena-content{display:flex;flex-direction:column;height:100%;min-height:580px;padding:28px 28px 0}.pvp-arena .panel-heading{align-items:flex-start}.pvp-arena .panel-heading h2{font-size:16px;line-height:1.7}.pvp-arena .panel-heading .btn{font-size:11px;flex-shrink:0}.pvp-number-stage{position:relative;display:flex;flex-direction:column;align-items:center;margin:45px 0 18px;gap:20px}.pvp-number-label{display:block;font-size:10px;color:#a0a6ba;text-align:center;letter-spacing:1px}.pvp-opponent-secret .secret-tiles{margin:16px 0 0;gap:12px}.pvp-opponent-secret .secret-tiles>span{width:76px;height:88px;font-size:40px}.pvp-own-secret{align-self:flex-end}.pvp-own-secret .pvp-number-label{text-align:right;font-size:9px;letter-spacing:0}.pvp-number-label small{font-size:8px;margin-left:6px;color:#b7bcc9}.pvp-own-tiles{display:flex;gap:6px;margin-top:9px}.pvp-own-tiles span{display:grid;place-items:center;width:34px;height:39px;border:1px solid #e7e9f0;border-radius:6px;background:#f8f9fc;color:#9197a8;font-family:ui-monospace,monospace;font-size:19px}.pvp-guess-preview{margin-top:auto}.pvp-guess-preview .guess-label{margin-top:28px}.pvp-guess-preview input:disabled{background:#fafbfe;color:#a9aec0;cursor:not-allowed}.pvp-guess-preview button:disabled{cursor:not-allowed;opacity:.5}.pvp-arena-foot{display:flex;justify-content:center;align-items:center;gap:7px;font-size:10px;line-height:1.8;color:#a1a8bd;background:#fdfdff;border-top:1px solid var(--line);margin:0 -28px;padding:18px 20px;text-align:center}.pvp-arena-foot .icon{width:13px;height:13px}
.pvp-history{display:flex;flex-direction:column;min-width:0}.pvp-history .panel-heading{padding:25px 22px}.pvp-history h2{font-size:14px}.pvp-history .small{font-size:10px}.pvp-history-label{display:flex;justify-content:space-between;padding:16px 22px;font-size:10px;color:#a8aec1;border-bottom:1px solid #f1f2f8;background:#fdfdff}.pvp-history .empty-history{margin:auto 0;padding:55px 15px}.pvp-history .empty-history strong{font-size:11px}.pvp-history .empty-history p{line-height:1.8}.pvp-history-foot{display:flex;align-items:center;gap:6px;font-size:9px;color:#a8aec0;line-height:1.8;padding:20px 18px;border-top:1px solid var(--line)}.pvp-history-foot .icon{width:13px;height:13px}
.pvp-lobby-shade{position:absolute;inset:0;z-index:1;background:rgba(32,35,55,.2);display:flex;justify-content:center;align-items:center;padding:25px}.pvp-lobby{width:100%;max-width:405px;padding:26px;background:white;border:1px solid #edeef7;border-radius:16px;box-shadow:0 12px 35px #26305c14;text-align:center;max-height:100%;overflow:auto}.pvp-lobby-icon{height:44px;width:44px;display:grid;place-items:center;margin:0 auto 14px;border-radius:13px;background:#eef0ff;color:#7b86da}.pvp-lobby-icon .icon{width:23px;height:23px}.pvp-lobby h2{font-size:18px;font-weight:600;letter-spacing:.4px}.pvp-lobby>p{font-size:11px;color:#989fb4;line-height:1.9;margin-top:10px;overflow-wrap:anywhere}.pvp-online-heading{display:flex;justify-content:space-between;align-items:center;padding:23px 0 12px;text-align:left;font-size:10px;color:#a1a7ba}.pvp-online-heading strong{font-size:11px;font-weight:500;color:#858da6}.pvp-player-list{max-height:190px;overflow:auto;border-top:1px solid #f0f1f7}.pvp-player{display:flex;align-items:center;gap:10px;text-align:left;padding:13px 0;border-bottom:1px solid #f0f1f7}.pvp-player>div{flex:1;min-width:0}.pvp-player strong{display:block;font-size:12px;color:#626c88;overflow-wrap:anywhere;font-weight:500}.pvp-player small{display:block;font-size:9px;color:#a5adc1;margin-top:5px}.pvp-player .btn{font-size:10px;padding:7px 11px;min-height:31px}.pvp-player button:disabled{cursor:default}.pvp-list-empty{padding:26px 0 18px;color:#939bb1;font-size:12px;line-height:2}.pvp-list-empty span{font-size:10px;color:#aeb4c4}.pvp-lobby-foot{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:20px;font-size:9px;color:#aab0c1}.pvp-waiting-person{display:flex;align-items:center;gap:10px;text-align:left;border:1px solid var(--line);border-radius:9px;padding:16px 12px;margin:22px 0}.pvp-waiting-person strong{font-size:12px;font-weight:500;overflow-wrap:anywhere}.pvp-waiting-person>span:last-child{font-size:9px;margin-left:auto;color:#9ea6bd;white-space:nowrap}.pvp-lobby-note{padding:15px 0}
#pvp-notifications{position:fixed;z-index:100;top:88px;right:26px;width:330px;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:12px;pointer-events:none}.pvp-invitation,.pvp-notice{pointer-events:auto;background:white;border:1px solid #e5e8f4;border-radius:13px;box-shadow:0 12px 40px #25305a26;padding:20px}.pvp-invite-heading{display:flex;gap:12px;align-items:center}.pvp-invite-heading>div{min-width:0}.pvp-invite-heading strong{font-size:13px;font-weight:600;overflow-wrap:anywhere}.pvp-invite-heading p{font-size:11px;color:#949db3;margin-top:6px;line-height:1.6}.pvp-invite-expiry{font-size:10px;color:#a4acc0;margin:16px 0 12px}.pvp-invite-actions{display:flex;gap:10px}.pvp-invite-actions .btn{flex:1;font-size:12px;min-height:38px;padding:8px}.btn.pvp-accept{color:white;background:#46a37a;border-color:#46a37a}.btn.pvp-accept:hover{background:#358c65}.btn.pvp-reject{color:#cf626e;background:#fff1f2;border-color:#f3d7dc}.btn.pvp-reject:hover{background:#ffe6e9}.pvp-notice{display:flex;align-items:flex-start;gap:10px;font-size:12px;color:#568d77;line-height:1.8;padding:16px 18px}.pvp-notice .icon{width:17px;height:17px;margin-top:2px}.pvp-notice.is-error{color:#b85c70}
@media(min-width:1450px){.pvp-grid{grid-template-columns:minmax(0,1fr) 310px}.pvp-arena{min-height:610px}.pvp-arena-content{min-height:610px}.pvp-number-stage{margin-top:55px;min-height:190px;justify-content:flex-start}.pvp-own-secret{position:absolute;right:0;bottom:0}.pvp-opponent-secret .secret-tiles>span{width:80px;height:94px}}
@media(max-width:1100px){.pvp-grid{grid-template-columns:minmax(0,1fr) 235px;gap:16px}.pvp-arena-content{padding:24px 20px 0}.pvp-arena-foot{margin-left:-20px;margin-right:-20px}.pvp-opponent-secret .secret-tiles>span{width:57px;height:70px;font-size:31px}.pvp-arena .panel-heading{gap:10px}.pvp-arena .panel-heading h2{font-size:13px}.pvp-arena .panel-heading .btn{font-size:10px;padding:8px}.pvp-arena .panel-heading .btn .icon{display:none}.pvp-lobby-shade{padding:18px}.pvp-lobby{padding:22px 18px}.pvp-lobby h2{font-size:16px}.pvp-lobby>p{font-size:10px}.pvp-guess-preview .guess-controls{gap:10px}.pvp-guess-preview .digit-inputs input{width:35px}.pvp-guess-preview .submit-guess{padding:0 12px;font-size:11px}}
@media(max-width:950px){.pvp-grid{grid-template-columns:1fr}.pvp-arena-content{min-height:575px}.pvp-history{min-height:290px}.pvp-history .empty-history{padding:32px 15px}.pvp-opponent-secret .secret-tiles>span{width:72px;height:84px}.pvp-guess-preview .digit-inputs input{width:46px}.pvp-guess-preview .submit-guess{padding:0 20px}.pvp-lobby{max-width:405px}.pvp-lobby h2{font-size:18px}.pvp-lobby>p{font-size:11px}}
@media(max-width:700px){.pvp-heading{gap:8px}.pvp-heading h1{font-size:21px;gap:7px}.pvp-heading .title-tag{font-size:9px}.pvp-heading p{max-width:none}.pvp-connection{font-size:9px;gap:4px;position:absolute;right:18px;margin-top:0}.pvp-preview-note{padding:10px 12px;font-size:10px;align-items:flex-start;margin-bottom:15px}.pvp-preview-note .icon{margin-top:1px;flex-shrink:0}.pvp-match-bar{gap:12px;flex-wrap:wrap;padding:16px;margin-bottom:16px}.pvp-contender{gap:8px;flex:1}.pvp-contender .avatar{height:30px;width:30px;font-size:10px}.pvp-contender strong{font-size:10px}.pvp-contender div>span{font-size:8px}.pvp-versus{font-size:10px}.pvp-match-clock{justify-content:center;width:100%;font-size:10px;border-top:1px solid #f0f1f7;padding-top:10px}.pvp-match-clock .icon{width:13px;height:13px}.pvp-arena-content{min-height:600px;padding-top:22px}.pvp-number-stage{margin-top:32px}.pvp-opponent-secret .secret-tiles>span{width:58px;height:69px;font-size:31px}.pvp-opponent-secret .secret-tiles{gap:9px}.pvp-own-tiles span{width:29px;height:34px;font-size:17px}.pvp-guess-preview .digit-inputs input{width:55px}.pvp-guess-preview .submit-guess{width:250px}.pvp-arena-foot{font-size:9px}.pvp-lobby-shade{padding:14px}.pvp-lobby{padding:23px 18px}.pvp-lobby h2{font-size:16px}.pvp-lobby>p{font-size:10px}.pvp-waiting-person{gap:8px;padding:13px 10px}.pvp-waiting-person strong{font-size:11px}.pvp-waiting-person>span:last-child{font-size:8px}.pvp-player strong{font-size:11px}.pvp-player .btn{font-size:10px}.pvp-history .panel-heading{padding:20px}#pvp-notifications{top:76px;right:16px;width:320px}}
@media(max-width:440px){.topbar .account>div{display:none}.topbar .breadcrumb>span,.topbar .breadcrumb>strong{white-space:nowrap}.topbar{gap:8px}.topbar .account{flex-shrink:0}}
.pvp-lobby{max-width:820px;padding:30px}.pvp-lobby-columns{display:grid;grid-template-columns:1fr 2fr;gap:28px;margin-top:22px;text-align:left}.pvp-self{display:flex;align-items:center;flex-direction:column;justify-content:center;gap:12px;background:#f6f7fe;border-radius:12px;padding:24px 12px;overflow-wrap:anywhere;min-width:0;text-align:center}.pvp-self .avatar{width:76px;height:76px}.pvp-self strong{font-size:15px}.pvp-self small,.pvp-self>span{font-size:11px;color:#9aA2b8}.pvp-lobby-players{min-width:0}.pvp-online-heading{padding-top:0}.pvp-search{width:100%;padding:11px 13px;border:1px solid #e0e4f2;border-radius:8px;margin:0 0 12px;color:#616b87}.pvp-player-list{max-height:270px;min-height:160px}.pvp-lobby-shade{padding:24px}.pvp-correct{background:#e5f7ed!important;color:#35976a!important;border-color:#bde3cb!important}.pvp-shake{animation:pvp-shake .45s ease}.pvp-result-shade{position:fixed;inset:0;background:#20233750;display:grid;place-items:center;z-index:90;padding:20px}.pvp-result{background:white;border-radius:18px;padding:34px;text-align:center;max-width:460px;box-shadow:0 20px 60px #20233730}.pvp-result h2{margin-bottom:22px;color:#4e5be8}.pvp-result p{margin:14px 0;color:#7b849e;line-height:1.8}.pvp-result button{margin-top:14px}.profile-avatar-picker{margin:0 25px 20px;display:grid;gap:16px}.profile-avatar-picker .avatar{width:72px;height:72px}.profile-avatar-picker label{margin:0}.profile-avatar-picker input{display:block;margin-top:10px;max-width:100%;font-size:11px}
@keyframes pvp-shake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
@media(max-width:700px){.pvp-lobby{padding:22px 16px}.pvp-lobby-columns{grid-template-columns:1fr;gap:16px}.pvp-self{flex-direction:row;flex-wrap:wrap;padding:12px;gap:8px}.pvp-self .avatar{height:34px;width:34px}.pvp-self>span{display:none}.pvp-self strong{font-size:12px}.pvp-player-list{max-height:190px;min-height:80px}.pvp-lobby-shade{padding:12px}}
.pvp-self>.icon{width:40px;height:40px;color:#7b86da;margin-bottom:8px}.pvp-self p{font-size:10px;color:#949eb6;line-height:2;margin-top:10px}@media(max-width:700px){.pvp-self>.icon{height:24px;width:24px;margin:0}.pvp-self p{display:none}}
/* Keep the board independent of history growth; 30 records fit in two columns. */
.content:has(#pvp-page){padding-top:22px;padding-bottom:12px}
.pvp-heading{margin-bottom:14px}.pvp-heading h1{margin-top:8px}.pvp-heading p{margin-top:6px}.pvp-preview-note{padding:8px 12px;margin-bottom:12px}.pvp-match-bar{padding:12px 20px;margin-bottom:14px}
.pvp-grid{grid-template-columns:minmax(0,1.45fr) minmax(390px,1fr);gap:20px;align-items:start}
.pvp-arena{height:clamp(460px,calc(100dvh - 400px),650px);min-height:0}
.pvp-arena-content{height:100%;min-height:0;padding-top:20px}
.pvp-number-stage{position:static;min-height:0;margin:20px 0 10px;gap:12px}
.pvp-opponent-secret .secret-tiles{margin-top:10px}.pvp-opponent-secret .secret-tiles>span{width:65px;height:76px;font-size:34px}
.pvp-own-secret{position:static;align-self:center}.pvp-own-secret .pvp-number-label{text-align:center}.pvp-own-tiles{justify-content:center;margin-top:6px}
.pvp-guess-preview{margin:16px 0 0}.pvp-guess-preview .guess-label{margin:0 0 12px}.pvp-guess-preview .input-hint{margin:10px 0 16px}.pvp-arena-foot{margin-top:auto;padding-top:12px;padding-bottom:12px}
.pvp-history{height:clamp(460px,calc(100dvh - 400px),650px);min-height:0;overflow:hidden}
.pvp-history .panel-heading{padding:17px 18px}.pvp-history-columns{display:grid;grid-template-columns:1fr 1fr;flex:1;min-height:0;overflow:auto;align-content:start}
.pvp-history-column{min-width:0}.pvp-history-column+section{border-left:1px solid var(--line)}
.pvp-record-head,.pvp-record{display:grid;grid-template-columns:32px minmax(0,1fr) 40px;align-items:center;gap:5px;padding:7px 11px;border-bottom:1px solid #f0f1f7;font-size:10px;color:#8f98b0}
.pvp-record-head{height:29px;background:#fafbfe;font-size:9px}.pvp-record{height:28px}.pvp-record strong{font-family:ui-monospace,monospace;font-size:13px;letter-spacing:2px;color:#606b87}.pvp-record .complete{color:#35976a}.pvp-record-empty{text-align:center;color:#b1b7c8;font-size:10px;padding:18px 5px}.pvp-history-foot{padding:12px;font-size:9px}
@media(max-width:1150px) and (min-width:951px){.pvp-grid{grid-template-columns:minmax(0,1fr) 350px;gap:14px}.pvp-record-head,.pvp-record{padding-left:8px;padding-right:8px;grid-template-columns:24px minmax(0,1fr) 32px;gap:3px}.pvp-record strong{font-size:12px;letter-spacing:1px}.pvp-guess-preview .guess-controls{flex-direction:column}.pvp-guess-preview .submit-guess{height:36px}.pvp-number-stage{margin-top:14px;gap:8px}.pvp-opponent-secret .secret-tiles>span{width:48px;height:56px;font-size:28px}.pvp-own-tiles span{width:29px;height:32px}}
@media(max-width:950px){.pvp-grid{grid-template-columns:1fr}.pvp-arena{height:520px}.pvp-history{height:auto;max-height:540px;min-height:240px}.pvp-history-columns{flex:none;max-height:449px}.pvp-number-stage{margin-top:20px}.pvp-arena-content{min-height:0}}
@media(max-width:700px){.pvp-arena{height:550px}.pvp-arena-content{padding-top:20px}.pvp-number-stage{margin-top:20px}.pvp-opponent-secret .secret-tiles>span{width:58px;height:68px}.pvp-guess-preview .guess-controls{gap:10px}.pvp-lobby{max-height:100%}.pvp-record-head,.pvp-record{padding-left:9px;padding-right:9px;grid-template-columns:25px minmax(0,1fr) 34px}.pvp-record strong{font-size:12px;letter-spacing:1px}}
