/* Parties (item 61, src/party-ui.js): the frame under the character panel (left), the invite card (top centre, not
   modal, never blocks walking) and the invite window. Same palette as the target frame; HP as "230/300" (ถาม 122). */
#party-dock{position:absolute;z-index:3;left:22px;top:150px;display:grid;gap:6px;width:228px;font:12px Tahoma,"Noto Sans Thai",sans-serif;color:#fff8dc;pointer-events:none;user-select:none}
#party-dock[hidden],.party-solo[hidden],#party-frame[hidden],#party-invite[hidden],#party-invite-open[hidden]{display:none}
.party-solo{display:flex;pointer-events:auto}
#party-invite-open{min-height:0;padding:3px 10px;border:1px solid #9fd39a99;border-radius:12px;background:#1f3328dd;color:#e9ffe2;font:bold 11px/18px Tahoma,"Noto Sans Thai",sans-serif;cursor:pointer;box-shadow:0 2px 6px #0006}
#party-invite-open:hover,#party-invite-open:focus-visible{background:#2f6b3a}
#party-frame{display:grid;gap:5px;padding:6px 7px 7px;border:1.5px solid #8fcf8a;border-radius:9px;background:#1f3328e6;box-shadow:0 3px 10px #0007;pointer-events:auto}
.party-head{display:flex;align-items:center;gap:6px}
.party-title{flex:1;font-size:12px;color:#d9ffcf}
.party-tools{display:flex;gap:4px}
.party-tools #party-invite-open{padding:1px 8px;font-size:10px;line-height:16px;box-shadow:none}
#party-leave{min-height:0;padding:1px 8px;border:1px solid #ff9a7e88;border-radius:10px;background:#0003;color:#ffe6dc;font:bold 10px/16px Tahoma,"Noto Sans Thai",sans-serif;cursor:pointer}
#party-leave:hover,#party-leave:focus-visible{background:#b8452f}
.party-members{display:grid;gap:5px;margin:0;padding:0;list-style:none}
.party-member{position:relative;display:grid;gap:3px;padding:4px 5px;border-radius:6px;background:#0002}
.party-member.party-self{background:#2f6b3a55}
.party-member.party-offline{opacity:.55}
.party-menu-row{cursor:pointer}
.party-menu-row:hover,.party-menu-row:focus-visible{outline:1px solid #8fcf8a88}
.party-member-top{display:flex;align-items:baseline;gap:5px;min-width:0}
.party-crown{flex:none;width:14px;font-size:11px;text-align:center}
.party-name{flex:1;min-width:0;overflow:hidden;font-weight:bold;text-overflow:ellipsis;white-space:nowrap}
.party-level{flex:none;color:#cfe8c9;font-size:10px}
.party-hp{position:relative;height:12px;overflow:hidden;border-radius:5px;background:#3b2420}
.party-hp-fill{position:absolute;inset:0 auto 0 0;background:#58b94a;transition:width .15s linear}
.party-hp.party-hp-low .party-hp-fill{background:#e2513c}
.party-hp-text{position:relative;display:block;color:#fffaf0;font:bold 9px/12px Tahoma,sans-serif;text-align:center;text-shadow:0 1px 1px #0009;font-variant-numeric:tabular-nums}
.party-where{color:#f4dfa8;font-size:10px}
.party-menu{display:flex;gap:4px;margin-top:2px}
.party-menu button{flex:1;min-height:0;padding:3px 4px;border:1px solid #8fcf8a88;border-radius:6px;background:#0004;color:#fff8dc;font:bold 10px/14px Tahoma,"Noto Sans Thai",sans-serif;cursor:pointer}
.party-menu .party-kick{border-color:#ff9a7e88}
.party-menu button:hover,.party-menu button:focus-visible{background:#2f6b3a}
.party-menu .party-kick:hover,.party-menu .party-kick:focus-visible{background:#b8452f}
/* Invite card: top centre under the target frame row, small and not modal. */
#party-invite{position:absolute;z-index:4;top:64px;left:50%;transform:translateX(-50%);display:grid;gap:5px;box-sizing:border-box;width:min(300px,calc(100vw - 24px));padding:8px 10px;border:1.5px solid #8fcf8a;border-radius:10px;background:#1f3328f2;box-shadow:0 4px 14px #0008;color:#fff8dc;font:12px Tahoma,"Noto Sans Thai",sans-serif;text-align:center}
.party-invite-text{margin:0;font-weight:bold}
.party-invite-time,.party-invite-more{color:#cfe8c9;font-size:10px}
.party-invite-more:empty{display:none}
.party-invite-actions{display:flex;gap:8px;justify-content:center}
#party-accept,#party-decline{min-height:0;padding:4px 14px;border-radius:8px;font:bold 12px/18px Tahoma,"Noto Sans Thai",sans-serif;cursor:pointer}
#party-accept{border:1px solid #9fd39a;background:#2f6b3a;color:#f2ffe9}
#party-decline{border:1px solid #ff9a7e88;background:#0003;color:#ffe6dc}
#party-accept:disabled,#party-decline:disabled,#party-leave:disabled,.party-menu button:disabled{opacity:.6;cursor:wait}
/* Invite window (modal <dialog>). */
#party-invite-dialog{box-sizing:border-box;width:min(340px,calc(100vw - 24px));max-height:min(480px,calc(100vh - 24px));padding:12px;border:1.5px solid #8fcf8a;border-radius:12px;background:#1f3328;color:#fff8dc;font:13px Tahoma,"Noto Sans Thai",sans-serif;box-shadow:0 8px 24px #000a}
#party-invite-dialog::backdrop{background:#0006}
.party-dialog-head{display:flex;align-items:center;gap:8px}
.party-dialog-head h2{flex:1;margin:0;font-size:15px;color:#d9ffcf}
.party-dialog-close{min-height:0;width:28px;height:28px;padding:0;border:1px solid #8fcf8a88;border-radius:7px;background:#0003;color:#fff8dc;font:bold 16px/1 Tahoma,sans-serif;cursor:pointer}
.party-dialog-note{margin:6px 0 8px;color:#cfe8c9;font-size:11px}
.party-nearby{display:grid;gap:4px;max-height:220px;margin:0 0 10px;padding:0;overflow:auto;list-style:none}
.party-nearby-player{width:100%;min-height:0;padding:6px 8px;border:1px solid #8fcf8a55;border-radius:7px;background:#0003;color:#fff8dc;font:12px Tahoma,"Noto Sans Thai",sans-serif;text-align:left;cursor:pointer}
.party-nearby-player:hover,.party-nearby-player:focus-visible{background:#2f6b3a}
.party-nearby-player:disabled{opacity:.5;cursor:not-allowed}
.party-nearby-empty{color:#cfe8c9;font-size:11px}
.party-name-form{display:flex;gap:6px}
.party-name-input{flex:1;min-width:0;padding:6px 8px;border:1px solid #8fcf8a88;border-radius:7px;background:#0b1a12;color:#fff8dc;font:13px Tahoma,"Noto Sans Thai",sans-serif}
.party-name-send{min-height:0;padding:6px 12px;border:1px solid #9fd39a;border-radius:7px;background:#2f6b3a;color:#f2ffe9;font:bold 12px Tahoma,"Noto Sans Thai",sans-serif;cursor:pointer}
/* Phones (390 px) and landscape phones: a slim frame, no level, clear of the joystick (bottom left). */
@media(max-width:720px){#party-dock{width:170px}.party-level{display:none}.party-where{font-size:9px}#party-invite{top:56px}}
@media(max-height:500px){#party-dock{width:160px;gap:4px}.party-member{padding:2px 4px}.party-members{max-height:calc(100vh - 230px);overflow:auto}.party-level{display:none}#party-invite{top:8px}}
@media(prefers-reduced-motion:reduce){.party-hp-fill{transition:none}}
