.party-panel{box-sizing:border-box;width:min(850px,100%);margin:0 auto;padding:16px 24px;overflow-y:auto;overscroll-behavior:contain;min-height:0;border:1px solid #675438;background:linear-gradient(140deg,#251d17,#100e0c);color:#f2e6c8}.party-panel header{display:flex;align-items:center;justify-content:space-between;gap:12px}.party-panel h1{font-size:calc((32px) * var(--text-scale,1));margin:0}.party-panel h2{font-size:calc((21px) * var(--text-scale,1))}.party-panel p{font-size:calc((16px) * var(--text-scale,1));line-height:1.4}.party-panel header>span,.party-members small{font:calc(11px * var(--text-scale,1)) 'Space Mono',monospace}.party-panel input{display:block;width:100%;box-sizing:border-box;margin:6px 0 10px;min-height:44px;background:#080706;color:#fff3d8;border:1px solid #887454;padding:8px 12px;font-size:calc((20px) * var(--text-scale,1))}.party-panel form{display:flex;align-items:end;gap:12px;margin:16px 0}.party-panel form label{flex:1}.party-panel .btn{min-height:44px;white-space:normal}.party-panel form .btn{margin-bottom:10px}.party-invite{display:flex;gap:20px;margin:16px 0;align-items:center}.party-invite>svg{width:112px;height:112px;flex:none}.party-invite strong{font-size:calc((24px) * var(--text-scale,1));letter-spacing:.15em}.party-members{list-style:none;padding:0;margin:12px 0}.party-members li{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #5e4c35;padding:12px 0}.party-members small{display:block;margin-top:6px}.party-members li>div{display:flex;gap:8px}.party-rooms{border-top:1px solid #5e4c35}.party-rooms>.btn{display:flex;justify-content:space-between;width:100%;margin:8px 0;gap:12px}.party-panel footer{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.party-status{color:#f3d847;overflow-wrap:anywhere;min-height:22px}.party-move{padding:16px;border:2px solid #efdc37;background:#342c15}.party-move .btn{margin:4px}.party-confirm{position:fixed;inset:0;background:#000c;z-index:3000;display:grid;place-items:center;padding:16px}.party-confirm>div{max-width:520px;background:#251d17;border:2px solid #efd940;padding:24px}.party-confirm .btn{margin:8px}.private-header .btn{min-height:40px;padding:6px 12px}.party-host-controls{display:flex;gap:6px;align-items:center}.party-host-controls .btn{font-size:calc((10px) * var(--text-scale,1));padding:4px 8px;min-height:32px}.party-host-tag{color:#77e4ec}.party-home-button{min-height:40px;margin-right:16px}
@media(max-width:600px){.party-panel{padding:14px}.party-panel h1{font-size:calc((26px) * var(--text-scale,1))}.party-panel header{align-items:start}.party-panel header>span{max-width:70px}.party-members li{align-items:start;flex-wrap:wrap}.party-members li>div{width:100%}.party-members li .btn{flex:1}.party-panel form{flex-wrap:wrap}.party-panel form label{flex-basis:100%}.party-panel form .btn{flex:1}.party-invite{gap:12px}.private-header{flex-wrap:wrap}.private-header .btn{font-size:calc((11px) * var(--text-scale,1))}.party-panel footer .btn{flex:1}.party-panel input{font-size:calc((18px) * var(--text-scale,1))}}

.party-travel-banner{display:flex;flex:none;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:#352d13;border-bottom:2px solid #efdc37}.party-travel-banner .btn{min-height:44px}.party-travel-banner strong{font-size:calc((15px) * var(--text-scale,1))}

@media(min-width:601px){
 .party-panel{width:min(1120px,100%);padding:16px 22px}.party-content{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px}.party-destination{padding-top:8px}.party-panel .party-members li{min-height:60px;padding:8px 0}.party-panel .party-members li>div{gap:5px}.party-panel .party-members .btn{font-size:calc((10px) * var(--text-scale,1));padding:6px 8px;min-height:36px}.party-invite>svg{width:96px;height:96px}.party-invite p{margin:8px 0}.party-panel footer{border-top:1px solid #5e4c35;padding-top:12px;margin-top:8px}.party-rooms{max-height:300px;overflow:auto}.party-panel .party-status{margin:8px 0 0}.party-panel .party-invite{margin:14px 0}
}

.party-field{display:flex;align-items:start;gap:6px}.party-field input{min-width:0}.party-field>.btn{flex:none;min-width:44px;margin-top:6px}.party-confirm>.party-keyboard{width:min(560px,100%);max-height:92dvh;overflow:auto;box-sizing:border-box}.party-keyboard output{display:block;font-size:calc((24px) * var(--text-scale,1));overflow-wrap:anywhere;padding:8px;border:1px solid #887454}.party-keys{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;margin:12px 0}.party-keys>.btn{margin:0;padding:4px;min-width:0;min-height:44px}.party-keyboard footer{display:flex;gap:6px}.party-keyboard footer .btn{margin:0;flex:1}.party-keyboard h2{margin:0 0 12px}.party-panel .party-keyboard footer{margin-top:8px}

/* Party tasks fit the frame: one clear section at a time, with actions anchored. */
.party-panel{height:100%;overflow:hidden;padding:12px 18px;}
.party-shell{height:100%;min-height:0;display:flex;flex-direction:column;gap:10px;}
.party-panel header{flex:none}.party-panel header>span{font-size:11px;white-space:nowrap}
.party-tabs{display:flex;gap:8px;flex:none}.party-tabs .btn{flex:1;margin:0}
.party-content{display:block;flex:1;min-height:0;overflow:hidden;}
.party-roster{height:100%;min-height:0;}
.party-panel[data-page="players"] .party-invite,.party-panel[data-page="players"] .party-destination,
.party-panel[data-page="invite"] .party-members,.party-panel[data-page="invite"] .party-destination,
.party-panel[data-page="rooms"] .party-roster{display:none}
.party-panel .party-members{height:100%;margin:0;display:grid;grid-auto-rows:minmax(0,1fr);}
.party-panel .party-members li{min-height:0;padding:8px 0;flex-wrap:nowrap;}
.party-members li>span{min-width:0}.party-members b{display:block;overflow-wrap:anywhere;font-size:17px;line-height:1.2}
.party-panel .party-members li>div{width:auto;flex:none;flex-direction:column;}
.party-panel .party-members .btn{font-size:12px;min-height:36px;padding:5px 9px;}
.party-panel .party-invite{height:100%;margin:0;justify-content:center;}
.party-panel .party-invite>svg{width:160px;height:160px}
.party-panel .party-destination{height:100%;padding:0;display:flex;flex-direction:column;min-height:0;}
.party-panel .party-destination form{margin:0;flex:none}.party-panel .party-destination form label{flex-basis:auto;min-width:0}
.party-panel .party-rooms{max-height:none;overflow:hidden;min-height:0;flex:1;}
.party-panel .party-rooms h2{margin:8px 0;font-size:20px}.party-panel .party-rooms p{margin:6px 0;font-size:15px}
.party-panel .party-rooms>.btn{min-height:40px;padding:6px 10px;margin:6px 0;}
.party-room-pages{display:flex;align-items:center;gap:10px}.party-room-pages .btn{min-height:36px;padding:4px 10px;}
.party-panel footer{flex:none;gap:8px;margin:0;padding-top:8px;}
.party-panel .party-status{flex:none;margin:0;min-height:0;font-size:14px;line-height:1.25}.party-status:empty{display:none}
.party-panel[data-active="false"] .party-shell>p{margin:0}.party-panel[data-active="false"] form{margin:0}
.party-panel[data-active="false"] .party-shell>label{margin-top:auto}.party-panel[data-active="false"] .party-shell>.btn:last-child{margin-top:auto}
@media(max-width:600px){
 .party-panel{padding:10px}.party-shell{gap:8px}.party-panel header h1{font-size:26px}.party-panel header>span{max-width:none;font-size:10px}
 .party-tabs{gap:4px}.party-tabs .btn{font-size:13px;padding:8px 5px;min-height:44px}
 .party-panel .party-members b{font-size:15px}.party-panel .party-members small{font-size:10px;margin-top:3px}
 .party-panel .party-members .btn{font-size:11px;min-height:34px;padding:4px 7px}
 .party-panel .party-invite{flex-direction:column;gap:16px;text-align:center}.party-panel .party-invite>svg{width:176px;height:176px}
 .party-panel .party-destination form{flex-wrap:nowrap;gap:8px}.party-panel .party-destination form>.btn{flex:0 0 90px;padding:6px}
 .party-panel .party-destination form label{font-size:14px}.party-panel .party-destination input{font-size:18px}
 .party-panel .party-rooms h2{font-size:18px}.party-panel .party-rooms p{font-size:14px}
 .party-panel .party-rooms>.btn{font-size:13px}.party-panel footer .btn{font-size:13px;min-height:42px}
}
@media(max-height:500px) and (min-width:601px){
 .party-panel{padding:6px 14px}.party-shell{gap:5px}.party-panel h1{font-size:24px}
 .party-tabs .btn{min-height:34px;padding:4px}.party-panel .party-members{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;column-gap:20px}
 .party-panel .party-invite>svg{width:120px;height:120px}.party-panel .party-members li{padding:4px 0}
 .party-panel .party-destination{display:grid;grid-template-columns:1fr 1fr;gap:20px}.party-panel .party-destination form{align-self:start}
 .party-panel .party-rooms h2{font-size:16px;margin:0}.party-panel .party-rooms p{font-size:12px;line-height:1.2}
 .party-panel .party-rooms>.btn{min-height:30px;margin:3px 0;font-size:12px;padding:3px 8px}
 .party-panel footer{padding-top:4px}.party-panel footer .btn{min-height:34px;padding:4px 12px}
 .party-panel[data-active="false"] .party-shell{display:grid;grid-template-columns:1fr 1fr;align-content:start;column-gap:20px}
 .party-panel[data-active="false"] header{grid-column:1/-1}.party-panel[data-active="false"] form{grid-column:2;grid-row:2/5;display:block}
 .party-panel[data-active="false"] .party-shell>.btn{margin:0}.party-panel[data-active="false"] .party-shell>p{font-size:13px}
 .party-confirm>.party-keyboard{max-height:none;overflow:hidden;padding:10px;width:min(760px,100%)}.party-keys{grid-template-columns:repeat(12,minmax(0,1fr));margin:6px 0}
 .party-keyboard h2{font-size:20px;margin:0}.party-keyboard output{font-size:18px;padding:4px}.party-keyboard footer .btn{min-height:36px;padding:4px}
}
@media(max-width:600px) and (max-height:650px){.party-panel .party-invite>svg{width:136px;height:136px}.party-panel .party-invite{gap:8px}.party-invite p{margin:8px 0}.party-panel .party-rooms>.btn{min-height:34px;padding:4px 8px}.party-panel .party-rooms p{font-size:13px}}

.party-panel .party-members .btn{min-height:44px}
.party-panel .party-invite p{font-size:clamp(16px,calc(16px * var(--text-scale,1)),18px);line-height:1.3}
.party-panel .party-invite strong{font-size:clamp(24px,calc(24px * var(--text-scale,1)),28px)}
.party-panel .party-confirm h2{font-size:clamp(20px,calc(20px * var(--text-scale,1)),24px);overflow-wrap:anywhere}
@media(max-width:600px) and (max-height:650px){.party-panel .party-invite>svg{width:128px;height:128px}}

@media(max-width:600px) and (max-height:650px){
 .party-panel .party-invite{gap:5px}.party-panel .party-invite>svg{width:112px;height:112px}
 .party-panel .party-invite p{font-size:16px;margin:6px 0}.party-panel .party-invite strong{font-size:24px;line-height:1.1}
 .party-panel .party-room-pages .btn{min-height:34px;font-size:12px}.party-room-pages{font-size:12px}
}

/* Desktop Party is a game overlay, with no extra window or page navigation. */
.game-party-veil{position:absolute;padding:20px;box-sizing:border-box;background:rgba(8,7,7,.96);overflow:hidden;}
.game-party-veil .party-panel{width:min(900px,100%);height:100%;max-height:640px;padding:20px 24px;}
.game-party-veil .party-panel header{gap:14px;}
.game-party-veil .party-panel header h1{flex:1;}
.game-party-veil .party-panel header>.btn{flex:none;}
.game-party-veil .party-panel[data-active="false"] .party-shell{gap:18px;}
.game-party-veil .party-panel[data-active="false"] .party-shell>form{margin-top:12px;}
.game-party-veil .party-panel .party-player-name{margin-top:12px;}
@container(max-height:650px){.game-party-veil{padding:12px 20px}.game-party-veil .party-panel{padding:12px 20px}.game-party-veil .party-panel[data-active="false"] .party-shell{gap:10px}.game-party-veil .party-panel header h1{font-size:28px}}

.native-party-panel{display:flex;flex-direction:column;gap:8px;overflow:hidden}.native-party-panel .party-heading{display:flex;justify-content:space-between;gap:16px;align-items:center}.native-party-panel .party-heading h2{font-size:34px;margin:0}.native-party-panel .party-heading p{margin:4px 0;font-size:12px}.native-party-panel .party-member{display:flex;align-items:center;gap:12px;min-height:42px;border-top:1px solid #5e4c35}.native-party-panel .party-member>span:first-child{flex:1}.native-party-panel .actions{display:flex;flex-wrap:wrap;gap:8px}.native-party-panel .party-rooms{overflow:hidden;max-height:none;min-height:0}.native-party-panel .party-rooms>.btn{min-height:34px;margin:5px 0}.native-party-panel p{margin:5px 0}.native-party-panel .party-members{margin:2px 0}.native-party-panel:has(.party-rooms) .party-members{display:none}

/* Four members and party actions fit inside the header/footer at 960×540. */
.game-party-veil .native-party-panel{padding:12px 20px;gap:6px}
.native-party-panel .party-heading h2{font-size:28px;line-height:1.1}
.native-party-panel .party-member{min-height:36px;gap:8px}
.native-party-panel .party-member>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.native-party-panel .party-member>.btn{min-height:28px;padding:3px 8px;font-size:11px;flex:none}
.native-party-panel .actions>.btn{min-height:36px;padding:5px 12px;font-size:13px;line-height:1.2}
.native-party-panel>p{font-size:13px;line-height:1.3}
