.portal-body{font-family:"Trebuchet MS",Arial,sans-serif;background:var(--background);color:var(--text)}.portal-body h1,.portal-body h2{font-family:var(--heading-font,Georgia,serif)}.portal-body h3{margin:0;font-size:1.05rem}.portal-wallpaper{position:fixed;inset:0;z-index:-1}.portal-wallpaper img,.portal-wallpaper span{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}.portal-wallpaper span{background:#000}.portal-page{width:calc(100% - 36px);max-width:var(--content-width,1500px);margin:0 auto;padding:12px 0 25px}.portal-topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:12px;font-size:.8rem;color:var(--accent)}.portal-topbar>div{display:flex;gap:24px;align-items:center}.portal-topbar button{padding:0;color:inherit}.portal-header{display:grid;grid-template-columns:1fr minmax(360px,.9fr);gap:30px;padding:22px 26px;border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:24px;background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:0 15px 50px #0003;min-height:165px}.portal-title h1{font-size:clamp(1.8rem,3vw,2.7rem);font-weight:700;line-height:1.1;margin:7px 0;letter-spacing:-.025em;overflow-wrap:anywhere}.portal-title .eyebrow{font-size:.75rem}.portal-campaign-label{font-size:1.35rem;color:var(--accent);font-family:var(--heading-font);font-weight:700}.portal-intro{font-size:.875rem;opacity:.7;max-width:600px;white-space:pre-wrap;overflow-wrap:anywhere}.portal-date{border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);border-left:5px solid var(--accent);border-radius:17px;padding:15px 22px;align-self:center;background:color-mix(in srgb,var(--background) 75%,transparent)}.portal-date h2{font-size:1.12rem}.date-content{display:flex;gap:20px;align-items:center}.date-orbit{display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:50%;width:40px;height:40px;flex-shrink:0;color:var(--accent)}.portal-date .placeholder-facts{margin:8px 0 0;flex:1;gap:2px}.portal-date .placeholder-facts>div{display:flex;gap:8px;padding:0;border:0;line-height:1.4}.portal-date dt{min-width:96px;color:var(--accent);font-size:.78rem}.portal-date dd{font-size:.78rem}.portal-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.portal-tabs a,.portal-admin-tabs a,.placeholder-subtabs button{border:1px solid color-mix(in srgb,var(--accent) 23%,transparent);border-radius:999px;padding:13px 17px;color:var(--text);background:color-mix(in srgb,var(--surface) 70%,transparent);font-size:.85rem;letter-spacing:.05em;font-weight:700;text-transform:uppercase;text-align:center}.portal-tabs a[aria-current],.portal-admin-tabs a[aria-current],.placeholder-subtabs button[aria-pressed=true]{background:var(--accent);color:var(--button-text,#181817);border-color:var(--accent)}.portal-panel{padding:26px 32px;margin:18px 0;border:1px solid color-mix(in srgb,var(--accent) 26%,transparent);border-radius:28px;background:color-mix(in srgb,var(--surface) 94%,transparent)}.portal-section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.portal-section-heading h2{font-size:2rem;margin-top:7px}.portal-section-heading .eyebrow{font-size:.75rem}.portal-badge{display:inline-flex;padding:4px 10px;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:999px;background:color-mix(in srgb,var(--accent) 8%,transparent);font-size:.72rem;line-height:1.25;color:var(--accent);white-space:nowrap;font-weight:700}.dashboard-summary{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 18px;font-size:.8rem}.dashboard-summary>span{display:flex;align-items:center;gap:8px}.party-renown{margin-left:auto}.character-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.character-slot{background:color-mix(in srgb,var(--background) 90%,#142836);border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:16px;padding:12px 14px 18px;display:block}.character-slot:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.character-slot-status{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px;font-size:.72rem;color:var(--accent)}.character-slot-body{display:grid;grid-template-columns:100px minmax(0,1fr);gap:16px}.portrait-slot{border:1px dashed color-mix(in srgb,var(--accent) 45%,transparent);border-radius:14px;min-height:135px;background:color-mix(in srgb,var(--accent) 5%,transparent);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:14px;color:var(--accent)}.portrait-slot>span{font-size:1.5rem}.portrait-slot small{font-size:.72rem;opacity:.7}.character-slot-name{display:flex;align-items:center;justify-content:space-between;gap:10px}.character-slot-name h3{font-size:1.05rem}.character-subtitle{font-size:.78rem;opacity:.55;margin:7px 0}.character-weather{font-size:.75rem;border:1px solid color-mix(in srgb,var(--accent) 16%,transparent);border-radius:20px;padding:4px 9px;opacity:.65}.character-status{font-size:.82rem;margin-top:7px}.health-placeholder{display:flex;gap:10px;align-items:center;margin:8px 0}.health-placeholder>span{height:10px;border:1px solid color-mix(in srgb,var(--accent) 26%,transparent);background:color-mix(in srgb,var(--accent) 8%,transparent);border-radius:99px;flex:1}.health-placeholder b{font-size:.78rem;white-space:nowrap;font-weight:400}.character-carry{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;font-size:.72rem;color:var(--accent)}.character-carry>div{display:flex;gap:6px}.vital-placeholder{width:32px;min-height:36px;border:1px solid color-mix(in srgb,var(--accent) 18%,transparent);border-radius:10px;display:flex;flex-direction:column;text-align:center;justify-content:center}.vital-placeholder small{font-size:.55rem;opacity:.65}.portal-footer{display:flex;justify-content:space-between;font-size:.72rem;color:var(--accent);opacity:.65;padding:10px}.portal-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}.portal-grid.thirds{grid-template-columns:repeat(3,1fr)}.portal-subpanel{padding:22px;border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);border-radius:14px;background:color-mix(in srgb,var(--background) 42%,transparent)}.placeholder-facts{margin:15px 0 0;display:grid;gap:0}.placeholder-facts>div{display:flex;justify-content:space-between;gap:24px;padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--accent) 10%,transparent);font-size:.875rem}.placeholder-facts dt{opacity:.65}.placeholder-facts dd{margin:0}.placeholder-note{font-size:.8rem;color:var(--accent);margin:0 0 18px;opacity:.8}.placeholder-table{overflow:auto;margin-top:24px;border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);border-radius:12px}.placeholder-table table{width:100%;border-collapse:collapse;font-size:.85rem}.placeholder-table th{padding:14px 18px;text-align:left;color:var(--accent);font-weight:500;background:color-mix(in srgb,var(--background) 40%,transparent);white-space:nowrap}.placeholder-table td{text-align:center;padding:45px 20px;opacity:.5}.portal-empty{text-align:center;padding:36px 15px;color:var(--text);opacity:.6}.portal-empty>span{font-size:1.8rem;display:block;margin-bottom:15px;color:var(--accent)}.portal-empty p{font-size:.85rem;margin-top:10px}.profile-placeholder{display:grid;grid-template-columns:160px 1fr;gap:28px}.portrait-slot.large{min-height:220px}.placeholder-subtabs{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 28px}.placeholder-subtabs button{font-size:.75rem;padding:10px 14px}.profession-band{padding:14px 20px;background:color-mix(in srgb,var(--accent) 9%,transparent);border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);border-radius:10px;color:var(--accent);font-weight:600;margin:20px 0}.profession-placeholder-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.profession-placeholder{border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);border-radius:12px;background:var(--background);padding:22px 16px;text-align:center}.profession-placeholder h3{font-size:1rem;margin:18px 0 8px}.profession-placeholder p{font-size:.75rem;opacity:.5}.profession-emblem{font-size:2rem;color:var(--accent)}.branch-connector{height:30px;width:1px;background:var(--accent);opacity:.25;margin:auto}.branch-placeholder{padding:12px 5px;font-size:.75rem;border:1px dashed color-mix(in srgb,var(--accent) 25%,transparent);margin-bottom:8px;border-radius:8px;opacity:.65}.map-subtabs{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.map-subtabs span{padding:8px 16px;border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);border-radius:20px;font-size:.8rem;opacity:.6}.map-placeholder{height:440px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;border:1px dashed color-mix(in srgb,var(--accent) 30%,transparent);border-radius:15px;background:color-mix(in srgb,var(--background) 70%,transparent);color:var(--accent);text-align:center;padding:20px}.map-placeholder>span{font-size:3rem}.map-placeholder p{font-size:.875rem;opacity:.65}.portal-map-viewport{height:60vh;overflow:auto;border-radius:12px;background:var(--background)}.portal-map-viewport img{width:100%;max-width:none;display:block}.portal-map-tools{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin-bottom:12px}.portal-map-tools button{padding:10px 15px;background:var(--background);border-radius:8px}.portal-admin-mark{display:flex;justify-content:flex-end;align-items:center;gap:25px}.portal-admin-mark img{height:85px;width:85px;object-fit:contain}.logo-slot{width:85px;height:85px;border:1px dashed color-mix(in srgb,var(--accent) 40%,transparent);border-radius:14px;display:grid;place-content:center;text-align:center;font-size:.75rem;opacity:.6}.portal-admin-tabs{display:flex;flex-direction:column;gap:9px;margin:20px 0}.admin-tab-group{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.admin-tab-group>span{width:155px;font-size:.73rem;text-transform:uppercase;letter-spacing:.08em;opacity:.65}.portal-admin-tabs a{padding:10px 14px;font-size:.75rem}.portal-body .editor-main{padding:24px 0;max-width:none}.portal-body .editor-header h1{font-family:var(--heading-font)}.portal-body .settings-section{background:var(--surface);border-color:color-mix(in srgb,var(--accent) 25%,transparent)}.portal-body .section-title p,.portal-body .editor-header p:last-child,.portal-body .upload-copy p,.portal-body .preview-top p,.portal-body .preview-bottom,.portal-body .reset-section p{color:var(--text);opacity:.6}.portal-body input,.portal-body select,.portal-body textarea{background:var(--background);color:var(--text);border-color:color-mix(in srgb,var(--accent) 25%,transparent)}.portal-body .small-button,.portal-body .secondary{background:var(--background);color:var(--text);border-color:color-mix(in srgb,var(--accent) 25%,transparent)}.portal-body .preview-frame-wrap{height:650px;border-color:color-mix(in srgb,var(--accent) 25%,transparent)}.portal-body .colour-field,.portal-body .palette,.portal-body .upload-preview{background:var(--background);border-color:color-mix(in srgb,var(--accent) 25%,transparent)}
@media(min-width:1450px){.character-slot-body{grid-template-columns:120px minmax(0,1fr)}.portrait-slot{min-height:150px}.character-slot{padding:14px 18px 20px}}
@media(max-width:1000px){.portal-header{grid-template-columns:1fr 1fr;padding:20px;gap:20px}.character-slot-body{grid-template-columns:75px minmax(0,1fr);gap:12px}.character-carry{align-items:start;flex-direction:column}.portrait-slot{min-height:130px}.character-slot-name{flex-wrap:wrap}.portal-panel{padding:24px}.profession-placeholder-grid{grid-template-columns:repeat(3,1fr)}.portal-grid.thirds{grid-template-columns:1fr}.portal-body .preview-frame-wrap{height:440px}}
@media(max-width:650px){.portal-page{width:calc(100% - 24px)}.portal-header{grid-template-columns:1fr;padding:22px;border-radius:18px;gap:20px}.portal-title h1{font-size:2rem}.portal-date{padding:14px 18px}.portal-topbar{font-size:.72rem;align-items:start}.portal-topbar>div{gap:12px;flex-wrap:wrap;justify-content:flex-end}.portal-tabs{gap:7px}.portal-tabs a{font-size:.7rem;padding:11px 13px;letter-spacing:.025em}.portal-panel{padding:20px 16px;border-radius:18px}.portal-section-heading h2{font-size:1.6rem}.portal-section-heading>.portal-badge{font-size:.63rem}.character-slots,.portal-grid{grid-template-columns:1fr}.character-slot-body{grid-template-columns:75px minmax(0,1fr)}.character-slot-name h3{font-size:.93rem}.character-carry{flex-direction:column}.character-slot-status{font-size:.65rem}.character-slot .portal-badge{font-size:.62rem}.party-renown{margin-left:0}.dashboard-summary{gap:10px;font-size:.7rem}.profile-placeholder{grid-template-columns:1fr}.portrait-slot.large{width:140px;min-height:180px}.profession-placeholder-grid{grid-template-columns:1fr 1fr;gap:10px}.profession-placeholder{padding:16px 10px}.portal-admin-tabs a{font-size:.68rem;padding:9px 12px}.admin-tab-group>span{width:100%;margin:10px 0 4px}.portal-admin-mark{justify-content:flex-start}.portal-footer{gap:20px}.map-placeholder{height:300px}.portal-body .editor-main{padding-top:15px}.portal-body .preview-frame-wrap{height:460px}}

.portal-title{display:flow-root;min-width:0}.portal-title-logo{width:160px;height:160px;object-fit:contain;float:left;margin:0 26px 18px 0}@media(max-width:650px){.portal-title-logo{width:120px;height:120px;float:none;display:block;margin:0 0 20px}}

.portrait-slot img{width:100%;height:100%;max-height:240px;object-fit:cover;border-radius:12px}.player-image-preview img{max-width:100%;max-height:200px;display:block;margin:15px 0}.player-save-bar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;position:sticky;bottom:0;padding:20px;margin-top:20px;background:var(--surface);border:1px solid var(--accent);border-radius:12px}.player-save-bar>span{margin-right:auto}.player-long-text,.placeholder-facts dd{white-space:pre-wrap;overflow-wrap:anywhere}.placeholder-facts dd{max-width:65%}fieldset.portal-subpanel{min-width:0}fieldset legend{padding:0 8px}#feature-edit{max-width:800px}.player-save-bar .secondary{font-size:.8rem}


