@import url('/assets/theme.css');
:root{color-scheme:dark;--bg:#101216;--panel:#191c22;--border:#303138;--muted:#a3a5ae;--text:#ece9e2;--gold:#cba76b;--red:#b53a3d;--teal:#72b6ad;--fc-border-color:#34353d;--fc-page-bg-color:#191c22;--fc-neutral-bg-color:#23252d;--fc-list-event-hover-bg-color:#303139;--fc-today-bg-color:#b49b6010;--fc-button-bg-color:#282b33;--fc-button-border-color:#414149;--fc-button-active-bg-color:#a33337;--fc-button-active-border-color:#b44747}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.6 'Segoe UI',Arial,sans-serif}a{color:var(--gold);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1{font:600 34px/1.2 Georgia,serif;margin-bottom:10px;letter-spacing:-.7px}h2{font-size:20px;font-weight:600;line-height:1.3}h3{font-size:18px;line-height:1.35;margin-bottom:10px}em{font-style:normal;color:var(--gold)}small{font-size:12px}.muted,.intro,.page-heading p{color:var(--muted)}.eyebrow{display:block;color:var(--gold);font-size:10px;letter-spacing:2px;font-weight:700;margin-bottom:9px}.sidebar{position:fixed;inset:0 auto 0 0;width:244px;background:linear-gradient(180deg,#181a1f,#121419);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:30px 20px;z-index:10}.brand{display:flex;align-items:center;gap:12px;color:var(--text);font:700 28px/1 Georgia,serif;letter-spacing:3px}.brand:hover{text-decoration:none}.brand small{display:block;color:var(--gold);font:700 9px/2.6 'Segoe UI',sans-serif;letter-spacing:2px}.realm{font-size:10px;letter-spacing:1px;margin:25px 0 30px;display:flex;align-items:center;gap:7px;color:#c4c4cb}.realm span{font-size:8px;color:var(--muted);margin-left:auto}.realm i{height:5px;width:5px;border-radius:50%;background:#c47459;box-shadow:0 0 8px #c47459}nav{display:grid;gap:8px}nav a{padding:12px 13px;border-radius:5px;color:#aeb0bb;display:flex;gap:13px;align-items:center;font-size:13px}nav a span{font-size:18px;width:22px;text-align:center}nav a.active{background:linear-gradient(90deg,#57282b,#352124);color:#f1d8d4;border-left:3px solid #c24c4c;padding-left:10px}nav a:hover{background:#28272d;text-decoration:none}.sidebar-bottom{margin-top:auto;padding-top:24px}.launch-mini{border:1px solid #514432;background:linear-gradient(130deg,#2b261f,#191b20);padding:15px;border-radius:5px;margin-bottom:22px}.launch-mini .eyebrow{font-size:8px;letter-spacing:1px}.launch-mini strong{font:600 23px Georgia,serif;display:block}.launch-mini em{font-size:16px}.launch-mini small{color:var(--muted);font-size:10px}.profile-link{display:flex;align-items:center;gap:11px;color:var(--text);font-weight:600}.profile-link small{display:block;color:var(--muted);font-weight:400}.avatar{display:grid;place-items:center;width:36px;height:36px;border:1px solid #67533a;color:var(--gold);background:#302824;border-radius:6px}.privacy-link{display:block;color:#92939b;font-size:11px;margin-top:12px}.workspace{margin-left:244px}.topbar{height:68px;display:flex;justify-content:space-between;align-items:center;padding:0 38px;border-bottom:1px solid #282a30;font-size:10px;letter-spacing:1.3px;color:#a1a1a9}.topbar b{color:#605448;padding:0 12px}.timezone{letter-spacing:0;color:#aaa9a9;font-size:12px}main{padding:33px 38px 50px;max-width:1680px;margin:auto;min-height:calc(100vh - 130px)}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.page-heading p{margin-bottom:0}.button{border:1px solid #d0524b;border-radius:5px;padding:11px 18px;background:linear-gradient(#b84042,#963034);color:#fff;font-size:12px;font-weight:600;display:inline-flex;justify-content:center;align-items:center;gap:8px;box-shadow:0 3px 12px #0002;white-space:nowrap}.button:hover{filter:brightness(1.15);text-decoration:none}.button.secondary{background:#24262b;border-color:#4e4840;color:#e2d3b8}.button:disabled{opacity:.5;cursor:wait}.hero{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;border:1px solid #695039;border-radius:8px;padding:36px 42px;background:radial-gradient(ellipse at 78% 20%,#6d303e88,transparent 55%),linear-gradient(110deg,#221d1f,#2a232b 70%,#171d24);min-height:285px;margin-bottom:24px}.hero:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(115deg,transparent 0 75px,#cfa16808 76px 77px,transparent 78px 140px);pointer-events:none}.hero-copy{position:relative;z-index:1}.hero h2{font:500 39px/1.14 Georgia,serif;margin:15px 0}.hero p{color:#b9b0b3;font-size:13px}.hero-actions{display:flex;gap:12px;margin-top:25px}.hero-emblem{position:relative;text-align:center;padding:0 38px}.hero-emblem img{position:absolute;width:150px;opacity:.16;left:50%;top:-35px;transform:translateX(-50%)}.hero-emblem>span{display:block;font-size:10px;letter-spacing:3px;color:#ceb18b;position:relative}.hero-emblem strong{display:block;font:68px/1.2 Georgia,serif;color:#f2dfbf;position:relative}.hero-emblem strong small{display:block;font:13px/1.8 'Segoe UI',sans-serif;letter-spacing:5px}.hero-emblem p{font-size:11px;margin-top:12px}.badge{border:1px solid #73553b;background:#58412b44;color:#dbb880;border-radius:4px;padding:3px 8px;font-size:10px;letter-spacing:.6px;display:inline-block}.badge.subtle{color:#aaaab4;border-color:#4d4e57;background:#373741}.badge.teal{color:#92d3cb;border-color:#467b74;background:#234b4844}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:28px}.stats article{padding:18px 21px;background:linear-gradient(120deg,#1e2026,#191b20);border:1px solid var(--border);border-radius:6px}.stats article>span{color:#bfc0c6;font-size:12px}.stats strong{font:32px/1.6 Georgia,serif;display:flex;align-items:center;justify-content:space-between}.stats strong i{font:23px Georgia,serif;color:#a18054}.stats small{color:#9798a3;font-size:10px}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:26px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:9px 0 17px}.section-heading h2{margin:0}.section-heading a{font-size:11px}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:28px}.card-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.group-card{border:1px solid #494039;background:linear-gradient(135deg,#222126,#191c22);border-radius:6px;padding:20px;overflow:hidden}.card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.status{font-size:10px;color:#b7c39d}.status:before{content:'●';color:#83a478;font-size:7px;margin-right:6px}.group-card h3{font:600 20px Georgia,serif}.group-card p{font-size:12px;margin-bottom:13px}.schedule{color:#d0c5b7}.slots{display:flex;gap:7px;margin:19px 0 10px}.slot{height:34px;flex:1;display:grid;place-items:center;border:1px dashed #4c4541;background:#15171c;color:#746a62;border-radius:4px}.slot.occupied{border-style:solid;border-color:#705d42;color:#d4ad6a;background:#3d332644}.slot.disabled{opacity:.3}.card-bottom{display:flex;justify-content:space-between;align-items:center;color:#aaa5a5}.text-button{border:0;background:transparent;color:var(--gold);padding:3px 0;font-size:12px}.text-button:hover{text-decoration:underline}.compat{padding-top:12px;margin-top:13px!important;margin-bottom:0!important;border-top:1px solid #39383b;color:#a7b98f;font-size:11px!important}.compat span{display:block;color:#a3a2a9;font-size:10px;margin-top:4px}.rank-1{color:#d6ae75}.rank-2{color:#e19591}.panel{background:var(--panel);border:1px solid var(--border);padding:24px;border-radius:7px}.launch-panel{border-color:#564936;background:linear-gradient(145deg,#29251f,#1b1d22 60%)}.launch-panel h3{font:22px Georgia,serif;line-height:1.35}.zone-list{padding:14px 0;border-bottom:1px solid #353238}.zone-list>div{display:flex;justify-content:space-between;font-size:12px;gap:10px}.zone-list>div span:last-child{color:var(--gold)}.zone-list small{display:block;color:#a7a4ab;margin-top:7px}.zone-list em{font-size:10px}.zone-list:last-child{border-bottom:0}.wide{width:100%;margin:18px 0 12px}.session-row{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;background:none;border:0;border-bottom:1px solid #34343c;color:var(--text);padding:13px 0;text-align:left;font-size:12px}.session-row:last-child{border:0}.session-row small{display:block;color:var(--muted);margin-top:4px}.session-row>span:last-child{color:var(--gold);font-size:11px}meter{width:100%;height:5px;margin-top:10px}.notice{border:1px solid #5e523b;background:#8c69351a;color:#dac6a3;padding:15px 18px;border-radius:5px;margin:0 0 22px}.empty{padding:40px 25px;border:1px dashed #48454a;border-radius:6px;color:var(--muted);text-align:center;grid-column:1/-1}.empty a{display:inline-block;margin-top:15px}.form-grid{display:grid;gap:20px}.form-grid.columns{grid-template-columns:repeat(2,minmax(0,1fr))}.full-width{grid-column:1/-1}.form-panel{margin-top:28px}.narrow{max-width:700px}.split{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start}label{display:flex;flex-direction:column;gap:7px;color:#c9c6ca;font-size:12px}input,select,textarea{width:100%;border:1px solid #46454d;border-radius:4px;padding:10px 12px;background:#111419;color:#eee9e4;min-width:0}input[type=hidden]{display:none}label:has(input[type=hidden]){display:none}input:focus,select:focus,textarea:focus{outline:2px solid #b48d55;outline-offset:1px}input[type=checkbox]{width:16px;height:16px;accent-color:#bc4845}.check{flex-direction:row;align-items:center;gap:8px}.inline-actions{display:flex;gap:18px;align-items:end;flex-wrap:wrap}.inline-actions form{margin:0}.availability-card{margin-bottom:16px}.availability-card h3{margin-top:12px}.character-card{display:flex;gap:15px}.character-card h2{margin:6px 0}.character-card p{font-size:12px}.class-icon{font-size:30px;width:48px;height:55px;border:1px solid #786040;background:linear-gradient(135deg,#4a3727,#24252c);color:var(--gold);display:grid;place-items:center;border-radius:5px;flex-shrink:0}.filters{display:flex;flex-wrap:wrap;gap:14px;align-items:end;background:#181a20;padding:20px;border:1px solid var(--border);border-radius:6px;margin-bottom:24px}.filters>label:not(.check){flex:1;min-width:110px}.filters input[type=number]{max-width:100px}.filters .check{padding:10px 0;font-size:11px}.filters>a{font-size:11px;padding:10px 0}.calendar-panel{padding:20px;overflow:hidden}.calendar-legend{display:flex;gap:20px;font-size:11px;color:#c1bdc3;margin-bottom:24px;align-items:center;flex-wrap:wrap}.calendar-legend i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:7px}.red-dot{background:#aa4245}.gold-dot{background:#a17f48}.teal-dot{background:#428a81}#sync-state{margin-left:auto;color:#9d9ca6;font-size:10px}.fc{font-size:12px}.fc .fc-toolbar-title{font-size:22px;font-family:Georgia,serif}.fc .fc-button{padding:7px 11px;font-size:12px}.fc .fc-timegrid-slot{height:38px}.fc .fc-col-header-cell-cushion{padding:12px 4px;color:#d1b78c}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{color:#a8a6af;font-size:10px}.fc-event{cursor:pointer}.fc-event.group-event{background:#80343d;border:1px solid #bc6565}.fc-event.full{background:#715932;border:1px solid #aa8958}.fc-event.availability-event{background:#275852;border:1px dashed #72b6ad}.fc-event.cancelled{background:#42434c;border:1px solid #666771;text-decoration:line-through;opacity:.65}.fc-list-event-title a{color:var(--text)}.calendar-panel>.muted{font-size:11px;margin:16px 0 0}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}th,td{padding:12px;text-align:left;border-bottom:1px solid #373840}th{color:var(--gold);font-weight:500;white-space:nowrap}.admin-section{margin-bottom:25px}.danger{color:#f0a09b}.button.danger{background:#65272c;border-color:#a04343;color:#fff}dialog{width:min(720px,calc(100% - 30px));padding:28px;background:#1b1d24;color:var(--text);border:1px solid #766043;border-radius:8px;max-height:90vh;overflow:auto;box-shadow:0 30px 100px #000b}dialog::backdrop{background:#080a10cc;backdrop-filter:blur(4px)}.dialog-head{display:flex;align-items:center;justify-content:space-between}.icon-button{background:none;border:0;color:#c4b5a1;font-size:28px;line-height:1;padding:4px 10px}.party-slots{display:grid;gap:8px;margin:20px 0}.party-member{border:1px solid #47424a;background:#22232c;display:flex;align-items:center;gap:15px;padding:12px;border-radius:4px}.party-member small{display:block;color:#a6a4ae}.party-member.empty-slot{border-style:dashed;opacity:.65}.party-member .badge{margin-left:auto}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:100;padding:14px 24px;background:#302f28;border:1px solid #a7895f;border-radius:6px;max-width:90vw;box-shadow:0 10px 40px #0008}.auth-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:65px;align-items:center;min-height:70vh}.auth-layout h1{font-size:42px;line-height:1.3}.auth-art{height:230px;display:grid;place-items:center;background:radial-gradient(ellipse,#94333a22,transparent 70%)}.auth-art img{width:120px;filter:drop-shadow(0 0 30px #a52a3a44)}.auth-form{display:grid;gap:20px;padding:34px}.auth-form h2{font:26px Georgia,serif}.auth-form p{margin:0;font-size:12px}.auth-form>a{font-size:12px}.divider{height:1px;background:#39383d}.prose{max-width:850px}.prose h2{margin-top:28px}.prose p{color:#c6c2c7}footer{border-top:1px solid #292a31;display:flex;justify-content:space-between;gap:20px;padding:20px 38px;color:#777983;font-size:10px}footer span{color:#a18c6b}.skip{position:fixed;top:-60px;background:#fff;color:#000;padding:10px;z-index:999}.skip:focus{top:0}:focus-visible{outline:2px solid var(--gold);outline-offset:4px}[hidden]{display:none!important}
@media(min-width:1600px){main{padding:40px 50px}.hero{min-height:310px}.card-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1200px){.sidebar{width:210px;padding:24px 15px}.workspace{margin-left:210px}main{padding:25px}.dashboard-columns{grid-template-columns:1fr}.dashboard-columns>aside{display:grid;grid-template-columns:1fr 1fr;gap:20px}.dashboard-columns>aside>.section-heading{display:none}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-layout{gap:30px}.hero{padding:30px}.hero-emblem{padding:0 15px}.stats{gap:12px}.stats article{padding:15px}.topbar{padding:0 25px}}
@media(max-width:800px){.sidebar{position:static;width:auto;padding:14px 18px;border-right:0;border-bottom:1px solid #393138}.brand{font-size:23px}.brand img{height:36px;width:32px}.brand small{font-size:8px}.realm,.launch-mini,.sidebar-bottom{display:none}nav{display:flex;overflow-x:auto;margin-top:15px;gap:5px}nav a{white-space:nowrap;font-size:11px;padding:8px}nav a span{font-size:14px;width:auto}nav a.active{border-left:0;border-bottom:2px solid #be5553;padding-left:8px}.workspace{margin:0}.topbar{height:42px;padding:0 18px;font-size:8px}.timezone{font-size:10px}main{padding:22px 18px}.page-heading{align-items:start}.page-heading h1{font-size:28px}.page-heading p{font-size:12px}.page-heading>.button{padding:9px;font-size:10px}.hero{padding:28px 24px}.hero h2{font-size:32px}.hero-emblem{display:none}.stats{grid-template-columns:repeat(2,1fr)}.split,.auth-layout{grid-template-columns:1fr}.auth-layout{gap:15px}.auth-art{display:none}.auth-layout h1{font-size:32px}.dashboard-columns>aside{display:block}.dashboard-columns>aside .panel{margin-bottom:20px}.card-grid,.card-grid.two{grid-template-columns:1fr}.form-grid.columns{grid-template-columns:1fr}.full-width{grid-column:auto}.filters{padding:14px;gap:10px}.filters .check{flex-basis:100%;padding:0}.calendar-panel{padding:12px}.fc .fc-toolbar{align-items:start;gap:8px;flex-wrap:wrap}.fc .fc-toolbar-title{font-size:18px}.fc .fc-button{font-size:10px;padding:6px 8px}.fc .fc-timegrid-slot-label-cushion{font-size:9px}.calendar-legend{gap:10px}.panel{padding:19px}footer{padding:18px;display:block}footer span{display:block;margin-top:7px}.hero-actions{flex-wrap:wrap}.auth-form{padding:24px}dialog{padding:20px}.character-card{gap:12px}.section-heading h2{font-size:18px}}
@media(max-width:800px){.sidebar-bottom{display:flex;align-items:center;gap:16px;padding-top:12px;margin-top:0}.sidebar-bottom .profile-link{font-size:11px}.sidebar-bottom .avatar{width:26px;height:26px}.sidebar-bottom .profile-link small,.sidebar-bottom .privacy-link{display:none}.sidebar-bottom form{margin-left:auto}.sidebar-bottom .text-button{font-size:11px}}
@media(max-width:400px){.page-heading{flex-direction:column;gap:12px}.hero{padding:24px 18px}.hero h2{font-size:28px}.topbar{letter-spacing:0;font-size:7px}.topbar b{padding:0 3px}.timezone{font-size:9px}.hero-actions .button{white-space:normal}.section-heading{align-items:start}}
.profession-fields{min-width:0;margin:0;padding:18px;border:1px solid #514536;border-radius:6px}.profession-fields legend{color:var(--gold);padding:0 8px;font-size:15px}.profession-fields>.muted{margin:12px 0}.profession-details{margin:16px 0}.profession-details summary{cursor:pointer;color:var(--gold);font-size:12px;margin-bottom:14px}.profession-details .columns{grid-template-columns:1fr}.profession-summary{color:#d7be99}.profession-preview,.camp-preview{margin-top:20px}.camp-bonuses{padding-left:18px;font-size:12px}.camp-bonuses li{margin:12px 0}.camp-bonuses small{display:block;color:var(--muted);font-size:11px;line-height:1.6}.camp-rules{font-size:11px;line-height:1.7}.character-card>div{min-width:0;width:100%}.party-member>div{min-width:0;overflow-wrap:anywhere}

.character-delete{margin-top:18px;border-top:1px solid #493337;padding-top:12px}.character-delete summary{color:#ec9d98;cursor:pointer;font-size:12px}.character-delete form{margin-top:14px}.character-delete p{margin-bottom:0}.character-delete .check{align-items:flex-start}.character-delete input[type=checkbox]{flex-shrink:0}

/* Keep dismissal available while the session body scrolls. */
#session-dialog{padding:0;overflow:hidden;max-height:90dvh}
#session-dialog[open]{display:flex;flex-direction:column}
#session-dialog .dialog-head{flex:none;padding:16px 20px;background:#1b1d24;border-bottom:1px solid #494039;gap:16px}
#session-dialog .dialog-head .eyebrow{margin:0}
#session-dialog #close-dialog{display:grid;place-items:center;flex:none;width:44px;height:44px;border:1px solid #786043;border-radius:6px;background:#29262a;color:#fff;font-size:32px}
#session-content{overflow-y:auto;overscroll-behavior:contain;min-height:0;padding:24px}
.join-slot{font-size:23px;color:var(--gold);min-height:40px;transition:background .15s,border-color .15s}
.join-slot:hover{background:#633137;border-color:#d1a466;border-style:solid;color:#fff}
.join-slot:disabled{opacity:.5;cursor:wait}
@media(max-width:600px){#session-content{padding:18px}#session-dialog .dialog-head{padding:10px 16px}}

/* Shared, compact character actions; confirmation stays below the action row. */
.character-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}
.character-actions>form{margin:0}
.character-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 15px;border:1px solid #514b41;border-radius:6px;background:#24262b;color:#e2d3b8;font-size:12px;font-weight:600;line-height:1.5;cursor:pointer;transition:background .15s,border-color .15s}
.character-action svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.character-action:hover{background:#302d29;border-color:#9a7b50;text-decoration:none}
.character-actions .character-delete{display:contents}
.character-actions .character-delete summary{display:inline-flex;font-size:12px;color:#dba29e;list-style:none;border-color:#634044;background:#342327}
.character-delete summary::-webkit-details-marker{display:none}
.character-actions .character-delete summary:hover,.character-actions .character-delete[open] summary{background:#492b30;border-color:#a65e61}
.character-actions .character-delete form{flex-basis:100%;margin:4px 0 0;padding:18px;border:1px solid #634044;border-radius:6px;background:#241d21}
.character-actions .character-delete:not([open]) form{display:none}
@media(prefers-reduced-motion:reduce){.character-action{transition:none}}

#character-dialog{width:min(800px,calc(100% - 28px));max-height:90dvh;padding:0;overflow:hidden}
#character-dialog[open]{display:flex;flex-direction:column}
#character-dialog .dialog-head{flex:none;padding:18px 24px;border-bottom:1px solid var(--border);gap:16px}
#character-dialog .dialog-head h2{margin:0}
#character-dialog .dialog-head .eyebrow{margin-bottom:5px}
#character-dialog .icon-button{flex:none;width:44px;height:44px;border:1px solid #514b41;border-radius:6px;background:#24262b}
.character-dialog-body{padding:24px;overflow-y:auto;overscroll-behavior:contain;min-height:0}
.character-dialog-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;padding-top:18px;border-top:1px solid var(--border)}
body:has(#character-dialog[open]){overflow:hidden}
@media(max-width:600px){#character-dialog .dialog-head{padding:16px}.character-dialog-body{padding:16px}}

.character-portraits{display:flex;flex-direction:column;align-items:center;gap:10px;flex:0 0 52px;margin:0}
.class-portrait{display:block;width:52px;height:52px;object-fit:cover;border:2px solid #927448;border-radius:5px;background:#151310;box-shadow:inset 0 0 0 1px #c8ac74,0 2px 6px #0006}
.race-portrait{display:block;width:52px;height:52px;flex:none;background-image:url('/assets/portraits/horde-races.png');background-size:71px 374px;background-repeat:no-repeat;border-radius:4px}
.race-orc{background-position:-10px -60.5px}.race-undead{background-position:-10px -119px}.race-tauren{background-position:-10px -177.5px}.race-troll{background-position:-10px -236px}.race-skyborne{background-position:-10px -294.5px}


.group-portraits{display:flex;flex-direction:column;gap:5px;flex:0 0 52px;align-items:center}
.party-member-info{flex:1;min-width:0}
@media(max-width:600px){.party-member{gap:10px;flex-wrap:wrap}.party-member-info{flex-basis:calc(100% - 70px)}.party-member>.badge{margin-left:62px}}

.slots .slot{height:62px;min-width:0}
.slot-portraits{display:block;width:52px;height:52px}
.slot-portraits .character-portraits,.slot-portraits .group-portraits{position:relative;display:block;width:52px;height:52px}
.slot-portraits .class-portrait{width:40px;height:40px}
.slot-portraits .race-portrait{position:absolute;right:-1px;bottom:-1px;transform:scale(.58);transform-origin:bottom right;filter:drop-shadow(0 1px 2px #000)}
@media(max-width:400px){.slots{gap:4px}.slot-portraits{transform:scale(.85)}}

.card-bottom{gap:12px;flex-wrap:wrap}.group-details-button{margin-left:auto;min-height:40px;padding:8px 13px}.group-details-button svg{width:15px;height:15px}

.fc-timegrid-event .fc-event-main{overflow:hidden}
.calendar-event-label{padding:3px 4px;min-width:0;overflow:hidden}
.calendar-event-label>span,.calendar-event-label>strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-event-time{font-size:10px;opacity:.85}.calendar-event-label>strong{font-size:11px;font-weight:600}
.calendar-tooltip{position:fixed;z-index:200;pointer-events:none;width:max-content;max-width:min(350px,calc(100vw - 16px));padding:14px 16px;border:1px solid #806342;border-radius:7px;background:#202128;color:#eee7dc;box-shadow:0 8px 30px #0008;font-size:12px}
.calendar-tooltip strong,.calendar-tooltip span{display:block;overflow-wrap:anywhere}.calendar-tooltip span{margin-top:6px;color:#c2bbc0}

.visual-field{border:0;padding:0;margin:0;min-width:0}.visual-field>legend{font-size:12px;color:#c9c6ca;margin-bottom:10px;padding:0}
.visual-choices{display:flex;flex-wrap:wrap;gap:8px}.visual-choice{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 13px;border:1px solid #46454d;border-radius:6px;background:#14171c;color:#bbb8bf;font-size:12px;line-height:1.4;transition:background .15s,border-color .15s}
.visual-choice:hover{border-color:#96784d;background:#28251f}.visual-choice[aria-pressed=true]{color:#ffe2aa;border-color:#d6a85c;background:#44341e;box-shadow:inset 0 0 0 1px #d6a85c}
.visual-choice[aria-pressed=true]::after{content:'✓';font-weight:bold;color:#efc980}.visual-choice:disabled{opacity:.35;cursor:not-allowed}
.portrait-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.portrait-choices .visual-choice{flex-direction:column;padding:12px 8px}.portrait-choices .visual-choice::after{position:absolute;right:6px;top:4px}
.portrait-choices .group-portraits{flex:0 0 auto;height:52px}.portrait-choices .visual-choice>span:last-child{font-size:12px}
#character-editor .check{padding:10px 12px;border:1px solid #46454d;border-radius:6px;background:#14171c;cursor:pointer}
#character-editor .check:has(input:checked){border-color:#d6a85c;background:#44341e;color:#ffe2aa}
#character-editor .profession-fields>.columns{grid-template-columns:1fr}
@media(prefers-reduced-motion:reduce){.visual-choice{transition:none}}

.role-choices-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.role-choices-row .visual-field{min-width:0}.role-choices-row .visual-choices{align-content:start}
.profession-choice-icon{display:block;object-fit:cover;border:1px solid #927448;border-radius:4px;flex-shrink:0}
#character-editor .profession-fields .check{gap:8px;flex-wrap:wrap}

.profession-tooltip{position:fixed;z-index:10;pointer-events:none;width:max-content;max-width:min(330px,calc(100vw - 32px));padding:13px 16px;border:1px solid #a7834c;border-radius:7px;background:#252127;color:#efdfc3;box-shadow:0 8px 28px #0009;font-size:12px;line-height:1.65}

#character-editor>label:has(input[name=level]){width:108px;max-width:100%}
#character-editor input[name=level]{width:88px;text-align:center;font-size:16px;padding:8px}
.wow-role-icon{display:block;width:42px;height:42px;flex:none;background-image:url('/assets/portraits/forever-role-icons.png');background-size:168px 168px;background-repeat:no-repeat;border-radius:50%}
.role-tank{background-position:-1px -44px}.role-heal{background-position:-44px 0}.role-dps{background-position:-44px -44px}
.role-choices-row .visual-choice{padding:8px;gap:7px;flex-wrap:wrap}

.character-role-icons{display:inline-flex;align-items:center;gap:4px;vertical-align:middle;margin:4px 8px 8px 0}
.party-role-icons{display:inline-flex;flex:none;margin-left:auto;align-items:center}
@media(max-width:600px){.party-member>.party-role-icons{margin-left:62px}}

/* Original WoW character creation atlas: 64px tiles, displayed at 52px. */
.race-portrait:is(.race-orc,.race-undead,.race-tauren,.race-troll){background-image:url('/assets/portraits/wow-race-portraits.png');background-size:416px 208px}
.race-portrait.race-orc{background-position:-156px -52px}.race-portrait.race-undead{background-position:-52px -52px}.race-portrait.race-tauren{background-position:0 -52px}.race-portrait.race-troll{background-position:-104px -52px}

/* HD portraits extracted from local Forever 1.60.1.70658, not screenshots. */
.race-portrait:is(.race-orc,.race-undead,.race-tauren,.race-troll,.race-skyborne){width:52px;height:52px;border:2px solid #927448;border-radius:5px;background-color:#151310;background-origin:padding-box;background-repeat:no-repeat;box-shadow:0 2px 6px #0006}
.race-portrait:is(.race-orc,.race-undead,.race-tauren,.race-troll){background-image:url('/assets/portraits/forever-races-hd.png');background-size:768px 384px}
.race-portrait.race-orc{background-position:-292.5px -292.5px}.race-portrait.race-undead{background-position:-390px 0}.race-portrait.race-tauren{background-position:-341.25px -146.25px}.race-portrait.race-troll{background-position:-341.25px -243.75px}
.race-portrait.race-skyborne{background-image:url('/assets/portraits/forever-skyborne-hd.png');background-size:192px 96px;background-position:-48.375px 0}

.profession-icon-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.profession-icon-button{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;padding:3px;border:1px solid #786040;border-radius:5px;background:#17191f;cursor:help}
.profession-icon-button img{display:block;border-radius:3px;width:36px;height:36px}.profession-icon-button:hover,.profession-icon-button:focus-visible{border-color:#e6b968;background:#352b21}

/* Group cards and player details */
.group-card[data-group-id]{cursor:pointer;transition:border-color .15s,box-shadow .15s}
.group-card[data-group-id]:hover{border-color:#a37e48;box-shadow:0 0 0 1px #a37e4826}
.slot-portraits[data-bonus-hint]:focus-visible{outline:2px solid #e3b467;outline-offset:4px;border-radius:4px}
.profession-tooltip{white-space:pre-line}
