:root{color-scheme:dark;--ink:#eee2c8;--muted:#b7a98c;--gold:#d7b96f;--line:rgba(215,185,111,.28);--panel:rgba(24,27,24,.93);--danger:#b35f6a}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:radial-gradient(circle at 15% 0,rgba(132,92,48,.22),transparent 38%),linear-gradient(#101412,#171512 60%,#0f1210);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui;min-height:100vh}.campaign-shell{width:min(1260px,calc(100% - 28px));margin:auto;padding-bottom:70px}.campaign-gate{max-width:720px;margin:12vh auto;text-align:center;padding:42px;border:1px solid var(--line);background:var(--panel);box-shadow:0 24px 60px #0007}.gate-mark{font-size:2rem;color:var(--gold)}h1,h2,h3{font-family:Georgia,serif;margin:0;color:#f2e4c3}.eyebrow{color:var(--gold);font-size:.68rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase;margin:0 0 8px}.campaign-button{display:inline-flex;align-items:center;justify-content:center;background:#303c34;border:1px solid #72806e;color:#eee2c8;cursor:pointer;font:800 .75rem/1 Inter,sans-serif;min-height:42px;padding:10px 15px;text-decoration:none;text-transform:uppercase}.campaign-button:hover,.campaign-button:focus-visible{background:#415047;outline:2px solid #d7b96f;outline-offset:2px}.campaign-button-primary{background:#765a2e;border-color:#d7b96f}.campaign-button-danger{background:#4b282d;border-color:#a9636b}.campaign-hero{display:flex;justify-content:space-between;gap:24px;align-items:end;padding:70px 18px 34px}.campaign-hero h1{font-size:clamp(2.2rem,5vw,4.7rem);max-width:760px;line-height:.98}.campaign-hero p:not(.eyebrow){color:var(--muted);max-width:720px;line-height:1.7}.campaign-panel,.campaign-sheet-header{background:var(--panel);border:1px solid var(--line);box-shadow:0 18px 45px #0004;padding:24px}.panel-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:20px}.count-badge,.save-state{color:#bfae8c;font-size:.75rem}.campaign-list,.stack-list{display:grid;gap:10px}.campaign-card,.stack-card{width:100%;display:flex;justify-content:space-between;align-items:center;gap:18px;text-align:left;background:#171b18;border:1px solid #514b3d;color:inherit;padding:18px;cursor:pointer}.campaign-card:hover,.stack-card:hover{border-color:#c7a65d;background:#202720}.campaign-card h3,.stack-card h3{font-size:1.1rem}.campaign-card p,.stack-card p{margin:5px 0 0;color:var(--muted);font-size:.8rem}.campaign-card time{color:#897c65;font-size:.72rem}.empty-state{color:var(--muted);border:1px dashed #5f5748;padding:28px;text-align:center}.campaign-detail-toolbar{display:flex;justify-content:space-between;padding:34px 0 14px}.campaign-sheet-header label{display:block;color:var(--gold);font-size:.75rem;font-weight:900;margin:15px 0 7px;text-transform:uppercase}.campaign-name-row{display:flex;gap:10px}.campaign-name-row input{flex:1;font:600 clamp(1.25rem,3vw,2rem) Georgia,serif}.campaign-sheet-header input,.invite-form input,.campaign-dialog input,.campaign-dialog textarea{background:#101310;border:1px solid #665d4c;color:#f0e2c5;padding:12px}.first-task{color:#d1bd8d;margin-bottom:0}.campaign-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.player-panel{margin-top:18px}.player-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.player-card{position:relative;background:#171b18;border:1px solid #625842;padding:14px;text-align:center}.player-card.is-dead{filter:grayscale(1);opacity:.5}.player-card.is-dead h3{text-decoration:line-through}.player-avatar{width:88px;height:88px;object-fit:contain;image-rendering:auto}.player-open{all:unset;display:block;width:100%;cursor:pointer}.skull-button{position:absolute;right:8px;top:8px;background:#342126;border:1px solid #88505a;color:#eee;cursor:pointer;width:34px;height:34px}.player-card p{color:var(--muted);font-size:.75rem}.invite-form{display:flex;gap:10px;align-items:end;border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.invite-form label{display:grid;gap:6px;flex:1;color:var(--muted);font-size:.75rem}.campaign-message{min-height:1.2em;color:var(--muted)}.campaign-message.is-error{color:#e89999}.campaign-message.is-success{color:#9fc694}.invitation-list{display:flex;gap:8px;flex-wrap:wrap}.invitation-chip{border:1px solid #5e5749;background:#161815;color:#b8aa91;padding:6px 9px;font-size:.7rem}.full-button{display:flex;margin-top:14px}.campaign-dialog{width:min(820px,calc(100% - 30px));background:#1b1d19;border:1px solid #8a7650;color:var(--ink);padding:26px}.campaign-dialog::backdrop{background:#000b}.dialog-close{float:right;background:transparent;border:0;color:#eee;font-size:1.8rem;cursor:pointer}.campaign-dialog input,.campaign-dialog textarea{width:100%;margin-top:10px}.campaign-dialog input{font:600 1.5rem Georgia,serif}.campaign-dialog textarea{line-height:1.6;resize:vertical}.character-hero{display:flex;gap:22px;align-items:center}.character-hero img{width:150px;height:150px;object-fit:contain}.character-details{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.character-details div{background:#111411;border:1px solid #514a3d;padding:12px}.character-details span{display:block;color:#aa9c83;font-size:.68rem;text-transform:uppercase}.character-story{white-space:pre-wrap;line-height:1.65;color:#d4c8b2}.campaign-paypal{max-width:300px;margin:20px auto}@media(max-width:760px){.campaign-hero{align-items:start;flex-direction:column}.campaign-columns{grid-template-columns:1fr}.campaign-name-row,.invite-form{align-items:stretch;flex-direction:column}.campaign-name-row{display:flex}.character-details{grid-template-columns:1fr}.character-hero{align-items:start;flex-direction:column}}

/* Campaign workspace alignment: use the same full-width, divided surface and
   compact tactile controls as the other Natural Zero tools. */
.invite-form label{max-width:520px}.invite-form label input{height:34px;padding:6px 9px}.invite-form>.campaign-button{min-height:34px}.invite-toolbar{display:flex;justify-content:flex-end;border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.invite-dialog{max-width:520px}.invite-dialog h2{margin-right:44px}.invite-dialog .invite-form{border-top:0;margin-top:18px;padding-top:0}.invite-dialog .invite-form label{max-width:none}.invite-dialog .invite-form input{font:inherit}.invite-dialog .campaign-message{margin:10px 0 0}
button,input,textarea{font:inherit}.campaign-shell{width:100%;max-width:none;margin:0;padding-bottom:56px}.campaign-button{min-height:32px;padding:5px 9px;border:1px solid #8c7752;border-radius:9px;background:linear-gradient(180deg,#3c372f 0%,#27231f 100%);box-shadow:inset 0 0 0 1px #171411,inset 0 -3px 0 rgba(0,0,0,.28),0 2px 0 #0b0908;color:#eadbb9;font-size:.66rem;font-weight:900;letter-spacing:.07em;white-space:nowrap}.campaign-button:hover,.campaign-button:focus-visible{background:linear-gradient(180deg,#4a4439 0%,#302a24 100%);border-color:#b09560;color:#f2e3c1;outline:none}.campaign-button:active{transform:translateY(2px)}.campaign-button-primary{background:linear-gradient(180deg,#4a4030,#2e2921);border-color:#b09259}.campaign-button-danger{background:linear-gradient(180deg,#4a2d2a,#2d211f);border-color:#9c5b54;color:#f0b5a9}.campaign-button-compact{min-height:28px;padding:4px 8px;font-size:.58rem}.campaign-hero{padding:48px clamp(18px,4vw,64px) 34px}.campaign-panel,.campaign-sheet-header{border-left:0;border-right:0;border-radius:0;background:transparent;box-shadow:none;padding:26px clamp(18px,4vw,64px)}.campaign-sheet-header{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.campaign-detail-toolbar{padding:20px clamp(18px,4vw,64px) 14px}.player-panel{margin-top:0;border-top:0}.campaign-columns{gap:0;margin-top:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.campaign-columns>.campaign-panel{border:0}.campaign-columns>.campaign-panel+ .campaign-panel{border-left:1px solid var(--line)}.campaign-list,.stack-list{gap:0}.campaign-card,.stack-card,.session-card{border-left:0;border-right:0;border-radius:0;background:transparent;box-shadow:none}.campaign-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:0;border-top:1px solid rgba(226,211,173,.16)}.campaign-card:last-child{border-bottom:1px solid rgba(226,211,173,.16)}.campaign-card:hover{background:rgba(216,184,111,.04)}.campaign-card-open{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;padding:18px 0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.campaign-delete-list{align-self:center;margin-right:2px}.campaign-title-display{display:flex;align-items:center;gap:12px;justify-content:space-between}.campaign-title-display h1{font-size:clamp(2rem,4vw,3.7rem);line-height:1}.campaign-name-row{max-width:900px}.campaign-name-row input{border-radius:7px}.stack-card{border-top:1px solid rgba(226,211,173,.16);padding:16px 0;text-decoration:none}.stack-list>.stack-card:last-child{border-bottom:1px solid rgba(226,211,173,.16)}.session-card{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;border-top:1px solid rgba(226,211,173,.16);transition:background 120ms ease,opacity 120ms ease}.session-card:last-child{border-bottom:1px solid rgba(226,211,173,.16)}.session-card.is-dragging{opacity:.4}.session-card.is-drag-target{background:rgba(216,184,111,.1);box-shadow:inset 0 2px #d8b86f}.session-drag-handle,.session-order-button{display:grid;place-items:center;border:1px solid #655b49;border-radius:7px;background:#26241f;color:#cdbb91;min-height:32px;min-width:32px;cursor:grab}.session-order-button{cursor:pointer}.session-order-button:disabled{opacity:.25;cursor:not-allowed}.session-open{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:0;padding:16px 0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.session-open span{min-width:0}.session-open h3{font-size:1.05rem}.session-open p{margin:5px 0 0;color:var(--muted);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-open time{flex:0 0 auto;color:#897c65;font-size:.7rem}.session-actions{display:flex;align-items:center;gap:5px}.session-delete{min-height:32px}.campaign-dialog{border-radius:13px}.full-button{width:max-content}.count-badge{padding:5px 8px;border-radius:20px;background:#4b3d29;color:#f4db9b}

@media(max-width:760px){.campaign-hero{padding:28px 16px 22px}.campaign-panel,.campaign-sheet-header{padding:22px 16px}.campaign-detail-toolbar{padding:14px 16px}.campaign-columns>.campaign-panel+ .campaign-panel{border-left:0;border-top:1px solid var(--line)}.campaign-card{grid-template-columns:minmax(0,1fr) auto}.campaign-card-open{padding:15px 0}.campaign-delete-list{margin:0}.session-card{grid-template-columns:30px minmax(0,1fr)}.session-actions{grid-column:2;justify-content:flex-end;padding-bottom:10px}.session-open{padding:13px 0 4px}.session-open time{display:none}.session-drag-handle{grid-row:1 / span 2}.campaign-dialog{width:calc(100% - 16px);padding:20px 16px}.full-button{width:100%}}
@media(max-width:480px){.campaign-card{grid-template-columns:1fr}.campaign-card-open{padding-bottom:6px}.campaign-delete-list{justify-self:end;margin-bottom:12px}.panel-heading{align-items:stretch;flex-direction:column}.panel-heading .campaign-button{width:100%}.campaign-title-display{align-items:flex-start}.campaign-title-display h1{overflow-wrap:anywhere}.invite-form .campaign-button{width:100%}.session-actions .session-delete{margin-left:auto}}

.player-remove{position:absolute;right:50px;top:8px;width:34px;min-height:34px;height:34px;margin:0;padding:0;font-size:1.25rem;line-height:1}.character-dialog{max-height:90vh;overflow:auto;width:min(1180px,calc(100% - 30px))}.character-dialog>form{position:sticky;right:0;top:0;z-index:3}.character-dialog .dialog-close{background:#25231e;border:1px solid #6d6049;border-radius:8px;height:38px;width:38px}.character-hero{border-bottom:1px solid var(--line);padding-bottom:22px}.character-hero p:last-child{color:var(--muted);line-height:1.6;max-width:720px}.full-character-sheet{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));margin-top:14px}.character-sheet-section{background:#121512;border:1px solid #514a3d;padding:16px;min-width:0}.character-sheet-section>h3{border-bottom:1px solid rgba(215,185,111,.2);font-size:1.05rem;margin-bottom:13px;padding-bottom:9px}.character-overview{margin-top:18px}.character-data-grid{display:grid;gap:9px;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));margin:0}.character-data-grid>div{background:rgba(255,255,255,.025);border:1px solid rgba(215,185,111,.13);min-width:0;padding:9px}.character-data-grid.is-nested{display:block}.character-data-grid.is-nested>div+div{margin-top:7px}.character-data-grid dt{color:#aa9c83;font-size:.63rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.character-data-grid dd{line-height:1.45;margin:5px 0 0;overflow-wrap:anywhere}.character-value{white-space:pre-wrap}.character-empty{color:#827866;font-style:italic}.character-value-list,.character-object-list{display:grid;gap:6px;margin:0;padding-left:20px}.character-object-list>li{border-left:2px solid rgba(215,185,111,.24);padding-left:8px}.battle-card{align-items:center;border-top:1px solid rgba(226,211,173,.16);display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px;transition:background 120ms ease,opacity 120ms ease}.battle-card:last-child{border-bottom:1px solid rgba(226,211,173,.16)}.battle-card.is-dragging{opacity:.4}.battle-card.is-drag-target{background:rgba(216,184,111,.1);box-shadow:inset 0 2px #d8b86f}.battle-drag-handle{display:grid;place-items:center;border:1px solid #655b49;border-radius:7px;background:#26241f;color:#cdbb91;min-height:32px;min-width:32px;cursor:grab}.battle-open{border:0!important}.stack-list>.battle-card .stack-card{border-bottom:0}.battle-card .stack-card:hover{background:rgba(216,184,111,.04)}

/* Dungeon Master character reference: use deliberate groups rather than a raw
   grid of every field persisted by Character Builder. */
.character-hero{position:relative}.character-status{margin-left:auto;align-self:flex-start;border:1px solid #70866d;border-radius:999px;background:rgba(104,143,99,.14);color:#b8d8a9;font-size:.62rem;font-weight:900;letter-spacing:.08em;padding:6px 9px;text-transform:uppercase}.character-status.is-dead{border-color:#9d5b58;background:rgba(157,91,88,.15);color:#e6a7a1}.character-refresh-note{margin:14px 0 0;border:1px solid rgba(215,185,111,.3);background:rgba(215,185,111,.08);color:#d9c28a;font-size:.78rem;line-height:1.5;padding:10px 12px}.character-at-a-glance,.character-abilities-section{margin-top:14px}.character-metric-grid,.character-currency-row{display:grid;gap:8px;grid-template-columns:repeat(6,minmax(0,1fr))}.character-metric{background:linear-gradient(145deg,rgba(94,79,48,.28),rgba(20,24,20,.84));border:1px solid rgba(215,185,111,.25);display:grid;gap:3px;min-width:0;padding:10px}.character-metric>span{color:#aa9c83;font-size:.59rem;font-weight:900;letter-spacing:.075em;text-transform:uppercase}.character-metric>strong{color:#f2e4c3;font-size:1.05rem;overflow-wrap:anywhere}.character-metric>small{color:#c6b893;font-size:.63rem;line-height:1.25}.character-ability-row{display:grid;gap:7px;grid-template-columns:repeat(6,minmax(0,1fr))}.character-ability{background:rgba(255,255,255,.025);border:1px solid rgba(215,185,111,.16);display:grid;gap:2px;justify-items:center;min-width:0;padding:9px 5px;text-align:center}.character-ability.is-save-proficient{border-color:#b99557;box-shadow:inset 0 0 0 1px rgba(215,185,111,.18)}.character-ability>span{color:#aa9c83;font-size:.61rem;font-weight:900;letter-spacing:.08em}.character-ability>strong{font-size:1.1rem}.character-ability>em{color:#d7b96f;font-size:.72rem;font-style:normal}.character-ability>small{color:#cabb93;font-size:.55rem}.dm-character-sheet{grid-template-columns:repeat(2,minmax(0,1fr))}.dm-character-sheet .is-wide{grid-column:1 / -1}.character-subsection-grid{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}.character-sheet-section h4{color:#cdb981;font-size:.67rem;letter-spacing:.08em;margin:0 0 8px;text-transform:uppercase}.character-list,.character-gear-list,.character-roll-list,.character-feature-list>ul,.character-story-list{display:grid;gap:5px;list-style:none;margin:0;padding:0}.character-list li,.character-gear-list li,.character-roll-list li,.character-feature-list li,.character-story-list li{border-bottom:1px solid rgba(215,185,111,.13);color:#ded2b8;font-size:.78rem;line-height:1.4;padding:5px 0}.character-list li:last-child,.character-gear-list li:last-child,.character-roll-list li:last-child,.character-feature-list li:last-child,.character-story-list li:last-child{border-bottom:0}.character-gear-list li{display:grid;gap:2px}.character-gear-list small,.character-roll-list small,.character-feature-list small{color:#a99c80;font-size:.64rem}.character-gear-list span,.character-feature-list small{line-height:1.35}.character-roll-list li{display:flex;gap:8px;justify-content:space-between}.character-roll-list li.is-proficient,.character-roll-list li.is-expertise{color:#f0d796}.character-roll-list li.is-expertise small{color:#efc873;font-size:.56rem;text-transform:uppercase}.character-feature-list{border-top:1px solid rgba(215,185,111,.16);margin-top:14px;padding-top:13px}.character-feature-list li{display:grid;gap:2px}.character-inline-note{color:#b8aa90;font-size:.75rem;margin:14px 0 0}.character-text-block{border-top:1px solid rgba(215,185,111,.13);margin-top:12px;padding-top:11px}.character-text-block p{color:#d9cdb5;font-size:.78rem;line-height:1.55;margin:0;white-space:pre-wrap}.character-text-block .character-empty{color:#827866}.character-currency-row{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:15px}.character-currency-row .character-metric{background:rgba(180,143,62,.08);padding:8px}.character-story-list{margin-top:12px}.character-story-list::before{color:#aa9c83;font-size:.61rem;font-weight:900;letter-spacing:.075em;text-transform:uppercase}.character-story-list:nth-of-type(1)::before{content:"Personality"}.character-story-list:nth-of-type(2)::before{content:"Ideals"}.character-story-list:nth-of-type(3)::before{content:"Bonds"}.character-story-list:nth-of-type(4)::before{content:"Flaws"}
@media(max-width:760px){.character-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.character-ability-row{grid-template-columns:repeat(3,minmax(0,1fr))}.dm-character-sheet,.character-subsection-grid{grid-template-columns:1fr}.dm-character-sheet .is-wide{grid-column:auto}.character-status{margin-left:0}.character-hero{padding-right:44px}.character-hero .character-status{position:absolute;right:0;top:0}}
@media(max-width:420px){.character-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.character-ability-row{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media(max-width:620px){.player-remove{font-size:.55rem}.character-dialog{max-height:94vh;width:calc(100% - 16px)}.character-hero img{height:110px;width:110px}.character-sheet-section{padding:12px}.battle-card{grid-template-columns:30px minmax(0,1fr)}.battle-open{align-items:flex-start;padding:14px 0}.battle-open>span:last-child{font-size:.65rem}}

.battle-card{grid-template-columns:34px minmax(0,1fr) auto}.battle-tracker-open{justify-self:end}
@media(max-width:620px){.battle-card{grid-template-columns:30px minmax(0,1fr) auto}.battle-tracker-open{font-size:.53rem}}

.campaign-rules-badge{display:inline-flex;margin-top:8px;padding:4px 8px;border:1px solid rgba(215,185,111,.44);border-radius:999px;background:rgba(215,185,111,.09);color:#e8cc8d;font-size:.62rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.campaign-sheet-header select{display:block;width:min(260px,100%);margin-top:7px;padding:10px 12px;border:1px solid #665d4c;border-radius:7px;background:#101310;color:#f0e2c5}.campaign-sheet-header select:focus{border-color:#d7b96f;outline:2px solid rgba(215,185,111,.22);outline-offset:2px}
.campaign-sheet-header .campaign-additional-rule{display:flex;align-items:flex-start;gap:9px;width:min(560px,100%);padding:10px 12px;border:1px solid rgba(215,185,111,.25);border-radius:7px;background:rgba(215,185,111,.05);text-transform:none}.campaign-additional-rule input{margin-top:3px}.campaign-additional-rule span{display:grid;gap:3px}.campaign-additional-rule small{color:var(--muted);font-weight:500;line-height:1.4}
.campaign-guide-link{margin:20px 0 0}.campaign-guide-link a{color:var(--gold);font-size:.78rem;font-weight:800;text-underline-offset:4px}

.campaign-badge-row{display:flex;flex-wrap:wrap;gap:7px}.campaign-role-label{align-self:center;color:#d7b96f;font-size:.66rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.campaign-introduction{max-width:780px;margin:16px 0 0;color:var(--muted);line-height:1.65;white-space:pre-wrap}.campaign-sheet-header #campaign-introduction{display:block;width:min(900px,100%);min-height:120px;padding:12px;border:1px solid #665d4c;border-radius:7px;background:#101310;color:#f0e2c5;line-height:1.6;resize:vertical}.shared-note-marker,.own-character-label{display:inline-flex;margin-top:7px;padding:3px 7px;border:1px solid rgba(159,198,148,.4);border-radius:999px;background:rgba(159,198,148,.08);color:#b9dcaf;font-size:.58rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.player-card.is-own{border-color:#9a8050;box-shadow:inset 0 0 0 1px rgba(215,185,111,.12)}.shared-note-open{border-left:0;border-right:0}.shared-note-open time{flex:0 0 auto;color:#897c65;font-size:.7rem}.player-note-guidance{color:var(--muted);line-height:1.6;margin:16px 0}.player-shared-notes{grid-column:1 / -1}.session-share-field,.player-session-notes-field{display:flex;align-items:flex-start;gap:10px;margin-top:14px;padding:12px;border:1px solid rgba(215,185,111,.28);border-radius:8px;background:rgba(215,185,111,.05);cursor:pointer}.session-share-field input{width:auto;margin:3px 0 0}.session-share-field span,.player-session-notes-field>span{display:grid;gap:3px}.session-share-field small,.player-session-notes-field small{color:var(--muted);line-height:1.4}.player-session-notes-field{display:grid;cursor:default}.player-session-notes-field textarea{width:100%;margin-top:0}.campaign-dialog input[readonly],.campaign-dialog textarea[readonly]{border-color:rgba(215,185,111,.2);background:#141613;color:#ded2b9;cursor:default}.player-workspace{align-items:stretch}

/* A repeated section rhythm keeps campaign workspaces easy to scan. */
.campaign-panel>.panel-heading{align-items:flex-end;border-bottom:1px solid rgba(226,211,173,.2);margin-bottom:0;padding-bottom:16px}.campaign-panel>.panel-heading h2{line-height:1.05}.campaign-panel>.panel-heading+.stack-list{margin-top:0}.workspace-section>.panel-heading .campaign-button{flex:0 0 auto}.workspace-section .stack-list>.empty-state{border-top:0}.workspace-section .stack-list{border-bottom:1px solid rgba(226,211,173,.16)}
@media(max-width:480px){.workspace-section>.panel-heading{align-items:stretch}.workspace-section>.panel-heading .campaign-button{width:100%}}

/* Persistent campaign references live beside sessions, with search scoped to
   the note content visible to the current campaign role. */
#dm-workspace{grid-template-columns:repeat(4,minmax(0,1fr))}.note-search{display:block;margin:14px 0 0}.note-search input{width:100%;border:1px solid #665d4c;border-radius:7px;background:#101310;color:#f0e2c5;padding:9px 10px;font-size:.75rem}.note-search input:focus{border-color:#d7b96f;outline:2px solid rgba(215,185,111,.22);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.reference-note-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:9px;border-top:1px solid rgba(226,211,173,.16)}.reference-note-card:last-child{border-bottom:1px solid rgba(226,211,173,.16)}.reference-note-open{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:0;padding:16px 0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.reference-note-open span{min-width:0}.reference-note-open h3{font-size:1.05rem}.reference-note-open p{margin:5px 0 0;color:var(--muted);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reference-note-open time{flex:0 0 auto;color:#897c65;font-size:.7rem}.reference-note-delete{min-height:32px}.reference-note-field{display:grid;gap:6px;margin-top:14px;padding:12px;border:1px solid rgba(215,185,111,.28);border-radius:8px;background:rgba(215,185,111,.05)}.reference-note-field span{display:grid;gap:3px}.reference-note-field small{color:var(--muted);line-height:1.4}.reference-note-field textarea{width:100%;margin-top:0}.player-workspace{grid-template-columns:1fr}
@media(max-width:1180px){#dm-workspace{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){#dm-workspace{grid-template-columns:1fr}.reference-note-card{grid-template-columns:minmax(0,1fr)}.reference-note-delete{justify-self:end;margin:0 0 10px}.reference-note-open time{display:none}}

.reference-note-share-field{display:flex;align-items:flex-start;gap:10px;margin-top:14px;padding:12px;border:1px solid rgba(215,185,111,.28);border-radius:8px;background:rgba(215,185,111,.05);cursor:pointer}.reference-note-share-field input{width:auto;margin:3px 0 0}.reference-note-share-field span{display:grid;gap:3px}.reference-note-share-field small{color:var(--muted);line-height:1.4}.reference-note-delete{width:28px;height:28px;min-height:28px;padding:0;font-size:1rem;letter-spacing:0;line-height:1}

.session-delete{width:28px;height:28px;min-height:28px;padding:0;font-size:1rem;letter-spacing:0;line-height:1}

/* Battle rows keep the name and summary above a shared action row so long
   battle names remain readable and both actions use the standard controls. */
.battle-card{align-items:start;grid-template-columns:34px minmax(0,1fr)}
.battle-content{display:grid;gap:0;min-width:0;padding:14px 0 20px}
.battle-title{overflow-wrap:anywhere}
.battle-summary{margin:5px 0 0;color:var(--muted);font-size:.78rem}
.battle-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.battle-open{border:1px solid #8c7752!important;padding:4px 8px}
.battle-tracker-open{justify-self:auto;font-size:.58rem}
@media(max-width:620px){.battle-card{grid-template-columns:30px minmax(0,1fr)}.battle-content{padding:13px 0 18px}}
