:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#eef3f0;--muted:#a5b4b0;--line:#394a4c;--line-strong:#56686a;--surface:#182426;--surface-raised:#1e2d2f;--surface-soft:#223436;--field:#101a1c;--canvas:#0d1416;--brand:#15927f;--brand-dark:#0b6d60;--brand-text:#72d7c3;--accent:#ef765b;--gold:#e9b84c;--indigo:#9b8ed8;--danger:#df666d;--warning:#e3b34b;--success:#68c597;--focus:#60b8ec;--header:#101b1d;--shadow:0 12px 28px #00000057}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:68px}body{color:var(--ink);background:var(--canvas);letter-spacing:0;margin:0;padding-top:68px;font-family:Inter,Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif;font-size:16px;line-height:1.55}button,input,select,textarea{font:inherit;letter-spacing:0}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}img{max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.18}button{color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-header{z-index:60;color:#f4f7f5;background:var(--header);border-bottom:3px solid var(--gold);min-height:68px;position:fixed;inset:0 0 auto}.header-inner{grid-template-columns:max-content minmax(0,1fr) max-content;align-items:center;gap:24px;width:min(1580px,100% - 32px);min-height:65px;margin:0 auto;display:grid}.brand-link{align-items:center;gap:10px;min-width:0;font-weight:800;display:inline-flex}.brand-mark{color:#fff;background:var(--brand);border:2px solid var(--gold);border-radius:4px;flex:0 0 36px;place-items:center;width:36px;height:36px;font-size:21px;display:grid}.brand-name{white-space:nowrap}.main-nav{scrollbar-width:none;align-items:stretch;gap:3px;min-width:0;height:65px;display:flex;overflow-x:auto}.main-nav::-webkit-scrollbar{display:none}.main-nav a{color:#b6c4c1;border-bottom:3px solid #0000;flex:none;align-items:center;gap:6px;padding:0 12px;font-size:14px;font-weight:700;display:inline-flex}.main-nav a:hover,.main-nav a.active{color:#fff;border-bottom-color:var(--gold)}.header-account{align-items:center;gap:8px;display:flex}.account-name{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;max-width:150px;font-size:14px;display:inline-flex;overflow:hidden}.header-register{color:#d8e4e1;border:1px solid var(--line-strong);border-radius:5px;align-items:center;gap:7px;min-height:40px;padding:0 12px;font-weight:700;display:inline-flex}.header-register:hover{color:#fff;border-color:#7fc2b5}.header-login{color:#fff;background:var(--brand);cursor:pointer;border:1px solid #7fc2b5;border-radius:5px;align-items:center;gap:8px;min-height:40px;padding:0 14px;font-weight:700;display:inline-flex}.icon-button{background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:5px;place-items:center;width:40px;height:40px;padding:0;display:inline-grid}.header-icon{color:#fff;border-color:var(--line-strong);background:0 0}.modal-backdrop{z-index:100;background:#0c191db8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.login-modal,.dialog-panel{background:var(--surface);border:1px solid var(--line-strong);border-radius:8px;width:min(720px,100%);max-height:min(780px,100dvh - 40px);overflow:auto;box-shadow:0 24px 60px #0000004d}.modal-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;min-height:78px;padding:18px 18px 14px 22px;display:flex}.modal-heading h2{margin-bottom:0;font-size:24px}.eyebrow{color:var(--brand-text);text-transform:uppercase;margin-bottom:4px;font-size:12px;font-weight:800}.modal-close{color:#fff;cursor:pointer;background:#d43742;border:2px solid #8e1820;border-radius:5px;flex:0 0 42px;place-items:center;width:42px;height:42px;padding:0;display:grid}.modal-close:hover,.modal-close:focus-visible{background:#b71f2b;transform:scale(1.04)}.login-filters{background:var(--surface-soft);border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) 180px;gap:10px;padding:16px 22px;display:grid}.search-field{background:var(--field);border:1px solid var(--line-strong);border-radius:5px;align-items:center;gap:8px;padding:0 11px;display:flex}.search-field input{background:0 0;border:0;outline:0;width:100%;min-width:0}input,select,textarea{width:100%;min-height:42px;color:var(--ink);background:var(--field);border:1px solid var(--line-strong);border-radius:5px;padding:8px 11px}input::placeholder,textarea::placeholder{color:#7f918d}select option{color:var(--ink);background:var(--field)}textarea{resize:vertical;min-height:130px}.login-character-list{gap:7px;padding:12px 22px 20px;display:grid}.login-character{text-align:left;background:var(--surface-raised);border:1px solid var(--line);cursor:pointer;border-radius:6px;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:14px;width:100%;min-height:78px;padding:6px 14px 6px 8px;display:grid}.login-character:hover{border-color:var(--brand-text);background:var(--surface-soft)}.login-character img{object-fit:cover;border-radius:4px;width:64px;height:64px}.login-character span{min-width:0}.login-character strong,.login-character small{overflow-wrap:anywhere;display:block}.login-character small{color:var(--muted)}.modal-footnote{color:var(--muted);background:var(--surface-soft);border-top:1px solid var(--line);margin:0;padding:13px 22px;font-size:13px}.form-error{color:#ffc3c7;border-left:4px solid var(--danger);background:#402126;margin:12px 22px 0;padding:10px 12px}.empty-state{color:var(--muted);text-align:center;margin:0;padding:22px}.home-hero{color:#f8fbfa;background:#142a30;border-bottom:1px solid #49666b;min-height:min(650px,100dvh - 104px);position:relative;overflow:hidden}.hero-backdrop{z-index:0;display:block;position:absolute;inset:0;overflow:hidden}.hero-backdrop img{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.hero-shade{z-index:1;background:linear-gradient(90deg,#071519b3 0%,#0715196b 36%,#0715191a 64%,#07151929 100%);position:absolute;inset:0}.home-hero-inner{z-index:2;width:min(1260px,100% - 40px);min-height:inherit;align-items:center;margin:0 auto;display:flex;position:relative}.hero-copy{text-shadow:0 2px 18px #0000006b;width:min(610px,55%);padding:58px 0 64px}.status-badge{color:#d4f8ee;border-left:4px solid var(--gold);background:#0c433be6;border-radius:3px;align-items:center;min-height:30px;padding:3px 10px;font-size:13px;font-weight:800;display:inline-flex}.hero-copy h1{overflow-wrap:anywhere;max-width:620px;margin:18px 0 12px;font-size:64px}.hero-copy>p{color:#d9e4e3;max-width:580px;font-size:18px}.hero-copy .hero-week{color:#f5ce74;margin-bottom:8px;font-size:20px;font-weight:800}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.hero-facts{text-shadow:0 2px 10px #0000008c;border-top:1px solid #ffffff59;grid-template-columns:repeat(3,minmax(0,1fr));max-width:500px;margin-top:34px;padding-top:18px;display:grid}.hero-facts>span{gap:2px;padding-right:16px;display:grid}.hero-facts>span+span{border-left:1px solid #ffffff4d;padding-left:18px}.hero-facts strong{font-size:25px}.hero-facts small{color:#dce8e5;font-size:12px;font-weight:700}.button{cursor:pointer;border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:9px 16px;font-weight:800;display:inline-flex}.button.primary{color:#fff;background:var(--brand);border-color:#8bd2c4}.button.primary:hover{background:var(--brand-dark)}.button.secondary{color:#fff;background:0 0;border-color:#9fb6b8}.button.secondary:hover{background:var(--surface-soft)}.button.danger{color:#fff;border-color:var(--danger);background:#b83f49}.button.ghost{border-color:var(--line);background:0 0}.button.small{min-height:34px;padding:5px 10px;font-size:13px}.button:disabled{cursor:not-allowed;opacity:.55}.home-section{width:min(1260px,100% - 40px);margin:0 auto;padding:64px 0}.section-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px;display:flex}.section-heading h2{margin-bottom:0;font-size:34px}.text-link{color:var(--brand-text);align-items:center;gap:5px;font-weight:800;display:inline-flex}.gathering-groups{grid-template-columns:1fr 1fr;gap:18px;display:grid}.gathering-group{background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--dungeon-accent);border-radius:7px;overflow:hidden}.gathering-title{background:color-mix(in srgb, var(--dungeon-accent) 20%, var(--surface));align-items:center;gap:14px;min-height:78px;padding:10px 14px;display:flex}.gathering-title img{object-fit:cover;border:1px solid #ffffff29;border-radius:4px;width:120px;height:55px}.gathering-title h3{margin-bottom:2px;font-size:20px}.gathering-title p{color:var(--muted);margin:0;font-size:13px}.gathering-row-wrap+.gathering-row-wrap{border-top:1px solid var(--line)}.gathering-row{text-align:left;background:var(--surface);cursor:pointer;border:0;grid-template-columns:minmax(120px,1fr) minmax(138px,.9fr) 72px minmax(108px,.7fr) 22px;align-items:center;gap:8px;width:100%;min-height:54px;padding:8px 13px;display:grid}.gathering-row:hover{background:var(--surface-raised)}.gathering-row>span{color:var(--muted);align-items:center;gap:5px;font-size:13px;display:inline-flex}.gathering-row svg{transition:transform .16s}.gathering-row svg.turned{transform:rotate(180deg)}.leader-state{font-weight:700;color:var(--brand-text)!important}.leader-needs_confirmation{color:var(--warning)!important}.gathering-roster{background:var(--surface-soft);border-top:1px solid var(--line);padding:9px 13px 13px}.gathering-member{grid-template-columns:48px minmax(0,1fr) 24px;align-items:center;gap:10px;min-height:58px;padding:5px 0;display:grid}.gathering-member+.gathering-member{border-top:1px solid var(--line)}.gathering-member img{object-fit:cover;border-radius:4px;width:48px;height:48px}.gathering-member strong,.gathering-member small{display:block}.gathering-member small{color:var(--muted)}.steps-band{background:var(--surface);border-top:1px solid var(--line);width:100%;max-width:none;padding-left:max(20px,50% - 630px);padding-right:max(20px,50% - 630px)}.steps-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid}.step-item{min-height:230px;padding:28px 26px;position:relative}.step-item+.step-item{border-left:1px solid var(--line)}.step-item>span{color:var(--accent);margin-bottom:26px;font-size:26px;font-weight:900;display:block}.step-item>svg{color:var(--brand)}.step-item h3{margin:13px 0 8px;font-size:19px}.step-item p{color:var(--muted);margin:0;font-size:14px}.step-item .step-check{color:var(--success);position:absolute;top:32px;right:24px}.page-shell{width:min(1260px,100% - 40px);margin:0 auto;padding:40px 0 72px}.board-shell{width:min(1580px,100% - 32px);margin:0 auto;padding:26px 0 64px}.page-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px;display:flex}.page-heading h1{margin:0;font-size:36px}.page-heading p{color:var(--muted);margin:6px 0 0}.status-line{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.status-chip{border:1px solid var(--line);background:var(--surface-raised);border-radius:4px;align-items:center;gap:5px;min-height:28px;padding:3px 8px;font-size:12px;font-weight:800;display:inline-flex}.status-chip.open{color:#a1ead8;background:#153a33;border-color:#347d6e}.status-chip.warning{color:#f2ce78;background:#3b3018;border-color:#806526}.panel{background:var(--surface);border:1px solid var(--line);border-radius:7px}.panel-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;min-height:58px;padding:12px 16px;display:flex}.panel-heading h2,.panel-heading h3{margin:0;font-size:19px}.panel-body{padding:18px}.form-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:24px;display:grid}.form-panel{background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:22px}.form-panel-heading{margin:-22px -22px 20px}.form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.fieldset-reset{border:0;min-width:0;margin:0;padding:0}.field{gap:6px;display:grid}.field.full{grid-column:1/-1}.field>span,.field-label{font-size:14px;font-weight:800}.field-hint{color:var(--muted);font-size:12px}.field-error{color:var(--danger);font-size:12px}.segmented{border:1px solid var(--line-strong);border-radius:5px;grid-auto-columns:1fr;grid-auto-flow:column;display:grid;overflow:hidden}.segmented button{background:var(--field);cursor:pointer;border:0;min-height:42px;padding:7px 10px}.segmented button+button{border-left:1px solid var(--line-strong)}.segmented button.active{color:#fff;background:var(--brand)}.form-actions{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.info-band{border-left:4px solid var(--brand);background:#173531;padding:18px}.info-band h2,.info-band h3{font-size:18px}.info-band ul{color:var(--muted);margin:0;padding-left:20px}.info-band p{color:var(--muted);margin:0;font-size:13px}.info-band h3{align-items:center;gap:7px;margin-bottom:8px;display:flex}.inline-alert{color:#a8e5d6;border-left:4px solid var(--brand);overflow-wrap:anywhere;background:#173531;margin:14px 0;padding:10px 12px}.inline-alert.error{color:#ffc3c7;border-left-color:var(--danger);background:#402126}.register-preview{background:var(--surface);border:1px solid var(--line);border-top:5px solid var(--job-color);border-radius:7px;position:sticky;top:92px;overflow:hidden}.register-preview>img{aspect-ratio:1;object-fit:cover;object-position:center 25%;width:100%;height:auto;display:block}.preview-caption{border-top:1px solid var(--line);padding:14px 18px;display:grid}.preview-caption strong{overflow-wrap:anywhere;font-size:20px}.preview-caption span,.preview-caption small{color:var(--muted)}.register-preview .info-band{border-top:1px solid var(--line);border-left-width:0}.board-toolbar{grid-template-columns:minmax(280px,1fr) minmax(420px,1.4fr);align-items:end;gap:16px;margin-bottom:14px;display:grid}.board-toolbar h1{margin:0 0 5px;font-size:30px}.toolbar-controls{grid-template-columns:minmax(150px,1fr) 150px 150px 190px 42px;gap:8px;display:grid}.metrics-row{grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px;margin-bottom:14px;display:grid}.metric{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--brand);min-height:68px;padding:10px 14px}.metric strong{font-size:23px;display:block}.metric span{color:var(--muted);font-size:12px}.dungeon-tabs{background:var(--surface);border:1px solid var(--line);grid-template-columns:repeat(5,minmax(150px,1fr));margin-bottom:16px;display:grid;overflow-x:auto}.dungeon-tab{text-align:left;background:var(--surface);cursor:pointer;border:0;border-bottom:4px solid #0000;grid-template-columns:70px minmax(0,1fr);align-items:center;gap:10px;min-height:72px;padding:9px 12px;display:grid}.dungeon-tab+.dungeon-tab{border-left:1px solid var(--line)}.dungeon-tab:hover{background:var(--surface-raised)}.dungeon-tab.active{background:color-mix(in srgb, var(--tab-accent) 22%, var(--surface));border-bottom-color:var(--tab-accent)}.dungeon-tab img{object-fit:cover;border-radius:3px;width:70px;height:52px}.tab-placeholder{color:#f0cd77;background:#3b3018;border:1px solid #806526;border-radius:3px;place-items:center;width:70px;height:52px;display:grid}.dungeon-tab strong,.dungeon-tab small{display:block}.dungeon-tab small{color:var(--muted)}.raid-overview{background:color-mix(in srgb, var(--dungeon-accent) 18%, var(--surface));border-top:4px solid var(--dungeon-accent);border-bottom:1px solid var(--line);grid-template-columns:360px minmax(220px,1fr) max-content;align-items:stretch;min-height:150px;margin-bottom:16px;display:grid;overflow:hidden}.raid-overview-art{background-position:50%;background-size:cover;width:360px;height:150px}.raid-overview-copy{align-self:center;min-width:0;padding:18px 24px}.raid-overview-copy h2{margin:2px 0 5px;font-size:28px}.raid-overview-copy p:last-child{color:var(--muted);margin:0}.raid-overview-stats{border-left:1px solid var(--line);background:#091113ad;grid-template-columns:repeat(3,minmax(88px,1fr));align-items:center;display:grid}.raid-overview-stats span{text-align:center;gap:2px;min-width:88px;padding:15px 18px;display:grid}.raid-overview-stats span+span{border-left:1px solid var(--line)}.raid-overview-stats strong{font-size:25px}.raid-overview-stats small{color:var(--muted);font-size:11px;font-weight:700}.board-layout{grid-template-columns:310px minmax(0,1fr);align-items:start;gap:16px;display:grid}.character-pool{background:var(--surface);border:1px solid var(--line);border-radius:7px;max-height:calc(100dvh - 104px);position:sticky;top:86px;overflow:auto}.pool-heading{z-index:2;background:var(--surface-soft);border-bottom:1px solid var(--line);padding:13px;position:sticky;top:0}.pool-heading>div{justify-content:space-between;align-items:center;gap:10px;display:flex}.pool-heading h2{margin:0;font-size:18px}.pool-heading span{color:var(--brand-text);font-size:12px;font-weight:900}.pool-heading p{color:var(--muted);margin:3px 0 0;font-size:12px}.job-family-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:10px;display:grid!important}.job-family-strip button{min-width:0;min-height:34px;color:var(--muted);background:var(--field);border:1px solid var(--line);cursor:pointer;text-align:left;border-radius:4px;grid-template-columns:8px minmax(0,1fr) max-content;align-items:center;gap:6px;padding:5px 7px;display:grid}.job-family-strip button:hover{color:var(--ink);border-color:var(--line-strong)}.job-family-strip button.active{color:var(--ink);border-color:var(--brand-text);background:#193d38}.job-family-strip i{border-radius:2px;width:8px;height:18px;display:block}.job-family-strip i.all{background:linear-gradient(to bottom, var(--brand) 0 34%, var(--gold) 34% 67%, var(--accent) 67%)}.job-family-strip span{min-width:0;color:inherit;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.job-family-strip small{color:var(--brand-text);font-size:10px;font-weight:800}.character-list{gap:8px;padding:10px;display:grid}.character-card{text-align:left;background:var(--surface-raised);border:1px solid var(--line);border-left:4px solid var(--job-color);cursor:grab;border-radius:6px;grid-template-columns:68px minmax(0,1fr) 28px;align-items:center;gap:10px;min-height:92px;padding:8px;display:grid}.character-card:hover{border-color:var(--brand-text);box-shadow:0 7px 18px #00000047}.character-card:active{cursor:grabbing}.character-card:disabled{cursor:not-allowed;opacity:.62;box-shadow:none}.character-card:disabled:hover{border-color:var(--line)}.character-card img{object-fit:cover;object-position:center 28%;border-radius:4px;width:68px;height:68px}.character-main{min-width:0}.character-main strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.character-main small{color:var(--muted);font-size:12px;display:block}.usage-count{color:#fff;background:var(--brand);border-radius:50%;place-items:center;width:28px;height:28px;font-size:11px;font-weight:800;display:grid}.usage-count.full{color:#15100a;background:var(--gold)}.team-area{min-width:0}.team-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.team-card{background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--dungeon-accent);border-radius:7px;min-width:0;overflow:hidden}.team-card.drop-active{outline:3px solid var(--focus);outline-offset:2px}.team-card-header{background:color-mix(in srgb, var(--dungeon-accent) 20%, var(--surface));grid-template-columns:minmax(0,1fr) max-content;gap:12px;min-height:78px;padding:12px 14px;display:grid}.team-card-header h3{overflow-wrap:anywhere;margin:0 0 4px;font-size:19px}.team-meta{color:var(--muted);flex-wrap:wrap;gap:7px 12px;font-size:12px;display:flex}.team-meta span{overflow-wrap:anywhere;align-items:center;gap:4px;min-width:0;display:inline-flex}.team-count{text-align:right}.team-count strong{font-size:23px;display:block}.team-header-actions{justify-content:flex-end;gap:4px;margin-top:3px;display:flex}.collapsed-team-summary{width:100%;min-height:48px;color:var(--muted);background:var(--field);border:0;border-top:1px solid var(--line);text-align:left;cursor:pointer;padding:10px 14px}.requirements{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:6px;min-height:34px;padding:7px 12px;display:flex}.requirement{color:#f0cc75;background:#3a2f17;border:1px solid #806526;border-radius:3px;align-items:center;gap:4px;padding:2px 6px;font-size:11px;display:inline-flex}.requirement.ok{color:#a5e5bf;background:#18382a;border-color:#387a58}.seat-grid{grid-template-columns:1fr 1fr;gap:8px;padding:10px;display:grid}.seat{border:1px dashed var(--line-strong);background:var(--field);border-radius:5px;min-width:0;min-height:92px}.seat.empty{color:var(--muted);place-items:center;font-size:12px;display:grid}.seat.empty span{font-weight:800;display:block}.seat.occupied{border-style:solid;border-left:4px solid var(--job-color);background:var(--surface-raised);grid-template-columns:58px minmax(0,1fr);align-items:center;gap:8px;padding:7px;display:grid;position:relative}.seat img{object-fit:cover;object-position:center 25%;border-radius:4px;width:58px;height:68px}.seat-content{min-width:0}.seat-content strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.seat-content small{color:var(--muted);font-size:11px;display:block}.seat-actions{flex-wrap:wrap;gap:4px;margin-top:5px;display:flex}.seat-action{width:28px;height:28px;color:var(--muted);background:var(--surface-soft);border:1px solid var(--line);cursor:pointer;border-radius:4px;place-items:center;padding:0;display:grid}.seat-action.danger{color:var(--danger)}.leader-crown{color:var(--warning);position:absolute;top:4px;right:5px}.unassigned-band{border-top:5px solid var(--gold);background:#342b18;padding:16px}.unassigned-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.action-sheet{padding:18px}.action-sheet h2{font-size:22px}.action-sheet-options{gap:8px;margin-top:16px;display:grid}.action-sheet-options button{text-align:left;background:var(--surface-raised);border:1px solid var(--line);cursor:pointer;border-radius:5px;min-height:48px;padding:9px 12px}.action-sheet-options button:hover{border-color:var(--brand-text);background:var(--surface-soft)}.action-sheet-options small{color:var(--muted);display:block}.drag-preview{color:#fff;background:var(--header);border:2px solid var(--gold);box-shadow:var(--shadow);border-radius:5px;padding:11px 14px;font-weight:800}.toast{z-index:120;color:#fff;border:1px solid var(--line-strong);width:min(560px,100% - 28px);min-height:58px;box-shadow:var(--shadow);background:#20383a;border-radius:6px;justify-content:space-between;align-items:center;gap:14px;padding:11px 14px;display:flex;position:fixed;bottom:22px;left:50%;translate:-50%}.toast.error{background:#72262a}.mobile-board-options{justify-content:flex-end;gap:18px;margin:-4px 0 12px;display:flex}.mobile-board-options label{color:var(--muted);cursor:pointer;align-items:center;gap:7px;font-size:13px;font-weight:700;display:inline-flex}.mobile-board-options input{width:17px;height:17px;min-height:17px;accent-color:var(--brand);margin:0}.mobile-board-options label:has(input:disabled){cursor:not-allowed;opacity:.5}.data-toolbar{grid-template-columns:minmax(220px,1fr) repeat(3,minmax(140px,190px));gap:8px;margin-bottom:12px;display:grid}.data-table-wrap{background:var(--surface);border:1px solid var(--line);overflow-x:auto}.data-table{border-collapse:collapse;width:100%;min-width:980px}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:10px 12px;font-size:13px}.data-table th{color:#fff;background:#263f42;font-weight:800;position:sticky;top:0}.sort-button{color:inherit;font-weight:inherit;cursor:pointer;background:0 0;border:0;padding:0}.data-table tbody tr:hover{background:var(--surface-soft)}.list-result-bar{min-height:38px;color:var(--muted);background:var(--surface-soft);border:1px solid var(--line);border-bottom:0;justify-content:space-between;align-items:center;gap:12px;padding:7px 10px;font-size:12px;display:flex}.list-result-bar strong{color:var(--ink);font-size:15px}.table-dungeon{align-items:center;gap:8px;display:inline-flex}.table-dungeon img{object-fit:cover;border-radius:3px;width:58px;height:36px}.table-character{align-items:center;gap:8px;display:inline-flex}.table-character img{object-fit:cover;border-radius:3px;width:38px;height:38px}.signup-mobile-list{display:none}.signup-mobile-row{background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--dungeon-accent);border-left:4px solid var(--job-color);border-radius:6px;overflow:hidden}.signup-mobile-character{grid-template-columns:58px minmax(0,1fr) 24px;align-items:center;gap:10px;min-height:78px;padding:9px 11px;display:grid}.signup-mobile-character img{object-fit:cover;object-position:center 25%;border-radius:4px;width:58px;height:58px}.signup-mobile-character strong,.signup-mobile-character small{overflow-wrap:anywhere;display:block}.signup-mobile-character small{color:var(--muted)}.signup-mobile-character>svg{color:var(--warning)}.signup-mobile-meta{color:var(--muted);background:var(--surface-soft);border-top:1px solid var(--line);gap:5px;padding:9px 11px;font-size:12px;display:grid}.signup-mobile-meta span{align-items:flex-start;gap:6px;display:flex}.signup-mobile-meta svg{flex:none;margin-top:1px}.mobile-contact-button{width:100%;min-height:38px;color:var(--brand-text);background:var(--surface-raised);border:0;border-top:1px solid var(--line);cursor:pointer;justify-content:center;align-items:center;gap:6px;font-weight:800;display:flex}.character-workspace{grid-template-columns:minmax(300px,.8fr) minmax(420px,1.2fr);align-items:start;gap:18px;display:grid}.compact-list{display:grid}.compact-row{background:var(--surface);border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;grid-template-columns:52px minmax(0,1fr) 26px;align-items:center;gap:10px;min-height:72px;padding:9px 12px;display:grid}.compact-row:hover{background:var(--surface-raised)}.compact-row.active{box-shadow:inset 4px 0 var(--brand);background:#1b3935}.compact-row img{object-fit:cover;border-radius:4px;width:52px;height:52px}.compact-row small{color:var(--muted);display:block}.editing-panel{position:sticky;top:92px}.character-edit-grid{grid-template-columns:220px minmax(0,1fr);gap:18px;padding:18px;display:grid}.character-preview-small{background:var(--surface-soft);border:1px solid var(--line);border-top:4px solid var(--job-color);border-radius:6px;align-self:start;overflow:hidden}.character-preview-small img{aspect-ratio:1;object-fit:cover;object-position:center 25%;width:100%;height:auto;display:block}.select-with-art{grid-template-columns:36px minmax(0,1fr);align-items:center;gap:7px;display:grid}.select-with-art img{object-fit:cover;border-radius:3px;width:36px;height:36px}.panel-actions{padding:0 18px 18px}.auth-required{text-align:center;max-width:620px;margin:56px auto;padding:38px}.auth-required>svg{color:var(--brand)}.admin-login-page{width:min(920px,100% - 40px)}.admin-login-panel{background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--gold);grid-template-columns:minmax(250px,.85fr) minmax(340px,1.15fr);display:grid;overflow:hidden}.admin-login-intro{background:var(--surface-soft);border-right:1px solid var(--line);align-content:center;justify-items:start;min-height:360px;padding:34px;display:grid}.admin-login-intro>svg{color:var(--gold);margin-bottom:18px}.admin-login-intro h1{margin-bottom:10px;font-size:30px}.admin-login-intro p:last-child{color:var(--muted);margin:0}.admin-login-form{align-content:center;gap:16px;padding:34px;display:grid}.admin-credential-field{background:var(--field);border:1px solid var(--line);border-radius:4px;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:8px;min-height:46px;padding:0 11px;display:grid}.admin-credential-field:focus-within{border-color:var(--focus);outline:2px solid color-mix(in srgb, var(--focus) 35%, transparent)}.admin-credential-field>svg{color:var(--muted)}.admin-credential-field input{background:0 0;border:0;outline:0;width:100%;min-height:42px;padding:0}.admin-login-form .button{justify-content:center;min-height:46px}.history-selector{justify-content:space-between;align-items:end;gap:16px;margin-bottom:12px;padding:14px;display:flex}.history-selector .field{width:min(430px,100%)}.leader-inline{color:var(--warning);align-items:center;gap:4px;font-weight:800;display:inline-flex}.admin-layout{grid-template-columns:220px minmax(0,1fr);align-items:start;gap:20px;display:grid}.admin-layout>div{min-width:0}.admin-nav{background:var(--surface);border:1px solid var(--line);display:grid;position:sticky;top:90px}.admin-nav a{border-bottom:1px solid var(--line);align-items:center;gap:8px;min-height:44px;padding:9px 12px;font-weight:700;display:flex}.admin-nav a:hover{background:var(--surface-soft)}.admin-metrics{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px;display:grid}.admin-metric{background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--metric-color,var(--brand));min-height:104px;padding:16px}.admin-metric strong{margin-top:8px;font-size:28px;display:block}.admin-metric span{color:var(--muted);font-size:13px}.admin-grid{grid-template-columns:1.3fr .7fr;gap:14px;display:grid}.admin-label-value{overflow-wrap:anywhere;font-size:17px!important}.admin-section{margin-top:16px}.admin-action-center{margin-bottom:16px}.action-center-grid{background:var(--surface-soft);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.action-center-item{border-right:1px solid var(--line);align-items:center;gap:12px;min-height:84px;padding:13px 16px;display:flex}.action-center-item:last-child{border-right:0}.action-center-item>svg{color:var(--brand-text)}.action-center-item span,.action-center-item strong,.action-center-item small{display:block}.action-center-item strong{font-size:24px}.action-center-item small{color:var(--muted);font-size:12px}.action-center-item:hover{background:#294042}.action-center-list{grid-template-columns:1fr 1fr;display:grid}.action-center-list>a{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:55px;padding:9px 14px;display:flex}.action-center-list>a:nth-child(odd){border-right:1px solid var(--line)}.action-center-list>a:hover{background:var(--surface-raised)}.action-center-list strong,.action-center-list small{display:block}.action-center-list small{color:var(--muted);font-size:11px}.action-center-list>a>span:last-child{color:var(--brand-text);font-size:12px;font-weight:800}.notification-layout{grid-template-columns:minmax(280px,.8fr) minmax(360px,1.2fr);gap:16px;display:grid}.notification-controls{align-content:start;gap:10px;display:grid}.notification-template-button{justify-self:start;margin-top:4px}.notification-editor{align-content:start;gap:12px;display:grid}.notification-editor-label{justify-content:space-between;align-items:center;gap:12px;display:flex}.notification-editor-label small{color:var(--muted);font-size:12px;font-weight:700}.notification-editor-label small.near-limit{color:var(--warning)}.notification-textarea{color:#d7e5e1;min-height:230px;font:13px/1.65 ui-monospace,Microsoft JhengHei,monospace}.notification-actions{margin-top:0}.admin-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;display:grid}.admin-form-grid .full{grid-column:1/-1}.admin-table select{min-width:140px}.borderless{border:0}.admin-contact-panel{overflow:hidden}.admin-contact-toolbar{background:var(--surface-soft);border-bottom:1px solid var(--line);grid-template-columns:minmax(260px,1fr) 190px max-content;align-items:end;gap:10px;padding:12px 14px;display:grid}.admin-contact-result{min-height:42px;color:var(--muted);border-left:1px solid var(--line);white-space:nowrap;justify-content:center;align-items:center;gap:5px;padding:0 12px;display:inline-flex}.admin-contact-result strong{color:var(--ink)}.admin-contact-list{display:grid}.admin-contact-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(180px,.85fr) minmax(190px,1fr) minmax(210px,1fr) 155px 42px;align-items:end;gap:10px;min-width:0;padding:11px 14px;display:grid}.admin-contact-row:hover{background:var(--surface-soft)}.admin-contact-row.inactive{opacity:.7}.admin-contact-person{align-items:center;gap:9px;min-width:0;min-height:42px;display:flex}.admin-contact-person>span:last-child{min-width:0}.admin-contact-person strong,.admin-contact-person small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.admin-contact-person small{color:var(--muted);font-size:11px}.contact-state{width:27px;height:27px;color:var(--muted);background:var(--field);border:1px solid var(--line);border-radius:50%;flex:0 0 27px;place-items:center;display:grid}.contact-state.active{color:#9de0bb;border-color:#438765}.admin-contact-field{gap:5px;min-width:0;display:grid}.admin-contact-field>span:first-child{color:var(--muted);font-size:11px;font-weight:800}.admin-contact-input{grid-template-columns:minmax(0,1fr) 38px;min-width:0;display:grid}.admin-contact-input input{border-radius:4px 0 0 4px;min-width:0}.admin-contact-input .icon-button{border-left:0;border-radius:0 4px 4px 0;width:38px;height:42px}.admin-contact-save{width:42px;height:42px}.admin-contact-meta{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:5px;min-width:0;padding-left:36px;display:flex}.admin-contact-meta>span{color:var(--muted);margin-right:3px;font-size:11px}.admin-contact-meta small{color:#cbd6d3;background:var(--field);border:1px solid var(--line);border-radius:3px;padding:2px 6px;font-size:10px}.audit-list{display:grid}.audit-row{border-bottom:1px solid var(--line);padding:11px 14px}.audit-row strong,.audit-row small{display:block}.audit-row small{color:var(--muted)}.snapshot-row{justify-content:space-between;align-items:center;gap:14px;display:flex}.snapshot-row>span{min-width:0}.danger-zone{background:#382125;border:2px solid #9d4c53}.import-preview{margin-top:16px}.row-valid{color:#8bd7ad;font-weight:800}.row-invalid{color:var(--danger);font-weight:800}.checksum{text-overflow:ellipsis;white-space:nowrap;max-width:320px;font-family:ui-monospace,monospace;font-size:12px;overflow:hidden}.import-controls{grid-template-columns:160px minmax(260px,1fr);gap:12px;margin-bottom:12px;display:grid}.import-textarea{white-space:pre;min-height:260px;font-family:ui-monospace,Microsoft JhengHei,monospace;font-size:13px}.week-lifecycle>.panel-heading{border-bottom:0;padding:0 0 14px}.week-actions{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.week-actions>div{border:1px solid var(--line);padding:16px}.week-actions p{color:var(--muted)}.week-danger{padding:16px}.week-danger h3{align-items:center;gap:7px;display:flex}.attendance-team-select{width:min(620px,100%)}.attendance-list{display:grid}.attendance-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:66px;padding:9px 16px;display:flex}.attendance-person{min-width:0}.attendance-person strong,.attendance-person small{display:block}.attendance-person small{color:var(--muted);font-size:12px}.attendance-row label{flex:0 0 140px;width:140px}.insights-chart{padding:8px 16px 16px;display:grid}.insight-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(190px,1fr) minmax(180px,2fr) 46px;align-items:center;gap:16px;min-height:68px;display:grid}.insight-row>span strong,.insight-row>span small{display:block}.insight-row>span small{color:var(--muted);font-size:11px}.insight-track,.gap-track{background:var(--field);border:1px solid var(--line);height:12px;display:block;overflow:hidden}.insight-track>span{background:var(--brand);height:100%;display:block}.analytics-grid{grid-template-columns:1.25fr .75fr;gap:16px;display:grid}.gap-trend{padding:8px 14px 14px;display:grid}.gap-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(150px,1fr) 1fr 1fr;align-items:center;gap:12px;min-height:76px;display:grid}.gap-row>div{grid-template-columns:38px minmax(70px,1fr) 20px;align-items:center;gap:6px;display:grid}.gap-row small{color:var(--muted)}.gap-track i{background:var(--indigo);height:100%;display:block}.gap-track.dark-knight i{background:var(--accent)}.job-distribution{padding:8px 14px 14px;display:grid}.job-distribution>div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:45px;display:flex}.job-distribution strong{color:var(--brand-text);font-size:19px}.contact-page{width:min(1380px,100% - 40px)}.contact-page-heading{align-items:center}.contact-page-heading>svg{color:var(--gold);flex:none}.contact-metrics{border:1px solid var(--line);background:var(--surface);grid-template-columns:repeat(4,1fr);margin-bottom:16px;display:grid}.contact-metrics>div{border-right:1px solid var(--line);align-content:center;gap:2px;min-height:88px;padding:12px 18px;display:grid}.contact-metrics>div:last-child{border-right:0}.contact-metrics strong{color:var(--brand-text);font-size:28px;line-height:1}.contact-metrics span{color:var(--muted);font-size:13px;font-weight:700}.contact-toolbar{background:var(--surface);border:1px solid var(--line);grid-template-columns:minmax(280px,1fr) 220px max-content;align-items:center;gap:10px;margin-bottom:16px;padding:12px;display:grid}.contact-result{min-height:42px;color:var(--muted);border-left:1px solid var(--line);white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.contact-result strong{color:var(--ink)}.contact-directory{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.contact-entry{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:7px;grid-template-rows:auto 1fr auto;min-width:0;display:grid;overflow:hidden}.contact-entry.missing{border-top-color:var(--warning)}.contact-entry.restricted{border-top-color:var(--line-strong)}.contact-entry-heading{border-bottom:1px solid var(--line);background:var(--surface-soft);justify-content:space-between;align-items:center;gap:12px;min-height:68px;padding:11px 13px;display:flex}.contact-handle{align-items:center;gap:10px;min-width:0;display:flex}.contact-handle>svg{color:var(--brand-text);flex:none}.contact-entry.missing .contact-handle>svg{color:var(--warning)}.contact-entry.restricted .contact-handle>svg{color:var(--muted)}.contact-handle span{min-width:0}.contact-handle strong,.contact-handle small{overflow-wrap:anywhere;display:block}.contact-handle strong{font-size:17px}.contact-handle small{color:var(--muted);font-size:12px}.contact-characters{background:var(--line);grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:1px;display:grid}.contact-character{background:var(--surface);border-left:3px solid var(--job-color);grid-template-columns:48px minmax(0,1fr);align-items:center;gap:9px;min-width:0;min-height:66px;padding:8px 10px;display:grid}.contact-character img{object-fit:cover;object-position:center 28%;border-radius:4px;width:48px;height:48px}.contact-character span{min-width:0}.contact-character strong,.contact-character small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.contact-character small{color:var(--muted);font-size:12px}.contact-teams{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px;min-height:45px;padding:8px 12px;display:flex}.contact-teams span{color:#cbd6d3;background:var(--field);border:1px solid var(--line);overflow-wrap:anywhere;border-radius:4px;max-width:100%;padding:3px 7px;font-size:11px;font-weight:700}.contact-empty{border:1px solid var(--line);background:var(--surface);grid-column:1/-1}.contact-gate{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--gold);grid-template-columns:44px minmax(0,1fr) max-content;align-items:center;gap:16px;min-height:180px;padding:24px;display:grid}.contact-gate>svg{color:var(--gold)}.contact-gate h2{margin-bottom:5px;font-size:21px}.contact-gate p{color:var(--muted);margin:0}.contact-metrics>div:last-child strong{overflow-wrap:anywhere;font-size:16px;line-height:1.3}.my-team-list{gap:18px;display:grid}.my-team{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:7px;overflow:hidden}.my-team-heading{background:var(--surface-soft);border-bottom:1px solid var(--line);grid-template-columns:112px minmax(0,1fr);align-items:center;gap:16px;min-height:92px;padding:9px 18px 9px 10px;display:grid}.my-team-heading>img{object-fit:cover;object-position:center;border-radius:4px;width:112px;height:72px}.my-team-heading h2{margin:0 0 3px;font-size:23px}.my-team-heading span{color:var(--muted);font-size:13px}.team-heading-label{align-items:center;gap:8px;display:flex}.team-heading-label .eyebrow{margin:0}.team-heading-label .team-scope{color:var(--ink);background:var(--field);border:1px solid var(--line);border-radius:4px;padding:2px 7px;font-size:10px;font-weight:800}.team-heading-label .team-scope.own{color:#10201d;background:var(--brand-text);border-color:var(--brand-text)}.team-heading-label .team-scope.linked{color:#211a0a;background:var(--gold);border-color:var(--gold)}.my-team-roster{display:grid}.my-team-member{border-bottom:1px solid var(--line);border-left:4px solid var(--job-color);grid-template-columns:28px 56px minmax(150px,1fr) minmax(210px,.8fr) 40px;align-items:center;gap:12px;min-width:0;min-height:78px;padding:9px 14px;display:grid}.my-team-member:last-child{border-bottom:0}.my-team-member.mine{background:#172d2b}.member-seat{width:27px;height:27px;color:var(--muted);background:var(--field);border:1px solid var(--line);border-radius:50%;place-items:center;font-size:11px;font-weight:800;display:grid}.my-team-member>img{object-fit:cover;object-position:center 28%;border-radius:4px;width:56px;height:56px}.member-character{min-width:0}.member-character>strong,.member-character>span{overflow-wrap:anywhere;display:block}.member-character>strong{font-size:16px}.member-character>strong small{color:#10201d;background:var(--brand-text);vertical-align:2px;border-radius:3px;margin-left:7px;padding:1px 5px;font-size:10px;display:inline-block}.member-character>span{color:var(--muted);font-size:12px}.member-contact{border-left:1px solid var(--line);grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding-left:14px;display:grid}.member-contact>svg{color:var(--brand-text)}.member-contact.missing>svg{color:var(--warning)}.member-contact.restricted>svg{color:var(--muted)}.member-contact strong,.member-contact small{overflow-wrap:anywhere;display:block}.member-contact small{color:var(--muted);font-size:11px}.member-contact small svg{vertical-align:-2px;margin-right:3px}.member-copy-placeholder{width:40px}.my-team-empty{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--brand);grid-template-columns:42px minmax(0,1fr);align-items:center;gap:16px;min-height:180px;padding:24px;display:grid}.my-team-empty>svg{color:var(--brand-text)}.my-team-empty h2{margin-bottom:5px;font-size:21px}.my-team-empty p{color:var(--muted);margin:0}.people-page{width:min(1380px,100% - 40px)}.people-page-heading{align-items:center}.people-page-heading>svg{color:var(--brand-text);flex:none}.people-metrics{background:var(--surface);border:1px solid var(--line);grid-template-columns:repeat(5,1fr);margin-bottom:18px;display:grid}.people-metrics>div{border-right:1px solid var(--line);align-content:center;gap:3px;min-height:88px;padding:13px 18px;display:grid}.people-metrics>div:last-child{border-right:0}.people-metrics strong{color:var(--brand-text);font-size:25px;line-height:1.1}.people-metrics span{color:var(--muted);font-size:12px;font-weight:700}.people-family-summary,.people-analysis,.people-roster-section{background:var(--surface);border:1px solid var(--line)}.people-family-summary{border-top:4px solid var(--gold);margin-bottom:18px}.people-section-heading{background:var(--surface-soft);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;min-height:70px;padding:12px 16px;display:flex}.people-section-heading h2{margin:0;font-size:20px}.people-section-heading .eyebrow{margin:0 0 2px}.people-section-heading>svg,.people-section-heading>span{color:var(--gold);flex:none}.people-section-heading>span{font-size:13px;font-weight:800}.family-summary-grid{grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.family-summary-grid>div{border-right:1px solid var(--line);grid-template-columns:9px minmax(0,1fr) max-content;align-items:center;gap:10px;min-width:0;min-height:82px;padding:12px;display:grid}.family-summary-grid>div:last-child{border-right:0}.family-summary-grid i{background:var(--family-color);border-radius:2px;width:9px;height:42px;display:block}.family-summary-grid span{min-width:0}.family-summary-grid strong,.family-summary-grid small{display:block}.family-summary-grid strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.family-summary-grid small{color:var(--muted);white-space:nowrap;font-size:10px}.family-summary-grid b{color:var(--ink);font-size:24px}.people-analysis-grid{grid-template-columns:minmax(0,1.45fr) minmax(340px,.75fr);align-items:start;gap:18px;margin-bottom:18px;display:grid}.people-analysis{border-top:4px solid var(--brand);min-width:0}.level-analysis{border-top-color:var(--accent)}.job-stat-list{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.job-stat-row{border-bottom:1px solid var(--line);border-left:4px solid var(--job-color);grid-template-columns:48px minmax(0,1fr) 34px;align-items:center;gap:10px;min-width:0;min-height:76px;padding:10px 12px;display:grid}.job-stat-row:nth-child(odd){border-right:1px solid var(--line)}.job-stat-row>img{object-fit:cover;object-position:center 28%;border-radius:4px;width:48px;height:48px}.job-stat-row>span{min-width:0}.job-stat-row strong,.job-stat-row small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.job-stat-row small{color:var(--muted);font-size:10px}.job-stat-row span>i{background:var(--field);height:4px;margin-top:7px;display:block;overflow:hidden}.job-stat-row span>i b{background:var(--job-color);height:100%;display:block}.job-stat-row>b{color:var(--brand-text);text-align:right;font-size:21px}.level-band-list{padding:8px 16px 14px;display:grid}.level-band-list>div{border-bottom:1px solid var(--line);grid-template-columns:82px minmax(70px,1fr) 30px;align-items:center;gap:10px;min-height:58px;display:grid}.level-band-list>div:last-child{border-bottom:0}.level-band-list span strong,.level-band-list span small{display:block}.level-band-list span small{color:var(--muted);font-size:10px}.level-band-list>div>i{background:var(--field);border:1px solid var(--line);height:9px;display:block;overflow:hidden}.level-band-list>div>i b{background:var(--accent);height:100%;display:block}.level-band-list em{color:var(--brand-text);text-align:right;font-style:normal;font-weight:900}.people-roster-section{border-top:4px solid var(--indigo)}.people-toolbar{border-bottom:1px solid var(--line);grid-template-columns:minmax(220px,1fr) 220px;gap:10px;padding:12px 14px;display:grid}.people-toolbar select{width:100%}.people-family-filter{background:var(--surface-soft);border-bottom:1px solid var(--line);scrollbar-width:thin;gap:6px;padding:10px 14px;display:flex;overflow-x:auto}.people-family-filter button{min-height:36px;color:var(--muted);background:var(--field);border:1px solid var(--line);cursor:pointer;border-radius:4px;flex:none;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:800;display:inline-flex}.people-family-filter button.active{color:var(--ink);border-color:var(--brand-text);background:#193d38}.people-family-filter i{border-radius:2px;width:8px;height:20px;display:block}.people-family-filter i.all{background:linear-gradient(to bottom, var(--brand) 0 34%, var(--gold) 34% 67%, var(--accent) 67%)}.people-family-filter small{color:var(--brand-text)}.people-roster{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.person-row{border-bottom:1px solid var(--line);border-left:4px solid var(--job-color);grid-template-columns:58px minmax(0,1fr) max-content;align-items:center;gap:11px;min-width:0;min-height:78px;padding:9px 13px;display:grid}.person-row:nth-child(odd){border-right:1px solid var(--line)}.person-row>img{object-fit:cover;object-position:center 28%;border-radius:4px;width:58px;height:58px}.person-row>span{min-width:0}.person-row strong,.person-row small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.person-row small{color:var(--muted);font-size:11px}.person-row>b{color:var(--brand-text);font-size:16px}.people-roster .empty-state{grid-column:1/-1;justify-content:center;align-items:center;gap:8px;min-height:150px;display:flex}@media (max-width:1100px){.header-inner{gap:12px}.brand-name{display:none}.hero-copy h1{font-size:52px}.hero-copy{width:min(570px,60%)}.raid-overview{grid-template-columns:280px minmax(180px,1fr)}.raid-overview-art{width:280px}.raid-overview-stats{border-top:1px solid var(--line);border-left:0;grid-column:1/-1;min-height:76px}.team-grid{grid-template-columns:1fr}.unassigned-grid{grid-template-columns:repeat(2,1fr)}.gathering-groups{grid-template-columns:1fr}.steps-grid{grid-template-columns:1fr 1fr}.step-item:nth-child(3){border-left:0;border-top:1px solid var(--line)}.step-item:nth-child(4){border-top:1px solid var(--line)}.admin-grid{grid-template-columns:1fr}.action-center-grid{grid-template-columns:1fr 1fr}.action-center-item:nth-child(2){border-right:0}.action-center-item:nth-child(-n+2){border-bottom:1px solid var(--line)}.analytics-grid,.contact-directory{grid-template-columns:1fr}.family-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.family-summary-grid>div:nth-child(3){border-right:0}.family-summary-grid>div:nth-child(-n+3){border-bottom:1px solid var(--line)}.people-analysis-grid{grid-template-columns:1fr}.admin-contact-row{grid-template-columns:minmax(180px,.8fr) minmax(180px,1fr) minmax(205px,1fr) 42px}.admin-contact-field.visibility{grid-column:2/4}.admin-contact-save{grid-area:1/4}}@media (max-width:820px){html{scroll-padding-top:60px}body{padding-top:60px}.site-header{min-height:60px}.header-inner{grid-template-columns:max-content minmax(0,1fr) max-content;gap:7px;width:100%;min-height:57px;padding:0 8px}.brand-mark{flex-basis:34px;width:34px;height:34px}.main-nav{height:57px}.main-nav a{padding:0 9px;font-size:13px}.header-register,.header-login{justify-content:center;width:42px;padding:0;font-size:0}.account-name{display:none}.modal-backdrop{align-items:end;padding:0}.login-modal,.dialog-panel{width:100%;max-height:calc(100dvh - 32px);padding-bottom:env(safe-area-inset-bottom);border-radius:8px 8px 0 0}.login-filters{grid-template-columns:1fr;padding:12px 14px}.login-character-list{padding:10px 14px 18px}.modal-heading{padding-left:16px}.home-hero{min-height:min(680px,100dvh - 96px)}.hero-backdrop img{object-position:center}.hero-shade{background:linear-gradient(#0715197d 0%,#07151966 54%,#07151973 100%)}.home-hero-inner{width:min(100% - 28px,680px)}.hero-copy{width:100%;padding:54px 0 58px}.hero-copy h1{font-size:44px}.hero-copy>p{font-size:16px}.home-section,.page-shell{width:min(100% - 28px,680px);padding:44px 0}.section-heading{align-items:flex-start}.section-heading h2,.page-heading h1{font-size:28px}.gathering-row{grid-template-columns:minmax(110px,1fr) 114px 56px 20px}.gathering-row .leader-state{grid-column:1/-1}.steps-band{width:100%;padding-left:14px;padding-right:14px}.steps-grid{grid-template-columns:1fr}.step-item{min-height:190px}.step-item+.step-item{border-left:0;border-top:1px solid var(--line)}.form-layout,.form-grid,.character-workspace,.admin-layout,.character-edit-grid,.admin-form-grid,.week-actions,.notification-layout,.admin-login-panel{grid-template-columns:1fr}.admin-login-intro{border-right:0;border-bottom:1px solid var(--line);min-height:210px;padding:24px}.admin-login-form{padding:24px}.editing-panel,.admin-nav,.register-preview{position:static}.board-shell{width:100%;padding:18px 0 44px}.board-toolbar{padding:0 14px;display:block}.toolbar-controls{grid-template-columns:1fr 1fr 42px;margin-top:12px}.toolbar-controls .search-field{grid-column:1/-1}.toolbar-controls .job-filter{grid-column:1}.toolbar-controls .character-filter{grid-column:2}.toolbar-controls .team-filter{grid-column:1/3}.toolbar-controls .icon-button{grid-area:2/3}.metrics-row{grid-template-columns:1fr 1fr;padding:0 14px}.mobile-board-options{background:var(--surface);border:1px solid var(--line);flex-wrap:wrap;justify-content:flex-start;margin:0 14px 12px;padding:8px 10px}.dungeon-tabs{border-left:1px solid var(--line);margin-left:14px;display:flex}.dungeon-tab{flex:0 0 70vw;min-width:70vw}.raid-overview{grid-template-columns:132px minmax(0,1fr);margin:0 14px 12px}.raid-overview-art{width:132px;height:128px}.raid-overview-copy{padding:12px 14px}.raid-overview-copy h2{font-size:22px}.raid-overview-stats{min-height:68px}.raid-overview-stats span{min-width:0;padding:10px 6px}.raid-overview-stats strong{font-size:21px}.board-layout{flex-direction:column-reverse;gap:12px;padding:0 14px;display:flex}.character-pool{z-index:30;border-radius:7px 7px 0 0;width:calc(100% + 28px);max-height:300px;margin-left:-14px;position:sticky;top:auto;bottom:0;box-shadow:0 -8px 20px #20303829}.character-list{display:flex;overflow-x:auto}.character-card{width:250px;min-width:250px}.seat-grid,.unassigned-grid{grid-template-columns:1fr}.data-toolbar{grid-template-columns:1fr 1fr}.data-toolbar .search-field{grid-column:1/-1}.desktop-signup-table{display:none}.signup-mobile-list{gap:10px;display:grid}.action-center-list{grid-template-columns:1fr}.action-center-list>a:nth-child(odd){border-right:0}.insight-row{grid-template-columns:minmax(125px,1fr) minmax(90px,1.3fr) 34px;gap:8px}.gap-row{grid-template-columns:1fr;gap:7px;padding:10px 0}.gap-row>div{grid-template-columns:38px minmax(90px,1fr) 24px}.admin-metrics{grid-template-columns:1fr 1fr}.admin-nav{width:100%;max-width:100%;display:flex;overflow-x:auto}.admin-nav a{border-right:1px solid var(--line);flex:none}.admin-form-grid .full{grid-column:auto}.admin-contact-toolbar{grid-template-columns:1fr}.admin-contact-result{border-top:1px solid var(--line);border-left:0;justify-content:flex-start}.admin-contact-row{grid-template-columns:1fr 42px;align-items:end}.admin-contact-person{grid-column:1}.admin-contact-save{grid-area:1/2}.admin-contact-field,.admin-contact-field.visibility{grid-column:1/-1}.admin-contact-meta{grid-column:1/-1;padding-left:0}.import-controls{grid-template-columns:1fr}.history-selector{flex-direction:column;align-items:stretch}.contact-page,.people-page{width:min(100% - 28px,680px)}.people-metrics{grid-template-columns:repeat(2,1fr)}.people-metrics>div{border-bottom:1px solid var(--line);min-height:74px}.people-metrics>div:nth-child(2n){border-right:0}.people-metrics>div:last-child{border-bottom:0;grid-column:1/-1}.job-stat-list,.people-roster{grid-template-columns:1fr}.job-stat-row:nth-child(odd),.person-row:nth-child(odd){border-right:0}.people-toolbar{grid-template-columns:1fr}.contact-metrics{grid-template-columns:1fr 1fr}.contact-metrics>div{border-bottom:1px solid var(--line);min-height:76px}.contact-metrics>div:nth-child(2){border-right:0}.contact-metrics>div:nth-last-child(-n+2){border-bottom:0}.contact-toolbar{grid-template-columns:1fr}.contact-result{border-top:1px solid var(--line);border-left:0;justify-content:flex-start}.contact-gate{grid-template-columns:38px minmax(0,1fr)}.contact-gate .button{grid-column:1/-1}.my-team-member{grid-template-columns:27px 52px minmax(0,1fr) 40px;gap:9px;padding:9px 10px}.my-team-member>img{width:52px;height:52px}.member-contact{border-top:1px solid var(--line);border-left:0;grid-column:2/4;padding:8px 0 0}.my-team-member>.icon-button,.member-copy-placeholder{grid-area:1/4/3}}@media (max-width:390px){.main-nav a{padding:0 7px}.hero-copy h1{font-size:38px}.hero-actions{grid-template-columns:1fr;display:grid}.hero-facts>span{padding-right:8px}.hero-facts>span+span{padding-left:10px}.gathering-title img{width:96px;height:44px}.gathering-row{grid-template-columns:minmax(100px,1fr) 105px 20px}.gathering-row>span:nth-of-type(2){grid-row:2}.metrics-row,.admin-metrics{grid-template-columns:1fr 1fr}.metric{padding:8px 10px}.toolbar-controls{grid-template-columns:1fr 42px}.toolbar-controls .job-filter{grid-column:1}.toolbar-controls .character-filter,.toolbar-controls .team-filter{grid-column:1/-1}.toolbar-controls .icon-button{grid-area:2/2}.raid-overview{grid-template-columns:105px minmax(0,1fr)}.raid-overview-art{width:105px}.contact-characters{grid-template-columns:1fr}.my-team-heading{grid-template-columns:90px minmax(0,1fr);gap:11px;padding-right:10px}.my-team-heading>img{width:90px;height:64px}.my-team-heading h2{font-size:20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
