:root{--bg:#0d1525;--text:#e8edf5;--muted:#a0b4dcb8;--accent-600:#f0a500;--danger:#ff5d5d;--bloody:#ff8c42;--health:#5ecb6b;--bg-panel:#ffffff0e;--bg-raised:#0000004d;--border:#ffffff21;--accent:var(--accent-600);--red:var(--danger);--panel-bg:var(--bg-panel);--panel-border:var(--border);--radius-panel:14px;--radius-ctrl:10px;--fs-hero:30px;--fs-title:18px;--fs-stat:var(--fs-title);--fs-large:17px;--fs-body:15px;--fs-base:var(--fs-body);--fs-medium:14px;--fs-subtitle:13px;--fs-small:12px;--fs-pill:var(--fs-small);--fs-tiny:10px;--gap-2:2px;--gap-4:4px;--gap-6:6px;--gap-8:8px;--gap-10:10px;--space-page:14px;--space-gap:14px}@media (width<=768px){:root{--space-page:8px;--space-gap:8px;--fs-hero:22px}}@media (width<=480px){:root{--space-page:6px;--space-gap:6px}}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:var(--fs-large);-webkit-font-smoothing:antialiased;height:100%;margin:0;padding:0;overflow:auto}#root{height:100%}select,input,textarea{color:#f5f7faf2}select{background:#2f3e52cc;border:1px solid #ffffff1f}select option{color:#f5f7faf2;background:#212c3c}select:focus,input:focus,textarea:focus{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent-600) 40%, transparent);outline:none}a{color:inherit}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.bh-prewrap{white-space:pre-wrap}.bh-scroll{min-height:0;overflow:auto}.confirmBackdrop{z-index:99999;background:#0000008c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.confirmCard{background:var(--bg-panel);border:1px solid var(--border);border-radius:16px;width:min(520px,100%);padding:16px;box-shadow:0 12px 48px #00000073}.confirmTitle{font-size:var(--fs-title);margin:0 0 6px;font-weight:800}.confirmMessage{font-size:var(--fs-base);opacity:.9;white-space:pre-wrap;margin:0 0 14px;line-height:1.35}.confirmActions{justify-content:flex-end;gap:10px;display:flex}.btn{border:1px solid var(--border);background:var(--bg-raised);color:var(--text);font-size:var(--fs-base);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:10px;padding:8px 12px;font-weight:700}.btn:hover{filter:brightness(1.05)}.btn:active{transform:translateY(1px)}.btnDanger{background:#ff50502e;border-color:#ff505073}.btnNeutral{opacity:.95}.shellLayout{padding:var(--gap-10)}@media (width<=1366px){:root{--space-page:10px;--space-gap:10px}}@media (width<=900px){.shellLayout{padding:var(--gap-8)}}@media (width<=480px){.shellLayout{padding:6px 6px 0}}.campaignGrid{margin-top:var(--gap-10);gap:var(--gap-6);grid-template-columns:minmax(0,7fr) minmax(0,6fr) minmax(0,7fr);display:grid}.campaignCol{gap:var(--gap-6);align-content:start;display:grid}@media (width<=1440px){.campaignGrid{grid-template-columns:minmax(320px,.95fr) minmax(0,1.25fr)}.campaignColLeft{grid-column:1}.campaignColMain{grid-column:2}.campaignColRight{grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}}@media (width<=1024px){.campaignGrid,.campaignColRight{grid-template-columns:1fr}.playerRowCampaign{grid-template-columns:1fr!important}.playerRowCampaign .playerRowHp{justify-content:flex-start!important}}.compendiumGrid{margin-top:var(--gap-10);gap:var(--gap-6);grid-template-columns:minmax(0,4fr) minmax(0,6fr) minmax(0,4fr);height:calc(100vh - 160px);display:grid}@media (width<=900px){.compendiumGrid{grid-template-columns:1fr;height:auto}}.compendiumCol{gap:var(--gap-6);flex-direction:column;min-height:0;display:flex}.footerGrid{grid-template-columns:minmax(0,1fr) auto auto minmax(0,1fr);align-items:center;gap:16px;display:grid}@media (width<=768px){.footerGrid{grid-template-columns:1fr auto;gap:10px}.footerGrid>:nth-child(3){grid-column:1/-1;justify-self:center}.footerGrid>:nth-child(4){grid-column:1/-1;justify-self:start}}@media (width<=480px){.footerGrid{grid-template-columns:1fr;gap:6px}.footerGrid>*{grid-column:1/-1!important;justify-self:start!important}}.footerIps{text-align:right;opacity:.75;font-size:12px}@media (width<=640px){.footerIps{display:none}}