.library-map{display:grid;grid-template-columns:100px minmax(0,1fr) auto;gap:18px;align-items:center;padding:20px 0;border-bottom:1px solid #ffffff20}.library-map img{width:100%;height:80px;object-fit:cover;border-radius:5px}.library-map h4{margin:0 0 8px}.library-map p{font-size:.85rem;white-space:pre-wrap;overflow-wrap:anywhere}.library-map small{color:var(--accent)}.notice{background:var(--accent);color:var(--button-text,#140f1d)}.portal-body .preview-tabs .selected{background:var(--accent);color:var(--button-text)}.portal-body .colour-field small,.portal-body .contrast-note{color:#bbb2c7}@media(max-width:650px){.library-map{grid-template-columns:65px minmax(0,1fr)}.library-map button{grid-column:2}.library-map img{height:65px}}


/* Adventure world themes apply to typography, surfaces and decorative details. */
html[data-theme] .portal-body :is(.portal-panel,.portal-header,.portal-date,.portal-subpanel,.character-slot,.settings-section){border-radius:var(--theme-radius);border-style:var(--theme-edge);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}
html[data-theme] .portal-body :is(h1,h2,h3){font-family:var(--heading-font)}
html[data-theme] .portal-body :is(.placeholder-note,.portal-campaign-label){color:var(--theme-muted)}
html[data-theme=scifi] .portal-body{font-family:Arial,Helvetica,sans-serif}
html[data-theme=scifi] .portal-body :is(.portal-panel,.character-slot){box-shadow:inset 3px 0 0 var(--accent)}
html[data-theme=scifi] .portal-body :is(.eyebrow,.portal-tabs a){letter-spacing:.23em}
html[data-theme=western] .portal-body :is(.portal-panel,.character-slot){border-width:3px;outline:1px dashed color-mix(in srgb,var(--accent) 30%,transparent);outline-offset:-9px}
html[data-theme=noir] .portal-body :is(.portal-panel,.character-slot){border-top:3px solid #af4b57}
html[data-theme=supernatural] .portal-body :is(.portal-panel,.character-slot){box-shadow:0 0 28px #b784cf15}
.portal-header.without-calendar{grid-template-columns:1fr}
#calendar-edit,#calendar-advance{margin-top:24px}#calendar-advance{max-width:520px}#calendar-edit textarea{font-family:inherit}#map-picker{max-width:650px;margin-bottom:24px}.map-access{margin-top:12px}

.content-add{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.content-add label{margin:0}.content-add select{width:auto}.content-dialog{width:min(780px,calc(100% - 32px));max-width:780px;max-height:90vh;overflow:auto;background:var(--surface);color:var(--text);padding:28px;border:1px solid var(--accent)}.content-dialog::backdrop{background:#000a}.content-dialog label{display:block;margin-top:14px}.content-dialog fieldset{margin-top:18px;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:8px}.content-dialog fieldset .toggle-row,.content-dialog>.toggle-row{display:flex}.content-tile{text-align:left;color:var(--text);font:inherit;cursor:pointer;overflow-wrap:anywhere}.content-tile img{width:100%;height:180px;object-fit:contain}.content-detail-image{max-width:100%;max-height:320px;object-fit:contain}.content-tile:hover{border-color:var(--accent)}#content-filter{max-width:380px}.recap-timeline{display:flex;gap:18px;overflow-x:auto;overflow-y:hidden;padding:8px 4px 20px;scroll-snap-type:x proximity;scrollbar-color:var(--accent) var(--background)}.recap-tile{position:relative;flex:0 0 238px;min-height:260px;display:flex;flex-direction:column;gap:9px;scroll-snap-align:start;padding:48px 20px 20px;background:linear-gradient(145deg,#eee4d2,#d4cab9);color:#15251b;border:1px solid #d5b778;border-radius:20px;box-shadow:0 18px 45px #0004;text-align:left;font:inherit;cursor:pointer}.recap-tile:disabled{cursor:default;opacity:.78}.recap-tile:hover:not(:disabled){outline:2px solid var(--accent);outline-offset:2px}.recap-tile.status-complete{background:linear-gradient(145deg,#e3f0de,#c7ddc4);border-color:#409b53}.recap-tile.status-played{border-color:#558e5d}.recap-code{position:absolute;top:14px;left:16px;border:1px solid #14362440;border-radius:999px;background:#14362419;padding:5px 9px;font-size:.72rem;font-weight:900;color:#173523}.recap-date{position:absolute;top:17px;right:16px;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#52664f;font-size:.72rem}.recap-status{align-self:flex-start;border-radius:99px;background:#14362419;padding:4px 8px;font-size:.72rem;font-weight:800}.recap-tile h3{font-family:Georgia,serif!important;color:#102418!important;font-size:1.02rem;margin:0;line-height:1.15;overflow-wrap:anywhere}.recap-tile p{margin:2px 0;color:#405343;font-size:.9rem}.recap-excerpt{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap}.recap-tile[hidden]{display:none}@media(max-width:650px){.content-dialog{padding:20px}.content-add{width:100%}.recap-tile{flex-basis:220px}.content-panel .portal-section-heading{flex-wrap:wrap;gap:12px}}

/* Keep labels clear of the inputs and focus rings in the recap editor. */
.content-dialog .recap-number-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:18px 0 26px}.content-dialog .recap-number-fields>div{min-width:0}.content-dialog .recap-number-fields label{margin:0 0 14px;line-height:1.5}.content-dialog .recap-number-fields input{display:block;width:100%;min-width:0}.content-dialog input:focus-visible,.content-dialog select:focus-visible{outline-offset:2px}.content-dialog .toggle-row{display:flex;align-items:center;gap:20px}.content-dialog .toggle-row input{flex:0 0 20px}.content-dialog .dialog-actions{flex-wrap:wrap}.recap-timeline{padding-inline-end:max(4px,calc(100% - 258px))}.picture-tile{max-width:720px;margin-top:24px}.picture-tile>img{display:block;max-width:100%;height:240px;object-fit:contain;margin-bottom:16px}.picture-tile-actions{display:flex;gap:14px;margin-top:18px}.picture-tile-actions button{padding:10px 18px;background:var(--accent);color:var(--background);border-radius:6px}#map-feature-status:not(:empty){padding:16px;margin:12px 0;border:1px solid var(--accent);border-radius:8px}#map-feature-status button{margin-top:10px}@media(max-width:550px){.content-dialog .recap-number-fields{grid-template-columns:1fr;gap:20px}.picture-tile>img{height:180px}}
.reward-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--accent) 20%,transparent)}.reward-row button,#add-reward-item{margin-top:10px;padding:8px 14px;border:1px solid var(--accent);background:var(--surface);color:var(--text);border-radius:6px}#content-form .recap-number-fields+label{margin-top:24px}

/* Maps, template packs and structured inventories. */
.map-picker{max-width:38rem;margin:1.5rem 0}.map-picker select{width:100%}
.inventory-item img{width:100%;max-height:15rem;object-fit:contain;border-radius:var(--radius,12px)}
.inventory-send{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line,#66563a)}
.inventory-send form{display:grid;gap:.65rem}.inventory-send p{margin:.5rem 0}
.item-stat-list{display:grid;gap:.65rem}.item-stat-list>div{display:grid;grid-template-columns:minmax(8rem,1fr) 2fr;gap:1rem;border-bottom:1px solid #ffffff14;padding-bottom:.5rem}.item-stat-list dd{margin:0;overflow-wrap:anywhere}
.item-stat-details{margin:1rem 0}.item-stat-details summary{cursor:pointer;font-weight:600}
.content-pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:1.5rem}
#basics-choices small{display:block;font-weight:normal;opacity:.8;margin-top:.25rem}

/* Keep wallpaper above the page canvas and below every content panel. */
.portal-body{min-height:100dvh;isolation:isolate}.portal-wallpaper{z-index:0;pointer-events:none}.portal-page{position:relative;z-index:1;min-height:100dvh}.portal-body .portal-header{grid-template-columns:minmax(0,1fr) minmax(230px,300px);min-height:135px}.portal-body .portal-header.without-calendar{grid-template-columns:1fr}.portal-body .portal-date{padding:10px 14px;width:100%;max-width:300px;justify-self:end}.portal-date h2{font-size:.95rem}.portal-date dt{min-width:42px}.portal-date dd{overflow-wrap:anywhere}.portal-date .placeholder-facts dd{max-width:75%}
html[data-theme=fantasy] .portal-body{font-family:"Palatino Linotype",Palatino,serif}html[data-theme=scifi] .portal-body{font-family:"Segoe UI",Arial,sans-serif}html[data-theme=western] .portal-body{font-family:Georgia,serif}html[data-theme=noir] .portal-body{font-family:"Courier New",monospace}html[data-theme=supernatural] .portal-body{font-family:"Book Antiqua",Palatino,serif}
html[data-theme=scifi] .portal-title h1{text-transform:uppercase;letter-spacing:.06em}html[data-theme=western] .portal-title h1{text-transform:uppercase;letter-spacing:.04em}html[data-theme=noir] .portal-title h1{letter-spacing:-.045em}html[data-theme=supernatural] .portal-title h1{font-style:italic;font-weight:400;font-size:clamp(2.4rem,4vw,3.6rem)}
.biome-fields{margin:18px 0;padding:16px;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent)}.biome-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px}.biome-options label{display:flex;align-items:center;gap:8px;margin:4px 0;font-size:.85rem}.biome-options input{width:18px;height:18px;flex-shrink:0;accent-color:var(--accent)}#remove-basics{padding:12px 18px;border:1px solid var(--accent);background:var(--background);color:var(--text);margin-top:12px}
@media(max-width:650px){.portal-body .portal-header{grid-template-columns:minmax(0,1fr)}.portal-body .portal-date{justify-self:start;max-width:280px}.portal-title{min-width:0}}

.generator-layout{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:24px;margin-top:22px;align-items:start}.generator-layout>*{min-width:0}.generator-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:16px;margin-top:18px}.generator-result{min-width:0;overflow-wrap:anywhere}.generator-result>img{width:100%;height:220px;object-fit:contain;margin-bottom:12px}.generator-result h3{margin:12px 0}.generator-result p{margin:8px 0}.generator-map{margin:0 0 18px}.generator-map img{width:100%;max-height:240px;object-fit:contain;background:var(--background)}.generator-map figcaption{padding:8px;text-align:center}.generator-run{margin-top:24px}.generator-send{border-top:1px solid var(--accent);margin-top:20px}.generator-settings .two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.generator-settings input{min-width:0}@media(max-width:800px){.generator-layout{grid-template-columns:minmax(0,1fr)}}

.combat-card{margin:18px 0;padding:16px;border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:8px}.combat-card h4{font-family:var(--heading-font);margin:12px 0}.combat-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:10px;margin:12px 0}.combat-stats dt{font-size:.75rem;opacity:.7}.combat-stats dd{margin:4px 0;font-weight:700;overflow-wrap:anywhere}.combat-attributes{display:flex;flex-wrap:wrap;gap:12px;font-size:.8rem}.combat-ability{margin:14px 0;overflow-wrap:anywhere}.combat-ability p{white-space:pre-wrap}.boss-ability{border-left:3px solid var(--accent);padding-left:12px}.combat-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.combat-edit-grid>*{min-width:0}.combat-edit-row{padding:14px;margin:12px 0;border:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}#combat-editor details>summary{cursor:pointer;padding:15px 0;color:var(--accent)}#generator-combat-controls{margin:18px 0;padding:14px;border:1px solid var(--accent)}@media(max-width:500px){.combat-edit-grid{grid-template-columns:minmax(0,1fr)}}
/* Equipment board and portrait/facts layout adapted from the supplied Skyraiders build. */
.equipment-loadout-stage{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;margin:1.5rem 0;padding:1rem;border:1px solid var(--border);border-radius:1rem;background:var(--surface)}
.equipment-clothes-corner{grid-column:1;grid-row:1}.equipment-loadout-main{grid-column:2/5;grid-row:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.equipment-winter-corner{grid-column:5;grid-row:1}.equipment-secondary-side{grid-column:1;grid-row:2}.equipment-ranged-side{grid-column:5;grid-row:2}.equipment-ammo-side{grid-column:5;grid-row:3}.equipment-trinket-row{grid-column:1/5;grid-row:3;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem}.equipment-quick-row{grid-column:1/-1;grid-row:4;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem}
.equipment-slot{width:100%;height:100%;min-height:160px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:.6rem;padding:1rem .5rem!important;border-radius:.6rem!important;white-space:normal;overflow-wrap:anywhere}.equipment-slot>span:first-child{font-size:.8rem}.equipment-slot-art{display:grid;place-items:center;height:90px;width:100%}.equipment-slot-art img{height:100%;width:100%;object-fit:contain}.equipment-slot-art i{font-size:2rem;font-style:normal;opacity:.6}.equipment-slot strong{font-size:.8rem}.equipment-slot.empty{border-style:dashed}.equipment-slot.filled{border-color:var(--accent)}
.equipment-picker-dialog{max-width:850px;width:92vw;max-height:85dvh;padding:0;background:var(--surface,#191624);color:var(--text,#eee);border:1px solid var(--accent,#d5ae65);border-radius:1rem}.equipment-picker-dialog header{display:flex;align-items:center;justify-content:space-between;gap:1rem;position:sticky;top:0;background:var(--surface,#191624);padding:1rem;z-index:2}.equipment-picker-body{padding:1.5rem}.equipment-picker-option{display:flex;align-items:center;gap:1rem;border-top:1px solid var(--border);padding:1rem 0}.equipment-picker-option img{width:80px;height:80px;object-fit:contain}.equipment-picker-option div{flex:1;min-width:0}.equipment-picker-option p{max-height:8rem;overflow:auto}
.sheet-combat{margin:1.5rem 0}.sheet-abilities{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.7rem;margin:1rem 0}.sheet-abilities>div{display:grid;text-align:center;border:1px solid var(--border);padding:1rem .5rem;border-radius:.6rem;gap:.5rem}.sheet-abilities span{text-transform:capitalize;font-size:.85rem}.sheet-abilities strong{font-size:1.6rem}.character-profile-card .placeholder-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
.content-dialog.codex-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;padding:0!important;height:min(88dvh,950px);max-height:88dvh}.codex-dialog-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--border);background:var(--surface,#191624)}.codex-dialog-header h2{margin:0}.codex-close{flex:none;font-size:1.7rem;padding:.3rem 1rem!important}.codex-dialog-scroll{overflow:auto;min-height:0;padding:1.5rem}.unsaved-dialog{background:var(--surface,#191624);color:var(--text,#eee);border:1px solid var(--accent,#d5ae65);border-radius:1rem;max-width:560px;padding:2rem}.unsaved-dialog::backdrop{background:#0009}.encounter-attack{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.attack-result button{margin:.5rem .5rem .5rem 0}
@media(max-width:750px){.equipment-loadout-stage{display:flex;flex-wrap:wrap;padding:.5rem;gap:.5rem}.equipment-loadout-stage>aside{flex:1 1 30%}.equipment-loadout-main{width:100%;order:-1;gap:.5rem}.equipment-trinket-row,.equipment-quick-row{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}.equipment-slot{min-height:140px}.sheet-abilities{grid-template-columns:repeat(3,minmax(0,1fr))}.equipment-picker-option{flex-wrap:wrap}.equipment-picker-option div{flex-basis:60%}}
.equipment-board{--border:color-mix(in srgb,var(--accent) 24%,transparent);margin-top:1.5rem;margin-bottom:2rem}.equipment-slot{background:var(--background);color:var(--text);border:1px solid var(--border)}.equipment-slot:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--background))}.equipment-picker-dialog button,.unsaved-dialog button,.encounter-attack button,.codex-close,#equipment-login button,#player-password button{background:var(--accent);color:var(--background);padding:.75rem 1rem;border-radius:.5rem}.equipment-picker-dialog header button{font-size:1.5rem}.sheet-combat{--border:color-mix(in srgb,var(--accent) 24%,transparent)}
#dice-dock{position:relative;z-index:1000;color:var(--text)}#dice-toggle{position:fixed;right:12px;top:48%;width:62px;height:68px;padding:6px;background:var(--surface);border:1px solid var(--accent);border-radius:14px;box-shadow:0 5px 22px #0006;color:var(--accent)}#dice-dock svg{width:100%;height:100%;overflow:visible}#dice-dock polygon{fill:color-mix(in srgb,var(--accent) 12%,var(--surface));stroke:var(--accent);stroke-width:2}#dice-dock path{fill:none;stroke:var(--accent);stroke-width:.8;opacity:.5}#dice-dock svg text{fill:var(--text);font:bold 18px Georgia,serif}#dice-tray{position:fixed;right:84px;top:50%;transform:translateY(-50%);width:min(400px,calc(100vw - 100px));max-height:90dvh;overflow:auto;border:1px solid var(--accent);background:var(--surface);border-radius:16px;box-shadow:0 16px 60px #0008;padding:18px}#dice-tray header{display:flex;align-items:center;justify-content:space-between;gap:1rem}#dice-tray header button{font-size:1.5rem;background:transparent;color:var(--text);padding:5px 12px}#dice-tray h3{margin:12px 0 4px}.dice-history>p{font-size:.75rem;opacity:.7}#dice-log{padding:0;list-style:none;max-height:24dvh;overflow:auto;font-size:.85rem;margin:10px 0 18px}#dice-log li{padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--accent) 20%,transparent)}#dice-log p{font-size:.75rem;overflow-wrap:anywhere}.dice-choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.dice-choices>div{min-width:0}.dice-choices button[data-die]{position:relative;display:flex;flex-direction:column;align-items:center;width:100%;padding:6px;background:var(--background);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);border-radius:10px}.dice-choices svg{max-height:56px}.dice-choices span{font-size:.75rem}.dice-choices b{position:absolute;right:0;top:0;background:var(--accent);color:var(--button-text,#000);border-radius:50%;min-width:22px;padding:2px;font-size:.75rem}.dice-choices [data-less]{background:transparent;color:var(--text);width:100%;font-size:1.2rem}#dice-selection{margin:12px 0;font-size:.9rem}.dice-actions{display:flex;gap:10px}.dice-actions button{padding:10px 18px;border-radius:7px;background:var(--background);color:var(--text)}#dice-roll{background:var(--accent);color:var(--button-text,#000);flex:1;font-weight:bold}#dice-error{font-size:.8rem;margin-top:8px}.store-item{position:relative}.store-remove{position:absolute;right:10px;top:10px;z-index:1;width:36px;height:36px;border-radius:50%;background:var(--accent);color:var(--button-text,#000);font-size:1.4rem}.store-item h3{padding-right:28px}#store-randomize{margin:1.5rem 0;max-width:600px}#stock-count{max-width:100px;margin-right:12px}#store-tiles{margin-top:1.5rem}.inventory-send{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.inventory-send>h3,.inventory-send>p{grid-column:1/-1}.inventory-send form{min-width:0}#store-status{margin:1rem 0}@media(max-width:600px){#dice-toggle{right:6px;width:48px;height:54px}#dice-tray{right:8px;top:auto;bottom:12px;transform:none;width:calc(100vw - 16px);max-height:85dvh;z-index:1}.inventory-send{grid-template-columns:1fr}.dice-history #dice-log{max-height:20dvh}}
#dice-tray>label{display:block;margin:10px 0;font-size:.85rem}#dice-tray>label[hidden]{display:none}#dice-private{width:auto;margin-right:8px}#dice-actor{width:100%;margin-top:5px}

