/* Current party: a single roster stage with an invitation desk and live public messages. */
.team-drawer .team-content[data-team-view="party"] .party-layout{
  display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,1fr);
  align-items:stretch;gap:16px;
}
.team-drawer .party-roster-panel{
  min-width:0;padding:14px 13px 13px;border:1px solid #9f855b;border-radius:5px;
  background:linear-gradient(145deg,#101e2bdc,#172834d8 68%,#1c3138d9),url('./team-night-gate.webp') center/cover;
  box-shadow:inset 0 0 0 3px #0b1b26,inset 0 0 0 4px #a8916480,0 10px 25px #0009;
}
.team-drawer .party-roster-heading{
  display:flex;align-items:center;justify-content:center;gap:17px;min-height:72px;
  margin-bottom:14px;border-bottom:1px solid #c6a56e8c;color:#f4d99e;text-align:center;
  background:linear-gradient(90deg,transparent,#c6a76d0e,transparent);
}
.team-drawer .party-roster-heading h3{
  margin:0;font:700 clamp(22px,2.1vw,29px)/1.25 var(--display);letter-spacing:.08em;
  text-shadow:0 2px 10px #0009;
}
.team-drawer .party-count{
  flex:none;color:#f9dfa8;font:700 18px/1.2 var(--display);white-space:nowrap;
}
.team-drawer .party-roster-panel .team-slots{
  grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;
}
.team-drawer .party-roster-panel .team-slot.member,
.team-drawer .party-roster-panel .team-slot.empty{
  min-height:328px;padding:10px 7px 12px;border-radius:4px;
  background:linear-gradient(180deg,#1d2b39ee,#2c3740ed 63%,#3a4449e8);
}
.team-drawer .party-roster-panel .team-slot.member.self{
  border-color:#e1b973;
  background:radial-gradient(ellipse at 50% 44%,#c69d4d28,transparent 63%),linear-gradient(180deg,#32272d,#292b36 68%,#343841);
}
.team-drawer .party-roster-panel .team-slot.member .team-portrait-stage{height:185px}
.team-drawer .party-roster-panel .team-slot.member .real-team-art{height:185px;max-height:185px}
.team-drawer .party-roster-panel .team-slot.member .team-member-copy{gap:3px;padding-top:8px}
.team-drawer .party-roster-panel .team-hero-name{font-size:21px}
.team-drawer .party-roster-panel .team-slot.empty .team-avatar{
  width:76px;height:76px;margin:44px auto 20px;font-size:48px;
  border-color:#cdb178;background:radial-gradient(circle,#263945,#162b36 58%,#44505a);
  box-shadow:0 0 0 5px #9b865d57,0 0 0 7px #152731,0 0 0 8px #c9aa6a80,0 0 23px #d8bd8061;
}
.team-drawer .party-roster-panel .team-slot.empty>b{font-size:19px}
.team-drawer .party-roster-panel .team-slot.empty p{font-size:11px;line-height:1.5}
.team-drawer .party-roster-footer{
  display:flex;align-items:end;justify-content:space-between;gap:14px;
  margin-top:17px;padding-top:13px;border-top:1px solid #b99a6778;
}
.team-drawer .party-roster-footer p{max-width:370px;margin:0;color:#c8c0ad;font:12px/1.7 var(--body)}
.team-drawer .party-roster-footer .team-button{
  flex:none;min-width:160px;min-height:48px;padding:8px 19px;
  border-color:#f4dda1;background:linear-gradient(160deg,#f2d991,#d4a857 55%,#a87837);
  color:#332414;font:700 21px/1.2 var(--display);
  box-shadow:inset 0 0 0 2px #ffe7ac9c,0 5px 16px #0009;
}
.team-drawer .party-side{display:grid;grid-template-rows:auto minmax(0,1fr);gap:15px;min-width:0}
.team-drawer .party-side .team-invite-desk{
  display:block;min-height:220px;margin:0;padding:14px 18px;border:1px solid #d9d9c6;
  border-radius:12px 12px 18px 12px;
  background:radial-gradient(circle at 8% 4%,#fffef2ad,transparent 36%),linear-gradient(135deg,#e7e9dd,#bdcfc8 64%,#d9ddcf);
  box-shadow:inset 0 0 0 3px #f8f7e9c2,inset 0 0 0 4px #9dae9c,0 12px 26px #0008;
}
.team-drawer .party-side .team-invite-meta{display:flex;flex-direction:column;align-items:stretch;gap:10px}
.team-drawer .party-side .team-account-line{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 9px;
  margin:0;padding:0 0 8px;border-bottom:1px solid #82958880;
}
.team-drawer .party-side .team-account-line span{grid-column:1/-1;color:#3d5049;font-weight:700}
.team-drawer .party-side .team-account-line strong{color:#775b32;font-size:19px;letter-spacing:.12em;white-space:nowrap}
.team-drawer .party-side .team-account-line .team-text-action{justify-self:end}
.team-drawer .party-side .team-text-action{color:#524733;border-bottom-color:#7f7658;font-weight:700}
.team-drawer .party-side .team-share-action{
  align-self:center;margin:0;padding:5px 16px;border:1px solid #778f8c;border-radius:4px;
  background:linear-gradient(#a9d1d3,#5594a0);color:#123844;
  box-shadow:inset 0 1px #e7ffffa8,0 3px 9px #233b415c;
}
.team-drawer .party-side .real-player-search{margin:8px 0 0}
.team-drawer .party-side .real-player-search label{margin-bottom:6px;color:#45534a}
.team-drawer .party-side .real-player-search input{
  min-height:42px;background:#f3f1e9;color:#283733;border-color:#80938a;box-shadow:inset 0 2px 6px #293e3930;
}
.team-drawer .party-side .real-player-search input::placeholder{color:#718076}
.team-drawer .party-side .team-search-row{grid-template-columns:minmax(0,1fr) 93px;gap:8px}
.team-drawer .party-side .team-search-row .team-button{min-height:42px;padding:6px;font-size:13px}
.team-drawer .team-chat-panel{
  display:flex;flex-direction:column;min-height:282px;min-width:0;overflow:hidden;
  border:1px solid #bea065;border-radius:5px;
  background:linear-gradient(160deg,#152735ed,#293a42e8),url('./team-night-gate.webp') center/cover;
  box-shadow:inset 0 0 0 3px #0f202b,inset 0 0 0 4px #a98b5f9e,0 10px 24px #0009;
}
.team-drawer .team-chat-panel header{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  min-height:47px;padding:8px 15px;border-bottom:1px solid #a98b5c90;
  background:linear-gradient(90deg,#243743,#182b36);
}
.team-drawer .team-chat-panel h3{margin:0;color:#f0d8a3;font:700 19px/1.3 var(--display);letter-spacing:.1em}
.team-drawer .team-chat-panel header span{color:#b9aa89;font-size:10px;white-space:nowrap}
.team-drawer .team-chat-feed{
  flex:1;display:flex;flex-direction:column;gap:8px;min-height:135px;max-height:165px;
  overflow:auto;padding:12px 13px;scrollbar-color:#a78855 #162934;
}
.team-drawer .team-chat-empty{margin:auto;color:#c5c6b8;text-align:center;font:13px/1.7 var(--body)}
.team-drawer .team-chat-row{display:flex;align-items:center;gap:7px;min-width:0}
.team-drawer .team-chat-row.is-new{animation:team-chat-arrive .35s ease-out both}
.team-drawer .team-chat-glyph{
  flex:none;display:grid;place-items:center;width:29px;height:29px;border-radius:50%;
  border:1px solid #dac28d;color:#f7dfac;background:radial-gradient(circle,#314956,#0c2030);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--chat-color) 42%,transparent);
  font:20px/1 var(--display);
}
.team-drawer .team-chat-bubble{
  flex:1;min-width:0;padding:6px 9px;border:1px solid #bba5768c;border-radius:16px;
  background:linear-gradient(95deg,#f0ead7,#d9dfd4);color:#3a4039;
  box-shadow:0 2px 8px #0004;
}
.team-drawer .team-chat-row.is-self .team-chat-bubble{background:linear-gradient(95deg,#f4e1ad,#d6c393)}
.team-drawer .team-chat-meta{display:flex;align-items:center;justify-content:space-between;gap:6px}
.team-drawer .team-chat-meta strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.team-drawer .team-chat-meta time{flex:none;color:#747769;font-size:10px}
.team-drawer .team-chat-bubble p{margin:2px 0 0;overflow-wrap:anywhere;font-size:12px;line-height:1.45}
.team-drawer .team-chat-invite{
  flex:none;display:grid;place-items:center;width:27px;height:27px;padding:0;
  border:1px solid #c5aa76;border-radius:50%;background:#4b4635;color:#f4dfae;
  font:700 14px/1 var(--display);cursor:pointer;
}
.team-drawer .team-chat-invite:hover{background:#927143}
.team-drawer .team-chat-compose{
  display:grid;grid-template-columns:minmax(0,1fr) 68px;gap:8px;padding:11px 12px 5px;
  border-top:1px solid #a98b5c90;background:#162934e8;
}
.team-drawer .team-chat-compose input{
  min-width:0;min-height:41px;padding:7px 10px;border:1px solid #a8936e;border-radius:4px;
  outline:0;background:#efe8d7;color:#283733;font:13px/1.4 var(--body);
}
.team-drawer .team-chat-compose input:focus{border-color:#f8d994;box-shadow:0 0 0 2px #f8d99455}
.team-drawer .team-chat-compose button{
  border:1px solid #edcf8b;border-radius:4px;background:linear-gradient(#edcd80,#bd8e47);color:#362719;
  font:700 16px/1.3 var(--display);cursor:pointer;
}
.team-drawer .team-chat-compose button:disabled,.team-drawer .team-chat-compose input:disabled{opacity:.55;cursor:default}
.team-drawer .team-chat-error{min-height:17px;margin:0;padding:0 13px 5px;color:#ffd49a;font-size:11px}
@keyframes team-chat-arrive{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:960px){
  .team-drawer .team-content[data-team-view="party"] .party-layout{grid-template-columns:1fr}
  .team-drawer .party-side{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .team-drawer .party-roster-panel .team-slot.member,.team-drawer .party-roster-panel .team-slot.empty{min-height:320px}
}
@media(max-width:760px){
  .team-drawer .party-side{grid-template-columns:1fr}
  .team-drawer .party-roster-panel .team-slots{grid-template-columns:repeat(2,minmax(0,1fr))}
  .team-drawer .party-roster-panel .team-slot.member .team-portrait-stage{height:168px}
  .team-drawer .party-roster-panel .team-slot.member .real-team-art{height:168px;max-height:168px}
  .team-drawer .party-roster-footer{align-items:stretch;flex-direction:column}
  .team-drawer .party-roster-footer .team-button{align-self:flex-end}
}
@media(max-width:480px){
  .team-drawer .party-roster-heading{gap:8px}
  .team-drawer .party-roster-heading h3{font-size:19px}
  .team-drawer .party-count{font-size:14px}
  .team-drawer .party-roster-panel .team-slot.empty .team-avatar{margin-top:35px}
}
@media(prefers-reduced-motion:reduce){.team-drawer .team-chat-row.is-new{animation:none}}
