:root{
  color-scheme:dark;
  --de-shell:#2e2b24;--de-heading:#686a4a;--de-selected:#AD8B56;--de-selected-text:#191815;
  --de-success:#d4ddb1;--de-error:#f0aaa0;--de-control-line:#8f9269;
  --dcc-party-divider-width:2px;--dcc-party-divider-color:#b99a3d;--sheet-frame-max:2400px;--sheet-frame-gutter:2vw;
}
:root[data-theme="light"]{
  color-scheme:light;
  --de-bg:#efe8d5;--de-surface:#e4ddc7;--de-panel:#f5efdf;--de-shell:#e8e1cc;
  --de-structure:#73764f;--de-control-line:#73764f;--de-accent:#765523;
  --de-text:#2b2b20;--de-muted:#595440;--de-input:#faf5e7;
  --de-heading:#d1d2ad;--de-selected:#b99a62;--de-selected-text:#24271b;
  --de-success:#3f562d;--de-error:#8b2e24;
}
body{background:radial-gradient(circle at top,var(--de-panel),var(--de-bg) 48rem)}
.top{background:var(--de-bg)}
#sheetPage>.shell,.shell{background:var(--de-shell)}
.h,.skills-table thead,.spells-table thead,.inventory-table thead,.loot-contents-table thead{background:var(--de-heading)!important;color:var(--de-text)!important}
th,.skills-table thead th,.spells-table thead th,.inventory-table thead th,.loot-contents-table thead th{background:var(--de-panel)!important;color:var(--de-text)!important}
.hamburger-btn{background:var(--de-panel)!important;border-color:var(--de-structure)!important}
.hamburger-btn span{background:var(--de-text)!important}
input[type="checkbox"]:checked{background:var(--de-selected)!important;color:var(--de-selected-text)!important}
input[type="checkbox"]:checked::after{color:var(--de-selected-text)!important;border-color:var(--de-selected-text)!important}
:root[data-theme="light"] .danger-btn{background:#e8c7af!important;color:#502820!important;border-color:#89553b!important}
:root[data-theme="light"] input.invalid{background:#f3dccc!important;border-color:#8b2e24!important}
.tabs button,.secondary-btn,.top-menu-panel,.portrait-menu-panel,.size-select-listbox,.dcc-select-listbox,.dcc-select-button,.sheet-tooltip,.conflict-card{background:var(--de-panel)!important;color:var(--de-text)!important;border-color:var(--de-structure)!important}
.tabs button.active,button.primary-btn,.tabs button:hover,.dcc-select-option.active,.dcc-select-option:hover,.size-select-option.active,.portrait-panel .actions button:first-child{background:var(--de-selected)!important;color:var(--de-selected-text)!important}
.skills-actions button.secondary-btn,.inventory-actions button.secondary-btn,.attack-actions button.secondary-btn{background:var(--de-panel)!important;color:var(--de-text)!important}
input,textarea,select{background:var(--de-input)!important;color:var(--de-text)!important;border-color:var(--de-control-line)!important}
input[readonly]{background:var(--de-panel)!important}
input::placeholder,textarea::placeholder{color:var(--de-muted);opacity:1}
.save,.status-pill.active{color:var(--de-success)!important}
.err,.field-error,.error-text{color:var(--de-error)!important}
.top-menu-panel button,.portrait-menu-panel button{color:var(--de-text)!important}
.top-menu-panel button:hover,.portrait-menu-panel button:hover{background:var(--de-heading)!important}
.row-drag-handle,.sheet-tooltip,.readonly-box,.recovery-codes{color:var(--de-text)!important}
.readonly-box,.recovery-codes,.conflict-body,.conflict-item{background:var(--de-input)!important;border-color:var(--de-structure)!important}
[role="dialog"]{background:var(--de-panel)!important;color:var(--de-text)!important;border-color:var(--de-structure)!important}
.site-footer a:hover,.site-footer button:hover{color:var(--de-accent)!important}
.health-meter .vital-meter-scale button.on,.mana-fill span{color:#fff3df!important}
.combat-field{min-width:0}.combat-field input{min-width:0}
@media(min-width:701px){.shell,.top-inner{width:96%;max-width:var(--sheet-frame-max)}}
@media(max-width:1100px) and (min-width:701px){.main-top{grid-template-columns:190px minmax(0,1fr)}.status-bars{grid-column:1/-1;height:280px}}
/* Label, component, operator, component, operator, total. */
.combat-layout{grid-template-columns:minmax(0,1.65fr) minmax(0,.72fr)}
.combat-formula-row{grid-template-columns:minmax(90px,1.15fr) minmax(0,1fr) 12px minmax(0,1fr) 12px minmax(0,1fr);gap:5px}
.combat-title{overflow-wrap:anywhere}
.combat-formula-row .combat-op{display:flex}
.combat-title .evade-d20{margin-left:auto}
.combat-title .evade-label-op{margin-left:.35em;flex-shrink:0}
.combat-formula-row .combat-title{grid-column:auto}
@media(max-width:1600px){.combat-layout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){
 .shell,.top-inner{width:calc(100% - 24px)}
 .combat-formula-row{grid-template-columns:minmax(0,1fr) 12px minmax(0,1fr) 12px minmax(0,1fr)!important}
 .combat-formula-row .combat-title{grid-column:1/-1;font-size:12px}
}

/* Shared native switch: position and bold labels identify the selected state. */
.dcc-toggle{display:flex;align-items:center;gap:10px;min-height:42px;flex-wrap:nowrap}.dcc-toggle [data-toggle-side]{font-size:14px;color:var(--de-muted)}.dcc-toggle [data-toggle-side].selected{font-weight:bold;color:var(--de-text)}
.dcc-toggle input[type="checkbox"]{appearance:none;display:block;position:relative;flex:0 0 54px;width:54px;height:30px;min-height:30px;margin:0;padding:0;border:1px solid var(--de-control-line)!important;border-radius:999px!important;background:#24231f!important;cursor:pointer}
.dcc-toggle input[type="checkbox"]::after{content:""!important;position:absolute;inset:3px auto auto 3px;width:22px;height:22px;border:0!important;border-radius:50%;background:#AD8B56!important;transform:none!important;transition:left .15s}
.dcc-toggle input[type="checkbox"]:checked{background:#24231f!important}.dcc-toggle input[type="checkbox"]:checked::after{left:27px;background:#AD8B56!important}.dcc-toggle input:focus-visible{outline:2px solid var(--de-accent);outline-offset:3px}
@media(prefers-reduced-motion:reduce){.dcc-toggle input,.dcc-toggle input::after{transition:none}}
/* Cells own horizontal separators; nested editors and wrappers do not. */
.responsive-scroll:has(>.sheet-data-table){border:0!important}.sheet-data-table{border-collapse:collapse!important;border-spacing:0!important;border:1px solid var(--de-structure)}
.sheet-data-table tbody tr{border:0!important}.sheet-data-table tbody td{border-top:0!important;border-bottom:1px solid var(--de-structure)!important}
.sheet-data-table tbody td :is(input:not([type="checkbox"]),textarea,select,.dcc-select-button,.dcc-select,.lined-drag-row,.skill-stat-wrap){border-top-width:0!important;border-bottom-width:0!important;box-shadow:none!important}
@media(max-width:700px){.sheet-data-table{border-bottom:0!important}.sheet-data-table tbody{gap:0!important}.sheet-data-table tbody tr{border:0!important;border-bottom:1px solid var(--de-structure)!important}.sheet-data-table tbody td{border-top:0!important;border-bottom:0!important}}

.sheet-data-table thead th{border-bottom:1px solid var(--de-structure)!important}
/* Scope provider overrides to this policy page, including asynchronously generated markup. */
#cookiePolicyPage .CookieDeclaration,#cookiePolicyPage .CookieDeclarationType{color:var(--de-text)!important;background:var(--de-panel)!important;border-color:var(--de-structure)!important}
#cookiePolicyPage .CookieDeclarationTable{width:100%!important;table-layout:fixed;border-collapse:collapse!important;background:var(--de-panel)!important;color:var(--de-text)!important}
#cookiePolicyPage .CookieDeclarationTable :is(th,td){background:var(--de-panel)!important;color:var(--de-text)!important;border-color:var(--de-structure)!important;padding:10px!important;overflow-wrap:anywhere;vertical-align:top}
#cookiePolicyPage .CookieDeclarationTable :is(th,.CookieDeclarationTableHeader){background:var(--de-heading)!important;color:var(--de-text)!important;font-weight:bold}
#cookiePolicyPage a:link,#cookiePolicyPage a:visited{color:var(--de-accent)!important;text-decoration:underline}#cookiePolicyPage a:hover{color:var(--de-text)!important;text-decoration-thickness:2px}#cookiePolicyPage a:focus-visible{color:var(--de-text)!important;outline:2px solid var(--de-accent);outline-offset:3px}
#themeSaveStatus{color:var(--de-muted);margin-top:12px}#themeSaveRetry{margin-top:10px}.site-footer-email{margin-top:6px!important}.site-footer a:focus-visible{outline:2px solid var(--de-accent);outline-offset:3px}
@media(max-width:700px){#cookiePolicyPage .CookieDeclarationTable :is(th,td){padding:6px!important;font-size:12px}}
/* Transparent targets stay inside each numeric field; the two halves never overlap. */
.dcc-number-stepper{position:relative;display:inline-grid;width:100%;min-width:0;vertical-align:middle;--step-hit-width:min(50%,96px);--step-text-padding:clamp(16px,30%,32px)}
.dcc-number-stepper>input{box-sizing:border-box;width:100%;min-width:0;padding-right:var(--step-text-padding)!important;appearance:textfield}.dcc-number-stepper>input::-webkit-inner-spin-button,.dcc-number-stepper>input::-webkit-outer-spin-button{appearance:none;margin:0}
.dcc-number-buttons{position:absolute;inset:0 0 0 auto;width:var(--step-hit-width);display:grid;grid-template-rows:1fr 1fr;overflow:hidden}
.dcc-number-buttons>button.dcc-number-step{position:relative;display:block;box-sizing:border-box;min-height:0!important;width:100%;height:100%;margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;cursor:pointer;touch-action:manipulation;filter:none!important}
.dcc-number-step::after{content:"";position:absolute;right:6px;transform:none;border-left:3px solid transparent;border-right:3px solid transparent;opacity:0;pointer-events:none}.dcc-number-step.up::after{bottom:2px;border-bottom:4px solid var(--de-muted)}.dcc-number-step.down::after{top:2px;border-top:4px solid var(--de-muted)}
.dcc-number-stepper:hover .dcc-number-step::after,.dcc-number-stepper:focus-within .dcc-number-step::after{opacity:1}.dcc-number-step:focus-visible{outline-offset:-2px!important}.dcc-number-stepper:has(>input[readonly]) .dcc-number-buttons,.dcc-number-stepper:has(>input:disabled) .dcc-number-buttons{display:none}
.sheet-data-table .dcc-number-stepper>input{height:42px!important;min-height:42px!important;padding-top:0!important;padding-bottom:0!important;line-height:20px!important;vertical-align:middle}.mana-readout .dcc-number-stepper{width:52px;flex:none}
.inventory-table tbody td:nth-child(2) .dcc-number-stepper>input[type="number"]{text-align:center!important;text-align-last:center!important;padding-left:7px!important;padding-right:7px!important}
/* Let the native input editor retain the existing 20px line box. Fixed
   heights make Chromium reset that editor to normal, shaving upper glyph ink.
   Existing minimum heights continue to determine every outer control size. */
.skills-table tbody td input[data-k$="_rank"],
.skills-table tbody td input[data-k$="_checktype"],
.spells-table tbody td input[data-k$="_rank"],
.spells-table tbody td input[data-k$="_checktype"],
.spells-table tbody td input[data-k$="_mana"],
.inventory-table tbody td input[data-k$="_2"]{height:auto!important}
#selfServiceDefaultCapacity,#selfServiceAvailableSlots{height:auto!important;line-height:20px!important}
:where(#selfServiceDefaultCapacity,#selfServiceAvailableSlots){min-height:36px}
/* Only the dot artwork moves; the drag button and hit target stay in place. */
:is(.skills-table,.spells-table,.inventory-table,#hotlistGrid) .row-drag-dots{translate:0 var(--drag-ink-offset,0px)}
.skills-table tbody td input[data-k$="_rank"],
.spells-table tbody td input[data-k$="_rank"],
.spells-table tbody td input[data-k$="_mana"]{text-align:center!important;text-align-last:center!important;padding-left:7px!important;padding-right:7px!important}
@media(hover:none){.dcc-number-step::after{opacity:1}}
/* Give the shared action column a content-sized width and center both its header and toolbar. */
#charactersTable .character-actions-column{width:1%;white-space:nowrap;text-align:center}#charactersTable .character-actions-column .toolbar{justify-content:center;flex-wrap:nowrap}
#themeSaveStatus:empty{display:none}

/* In normal document flow: visible on every page, never covers sheet controls. */
.impersonation-banner:not([hidden]){display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 20px;margin:0;border:2px solid var(--de-accent);background:var(--de-panel);color:var(--de-text);}
.impersonation-banner button{flex:none;min-height:44px;}
.user-table-manage .compact-btn{margin:4px 0 4px 8px;}
@media(max-width:600px){.impersonation-banner:not([hidden]){align-items:stretch;flex-direction:column;padding:12px;}.impersonation-banner button{align-self:flex-start;}}

.impersonation-confirmation{max-width:min(560px,92vw);padding:24px;border:2px solid var(--de-accent);background:var(--de-panel);color:var(--de-text);font-family:inherit;}.impersonation-confirmation::backdrop{background:#0009;}

.dcc-toggle:has([data-toggle-reversed]) input[type="checkbox"]::after,.dcc-toggle.release-pref-reversed input[type="checkbox"]::after,.dcc-toggle.dcc-choice-toggle:not(.dcc-choice-normal) input[type="checkbox"]::after{left:27px!important}
.dcc-toggle:has([data-toggle-reversed]) input[type="checkbox"]:checked::after,.dcc-toggle.release-pref-reversed input[type="checkbox"]:checked::after,.dcc-toggle.dcc-choice-toggle:not(.dcc-choice-normal) input[type="checkbox"]:checked::after{left:3px!important}
.dcc-toggle [data-toggle-side]{cursor:pointer}
