:root{
  --bg:#eee6d4;--bg-deep:#d8c9a8;--surface:#fbf5e7;--surface-2:#e9dcc1;
  --text:#21170f;--muted:#695b4d;--gold:#b97a22;--gold-bright:#e2b75e;--copper:#753614;
  --border:#9a6c32;--border-soft:#c9ad7e;--shadow:0 14px 34px rgba(42,24,10,.22);
  --danger:#a72d27;--success:#2f7748;--header:#20120c;--header-text:#f4dcaa;
  --input:#fffaf0;--focus:#f4c768;--class-color:#b98a49;
}
html[data-theme=dark]{
  --bg:#0f0d0c;--bg-deep:#070606;--surface:#1b1714;--surface-2:#261e18;
  --text:#f4ead7;--muted:#b9aa96;--gold:#c88a2a;--gold-bright:#f3c96e;--copper:#9e4d20;
  --border:#765126;--border-soft:#453520;--shadow:0 16px 38px rgba(0,0,0,.48);
  --danger:#ef7770;--success:#71c68d;--header:#090807;--header-text:#ffe1a2;--input:#110f0e;--focus:#f4c768;
}
@media(prefers-color-scheme:dark){html[data-theme=system]{
  --bg:#0f0d0c;--bg-deep:#070606;--surface:#1b1714;--surface-2:#261e18;
  --text:#f4ead7;--muted:#b9aa96;--gold:#c88a2a;--gold-bright:#f3c96e;--copper:#9e4d20;
  --border:#765126;--border-soft:#453520;--shadow:0 16px 38px rgba(0,0,0,.48);
  --danger:#ef7770;--success:#71c68d;--header:#090807;--header-text:#ffe1a2;--input:#110f0e;--focus:#f4c768;
}}
*{box-sizing:border-box}
html{min-height:100%;background:var(--bg-deep)}
body{min-height:100vh;margin:0;background:
  radial-gradient(circle at 50% -10%,rgba(196,118,30,.15),transparent 38rem),
  linear-gradient(180deg,var(--bg),var(--bg-deep));color:var(--text);font:16px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif}
