/* Early end of turn: a readiness card under the turn timer. The hero becomes a two-column grid
   so it grows with the column instead of clipping it. */
.hero:has(.hero-turn-side){display:grid;grid-template-columns:minmax(0,1fr) 154px;gap:24px;align-items:start}
.hero:has(.hero-turn-side) .hero-content{grid-area:1/1;padding-right:0}
.hero:has(.hero-turn-side) .hero-bottom{display:none}
.hero-turn-side{position:relative;z-index:2;grid-area:1/2;display:grid;gap:10px}
.hero-turn-side .hero-turn-timer{position:static;width:auto}
.turn-ready-card{display:grid;gap:7px;padding:13px 15px;border:1px solid #ffffff1c;border-radius:10px;background:#111111e0;backdrop-filter:blur(8px);transition:border-color .2s ease,background-color .2s ease}
.turn-ready-card.is-ready{border-color:rgba(var(--accent-rgb),.45)}
.turn-ready-card>strong{font-size:22px;font-weight:600;line-height:1.2;color:#ececec;font-variant-numeric:tabular-nums}
.turn-ready-dots{display:flex;gap:5px}
.turn-ready-dots i{flex:1;height:4px;border-radius:2px;background:#ffffff14;transition:background-color .2s ease}
.turn-ready-dots i.on{background:var(--accent)}
.turn-ready-card .tiny{width:100%;min-height:36px;margin-top:3px}
.hero-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:17px}
.hero-actions .country-info-button{margin-top:0}
@media(max-width:800px){
 .hero:has(.hero-turn-side){display:block;padding-top:23px}
 .hero-turn-side{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));margin-bottom:16px}
}
@media(min-width:1920px){.hero:has(.hero-turn-side){grid-template-columns:minmax(0,1fr) 180px}}

/* Host calls: notifications stack at the top right, newest first. */
.host-call-stack{position:fixed;z-index:70;top:104px;right:24px;display:grid;gap:10px;width:min(360px,calc(100vw - 32px))}
.host-call{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid rgba(var(--accent-rgb),.35);border-radius:10px;background:#181818f2;box-shadow:0 14px 40px #0009;animation:host-call-in .22s cubic-bezier(.23,1,.32,1) both}
.host-call .flag{flex:0 0 32px;width:32px;height:22px}
.host-call>div{flex:1;min-width:0}
.host-call strong{display:block;font-size:13px;color:#ececec}
.host-call small{display:block;margin-top:3px;font-size:11px;color:#8d8d8d}
.host-call .tiny{min-height:32px}
.host-call .host-call-close{width:32px;padding:0}
.host-call.is-leaving{animation:host-call-out .18s cubic-bezier(.23,1,.32,1) both}
@keyframes host-call-in{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
@keyframes host-call-out{to{opacity:0;transform:translateX(16px)}}
@media(prefers-reduced-motion:reduce){.host-call,.host-call.is-leaving{animation:none}}
@media(max-width:800px){.host-call-stack{top:auto;right:16px;bottom:16px}}
