/* The account roster is a visual presentation of the game's existing choices. */
.astralis-cockpit #login-welcome[data-roster]{padding:24px;border-color:#c39a59;background:radial-gradient(ellipse at 85% 0,#35245450,transparent 60%),linear-gradient(145deg,#0a1c2c,#030d19 75%);border-radius:15px;min-width:0}
.astralis-cockpit #login-welcome[data-roster]::after{content:'✦';font-size:38px;right:24px;top:22px;color:#e9c889;opacity:.8;text-shadow:0 0 24px #d3924f70}
.astralis-cockpit #login-welcome[data-roster]>.eyebrow{font-size:9px;letter-spacing:.22em;color:#84dddb;margin-bottom:9px}
.astralis-cockpit #login-welcome[data-roster]>h2{font-size:clamp(24px,2.5vw,36px);line-height:1.15;color:#ffe1a0;margin-bottom:9px}
.astralis-cockpit #login-welcome[data-roster]>#login-welcome-status{font-size:12px;line-height:1.6;color:#b5c6d4;margin-bottom:16px}
.astralis-cockpit #login-welcome[data-roster=cards]{flex:1 1 0;min-height:220px;display:flex;flex-direction:column;overflow:hidden;margin-bottom:9px}
#login-welcome[data-roster=cards]:not([hidden]):not(.channel-hidden)~#output,#login-welcome[data-roster=cards]:not([hidden]):not(.channel-hidden)~#latest{display:none!important}
.astralis-cockpit #login-welcome[data-roster]>.welcome-actions{display:flex;flex-direction:column;flex-wrap:nowrap;flex:1;min-height:0;min-width:0;gap:0}
.roster-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px;flex:0 0 auto}
.roster-count{font:10px/1.5 Inter,system-ui,sans-serif;letter-spacing:.08em;color:#b8bdc9}
.astralis-cockpit .welcome-actions .roster-resume{padding:7px 11px;min-height:34px;background:#23302e;color:#e5d5a3;border:1px solid #8a8e61;border-radius:7px;font-size:11px;white-space:normal}
.roster-grid{flex:1 1 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-height:0;overflow:auto;padding:3px 6px 5px 3px;align-content:start;overscroll-behavior:contain;scroll-padding:5px}
.roster-card{--roster-accent:#e8c477;--roster-glow:#9a6b292e;position:relative;display:flex;flex-direction:column;gap:6px;padding:12px;min-width:0;border:1px solid #47516a;border-radius:12px;background:radial-gradient(ellipse at 20% 30%,var(--roster-glow),transparent 68%),linear-gradient(140deg,#102235,#06121f);box-shadow:inset 0 0 0 3px #07111d,0 3px 9px #0003;transition:border-color .15s ease,background .15s ease}
.roster-card[data-roster-tone=violet]{--roster-accent:#d4a5ff;--roster-glow:#6b38a347}
.roster-card[data-roster-tone=sapphire]{--roster-accent:#8cd7ff;--roster-glow:#2665a34d}
.roster-card[data-roster-tone=mint]{--roster-accent:#96e7bf;--roster-glow:#2c886c40}
.roster-card[data-roster-tone=rose]{--roster-accent:#f0a9d1;--roster-glow:#a1357040}
.roster-card[data-roster-tone=amber]{--roster-accent:#f7bf8a;--roster-glow:#ad603035}
.roster-card[data-recent=true]{border-color:#c3a36b;box-shadow:inset 0 0 0 3px #151a23,0 0 15px #d7b56115}
.roster-card:focus-within,.roster-card:hover{border-color:var(--roster-accent)}
.roster-card-top{display:flex;justify-content:space-between;align-items:center;gap:6px;font:8px/1.4 Inter,system-ui,sans-serif;letter-spacing:.12em;color:#8da9bf}
.roster-level{color:var(--roster-accent);border:1px solid #ffffff25;border-radius:20px;padding:4px 7px;white-space:nowrap}
.roster-identity{display:flex;align-items:center;gap:13px;min-width:0}
.roster-emblem{position:relative;display:grid;place-items:center;width:64px;height:64px;flex:0 0 64px;border:1px solid #ffffff24;border-radius:50%;background:radial-gradient(circle,var(--roster-glow),#03101c 75%);box-shadow:inset 0 0 0 4px #081421,0 0 17px var(--roster-glow)}
.roster-emblem::before{content:'✧';position:absolute;bottom:-5px;left:25px;font-size:15px;color:var(--roster-accent);line-height:1;background:#081523}
.roster-emblem .calling-icon{display:block;width:52px;height:52px;image-rendering:pixelated;object-fit:contain;border:0;background:none;border-radius:0;box-shadow:none}
.roster-star{font:52px/1 Georgia,serif;color:var(--roster-accent);text-shadow:0 0 20px var(--roster-accent)}
.roster-identity-text{min-width:0}
.astralis-cockpit .roster-card .roster-name{font:600 24px/1.15 Georgia,serif;margin:0 0 6px;color:#f7e6c6;overflow-wrap:anywhere}
.roster-calling{font:11px/1.45 Inter,system-ui,sans-serif;color:var(--roster-accent);margin:0}
.roster-recent{display:inline-block;font:7px/1.4 Inter,system-ui,sans-serif;letter-spacing:.14em;color:#efcf8b;padding:3px 5px;margin-top:6px;border-radius:3px;background:#b88c2924}
.roster-location{padding:6px 0 0;border-top:1px solid #ffffff13;margin-top:2px}
.roster-location-label{font:7px/1.5 Inter,system-ui,sans-serif;letter-spacing:.15em;color:#8799ad}
.roster-location p{font:12px/1.4 Inter,system-ui,sans-serif;margin:3px 0 0;color:#d3e2e6;overflow-wrap:anywhere}
.roster-last-seen{font:9px/1.4 Inter,system-ui,sans-serif;color:#9caebf;margin:0 0 2px}
.astralis-cockpit .welcome-actions .roster-play{display:block;width:100%;min-height:38px;margin-top:auto;padding:7px 12px;border:1px solid #ffffff33;border-radius:7px;color:var(--roster-accent);background:#ffffff06;font:600 12px/1.4 Inter,system-ui,sans-serif;text-align:left;box-shadow:inset 0 1px #ffffff07;overflow-wrap:anywhere}
.astralis-cockpit .welcome-actions .roster-play:hover{background:var(--roster-glow);border-color:var(--roster-accent)}
.roster-card-actions{display:flex;align-items:stretch;gap:8px;margin-top:auto;min-width:0}
.astralis-cockpit .welcome-actions .roster-card-actions .roster-play{flex:1;min-width:0;width:auto;margin-top:0}
.astralis-cockpit .welcome-actions .roster-delete{flex:0 0 auto;width:auto;min-height:38px;padding:7px 11px;border:1px solid #98566b;border-radius:7px;background:#612d3d24;color:#f0b7c6;font:600 11px/1.4 Inter,system-ui,sans-serif;box-shadow:none}
.astralis-cockpit .welcome-actions .roster-delete:hover{border-color:#ee9cb5;background:#792c454d;color:#ffe0e9}
.astralis-cockpit #login-welcome[data-roster=delete]{flex:1 1 0;min-height:260px;overflow:auto;border-color:#b47b8e}
#login-welcome[data-roster=delete]:not([hidden]):not(.channel-hidden)~#output,#login-welcome[data-roster=delete]:not([hidden]):not(.channel-hidden)~#latest{display:none!important}
.astralis-cockpit #login-welcome[data-roster=delete]::after{color:#ecb3c5}
.astralis-cockpit #login-welcome[data-roster=delete]>.eyebrow{color:#ecb3c5}
.astralis-cockpit #login-welcome[data-roster=delete]>.welcome-actions{flex:0 0 auto}
.character-delete-form{width:min(100%,480px);box-sizing:border-box;padding:20px;margin-top:6px;border:1px solid #a5657c66;border-radius:12px;background:linear-gradient(135deg,#351c304d,#0a1525)}
.character-delete-details{margin:0 0 20px;color:#bdcbd7;font:12px/1.5 Inter,system-ui,sans-serif;text-transform:capitalize}
.character-delete-form label{display:block;margin:0 0 8px;color:#f4dce4;font:600 13px/1.5 Inter,system-ui,sans-serif;overflow-wrap:anywhere}
.character-delete-form input{display:block;box-sizing:border-box;width:100%;min-height:44px;padding:10px 12px;border:1px solid #9c6a7c;border-radius:7px;background:#06121f;color:#fff0f5;font:16px/1.4 Inter,system-ui,sans-serif}
.character-delete-form input::placeholder{color:#7f879a}
.character-delete-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:20px}
.astralis-cockpit .character-delete-actions button{min-height:42px;padding:9px 16px;border:1px solid #6b8199;border-radius:7px;background:#142536;color:#dce8f1;font:600 12px/1.4 Inter,system-ui,sans-serif;white-space:normal;overflow-wrap:anywhere}
.astralis-cockpit .character-delete-actions #delete-character-confirm{border-color:#c06c87;background:#702e46;color:#fff0f5}
.astralis-cockpit .character-delete-actions #delete-character-confirm:not(:disabled):hover{background:#8b3655;border-color:#edabc1}
.astralis-cockpit .character-delete-actions #delete-character-confirm:disabled{opacity:.4;cursor:not-allowed}
.character-delete-form input:focus-visible,.character-delete-actions button:focus-visible,.roster-delete:focus-visible{outline:2px solid #ffe0a5;outline-offset:3px}
.roster-footer{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding-top:13px;margin-top:10px;border-top:1px solid #8e744339;flex:0 0 auto}
.astralis-cockpit .welcome-actions .roster-create{border:1px solid #ac8c55;background:#1d2c35;border-radius:7px;color:#edce91;font-size:11px;padding:8px 12px}
.astralis-cockpit .welcome-actions .roster-more,.astralis-cockpit .welcome-actions .roster-text-toggle{border:0;background:transparent;box-shadow:none;color:#a9c0d1;padding:6px;font-size:10px;min-height:36px}
.astralis-cockpit .welcome-actions .roster-text-toggle{margin-left:auto;text-decoration:underline;text-underline-offset:3px}
.roster-empty{grid-column:1/-1;text-align:center;padding:48px 14px;color:#e2c68d;font:20px/1.5 Georgia,serif;border:1px dashed #9e80594d;border-radius:12px}
#login-welcome[data-roster=text] .roster-grid,#login-welcome[data-roster=text] .roster-summary{display:none}
#login-welcome[data-roster=text] .roster-footer{margin-top:0;padding-top:0;border:0}
@media(min-width:1600px){.roster-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.roster-card{padding:10px;gap:5px}.roster-emblem{width:58px;height:58px;flex-basis:58px}.roster-emblem::before{left:22px}}
@media(max-width:700px){.astralis-cockpit #login-welcome[data-roster]{padding:15px}.roster-grid{grid-template-columns:1fr}.roster-summary{align-items:flex-start}.roster-card{padding:13px}.astralis-cockpit .welcome-actions .roster-resume{width:auto}.astralis-cockpit .welcome-actions .roster-text-toggle,.astralis-cockpit .welcome-actions .roster-more{width:auto;min-height:40px}.astralis-cockpit .welcome-actions .roster-create{width:auto;min-height:40px}.roster-footer{gap:5px}.roster-count{max-width:140px}.roster-card-top{font-size:9px}.roster-emblem{width:66px;height:66px;flex-basis:66px}.roster-emblem::before{left:26px}.roster-emblem .calling-icon{width:54px;height:54px}}
@media(max-width:700px){.astralis-cockpit .welcome-actions .roster-card-actions button{min-height:44px}.character-delete-form{padding:16px}.astralis-cockpit .character-delete-actions button{min-height:44px}}
@media(prefers-reduced-motion:reduce){.roster-card{transition:none}}
