.coop-menu-note{margin:15px auto 0;max-width:780px;text-align:center;color:#bda48b;font:12px/1.55 Georgia,serif}
#coopDialog{width:min(1100px,calc(100vw - 28px));max-height:calc(100svh - 30px);padding:28px;border:1px solid #b7925573;border-radius:10px;background:linear-gradient(145deg,#220a10,#0d060a 65%);color:#ead9bc;box-shadow:0 30px 130px #000c;overflow:auto}
#coopDialog[open]{display:grid;grid-template-columns:minmax(240px,.85fr) minmax(320px,1.3fr);column-gap:28px;row-gap:0}
#coopDialog::backdrop{background:#070205dc;backdrop-filter:blur(5px)}
#coopDialog [hidden]{display:none!important}
#coopDialog>.eyebrow,#coopDialog>h2,#coopDialog>.coop-intro,#coopNotice,.coop-help{grid-column:1/-1}
#coopDialog>.eyebrow{grid-row:1;padding-right:40px;color:#b79255;font:10px/1.4 ui-monospace,monospace;letter-spacing:.16em}
#coopDialog>h2{grid-row:2;font:40px/1.05 Georgia,serif;color:#f0ddae;margin:12px 0 8px}
#coopDialog>.coop-intro{grid-row:3;font:14px/1.55 Georgia,serif;color:#bda48b;margin:0 0 24px}
#coopClose{position:absolute;right:18px;top:18px;font-size:25px;width:36px;height:36px}
#coopEntry,#coopCompany{grid-column:1;grid-row:4 / span 2;min-width:0}
#coopChoose{grid-column:2;grid-row:4 / span 2;min-width:0;border-left:1px solid #a57d422e;padding-left:25px}
#coopDialog label{display:block;font:11px/1.4 ui-monospace,monospace;color:#d2b987;margin:0 0 8px}
#coopDialog input:not([type=checkbox]){width:100%;min-width:0;min-height:43px;padding:10px 12px;color:#f1dfbd;border:1px solid #bd94594f;border-radius:5px;background:#090408;font:14px/1.4 Georgia,serif}
#coopDialog input:focus-visible,#coopDialog button:focus-visible{outline:2px solid #e9c777;outline-offset:3px}
#coopDialog input[type=checkbox]{accent-color:#b79255;width:16px;height:16px;flex-shrink:0}
#coopDialog button{cursor:pointer}
#coopDialog button:disabled{opacity:.45;cursor:default}
.coop-entry-actions{margin:12px 0 22px}
.coop-entry-actions>.mainButton{width:100%;min-height:44px}
#coopDialog .coop-check{display:flex;align-items:center;gap:8px;margin:12px 0;font:12px/1.5 Georgia,serif;color:#bda48b}
.coop-join-row{display:flex;gap:8px}
#coopCode{text-transform:uppercase;letter-spacing:.16em}
#coopDialog .secondaryButton{min-height:38px;padding:9px 13px;white-space:normal}
#coopDialog h3{font:18px/1.25 Georgia,serif;color:#e4c997;margin:0 0 8px}
.coop-open-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 8px}
.coop-open-head h3{margin:0!important}
#coopRooms p,#coopRoomInstruction{font:13px/1.55 Georgia,serif;color:#bba089;margin:10px 0}
#coopRooms{max-height:150px;overflow:auto}
.coop-room-link{display:block;width:100%;margin:7px 0;padding:10px;text-align:left;border:1px solid #bd945930;border-radius:5px;background:#31121b;color:#dac59e;font:12px/1.5 Georgia,serif}
.coop-room-link:hover{border-color:#dabb72}
#coopHeroDetail{font:12px/1.55 Georgia,serif;color:#bda48b;min-height:38px;margin:0 0 14px}
#coopRoster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
#coopRoster .coop-hero{padding:10px 8px 9px;min-height:103px;border-radius:5px;min-width:0;height:auto;background:linear-gradient(145deg,#291019,#130a0f);overflow:hidden}
#coopRoster .coop-hero .heroPortrait{position:relative;display:block;left:auto;top:auto;margin:0 auto 7px;width:38px;height:38px;transform:scale(.82);transform-origin:center}
#coopRoster .coop-hero strong{display:block;min-height:0;font:11px/1.35 Georgia,serif;white-space:normal;text-align:center;word-break:normal;margin:0}
#coopRoster .coop-hero small{display:block;font:9px/1.4 Georgia,serif;text-transform:none;text-align:center;margin:3px 0 0;color:#bda48b}
#coopRoster .coop-hero.selected{border-color:#e0bf73;box-shadow:inset 0 0 16px #d4ac4920,0 0 0 1px #d4ac4933}
#coopRoster .coop-hero:disabled{filter:saturate(.3)}
.coop-room-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
#coopRoomCode{font:30px/1.2 ui-monospace,monospace;letter-spacing:.13em;color:#f1d48c}
.coop-member{display:flex;gap:11px;align-items:center;border:1px solid #ac884330;border-radius:5px;padding:12px 10px;margin:10px 0;background:#07040788}
.coop-member-sigil{display:grid;place-items:center;width:33px;height:33px;flex-shrink:0;border:1px solid var(--hero);border-radius:50%;color:#edce8c;background:color-mix(in srgb,var(--hero) 30%,#0d060a)}
.coop-member>div{min-width:0}
.coop-member strong{display:block;color:#e9d2a3;font:12px/1.5 Georgia,serif;overflow-wrap:anywhere}
.coop-member small{display:block;color:#af9583;font:11px/1.45 Georgia,serif;margin-top:3px}
.coop-room-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.coop-room-actions>.mainButton{flex:1;min-width:110px}
#coopNotice{grid-row:6;color:#f0c48f;font:12px/1.5 Georgia,serif;margin:15px 0 0;overflow-wrap:anywhere}
#coopNotice:empty{display:none}
.coop-help{grid-row:7;margin:20px 0 0;padding-top:16px;border-top:1px solid #b7925533;color:#a98c7d;font:11px/1.65 Georgia,serif}
#coopCountdown{position:fixed;left:50%;top:45%;transform:translate(-50%,-50%);z-index:35;font:80px/1 Georgia,serif;color:#f4dc99;text-shadow:0 6px 30px #000;pointer-events:none}
#coopStatus{position:fixed;left:50%;bottom:130px;transform:translateX(-50%);z-index:30;max-width:calc(100vw - 30px);padding:10px 16px;text-align:center;border:1px solid #bd945980;border-radius:6px;background:#18070fed;color:#f3d89b;font:13px/1.5 Georgia,serif;pointer-events:none}
#coopCountdown[hidden],#coopStatus[hidden]{display:none}
.coop-vote-count{display:block;margin-top:14px;font:12px/1.4 ui-monospace,monospace;color:#e7c678}
.blessingCard[aria-pressed=true]{border-color:#e6be66;box-shadow:inset 0 0 25px #d0a65524}
body.online-company #game:focus{outline:none}
@media(max-width:760px){
  #coopDialog{width:calc(100vw - 16px);max-height:calc(100svh - 16px);padding:23px 18px}
  #coopDialog[open]{display:block}
  #coopDialog>h2{font-size:32px;margin-top:12px}
  #coopDialog>.coop-intro{font-size:13px;margin-bottom:22px}
  #coopChoose{padding:22px 0 0;margin-top:22px;border-left:0;border-top:1px solid #a57d422e}
  #coopRoster{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  #coopRoster .coop-hero{min-height:110px;padding:9px 5px}
  #coopHeroDetail{min-height:0;margin-bottom:16px}
  .coop-menu-note{font-size:11px}
  #coopStatus{bottom:186px;font-size:11px;width:max-content;max-width:calc(100vw - 24px)}
  body.online-company .partyMember .classLine{font-size:8px}
}
@media(prefers-reduced-motion:reduce){#coopDialog::backdrop{backdrop-filter:none}}

#coopDialog:has(#coopChoose[hidden]) { width: min(560px, calc(100vw - 24px)); grid-template-columns: 1fr; }