body::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.18;background-image:linear-gradient(90deg,transparent 49%,rgba(255,255,255,.025) 50%,transparent 51%),linear-gradient(transparent 49%,rgba(0,0,0,.025) 50%,transparent 51%);background-size:48px 48px;z-index:-1}
h1,h2,h3,.brand span{font-family:Georgia,"Times New Roman",serif;letter-spacing:.02em}
h1{font-size:clamp(2rem,4vw,3.4rem);line-height:1.05;margin:.2em 0 .35em;text-shadow:0 2px 0 rgba(255,255,255,.15)}
h2{font-size:clamp(1.45rem,2.5vw,2rem);margin:.15em 0 .5em}h3{font-size:1.25rem;margin:.2em 0 .5em}
p{margin:.45em 0 1em}.muted{color:var(--muted)}
a{color:var(--gold);text-decoration:none}a:hover{color:var(--gold-bright)}
.site-header{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;padding:8px max(18px,calc((100% - 1320px)/2));background:linear-gradient(180deg,rgba(38,22,14,.98),rgba(12,9,7,.98));border-bottom:2px solid var(--gold);box-shadow:0 8px 24px rgba(0,0,0,.35)}
.site-header::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:3px;background:linear-gradient(90deg,transparent,var(--gold-bright),transparent);opacity:.55}
.brand{display:flex;align-items:center;gap:10px;color:var(--header-text);white-space:nowrap}.brand img{width:84px;height:42px;object-fit:contain;filter:drop-shadow(0 3px 5px #000)}.brand span{font-size:1.15rem;font-weight:800;text-shadow:0 2px 2px #000}
nav,.header-actions,.inline-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.site-header nav{justify-content:center}.site-header nav a{position:relative;padding:8px 12px;color:#d9c8aa;font-weight:700}.site-header nav a::after{content:"";position:absolute;left:18%;right:18%;bottom:0;height:2px;background:var(--gold-bright);transform:scaleX(0);transition:.2s}.site-header nav a:hover::after,.site-header nav a.is-active::after{transform:scaleX(1)}.site-header nav a.is-active{color:#fff0c2}
.header-actions{justify-content:flex-end}.inline-form{margin:0}.icon-button{display:inline-grid;place-items:center;min-width:34px;min-height:34px;padding:6px;border:1px solid #66502f;border-radius:5px;background:linear-gradient(#33281d,#17120e);color:#efd9a4;box-shadow:inset 0 0 0 1px rgba(255,255,255,.05);cursor:pointer}.icon-button:hover{border-color:var(--gold-bright);color:#fff}
main{width:min(1320px,calc(100% - 32px));margin:0 auto;padding:32px 0 48px;min-height:calc(100vh - 160px)}
footer{display:flex;align-items:center;justify-content:center;gap:16px;padding:24px;color:#aa9983;background:#0c0907;border-top:1px solid #4d361f;font-size:.9rem}footer img{width:112px;height:auto;opacity:.75}
.card{position:relative;background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface) 88%,var(--surface-2)));border:1px solid var(--border);border-radius:8px;padding:20px;box-shadow:var(--shadow)}
.card::before{content:"";position:absolute;inset:4px;pointer-events:none;border:1px solid color-mix(in srgb,var(--border-soft) 55%,transparent);border-radius:5px}
.ornate-panel{border-width:2px}.ornate-panel::after{content:"◆";position:absolute;top:-13px;left:50%;transform:translateX(-50%);padding:0 14px;color:var(--gold-bright);background:var(--surface);font-size:1rem}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}.raid-grid{margin-bottom:30px}.character-grid{grid-template-columns:repeat(auto-fill,minmax(285px,1fr));margin-bottom:26px}
.hero{position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px;padding:26px 30px;border:1px solid var(--border);border-radius:10px;background:linear-gradient(110deg,color-mix(in srgb,var(--surface) 95%,transparent),color-mix(in srgb,var(--surface-2) 80%,transparent));box-shadow:var(--shadow);overflow:hidden}.hero::before{content:"";position:absolute;inset:0;border-left:6px solid var(--gold);pointer-events:none}.hero>div{position:relative;z-index:1;max-width:760px}.hero>img{width:min(320px,34vw);height:auto;max-height:155px;object-fit:contain;filter:drop-shadow(0 8px 10px rgba(0,0,0,.35));opacity:.92}.hero-action{position:absolute;right:28px;bottom:18px}.raid-hero{background:linear-gradient(110deg,var(--surface),color-mix(in srgb,var(--surface) 82%,#38130b))}.raid-hero .button{flex:0 0 auto}
.eyebrow{display:inline-block;color:var(--gold);font-size:.76rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.section-heading,.page-title{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:12px 0 18px}.page-title{display:block}.page-title p,.section-heading p{color:var(--muted);margin-top:0}
.raid-card{min-height:205px;overflow:hidden}.raid-card::after{content:"";position:absolute;width:120px;height:120px;right:-48px;bottom:-48px;border:18px double color-mix(in srgb,var(--gold) 18%,transparent);border-radius:50%}.raid-card h3{font-size:1.45rem;margin-top:18px}.raid-time{font-size:1.05rem;font-weight:800}.text-link{font-weight:800}.empty-state{display:grid;place-content:center;min-height:180px;text-align:center}
.badges{display:flex;gap:7px;flex-wrap:wrap}.badges span{font-size:.73rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:4px 9px;color:var(--text);background:var(--surface-2);border:1px solid var(--border-soft);border-radius:3px}
.button,button:not(.class-choice):not(.icon-button){display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:10px 18px;border:1px solid #e0a947;border-radius:5px;background:linear-gradient(180deg,#bd7923,#6c310f);color:#fff7df;font:700 1rem/1 system-ui,sans-serif;text-shadow:0 1px 1px #351404;box-shadow:inset 0 0 0 2px rgba(255,221,149,.14),0 3px 8px rgba(0,0,0,.25);cursor:pointer}.button:hover,button:not(.class-choice):not(.icon-button):hover{filter:brightness(1.12);color:#fff}.button-secondary{border-color:#6d593c;background:linear-gradient(#423525,#211a13)}.button-small{min-height:34px!important;padding:7px 10px!important;font-size:.86rem!important}
form{position:relative}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.wide{grid-column:1/-1}label{display:grid;gap:7px;color:var(--muted);font-weight:700}fieldset{min-width:0}input,select,textarea{width:100%;font:inherit;padding:11px 12px;color:var(--text);background:var(--input);border:1px solid var(--border-soft);border-radius:5px;box-shadow:inset 0 2px 4px rgba(0,0,0,.12)}textarea{min-height:110px;resize:vertical}.check{display:flex;align-items:center;gap:9px}.check input{width:auto}.field-help{color:var(--muted);font-size:.9rem;margin:.2rem 0 .8rem}
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid color-mix(in srgb,var(--focus) 70%,transparent);outline-offset:3px}
.flash{padding:14px 18px;margin-bottom:20px;border:1px solid var(--border);border-left-width:5px;border-radius:6px;background:var(--surface);box-shadow:var(--shadow)}.flash.error{border-left-color:var(--danger)}.flash.success{border-left-color:var(--success)}
.auth-shell{min-height:calc(100vh - 190px);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,500px);align-items:stretch;border:1px solid #67451f;border-radius:10px;overflow:hidden;background:#0d0a08;box-shadow:0 22px 55px rgba(0,0,0,.45)}.auth-art{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;text-align:center;min-height:620px;padding:46px;color:#fff2cf;background:linear-gradient(180deg,rgba(5,4,3,.15),rgba(5,4,3,.82)),url("brand/login-hero.webp") center/cover no-repeat}.auth-art::after{content:"";position:absolute;inset:0;border:1px solid rgba(235,180,79,.45);pointer-events:none}.auth-logo{width:min(650px,80%);height:auto;filter:drop-shadow(0 10px 20px #000)}.auth-art h1{font-size:clamp(2.2rem,5vw,4.5rem);margin:.2em 0;text-shadow:0 4px 10px #000}.auth-art p{max-width:620px;font-size:1.1rem;text-shadow:0 2px 4px #000}.auth{margin:0;border-radius:0;border:0;border-left:2px solid var(--gold);display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,5vw,58px)}.auth::before{display:none}.auth form{display:grid;gap:16px}.auth h2{font-size:2.2rem}.auth-link{text-align:center;margin-top:20px;font-weight:800}
.class-picker-field{margin:0;padding:15px;border:1px solid var(--border-soft);border-radius:7px;background:color-mix(in srgb,var(--surface-2) 45%,transparent)}.class-picker-field legend{padding:0 8px;color:var(--gold);font-family:Georgia,serif;font-size:1.2rem;font-weight:800}.class-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:8px}.class-choice{display:flex;align-items:center;gap:9px;min-height:55px;padding:7px 9px;border:1px solid color-mix(in srgb,var(--class-color) 45%,var(--border-soft));border-radius:5px;background:linear-gradient(120deg,color-mix(in srgb,var(--surface) 92%,var(--class-color)),var(--surface));color:var(--text);font-weight:800;text-align:left;cursor:pointer;transition:transform .14s,border-color .14s,box-shadow .14s}.class-choice:hover{transform:translateY(-2px);border-color:var(--class-color);box-shadow:0 5px 15px color-mix(in srgb,var(--class-color) 24%,transparent)}.class-choice.is-selected{border-color:var(--class-color);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--class-color) 45%,transparent),0 5px 18px color-mix(in srgb,var(--class-color) 28%,transparent)}.class-choice span:last-child{color:var(--class-color);text-shadow:0 1px 0 rgba(0,0,0,.3)}.class-choice-none{--class-color:var(--muted)}.class-picker-status{display:block;margin-top:10px;color:var(--gold);font-weight:800}.class-icon{width:38px;height:38px;border:1px solid color-mix(in srgb,var(--class-color) 65%,#111);border-radius:4px;image-rendering:auto;object-fit:cover;box-shadow:0 2px 6px rgba(0,0,0,.35)}.class-icon-fallback{display:inline-grid;place-items:center;background:#241b13;color:#d5ba84;font-weight:900}
.character-card{display:flex;align-items:center;gap:16px;border-left:5px solid var(--class-color);overflow:hidden}.character-card::after{content:"";position:absolute;inset:auto -42px -65px auto;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--class-color) 18%,transparent),transparent 68%)}.character-card .character-icon{display:grid;place-items:center;flex:0 0 66px;width:66px;height:66px;border-radius:50%;background:linear-gradient(#362819,#15100b);border:2px solid var(--class-color);box-shadow:0 0 15px color-mix(in srgb,var(--class-color) 26%,transparent)}.character-card .class-icon{width:50px;height:50px}.character-card h2{margin:.2rem 0}.character-card .class-name{color:var(--class-color);font-weight:900;margin:0}.character-form{margin-top:8px}
.roster-section{margin-top:34px}.candidate-pool{margin-bottom:18px}.candidate-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.roster-candidate{display:flex;align-items:center;gap:10px;padding:9px;border:1px solid color-mix(in srgb,var(--class-color) 45%,var(--border-soft));border-left:4px solid var(--class-color);border-radius:6px;background:var(--surface-2);cursor:grab;user-select:none}.roster-candidate:active{cursor:grabbing}.roster-candidate>div{display:grid;min-width:0}.roster-candidate strong,.roster-candidate span,.roster-candidate small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-candidate span{color:var(--class-color);font-size:.88rem}.roster-candidate small{color:var(--muted)}.roster{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:15px}.group-card{padding:16px}.group-card h3{padding-bottom:8px;border-bottom:1px solid var(--border-soft)}.roster-slot{position:relative;display:flex;align-items:center;gap:9px;min-height:68px;margin:9px 0;padding:9px;border:1px dashed var(--border-soft);border-radius:6px;background:color-mix(in srgb,var(--input) 78%,transparent);transition:border-color .15s,background .15s}.roster-slot.is-dragover{border-color:var(--gold-bright);background:color-mix(in srgb,var(--surface-2) 75%,var(--gold))}.roster-slot.is-filled{border-style:solid;border-left:4px solid var(--class-color)}.slot-content{display:grid;min-width:0}.slot-content strong,.slot-content span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slot-content span{font-size:.83rem;color:var(--class-color)}.empty-slot-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px dashed var(--border);color:var(--gold);font-size:1.4rem}.slot-clear{margin-left:auto}.slot-clear .icon-button{min-width:28px;min-height:28px}.slot-editor{position:absolute;z-index:3;right:8px;bottom:5px}.slot-editor summary{cursor:pointer;color:var(--gold);font-size:.7rem;font-weight:800;list-style:none}.slot-editor[open]{left:6px;right:6px;bottom:auto;top:calc(100% - 2px);padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:5px;box-shadow:var(--shadow)}.slot-editor form{display:grid;gap:8px}.slot-editor label{font-size:.75rem}.slot-editor select{padding:7px;font-size:.8rem}
.lead{border-left:5px solid var(--gold)}blockquote{margin:12px 0;padding:12px;border-left:3px solid var(--border);background:var(--surface-2)}blockquote.priority-important{border-left-color:#d58b1d}blockquote.priority-urgent{border-left-color:var(--danger)}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.coa-class--barbarian{--class-color:#c54b22}.coa-class--witch-doctor{--class-color:#55ff1f}.coa-class--felsworn{--class-color:#d429ff}.coa-class--witch-hunter{--class-color:#d9ec63}.coa-class--stormbringer{--class-color:#168bff}.coa-class--knight-of-xoroth{--class-color:#ff343f}.coa-class--guardian{--class-color:#d7a04f}.coa-class--templar{--class-color:#00f0a2}.coa-class--bloodmage{--class-color:#f5a400}.coa-class--ranger{--class-color:#fff45c}.coa-class--chronomancer{--class-color:#fff0a0}.coa-class--necromancer{--class-color:#9b8cff}.coa-class--pyromancer{--class-color:#ff4b24}.coa-class--cultist{--class-color:#e7a2ff}.coa-class--starcaller{--class-color:#a5f5ff}.coa-class--sun-cleric{--class-color:#ff9bc7}.coa-class--tinker{--class-color:#a8a8a8}.coa-class--venomancer{--class-color:#ff8000}.coa-class--reaper{--class-color:#e52d55}.coa-class--primalist{--class-color:#2876ff}.coa-class--runemaster{--class-color:#35b8ff}
@media(max-width:1050px){.site-header{grid-template-columns:1fr auto}.site-header nav{grid-column:1/-1;grid-row:2}.header-actions{grid-column:2;grid-row:1}.auth-shell{grid-template-columns:1fr}.auth-art{min-height:420px}.auth{border-left:0;border-top:2px solid var(--gold)}}
@media(max-width:760px){main{width:min(100% - 20px,1320px);padding-top:18px}.site-header{position:relative;grid-template-columns:1fr}.brand{justify-content:center}.header-actions,.site-header nav{grid-column:1;justify-content:center}.header-actions{grid-row:auto}.hero{align-items:flex-start;flex-direction:column;padding:22px}.hero>img{width:70%;align-self:center}.hero-action{position:static}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.class-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-art{min-height:330px;padding:28px}.auth{padding:30px 22px}.candidate-list{grid-template-columns:1fr}.roster{grid-template-columns:1fr}footer{flex-direction:column;text-align:center}}
@media(max-width:440px){.class-picker{grid-template-columns:1fr}.brand img{width:70px}.brand span{font-size:1rem}.site-header nav a{padding:7px}.auth-logo{width:96%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
.form-note{color:var(--muted);font-size:.92rem;padding:10px 12px;border-left:3px solid var(--gold);background:color-mix(in srgb,var(--surface-2) 65%,transparent);border-radius:4px}
.verification-card{text-align:center}.verification-seal{display:grid;place-items:center;width:76px;height:76px;margin:0 auto 14px;border:2px solid var(--gold);border-radius:50%;background:linear-gradient(145deg,#3d2918,#17100b);color:var(--gold-bright);font-size:2.1rem;box-shadow:0 0 24px rgba(201,137,43,.28)}.email-hint{display:inline-block;padding:7px 12px;border:1px solid var(--border-soft);border-radius:5px;background:var(--surface-2);font-weight:800;letter-spacing:.03em}.verification-card form{margin-top:18px}
.smtp-status{margin-bottom:18px}.status-pill{align-self:flex-start;padding:5px 10px;border:1px solid var(--border-soft);border-radius:999px;font-size:.78rem;font-weight:900;text-transform:uppercase}.status-pill.is-good{border-color:var(--success);color:var(--success);background:color-mix(in srgb,var(--success) 10%,transparent)}.status-pill.is-bad{border-color:var(--danger);color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,transparent)}
.notice-card{display:flex;align-items:center;gap:14px;margin-bottom:18px;border-left:5px solid var(--gold)}.notice-card strong{font-size:2rem;color:var(--gold-bright)}.verified-badge{color:var(--success)!important;border-color:color-mix(in srgb,var(--success) 55%,var(--border-soft))!important}
