@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,500;9..144,600&display=swap";:root{--paper:#171a19;--ink:#ece8de;--muted:#9a9d96;--muted-light:#6e756f;--line:#303633;--coral:#bd7664;--coral-deep:#d4937f;--teal:#6f9e96;--teal-deep:#8db8ae;--gold:#a99a70;--gold-deep:#c0aa73;--body:"DM Sans", sans-serif;--display:"Fraunces", Georgia, serif;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{background:radial-gradient(circle at 90% 0%, #302b27 0, transparent 28rem), radial-gradient(circle at 10% 35%, #202a27 0, transparent 32rem), var(--paper);min-width:320px;margin:0}button,a{font-family:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--teal);outline-offset:3px}.header-save-button{color:var(--paper);background:var(--coral);border:1px solid var(--coral);cursor:pointer;font:700 10px var(--body);margin-right:10px;padding:9px 12px}.header-save-button:hover{background:var(--coral-deep)}.save-toast{z-index:20;max-width:min(420px,100vw - 40px);color:var(--paper);background:var(--teal-deep);font:600 12px var(--body);align-items:center;gap:18px;padding:13px 15px;display:flex;position:fixed;bottom:28px;right:28px;box-shadow:0 14px 30px #0000004d}.save-toast.error{background:var(--coral-deep)}.save-toast button{color:inherit;cursor:pointer;font:700 14px var(--body);background:0 0;border:0;padding:0}.app-shell{max-width:1536px;margin:0 auto;padding:0 44px 64px}.login-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{border:1px solid var(--line);background:#1d211fe0;width:min(100%,510px);padding:48px;position:relative;box-shadow:0 24px 80px #0000004d}.login-brand{margin-bottom:78px}.login-panel h1{margin-bottom:18px;font-size:clamp(48px,8vw,76px)}.login-copy{max-width:360px;color:var(--muted);font:14px/1.55 var(--body);margin-bottom:30px}.discord-login-button{min-height:48px;font:700 12px var(--body);border:1px solid #5865f2;justify-content:center;align-items:center;text-decoration:none;transition:background .2s;display:flex;color:#fff!important;background:#5865f2!important}.discord-login-button:hover{background:#4752c4!important}.admin-login{border-top:1px solid var(--line);margin-top:64px;padding-top:18px}.login-secondary{color:var(--muted);cursor:pointer;font:600 11px var(--body);background:0 0;border:0;padding:0}.admin-login form{gap:10px;margin-top:16px;display:grid}.admin-login label{color:var(--muted);font:10px var(--body);text-transform:uppercase;letter-spacing:.08em;gap:6px;display:grid}.admin-login input{color:var(--ink);border:1px solid var(--line);font:14px var(--body);background:#171a19;padding:11px}.admin-submit{min-height:40px;color:var(--paper);background:var(--coral);border:1px solid var(--coral);cursor:pointer;font:700 11px var(--body)}.admin-submit:disabled{opacity:.6;cursor:wait}.login-error{color:var(--coral-deep);font:11px var(--body);margin:0}.login-loading{color:var(--muted);font:13px var(--body)}.topbar{z-index:8;border-bottom:1px solid var(--line);background:#171a19f0;align-items:center;gap:24px;min-height:64px;display:flex;position:sticky;top:0}.brand{color:var(--ink);font:700 19px/1 var(--display);letter-spacing:-.03em;align-items:center;gap:10px;text-decoration:none;display:flex}.brand-mark{object-fit:cover;border-radius:8px;width:29px;height:29px;display:block}.header-history-button{width:22px;height:36px;color:var(--ink);cursor:pointer;font:700 18px/1 var(--body);background:0 0;border:0;padding:0}.topbar>.header-history-button:first-child{margin-left:6px}.header-history-button:hover{color:var(--coral-deep)}.header-history-button:focus-visible{outline:2px solid var(--coral);outline-offset:2px}.topnav{flex:1;gap:31px;display:flex}.topnav a,.profile-button,.text-button{color:var(--muted);font:600 12px/1 var(--body);letter-spacing:.04em;text-decoration:none}.topnav a{border-bottom:2px solid #0000;padding:23px 0 21px}.topnav a.active,.topnav a:hover{color:var(--ink);border-bottom-color:var(--coral)}.profile-button{cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;padding:7px;display:flex}.avatar{width:29px;height:29px;color:var(--ink);background:var(--gold);font:700 12px/1 var(--display);border-radius:8px;place-items:center;display:grid}.discord-avatar{color:#fff;background:#5865f2;border-radius:9px;width:35px;height:35px}.discord-icon{fill:currentColor;width:24px;height:24px}.profile-menu{z-index:2;min-width:180px;color:var(--muted);border:1px solid var(--line);font:11px var(--body);background:#222724;gap:7px;padding:15px;display:grid;position:absolute;top:68px;right:0;box-shadow:0 16px 30px #00000040}.profile-menu strong{color:var(--ink);font-size:13px}.profile-menu label{color:var(--muted);font:10px var(--body);gap:5px;display:grid}.profile-menu input:not([type=checkbox]){width:100%;color:var(--ink);border:1px solid var(--line);font:12px var(--body);background:#171a19;padding:6px}.profile-menu span,.profile-menu small{color:var(--muted);font:10px/1.35 var(--body)}.profile-menu small{color:var(--muted-light)}.campaign-toggle{grid-template-columns:auto 1fr;align-items:center;gap:7px!important;display:flex!important}.campaign-toggle input{accent-color:var(--coral)}.logout-button{width:fit-content;color:var(--coral-deep);cursor:pointer;font:600 11px var(--body);background:0 0;border:0;padding:0}.profile-anchor{position:relative}.profile-edit-button{width:fit-content;color:var(--coral-deep);cursor:pointer;font:600 11px var(--body);background:0 0;border:0;padding:0}.header-save-button{color:var(--paper);background:var(--coral);border:1px solid var(--coral);cursor:pointer;font:700 10px var(--body);padding:9px 12px}.login-modal{z-index:10;background:#080a09cc;position:fixed;inset:0;overflow:auto}.login-modal>div{min-height:100%}.login-modal .login-shell{min-height:100vh}.profile-view{padding:62px 0 30px}.profile-form{border:1px solid var(--line);background:#1d211f;gap:18px;max-width:620px;margin-top:1px;padding:28px;display:grid}.profile-form>label{color:var(--muted);font:10px var(--body);letter-spacing:.08em;text-transform:uppercase;gap:7px;display:grid}.profile-form input:not([type=checkbox]){color:var(--ink);border:1px solid var(--line);font:14px var(--body);background:#171a19;padding:11px}.profile-campaign{border-top:1px solid var(--line);gap:10px;margin-top:10px;padding-top:22px;display:grid}.profile-campaign h2{font-size:22px}.profile-campaign p:not(.eyebrow){color:var(--muted);font:12px/1.5 var(--body);margin:0}.profile-campaign .campaign-toggle{color:var(--ink);font:600 12px var(--body);align-items:center;gap:8px;display:flex}.locked-panel{color:var(--muted);border:1px dashed var(--line);font:12px var(--body);background:#171a19;padding:24px}.character-profile{border-top:1px solid var(--line);gap:12px;padding-top:18px;display:grid}.character-profile-preview{align-items:center;gap:12px;display:flex}.character-profile-preview>div{gap:4px;display:grid}.character-profile-preview span{color:var(--muted);font:11px var(--body)}.file-picker{color:var(--muted);font:10px var(--body);text-transform:uppercase;letter-spacing:.08em;gap:6px;display:grid}.file-picker input{background:0 0!important;border:0!important;padding:8px 0!important;font-size:11px!important}.avatar-image{object-fit:cover}.profile-actions{border-top:1px solid var(--line);align-items:center;gap:14px;padding-top:18px;display:flex}.profile-actions span{color:var(--teal-deep);font:11px var(--body)}.leave-campaign-button{width:fit-content;color:var(--coral-deep);border:1px solid var(--coral-deep);cursor:pointer;font:700 10px var(--body);background:0 0;padding:9px 12px}.profile-muted{color:var(--muted-light);font:11px var(--body)}.campaign-membership-list,.campaign-application-status{background:var(--line);border:1px solid var(--line);gap:1px;display:grid}.campaign-membership{background:#222724;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:13px;display:grid}.campaign-membership>div{gap:4px;display:grid}.campaign-membership strong{color:var(--ink);font:600 13px var(--body)}.campaign-membership span,.campaign-membership small{color:var(--muted);font:11px var(--body)}.campaign-membership small{color:var(--muted-light)}.campaign-membership b,.campaign-application-status b{color:var(--teal-deep);font:700 9px var(--body);white-space:nowrap;background:#6f9e961f;padding:5px 8px}.campaign-application{gap:8px;margin-top:14px;display:grid}.campaign-application label,.campaign-application-status>strong{color:var(--muted-light);font:700 9px var(--body);letter-spacing:.1em;text-transform:uppercase}.campaign-application>div{gap:8px;display:flex}.campaign-application select{min-width:0;color:var(--ink);border:1px solid var(--line);font:12px var(--body);background:#171a19;flex:1;padding:10px}.campaign-application .detail-save:disabled{color:var(--muted-light);border-color:var(--line);cursor:not-allowed;background:#252b28}.campaign-application-status{margin-top:14px}.campaign-application-status>strong{background:#222724;padding:12px 13px 2px}.campaign-application-status span{color:var(--muted);font:11px var(--body);background:#222724;grid-template-columns:1fr auto;align-items:center;gap:14px;padding:10px 13px;display:grid}.member-note strong{color:var(--coral-deep)!important}.campaign-heading-actions{align-items:center;gap:18px;display:flex}.admin-view{padding:62px 0 30px}.admin-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:1fr 1fr;gap:1px;margin-top:1px;display:grid}.view-as-picker{color:var(--muted);font:10px var(--body);letter-spacing:.08em;text-transform:uppercase;gap:7px;margin-top:26px;display:grid}.view-as-picker select{max-width:260px;color:var(--ink);border:1px solid var(--line);font:13px var(--body);background:#171a19;padding:10px}.event-detail-view{padding:46px 0 30px}.event-detail-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-bottom:18px;display:flex}.event-detail-hero{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:30px;padding:48px 0 42px;display:flex}.event-detail-hero h1{max-width:none;margin-bottom:18px;font-size:clamp(46px,7vw,82px)}.event-detail-date{border-left:3px solid var(--coral);background:#1d211f;gap:8px;min-width:190px;padding:18px;display:grid}.event-detail-date strong{color:var(--ink);font:500 25px var(--display)}.event-detail-date span{color:var(--muted);font:12px var(--body)}.event-detail-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:1fr 1fr;gap:1px;margin-top:1px;display:grid}.event-detail-grid .campaign-section{min-height:180px}.event-detail-grid .campaign-section h2{margin-bottom:12px}.event-detail-grid .campaign-section>p:not(.eyebrow){color:var(--muted);font:13px/1.55 var(--body)}.event-timezone{color:var(--muted-light)!important;font-size:10px!important}.attendee-section{grid-column:1/-1}.attendee-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 28px;margin-top:18px;display:grid}.attendee{color:var(--ink);font:12px var(--body);align-items:flex-start;gap:9px;display:flex}.attendee>div{gap:3px;display:grid}.attendee strong{color:var(--ink);font:600 12px var(--body)}.attendee span:not(.avatar){color:var(--muted);font:12px var(--body)}.attendee small{color:var(--muted-light);font:10px var(--body)}.attendee .avatar{flex:0 0 25px;width:25px;height:25px;font-size:10px}.event-recap,.event-journal{grid-column:1/-1}.event-recap p:not(.eyebrow),.event-journal p:not(.eyebrow){max-width:680px}.detail-editor{width:min(100%,760px);min-height:110px;color:var(--ink);border:1px solid var(--line);resize:vertical;font:13px/1.55 var(--body);background:#171a19;margin:12px 0;padding:12px;display:block}.detail-save{color:var(--paper);background:var(--coral);border:1px solid var(--coral);cursor:pointer;font:700 10px var(--body);padding:9px 12px}.private-note{color:var(--muted-light)!important;font-size:11px!important}.event-journal{background:#202822!important}.recap-actions{align-items:end;gap:18px;display:flex}.recap-gallery{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:20px;display:grid}.recap-gallery img{aspect-ratio:4/3;object-fit:cover;border:1px solid var(--line);width:100%;display:block}.scratchpad-section{border:1px solid var(--line);background:#1d211f;margin-top:28px;padding:28px}.scratchpad-heading{justify-content:space-between;align-items:start;gap:24px;display:flex}.scratchpad-heading h2{margin-bottom:10px}.scratchpad-heading p:not(.eyebrow){color:var(--muted);font:12px/1.5 var(--body);margin:0}.scratchpad-toolbar{flex-wrap:wrap;align-items:end;gap:12px;margin:24px 0 14px;display:flex}.scratchpad-note-input{min-width:260px;color:var(--ink);border:1px solid var(--line);font:12px var(--body);background:#171a19;flex:1;padding:10px}.scratchpad-clear{color:var(--muted);border:1px solid var(--line);cursor:pointer;font:700 10px var(--body);background:0 0;padding:9px 12px}.scratchpad-canvas{border:1px solid var(--line);cursor:crosshair;touch-action:none;background:#171a19;width:100%;min-height:280px;display:block}.intro{justify-content:space-between;align-items:end;padding:76px 0 64px;display:flex}.eyebrow{color:var(--coral-deep);font:700 10px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;margin:0 0 12px}h1,h2,p{margin-top:0}h1{max-width:620px;color:var(--ink);font:500 clamp(48px, 6.5vw, 86px)/.94 var(--display);letter-spacing:-.065em;margin-bottom:18px}h1 em{color:var(--coral);font-style:normal}.intro-copy{max-width:400px;color:var(--muted);font:16px/1.55 var(--body)}.discord-status{border:1px solid var(--line);background:#252a27b8;align-items:center;gap:14px;min-width:290px;padding:16px 18px;display:flex}.status-dot{background:var(--teal);border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 4px #1c8b801f}.discord-status div{flex:1;gap:4px;display:grid}.discord-status strong{color:var(--ink);font:700 12px/1.2 var(--body)}.discord-status span{color:var(--muted);font:11px/1.2 var(--body)}.discord-status b{color:var(--teal-deep);font-weight:700}.discord-status button{color:var(--muted);letter-spacing:2px;cursor:pointer;background:0 0;border:0}.workspace-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);display:grid}.calendar-panel{border-right:1px solid var(--line);padding:36px 42px 30px 0}.events-panel{padding:36px 0 30px 42px}.calendar-list-section{border-bottom:1px solid var(--line);margin-bottom:34px;padding-bottom:30px}.section-heading{justify-content:space-between;align-items:end;margin-bottom:28px;display:flex}h2{color:var(--ink);font:500 28px/1 var(--display);letter-spacing:-.04em;margin:0}h2 span{color:var(--muted-light)}.calendar-actions{align-items:center;gap:7px;display:flex}.campaign-picker{color:var(--muted);font:10px var(--body);text-transform:uppercase;letter-spacing:.08em;gap:5px;display:grid}.campaign-picker select{min-width:190px;color:var(--ink);border:1px solid var(--line);font:12px var(--body);background:#252b28;padding:8px 28px 8px 9px}.calendar-actions button{width:30px;height:30px;color:var(--muted);border:1px solid var(--line);cursor:pointer;background:#1d211f;place-items:center;display:grid}.calendar-actions button:hover{color:var(--ink);border-color:var(--ink)}.calendar-actions .primary-button{width:auto;height:36px;color:var(--paper);background:var(--coral);border-color:var(--coral);font:700 11px var(--body);margin-left:11px;padding:0 15px}.calendar-actions .primary-button:disabled{color:var(--muted-light);border-color:var(--line);cursor:not-allowed;background:#252b28}.calendar-grid{grid-template-columns:repeat(7,1fr);display:grid}.calendar-labels{color:var(--muted-light);font:700 10px/1 var(--body);letter-spacing:.1em;text-align:center;text-transform:uppercase}.days-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);margin-top:13px}.day-cell{aspect-ratio:1.25;color:var(--muted);text-align:left;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font:600 13px var(--body);cursor:pointer;background:#23282585;padding:11px;position:relative}.day-cell:hover,.day-cell.selected{color:var(--ink);background:#302824}.day-cell.weekend{background:#1b201ecc}.day-cell.past{color:#5f6762;background:#151817}.day-cell.past:hover{color:#7d867f;background:#1b201d}.day-cell.future{color:#d8d9d1;background:#252b28}.day-cell.future:hover{background:#303a35}.day-cell.selected{color:#f2eee4;box-shadow:inset 0 0 0 2px var(--coral);background:#3b302b}.day-cell.selected:hover{background:#493831}.day-cell:disabled{cursor:default;opacity:.35}.day-cell:disabled:hover{background:#23282585}.day-unavailable-count{color:#d95656;font:700 11px var(--body);position:absolute;top:7px;right:10px}.day-marker{border-radius:1px;height:4px;position:absolute;bottom:10px;left:10px;right:10px}.coral-marker,.no-response-marker{background:var(--coral)}.teal-marker,.accepted-marker{background:#6fbe72}.gold-marker,.tentative-marker,.vote-marker{background:#d7b45a}.session-zero-marker{background:#5d9be8}.declined-marker,.unavailable-marker{background:#d95656}.calendar-footer{color:var(--muted);font:11px var(--body);flex-wrap:wrap;gap:10px 18px;margin-top:22px;display:flex}.vote-status{color:var(--teal-deep);font:11px var(--body);margin:15px 0 0}.calendar-footer span{align-items:center;gap:7px;display:flex}.legend-dot{border-radius:50%;width:6px;height:6px}.availability-panel{border-top:1px solid var(--line);margin-top:28px;padding-top:24px}.availability-panel h2{margin-bottom:8px}.availability-panel>p:not(.eyebrow):not(.vote-status){max-width:520px;color:var(--muted);font:12px/1.5 var(--body);margin:0 0 14px}.availability-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.availability-actions input{color:var(--ink);border:1px solid var(--line);font:12px var(--body);background:#171a19;padding:9px}.unavailable-date-list{flex-wrap:wrap;gap:7px;margin-top:14px;display:flex}.unavailable-date{color:var(--ink);cursor:pointer;font:11px var(--body);background:#d956561f;border:1px solid #d95656;padding:7px 9px}.unavailable-date span{color:var(--muted);margin-left:5px}.compact-heading{margin-bottom:20px}.compact-heading h2{font-size:26px}.text-button{color:var(--coral-deep);cursor:pointer;background:0 0;border:0;padding:5px 0}.text-button:hover{text-decoration:underline}.event-list{gap:9px;display:grid}.event-confirmed{color:var(--muted-light);font:10px/1.35 var(--body)}.event-signup-status{width:fit-content;font:700 9px var(--body);letter-spacing:.04em;border:1px solid;padding:4px 7px}.event-signup-status.signup-accepted{color:#6fc7a0;border-color:#6fc7a0}.event-signup-status.signup-tentative,.event-signup-status.signup-no-response{color:#d4a94a;border-color:#d4a94a}.event-signup-status.signup-declined{color:#e2684f;border-color:#e2684f}.campaign-view{padding:62px 0 30px}.campaign-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;padding-bottom:34px;display:flex}.campaign-heading h1{max-width:none;margin:0;font-size:clamp(42px,6vw,72px)}.campaign-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:1.2fr .8fr;gap:1px;margin-top:1px;display:grid}.campaign-section{background:#1d211f;min-height:190px;padding:28px}.campaign-section h2{margin-bottom:16px}.campaign-section p:not(.eyebrow){max-width:560px;color:var(--muted);font:14px/1.6 var(--body)}.campaign-blurb{min-height:240px}.campaign-setting{gap:5px;margin-top:24px;display:grid}.campaign-setting strong{color:var(--coral-deep);font:700 10px var(--body);letter-spacing:.1em;text-transform:uppercase}.campaign-wide{grid-column:1/-1}.person-row,.player-row,.history-row,.history-header{align-items:center;gap:16px;display:grid}.person-row{border-top:1px solid var(--line);grid-template-columns:1fr auto auto;padding-top:14px}.person-row span,.player-row span,.history-row span{color:var(--muted);font:11px var(--body)}.person-row b{color:var(--teal-deep);font:700 9px var(--body);background:#6f9e961f;padding:5px 8px}.player-list{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;display:grid}.player-row{border:1px solid var(--line);background:#222724;grid-template-rows:1fr auto;min-width:0;min-height:118px;padding:16px;display:grid}.player-card-content{grid-template-columns:auto minmax(0,1fr);align-content:start;gap:4px 12px;min-width:0;display:grid}.player-identity,.player-character{gap:4px;min-width:0;display:grid}.player-character{grid-column:2;margin-top:4px}.player-row>div{gap:4px;display:grid}.player-row strong{color:var(--ink);font:600 13px var(--body)}.player-row span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.player-actions{justify-content:flex-end;align-items:center;gap:8px;min-height:30px;margin-top:12px;display:flex!important}.player-icon-button{width:28px;height:28px;color:var(--coral-deep);cursor:pointer;font:20px/1 var(--body);background:0 0;border:1px solid #0000;place-items:center;padding:0;display:grid}.player-icon-button:hover,.player-icon-button:focus-visible{color:var(--paper);border-color:var(--coral-deep)}.player-remove-button{font-size:22px}.history-table{background:var(--line);gap:1px;display:grid}.history-header,.history-row{background:#222724;grid-template-columns:1fr 1fr 2fr;padding:12px 14px}.history-header{color:var(--muted-light);font:700 9px var(--body);letter-spacing:.1em;text-transform:uppercase}.history-row strong{color:var(--ink);font:600 12px var(--body)}.event-card{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;padding:14px 14px 14px 0;display:flex;position:relative}.event-card:hover,.event-card.selected-event{border-color:var(--line);background:#272c29c7}.event-accent{background:var(--coral);flex:0 0 3px;width:3px;margin-right:14px}.event-accent.green{background:#6fc7a0}.event-accent.yellow{background:#d4a94a}.event-accent.red{background:#e2684f}.vote-marker{background:#d7b45a}.vote-conflict-panel{background:#d956561a;border:1px solid #d95656;gap:10px;margin:18px 0;padding:14px;display:grid}.vote-conflict-panel>p:not(.eyebrow){color:var(--muted);font:12px/1.4 var(--body);margin:0}.vote-conflict{color:var(--ink);font:12px var(--body);justify-content:space-between;gap:12px;display:flex}.vote-conflict span{color:var(--muted);text-align:right}.vote-conflict-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.vote-conflict-actions .danger-button{cursor:pointer;font:700 10px var(--body);border:1px solid #d95656;padding:9px 12px}.day-cell.vote-day{border-color:#d7b45a}.day-cell.unavailable-day,.day-cell.vote-day.unavailable-day{border-color:#d95656}.vote-date-list,.vote-people-list{gap:10px;display:grid}.vote-date-result{border:1px solid var(--line);background:#222724;align-items:center;gap:12px;padding:12px;display:flex}.vote-date-result>span{flex:1;gap:4px;display:grid}.vote-date-result small,.vote-people-list small{color:var(--muted);font:11px var(--body)}.vote-date-result b{color:#80bd75;font:700 11px var(--body)}.vote-date-result.unanimous-vote{background:#80bd751a;border-color:#80bd75}.vote-people-list strong{color:var(--coral-deep);font:700 10px var(--body);letter-spacing:.1em;text-transform:uppercase;margin-top:8px}.vote-people-list span{color:var(--ink);font:13px var(--body)}.vote-table-wrap{margin-top:22px;overflow-x:auto}.vote-table{border-collapse:collapse;width:100%;min-width:620px;font:12px var(--body);background:#222724}.vote-table th,.vote-table td{border:1px solid var(--line);text-align:center;min-width:88px;padding:10px}.vote-table thead th{color:var(--ink);font-weight:600}.vote-table thead th:first-child,.vote-table tbody th{min-width:150px;color:var(--ink);text-align:left}.vote-table tbody th{gap:4px;display:grid}.vote-table tbody th small{color:var(--muted);font-weight:400}.vote-person-pending{background:#d7b45a47}.vote-person-accepted{background:#80bd7533}.vote-person-none{background:#c2645940}.day-none>th{background:#c2645933}.day-split>th{background:#d7b45a33}.day-all>th{background:#80bd7533}.vote-cell{width:100%;min-height:30px;color:var(--ink);cursor:pointer;font:11px var(--body);background:0 0;border:1px solid #0000}.vote-cell:disabled{cursor:default}.vote-cell:not(:disabled):hover,.vote-cell:not(:disabled):focus-visible{border-color:var(--coral)}.vote-yes{color:#80bd75;background:#80bd7533}.vote-no{color:#c26459;background:#c2645938}.vote-pending{color:#d7b45a;background:#d7b45a33}.vote-detail-actions,.vote-confirm-list{flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px;display:flex}.vote-detail-actions>span{color:var(--muted);font:11px var(--body);margin-right:auto}.admin-user-table{overflow-x:auto}.admin-campaign-records .admin-user-table .history-header,.admin-campaign-records .admin-user-table .admin-user-row{grid-template-columns:minmax(150px,1.4fr) 150px repeat(4,minmax(100px,.8fr)) minmax(180px,1.5fr);min-width:1120px}.admin-campaign-records .admin-user-table .history-header>span{white-space:nowrap}.admin-user-row{cursor:default}.admin-user-row select{max-width:150px;color:var(--ink);border:1px solid var(--line);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:12px var(--body);background:#171a19;padding:6px 8px}.admin-user-row span:last-child{flex-wrap:wrap;gap:8px;display:flex}.admin-user-actions{align-items:center}.danger-text{color:#d97868}.event-card-content{flex:1;gap:6px;display:grid}.event-date,.event-meta{color:var(--muted);font:10px var(--body)}.event-date b{color:var(--muted-light);margin-left:8px;font-weight:500}.event-card strong{color:var(--ink);font:600 16px/1.1 var(--display);letter-spacing:-.02em}.event-meta i{background:var(--muted-light);border-radius:50%;width:3px;height:3px;margin:0 7px 2px;display:inline-block}.event-status{width:fit-content;font:700 9px var(--body);letter-spacing:.04em;padding:4px 7px}.event-status.open{color:var(--teal-deep);background:#1c8b801a}.event-status.nearly-full{color:var(--coral-deep);background:#e2684f1a}.event-status.draft{color:#8e6b28;background:#d4a94a29}.event-status.signup-feasibility.minimum-met{color:#6fc7a0;background:#6fc7a01a}.event-status.signup-feasibility.pending-signups{color:#d4a94a;background:#d4a94a1a}.event-status.signup-feasibility.minimum-not-met{color:#e2684f;background:#e2684f1a}.event-arrow{color:var(--muted-light);font:15px var(--body);align-self:center}.setup-strip{justify-content:space-between;gap:40px;padding:54px 0;display:flex}.setup-strip h2{max-width:350px;font-size:34px;line-height:1.02}.setup-points{width:52%;color:var(--muted);font:12px/1.35 var(--body);grid-template-columns:repeat(3,minmax(125px,1fr));align-items:center;gap:22px;display:grid}.setup-points span{border-top:1px solid var(--line);gap:16px;padding-top:12px;display:grid}.setup-points b{color:var(--coral);font:700 10px var(--body);letter-spacing:.1em}.modal-backdrop{z-index:5;background:#080a09b8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.new-night-modal{width:min(100%,420px);color:var(--muted);border:1px solid var(--line);background:#222724;padding:30px;position:relative;box-shadow:0 24px 60px #0006}.new-night-modal h2{color:var(--ink);margin-bottom:12px}.new-night-modal p:not(.eyebrow){max-width:300px;font:13px/1.5 var(--body);margin-bottom:22px}.modal-close{color:var(--muted);cursor:pointer;font:18px var(--body);background:0 0;border:0;position:absolute;top:15px;right:15px}.modal-action{min-height:36px;color:var(--paper);background:var(--coral);border:1px solid var(--coral);cursor:pointer;font:700 11px var(--body);padding:0 14px}@media (width<=820px){.app-shell{padding:0 20px 36px}.topbar{gap:20px}.topnav{gap:16px}.topnav a{padding-top:31px}.profile-button>span:not(.avatar){display:none}.intro{gap:36px;padding:55px 0 42px;display:grid}.discord-status{min-width:0}.workspace-grid{display:block}.calendar-panel{border-right:0;border-bottom:1px solid var(--line);padding:30px 0}.events-panel{padding:30px 0}.setup-strip{gap:30px;display:grid}.setup-points{width:100%}.admin-grid{grid-template-columns:1fr}.event-detail-hero{align-items:start;display:grid}.event-detail-date{width:100%;min-width:0}.scratchpad-heading{display:grid}.scratchpad-toolbar{align-items:stretch}.scratchpad-note-input{min-width:100%}.attendee-list{grid-template-columns:1fr}}@media (width<=520px){h1{font-size:52px}.topbar{gap:10px}.brand{white-space:nowrap;font-size:16px}.topnav{gap:14px;min-width:0;display:flex;overflow-x:auto}.topnav a{white-space:nowrap;padding:23px 0 21px}.profile-button>span:not(.avatar){display:none}.calendar-actions .primary-button{margin-left:3px;padding:0 9px}.calendar-actions button:not(.primary-button){display:none}.calendar-footer{flex-wrap:wrap;gap:10px}.setup-points{grid-template-columns:1fr;gap:15px}.setup-points span{gap:7px}}.preview-banner{z-index:7;color:var(--paper);background:var(--coral-deep);font:700 11px var(--body);justify-content:space-between;align-items:center;gap:16px;padding:10px 14px;display:flex;position:sticky;top:82px}.preview-banner button{color:var(--paper);cursor:pointer;font:700 10px var(--body);background:0 0;border:1px solid #ffffff8c;padding:6px 9px}.history-row-button{width:100%;color:inherit;text-align:left;cursor:pointer;border:0}.history-row-button:hover{background:#303a35}.history-row-button:focus-visible{outline:2px solid var(--coral);outline-offset:-2px}.preview-view-button{color:var(--paper);background:var(--coral);border:1px solid var(--coral);cursor:pointer;font:700 11px var(--body);margin-top:24px;padding:10px 18px}.profile-layout{grid-template-columns:180px minmax(0,620px);align-items:start;gap:28px;display:grid}.profile-jump-table{border-top:1px solid var(--line);gap:10px;padding:16px 0;display:grid;position:sticky;top:112px}.profile-jump-table a{color:var(--muted);font:600 11px var(--body);text-decoration:none}.profile-jump-table a:hover{color:var(--coral-deep)}.profile-anchor-section{scroll-margin-top:112px}.profile-form{max-width:none}.profile-form #profile-account{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.profile-form #profile-account .eyebrow{grid-column:1/-1}.profile-form #profile-account label{color:var(--muted);font:10px var(--body);letter-spacing:.08em;text-transform:uppercase;gap:7px;display:grid}.profile-form #profile-account input{min-width:0}.profile-section-heading{justify-content:space-between;align-items:end;gap:18px;display:flex}.character-profile{gap:14px;display:grid}.character-profile h2{margin:0;font-size:22px}.profile-character-card{border:1px solid var(--line);background:#222724;gap:13px;padding:16px;display:grid}.character-actions{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.character-actions .file-picker{flex:1;min-width:180px}.character-delete-button{color:var(--coral-deep)}.character-create{border-top:1px solid var(--line);gap:10px;padding-top:16px;display:grid}.character-create label,.character-edit-fields label{color:var(--muted);font:10px var(--body);letter-spacing:.08em;text-transform:uppercase;gap:7px;display:grid}.character-create input,.character-edit-fields input{color:var(--ink);border:1px solid var(--line);font:13px var(--body);background:#171a19;padding:10px}.character-create .detail-save{width:fit-content}.character-create .detail-save:disabled{color:var(--muted-light);border-color:var(--line);cursor:not-allowed;background:#252b28}.character-modal{width:min(100%,620px);max-height:min(720px,100vh - 40px);color:var(--muted);border:1px solid var(--line);background:#222724;padding:30px;position:relative;overflow:auto;box-shadow:0 24px 60px #0006}.character-modal h2{color:var(--ink);margin-bottom:22px}.character-modal-row{border-top:1px solid var(--line);gap:14px;padding:16px 0;display:grid}.character-modal-summary{align-items:center;gap:12px;display:flex!important}.character-modal-portrait{flex:0 0 48px;width:48px;height:48px}.character-modal-summary>div{gap:5px;display:grid}.character-modal-row strong{color:var(--ink);font:600 13px var(--body)}.character-modal-row span{color:var(--muted-light);font:11px var(--body)}.character-modal-actions{flex-wrap:wrap;align-items:end;gap:14px;display:flex}.character-modal-actions .file-picker{flex:1;min-width:170px}.character-edit-fields{gap:12px;display:grid}.character-edit-fields>div{align-items:center;gap:12px;display:flex}@media (width<=720px){.profile-layout{display:block}.profile-jump-table{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:18px;position:static}.profile-jump-table .eyebrow{grid-column:1/-1}.profile-character-card .character-actions{align-items:stretch}.character-actions .file-picker{min-width:100%}}.character-modal-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.character-modal-summary{min-width:0}.character-modal-actions{justify-content:flex-end;align-items:center}.character-field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.character-modal-portrait,.character-modal-portrait .avatar{border-radius:10px;width:48px;height:48px}.portrait-button{color:inherit;cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:relative}.portrait-button .avatar{transition:filter .2s}.portrait-button:hover .avatar,.portrait-button:focus-visible .avatar{filter:brightness(.55)}.portrait-edit{color:var(--paper);opacity:0;pointer-events:none;place-items:center;font-size:18px;transition:opacity .2s;display:grid;position:absolute;inset:0}.portrait-button:hover .portrait-edit,.portrait-button:focus-visible .portrait-edit{opacity:1}.portrait-file-input{z-index:2;opacity:0;cursor:pointer;width:22px;height:22px;position:absolute;top:13px;left:13px}.portrait-lightbox{z-index:12;cursor:zoom-out;background:#080a09e0;place-items:center;padding:30px;display:grid;position:fixed;inset:0}.portrait-lightbox img{object-fit:contain;border-radius:12px;max-width:min(90vw,900px);max-height:90vh;box-shadow:0 24px 70px #00000080}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.character-modal .character-create{display:none}.character-modal-tools{z-index:13;gap:10px;display:flex;position:fixed;top:52px;left:calc(50% + 120px)}.character-create-dialog{z-index:14;width:min(520px,100vw - 40px);color:var(--muted);border:1px solid var(--line);background:#222724;gap:14px;padding:28px;display:grid;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 24px 60px #00000080}.character-create-dialog h2{color:var(--ink);margin:0 0 8px}.character-create-dialog>label,.character-create-dialog .character-field-grid label{color:var(--muted);font:10px var(--body);letter-spacing:.08em;text-transform:uppercase;gap:7px;display:grid}.character-create-dialog input{min-width:0;color:var(--ink);border:1px solid var(--line);font:13px var(--body);background:#171a19;padding:10px}@media (width<=620px){.character-modal-row{grid-template-columns:1fr}.character-modal-actions{justify-content:flex-start}.character-field-grid{grid-template-columns:1fr}}.character-field-grid{grid-template-columns:1fr}.character-modal-tools{top:var(--character-modal-footer-top,50%);justify-content:flex-end;width:min(560px,100vw - 56px);bottom:auto;left:50%;transform:translate(-50%)}.campaign-character-tools{max-height:min(720px,100vh - 40px);color:var(--muted);border:1px solid var(--line);background:#222724;place-content:start stretch;gap:12px;padding:28px;display:grid;top:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 24px 60px #0006}.campaign-character-close{z-index:15;width:32px;height:32px;color:var(--ink);background:var(--coral);border:1px solid var(--coral);place-items:center;padding:0;font-size:20px;line-height:1;display:grid;position:fixed;top:max(32px,50% + -1*min(348px,20vh - 12px));left:calc(50% + min(280px,42vw) - 36px);right:auto}.campaign-character-close:hover,.campaign-character-close:focus-visible{color:var(--ink);background:var(--coral-deep)}.scratchpad-control{color:var(--muted);font:10px var(--body);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:7px;display:inline-flex}.scratchpad-control input[type=color]{width:30px;height:30px;padding:2px}.scratchpad-control input[type=range]{width:90px;accent-color:var(--coral)}.scratchpad-text-controls{border:1px solid var(--line);background:#222724;flex-wrap:wrap;align-items:end;gap:12px;margin:12px 0;padding:12px;display:flex}.scratchpad-text-controls label{color:var(--muted);font:10px var(--body);letter-spacing:.08em;text-transform:uppercase;gap:6px;display:grid}.scratchpad-text-controls input[type=text],.scratchpad-text-controls input:not([type]){min-width:220px}.scratchpad-modal{position:relative}.scratchpad-modal-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.saved-board-list{gap:8px;max-height:320px;display:grid;overflow:auto}.saved-board-option{color:var(--ink);text-align:left;border:1px solid var(--line);cursor:pointer;background:#1d211f;gap:5px;padding:12px;display:grid}.saved-board-option:hover,.saved-board-option:focus-visible{border-color:var(--coral)}.saved-board-option span{color:var(--muted);font:11px var(--body)}.campaign-character-tools~.modal-backdrop{display:none}.attendance-management{grid-column:1/-1}.attendance-roster{background:var(--line);border:1px solid var(--line);gap:1px;margin-top:18px;display:grid}.attendance-roster-header,.attendance-row{grid-template-columns:minmax(140px,1fr) minmax(130px,.8fr) minmax(220px,1.2fr);align-items:center;gap:18px;padding:13px;display:grid}.attendance-roster-header{color:var(--muted-light);font:700 9px var(--body);letter-spacing:.1em;text-transform:uppercase;background:#171a19}.attendance-row{background:#222724}.attendance-row strong{color:var(--ink);font:600 12px var(--body)}.signup-status{width:fit-content;font:700 10px var(--body);padding:5px 8px}.signup-status.accepted{color:#80bd75;background:#80bd7533}.signup-status.declined{color:#c26459;background:#c2645938}.signup-status.no-response{color:var(--muted);background:#929d911f}.attendance-actions{flex-wrap:wrap;gap:8px;display:flex}.attendance-toggle{color:var(--muted);border:1px solid var(--line);cursor:pointer;font:700 10px var(--body);background:0 0;align-items:center;padding:6px 9px;display:inline-flex}.attendance-toggle.checked{color:#80bd75;background:#80bd7533;border-color:#80bd75}.attendance-toggle.absent-toggle.checked{color:#c26459;background:#c2645938;border-color:#c26459}.attendance-footer{align-items:center;gap:14px;margin-top:18px;display:flex}.attendance-footer .profile-status{margin:0}.attendance-register{grid-column:1/-1}.attendance-register-scroll{border:1px solid var(--line);margin-top:18px;overflow-x:auto}.attendance-register-table{border-collapse:collapse;min-width:max-content;font:600 11px var(--body)}.attendance-register-table th,.attendance-register-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;min-width:92px;padding:10px 12px}.attendance-register-table thead th,.attendance-register-table tbody th{color:var(--muted-light);background:#171a19;font-size:10px}.attendance-register-table thead th:first-child,.attendance-register-table tbody th{z-index:1;text-align:left;min-width:150px;position:sticky;left:0}.attendance-register-cell{color:#0000;background:repeating-linear-gradient(135deg,#222724 0 4px,#2d332f 4px 6px)}.attendance-register-cell.attended{color:#17301d;background:#80bd75}.attendance-register-cell.absent{color:#3d1714;background:#c26459}.attendance-register-cell.outside{color:var(--muted);background:#464d49}.attendance-register-legend{color:var(--muted);font:11px var(--body);flex-wrap:wrap;gap:14px;margin-top:12px;display:flex}.attendance-register-legend span{align-items:center;gap:6px;display:inline-flex}.attendance-register-swatch{border:1px solid var(--line);background:#222724;width:11px;height:11px}.attendance-register-swatch.attended{background:#80bd75}.attendance-register-swatch.absent{background:#c26459}.attendance-register-swatch.outside{background:#464d49}.attendance-register-legend:after{content:"No attendance recorded";background:repeating-linear-gradient(135deg,#222724 0 4px,#2d332f 4px 6px) 0/11px 11px no-repeat;align-items:center;min-height:11px;padding-left:17px;display:inline-flex}.attendance-register-table thead th:not(:first-child):not(:nth-child(2)){padding:0}.attendance-register-session-link{width:100%;height:100%;color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;padding:10px 12px;display:block}.attendance-register-percentage{color:var(--muted-light);font-weight:700}@media (width<=620px){.attendance-roster-header,.attendance-row{grid-template-columns:1fr 1fr}.attendance-roster-header span:last-child,.attendance-row .attendance-actions{grid-column:1/-1}.attendance-row{gap:10px}}.character-modal-tools .detail-save:disabled{color:var(--muted-light);border-color:var(--line);cursor:not-allowed;opacity:1;background:#252b28}.event-signup{border:1px solid var(--line);margin-top:1px}.campaign-character-picker{border:1px solid var(--line);background:#1d211f;flex:100%;gap:6px;width:100%;max-height:150px;padding:10px;display:grid;overflow:auto}.campaign-character-picker .eyebrow{margin:0 0 2px}.campaign-character-picker button{color:var(--muted);text-align:left;cursor:pointer;background:#222724;border:1px solid #0000;gap:3px;padding:7px 9px;display:grid}.campaign-character-picker button:hover,.campaign-character-picker button.selected-character-option{color:var(--ink);border-color:var(--coral)}.campaign-character-picker button strong{font:600 12px var(--body)}.campaign-character-picker button span{color:var(--muted);font:10px var(--body)}.campaign-character-option-content{align-items:center;gap:10px;display:flex}.campaign-character-option-content>span:last-child{gap:3px;min-width:0;display:grid}.campaign-character-option-content small{color:var(--muted);font:10px var(--body);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.campaign-character-option-portrait,.campaign-character-option-fallback{object-fit:cover;border-radius:8px;flex:0 0 38px;width:38px;height:38px}.campaign-character-option-fallback{color:var(--paper);background:var(--gold-deep);font:16px var(--display);place-items:center;display:grid}.select-character-button{color:var(--coral-deep);border:1px solid var(--coral-deep);cursor:pointer;font:700 10px var(--body);background:0 0;align-self:center;padding:8px 10px}.select-character-button:hover{color:var(--paper);background:var(--coral-deep)}.character-edit-pencil{width:30px;height:30px;color:var(--coral-deep);cursor:pointer;font:20px/1 var(--body);background:0 0;border:1px solid #0000;align-self:center;padding:0}.character-edit-pencil:hover,.character-edit-pencil:focus-visible{color:var(--paper);border-color:var(--coral-deep)}.campaign-heading-actions{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.user-campaign-list{gap:12px;margin-bottom:18px;display:grid}.user-campaign-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding:14px 0;display:flex}.user-campaign-row div{gap:5px;display:grid}.user-campaign-row strong{color:var(--ink);font:600 13px var(--body)}.user-campaign-row span{color:var(--muted);font:11px var(--body)}.campaign-form-modal{width:min(100%,520px);color:var(--muted);border:1px solid var(--line);background:#222724;gap:14px;padding:30px;display:grid;position:relative;box-shadow:0 24px 60px #00000073}.campaign-form-modal h2{color:var(--ink);margin:0 0 10px}.campaign-form-modal label:not(.toggle-row){color:var(--muted);font:10px var(--body);letter-spacing:.08em;text-transform:uppercase;gap:7px;display:grid}.campaign-form-modal input,.campaign-form-modal textarea{box-sizing:border-box;width:100%;color:var(--ink);border:1px solid var(--line);font:13px var(--body);background:#171a19;padding:11px}.campaign-form-modal textarea{resize:vertical;min-height:90px}.campaign-form-modal .toggle-row{color:var(--muted);font:12px var(--body);align-items:center;gap:8px;display:flex}.campaign-form-modal .toggle-row input{width:auto;accent-color:var(--coral)}.campaign-list-section{margin-bottom:20px}.campaign-filter-controls{color:var(--muted);font:11px var(--body);flex-wrap:wrap;gap:14px 22px;margin:-8px 0 18px;display:flex}.campaign-filter-controls label{align-items:center;gap:7px;display:flex}.campaign-filter-controls input{accent-color:var(--coral)}.campaign-card-list{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.campaign-summary-card{min-height:112px;color:var(--muted);text-align:left;border:1px solid var(--line);cursor:pointer;background:#202522;align-items:center;gap:14px;padding:18px 16px 18px 20px;display:flex;position:relative}.campaign-summary-card:hover,.selected-campaign-card{color:var(--ink);border-color:var(--coral);background:#262c28}.campaign-summary-card>span:nth-child(2){gap:7px;min-width:0;display:grid}.campaign-summary-card strong{color:inherit;font:600 15px var(--display)}.campaign-summary-card small{color:var(--muted);font:11px var(--body);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.campaign-card-accent{background:var(--coral);align-self:stretch;width:4px}.campaign-summary-card .event-arrow{color:var(--coral);margin-left:auto}.player-list{background:0 0;flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.player-row{width:fit-content;max-width:100%;min-height:0}.player-card-content{column-gap:16px;width:max-content;max-width:100%}.player-card-content>.player-identity,.player-card-content>.player-character{padding-left:6px}.player-card-content>.avatar,.player-card-content>.portrait-button{align-self:stretch;width:56px;min-height:56px}.player-card-content>.avatar{border-radius:9px;height:auto}.timezone-select{box-sizing:border-box;color:var(--ink);border:1px solid var(--line);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:13px/1.5 var(--body);background:#171a19;padding:11px}.campaign-list-section{margin-top:26px}.campaign-details-editor{gap:14px;display:grid}.campaign-details-editor label{color:var(--muted);font:10px var(--body);letter-spacing:.08em;text-transform:uppercase;gap:7px;display:grid}.campaign-details-editor input,.campaign-details-editor textarea,.campaign-details-editor select{box-sizing:border-box;width:100%;color:var(--ink);border:1px solid var(--line);font:13px/1.5 var(--body);background:#171a19;padding:11px}.campaign-details-editor select{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.campaign-details-editor textarea{resize:vertical;min-height:130px}.campaign-details-actions{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.campaign-details-actions .profile-status{margin:0}.campaign-library-sections{background:var(--line);border:1px solid var(--line);gap:1px;margin-top:30px;display:grid}.campaign-library-section{min-height:0}.campaign-library-section .campaign-section-content{margin-top:20px}.campaign-library-section .campaign-card-list{margin-top:0}.my-campaigns-section .campaign-card-list,.other-campaigns-section .campaign-card-list,.completed-campaigns-section .campaign-card-list{grid-template-columns:1fr}.party-content-hidden{display:none}.campaign-collapsible.is-collapsed{min-height:0}.campaign-section-header{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;padding:0;display:flex}.campaign-section-header>span:first-child{gap:7px;display:grid}.campaign-section-header-actions{align-items:center;gap:14px;display:flex}.campaign-section-title{color:var(--ink);font:600 26px var(--display)}.campaign-section-chevron{color:var(--coral-deep);font:24px/1 var(--body);transition:transform .2s;transform:rotate(0)}.campaign-section-chevron.expanded{transform:rotate(90deg)}.campaign-section-content{margin-top:16px}.campaign-section-content>p:first-child{margin-top:0}.player-card-content>.portrait-button .avatar,.player-card-content>.portrait-button img{object-fit:cover;border-radius:9px;width:56px;height:100%;min-height:56px}.character-create-dialog{max-width:calc(100vw - 40px);overflow-x:hidden}.character-create-dialog~.modal-backdrop{display:none}.character-create-dialog .character-field-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.character-modal .character-field-grid,.character-create-dialog .character-field-grid{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}.character-modal .character-field-grid input,.character-create-dialog .character-field-grid input{box-sizing:border-box;width:100%;min-width:0}.character-create-image{color:var(--muted);font:10px var(--body);letter-spacing:.08em;text-transform:uppercase;gap:7px;display:grid}.player-row{padding-right:16px;position:relative}.player-actions{gap:4px;margin-top:0;position:absolute;top:12px;right:8px}.player-remove-button>span{display:none}.player-remove-button:before{content:"␡"}.player-remove-button:hover,.player-remove-button:focus-visible{color:var(--coral-deep)}.admin-campaign-records .history-header,.admin-campaign-records .history-row{grid-template-columns:minmax(150px,1.35fr) minmax(110px,.9fr) minmax(70px,.55fr) minmax(270px,2fr)}.admin-campaign-records .admin-campaign-table .history-header,.admin-campaign-records .admin-campaign-table .history-row{grid-template-columns:minmax(150px,1.35fr) minmax(110px,.9fr) minmax(90px,.65fr) minmax(80px,.55fr) minmax(80px,.55fr) minmax(270px,2fr);min-width:980px}.admin-campaign-records .admin-campaign-table .history-header>span{white-space:nowrap}.admin-campaign-records .campaign-record-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.admin-campaign-records .admin-campaign-table select,.admin-campaign-records .campaign-record-actions select{min-width:132px;color:var(--ink);border:1px solid var(--line);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:12px var(--body);background:#171a19;padding:6px 8px}.vote-winning-date{color:var(--muted);font:13px/1.4 var(--body);margin:10px 0 0}.event-status.closed{color:#f3f4f6;background:#4b5563}.event-status.cancelled{color:#f3f4f6;background:#9b3f3f}.danger-button{color:#fff;background:#c2645933}@media (width<=760px){.admin-campaign-records .history-header{display:none}.admin-campaign-records .history-row{grid-template-columns:1fr 1fr;gap:8px 16px}.admin-campaign-records .history-row>span:last-child{grid-column:1/-1}.admin-campaign-records .campaign-record-actions{padding-top:4px}}.character-create-image input{background:0 0;border:0;padding:6px 0}.dm-planning-section{border:1px solid var(--coral);background:#20282a;gap:20px;margin-top:28px;padding:28px;display:grid}.dm-planning-section .campaign-section-title{display:none}.dm-planning-grid{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:20px;display:grid}.dm-notes-field{color:var(--muted);font:10px var(--body);letter-spacing:.08em;text-transform:uppercase;gap:8px;display:grid}.dm-notes-field textarea{resize:vertical;min-height:220px;color:var(--ink);border:1px solid var(--line);font:13px/1.5 var(--body);background:#171a19;padding:12px}.dm-tracker{border:1px solid var(--line);background:#1b211f;padding:16px}.dm-tracker-add{gap:8px;margin:14px 0;display:flex}.dm-tracker-add input{min-width:0;color:var(--ink);border:1px solid var(--line);font:12px var(--body);background:#171a19;flex:1;padding:10px}.dm-tracker-list{gap:10px;display:grid}.dm-tracker-list label{color:var(--ink);font:12px var(--body);grid-template-columns:auto 1fr auto;align-items:center;gap:8px;display:grid}.dm-tracker-list input{accent-color:var(--coral)}.completed-tracker-item{color:var(--muted);text-decoration:line-through}.dm-planning-footer{align-items:center;gap:14px;display:flex}.dm-planning-footer .profile-status{margin:0}@media (width<=720px){.character-create-dialog .character-field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=480px){.character-create-dialog .character-field-grid{grid-template-columns:1fr}}.discord-login-button{gap:10px}.discord-login-button img{object-fit:contain;width:92px;height:28px}.discord-avatar{background-color:#5865f2;background-image:url(/Discord-Logo-White.svg);background-position:50%;background-repeat:no-repeat;background-size:contain}.discord-icon{display:none}.discord-login-profile-button{color:#fff;background:#5865f2;border-radius:8px;gap:10px;padding:7px 11px}.discord-login-profile-button:hover{background:#4752c4}.discord-login-profile-button .avatar{background-color:#0000;background-position:50%;background-size:104px;border-radius:0;width:104px;height:28px}.discord-login-profile-button>span:last-child{color:#fff}.availability-heading-button{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;justify-content:space-between;padding:0}.availability-heading-button:hover{color:var(--coral-deep)}.campaign-detail-layout{grid-template-columns:150px minmax(0,1fr);align-items:start;gap:24px;display:grid}.campaign-jump-table{border-top:1px solid var(--line);gap:9px;padding:16px 0;display:grid;position:sticky;top:112px}.campaign-jump-table button{color:var(--muted);font:600 11px var(--body);text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.campaign-jump-table button:hover{color:var(--coral-deep)}.campaign-detail-content{min-width:0}.campaign-edit-fields{gap:12px;display:grid}.campaign-edit-field{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;padding:12px 0;display:grid}.campaign-edit-field strong{font:700 11px var(--body);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;display:block}.campaign-edit-field p{color:var(--muted);font:13px/1.5 var(--body);margin:0}.campaign-edit-field input,.campaign-edit-field textarea,.campaign-edit-field select{box-sizing:border-box;width:100%;color:var(--ink);border:1px solid var(--line);font:13px/1.5 var(--body);background:#171a19;padding:10px}.campaign-edit-field textarea{resize:vertical;min-height:90px}.campaign-edit-section .campaign-details-actions{margin-top:4px}.campaign-blurb:has(.campaign-details-editor){display:none}.campaign-edit-section .campaign-section-header .eyebrow{color:var(--coral);font-size:18px}.campaign-edit-section .campaign-section-title{display:none}.campaign-detail-content .campaign-section{border:1px solid var(--line)}.campaign-detail-content .campaign-section .campaign-section-header .eyebrow{color:var(--coral);font-size:18px}.campaign-details-actions:empty,.party-section .campaign-section-title,[data-campaign-section=guidance-settings] .campaign-section-title,[data-campaign-section=guidance-settings] .profile-muted{display:none}.party-subsection+.party-subsection{margin-top:18px}.party-subsection h2{color:var(--ink);font:700 11px var(--body);letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px}.party-subsection .person-row{border-top:0;padding-top:0}.player-card-content{grid-template-rows:repeat(4,auto)}.player-card-content>.avatar,.player-card-content>.portrait-button{grid-row:1/-1}.player-identity,.player-character{grid-column:2}.player-character{grid-template-rows:repeat(3,auto);grid-template-columns:minmax(0,1fr);margin-top:0}.player-character>*{grid-column:1}.player-character strong{color:var(--coral)}.player-level{grid-column:1}.player-row{padding-bottom:10px}.campaign-edit-section .campaign-edit-field:nth-child(2){border-bottom:0}.campaign-edit-field .player-icon-button:hover,.campaign-edit-field .player-icon-button:focus-visible{color:var(--coral-deep);background:0 0;border-color:#0000}.campaign-detail-content [data-campaign-section=history] .campaign-section-header .eyebrow:after{font:700 18px/1 var(--body);letter-spacing:.16em;text-transform:uppercase}.campaign-detail-content>.campaign-grid{border:0;gap:0}.campaign-detail-content>.campaign-grid>.campaign-section:first-child,.campaign-detail-content>.campaign-grid>.campaign-section+.campaign-section{border-top:0}.campaign-manager-view .campaign-blurb{display:none}.campaign-detail-content{border:1px solid var(--line)}.campaign-detail-content>.campaign-section,.campaign-detail-content>.campaign-grid>.campaign-section{border:0;border-bottom:1px solid var(--line)}.campaign-detail-content>.campaign-grid{border:0}.campaign-detail-content>.campaign-grid>.campaign-section:last-child{border-bottom:0}.campaign-detail-content>.campaign-grid>.campaign-section:first-child,.campaign-detail-content>.campaign-grid>.party-section{border-top:1px solid var(--line)}.campaign-detail-content>.campaign-grid{margin-top:0}.campaign-detail-content>.campaign-grid>.party-section{border-top:0}.campaign-view>.dm-planning-section{margin-top:0}.scratchpad-section .campaign-section-title{display:none}.campaign-detail-content>.dm-planning-section,.campaign-detail-content>.scratchpad-section{margin-top:0}.campaign-detail-content [data-campaign-section=history] .campaign-section-header .eyebrow:after{font-weight:700!important}.campaign-detail-content [data-campaign-section=history].is-collapsed~[data-campaign-section=attendance],.campaign-detail-content [data-campaign-section=history].is-collapsed~[data-campaign-section=updates]{display:block!important}.user-campaign-list.is-collapsed~.campaign-detail-layout [data-campaign-section=history],.user-campaign-list.is-collapsed~.campaign-detail-layout [data-campaign-section=attendance],.user-campaign-list.is-collapsed~.campaign-detail-layout [data-campaign-section=updates]{display:none!important}.campaign-detail-content [data-campaign-section=history] .campaign-section-header .eyebrow{position:relative;font-size:0!important}.campaign-detail-content [data-campaign-section=history] .campaign-section-header .eyebrow:after{color:var(--coral);font:700 18px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;content:"Campaign management"!important}.campaign-detail-content [data-campaign-section=history] .campaign-section-title:after{color:var(--ink);font:700 11px var(--body);letter-spacing:.08em;text-transform:uppercase;content:"Session log"!important;display:inline!important}.campaign-detail-content>[data-campaign-section=story] .campaign-section-title,.campaign-detail-content>[data-campaign-section=guidance-settings] .campaign-section-title,.campaign-detail-content>[data-campaign-section=party] .campaign-section-title,.campaign-detail-content>[data-campaign-section=history] .campaign-section-title,.campaign-detail-content>[data-campaign-section=attendance] .campaign-section-title,.campaign-detail-content>[data-campaign-section=updates] .campaign-section-title,.campaign-view>.user-campaign-list .campaign-section-title{display:none!important}.campaign-detail-content [data-campaign-section=history] .campaign-section-header .eyebrow,.campaign-detail-content [data-campaign-section=attendance] .campaign-section-header .eyebrow,.campaign-detail-content [data-campaign-section=updates] .campaign-section-header .eyebrow{font-size:18px!important;display:block!important;position:static!important}.campaign-detail-content [data-campaign-section=history] .campaign-section-header .eyebrow:after,.campaign-detail-content [data-campaign-section=attendance] .campaign-section-header .eyebrow:after,.campaign-detail-content [data-campaign-section=updates] .campaign-section-header .eyebrow:after,.campaign-detail-content [data-campaign-section=history] .campaign-section-title:after,.campaign-detail-content [data-campaign-section=attendance] .campaign-section-title:after,.campaign-detail-content [data-campaign-section=updates] .campaign-section-title:after{content:none!important;display:none!important}.campaign-management-group{box-sizing:border-box;width:100%}.campaign-management-group>[data-campaign-section=history],.campaign-management-group>[data-campaign-section=attendance],.campaign-management-group>[data-campaign-section=updates]{box-sizing:border-box;background:0 0;width:100%;padding:0;border:0!important;border-top:1px solid var(--line)!important}.campaign-management-group>[data-campaign-section=history] .campaign-section-header,.campaign-management-group>[data-campaign-section=attendance] .campaign-section-header,.campaign-management-group>[data-campaign-section=updates] .campaign-section-header{padding:24px 0}.campaign-management-group>[data-campaign-section=history] .campaign-section-header .eyebrow,.campaign-management-group>[data-campaign-section=attendance] .campaign-section-header .eyebrow,.campaign-management-group>[data-campaign-section=updates] .campaign-section-header .eyebrow{display:none!important}.campaign-management-group>[data-campaign-section=history] .campaign-section-title,.campaign-management-group>[data-campaign-section=attendance] .campaign-section-title,.campaign-management-group>[data-campaign-section=updates] .campaign-section-title{letter-spacing:.16em;text-transform:uppercase;color:var(--ink)!important;font:700 11px var(--body)!important;display:inline!important}.campaign-management-group>[data-campaign-section=history] .campaign-section-content,.campaign-management-group>[data-campaign-section=attendance] .campaign-section-content,.campaign-management-group>[data-campaign-section=updates] .campaign-section-content{margin:0;padding:0 0 24px}.campaign-detail-content>[data-campaign-section=attendance],.campaign-detail-content>[data-campaign-section=updates]{border-top:1px solid var(--line)!important;background:#20282a!important}.campaign-detail-content>[data-campaign-section=history]{border-bottom:1px solid var(--line)!important}.campaign-detail-content>.campaign-grid>[data-campaign-section=attendance],.campaign-detail-content>.campaign-grid>[data-campaign-section=updates]{border-top:1px solid var(--line)!important;background:#20282a!important}.campaign-detail-content>.campaign-grid>[data-campaign-section=history],.campaign-detail-content>.campaign-grid>[data-campaign-section=updates]{border-bottom:1px solid var(--line)!important}.campaign-detail-content.campaign-manager-view{display:grid}.campaign-detail-content.campaign-manager-view>.campaign-grid{display:contents}.campaign-detail-content.campaign-manager-view>[data-campaign-section=story]{order:1}.campaign-detail-content.campaign-manager-view>[data-campaign-section=guidance-settings]{order:2}.campaign-detail-content.campaign-manager-view>.campaign-grid>[data-campaign-section=story]{order:0}.campaign-detail-content.campaign-manager-view>.campaign-grid>[data-campaign-section=party]{order:3}.campaign-detail-content.campaign-manager-view>.campaign-grid>[data-campaign-section=history]{order:4}.campaign-detail-content.campaign-manager-view>[data-campaign-section=vote-log]{order:5}.campaign-detail-content.campaign-manager-view>.campaign-grid>[data-campaign-section=attendance]{order:6}.campaign-detail-content.campaign-manager-view>.campaign-grid>[data-campaign-section=updates]{order:7}.campaign-detail-content.campaign-manager-view>.dm-planning-section{order:8}.campaign-detail-content.campaign-manager-view>.scratchpad-section{order:9}.campaign-detail-content.campaign-manager-view>[data-campaign-section=vote-log] .campaign-section-title{display:none!important}.vote-log-header,.vote-log-table .history-row{grid-template-columns:minmax(180px,1.35fr) minmax(150px,1.1fr) minmax(150px,1fr) minmax(90px,.65fr) minmax(130px,.9fr) minmax(170px,1.2fr)}.vote-log-header{min-width:990px}.vote-log-table{overflow-x:auto}.vote-log-table .history-row{min-width:990px}[data-campaign-section=history] .campaign-section-header .eyebrow{position:relative;font-size:0!important}.campaign-detail-content [data-campaign-section=history] .campaign-section-header .eyebrow:after{content:"Campaign management";color:var(--coral);font:18px var(--body);letter-spacing:.16em}.campaign-detail-content [data-campaign-section=history] .campaign-section-title{color:#0000;font-size:0}.campaign-detail-content [data-campaign-section=history] .campaign-section-title:after{content:"Session log";color:var(--ink);font:700 11px var(--body);letter-spacing:.08em;text-transform:uppercase}.campaign-detail-content [data-campaign-section=history].is-collapsed .campaign-section-title:after,.campaign-detail-content [data-campaign-section=history] .campaign-section-content:before,.campaign-detail-content [data-campaign-section=history].is-collapsed~[data-campaign-section=attendance],.campaign-detail-content [data-campaign-section=history].is-collapsed~[data-campaign-section=updates]{display:none}.campaign-detail-content [data-campaign-section=attendance],.campaign-detail-content [data-campaign-section=updates]{border-top:0;margin-top:-1px}.campaign-detail-content [data-campaign-section=attendance] .campaign-section-header .eyebrow,.campaign-detail-content [data-campaign-section=updates] .campaign-section-header .eyebrow{display:none}.campaign-detail-content [data-campaign-section=attendance] .campaign-section-title,.campaign-detail-content [data-campaign-section=updates] .campaign-section-title{color:#0000;font-size:0}.campaign-detail-content [data-campaign-section=attendance] .campaign-section-title:after{content:"Attendance";color:var(--ink);font:700 11px var(--body);letter-spacing:.08em}.campaign-detail-content [data-campaign-section=updates] .campaign-section-title:after{content:"Member updates";color:var(--ink);font:700 11px var(--body);letter-spacing:.08em}@media (width<=760px){.campaign-detail-layout{display:block}.campaign-jump-table{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:18px;position:static}.campaign-jump-table .eyebrow{grid-column:1/-1}}.profile-layout{grid-template-columns:180px minmax(0,1fr)}.campaign-application>div{max-width:600px}.campaign-application select{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}