/* Dice controls reserve room for the highlighted focus border on every side. */
#dice-tray{padding:26px;scroll-padding:24px}#dice-tray header{padding:4px 2px 12px;gap:20px}#dice-tray>label{margin:20px 0;line-height:1.6}#dice-actor{margin-top:14px;padding:13px 15px}.dice-choices{gap:18px 16px;padding:10px 6px}.dice-choices>div{display:flex;flex-direction:column;gap:12px}.dice-choices b{right:4px;top:4px}#dice-tray :is(button,select,input):focus-visible{outline:2px solid var(--accent);outline-offset:4px}.dice-actions{gap:20px;padding:8px 6px}#dice-private-label{padding:6px 4px}#dice-tray .dice-history{padding:0 4px}
@media(max-width:600px){#dice-tray{padding:24px 20px}.dice-choices{gap:18px 14px}}

.character-builder{max-width:950px}.character-builder>p{margin:14px 0 24px}.character-builder fieldset{margin:30px 0;padding:26px;border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:12px;min-width:0}.character-builder legend{padding:0 12px;color:var(--accent);font-weight:600}.character-builder label{margin:14px 0;line-height:1.6}.character-builder label>input,.character-builder label>select,.character-builder label>textarea{margin-top:14px}.build-fields,.build-scores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.build-actions{display:flex;gap:20px;flex-wrap:wrap;margin:24px 0}.character-builder input,.character-builder select,.character-builder textarea{background:var(--background);color:var(--text)}#build-pool{margin:20px 0;overflow-wrap:anywhere}#build-status{margin:20px 0;color:var(--accent)}@media(max-width:700px){.build-fields,.build-scores{grid-template-columns:1fr 1fr}}@media(max-width:440px){.build-fields,.build-scores{grid-template-columns:1fr}.character-builder fieldset{padding:20px}}

.system-sheet>header{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:26px}.system-sheet>header img{width:100px;height:130px;object-fit:cover;border-radius:12px}.sheet-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.sheet-groups dd{white-space:pre-wrap;overflow-wrap:anywhere}.sheet-edit,.sheet-policy{margin:30px 0;padding:24px;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:12px}.sheet-edit summary,.sheet-policy summary{cursor:pointer;color:var(--accent);font-weight:600}.sheet-edit form{margin-top:24px}.sheet-edit input[type=checkbox]{width:auto;display:block}.sheet-edit .primary{margin:28px 0}.sheet-field-row{display:grid;grid-template-columns:2fr 2fr 1fr;gap:22px;margin:24px 0;padding:24px;border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:12px}.sheet-field-row .build-actions{grid-column:1/-1;margin:0}.sheet-field-row button{padding:10px 16px;background:var(--surface);border:1px solid var(--accent);border-radius:7px}#sheet-settings label>input,#sheet-settings label>select,.sheet-edit label>input,.sheet-edit label>textarea,.sheet-edit label>select{margin-top:14px}.sheet-preview-heading{margin:36px 0 24px}.sheet-licence{display:block;font-size:.8rem;color:var(--accent);margin:24px 0}.sheet-policy p{margin:18px 0}@media(max-width:700px){.sheet-groups,.sheet-field-row{grid-template-columns:1fr}.sheet-field-row{padding:20px}}

.ability-roll{display:inline-flex;align-items:center;justify-content:center;width:1.9rem;height:1.9rem;min-height:0;padding:.3rem;margin-right:.55rem;vertical-align:middle;border:1px solid var(--accent);border-radius:.4rem;color:var(--accent);background:transparent}.ability-roll svg{width:1.1rem;height:1.1rem;fill:none;stroke:currentColor;stroke-width:1.3}.ability-roll:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.sheet-locked{opacity:.8}.placeholder-facts dd{white-space:pre-wrap}

.sheet-option-picker{padding:1rem;margin:.6rem 0 1.3rem;border:1px solid var(--accent);border-radius:.6rem;min-width:0}.sheet-option-picker label{display:block;margin:.7rem 0}.sheet-option-description{white-space:pre-wrap;max-height:14rem;overflow:auto}.sheet-option-picker select,.sheet-option-picker input{width:100%}

.dnd-spell-picker [data-spell-detail] dl{display:grid;grid-template-columns:8rem minmax(0,1fr);gap:.5rem 1rem}.dnd-spell-picker dd{margin:0;overflow-wrap:anywhere}.dnd-spell-picker [data-spell-detail]{padding:.5rem 0}

.rule-library{margin:1rem 0 1.5rem}.rule-library .rule-description{white-space:pre-wrap;overflow-wrap:anywhere;max-height:24rem;overflow:auto;padding:.65rem}.rule-library .rule-source{font-size:.85rem;opacity:.8}.rule-library [data-details]{margin:1rem 0}.rule-library .toggle-row input{width:auto}

/* Roll highlights keep space around borders and mark natural d20 faces, not totals. */
#dice-log{padding:7px;scroll-padding:7px}
#dice-log li{padding:12px;margin:0 0 12px;border:2px solid transparent;border-bottom-color:color-mix(in srgb,var(--accent) 20%,transparent);border-radius:12px;overflow-wrap:anywhere}
#dice-log li.dice-newest{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}
.dice-latest-label{display:block;margin-bottom:8px;font-size:.65rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--accent)}
#dice-log strong{display:block;line-height:1.5}
#dice-log p{line-height:2.5;margin:8px 0 0}
.dice-natural-twenty,.dice-natural-one{display:inline-block;min-width:2.3em;padding:0 .45em;margin:3px 4px;text-align:center;font-weight:900;border-radius:9px;border:2px solid transparent;line-height:1.8;vertical-align:middle}
.dice-natural-twenty{color:#fff;background:linear-gradient(#21152f,#21152f) padding-box,conic-gradient(#ff627f,#ffc857,#a9ed6a,#48e5e9,#7f93ff,#e87dff,#ff627f) border-box;box-shadow:-3px 0 10px #ff627f80,3px 0 10px #48e5e980,0 0 18px #b17aff50;text-shadow:0 0 7px #e87dff}
.dice-natural-one{color:#fff;background:radial-gradient(ellipse at top,#35313f,#050408 75%) padding-box,linear-gradient(#82778f,#342d3d) border-box;box-shadow:0 0 0 2px #050408,0 0 12px 5px #000b;text-shadow:0 0 6px #aaa0bd}
@media(forced-colors:active){#dice-log li.dice-newest,.dice-natural-twenty,.dice-natural-one{border-color:Highlight}.dice-natural-twenty,.dice-natural-one{color:CanvasText;background:Canvas}}

.dnd-options-picker{padding:22px;margin:20px 0;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:14px;min-width:0}.dnd-options-picker h4{margin:16px 0 12px}.dnd-options-picker h5{font:inherit;font-weight:700;margin:14px 0 8px}.dnd-options-picker :is(p,label){line-height:1.6}.dnd-options-picker [data-feature-detail],.dnd-options-picker [data-background-detail]{overflow-wrap:anywhere}.dnd-options-picker [data-custom-background]{padding:12px 0}.dnd-options-picker .build-actions{flex-wrap:wrap;gap:16px}

.mechanics-bonus-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(80px,1fr);gap:20px;margin:18px 0}#codex-mechanics{border:1px solid var(--accent);border-radius:12px;padding:24px;margin:24px 0}#codex-mechanics [hidden],#dice-spell-controls[hidden]{display:none}.spell-roll-row{display:flex;align-items:center;flex-wrap:wrap;gap:16px;border-bottom:1px solid var(--border);padding:16px 0}.spell-roll-row strong{flex:1;min-width:160px}.spell-roll-row button{margin:4px}#dice-spell-controls{border:1px solid var(--accent);padding:16px;border-radius:12px;margin:20px 0}#dice-spell-controls p{font-size:.8rem;line-height:1.6}.dnd-options-picker select{margin:12px 0}

/* Use the full campaign width for sheets and long option panels. */
.character-builder,.system-sheet,.sheet-edit{width:100%;max-width:none;min-width:0}
.build-fields>label:has(textarea),.build-fields>.dnd-options-picker,.build-fields>.dnd-spell-picker,.build-fields>.sheet-option-picker,.build-fields>.rule-library{grid-column:1/-1;min-width:0}
.sheet-groups .portal-subpanel{min-width:0}.sheet-groups .placeholder-facts>div:has(dd:not(:empty)){min-width:0}.sheet-groups dd{min-width:0;text-align:right}.sheet-groups dt{flex-shrink:0}
.content-permission{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px 12px;margin:14px 0 24px;font-size:.8rem;font-weight:400;line-height:1.6}
.portal-body .content-permission input[type=checkbox]{width:20px;height:20px;margin:3px 0;display:block}.content-permission small{grid-column:2;opacity:.75}
.inventory-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:28px}.inventory-currency{text-align:right;padding:14px 18px;border:1px solid var(--accent);border-radius:12px}.inventory-currency dl{display:flex;gap:20px;flex-wrap:wrap;margin:12px 0 0}.inventory-currency dd{margin:4px 0 0;font-variant-numeric:tabular-nums}.inventory-currency dt{font-size:.75rem;color:var(--accent)}
.character-account{margin:24px 0}.content-policy h3{margin:26px 0 10px}.content-policy p{margin:12px 0}.content-policy a{text-decoration:underline}.portal-footer{flex-wrap:wrap}
@media(max-width:600px){.inventory-heading{flex-direction:column}.inventory-currency{text-align:left;max-width:100%}.inventory-currency dl{gap:16px}.sheet-groups .placeholder-facts>div{flex-wrap:wrap}.sheet-groups dd{text-align:left}}

/* Messaging stays inside the current campaign except explicitly addressed support. */
.inbox-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-bottom:24px}.inbox-heading>div{display:flex;gap:14px;flex-wrap:wrap}.inbox-layout{display:grid;grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr);gap:28px;margin-top:24px}.inbox-list{display:grid;gap:14px}.inbox-row{display:block;text-align:left;background:var(--background);color:var(--text);padding:20px;border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:12px;width:100%;overflow-wrap:anywhere}.inbox-row.unread{border:2px solid var(--accent)}.inbox-row strong,.inbox-row small{display:block;margin:10px 0}.inbox-row>span,.inbox-row small{font-size:.75rem;color:var(--accent)}.inbox-row p{font-size:.85rem}.inbox-conversation{min-width:0;padding:24px;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:14px}.inbox-conversation header>p{margin:12px 0}.inbox-transcript article{padding:20px 0;border-bottom:1px solid color-mix(in srgb,var(--accent) 25%,transparent);margin-bottom:20px}.inbox-transcript p{white-space:pre-wrap;overflow-wrap:anywhere;margin:12px 0}.inbox-transcript time{display:block;font-size:.75rem;opacity:.7;margin:8px 0}.inbox-transcript img{max-width:100%;max-height:360px;object-fit:contain;border:1px solid var(--accent);border-radius:8px}.inbox-page{overflow-wrap:anywhere;font-size:.8rem}
.message-dialog{width:min(760px,94vw);max-width:760px;max-height:90dvh;padding:28px;background:var(--surface);color:var(--text);border:1px solid var(--accent);border-radius:18px;overflow:auto}.message-dialog>header{display:flex;justify-content:space-between;align-items:center;gap:24px;position:sticky;top:-28px;padding:16px 0;background:var(--surface);z-index:1}.message-dialog>header button{padding:8px 16px;font-size:1.8rem;background:transparent;color:var(--text)}.message-dialog p{color:var(--text);margin:14px 0}.message-dialog input,.message-dialog select,.message-dialog textarea{background:var(--background);color:var(--text)}.message-dialog [data-image] img{display:block;max-width:100%;max-height:300px;margin:20px auto}.message-consent{display:flex;align-items:flex-start;gap:14px;line-height:1.6;margin-top:24px}.message-consent input{width:22px;height:22px;flex:none;margin-top:2px}.screenshot-actions{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin:20px 0}.screenshot-actions label{margin:0;cursor:pointer}.screenshot-actions input{max-width:240px}.message-dialog.capturing{opacity:0;pointer-events:none}.message-dialog.capturing::backdrop{background:transparent}.message-help{font-size:.8rem}.message-sent{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:2000;background:var(--accent);color:var(--button-text,#111);padding:18px 24px;border-radius:12px;max-width:90vw}
#report-bug{position:fixed;bottom:16px;left:16px;z-index:900;display:flex;align-items:center;gap:10px;background:var(--surface);color:var(--accent);border:1px solid var(--accent);border-radius:14px;padding:12px 16px;box-shadow:0 4px 20px #0005}#report-bug>span:last-child{max-width:0;overflow:hidden;white-space:nowrap;transition:max-width .15s}#report-bug:hover>span:last-child,#report-bug:focus-visible>span:last-child{max-width:130px}.portal-footer{padding-bottom:68px}.portal-footer .text-button{font-size:inherit}#nexus-inbox{margin-top:36px}
@media(hover:none){#report-bug>span:last-child{max-width:130px}}@media(max-width:800px){.inbox-layout{grid-template-columns:1fr}.inbox-conversation{padding:20px}.message-dialog{padding:22px}.message-dialog>header{top:-22px}.message-dialog .dialog-actions{flex-wrap:wrap}}

#codex-biomes,#codex-generator{border:0;padding:0;margin:20px 0;min-width:0}#item-editor{padding:24px;border:1px solid var(--accent);border-radius:12px;margin:24px 0;min-width:0}#item-editor [data-item-attacks]{padding:20px;margin:20px 0;min-width:0}.searchable-picture{margin:20px 0;min-width:0}.searchable-picture small{display:block;margin:12px 0;line-height:1.6;color:var(--accent)}

/* Keep labels and focus outlines clear in bug reports and all inbox composers. */
.message-dialog{padding:34px;scroll-padding-top:100px}.message-dialog>header{top:-34px;padding:20px 0;margin-bottom:22px}.message-dialog form{display:grid;gap:22px;padding:8px 8px 18px}.message-dialog form>label:not(.message-consent){display:grid;gap:12px;line-height:1.5;margin:0}.message-dialog form>label>input,.message-dialog form>label>select,.message-dialog form>label>textarea{display:block;box-sizing:border-box;width:100%;margin:0;padding:14px 16px;line-height:1.5}.message-dialog .message-consent{margin:8px 0;gap:16px}.message-dialog .screenshot-actions{padding:6px;margin:4px 0;gap:18px}.message-dialog .content-permission{margin-top:12px}.message-dialog .dialog-actions{gap:16px;padding-top:12px}.message-dialog input:focus-visible,.message-dialog textarea:focus-visible,.message-dialog select:focus-visible{outline-offset:4px}
#session-settings,#next-session-form{display:grid;gap:20px}#session-settings{max-width:1000px}#session-settings label{display:grid;gap:12px}#session-settings input,#session-settings select,#session-settings textarea{width:100%;min-width:0;box-sizing:border-box}.session-time-fields{display:grid;grid-template-columns:1.3fr 1.3fr .8fr;gap:22px}.session-send-buttons{display:flex;gap:18px;flex-wrap:wrap}.session-hook{padding:20px;border:1px solid var(--accent);border-radius:12px}.session-hook form{display:grid;gap:16px;margin-block:18px}.next-session-banner{font-size:.95rem;line-height:1.6;margin-top:18px}.next-session-banner strong{color:var(--accent)}
@media(max-width:700px){.message-dialog{padding:22px}.message-dialog>header{top:-22px}.message-dialog form{padding:8px 6px 16px}.session-time-fields{grid-template-columns:1fr}}

#foundry-settings[hidden]{display:none}#vtt-form fieldset{padding:22px;display:grid;gap:18px}#vtt-form{margin-bottom:30px}.vtt-display iframe{width:100%;height:75vh;min-height:420px;border:1px solid var(--accent);border-radius:12px;margin-top:20px}.vtt-display .button{display:inline-block;padding:12px 20px}
.message-dialog form>.message-consent>input{width:22px;height:22px;padding:0;margin:3px 0 0;flex:0 0 22px}.message-dialog .message-consent>span{min-width:0;overflow-wrap:anywhere}.message-dialog .screenshot-actions label{min-width:0;max-width:100%}.message-dialog .screenshot-actions input{width:100%;max-width:100%}

.session-countdown{display:block;margin-top:8px;font-size:1.08rem;font-weight:700}

/* Keep campaign date at the top right; session countdown belongs beneath it. */
.portal-body .portal-header>.portal-date{align-self:start;justify-self:end;margin-top:0}.portal-header>.portal-date .session-countdown{border-top:1px solid color-mix(in srgb,var(--accent) 25%,transparent);padding-top:8px;margin-top:8px;font-size:.85rem;line-height:1.4;color:var(--accent)}.portal-header>.session-countdown{align-self:start;justify-self:end;margin:0;font-size:.9rem}.portal-title .next-session-banner{margin:10px 0 0;font-size:.85rem;line-height:1.45}
@media(max-width:700px){.portal-body .portal-header>.portal-date{justify-self:end}.portal-header>.session-countdown{justify-self:end}}

.tool-toolbar,.tool-player-links{display:flex;align-items:end;gap:18px;flex-wrap:wrap;margin:18px 0}.tool-player-links a{display:inline-block;padding:14px 20px}.tool-toolbar label{display:grid;gap:10px;min-width:0}.diary-layout{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(0,1.8fr);gap:28px}.diary-entry{display:grid;gap:10px;text-align:left;width:100%;padding:18px;margin-bottom:14px;overflow-wrap:anywhere}.diary-entry time{font-size:.85rem;opacity:.8}.diary-entry span{font-size:.9rem;font-weight:400}.diary-layout form,#survival-form,#survival-config-form{display:grid;gap:24px;padding:12px}.diary-layout form[hidden]{display:none}.diary-layout label,.survival-trackers>label,.survival-rules label{display:grid;gap:12px;min-width:0}.diary-layout input,.diary-layout textarea,.survival-rules input{width:100%;min-width:0}.survival-trackers,.survival-rules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.tracker-input{display:flex;gap:10px;align-items:center}.tracker-input input{min-width:0;width:100%;text-align:center}.tracker-input button{flex:0 0 46px;padding:12px 6px}.survival-rules fieldset{padding:20px;display:grid;gap:18px;min-width:0}.audit-entry{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(140px,.8fr) minmax(200px,2fr);gap:16px;padding:20px 8px;border-bottom:1px solid color-mix(in srgb,var(--accent) 25%,transparent);overflow-wrap:anywhere}.audit-entry ul{grid-column:3;margin:0;padding-left:20px}.audit-entry time{font-size:.85rem;opacity:.8}
@media(max-width:700px){.diary-layout,.survival-trackers,.survival-rules,.audit-entry{grid-template-columns:1fr}.audit-entry ul{grid-column:1}.tool-toolbar{align-items:stretch}.tool-toolbar label{width:100%}}

.survival-rules .toggle-row{display:flex;justify-content:space-between;align-items:center;gap:16px}.survival-rules input[type=checkbox]{width:22px;flex:0 0 22px}.survival-party{margin-top:28px}.survival-party [data-party-values]{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:20px;margin-top:24px}.character-carry>div{flex-wrap:wrap}.vital-placeholder small{overflow-wrap:anywhere;max-width:100px}

/* Compact survival rule cards: three paired rows. */
.survival-rules fieldset{gap:14px;padding:16px;align-content:start}
.survival-rule-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:end}
.survival-rules .survival-rule-pair label{margin:0;padding:0;gap:8px;font-size:.9rem}
.survival-rules .survival-rule-pair input:not([type=checkbox]){padding:10px 12px;min-height:42px;margin:0}
.survival-rules .survival-rule-pair .toggle-row{align-self:center;border:0;gap:10px;font-size:.85rem}
.survival-rules [data-remove]{justify-self:end;padding:8px 14px;margin:0;font-size:.85rem}
@media(max-width:500px){.survival-rule-pair{gap:12px}.survival-rules fieldset{padding:12px}.survival-rules .survival-rule-pair label{font-size:.8rem}}

.survival-definition{display:flex;align-items:center;justify-content:space-between;gap:28px}.survival-definition>p{margin:0;flex:1}.survival-definition .toggle-row{display:flex;align-items:center;gap:14px;max-width:340px;padding:0;margin:0;border:0;font-size:.9rem}.survival-definition input[type=checkbox]{width:22px;flex:0 0 22px}.survival-top-actions{margin:0}.survival-rules fieldset{position:relative;padding-top:24px}.survival-rules legend{max-width:calc(100% - 44px);overflow-wrap:anywhere}.survival-rules [data-remove]{position:absolute;top:0;right:6px;width:28px;height:28px;padding:0;display:grid;place-items:center;font-size:1.3rem;line-height:1;border-radius:6px}.survival-remove-dialog{width:min(440px,calc(100% - 32px))}.survival-remove-dialog h3,.survival-remove-dialog p{margin:0 0 18px}.survival-remove-dialog .tool-toolbar{margin-bottom:0}
@media(max-width:650px){.survival-definition{align-items:start;flex-direction:column;gap:16px}.survival-definition .toggle-row{max-width:none}}

.store-admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}.store-admin-toolbar #store-randomize{margin:0;max-width:none}.store-admin-toolbar #store-randomize>div{display:flex;align-items:center;gap:12px;margin-top:10px}.store-admin-toolbar .store-enabled{display:flex;align-items:center;gap:16px;margin:0;padding:0;border:0}.store-enabled input{width:22px;flex:0 0 22px}.store-price,.store-buy{display:flex;align-items:end;gap:14px;flex-wrap:wrap;margin-top:18px}.store-price label,.store-buy label{display:grid;gap:8px;min-width:0;flex:1}.store-price input,.store-price select,.store-buy input{width:100%;min-width:0}.store-buy input{max-width:100px}.store-price button,.store-buy button{padding:12px 16px}.store-item>strong{display:block;margin-top:18px}

#profession-form{display:grid;gap:22px}.profession-activation{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-right:70px}.profession-activation .toggle-row{display:flex;align-items:center;gap:16px;padding:0;margin:0;border:0}.profession-activation input{width:22px;flex:0 0 22px}.profession-ranks{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.profession-branch{padding:16px;margin:12px 0;border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);border-radius:8px}.profession-branch summary{cursor:pointer}.profession-branch .profession-branch{margin-left:14px}.profession-branch-option{padding:12px 0 0 18px;border-left:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}.profession-branch-option label{display:flex;gap:14px;align-items:start;margin:0 0 14px}.profession-branch-option input{width:20px;flex:0 0 20px;margin-top:4px}.profession-branch-option small{display:block;opacity:.8;margin-top:6px}.profession-branch-options{padding-right:40px}#profession-tools [data-professions]>.portal-subpanel{margin-top:24px}@media(max-width:600px){.profession-activation{align-items:start;flex-direction:column;padding-right:32px}.profession-branch-option{padding-left:10px}.profession-branch-options{padding-right:22px}.profession-branch{padding:10px}.profession-branch .profession-branch{margin-left:4px}}

.store-admin-toolbar{padding-right:70px}@media(max-width:650px){.store-admin-toolbar{padding-right:36px}}

#downtime-tools form{display:grid;gap:18px;margin:20px 0;padding:8px}#downtime-tools label{display:grid;gap:10px;min-width:0}#downtime-tools input:not([type=checkbox]),#downtime-tools select,#downtime-tools textarea{width:100%;min-width:0}#downtime-tools .toggle-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-right:40px}#downtime-tools input[type=checkbox]{width:22px;flex:0 0 22px}.downtime-pair,.downtime-options,.downtime-jobs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.downtime-options{padding:18px 0}.downtime-options label{display:flex!important;align-items:start}.downtime-job header{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}.downtime-usage{display:flex;gap:16px;flex-wrap:wrap}#downtime-tools>.portal-subpanel,#downtime-tools [data-downtime]>.portal-subpanel{margin:24px 0}#downtime-tools [data-station-label][hidden]{display:none}#station-tools .portal-subpanel{margin:20px 0}@media(max-width:700px){.downtime-pair,.downtime-options,.downtime-jobs{grid-template-columns:1fr}}

/* Keep downtime switches, timing and allowances in two compact paired rows. */
.downtime-settings-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:center}
.downtime-switches{display:grid;gap:14px}
#downtime-tools .downtime-switches .toggle-row{margin:0;padding:0;border:0;justify-content:flex-start;gap:16px;font-size:.9rem}
.downtime-switches .toggle-row span{flex:1}
#downtime-tools .downtime-switches input{margin:0;height:22px}
#downtime-tools .downtime-timing{display:flex;align-items:center;gap:16px;margin:0}
.downtime-timing>span{flex:none}.downtime-timing>select{flex:1}
.downtime-limits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
#downtime-tools .downtime-limits label{margin:0;font-size:.9rem;gap:8px}
#downtime-tools .downtime-limits input{margin:0;padding:10px 12px}
.downtime-definition p{margin:0;font-size:.85rem;line-height:1.55}.downtime-definition p+p{margin-top:10px}
@media(max-width:800px){.downtime-settings-row{grid-template-columns:1fr;gap:20px}}
@media(max-width:450px){#downtime-tools .downtime-timing{display:grid;gap:8px}.downtime-limits{gap:12px}}

.admin-logo-session{display:flex;flex-direction:column;align-items:center;gap:14px;min-width:0}.admin-session-control{display:grid;justify-items:center;gap:8px;max-width:260px}.admin-session-control button{padding:10px 18px;white-space:nowrap;font-size:.85rem}.admin-session-control small{font-size:.75rem;text-align:center;line-height:1.5;overflow-wrap:anywhere}.portal-admin-mark{align-items:flex-start}

/* Task-based admin navigation, with one visible row of pages at a time. */
.admin-navigation{position:relative;margin:22px 0}.admin-area-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.admin-area-nav>a{display:flex;flex-direction:column;gap:6px;justify-content:center;min-height:72px;padding:14px 18px;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:12px;background:var(--surface);color:var(--text);text-decoration:none;min-width:0}.admin-area-nav strong{font-size:.95rem}.admin-area-nav small{font-size:.75rem;line-height:1.4}.admin-area-nav>a[aria-current]{background:var(--accent);color:var(--button-text,#111);border-color:var(--accent)}.portal-admin-tabs.admin-section-nav{flex-direction:row;flex-wrap:wrap;gap:10px;margin:14px 0 0;padding:14px;border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);border-radius:12px;background:var(--surface)}.admin-section-nav>a{display:flex;align-items:center;justify-content:center;min-height:44px;text-transform:none;letter-spacing:normal;font-size:.9rem;padding:10px 16px}.admin-navigation a:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.admin-area-nav>a:hover:not([aria-current]),.admin-section-nav>a:hover:not([aria-current]){border-color:var(--accent);text-decoration:underline}.admin-skip{position:absolute;left:0;top:0;transform:translateY(-200vh)}.admin-skip:focus{transform:none;z-index:5;background:var(--accent);color:var(--button-text,#111);padding:14px;border-radius:8px}
@media(max-width:900px){.admin-area-nav{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:550px){.admin-area-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-area-nav>a{min-height:64px;padding:12px}.admin-area-nav strong{font-size:.85rem}.admin-area-nav small{font-size:.7rem}.admin-section-nav>a{flex:1 1 120px}.portal-admin-tabs.admin-section-nav{padding:10px}}

/* Collapsible Admin tiles preserve existing controls and their draft values. */
.admin-collapsible{min-width:0}.admin-collapsible>.admin-tile-toggle{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;min-height:44px;margin:0;padding:8px 4px;background:transparent;color:var(--text);border:0;border-radius:6px;text-align:left;font-family:var(--heading-font);font-size:1.15rem;font-weight:700;line-height:1.4;cursor:pointer}.admin-tile-toggle::after{content:'−';flex:none;color:var(--accent);font-family:Arial,sans-serif;font-size:1.5rem}.admin-collapsible[data-collapsed=true]>.admin-tile-toggle::after{content:'+'}.admin-collapsible[data-collapsed=true]>:not(.admin-tile-toggle){display:none!important}.admin-collapsible .admin-tile-original-title{display:none}.admin-collapsible>.admin-tile-toggle:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.admin-collapsible[data-collapsed=false]>.admin-tile-toggle{margin-bottom:18px}.admin-collapsible[data-collapsed=true]{padding-block:14px}.admin-collapsible[data-collapsed=true]::before{display:none}.survival-rules .admin-collapsible>.admin-tile-toggle{padding-right:30px;font-size:1rem}

.admin-collapsible>.admin-tile-toggle{justify-content:flex-start}.admin-tile-toggle::after{display:none}.admin-tile-toggle::before{content:'−';flex:0 0 22px;color:var(--accent);font-family:Arial,sans-serif;font-size:1.5rem;text-align:center}.admin-collapsible[data-collapsed=true]>.admin-tile-toggle::before{content:'+'}

.admin-session-control{display:flex;align-items:center;justify-content:center;gap:12px;max-width:320px}.admin-session-control small{text-align:left;max-width:150px}.admin-session-control button{flex:none}
#player-edit>.portal-grid{align-items:start}#player-edit .player-editor-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}#player-edit .player-editor-field{min-width:0;display:flex;flex-direction:column;gap:8px}#player-edit .player-editor-field>label{margin:0;line-height:1.4}#player-edit .player-editor-field>input,#player-edit .player-editor-field>select,#player-edit .player-editor-field>textarea{width:100%;min-width:0;margin:0;padding:10px 12px;box-sizing:border-box}#player-edit .player-editor-field>textarea{min-height:100px}#player-edit .content-permission{font-size:.75rem;margin-top:4px}
#player-edit .searchable-picture{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin:0}#player-edit .searchable-picture>label{margin:0}#player-edit .searchable-picture>label:first-child{grid-column:1;grid-row:1}#player-edit .searchable-picture>[data-picture-search]{grid-column:1;grid-row:2}#player-edit .searchable-picture>label[for=portrait]{grid-column:2;grid-row:1}#player-edit .searchable-picture>select{grid-column:2;grid-row:2}#player-edit .searchable-picture>input,#player-edit .searchable-picture>select{width:100%;min-width:0;margin:0;padding:10px 12px}#player-edit .searchable-picture>small,#player-edit .searchable-picture>p{grid-column:1/-1;margin:0}
@media(max-width:450px){#player-edit .player-editor-fields,#player-edit .searchable-picture{grid-template-columns:1fr}#player-edit .searchable-picture>*{grid-column:auto!important;grid-row:auto!important}.admin-session-control{flex-wrap:wrap}}

#player-edit .player-save-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap}#player-edit .player-content-consent{display:flex;align-items:flex-start;gap:10px;margin:0;flex:1 1 350px;max-width:680px;font-size:.8rem;line-height:1.45}#player-edit .player-content-consent input{width:20px;height:20px;flex:0 0 20px;margin:2px 0 0}#player-edit .player-content-consent small{display:block;font-size:.7rem;margin-top:4px;opacity:.8}#player-edit .player-save-bar>button{flex:none}.portal-body select[data-character-choice]{background:var(--background);color:var(--text);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);border-radius:10px;padding:10px 12px;min-width:0;width:100%}.player-editor-field>input[hidden]{display:none!important}
@media(max-width:650px){#player-edit .player-content-consent{order:2;max-width:none;flex-basis:100%}#player-edit .player-save-bar{position:static}}

/* Anchor the session button directly under the logo, with status to its right. */
.portal-admin-mark{flex-wrap:wrap}.admin-logo-session{display:grid;grid-template-columns:max-content max-content;grid-template-rows:auto auto;align-items:center;gap:14px 18px}.admin-logo-session>img,.admin-logo-session>.logo-slot{grid-column:1;grid-row:1;justify-self:center}.admin-logo-session>.admin-session-control{display:contents}.admin-session-control>[data-session-toggle]{grid-column:1;grid-row:2;justify-self:center}.admin-session-control>[data-session-status]{grid-column:2;grid-row:2;white-space:nowrap;max-width:none;text-align:left}.admin-session-control>[data-session-status]:empty{display:none}

/* Compact Admin cluster: logo left, campaign badge above the session controls. */
.portal-admin-mark{display:grid;grid-template-columns:85px max-content;grid-template-rows:auto auto;align-content:start;align-items:start;justify-content:end;gap:12px 16px}.portal-admin-mark>.admin-logo-session{display:contents}.portal-admin-mark .admin-logo-session>img,.portal-admin-mark .admin-logo-session>.logo-slot{grid-column:1;grid-row:1/3;align-self:start;justify-self:start}.portal-admin-mark>.portal-badge{grid-column:2;grid-row:1;align-self:start;justify-self:start;margin:0}.portal-admin-mark .admin-session-control{display:flex;grid-column:2;grid-row:2;align-items:center;justify-content:flex-start;flex-wrap:nowrap;gap:12px;max-width:none}.portal-admin-mark .admin-session-control small{white-space:nowrap;max-width:none}.portal-admin-mark .admin-session-control button{padding:10px 14px}
@media(max-width:650px){.portal-admin-mark{grid-template-columns:64px max-content;justify-content:start;gap:10px 12px}.portal-admin-mark .admin-logo-session>img,.portal-admin-mark .logo-slot{width:64px;height:64px}.portal-admin-mark .admin-session-control{gap:8px}.portal-admin-mark .admin-session-control button{padding:9px 10px;font-size:.8rem}.portal-admin-mark .admin-session-control small{font-size:.7rem}}

/* Restore the established large logo; do not shrink it to fit the controls. */
.portal-admin-mark{grid-template-columns:160px max-content}.portal-admin-mark .admin-logo-session>img,.portal-admin-mark .admin-logo-session>.logo-slot{width:160px;height:160px}.portal-header:has(.portal-admin-mark){grid-template-columns:minmax(0,1fr) max-content}
.core-profession-choices{display:flex;flex-wrap:wrap;gap:16px;margin:18px 0}.core-profession-choices label,.branch-approval{display:flex;align-items:flex-start;gap:10px}.core-profession-choices input,.branch-approval input{width:20px!important;flex:0 0 20px;height:20px}.character-profession{margin:18px 0;padding:16px;border:1px solid var(--accent);border-radius:10px}.character-profession-numbers{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:14px 0}.character-profession-numbers input,.character-profession-numbers select{width:100%;min-width:0}.character-branch{border-left:1px solid var(--accent);padding:12px 0 4px 14px;margin:10px 0}.branch-approval small{display:block;font-size:.75rem}.player-spell-selection{grid-column:1/-1}.player-spell-selection>textarea[hidden],.player-spell-selection>label[hidden]{display:none!important}
@media(max-width:800px){.portal-header:has(.portal-admin-mark){grid-template-columns:1fr}.portal-admin-mark{justify-content:start}}
@media(max-width:650px){.portal-admin-mark{grid-template-columns:120px minmax(0,1fr);width:100%}.portal-admin-mark .admin-logo-session>img,.portal-admin-mark .admin-logo-session>.logo-slot{width:120px;height:120px}.portal-admin-mark .admin-session-control{flex-wrap:wrap}}

#player-password{display:grid;gap:18px;padding:12px 10px;margin-top:12px}#player-password>label{display:grid;gap:12px;margin:0}#player-password input{margin:0;width:100%;box-sizing:border-box}#player-password input:focus-visible,#player-edit input:focus-visible,#player-edit select:focus-visible,#player-edit textarea:focus-visible{outline-offset:4px}#player-edit .player-editor-field{padding:4px}
.picture-file-links{list-style:none;padding:0;margin:18px 0;max-height:420px;overflow:auto}.picture-file-links li{padding:8px 4px;border-bottom:1px solid color-mix(in srgb,var(--accent) 20%,transparent)}.picture-file-links a{display:block;text-decoration:underline;color:var(--accent);padding:6px;overflow-wrap:anywhere}
.appearance-steps{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px;grid-column:1;grid-row:1}.appearance-steps button{min-width:44px;min-height:44px;padding:10px 14px;border:1px solid var(--accent);border-radius:10px;color:var(--text);background:var(--surface)}.appearance-steps button[aria-selected=true]{background:var(--accent);color:var(--button-text,#111)}.appearance-steps button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.editor-grid:has(.appearance-steps){align-items:start}.editor-grid:has(.appearance-steps)>#customize-form{grid-column:1;grid-row:2}.editor-grid:has(.appearance-steps)>.preview-panel{grid-column:2;grid-row:1/3;position:sticky;top:20px;align-self:start}.portal-body #customize-form>.settings-section[hidden]{display:none!important}.portal-body #customize-form>.settings-section{margin-top:0}
@media(max-width:1000px){.editor-grid:has(.appearance-steps)>.preview-panel{grid-column:1;grid-row:3;position:static}}

.portal-body .editor-grid .appearance-steps button[aria-selected="true"]{background:var(--accent);color:var(--button-text,#111);font-weight:700}

.editor-grid:has(.appearance-steps){align-content:start;align-items:start}.editor-grid:has(.appearance-steps)>.appearance-steps{grid-column:1;grid-row:1;margin:0;align-self:start}.editor-grid:has(.appearance-steps)>.appearance-preview-heading{grid-column:2;grid-row:1;margin:0;align-self:start}.editor-grid:has(.appearance-steps)>#customize-form{grid-column:1;grid-row:2;align-self:start;margin:0}.editor-grid:has(.appearance-steps)>.preview-panel{grid-column:2;grid-row:2;align-self:start}.portal-body #customize-form>.settings-section{margin-top:0}.portal-body .editor-grid:has(.appearance-steps) .settings-section{align-self:start}
@media(max-width:1000px){.editor-grid:has(.appearance-steps)>.appearance-preview-heading{grid-column:1;grid-row:3}.editor-grid:has(.appearance-steps)>.preview-panel{grid-column:1;grid-row:4}}

.editor-grid:has(.appearance-steps)>.appearance-step-toolbar{grid-column:1;grid-row:1;display:flex;align-items:flex-start;gap:16px;min-width:0}.appearance-step-toolbar>.appearance-steps{flex:1;margin:0;gap:8px}.appearance-step-toolbar>.appearance-steps button{font-size:.75rem;padding:8px 10px;min-height:40px}.appearance-step-toolbar>#reset{flex:none;white-space:nowrap;margin:0;min-height:40px}.appearance-step-toolbar .appearance-steps button[aria-selected="true"]{background:var(--accent);color:var(--button-text,#111)}
@media(max-width:600px){.editor-grid:has(.appearance-steps)>.appearance-step-toolbar{flex-wrap:wrap}.appearance-step-toolbar>.appearance-steps{flex-basis:100%}.appearance-step-toolbar>#reset{margin-left:auto}}

.portal-body .editor-header .save-actions{display:grid;grid-template-columns:minmax(120px,auto);gap:10px;justify-items:stretch;text-align:right}.editor-header .save-actions>#save-state{max-width:300px}.editor-header .save-actions>#save{grid-row:2}.editor-header .save-actions>#reset{grid-row:3;margin:0}

#appearance-leave-dialog{width:min(560px,calc(100vw - 32px));max-width:560px;padding:28px}#appearance-leave-dialog .dialog-actions{flex-wrap:wrap;gap:12px;margin-top:24px}#appearance-leave-dialog button{padding:12px 16px}

.portal-admin-mark{grid-template-rows:auto}.portal-admin-mark .admin-session-control{grid-row:1;align-self:start}.portal-admin-mark .admin-logo-session>img,.portal-admin-mark .admin-logo-session>.logo-slot{grid-row:1}

.craft-queue-controls{display:flex;align-items:end;flex-wrap:wrap;gap:16px;margin:18px 0}.craft-queue-controls label{margin:0;display:grid;gap:8px;min-width:180px}.craft-job-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:18px;margin-top:20px}.craft-job-card header,.craft-progress-meta{display:flex;justify-content:space-between;gap:12px;align-items:start}.craft-job-card progress{width:100%;height:18px;accent-color:var(--accent)}.craft-job-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.craft-add-dialog{width:min(640px,calc(100vw - 32px));max-width:640px;max-height:85vh;overflow:auto;padding:28px}.craft-add-dialog label{display:grid;gap:10px}.craft-add-dialog .toggle-row{display:flex;margin:18px 0}

.portal-admin-mark{grid-template-rows:auto auto}.portal-admin-mark .admin-logo-session>img,.portal-admin-mark .admin-logo-session>.logo-slot{grid-row:1/3}.admin-rewards{grid-column:2;grid-row:2;display:grid;gap:8px;align-self:start;font-size:.8rem}.admin-rewards>span,.admin-rewards>button,.personal-rewards>span,.personal-rewards>button{display:flex;justify-content:space-between;gap:24px;margin:0;padding:0;text-align:left}.admin-rewards strong,.personal-rewards strong{color:var(--accent)}.admin-rewards [data-reward-open],.personal-rewards [data-reward-open]{text-decoration:underline;text-underline-offset:4px}.player-rewards{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;padding:16px 20px;margin:12px 0;border:1px solid var(--accent);border-radius:12px;background:var(--surface)}.personal-rewards{display:flex;gap:24px;align-items:center;flex-wrap:wrap}.rewards-dialog{width:min(500px,calc(100vw - 32px));max-width:500px;padding:28px}.rewards-dialog label{display:grid;gap:14px}.rewards-dialog .dialog-actions{flex-wrap:wrap}.rewards-dialog input[type=range]{width:100%}

.map-access>.map-text-field{display:grid;gap:14px;margin:24px 4px}.map-access>.map-text-field>input,.map-access>.map-text-field>textarea{margin:0;min-width:0;width:100%;box-sizing:border-box;padding:12px 14px}.map-access>.map-text-field>input:focus-visible,.map-access>.map-text-field>textarea:focus-visible{outline-offset:4px}.map-access>.map-player-access{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;padding:18px;margin:20px 0}.map-access>.map-player-access>.toggle-row{display:inline-flex;align-items:center;justify-content:flex-start;gap:10px;margin:0;padding:6px 0;border:0;flex:0 1 auto}.map-access>.map-player-access>.toggle-row input{width:20px;height:20px;flex:0 0 20px;margin:0}.map-access>.map-player-access>.toggle-row span{overflow-wrap:anywhere}

.picture-file-links{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px 16px;align-content:start}.picture-file-links li{min-width:0}.picture-upload-row{display:grid;grid-template-columns:minmax(240px,1fr) minmax(0,2fr);align-items:start;gap:24px;margin:8px 0 18px}.picture-upload-row>#picture-file{width:100%;min-width:0;margin:0}.picture-upload-row>.content-permission{margin:0;padding:4px 0}.picture-upload-row>.content-permission small{margin:0}@media(max-width:1000px){.picture-file-links{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.picture-file-links{grid-template-columns:repeat(2,minmax(0,1fr))}.picture-upload-row{grid-template-columns:1fr;gap:14px}}

.picture-upload-actions{display:flex;align-items:center;gap:22px;margin:16px 0}.picture-upload-actions>button{flex:none}.picture-upload-actions>p{margin:0;flex:1;font-size:.8rem;line-height:1.55}#campaign-management-form{display:grid;gap:20px;max-width:800px;margin-top:24px}#campaign-management-form>label{display:grid;gap:12px;margin:0}#campaign-management-form input,#campaign-management-form select,#campaign-management-form textarea{margin:0}#campaign-management-form>button{justify-self:start}@media(max-width:650px){.picture-upload-actions{align-items:flex-start;flex-wrap:wrap}.picture-upload-actions>p{flex-basis:100%}}

/* Campaign request controls and player recipe workspace. */
.management-dialog{width:min(620px,calc(100vw - 32px));max-height:88vh;overflow:auto;padding:32px;box-sizing:border-box;}
.management-dialog form,.management-dialog label{display:grid;gap:14px;}
.management-dialog form{gap:22px;}
.management-dialog input{min-width:0;width:100%;box-sizing:border-box;}
.management-actions,.management-request{margin-top:24px;padding:20px;border:1px solid var(--border);border-radius:12px;}
.management-actions button{margin:6px 12px 6px 0;}
.player-craft-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start;}
.player-craft-layout label{display:grid;gap:12px;margin:18px 0;}
.player-craft-layout select,.player-craft-layout input{min-width:0;width:100%;}
.player-craft-layout .craft-job-card{margin-top:16px;padding:18px;border:1px solid var(--border);border-radius:12px;}
@media(max-width:800px){.player-craft-layout{grid-template-columns:1fr;}.management-dialog{padding:24px;}}

.player-craft-layout .craft-job-card h4{margin:0 0 10px;}
.player-craft-layout .craft-job-card p{margin:10px 0;}

.bug-review-fields{display:grid;gap:18px;margin:22px 0;}
.bug-review-fields label{display:grid;gap:12px;}
.bug-review-fields input,.bug-review-fields select,.bug-review-fields textarea{width:100%;min-width:0;box-sizing:border-box;}
.bug-review-fields p{margin:0;overflow-wrap:anywhere;}

.inbox-new-badge{display:inline-block;margin-left:8px;padding:2px 7px;border-radius:99px;background:var(--accent);color:var(--bg);font-size:.7rem;}
.inbox-new-badge[hidden]{display:none;}

.inbox-conversation .bug-review-fields label{margin:0;gap:12px;}
.inbox-conversation .bug-review-fields h4,.inbox-conversation .bug-review-fields p{margin:0;}
.inbox-conversation .bug-review-fields{gap:16px;padding:0;}

/* Player balances share the campaign header with the date. */
.portal-body .portal-header.has-player-rewards{grid-template-columns:minmax(0,1fr) auto minmax(230px,300px);align-items:start;gap:24px}
.portal-body .portal-header.has-player-rewards.without-calendar{grid-template-columns:minmax(0,1fr) auto}
.portal-header .player-rewards{display:grid;gap:10px;align-content:start;padding:0;margin:0;border:0;border-radius:0;background:none;min-width:0;font-size:.8rem}
.portal-header .personal-rewards{display:grid;gap:8px;align-items:start}
.portal-header .personal-rewards [data-reward-status]:empty{display:none}
.portal-header .player-rewards [data-send-stars]{justify-self:start;padding:7px 12px;font-size:.75rem}
@media(max-width:1100px){.portal-body .portal-header.has-player-rewards{grid-template-columns:minmax(0,1fr) minmax(230px,300px)}.portal-header.has-player-rewards .portal-title{grid-column:1/-1}.portal-body .portal-header.has-player-rewards.without-calendar{grid-template-columns:1fr}}
@media(max-width:650px){.portal-body .portal-header.has-player-rewards{grid-template-columns:minmax(0,1fr);gap:18px}.portal-header.has-player-rewards .player-rewards{max-width:300px;width:100%;justify-self:end}}

.player-header-calendar{display:grid;gap:8px;justify-items:end;min-width:0}.player-header-inbox{font-size:.85rem;padding:6px 10px}.player-header-calendar .session-countdown{border-top:1px solid color-mix(in srgb,var(--accent) 25%,transparent);padding-top:8px;margin-top:8px;font-size:.85rem;color:var(--accent)}

.purchase-summary>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0}.purchase-summary dd{margin:0;text-align:right}.purchase-dialog .inventory-currency{margin:16px 0}

.player-header-links{display:flex;align-items:center;justify-content:flex-end;gap:18px;font-size:.85rem}.player-header-links a{padding:6px 0}.player-activity-section>summary{cursor:pointer;font-weight:700;font-size:1.1rem}.player-activity-section>.portal-panel{border:0;margin:18px 0 0;padding:0;background:none}.player-access-links{display:grid;gap:14px;margin-top:20px}.player-access-links a{width:fit-content;padding:8px 0}

/* Populated pages must wrap long campaign/player/item text without widening the viewport. */
.portal-page{overflow-wrap:anywhere}.portal-grid>*,.portal-subpanel,.inventory-item,.player-access-links,.player-access-links>a,.craft-job-card header>div{min-width:0;max-width:100%}
.portal-body fieldset{min-inline-size:0;max-width:100%}.portal-body legend{max-width:100%;white-space:normal}.portal-body select{min-width:0;max-width:100%}
.item-stat-list>div{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}.item-stat-list dt,.item-stat-list dd{min-width:0;overflow-wrap:anywhere}
@media(max-width:650px){.portal-grid{grid-template-columns:minmax(0,1fr)}.store-admin-toolbar #store-randomize>div{flex-wrap:wrap}.store-admin-toolbar input,.survival-party select{max-width:100%;min-width:0}.craft-job-card header{flex-wrap:wrap}.player-access-links a{width:auto}}

@media(max-width:600px){#dice-toggle{top:auto;bottom:16px;right:12px}.portal-page{padding-bottom:90px}}

.portal-body .preview-panel{position:static;align-self:start;max-height:none;overflow:visible}.portal-body .preview-frame-wrap{height:auto;max-height:none;overflow:hidden}.portal-body #preview{height:550px;max-height:none}.appearance-preview-document,.appearance-preview-document body,.appearance-preview-document #app{min-height:0!important;height:auto!important}.player-materials-tile>summary{cursor:pointer;font-weight:bold}.player-materials-tile>.portal-panel{border:0;margin:0;padding:14px 0;background:transparent}

.weekly-content-dialog{width:min(560px,calc(100vw - 32px));max-width:560px;max-height:calc(100dvh - 32px);overflow:auto;padding:28px;background:var(--surface);color:var(--text);border-color:var(--accent)}.weekly-content-dialog .player-content-consent{display:flex;gap:14px;align-items:flex-start;margin:24px 0}.weekly-content-dialog input[type=checkbox]{width:22px;height:22px;flex:none}.weekly-content-dialog button{margin-top:18px}

#progression label{display:flex;flex-direction:column;gap:12px;margin:14px 0 20px;min-width:0}#progression input,#progression select,#progression textarea{margin:0;min-width:0}#progression :is(input,select,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:3px}#progression .build-fields{gap:24px}#progression .progression-roster{display:grid;gap:14px;margin-top:20px}#progression .progression-player{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(120px,.7fr) minmax(110px,.6fr) minmax(200px,1fr);align-items:center;gap:24px;padding:22px}#progression .progression-player label{margin:0}#progression .progression-xp{display:block;font-size:1.35rem;color:var(--accent);margin:6px 0}#progression .progression-actions{display:flex;flex-wrap:wrap;gap:10px}#progression .progression-roster-heading{margin-top:24px}@media(max-width:1000px){#progression .progression-player{grid-template-columns:1fr 1fr}}@media(max-width:540px){#progression .progression-player{grid-template-columns:1fr;gap:18px}}

/* Keep utility controls below the work area, including sticky save bars. */
#dice-toggle{top:auto;bottom:16px}
.portal-page{padding-bottom:96px}
.player-save-bar{bottom:88px}
@media(min-width:700px){body:has(#dice-dock) .portal-page{width:calc(100% - 164px)}body:has(#dice-dock) .editor-main{min-width:0}}
@media(max-width:699px){#dice-toggle{bottom:12px;width:48px;height:54px}#report-bug{bottom:12px;max-width:calc(100vw - 84px)}.player-save-bar{bottom:78px}}
.advancement-choices{display:grid;gap:18px;max-width:100%}.advancement-choices fieldset{min-width:0;padding:20px;border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:12px}.advancement-choices legend{padding:0 8px}.advancement-choices label{display:block;margin:10px 0}.advancement-choices input[type=search]{margin:8px 0;max-width:100%}.advancement-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px}.advancement-options label{display:flex;align-items:start;gap:10px;margin:0;padding:8px}.advancement-options input{flex:0 0 auto;width:20px;height:20px;margin:0}.advancement-options span{overflow-wrap:anywhere}.advancement-resources dl>div{display:flex;justify-content:space-between;gap:16px;margin:8px 0}.advancement-resources dd{margin:0;text-align:right}.advancement-confirm{max-width:min(600px,calc(100vw - 32px));padding:28px;background:var(--surface);color:var(--text);border:1px solid var(--accent);border-radius:16px}.advancement-confirm-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.progression-review{grid-column:1/-1}.progression-xp-policy{display:flex!important;align-items:center;gap:12px;margin:24px 0 8px!important}.progression-xp-policy input{width:20px;height:20px}.advancement-choices [data-adv-selected]{font-size:.85rem;color:var(--accent);margin:10px 0}@media(max-width:650px){.advancement-options{grid-template-columns:1fr}.advancement-choices fieldset{padding:16px}.advancement-resources dl>div{display:block}.advancement-resources dd{text-align:left;margin:4px 0 16px}}
#progression .advancement-options label{display:flex;flex-direction:row;align-items:center;gap:10px;margin:0;padding:10px 8px}#progression .advancement-options input[type=checkbox]{width:20px;height:20px;flex:0 0 20px}#progression .progression-xp-policy{flex-direction:row;align-items:center}#progression .advancement-choice-group{padding:14px 18px;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:12px}#progression .advancement-choice-body{padding:8px 0}.advancement-resources dd{overflow-wrap:anywhere}

/* Compact level-by-level progression preview. */
.xp-editor{margin-block:1.5rem}.xp-editor [hidden]{display:none!important}.xp-table-wrap{overflow-x:auto;margin-block:1rem;padding:8px}.xp-table{width:100%;border-collapse:collapse}.xp-table th,.xp-table td{padding:.55rem .8rem;text-align:left;border-bottom:1px solid var(--border,#665779)}.xp-table input{width:100%;min-width:100px;max-width:240px;margin:4px 0}.xp-editor [role=alert]{color:var(--accent,#e9bb67)}

/* Size the XP tiles to the available panel width, including compact site layouts. */
.xp-editor{container-type:inline-size}
.xp-level-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-block:1rem}
.xp-level{min-width:0;padding:10px;border:1px solid var(--border,#665779);border-radius:8px}
.xp-level strong{display:block;margin-bottom:6px}
.xp-level label{gap:8px!important;margin:0!important}
.xp-level input{width:100%;min-width:0;padding:9px 6px;margin:4px 0!important;font-size:14px;font-variant-numeric:tabular-nums}
.xp-level output{display:block;padding:10px 0;font-variant-numeric:tabular-nums}
.xp-level small{display:block;margin-top:6px;overflow-wrap:anywhere}
.xp-level-grid input:focus{outline-offset:3px}
@container(min-width:450px){.xp-level-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@container(min-width:650px){.xp-level-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@container(min-width:950px){.xp-level-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@container(min-width:1300px){.xp-level-grid{grid-template-columns:repeat(9,minmax(0,1fr))}}
@container(max-width:279px){.xp-level-grid{grid-template-columns:1fr}}

.session-player-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.session-player-button{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%;margin-block:8px;text-align:left}.session-quick [hidden]{display:none!important}.setup-guide-banner nav{display:flex;flex-wrap:wrap;gap:12px}.setup-guide-banner [aria-current=step]{font-weight:bold;border-bottom:2px solid var(--accent)}.setup-guide-list li{padding:8px}.session-quick form>label,.session-quick form>div{margin-block:12px}#session-console details{margin-block:16px}#session-console .tool-toolbar{flex-wrap:wrap}

.session-player-grid .toggle-row{justify-content:flex-start;gap:8px}.session-player-grid .toggle-row input{flex:0 0 20px}.session-player-button.secondary{background:transparent;padding:12px;border-color:var(--accent);font:inherit}.session-player-button strong{font-size:1.05em}.session-player-button:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}

/* Generator controls: three columns, inline labels and protected focus gutters. */
.generator-layout{grid-template-columns:minmax(0,1fr)}
#generator-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 28px;align-items:start;padding:24px}
#generator-form .generator-field{display:grid;grid-template-columns:minmax(80px,auto) minmax(0,1fr);align-items:center;gap:14px;margin:0;padding:4px;min-width:0;line-height:1.35}
#generator-form .generator-field>span{max-width:105px;font-size:.875rem}
#generator-form .generator-field :is(input,select){width:100%;min-width:0;height:46px;margin:0;padding:10px 12px;box-sizing:border-box}
#generator-form :is(input,select,button):focus-visible{outline:2px solid var(--accent);outline-offset:3px;box-shadow:none}
#generator-form .generator-map-biomes{display:grid;gap:12px;min-width:0}
.generator-biome-badges{display:flex;flex-wrap:wrap;gap:8px;padding:4px}
#generator-biome-badges{display:contents}
.generator-biome-chip{position:relative;display:inline-flex;align-items:center;gap:3px;font-size:.72rem;line-height:1.45;padding:5px 8px;border-radius:6px;border:1px solid color-mix(in srgb,var(--biome-colour) 40%,transparent);background:color-mix(in srgb,var(--biome-colour) 8%,var(--background));color:color-mix(in srgb,var(--biome-colour) 80%,var(--background));white-space:nowrap}
.generator-biome-chip.is-active{background:var(--biome-colour);border-color:var(--biome-colour);color:#10131b;font-weight:700;box-shadow:none}
.generator-biome-chip .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
#generator-form .generator-unassigned{display:inline-flex;align-items:center;gap:8px;margin:0;padding:5px 8px;font-size:.72rem;line-height:1.45;cursor:pointer}
#generator-form .generator-unassigned input,#generator-form .generator-boss input{width:18px;height:18px;min-height:0;flex:0 0 18px;margin:0}
#generator-form .generator-control-column{display:grid;gap:22px;min-width:0}
#generator-combat-controls{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;padding:18px 12px;margin:0;min-width:0}
#generator-combat-controls[hidden]{display:none}
#generator-form .generator-boss{display:flex;align-items:center;gap:12px;min-height:46px;padding:4px;margin:0;font-size:.875rem}
#generator-form>.generator-tips,#generator-form>p{grid-column:1/-1;margin:0}
#generator-map-note:empty,#generator-error:empty{display:none}
#generator-form>.generator-action-row{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:4px}
.generator-action-row>#generate-button{margin:0;min-height:46px}
#generator-form .generator-history-field{width:min(620px,65%)}
.encounter-loot{margin-top:24px;padding-top:18px;border-top:1px solid var(--accent)}
.loot-drop{padding:14px 0;border-bottom:1px solid var(--border)}
.loot-drop form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}
@media(max-width:850px){#generator-form,#generator-combat-controls{grid-template-columns:minmax(0,1fr);gap:18px}#generator-form{padding:18px}#generator-form>.generator-action-row{align-items:stretch;flex-direction:column;gap:14px}#generator-form .generator-history-field{width:100%}#generator-form .generator-field{grid-template-columns:90px minmax(0,1fr);gap:12px}}

/* Generated creatures stay in one compact tile with artwork beside identity. */
#generator-results .generator-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr));align-items:start}
#generator-results .generator-result{padding:18px}
.generator-result-heading{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start}
.generator-result-heading.has-picture{grid-template-columns:124px minmax(0,1fr)}
.generator-result-heading>img{width:124px;height:140px;object-fit:contain;border-radius:8px;margin:0;align-self:start}
.generator-result-identity{min-width:0}
#generator-results .generator-result h3{margin:5px 0 8px}
#generator-results .generator-result p{margin:5px 0;font-size:.875rem;line-height:1.45}
.generator-monster-tile>.combat-card-compact{border:0;border-radius:0;background:transparent;padding:0;margin:14px 0 10px;box-shadow:none}
.combat-card-compact .combat-stats{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:8px 0}
.combat-card-compact .combat-stats dd{font-size:.875rem}
.combat-card-compact .combat-attributes{gap:8px;font-size:.75rem}
.combat-card-compact .combat-detail-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}
.combat-card-compact .combat-detail-columns>section{min-width:0}
.combat-card-compact h4{margin:8px 0;font-size:.9rem}
.combat-card-compact .combat-ability{margin:8px 0;font-size:.875rem}
.generator-source-details{font-size:.8rem;margin-top:10px}
.generator-monster-tile>.encounter-attack{margin-top:12px;padding-top:12px}
.generator-monster-tile>.encounter-attack h4{margin:0 0 10px}
.generator-monster-tile .encounter-attack form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:14px}
.generator-monster-tile .encounter-attack form label{display:grid;gap:8px;margin:0;min-width:0;font-size:.85rem}
.generator-monster-tile .encounter-attack form select{width:100%;min-width:0;margin:0;height:44px;padding:8px}
.generator-monster-tile .encounter-attack form button{min-height:44px;margin:0;font-size:.8rem;padding:8px 12px}
.generator-monster-tile .encounter-attack :is(select,button):focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:600px){.generator-result-heading.has-picture{grid-template-columns:84px minmax(0,1fr);gap:12px}.generator-result-heading>img{width:84px;height:100px}.combat-card-compact .combat-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.combat-card-compact .combat-detail-columns{grid-template-columns:minmax(0,1fr)}.generator-monster-tile .encounter-attack form{grid-template-columns:repeat(2,minmax(0,1fr))}.generator-monster-tile .encounter-attack form button{grid-column:1/-1}}

/* Monster layout: description left, artwork and core stats right. */
.generator-result-heading.has-picture{grid-template-columns:minmax(0,1fr) minmax(260px,.9fr);gap:24px}
.monster-visual{min-width:0;display:grid;gap:14px}
.monster-visual>img{width:100%;height:280px;object-fit:contain;border-radius:10px}
.monster-photo-stats h4{margin:0 0 8px}.monster-photo-stats .combat-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:8px 0}.monster-photo-stats .combat-attributes{font-size:.75rem;gap:8px}
.monster-photo-send{display:flex;flex-wrap:wrap;align-items:end;gap:12px;padding:4px}
.monster-photo-send label{display:grid;gap:8px;margin:0;flex:1;min-width:140px;font-size:.85rem}
.monster-photo-send select{width:100%;margin:0;min-width:0}.monster-photo-send button{margin:0}.monster-photo-send p{flex-basis:100%}
#generator-results .generator-cards{grid-template-columns:minmax(0,1fr)}
.biome-editor-row{display:grid;grid-template-columns:minmax(0,1fr) 90px;gap:20px;padding:10px 4px}.biome-editor-row label{display:grid;gap:8px;margin:0}.biome-editor-row input{margin:0;width:100%;box-sizing:border-box}
@media(max-width:600px){.generator-result-heading.has-picture{grid-template-columns:minmax(0,1fr)}.monster-visual>img{height:260px}}

/* Keep the creature's actionable content beside the artwork, not below empty space. */
.generator-result-heading.has-picture{grid-template-columns:minmax(0,1fr) 320px;gap:24px}
.monster-visual>img{height:260px}
.monster-left-abilities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.monster-left-abilities h4{margin:0 0 8px}.monster-left-abilities .combat-ability{margin:8px 0}
.monster-health{margin-top:18px;padding-top:12px;border-top:1px solid var(--border)}.monster-health h4{margin:0}.monster-health>button{font-size:.75rem;padding:6px 10px;margin:6px 0}
.monster-health-list{display:grid;gap:10px;max-height:250px;overflow:auto;padding:6px}
.monster-health-list form{display:grid;grid-template-columns:minmax(90px,1fr) 65px auto 65px auto;gap:10px;align-items:end}
.monster-health-list label{display:grid;gap:5px;margin:0;font-size:.75rem}.monster-health-list input{width:100%;min-width:0;margin:0;padding:8px;box-sizing:border-box}.monster-health-list button{padding:8px;margin:0;font-size:.75rem}.monster-health-list strong{font-size:.8rem}.monster-health-list progress{grid-column:1/-1;width:100%;height:8px;accent-color:var(--accent)}
.monster-health-list input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.monster-damage-dialog form{display:grid;gap:16px}.monster-damage-dialog label{display:grid;gap:8px;margin:0}.monster-damage-dialog :is(input,select){width:100%;margin:0;box-sizing:border-box}.monster-damage-dialog [hidden]{display:none}
@media(max-width:900px){.generator-result-heading.has-picture{grid-template-columns:minmax(0,1fr) 260px}.monster-left-abilities{grid-template-columns:1fr}.monster-health-list form{grid-template-columns:1fr 60px auto 60px}.monster-health-list button{grid-column:1/-1}}
@media(max-width:600px){.generator-result-heading.has-picture{grid-template-columns:1fr}.monster-health-list form{grid-template-columns:1fr 60px auto 60px}}

.encounter-initiative{padding:16px;margin-bottom:18px}.encounter-initiative>p{font-size:.85rem;margin:8px 0}.initiative-controls{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:12px 0}.initiative-controls label{display:flex;align-items:center;gap:12px;margin:0;flex:1;min-width:220px}.initiative-controls select{margin:0;min-width:0;flex:1}.initiative-order{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.initiative-combatant{padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-size:.85rem}.initiative-combatant.is-current{background:var(--accent);color:var(--background);border-color:var(--accent)}.initiative-combatant.is-out{opacity:.55}.initiative-controls :is(button,select):focus-visible{outline:2px solid var(--accent);outline-offset:3px}

body.has-initiative{padding-top:var(--initiative-height,170px)}
.encounter-initiative.is-running{position:fixed;top:8px;left:50%;transform:translateX(-50%);width:min(1500px,calc(100% - 32px));box-sizing:border-box;z-index:90;background:var(--surface,#191624);border:1px solid var(--accent);box-shadow:0 8px 24px #0008;margin:0;padding:12px 16px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 20px;align-items:center}
.encounter-initiative.is-running .initiative-help{display:none}.encounter-initiative.is-running .initiative-controls{margin:0;justify-content:flex-end}.encounter-initiative.is-running .initiative-controls label{flex:0 1 390px}.encounter-initiative.is-running .initiative-order{grid-column:1/-1;flex-wrap:nowrap;overflow-x:auto;max-height:64px;margin:0;padding:4px;scrollbar-width:thin}.encounter-initiative.is-running .initiative-combatant{white-space:nowrap;flex:none}.encounter-initiative.is-running>[role=status]:empty{display:none}.encounter-initiative.is-running>[role=status]{grid-column:1/-1}
@media(max-width:700px){.encounter-initiative.is-running{grid-template-columns:1fr;padding:10px}.encounter-initiative.is-running h3{font-size:.95rem}.encounter-initiative.is-running .initiative-controls{gap:10px;justify-content:flex-start}.encounter-initiative.is-running .initiative-controls label{min-width:0;flex:1 1 100%}.encounter-initiative.is-running .initiative-controls button{padding:8px 12px}}

.encounter-initiative{border:1px solid var(--border);border-radius:8px;background:var(--surface,#191624)}

.encounter-initiative:not(.is-running){display:flex;align-items:center;gap:16px;padding:0;border:0;background:transparent;margin:0 0 16px;flex-wrap:wrap}
.encounter-initiative:not(.is-running)>h3,.encounter-initiative:not(.is-running)>.initiative-order{display:none}
.encounter-initiative:not(.is-running)>[data-start]{order:-1;flex:none;margin:0;padding:10px 16px}
.encounter-initiative:not(.is-running)>.initiative-help{flex:1;min-width:200px;margin:0;font-size:.82rem;line-height:1.4}
.encounter-initiative:not(.is-running)>[role=status]:empty{display:none}
.encounter-initiative:not(.is-running)>[role=status]:not(:empty){flex-basis:100%}

.combat-order-row{display:grid;grid-template-columns:minmax(130px,1fr) 100px auto auto auto;gap:14px;align-items:center;padding:12px}.combat-order-row label{margin:0}.combat-order-row input[type=number]{width:100%}#combat-settings .build-fields{align-items:end;padding:10px;gap:24px}#combat-settings .toggle-row{padding:10px}@media(max-width:600px){.combat-order-row{grid-template-columns:1fr 80px auto}.combat-order-row strong{grid-column:1/-1}}

#combat-settings .combat-switches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px;margin:16px 0}#combat-settings .combat-switches .toggle-row{display:flex;justify-content:flex-start;flex-direction:row-reverse;gap:12px;min-height:0;margin:0;padding:10px}#combat-settings .combat-switches .toggle-row span{flex:1}#combat-settings .build-fields label{margin:0}#combat-settings label[hidden]{display:none!important}@media(max-width:700px){#combat-settings .combat-switches{grid-template-columns:1fr}}

.combat-console{margin:16px 0;padding:18px}.combat-console details{padding:12px 0}.combat-console summary{cursor:pointer}.combat-toolbar{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}.combat-roster article,.combat-condition{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border,#555)}.combat-editor{max-width:850px;width:calc(100vw - 40px);max-height:85vh;overflow:auto;padding:28px}.combat-editor label{padding:8px;display:block}.combat-editor .dialog-actions{display:flex;gap:12px;padding:12px 8px}.player-combat-indicator{position:sticky;top:8px;z-index:80;background:var(--panel,#201a30);border:1px solid var(--accent,#e2ba65);padding:12px 18px;margin:12px 0;border-radius:12px}.player-combat-indicator.your-turn{border-width:3px}.combat-area-target{display:grid;grid-template-columns:auto minmax(120px,1fr) 100px 150px 140px;gap:12px;align-items:center;padding:12px}.combat-area-target label{margin:0}.combat-area-target input[type=number]{width:100%}@media(max-width:700px){.combat-area-target{grid-template-columns:auto 1fr}.combat-area-target label{grid-column:2}.combat-editor{padding:16px}}

.combat-editor [hidden]{display:none!important}.combat-console button.secondary{padding:8px 12px;font-size:.85rem}.combat-console>details>article{padding:8px 0}.combat-toolbar button{margin:0}.combat-roster details{flex-basis:100%}.combat-editor .secondary{padding:10px 16px}.combat-console input:focus,.combat-editor input:focus,.combat-editor select:focus{outline-offset:3px}

@media(max-width:600px){.encounter-initiative.is-running{padding:10px}.encounter-initiative .initiative-controls{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px}.encounter-initiative .initiative-controls label{min-width:0;font-size:0;display:block;margin:0}.encounter-initiative .initiative-controls select{width:100%;min-width:0;font-size:.8rem;padding:8px}.encounter-initiative .initiative-controls button{font-size:.75rem;padding:8px;min-height:0}.encounter-initiative [data-reminders]{grid-column:1/-1}.encounter-initiative h3{font-size:.85rem}.encounter-initiative .initiative-order{margin-top:8px}}

/* Shared popup chrome; original dismissal handlers still own save/discard checks. */
dialog.popup-with-close>.popup-close-rail{position:sticky;top:0;float:right;width:32px;height:0;z-index:30;overflow:visible;margin:-12px -12px 0 12px;padding:0}
dialog.popup-with-close .popup-close{display:grid;place-items:center;width:32px;height:32px;min-width:32px;min-height:32px;margin:0;padding:0;border:0;border-radius:50%;background:transparent;color:#000;text-shadow:0 0 1px #fff,0 0 3px #fff;font:700 28px/1 Arial,sans-serif;cursor:pointer;box-shadow:none;letter-spacing:0;text-transform:none}
dialog.popup-with-close .popup-close:hover{background:#fff;color:#000}
dialog.popup-with-close .popup-close:focus-visible{outline:2px solid var(--accent,#e7bd6a);outline-offset:3px}
dialog.popup-with-close .popup-original-dismiss{display:none!important}
dialog.popup-with-close>h2,dialog.popup-with-close>form>h2,dialog.popup-with-close .codex-dialog-header{padding-right:38px}
dialog.popup-with-close label:has(>input:not([type=checkbox]):not([type=radio])),dialog.popup-with-close label:has(>select),dialog.popup-with-close label:has(>textarea){display:flex;flex-direction:column;gap:10px;min-width:0}
dialog.popup-with-close label>input:not([type=checkbox]):not([type=radio]),dialog.popup-with-close label>select,dialog.popup-with-close label>textarea{margin-top:0;box-sizing:border-box;min-width:0}
dialog.popup-with-close :is(input,select,textarea):focus{outline:2px solid var(--accent,#e7bd6a);outline-offset:3px;box-shadow:none}
.combat-area-dialog{width:min(1040px,calc(100vw - 32px));max-width:1040px;padding:24px;box-sizing:border-box}
.combat-area-dialog>h2{margin:0 0 14px;font-size:1.5rem}.combat-area-dialog [data-status]:empty{display:none}
.combat-area-dialog form>p{margin:0 0 16px;font-size:.9rem}
.combat-area-dialog .combat-area-toolbar{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding:4px;margin-bottom:12px}
.combat-area-dialog.popup-with-close .combat-damage-type{display:flex;flex-direction:row;align-items:center;gap:16px;margin:0;padding:0;flex:1;min-width:240px}
.combat-area-dialog .combat-damage-type select{width:auto;min-width:160px;max-width:300px;flex:1}
.combat-area-dialog .combat-select-all{display:flex;align-items:center;gap:10px;white-space:nowrap;margin:0;padding:0}
.combat-area-dialog input[type=checkbox]{width:18px;height:18px;min-height:0;margin:0;flex:none}
.combat-area-dialog .combat-area-targets{display:grid;gap:8px;margin:0 0 16px}
.combat-area-dialog .combat-area-target{grid-template-columns:18px minmax(140px,1fr) 85px minmax(165px,.75fr) minmax(170px,.8fr);gap:14px;align-items:center;padding:14px 4px;border-bottom:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}
.combat-area-dialog .combat-area-target label{margin:0;padding:0;font-size:.82rem;gap:10px}
.combat-area-dialog .combat-area-target strong{font-size:.92rem;overflow-wrap:anywhere}
.combat-area-dialog :is(input:not([type=checkbox]),select){width:100%;padding:10px 12px;min-height:42px;font-size:.85rem}
.combat-area-dialog form>button{padding:11px 18px}.combat-area-dialog [data-preview]:empty{display:none}
@media(max-width:760px){.combat-area-dialog .combat-area-target{grid-template-columns:18px minmax(0,1fr) minmax(0,1fr)}.combat-area-dialog .combat-area-target strong{grid-column:2/-1}.combat-area-dialog .combat-area-target label{grid-column:auto}.combat-area-dialog .combat-area-target label:nth-of-type(1){grid-column:2}.combat-area-dialog .combat-area-target label:last-child{grid-column:2/-1}.combat-area-dialog .combat-area-toolbar{gap:16px}.combat-area-dialog.popup-with-close .combat-damage-type{min-width:0;flex-basis:100%}.combat-area-dialog .combat-damage-type select{min-width:0}.combat-area-dialog{padding:20px}}

.content-dialog.codex-dialog.popup-with-close>.popup-close-rail{position:absolute;top:14px;right:16px;float:none;margin:0;width:32px;height:32px}

dialog.popup-with-close .dialog-actions:not(:has(button:not(.popup-original-dismiss))){display:none}

.after-action-dialog{width:min(1000px,calc(100vw - 32px));max-width:1000px;max-height:88dvh;overflow:auto;padding:26px}.after-action-dialog nav{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.after-action-dialog [aria-current=step]{background:var(--accent);color:var(--background)}.after-action-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.after-action-dialog label{margin:10px 0;min-width:0}.after-action-attendees{display:flex;gap:18px;flex-wrap:wrap;margin:14px 0}.after-action-attendees label,.after-action-dialog .after-action-override{display:flex;align-items:center;gap:10px}.after-action-dialog input[type=checkbox]{width:18px;height:18px;margin:0}.after-action-rep-picker{display:grid;grid-template-columns:minmax(0,1fr) 130px auto;align-items:end;gap:18px}.after-action-rep-picker button{margin-bottom:10px}.after-action-rep-row{display:flex;align-items:center;gap:16px;padding:8px}.after-action-rep-row button{background:transparent;color:var(--text);font-size:1.5rem}.after-action-dialog details{border-bottom:1px solid var(--accent);padding:16px 0}.after-action-dialog summary{cursor:pointer}.after-action-dialog .dialog-actions{flex-wrap:wrap}.after-action-dialog [role=status]:empty{display:none}@media(max-width:650px){.after-action-fields{grid-template-columns:1fr 1fr}.after-action-rep-picker{grid-template-columns:1fr auto}.after-action-rep-picker>label:first-child{grid-column:1/-1}.after-action-dialog{padding:20px}}

.after-action-fields{grid-template-columns:repeat(6,minmax(0,1fr));align-items:end}.after-action-fields>label{grid-column:span 2}.after-action-fields>label:nth-child(4){grid-column:span 4}@media(max-width:650px){.after-action-fields{grid-template-columns:1fr 1fr}.after-action-fields>label{grid-column:auto}.after-action-fields>label:nth-child(4){grid-column:1/-1}}

/* Shared node-credit store and owner controls. */
.credit-plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:22px 0}
.credit-plans article{display:flex;flex-direction:column;gap:10px;padding:20px!important;margin:0!important}.credit-plans h3,.credit-plans p{margin:0}.credit-plans button{margin-top:auto}.credit-price{font-size:1.55rem}
.credit-balance{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;padding:16px 0}.credit-balance strong{color:var(--accent,#e8bf69)}
.credit-settings-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.credit-check{display:flex!important;flex-direction:row!important;align-items:center;gap:12px!important;margin:16px 0!important}.credit-check input{width:auto!important;margin:0!important}
.credit-settings summary,.credit-history summary{cursor:pointer;padding:12px 0;font-weight:700}.credit-settings form{padding:16px 4px 4px}.credit-admin-toolbar{display:flex;gap:24px;align-items:end;flex-wrap:wrap}.credit-admin-toolbar label{flex:1;min-width:180px}.credit-admin-toolbar button{margin-bottom:0}
.credit-node{padding:20px 4px;border-bottom:1px solid var(--border,#594c63)}.credit-node header{display:flex;gap:18px;justify-content:space-between;align-items:center}.credit-node header small{display:block;margin-top:6px}.credit-history article{padding:12px 0;border-top:1px solid var(--border,#594c63)}.credit-history article span{display:block;margin-top:5px}.credit-history article p{margin:6px 0}
.credit-grant{width:min(620px,calc(100vw - 32px))}.credit-grant form{display:grid;gap:18px}.credit-grant label,.credit-settings label{display:flex;flex-direction:column;gap:10px}.credit-grant input,.credit-grant select,.credit-grant textarea,.credit-settings input,.credit-settings select,.credit-admin-toolbar input{padding:12px;min-width:0;box-sizing:border-box;max-width:100%}.credit-grant :is(input,select,textarea):focus-visible,.credit-admin :is(input,select,textarea):focus-visible{outline-offset:4px!important}.credit-admin .portal-panel{margin-bottom:18px}
@media(max-width:650px){.credit-plans{grid-template-columns:1fr}.credit-settings-fields{grid-template-columns:1fr}.credit-node header{align-items:flex-start;flex-wrap:wrap}.credit-balance{gap:10px 18px}}

.credit-plan{border:1px solid var(--border,#594c63);border-radius:12px;background:var(--surface,#1d1629)}

.unified-damage{width:min(1100px,calc(100vw - 32px))}.unified-damage form{display:grid;gap:16px}.unified-damage label{display:flex;flex-direction:column;gap:10px!important}.damage-options{display:flex;flex-wrap:wrap;gap:18px;align-items:end}.damage-options>label{flex:1;min-width:160px}.damage-target{display:grid;grid-template-columns:minmax(190px,1.3fr) minmax(100px,.6fr) minmax(135px,.8fr) minmax(175px,1fr);gap:18px;align-items:center;padding:14px 6px;border-bottom:1px solid var(--border,#594c63)}.unified-damage .damage-select{display:flex;flex-direction:row;align-items:center;gap:12px!important}.damage-select input{width:auto!important;margin:0!important}.damage-select small{display:block;margin-top:4px}.unified-damage :is(input,select){min-width:0;width:100%;box-sizing:border-box}.unified-damage :is(input,select):focus-visible{outline-offset:4px!important}.unified-damage .muted{margin:0}.damage-options .damage-select{flex:0 0 auto;min-width:120px;padding-bottom:14px}@media(max-width:720px){.damage-target{grid-template-columns:repeat(2,minmax(0,1fr))}.damage-target .damage-select{grid-column:1/-1}.damage-options>label{min-width:120px}.damage-target label:last-child{grid-column:1/-1}}

.unified-damage{max-width:calc(100vw - 32px)}.unified-damage .damage-options>label:first-child{flex:1.5}
.player-combat-indicator{display:block;text-decoration:none;color:inherit;cursor:pointer}.player-combat-indicator:hover{border-color:var(--accent,#e8bf69);filter:brightness(1.12)}.player-combat-indicator:focus-visible{outline:2px solid var(--accent,#e8bf69);outline-offset:5px}.player-encounter>header{display:flex;gap:18px;justify-content:space-between;align-items:center;flex-wrap:wrap}.player-encounter-status{padding:12px 0}.player-turn-order{display:flex;gap:12px;flex-wrap:wrap;list-style-position:inside;padding:0;margin:16px 0 24px}.player-turn-order li{padding:12px 16px;border:1px solid var(--border,#594c63);border-radius:12px;min-width:150px}.player-turn-order small{display:block;margin-top:5px}.player-encounter .is-current{border:2px solid var(--accent,#e8bf69);box-shadow:0 0 12px #e8bf6920}.player-encounter .is-defeated{opacity:.6}.player-enemy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin:16px 0}.player-enemy-card{border:1px solid var(--border,#594c63);border-radius:14px;overflow:hidden;max-width:360px}.player-enemy-card img{display:block;width:100%;height:220px;object-fit:contain;background:#0003}.player-enemy-card>div:last-child{padding:14px}.player-enemy-card h4,.player-enemy-card p{margin:0 0 6px}.player-creature-placeholder{height:140px;display:grid;place-items:center;font-size:3rem;opacity:.5}@media(max-width:550px){.player-enemy-grid{grid-template-columns:1fr}.player-enemy-card{max-width:none}.player-turn-order li{min-width:0;flex:1 1 130px}}

.player-combat-indicator[hidden]{display:none}

.equipment-no-picture{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:1.8rem;opacity:.65}.equipment-no-picture small{font-size:.7rem}.equipment-slot-art img{display:block}.equipment-slot>strong{display:block;width:100%;text-align:center}
.equipment-slot .equipment-slot-art{flex:0 0 90px;min-height:0;overflow:hidden}.equipment-slot .equipment-slot-art img{display:block;width:100%;height:90px;max-height:90px;min-height:0;object-fit:contain;margin:0}

/* Compact encounter composition and explicit player visibility. */
.initiative-start-row,.encounter-inline,.initiative-reveal{display:flex;align-items:center;gap:10px}
.initiative-start-row{flex-wrap:wrap}
.initiative-start-row label{display:flex;align-items:center;gap:8px;margin:0}
.initiative-start-row input[type=checkbox],.initiative-reveal input[type=checkbox],.encounter-inline input[type=checkbox],.encounter-enemy-choice input[type=checkbox]{width:18px;height:18px;flex:0 0 18px;margin:0}
.initiative-reveal{font-size:.8rem;margin:6px 0 0;padding:4px}
.encounter-builder-top{display:grid;grid-template-columns:1fr 1fr auto;gap:18px;align-items:center}
.encounter-enemy-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:230px;overflow:auto;padding:10px;margin:8px 0 16px;border:1px solid var(--border);border-radius:8px}
.encounter-enemy-choice{display:flex;align-items:center;gap:10px;padding:8px;margin:0}
.encounter-selection{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.encounter-selected{display:flex;align-items:center;gap:10px;padding:8px}
.encounter-selected span{flex:1}.encounter-selected input{width:80px}.encounter-selected button{padding:5px 10px}
.encounter-builder-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}
#encounter-builder label{padding-top:5px;padding-bottom:5px}
@media(max-width:800px){.encounter-builder-top,.encounter-selection{grid-template-columns:1fr}.encounter-enemy-list{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Keep focus rings clear of encounter labels and neighbouring controls. */
#encounter-builder>label,#encounter-builder .encounter-builder-top>label{display:flex;flex-direction:column;gap:12px;margin:0 0 14px;padding:5px}
#encounter-builder .encounter-builder-top>.encounter-inline{flex-direction:row;align-items:center}
#encounter-builder :is(input,select){margin:0;box-sizing:border-box}
#encounter-builder :is(input,select,button):focus-visible,.encounter-attack :is(input,select,button):focus-visible{outline:2px solid var(--accent,#e8bf69)!important;outline-offset:3px!important;box-shadow:none!important}
#encounter-builder .encounter-enemy-list{padding:10px;gap:12px}
#encounter-builder .encounter-selected{gap:12px;padding:8px}
.initiative-reveal{gap:10px!important;padding:7px!important}
.initiative-reveal input:focus-visible{outline:2px solid var(--accent,#e8bf69)!important;outline-offset:3px!important;box-shadow:none!important}
.player-encounter-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:24px;align-items:start}
.player-encounter-actions{border-left:1px solid var(--border,#594c63);padding:8px 0 8px 22px;min-width:0}
.encounter-action-row{display:flex;gap:12px;align-items:center;padding:12px 6px;border-bottom:1px solid var(--border,#594c63)}
.encounter-action-row>div{min-width:0}.encounter-action-row strong,.encounter-action-row small{display:block;overflow-wrap:anywhere}.encounter-action-row small{margin-top:6px;font-size:.8rem}
.encounter-action-row .ability-roll{flex:0 0 34px;width:34px;height:34px;margin:0}.encounter-action-row .ability-roll svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.4}
.encounter-no-roll{font-size:.7rem;max-width:48px}.player-encounter-actions h3{margin:8px 0 12px}.player-encounter-actions h3:not(:first-child){margin-top:24px}
@media(max-width:800px){.player-encounter-layout{grid-template-columns:1fr}.player-encounter-actions{border-left:0;border-top:1px solid var(--border,#594c63);padding:16px 0}}

.after-action-rep-picker{grid-template-columns:minmax(0,1fr) 130px auto auto}.after-action-rep-row{flex-wrap:wrap}.after-action-map-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}@media(max-width:650px){.after-action-rep-picker{grid-template-columns:1fr auto}.after-action-map-list{grid-template-columns:1fr}}
[data-pre-session] label:not(.toggle-row),[data-inventory-actions] label:not(.toggle-row),[data-reputation-rules] label:not(.toggle-row){display:grid;gap:10px;padding:6px;min-width:0}
[data-pre-session] .toggle-row,[data-inventory-actions] .toggle-row,[data-reputation-rules] .toggle-row{justify-content:flex-start;gap:12px;padding:10px;align-self:center}
[data-pre-session] input,[data-inventory-actions] input,[data-reputation-rules] input{min-width:0}

.work-orders-panel label:not(.toggle-row),.station-location-dialog label:not(.toggle-row){display:grid;gap:10px;padding:6px;min-width:0}.work-orders-panel form{padding:8px 0}.station-location-dialog .toggle-row{justify-content:flex-start;gap:12px;padding:10px}.work-orders-panel .portal-subpanel{margin-top:12px}

.portal-body .station-location-dialog .toggle-row{display:flex;justify-content:flex-start;gap:12px}.portal-body .station-location-dialog .toggle-row input{flex:0 0 auto}@media(max-width:600px){.station-location-dialog .two-col,.work-orders-panel .two-col{grid-template-columns:1fr}}

[data-pre-session] .two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;align-items:start}[data-pre-session] form{gap:10px}[data-pre-session] label:not(.toggle-row){margin:0;gap:6px;padding:6px}[data-pre-session] .tool-toolbar{margin-top:10px}.aar-search-results{display:grid;gap:4px;max-height:220px;overflow:auto;padding:6px}.aar-search-results[hidden]{display:none}.aar-search-results button{text-align:left;padding:8px 12px}.after-action-dialog [data-reward]>details label:not(.after-action-override){display:grid;gap:8px;padding:6px;min-width:0}@media(max-width:600px){[data-pre-session] .two-col{grid-template-columns:1fr}}

.player-feature-options{display:flex;flex-direction:column}.player-feature-options #feature-edit{display:contents}.player-feature-options #feature-edit .player-save-bar{order:1000}.player-feature-options>.reputation-feature-options{margin:0 0 12px 20px;padding:10px 14px;border-left:2px solid var(--accent)}
.live-session>h2{margin-bottom:12px}.live-player-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.live-player{border:1px solid var(--accent);border-radius:10px;padding:12px;min-width:0}.live-player header,.live-stat,.live-party-bar,.live-location{display:flex;align-items:center;gap:10px}.live-player header{justify-content:space-between;margin-bottom:8px}.live-player header label,.live-party-bar>label{display:flex;align-items:center;gap:8px;margin:0}.live-stat{justify-content:space-between;border-top:1px solid #ffffff20;padding:9px 3px}.live-stat>span{font-size:.9rem}.live-adjust{display:flex;align-items:center;gap:6px;margin:0;padding:3px;flex-shrink:0}.live-adjust input{width:65px!important;min-width:0;padding:7px!important;text-align:center}.live-adjust button{padding:6px 12px!important;min-height:34px}.live-location{margin:0 0 8px;padding:4px}.live-location label{display:grid;gap:6px;flex:1;min-width:0;margin:0}.live-location input{width:100%;padding:8px!important}.live-location button{align-self:end;padding:8px 12px!important}.live-party-bar{flex-wrap:wrap;padding:8px 4px;margin-bottom:8px}.live-party-bar select{padding:8px!important;min-width:150px}.live-player header input[type=checkbox],.live-party-bar input[type=checkbox]{width:auto}.live-session [data-live-status]:empty{display:none}.live-session [data-live-status]{margin:8px 4px}.live-player form button{white-space:nowrap}.live-player header a{font-size:.8rem}@media(max-width:1150px){.live-player-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.live-player-grid{grid-template-columns:1fr}.live-stat{gap:5px}.live-player{padding:10px}.live-party-bar{gap:8px}}

.live-party-bar>label{white-space:nowrap;flex-shrink:0}.live-player small{display:block}.live-player-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}

.field-controls{display:flex;flex-wrap:wrap;align-items:end;gap:12px;padding:8px}.field-controls label,.field-editor label{display:grid;gap:8px;padding:6px;min-width:0}.field-controls input[type=number]{width:90px}.field-controls .toggle-row{display:flex;align-items:center;gap:10px}.field-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}@media(max-width:600px){.field-editor{grid-template-columns:1fr}}

.board-canvas{position:relative;min-width:700px;background:var(--background);border:1px solid var(--accent);overflow:hidden}.board-canvas svg{position:absolute;width:100%;height:100%}.board-canvas line{stroke:var(--accent);stroke-width:2}.board-card{position:absolute;width:190px;min-height:90px;background:var(--surface,#211a30);border:1px solid var(--accent);border-radius:8px;padding:12px;overflow-wrap:anywhere}.board-card p{white-space:pre-wrap}.board-card small{display:block}.portal-subpanel:has(>.board-canvas){overflow:auto}.world-editor label{display:grid;gap:8px;padding:6px}.world-editor .toggle-row{display:flex;align-items:center;gap:10px}.world-editor>form{display:grid;gap:12px}

.board-card{max-height:160px;overflow:auto}.board-card p{margin:8px 0}.board-canvas{max-width:none}
.portal-body [data-field-tools]>form.field-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0;align-items:start}.portal-body [data-field-tools]>form.field-controls .toggle-row{display:flex;align-items:center;justify-content:flex-start;gap:10px;margin:0;padding:8px;min-height:0;border:0}.portal-body [data-field-tools]>form.field-controls button{justify-self:start}.portal-body .field-editor input,.portal-body .field-editor select{min-width:0}@media(max-width:600px){.portal-body [data-field-tools]>form.field-controls{grid-template-columns:1fr}}
