/* Oath Hammer Character Sheet — Consolidated Stylesheet (Standalone, VTT & Kanka) */
:root,
html[data-theme="light"] {
  color-scheme: light;
  --oh-bg-canvas: #e5e7eb;
  --oh-bg-surface: #ffffff;
  --oh-bg-subtle: #ffffff;
  --oh-surface-subtle: #ffffff;
  --oh-bg-elevated: #ffffff;
  --oh-bg-panel: #f8fafc;
  --oh-bg-panel-alt: #f1f5f9;
  --oh-bg-slate: #f8fafc;
  --oh-bg-slate-deep: #ffffff;
  --oh-bg-row: #f9fafb;
  --oh-bg-row-alt: #f4f4f4;
  --oh-bg-row-hover: #e2e8f0;
  --oh-bg-input: #ffffff;
  --oh-bg-header: #000000;
  --oh-bg-header-alt: #111827;
  --oh-bg-toolbar: #f8fafc;
  --oh-bg-menu: #ffffff;
  --oh-bg-menu-hover: #f3f4f6;
  --oh-bg-toggle: #e2e8f0;
  --oh-bg-chip: #e5e7eb;
  --oh-bg-chip-hover: #d1d5db;
  --oh-bg-btn-subtle: #ffffff;
  --oh-bg-btn-subtle-hover: #f1f5f9;
  --oh-bg-code: rgba(0, 0, 0, 0.06);
  --oh-bg-tint-subtle: rgba(15, 23, 42, 0.05);
  --oh-ink: #000000;
  --oh-ink-primary: #000000;
  --oh-ink-heading: #111827;
  --oh-ink-strong: #0f172a;
  --oh-ink-secondary: #374151;
  --oh-ink-body: #334155;
  --oh-ink-muted: #64748b;
  --oh-ink-faint: #94a3b8;
  --oh-ink-inverse: #ffffff;
  --oh-ink-on-header: #ffffff;
  --oh-ink-brand: #18181b;
  --oh-border-light: #e5e7eb;
  --oh-border-soft: #cbd5e1;
  --oh-border-muted: #94a3b8;
  --oh-border-input: #000000;
  --oh-border-strong: #000000;
  --oh-border-menu: #d1d5db;
  --oh-border-focus: #18181b;
  --oh-border-divider: rgba(15, 23, 42, 0.14);
  --oh-section-title-border: none;
  --oh-sheet-shadow: none;
  --oh-toolbar-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  --oh-accent-active-bg: #18181b;
  --oh-accent-active-ink: #ffffff;
  --oh-accent-active-border: #18181b;
  --oh-accent-cobalt: #2563eb;
  --oh-accent-cobalt-bg: rgba(37, 99, 235, 0.08);
  --oh-accent-cobalt-soft: #f1f5f9;
  --oh-accent-cobalt-tint: #e2e8f0;
  --oh-accent-cobalt-ink: #1e3a8a;
  --oh-accent-cobalt-strong: #0f172a;
  --oh-accent-cobalt-border: #94a3b8;
  --oh-accent-emerald: #10b981;
  --oh-accent-amber: #57534e;
  --oh-accent-crimson: #b91c1c;
  --oh-accent-teal-bg: #f0fdfa;
  --oh-accent-teal-hover: #ccfbf1;
  --oh-accent-teal-ink: #0f766e;
  --oh-accent-teal-border: #99f6e4;
  --oh-success-bg: #f0fdf4;
  --oh-success-bg-strong: #dcfce7;
  --oh-success-ink: #15803d;
  --oh-success-border: #86efac;
  --oh-warn-bg: #fffbeb;
  --oh-warn-bg-strong: #fef3c7;
  --oh-warn-ink: #92400e;
  --oh-warn-border: #d97706;
  --oh-danger-bg: #fef2f2;
  --oh-danger-bg-strong: #fee2e2;
  --oh-danger-ink: #b91c1c;
  --oh-danger-border: #f87171;
  --oh-focus-ring: #ffdd00;
  --oh-focus-inner: #0b0c0c;
  --oh-radius-sm: 2px;
  --oh-radius-md: 4px;
  --oh-radius-lg: 8px;
}
.u-hidden,
[hidden] {
  display: none !important;
}
.u-sr-only {
  position: absolute !important;
  inline-size: 1px !important;
  block-size: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.oh-svg-ico {
  inline-size: 14px;
  block-size: 14px;
  vertical-align: -2px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
}
.oh-svg-ico:not(:only-child) {
  margin-inline-end: 4px;
}
.oh-flex-wrap {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
}
.oh-flex-between {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
@keyframes ohScreenSlideFromRight {
  0% {
    opacity: 0.35;
    transform: translate3d(32px, 0, 0) scale(0.985);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}
@keyframes ohScreenSlideFromLeft {
  0% {
    opacity: 0.35;
    transform: translate3d(-32px, 0, 0) scale(0.985);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}
@keyframes ohScreenSlideFromBottom {
  0% {
    opacity: 0.35;
    transform: translate3d(0, 28px, 0) scale(0.985);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}
@keyframes ohScreenSlideFromTop {
  0% {
    opacity: 0.35;
    transform: translate3d(0, -28px, 0) scale(0.985);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
.oath-hammer-sheet {
  font-family: "Courier New", Courier, monospace;
  padding: 15px;
  max-width: 1200px;
  margin: 0 auto;
  border-radius: var(--oh-radius-lg);
  touch-action: pan-y;
  background: var(--oh-bg-surface);
  color: var(--oh-ink-primary);
  border: 4px solid var(--oh-border-strong);
  box-shadow: var(--oh-sheet-shadow);
}
.oh-box {
  border-radius: var(--oh-radius-md);
  margin-bottom: 15px;
  padding: 10px;
  background-color: var(--oh-bg-subtle);
  border: 3px solid var(--oh-border-strong);
  color: var(--oh-ink-primary);
}
.oh-section-title {
  display: block;
  background-color: var(--oh-bg-header);
  color: var(--oh-ink-inverse);
  text-align: center;
  font-weight: bold;
  padding: 5px;
  margin: -10px -10px 10px -10px;
  text-transform: uppercase;
  font-size: 1.1em;
}
.oh-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  border: none;
  padding: 0;
  margin-bottom: 20px;
}
.oh-title h1 {
  font-size: 3rem;
  font-weight: 900;
  text-transform: uppercase;
  margin: 0 0 10px 0;
  letter-spacing: 2px;
  color: var(--oh-ink-heading);
}
.oh-title {
  width: 100%;
  max-width: 100%;
}
.oh-title-row,
.oh-instance-banner-left,
.oh-cl-diff-header,
.oh-cl-feedback-actions,
.oh-beta-strip-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.oh-title-row {
  width: 100%;
  max-width: 100%;
  justify-content: space-between;
}
.oh-version-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  vertical-align: middle;
  margin-bottom: 8px;
  flex-wrap: wrap;
  max-width: 100%;
}
.oh-version-pill {
  font-size: 0.7rem;
  font-weight: 800;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  padding: 3px 7px;
  border-radius: 4px;
  background: #374151;
  color: #f9fafb;
  letter-spacing: 0.05em;
  line-height: 1.2;
}
.oh-env-pill {
  font-size: 0.65rem;
  font-weight: 800;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  padding: 3px 7px;
  border-radius: 4px;
  letter-spacing: 0.05em;
  line-height: 1.2;
}
.oh-env-pill.oh-env-test {
  background: rgba(217, 119, 6, 0.15);
  color: #f59e0b;
  border: 1px solid rgba(217, 119, 6, 0.35);
}
.oh-env-pill.oh-env-prod {
  background: rgba(16, 185, 129, 0.15);
  color: #10b981;
  border: 1px solid rgba(16, 185, 129, 0.35);
}
.oh-env-pill.oh-env-kanka {
  background: #1e293b;
  color: #cbd5e1;
  border: 1px solid #475569;
}
.oh-env-pill.oh-env-standalone {
  background: #1e1e24;
  color: #a1a1aa;
  border: 1px solid #3f3f46;
}
.oh-env-pill.oh-env-beta {
  background: rgba(245, 158, 11, 0.15);
  color: #fbbf24;
  border: 1px solid rgba(245, 158, 11, 0.35);
}
.oh-env-pill.oh-env-tweaked {
  background: var(--oh-bg-chip);
  color: var(--oh-ink-heading);
  border: 1px solid var(--oh-border-soft);
}
.oath-hammer-sheet.oh-sheet-beta-mode {
  border-color: #b45309 !important;
  box-shadow: 0 0 0 2px rgba(217, 119, 6, 0.2);
}
.oath-hammer-sheet.oh-sheet-tweaked-mode {
  border-color: var(--oh-border-muted) !important;
  box-shadow: none;
}
.oh-toolbar.oh-toolbar-beta-mode {
  border-bottom: 2px solid rgba(245, 158, 11, 0.5) !important;
}
.oh-instance-banner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: -15px -15px 14px -15px;
  padding: 9px 14px;
  border-radius: 4px 4px 0 0;
  font-family:
    system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    sans-serif;
  font-size: 0.82rem;
  line-height: 1.35;
}
.oh-instance-banner.is-beta-mode {
  background: var(--oh-warn-bg);
  color: var(--oh-warn-ink);
  border-bottom: 1px solid var(--oh-warn-border);
}
.oh-instance-banner.is-tweaked-mode {
  background: var(--oh-bg-panel);
  color: var(--oh-ink-primary);
  border-bottom: 1px solid var(--oh-border-soft);
}
.oh-instance-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--oh-warn-bg);
  color: var(--oh-warn-ink);
  border: 1px solid var(--oh-warn-border);
  font-size: 0.72rem;
  font-weight: 800;
  padding: 3px 9px;
  border-radius: 999px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  white-space: nowrap;
}
.oh-instance-banner.is-tweaked-mode .oh-instance-badge {
  background: var(--oh-bg-chip);
  color: var(--oh-ink-heading);
  border: 1px solid var(--oh-border-soft);
}
.oh-instance-text {
  font-weight: 500;
}
.oh-instance-text code {
  background: var(--oh-bg-code);
  color: var(--oh-warn-ink);
  padding: 1px 5px;
  border-radius: 4px;
  font-size: 0.76rem;
}
.oh-instance-banner-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}
.oh-instance-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.73rem;
  font-weight: 700;
  padding: 4px 9px;
  border-radius: 5px;
  background: var(--oh-bg-btn-subtle);
  color: var(--oh-ink-primary);
  border: 1px solid var(--oh-border-soft);
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s ease;
}
.oh-instance-btn:hover {
  background: var(--oh-bg-btn-subtle-hover);
  border-color: var(--oh-border-muted);
  color: var(--oh-ink-strong);
}
.oh-instance-btn-highlight {
  background: var(--oh-warn-bg-strong) !important;
  color: var(--oh-warn-ink) !important;
  border-color: var(--oh-warn-border) !important;
}
.oh-channel-pill,
.oh-beta-drawer-btn,
.oh-changelog-pill-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.68rem;
  font-weight: 700;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  padding: 3px 8px;
  border-radius: 4px;
  line-height: 1.2;
  cursor: pointer;
  transition: all 0.15s ease;
}
.oh-channel-pill {
  background: var(--oh-warn-bg);
  color: var(--oh-warn-ink);
  border: 1px solid var(--oh-warn-border);
  text-decoration: none;
  letter-spacing: 0.03em;
}
.oh-channel-pill:hover {
  background: var(--oh-warn-bg-strong);
  border-color: #f59e0b;
  color: var(--oh-warn-ink);
}
.oh-channel-pill.is-beta-active {
  background: rgba(16, 185, 129, 0.12);
  color: #6ee7b7;
  border-color: rgba(16, 185, 129, 0.3);
}
.oh-beta-drawer-btn {
  background: var(--oh-bg-btn-subtle);
  color: var(--oh-ink-heading);
  border: 1px solid var(--oh-border-soft);
}
.oh-beta-drawer-btn:hover {
  background: var(--oh-bg-btn-subtle-hover);
  color: var(--oh-ink-heading);
  border-color: var(--oh-border-muted);
}
.oh-version-pill[role="button"] {
  cursor: pointer;
  border: 1px solid var(--oh-border-soft);
  background: var(--oh-bg-row-alt);
  color: var(--oh-ink-muted);
}
.oh-version-pill[role="button"]:hover {
  background: var(--oh-bg-row-hover);
  border-color: var(--oh-border-muted);
  color: var(--oh-ink-primary);
}
.oh-changelog-pill-btn {
  background: var(--oh-bg-row-alt);
  color: var(--oh-ink-muted);
  border: 1px solid var(--oh-border-soft);
}
.oh-changelog-pill-btn:hover {
  background: var(--oh-bg-row-hover);
  border-color: var(--oh-border-muted);
  color: var(--oh-ink-primary);
}
.oh-changelog-dialog {
  max-width: 860px;
  width: 96%;
}
.oh-changelog-body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-height: 74vh;
  overflow-y: auto;
}
.oh-cl-diff-box {
  border-radius: 8px;
  padding: 12px 14px;
  background: var(--oh-bg-panel);
  color: var(--oh-ink-primary);
  border: 2px solid var(--oh-border-soft);
}
.oh-cl-diff-header {
  justify-content: space-between;
  margin-bottom: 6px;
}
.oh-cl-diff-header h3 {
  margin: 0;
  font-size: 1rem;
  font-weight: 900;
}
.oh-cl-compat-pill {
  background: #065f46;
  color: #ecfdf5;
  font-size: 0.72rem;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: 999px;
}
.oh-cl-diff-lead {
  margin: 0 0 10px 0;
  font-size: 0.84rem;
  line-height: 1.45;
}
.oh-cl-table-wrap {
  overflow-x: auto;
}
.oh-cl-diff-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: 0.8rem;
  background: var(--oh-bg-surface);
  color: var(--oh-ink-primary);
  border-radius: 6px;
  overflow: hidden;
}
.oh-cl-diff-table th,
.oh-cl-diff-table td {
  border: 1px solid var(--oh-border-soft);
  padding: 7px 9px;
  text-align: start;
  vertical-align: top;
  line-height: 1.4;
  word-break: break-word;
}
.oh-cl-diff-table th {
  font-weight: 700;
  background: var(--oh-bg-row-alt);
  color: var(--oh-ink-heading);
}
.oh-cl-vote-cell {
  vertical-align: middle !important;
  text-align: center !important;
  white-space: nowrap !important;
}
.oh-cl-vote-group {
  display: inline-flex;
  border-radius: 6px;
  gap: 2px;
  background: var(--oh-bg-toggle);
  padding: 2px;
  white-space: nowrap;
}
.oh-cl-vote-btn {
  background: transparent;
  color: var(--oh-ink-faint);
  border: 1px solid transparent;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 3px 6px;
  border-radius: 4px;
  cursor: pointer;
  transition:
    background-color 0.15s ease,
    color 0.15s ease,
    border-color 0.15s ease;
  line-height: 1.2;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  min-height: 36px;
}
.oh-cl-vote-btn:hover {
  background: var(--oh-bg-btn-subtle-hover);
  color: var(--oh-ink-primary);
}
.oh-cl-vote-btn[data-vote="yes"].is-voted {
  background: var(--oh-success-bg-strong) !important;
  color: var(--oh-success-ink) !important;
  border-color: var(--oh-success-border) !important;
  font-weight: 600 !important;
}
.oh-cl-vote-btn[data-vote="tweak"].is-voted {
  background: var(--oh-warn-bg-strong) !important;
  color: var(--oh-warn-ink) !important;
  border-color: var(--oh-warn-border) !important;
  font-weight: 600 !important;
}
.oh-cl-vote-btn[data-vote="no"].is-voted {
  background: var(--oh-danger-bg-strong) !important;
  color: var(--oh-danger-ink) !important;
  border-color: var(--oh-danger-border) !important;
  font-weight: 600 !important;
}
.oh-cl-feedback-panel {
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 6px;
  background: var(--oh-bg-row);
  border: 1px solid var(--oh-border-soft);
}
.oh-cl-feedback-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 8px;
}
.oh-cl-feedback-header h4 {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 800;
  color: var(--oh-ink-heading);
}
.oh-cl-feedback-hint {
  font-size: 0.74rem;
  color: var(--oh-ink-muted);
}
.oh-cl-feedback-textarea {
  width: 100%;
  border-radius: 4px;
  padding: 7px 9px;
  font-size: 0.8rem;
  font-family: inherit;
  border: 1px solid var(--oh-border-soft);
  background: var(--oh-bg-elevated);
  color: var(--oh-ink-primary);
  resize: vertical;
  margin-bottom: 8px;
}
.oh-cl-feedback-status {
  margin-top: 8px;
  padding: 6px 10px;
  border-radius: 4px;
  font-size: 0.78rem;
  font-weight: 600;
}
.oh-cl-feedback-status.is-success {
  background: var(--oh-success-bg);
  color: var(--oh-success-ink);
  border: 1px solid var(--oh-success-border);
}
.oh-cl-feedback-status.is-error {
  background: var(--oh-danger-bg);
  color: var(--oh-danger-ink);
  border: 1px solid var(--oh-danger-border);
}
.oh-cl-history {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.oh-cl-version-card {
  border: 1.5px solid var(--oh-border-soft);
  border-radius: 8px;
  padding: 12px 14px;
  background: var(--oh-bg-panel);
  color: var(--oh-ink-primary);
}
.oh-cl-version-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}
.oh-cl-ver-tag {
  background: #1e293b;
  color: #f8fafc;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.78rem;
  font-weight: 800;
  padding: 2px 8px;
  border-radius: 4px;
}
.oh-cl-ver-date {
  font-size: 0.78rem;
  font-weight: 700;
  opacity: 0.75;
}
.oh-cl-list {
  margin: 0;
  padding-inline-start: 18px;
  font-size: 0.83rem;
  line-height: 1.5;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.oh-tbtn-channel {
  background: var(--oh-warn-bg);
  color: var(--oh-warn-ink);
  border-color: var(--oh-warn-border);
  font-weight: 700;
  text-decoration: none;
}
.oh-tbtn-channel:hover {
  background: var(--oh-warn-bg-strong);
  border-color: #f59e0b;
  color: var(--oh-warn-ink);
}
.oh-tbtn-channel.is-beta-active {
  background: var(--oh-success-bg);
  color: var(--oh-success-ink);
  border-color: var(--oh-success-border);
}
.oh-tbtn-beta {
  font-weight: 700;
  background: var(--oh-bg-btn-subtle);
  color: var(--oh-ink-heading);
  border-color: var(--oh-border-soft);
}
.oh-tbtn-beta:hover {
  background: var(--oh-bg-btn-subtle-hover);
  color: var(--oh-ink-heading);
  border-color: var(--oh-border-muted);
}
.oh-beta-preview-panel {
  border-radius: 8px;
  padding: 8px 12px;
  margin-bottom: 12px;
  font-family:
    system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    sans-serif;
  background: var(--oh-bg-panel);
  color: var(--oh-ink-strong);
  border: 2px solid var(--oh-border-soft);
}
.oh-beta-strip-title {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--oh-ink-muted);
  margin-inline-end: 4px;
}
.oh-vital-tracker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 2px 4px;
}
.oh-ammo-select {
  font-size: 0.78rem;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 4px;
  border: 1px solid var(--oh-border-muted);
  background: var(--oh-bg-row);
  color: var(--oh-ink-primary);
  max-width: 100%;
}
.oh-beta-strip-row {
  justify-content: space-between;
  padding-top: 8px;
  font-size: 0.82rem;
}
.oh-beta-chip {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  max-width: 100%;
  gap: 5px;
  border-radius: 6px;
  padding: 4px 8px;
  font-weight: 700;
  background: var(--oh-bg-row);
  border: 1px solid var(--oh-border-soft);
  color: var(--oh-ink-primary);
}
#beta-ql-av-chip,
.oh-beta-chip-clickable {
  cursor: pointer;
  user-select: none;
  transition:
    transform 0.15s ease,
    background 0.15s ease,
    border-color 0.15s ease;
}
#beta-ql-av-chip:hover,
.oh-beta-chip-clickable:hover {
  transform: translateY(-1px);
  background: var(--oh-bg-btn-subtle-hover);
  border-color: var(--oh-border-focus);
}
#beta-ql-av-chip:active,
.oh-beta-chip-clickable:active {
  transform: translateY(0);
}
.oh-beta-step,
.oh-beta-pip-btn {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  background: var(--oh-bg-surface);
  border: 1.5px solid var(--oh-border-muted);
}
.oh-beta-step {
  width: 24px;
  height: 24px;
  border-radius: 4px;
  font-weight: 900;
  line-height: 1;
  color: var(--oh-ink-heading);
}
.oh-beta-resets-group {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 5px;
}
.oh-beta-reset-btn {
  font-size: 0.74rem;
  font-weight: 800;
  padding: 4px 8px;
  border-radius: 5px;
  cursor: pointer;
  background: var(--oh-bg-btn-subtle);
  color: var(--oh-ink-heading);
  border: 1.5px solid var(--oh-border-soft);
}
.oh-beta-pip-group {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-weight: 700;
  font-size: 0.78rem;
  padding: 3px 8px;
  border-radius: 5px;
  background: var(--oh-bg-row);
  border: 1px solid var(--oh-border-soft);
}
.oh-beta-pips {
  display: inline-flex;
  gap: 3px;
}
.oh-beta-pip-btn {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  font-size: 0.7rem;
  font-weight: 900;
  color: var(--oh-ink-secondary);
}
.oh-beta-pip-btn.available {
  background: var(--oh-accent-active-bg);
  color: var(--oh-accent-active-ink);
  border-color: var(--oh-accent-active-border);
}
.oh-beta-mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}
.oh-kanka-embedded .oh-channel-pill,
.oh-kanka-embedded .oh-beta-drawer-btn,
.oh-kanka-embedded .oh-beta-preview-panel {
  display: none !important;
}
.oh-header-fields {
  width: 100%;
  display: grid;
  grid-template-columns:
    minmax(0, 2.2fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 0.7fr);
  gap: 10px;
}
.oh-header-fields .oh-field {
  flex: 1;
  display: flex;
  flex-direction: column;
  border: 3px solid var(--oh-border-strong);
}
.oh-header-fields label {
  background: var(--oh-bg-header);
  color: var(--oh-ink-on-header);
  padding: 4px;
  font-weight: bold;
  text-align: center;
  margin: 0;
}
.oh-header-fields span {
  padding: 5px;
  min-height: 30px;
  text-align: center;
}
.oh-main-grid {
  display: grid;
  grid-template-columns: 1fr 200px 1.2fr;
  gap: 20px;
}
.oh-attributes {
  padding: 0;
  border: none;
}
.oh-attr {
  flex: 1;
  display: flex;
  flex-direction: column;
  border: 3px solid #000000;
}
.oh-attr label {
  background: #000000;
  color: #ffffff;
  padding: 4px;
  text-align: center;
  font-weight: bold;
  margin: 0;
}
.oh-attr span {
  padding: 10px;
  text-align: center;
  font-size: 1.5em;
  font-weight: bold;
  min-height: 40px;
}
.oh-textarea {
  min-height: 80px;
  padding: 5px;
  background: var(--oh-bg-surface);
  color: var(--oh-ink-primary);
}
.oh-magic-stats {
  display: flex;
  gap: 5px;
  border-top: 2px solid #000000;
  padding-top: 10px;
  margin-top: 10px;
}
.oh-magic-stats .oh-field {
  flex: 1;
  display: flex;
  flex-direction: column;
  border: 2px solid #000000;
}
.oh-magic-stats label {
  background: #000000;
  color: #ffffff;
  font-size: 0.8em;
  text-align: center;
  padding: 2px;
  margin: 0;
}
.oh-magic-stats span {
  text-align: center;
  padding: 4px;
}
.oh-center-col {
  display: flex;
  flex-direction: column;
  gap: 15px;
  align-items: center;
}
.oh-defense,
.oh-focus,
.oh-traits,
.oh-trinkets,
.oh-wealth,
.oh-gear-notes,
.oh-combat-notes {
  width: 100%;
  text-align: center;
}
.oh-grit-luck {
  width: 100%;
  text-align: center;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.oh-grit-luck .oh-field {
  border: 2px solid #000000;
  padding: 4px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}
.oh-grit-luck .oh-field label {
  font-weight: 800;
  font-size: 0.8rem;
}
.oh-traits-body,
.oh-focus-body,
.oh-blank-notes-area,
.oh-traits-body input,
.oh-focus-body input {
  width: 100%;
}
.oh-blank-notes-area textarea {
  width: 100%;
  max-width: 100%;
  min-height: 76px;
  font-family: inherit;
  font-size: 0.85rem;
  padding: 6px;
  border: 1px solid #000000;
  border-radius: 2px;
  resize: vertical;
  display: block;
}
.oh-defense label,
.oh-focus label,
.oh-traits label {
  font-weight: bold;
  display: block;
  margin-bottom: 5px;
}
.oh-trinkets .oh-field {
  margin-bottom: 5px;
  border-bottom: 2px solid #000000;
  display: flex;
  justify-content: space-between;
}
.oh-trinkets label {
  background: #000000;
  color: #ffffff;
  padding: 2px 5px;
}
.oh-wealth .oh-field {
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
  border-bottom: 2px solid #000000;
}
.oh-table {
  width: 100%;
  border-collapse: collapse;
}
.oh-table th {
  background: var(--oh-bg-header);
  color: var(--oh-ink-on-header);
  padding: 5px;
  text-align: start;
  border: 1px solid var(--oh-border-strong);
  border-bottom: 2px solid var(--oh-border-strong);
}
.oh-table td {
  border: 2px solid var(--oh-border-strong);
  padding: 5px;
  min-height: 25px;
  color: var(--oh-ink-primary);
  border-bottom: 1px solid var(--oh-border-light);
}
.oh-skills-table th {
  font-size: 0.75rem;
  padding: 3px 2px;
  text-align: center;
}
.oh-skills-table td {
  text-align: center;
  padding: 2px 2px;
  font-size: 0.75rem;
}
.oh-skills-table td:first-child {
  text-align: end;
  font-weight: bold;
  background: var(--oh-bg-row-alt);
  color: var(--oh-ink-heading);
}
.oh-items-table td {
  font-size: 0.9em;
  padding: 4px;
  width: 50%;
}
.oh-table-wrapper {
  width: 100%;
  overflow-x: auto;
}
.oh-section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 2px solid #000000;
  padding-bottom: 4px;
  margin-bottom: 8px;
}
.oh-array-hint {
  font-size: 0.75rem;
  font-weight: bold;
  color: var(--oh-ink-muted);
  text-transform: uppercase;
}
.oh-attr-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}
.oh-attr-card {
  padding: 6px;
  display: flex;
  flex-direction: column;
  align-items: center;
  border-radius: var(--oh-radius-md);
  cursor: pointer;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    border-color 0.15s ease;
  background: var(--oh-bg-elevated);
  border: 2px solid var(--oh-border-strong);
  color: var(--oh-ink-primary);
}
.oh-attr-card label {
  font-size: 0.75rem;
  font-weight: 900;
  margin-bottom: 4px;
}
.oh-attr-inputs {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 4px;
}
.oh-attr-mod {
  font-size: 0.75rem;
  font-weight: bold;
  color: var(--oh-accent-cobalt);
}
.oh-attr-total-wrap {
  width: 100%;
  text-align: center;
  padding: 2px 0;
  background: var(--oh-bg-header);
  color: var(--oh-ink-inverse);
  border-top: 1px solid var(--oh-border-strong);
}
.oh-attr-total {
  font-size: 1.25rem;
  font-weight: 900;
  cursor: pointer;
}
.oh-oath-select,
.oh-oath-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--oh-bg-row-alt);
  border: 1px solid var(--oh-border-strong);
  color: var(--oh-ink-primary);
}
.oh-oath-select {
  margin-bottom: 8px;
  padding: 4px;
  font-weight: bold;
}
.oh-header-subfields {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed var(--oh-border-strong);
}
.oh-oaths-selection {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 8px;
}
.oh-oath-row {
  padding: 3px 6px;
}
.oh-oath-row label {
  font-weight: bold;
  font-size: 0.75rem;
  min-width: 60px;
}
.oh-oath-row span {
  flex-grow: 1;
}
.oh-oaths-vows {
  font-size: 0.85rem;
  border-top: 1px dashed var(--oh-border-strong);
  padding-top: 6px;
  line-height: 1.35;
  background: var(--oh-bg-surface);
  color: var(--oh-ink-primary);
}
.oh-oaths-vows p {
  margin: 4px 0;
}
.oh-armor-type {
  border-bottom: 2px solid #000000;
  padding-bottom: 4px;
  margin-bottom: 6px;
  font-weight: bold;
}
.oh-armor-stats {
  display: flex;
  justify-content: space-between;
}
.oh-notes-section {
  margin-top: 10px;
}
.oh-notes-content textarea {
  width: 100%;
  min-height: 220px;
  border: 2px solid #000000;
  padding: 10px;
  font-family: inherit;
  font-size: 0.95rem;
  line-height: 1.5;
  resize: vertical;
  background: #ffffff;
}
.oh-skills-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
  border-collapse: collapse;
}
.oh-skills-table .col-skill {
  width: auto;
  text-align: start;
  font-weight: bold;
  padding-inline-start: 6px;
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: rgba(37, 99, 235, 0.2);
  background: var(--oh-bg-elevated);
  color: var(--oh-ink-heading);
}
.oh-skills-table .col-ranks {
  width: 52px;
  text-align: center;
}
.oh-skills-table .col-mods {
  width: 50px;
  text-align: center;
  min-width: 0;
}
.oh-skills-table .col-total {
  width: 46px;
  text-align: center;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: rgba(37, 99, 235, 0.2);
  font-weight: 900;
  transition: background 0.15s ease, color 0.15s ease;
  background: var(--oh-bg-row);
  color: var(--oh-ink-heading);
}
.oh-skills-table .col-color {
  width: 72px;
  text-align: center;
}
.oh-gov-attr {
  display: block;
  font-size: 0.65rem;
  color: var(--oh-ink-muted);
  font-weight: 500;
  line-height: 1.1;
  margin-top: 1px;
  white-space: nowrap;
}
.oh-skills-table select,
.oh-skills-table input {
  font-size: 0.75rem !important;
  padding: 1px 2px !important;
  text-align: center !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  field-sizing: content;
}
.oh-skills-table .col-ranks select {
  width: auto !important;
  min-inline-size: 3.6ch !important;
  max-inline-size: 46px !important;
  margin: 0 auto !important;
  display: inline-block;
}
.oh-skills-table .col-color select {
  width: auto !important;
  min-inline-size: 6.2ch !important;
  max-inline-size: 66px !important;
  margin: 0 auto !important;
  display: inline-block;
}
.oh-skills-table .col-mods .oh-mod-cell,
.oh-skills-table .col-mods .oh-val {
  min-width: 0;
  max-width: 100%;
  width: 100%;
}
.oh-skills-table .col-mods input {
  width: 100% !important;
  max-width: 40px !important;
  min-width: 0 !important;
  margin: 0 auto !important;
  display: block;
}
.oh-weapons .oh-table {
  table-layout: fixed;
  width: 100%;
}
@media screen {
  .oh-weapons .oh-table th:nth-child(1),
  .oh-weapons .oh-table td:nth-child(1) {
    inline-size: 37%;
  }
  .oh-weapons .oh-table th:nth-child(2),
  .oh-weapons .oh-table td:nth-child(2) {
    inline-size: 52px !important;
    text-align: center;
  }
  .oh-weapons .oh-table th:nth-child(3),
  .oh-weapons .oh-table td:nth-child(3) {
    inline-size: 82px !important;
    text-align: center;
  }
  .oh-weapons .oh-table th:nth-child(4),
  .oh-weapons .oh-table td:nth-child(4) {
    inline-size: 40px !important;
    text-align: center;
  }
  .oh-weapons .oh-table th:nth-child(5),
  .oh-weapons .oh-table td:nth-child(5) {
    inline-size: auto;
  }
}
.oh-weapons .oh-val[data-attr$=" RNG"] input {
  field-sizing: content;
  width: 100% !important;
  min-inline-size: 4ch;
  max-inline-size: 58px !important;
  text-align: center;
  padding: 2px 3px !important;
  margin: 0 auto;
  display: block;
}
.oh-weapons .oh-dmg-cell-wrap {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 3px;
}
.oh-weapons .oh-weapon-bonus-tag:empty {
  display: none;
}
.oh-weapons .oh-val[data-attr$=" DMG"] input {
  field-sizing: content;
  width: auto !important;
  min-inline-size: 3ch;
  max-inline-size: 38px !important;
  text-align: center;
  padding: 2px 3px !important;
}
.oh-weapons .oh-val[data-attr$=" AP"] input {
  field-sizing: content;
  inline-size: 100% !important;
  min-inline-size: 2ch;
  max-inline-size: 42px !important;
  padding: 2px !important;
  text-align: center;
  margin: 0 auto;
  display: block;
}
.oh-attr-base select {
  field-sizing: content;
  font-size: 1.05rem !important;
  font-weight: 900 !important;
  width: 52px !important;
  min-inline-size: 3.8ch;
  max-inline-size: 54px !important;
  text-align: center !important;
  background: var(--oh-bg-input);
  color: var(--oh-ink-primary);
  border: 2px solid var(--oh-border-input);
}
.oh-armor-stats .oh-val input,
.oh-focus-body .oh-val input,
.oh-magic-stats .oh-val[data-attr="Arcane Stress"] input {
  field-sizing: content;
  width: auto !important;
  min-inline-size: 3.6ch;
  max-inline-size: 52px !important;
  text-align: center;
  margin: 0 auto;
  display: inline-block;
}
.oh-wealth .oh-val input {
  field-sizing: content;
  width: auto !important;
  min-inline-size: 4.5ch;
  max-inline-size: 68px !important;
  text-align: end;
}
.oh-header-fields .oh-val[data-attr="Experience"] input {
  field-sizing: content;
  width: auto !important;
  min-inline-size: 5ch;
  max-inline-size: 84px !important;
  text-align: center;
  margin: 0 auto;
  display: inline-block;
}
.oh-sub-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--oh-bg-row-alt);
  padding: 4px 6px;
  border: 1px solid var(--oh-border-strong);
  margin-bottom: 4px;
  color: var(--oh-ink-primary);
}
.oh-sub-header label {
  font-weight: 900;
  font-size: 0.75rem;
}
.oh-add-btn {
  padding: 2px 8px;
  font-size: 0.7rem;
  font-weight: bold;
  cursor: pointer;
  border-radius: 2px;
  background: var(--oh-accent-active-bg);
  color: var(--oh-accent-active-ink);
  border: 1px solid var(--oh-accent-active-border);
}
.oh-add-btn:hover {
  background: var(--oh-bg-chip-hover);
}
.oh-dynamic-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.oh-dynamic-item {
  display: flex;
  gap: 4px;
  align-items: center;
  background: #f9f9f9;
  border: 1px solid #cccccc;
  padding: 3px 4px;
}
.oh-dynamic-item select,
.oh-dynamic-item > .oh-fuzzy-combo {
  flex-grow: 1;
  flex: 1 1 180px;
  min-width: 0;
  width: 100%;
  max-width: 100%;
}
.oh-dynamic-item select {
  border: 1px solid var(--oh-border-input);
  padding: 3px 4px;
  font-size: 0.85rem;
  background: var(--oh-bg-input);
  color: var(--oh-ink-primary);
  border-radius: var(--oh-radius-sm);
}
.oh-no-spells-msg {
  font-size: 0.75rem;
  color: var(--oh-ink-muted);
  font-style: italic;
  padding: 4px 6px;
  border: 1px dashed var(--oh-border-soft);
  background: var(--oh-bg-elevated);
  border-radius: 3px;
}
.oh-del-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  min-height: 24px;
  background: #990000;
  color: #ffffff;
  border: none;
  padding: 2px 6px;
  font-weight: bold;
  font-size: 0.75rem;
  cursor: pointer;
  border-radius: 2px;
}
.oh-del-btn:hover {
  background: #cc0000;
}
.oh-mod-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}
.oh-skill-ability-bonus {
  font-size: 0.65rem;
  font-weight: 900;
  color: var(--oh-accent-cobalt-ink);
  background: var(--oh-accent-cobalt-soft);
  border: 1px solid var(--oh-accent-cobalt-border);
  border-radius: 2px;
  padding: 1px 3px;
  white-space: nowrap;
  display: none;
}
.oh-weapon-bonus-tag {
  font-size: 0.7rem;
  font-weight: bold;
  color: var(--oh-danger-ink);
  display: none;
  margin-top: 2px;
}
.oh-bonuses-summary {
  margin-top: 6px;
  padding: 4px 6px;
  font-size: 0.75rem;
  line-height: 1.3;
  display: none;
  background: var(--oh-bg-row);
  border: 1px solid var(--oh-border-soft);
  color: var(--oh-ink-primary);
}
.oh-bonuses-summary strong {
  color: var(--oh-ink-heading);
}
.oh-header-layout {
  display: flex;
  width: 100%;
  gap: 15px;
  align-items: stretch;
}
.oh-header-main {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.oh-portrait-box {
  flex: 0 0 130px;
  display: flex;
  flex-direction: column;
  border: 3px solid var(--oh-border-strong);
  background: var(--oh-bg-elevated);
}
.oh-portrait-frame {
  flex: 1;
  min-height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--oh-bg-row);
  cursor: pointer;
  position: relative;
  overflow: hidden;
}
.oh-portrait-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.oh-portrait-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--oh-ink-muted);
  font-size: 0.75rem;
  gap: 4px;
  padding: 10px;
  text-align: center;
}
.oh-portrait-icon {
  font-size: 2rem;
}
.oh-portrait-carousel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 2px solid #000000;
  background: #18181b;
  color: #f4f4f5;
  padding: 2px 4px;
  font-size: 0.72rem;
  font-weight: 800;
}
.oh-portrait-nav-btn {
  background: transparent;
  border: none;
  color: #f4f4f5;
  font-size: 0.95rem;
  font-weight: 900;
  line-height: 1;
  padding: 1px 6px;
  cursor: pointer;
  border-radius: 3px;
}
.oh-portrait-nav-btn:hover {
  background: rgba(255, 255, 255, 0.16);
}
.oh-portrait-counter {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.68rem;
  color: #d4d4d8;
}
.oh-portrait-actions {
  display: flex;
  border-top: 2px solid #000000;
  background: #000000;
}
.oh-btn-upload {
  flex: 1;
  background: #000000;
  color: #ffffff;
  font-weight: bold;
  font-size: 0.75rem;
  text-align: center;
  padding: 4px 6px;
  cursor: pointer;
  text-transform: uppercase;
  font-family: inherit;
}
.oh-btn-upload:hover {
  background: #333333;
}
.oh-btn-remove {
  background: #8b0000;
  color: #ffffff;
  border: none;
  padding: 4px 8px;
  font-weight: bold;
  cursor: pointer;
}
.oh-btn-remove:hover {
  background: #b22222;
}
.oh-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1000000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
}
.oh-lightbox-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.88);
}
.oh-lightbox-frame {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: 96vw;
  max-height: 96vh;
}
.oh-lightbox-stage {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 0;
}
.oh-lightbox-img {
  max-width: 88vw;
  max-height: 82vh;
  object-fit: contain;
  background: #111111;
  border: 2px solid #3f3f46;
  border-radius: 4px;
  display: block;
}
.oh-lightbox-nav {
  background: rgba(24, 24, 28, 0.9);
  color: #f4f4f5;
  border: 1px solid #3f3f46;
  border-radius: 6px;
  font-size: 2rem;
  line-height: 1;
  padding: 10px 12px;
  cursor: pointer;
}
.oh-lightbox-nav:hover {
  background: #2563eb;
}
.oh-lightbox-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  color: #f4f4f5;
  font-size: 0.85rem;
}
.oh-lightbox-caption {
  flex: 1;
  min-width: 120px;
  font-weight: 700;
}
.oh-lightbox-counter {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  opacity: 0.85;
}
.oh-section-header-tabs {
  display: flex;
  flex-direction: column;
  margin: -10px -10px 10px -10px;
}
.oh-section-header-tabs .oh-section-title {
  margin: 0;
}
.oh-notes-tabs {
  display: flex;
  background: var(--oh-bg-row);
  border-bottom: 2px solid var(--oh-border-strong);
  overflow-x: auto;
}
.oh-tab-btn {
  background: var(--oh-bg-row);
  color: var(--oh-ink-muted);
  border: none;
  border-inline-end: 1px solid var(--oh-border-soft);
  padding: 8px 14px;
  font-family: inherit;
  font-size: 0.85rem;
  font-weight: bold;
  cursor: pointer;
  text-transform: uppercase;
  transition: all 0.15s ease;
}
.oh-tab-btn:hover {
  background: var(--oh-bg-row-hover);
  color: var(--oh-ink-primary);
}
.oh-tab-btn.active {
  background: var(--oh-accent-active-bg);
  color: var(--oh-accent-active-ink);
}
.oh-notes-content textarea:focus {
  outline: 2px solid var(--oh-border-focus);
}
.oh-gallery-toolbar,
.oh-toolbar-right {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.oh-gallery-toolbar {
  padding-bottom: 12px;
  border-bottom: 1px dashed #aaaaaa;
  margin-bottom: 12px;
}
.oh-btn-upload-gallery {
  background: #000000;
  color: #ffffff;
  padding: 6px 12px;
  font-weight: bold;
  font-size: 0.85rem;
  cursor: pointer;
  border-radius: 3px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: inherit;
}
.oh-btn-upload-gallery:hover {
  background: #333333;
}
.oh-gallery-hint {
  font-size: 0.8rem;
  color: var(--oh-ink-muted);
  font-style: italic;
}
.oh-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 15px;
  min-height: 80px;
}
.oh-gallery-empty {
  grid-column: 1 / -1;
  text-align: center;
  padding: 25px;
  color: var(--oh-ink-muted);
  font-style: italic;
  background: var(--oh-bg-elevated);
  border: 1px dashed var(--oh-border-soft);
}
.oh-gallery-card {
  border: 2px solid var(--oh-border-strong);
  border-radius: 4px;
  overflow: hidden;
  background: var(--oh-bg-elevated);
  display: flex;
  flex-direction: column;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.15);
}
.oh-gallery-img-wrap {
  height: 140px;
  background: var(--oh-bg-input);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  cursor: pointer;
}
.oh-gallery-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.2s ease;
}
.oh-gallery-img-wrap:hover img {
  transform: scale(1.05);
}
.oh-gallery-info {
  padding: 6px;
  display: flex;
  align-items: center;
  gap: 6px;
  border-top: 1px solid var(--oh-border-strong);
  background: var(--oh-bg-row);
}
.oh-gallery-caption-input {
  flex: 1;
  border: 1px solid var(--oh-border-soft);
  padding: 3px 5px;
  font-size: 0.75rem;
  font-family: inherit;
  min-width: 0;
  background: var(--oh-bg-input);
  color: var(--oh-ink-primary);
}
.oh-gallery-star-btn {
  background: #18181b;
  color: #fbbf24;
  border: 1px solid #3f3f46;
  padding: 2px 6px;
  font-size: 0.72rem;
  cursor: pointer;
  font-weight: bold;
  border-radius: 2px;
}
.oh-gallery-star-btn.is-active {
  background: #fbbf24;
  color: #111827;
  border-color: #d97706;
}
.oh-gallery-delete-btn {
  background: #8b0000;
  color: #ffffff;
  border: none;
  padding: 2px 6px;
  font-size: 0.75rem;
  cursor: pointer;
  font-weight: bold;
  border-radius: 2px;
}
.oh-toolbar,
.oh-toolbar-left {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}
.oh-toolbar {
  background: var(--oh-bg-panel);
  color: var(--oh-ink-primary);
  border: 1px solid var(--oh-border-light);
  border-radius: 8px;
  padding: 9px 14px;
  margin-bottom: 14px;
  justify-content: space-between;
  box-shadow: var(--oh-toolbar-shadow);
}
.oh-toolbar-brand {
  font-weight: 800;
  font-size: 1.05rem;
  letter-spacing: 0.5px;
  color: var(--oh-ink-brand);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.oh-roster-controls {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
}
.oh-roster-label {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--oh-ink-muted);
  text-transform: uppercase;
}
.oh-roster-select {
  background: var(--oh-bg-surface);
  color: var(--oh-ink-primary);
  border: 1px solid var(--oh-border-soft);
  padding: 4px 8px;
  font-size: 0.8rem;
  font-weight: 600;
  border-radius: 4px;
  max-width: 200px;
  cursor: pointer;
}
.oh-tbtn-add {
  background: var(--oh-success-bg);
  border-color: var(--oh-success-border);
  color: var(--oh-success-ink);
}
.oh-tbtn-add:hover {
  background: var(--oh-success-bg-strong);
  border-color: var(--oh-success-border);
  color: var(--oh-success-ink);
}
.oh-tbtn-random {
  background: var(--oh-warn-bg);
  border-color: var(--oh-warn-border);
  color: var(--oh-warn-ink);
  font-weight: 600;
}
.oh-tbtn-random:hover {
  background: var(--oh-warn-bg-strong);
  border-color: #f59e0b;
  color: var(--oh-warn-ink);
}
.oh-tbtn-dice {
  background: var(--oh-danger-bg);
  border-color: var(--oh-danger-border);
  color: var(--oh-danger-ink);
  font-weight: 600;
}
.oh-tbtn-dice:hover {
  background: var(--oh-danger-bg-strong);
  border-color: var(--oh-danger-border);
  color: var(--oh-danger-ink);
}
.oh-tbtn-install {
  background: var(--oh-bg-btn-subtle);
  border-color: var(--oh-border-soft);
  color: var(--oh-accent-cobalt);
  font-weight: 600;
}
.oh-tbtn-install:hover {
  background: var(--oh-accent-cobalt-soft);
  border-color: var(--oh-accent-cobalt-border);
  color: var(--oh-accent-cobalt-ink);
}
.oh-toolbar-toggle-btn {
  display: none;
  background: var(--oh-bg-row);
  color: var(--oh-ink-brand);
  border: 1px solid var(--oh-border-soft);
  padding: 4px 8px;
  font-size: 0.8rem;
  font-weight: 700;
  border-radius: 4px;
  cursor: pointer;
}
.oh-autosave-status {
  font-size: 0.75rem;
  color: var(--oh-ink-muted);
  background: var(--oh-bg-row-alt);
  border: 1px solid var(--oh-border-light);
  padding: 3px 7px;
  border-radius: 4px;
}
.oh-tbtn {
  background: var(--oh-bg-btn-subtle);
  color: var(--oh-ink-secondary);
  border: 1px solid var(--oh-border-soft);
  padding: 4px 9px;
  font-size: 0.8rem;
  font-weight: 600;
  border-radius: 4px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  transition: all 0.15s ease;
}
.oh-tbtn:hover {
  background: var(--oh-bg-btn-subtle-hover);
  border-color: var(--oh-border-muted);
  color: var(--oh-ink-strong);
}
.oh-tbtn-primary {
  background: var(--oh-accent-cobalt-soft);
  border-color: var(--oh-accent-cobalt-border);
  color: var(--oh-accent-cobalt-ink);
}
.oh-tbtn-primary:hover {
  background: var(--oh-accent-cobalt-tint);
  border-color: var(--oh-accent-cobalt-border);
  color: var(--oh-accent-cobalt-ink);
}
.oh-tbtn-danger {
  background: var(--oh-danger-bg);
  border-color: var(--oh-danger-border);
  color: var(--oh-danger-ink);
}
.oh-tbtn-danger:hover {
  background: var(--oh-danger-bg-strong);
  border-color: var(--oh-danger-border);
  color: var(--oh-danger-ink);
}
.oh-theme-toggle {
  display: inline-flex;
  align-items: center;
  background: var(--oh-bg-toggle);
  border: 1px solid var(--oh-border-soft);
  border-radius: 6px;
  padding: 2px;
  gap: 2px;
  flex-shrink: 0;
}
.oh-theme-btn {
  background: transparent;
  border: none;
  color: var(--oh-ink-muted);
  font-size: 0.8rem;
  padding: 3px 6px;
  border-radius: 4px;
  cursor: pointer;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  user-select: none;
  transition: background 0.15s, color 0.15s;
  min-width: 36px !important;
  min-height: 36px !important;
  height: auto !important;
}
.oh-theme-ico-auto {
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1;
  display: inline-block;
}
.oh-theme-btn:hover {
  color: var(--oh-ink-heading);
  background: var(--oh-bg-menu-hover, rgba(0, 0, 0, 0.05));
}
.oh-theme-btn.active {
  background: var(--oh-bg-elevated);
  color: var(--oh-ink-heading);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}
.oh-rand-dialog {
  max-width: 520px !important;
  background: var(--oh-bg-elevated);
  color: var(--oh-ink-primary);
  border: 2px solid var(--oh-border-strong);
}
.oh-rand-group {
  margin-bottom: 12px;
}
.oh-rand-number-input {
  width: 90px;
  padding: 6px;
  font-size: 1.15rem;
  font-weight: 800;
  text-align: center;
  border: 2px solid var(--oh-border-input);
  border-radius: 4px;
  background: var(--oh-bg-input);
  color: var(--oh-ink-primary);
}
.oh-rand-presets {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.oh-rand-preset-btn {
  padding: 4px 8px;
  font-size: 0.75rem;
  font-weight: 700;
  background: var(--oh-bg-chip);
  color: var(--oh-ink-primary);
  border: 1px solid var(--oh-border-soft);
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.15s;
}
.oh-rand-preset-btn:hover {
  background: var(--oh-bg-chip-hover);
}
.oh-rand-preset-btn.active {
  background: var(--oh-accent-active-bg);
  color: var(--oh-accent-active-ink);
  border-color: var(--oh-accent-active-border);
}
.oh-rand-select {
  width: 100%;
  padding: 6px 8px;
  font-size: 0.88rem;
  border: 1.5px solid var(--oh-border-input);
  border-radius: 4px;
  margin-top: 4px;
  background: var(--oh-bg-input);
  color: var(--oh-ink-primary);
}
.oh-sheet-actions-bar {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: flex-start;
  margin: 6px 0 10px 0;
  flex-wrap: wrap;
  width: 100%;
  max-width: 100%;
}
#oh-standalone-toolbar ~ #sheet-container .oath-hammer-sheet:not(.oh-kanka-embedded) .oh-sheet-actions-bar {
  display: none !important;
}
.oh-kanka-session-banner {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--oh-warn-bg);
  border: 2px solid var(--oh-warn-border);
  border-radius: 6px;
  padding: 8px 12px;
  margin: 8px 0;
  font-size: 0.85rem;
  color: var(--oh-warn-ink);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.oh-session-banner-icon {
  font-size: 1.1rem;
  flex-shrink: 0;
}
.oh-session-banner-text {
  flex: 1;
  line-height: 1.4;
}
.oh-session-banner-close {
  background: none;
  border: none;
  font-size: 1rem;
  cursor: pointer;
  color: #92400e;
  padding: 2px 6px;
  border-radius: 4px;
}
.oh-session-banner-close:hover {
  background: #fef3c7;
}
.oh-w-notice-box {
  margin-bottom: 12px;
  padding: 10px 14px;
  border-radius: 6px;
  font-size: 0.85rem;
  line-height: 1.4;
}
.oh-w-notice-box.kanka-notice {
  background: var(--oh-warn-bg);
  border: 1px solid #d97706;
  color: var(--oh-warn-ink);
}
.oh-w-notice-box.standalone-notice {
  background: var(--oh-accent-cobalt-soft);
  border: 1px solid #3b82f6;
  color: var(--oh-accent-cobalt-ink);
}
.oh-screen-nav {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-bottom: 12px;
  padding: 6px;
  background: var(--oh-bg-elevated);
  border: 2px solid var(--oh-border-strong);
  border-radius: var(--oh-radius-lg);
  position: sticky;
  top: 44px;
  z-index: 50;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
  color: var(--oh-ink-primary);
}
.oh-screen-nav-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap !important;
  overflow-x: visible !important;
  gap: 4px !important;
  width: 100%;
}
.oh-screen-nav-top {
  padding-bottom: 4px;
  border-bottom: 1px dashed var(--oh-border-divider);
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
}
.oh-screen-nav-bottom {
  justify-content: flex-start;
  flex-wrap: wrap !important;
  overflow-x: visible !important;
  gap: 4px !important;
}
.oh-screen-btn {
  flex: 0 0 auto;
  padding: 7px 12px;
  font-size: 0.85rem;
  font-weight: 800;
  font-family: inherit;
  border: 2px solid var(--oh-border-strong);
  background: var(--oh-bg-elevated);
  color: var(--oh-ink-muted);
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s ease;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  user-select: none;
}
.oh-screen-btn-top {
  min-width: 118px;
  justify-content: center;
  background: var(--oh-warn-bg-strong);
  border-color: var(--oh-warn-border);
  color: var(--oh-warn-ink);
}
.oh-screen-btn:hover {
  background: #e5e7eb;
  transform: translateY(-1px);
}
.oh-screen-btn.active {
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
  background: var(--oh-accent-active-bg);
  color: var(--oh-accent-active-ink);
  border-color: var(--oh-accent-active-border);
}
.oh-screen-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
  position: relative;
  z-index: 1;
  clear: both;
  margin-top: 16px;
  padding: 10px 14px;
  background: var(--oh-bg-row);
  border: 2px solid var(--oh-border-strong);
  border-radius: 6px;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--oh-ink-primary);
}
#oh-screen-step-info {
  flex: 1 1 110px;
  text-align: center;
  min-width: 0;
  font-size: 0.82rem;
}
.oh-screen-step-btn {
  padding: 6px 14px;
  font-family: inherit;
  font-weight: 800;
  font-size: 0.85rem;
  background: var(--oh-bg-row);
  border: 2px solid var(--oh-border-input);
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.15s;
  color: var(--oh-ink-primary);
}
.oh-screen-step-btn:hover:not(:disabled) {
  background: var(--oh-accent-active-bg);
  color: var(--oh-accent-active-ink);
  border-color: var(--oh-accent-active-border);
}
.oh-screen-step-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.oh-header-toggle {
  display: none;
  width: 100%;
  margin-top: 10px;
  padding: 8px 12px;
  background: #111827;
  color: #f9fafb;
  border: 2px solid #000000;
  border-radius: 6px;
  font-family: inherit;
  font-size: 0.85rem;
  font-weight: 700;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
}
.oh-header-toggle-arrow {
  font-size: 0.75rem;
  background: #374151;
  padding: 2px 8px;
  border-radius: 4px;
}
.oh-wizard-modal {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 15px;
}
.oh-wizard-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(4px);
}
.oh-wizard-dialog {
  position: relative;
  background: var(--oh-bg-elevated);
  border: 4px solid var(--oh-border-strong);
  border-radius: var(--oh-radius-lg);
  width: 100%;
  max-width: 820px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  box-shadow:
    0 25px 50px -12px rgba(0, 0, 0, 0.5),
    0 0 0 1px rgba(0, 0, 0, 0.2);
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  overflow: hidden;
  color: var(--oh-ink-primary);
}
.oh-wizard-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  background: var(--oh-bg-header-alt);
  color: var(--oh-ink-on-header);
  border-bottom: 3px solid var(--oh-border-strong);
}
.oh-wizard-header-title {
  display: flex;
  align-items: center;
  gap: 10px;
}
.oh-wizard-badge {
  font-size: 0.7rem;
  font-weight: 900;
  padding: 2px 8px;
  border-radius: 999px;
  letter-spacing: 0.5px;
  background: var(--oh-bg-chip);
  color: var(--oh-ink-heading);
}
.oh-wizard-header h2 {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 800;
}
.oh-wizard-close {
  background: transparent;
  border: none;
  color: #9ca3af;
  font-size: 1.3rem;
  font-weight: bold;
  cursor: pointer;
  line-height: 1;
  padding: 4px 8px;
  border-radius: 4px;
}
.oh-wizard-close:hover {
  color: #ffffff;
  background: #374151;
}
.oh-wizard-stepper {
  display: flex;
  gap: 4px;
  padding: 10px 16px;
  background: var(--oh-bg-row);
  border-bottom: 2px solid var(--oh-border-light);
  overflow-x: auto;
}
.oh-wizard-stepper .oh-step-btn {
  flex: 1 0 auto;
  padding: 8px 14px;
  font-size: 0.82rem;
  font-weight: 700;
  background: var(--oh-bg-chip);
  color: var(--oh-ink-muted);
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s;
  text-align: center;
  width: auto;
  height: auto;
  min-width: 90px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.oh-wizard-stepper .oh-step-btn:hover {
  background: var(--oh-bg-chip-hover);
  color: var(--oh-ink-heading);
}
.oh-wizard-stepper .oh-step-btn.active {
  background: var(--oh-accent-active-bg);
  color: var(--oh-accent-active-ink);
  border-color: var(--oh-accent-active-border);
  box-shadow: none;
}
.oh-wizard-stepper .oh-step-btn.completed {
  background: var(--oh-accent-cobalt-tint);
  color: var(--oh-accent-cobalt-ink);
}
.oh-wizard-body {
  flex: 1;
  overflow-y: auto;
  padding: 20px;
  background: var(--oh-bg-surface);
  color: var(--oh-ink-primary);
}
.oh-wizard-step h3 {
  margin: 0 0 4px 0;
  font-size: 1.15rem;
  color: var(--oh-ink-heading);
}
.oh-w-subtitle {
  margin: 0 0 16px 0;
  font-size: 0.85rem;
  color: var(--oh-ink-secondary);
}
.oh-w-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.oh-w-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.oh-w-field label {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--oh-ink-primary);
}
.oh-w-field input,
.oh-w-field select {
  padding: 8px 10px;
  border: 2px solid var(--oh-border-input);
  border-radius: 6px;
  font-size: 0.9rem;
  background: var(--oh-bg-input);
  color: var(--oh-ink-primary);
}
.oh-w-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 12px;
}
.oh-w-card {
  border: 2px solid var(--oh-border-light);
  border-radius: var(--oh-radius-lg);
  padding: 12px;
  cursor: pointer;
  transition: all 0.15s;
  background: var(--oh-bg-row);
  display: flex;
  flex-direction: column;
  gap: 4px;
  color: var(--oh-ink-primary);
}
.oh-w-card:hover {
  border-color: var(--oh-accent-cobalt-border);
  background: var(--oh-bg-row);
  transform: translateY(-2px);
}
.oh-w-card.selected {
  background: var(--oh-bg-row-alt);
  border-color: var(--oh-border-focus);
  border-width: 2px;
  box-shadow: none;
}
.oh-w-card-header {
  display: flex;
  align-items: center;
  gap: 8px;
}
.oh-w-card-icon {
  font-size: 1.5rem;
}
.oh-w-card-title {
  font-weight: 800;
  font-size: 1rem;
  color: var(--oh-ink-heading);
}
.oh-w-card-perks {
  font-size: 0.78rem;
  color: var(--oh-accent-cobalt);
  font-weight: 700;
}
.oh-w-card-desc {
  font-size: 0.8rem;
  color: var(--oh-ink-secondary);
  line-height: 1.3;
}
.oh-w-attr-helper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  background: var(--oh-bg-row-alt);
  padding: 8px 12px;
  border-radius: 6px;
  margin-bottom: 14px;
  border: 1px solid var(--oh-border-light);
}
.oh-w-pool-status {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--oh-ink-primary);
}
.oh-w-pool-status span {
  font-family: "Courier New", monospace;
  color: var(--oh-accent-cobalt);
  font-weight: 900;
  background: var(--oh-accent-cobalt-tint);
  padding: 2px 6px;
  border-radius: 4px;
}
.oh-w-attr-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.oh-w-attr-box {
  border: 2px solid var(--oh-border-strong);
  border-radius: 6px;
  padding: 10px;
  background: var(--oh-bg-row);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  color: var(--oh-ink-primary);
}
.oh-w-attr-name {
  font-size: 0.85rem;
  font-weight: 900;
  text-transform: uppercase;
  color: var(--oh-ink-heading);
}
.oh-w-attr-box select {
  font-size: 1.15rem;
  font-weight: 900;
  font-family: inherit;
  padding: 4px 8px;
  border: 2px solid var(--oh-border-input);
  border-radius: 4px;
  width: 65px;
  text-align: center;
  background: var(--oh-bg-input);
  color: var(--oh-ink-primary);
}
.oh-w-attr-desc {
  font-size: 0.72rem;
  color: var(--oh-ink-muted);
  text-align: center;
}
.oh-w-oaths-grid {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.oh-w-oath-slot {
  border: 2px solid var(--oh-border-strong);
  border-radius: 6px;
  padding: 10px;
  background: var(--oh-bg-row);
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: var(--oh-ink-primary);
}
.oh-w-oath-slot label {
  font-weight: 800;
  font-size: 0.85rem;
}
.oh-w-oath-slot select {
  padding: 8px 10px;
  border: 2px solid var(--oh-border-input);
  border-radius: 4px;
  font-size: 0.9rem;
  background: var(--oh-bg-input);
  color: var(--oh-ink-primary);
}
.oh-w-summary-card {
  background: var(--oh-bg-row);
  border: 3px solid var(--oh-border-strong);
  border-radius: 8px;
  padding: 16px;
  color: var(--oh-ink-primary);
}
.oh-w-summary-hero {
  display: flex;
  align-items: center;
  gap: 14px;
  border-bottom: 2px solid var(--oh-border-strong);
  padding-bottom: 12px;
  margin-bottom: 12px;
}
.oh-w-summary-avatar {
  font-size: 2.2rem;
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--oh-bg-header);
  color: var(--oh-ink-inverse);
}
.oh-w-summary-name h4 {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 900;
  color: var(--oh-ink-heading);
}
.oh-w-summary-subtitle {
  font-size: 0.85rem;
  color: var(--oh-ink-body);
}
.oh-w-summary-stats-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 8px;
  margin-bottom: 12px;
}
.oh-w-stat-pill {
  background: var(--oh-bg-surface);
  border: 2px solid var(--oh-border-strong);
  border-radius: 6px;
  padding: 6px;
  text-align: center;
  color: var(--oh-ink-primary);
}
.oh-w-stat-pill label {
  display: block;
  font-size: 0.65rem;
  font-weight: 800;
  color: var(--oh-ink-muted);
}
.oh-w-stat-pill span {
  font-size: 1.1rem;
  font-weight: 900;
}
.oh-w-summary-details {
  font-size: 0.85rem;
  line-height: 1.5;
  background: var(--oh-bg-surface);
  padding: 10px;
  border: 1px solid var(--oh-border-light);
  border-radius: 6px;
  color: var(--oh-ink-primary);
}
.oh-wizard-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  background: var(--oh-bg-row);
  border-top: 2px solid var(--oh-border-strong);
  color: var(--oh-ink-primary);
}
.oh-w-footer-center {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--oh-ink-secondary);
}
.oh-tbtn-wizard {
  font-weight: 600;
  background: var(--oh-bg-btn-subtle);
  color: var(--oh-ink-heading);
  border-color: var(--oh-border-soft);
}
.oh-tbtn-wizard:hover {
  background: var(--oh-bg-btn-subtle-hover);
  color: var(--oh-ink-heading);
  border-color: var(--oh-border-muted);
}
.oh-tbtn-success {
  background: var(--oh-success-bg);
  border-color: var(--oh-success-border);
  color: var(--oh-success-ink);
  font-weight: 600;
}
.oh-tbtn-success:hover {
  background: var(--oh-success-bg-strong);
  border-color: var(--oh-success-border);
  color: var(--oh-success-ink);
}
.oh-magic-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 20px;
  margin-bottom: 20px;
}
.oh-magic-right-col {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.oh-attr-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
  border-color: #2563eb;
}
.oh-skills-table tbody tr,
.oh-weapons tbody tr {
  cursor: pointer;
  transition: background-color 0.15s ease;
}
.oh-skills-table tbody tr:hover {
  background-color: var(--oh-bg-row-hover) !important;
  color: var(--oh-ink-heading);
}
.oh-skills-table .col-total:hover,
.oh-skills-table tr:hover .col-total {
  background: var(--oh-bg-row-hover) !important;
  color: var(--oh-ink-heading);
}
.oh-weapons tbody tr:hover {
  background-color: var(--oh-bg-row-hover) !important;
}
#ohcs-roll-toast {
  position: fixed;
  bottom: 24px;
  inset-inline-end: 24px;
  z-index: 100000;
  max-width: 440px;
  width: calc(100vw - 48px);
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.25s ease-out, transform 0.25s ease-out;
  pointer-events: none;
}
#ohcs-roll-toast.visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
#ohcs-roll-toast .oh-toast-wrapper {
  position: relative;
}
#ohcs-roll-toast .oh-toast-close {
  position: absolute;
  top: 6px;
  inset-inline-end: 8px;
  background: transparent;
  border: none;
  color: var(--oh-ink-secondary);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  padding: 2px 6px;
  border-radius: 4px;
  z-index: 10;
  transition: color 0.15s ease, background 0.15s ease;
}
#ohcs-roll-toast .oh-toast-close:hover {
  color: var(--oh-ink-heading);
  background: var(--oh-bg-row-hover);
}
.oh-dice-modal {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 15px;
}
.oh-dice-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.65);
  backdrop-filter: blur(4px);
}
.oh-dice-dialog {
  position: relative;
  z-index: 10;
  background: var(--oh-bg-elevated);
  color: var(--oh-ink-primary);
  border: 2px solid var(--oh-border-strong);
  border-radius: 12px;
  width: 100%;
  max-width: 460px;
  max-height: calc(100dvh - 30px);
  box-shadow: var(--oh-sheet-shadow, 0 16px 40px rgba(0, 0, 0, 0.25));
  display: flex;
  flex-direction: column;
  overflow: hidden;
  animation: ohModalSlideIn 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.oh-dice-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  background: var(--oh-bg-panel-alt);
  border-bottom: 1px solid var(--oh-border-soft);
  flex-shrink: 0;
}
.oh-dice-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--oh-ink-heading);
  display: flex;
  align-items: center;
  gap: 6px;
}
.oh-dice-subtitle {
  font-size: 0.8rem;
  font-weight: 600;
  margin-top: 2px;
  color: var(--oh-ink-secondary);
}
.oh-dice-close {
  background: var(--oh-bg-btn-subtle);
  border: 1px solid var(--oh-border-muted);
  color: var(--oh-ink-heading);
  font-size: 1.25rem;
  font-weight: 700;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 4px;
  line-height: 1;
  transition: color 0.15s, background 0.15s, border-color 0.15s;
}
.oh-dice-close:hover {
  color: var(--oh-ink-heading);
  background: var(--oh-bg-row-hover);
  border-color: var(--oh-border-focus);
}
.oh-dice-body {
  padding: 10px 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}
.oh-dice-options-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 8px 0;
  padding: 6px 8px;
  border: 1px solid var(--oh-border-soft) !important;
  border-radius: 6px;
  font-family:
    system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    sans-serif;
  font-size: 0.76rem;
  background: var(--oh-bg-panel) !important;
  color: var(--oh-ink-primary) !important;
}
.oh-explode-toggle-group {
  justify-content: space-between;
  width: 100%;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
}
.oh-explode-toggle-group .oh-mod-label {
  margin-bottom: 0;
  font-size: 0.82rem;
  color: var(--oh-ink-heading) !important;
}
.oh-explode-segmented {
  display: inline-flex;
  background: var(--oh-bg-surface);
  border: 1px solid var(--oh-border-muted);
  border-radius: 6px;
  overflow: hidden;
}
.oh-explode-segmented .oh-mod-pill {
  border: none;
  border-radius: 0;
  padding: 4px 12px;
  font-size: 0.8rem;
}
.oh-explode-segmented .oh-mod-pill.active {
  font-weight: 800;
  background: var(--oh-accent-active-bg);
  color: var(--oh-accent-active-ink);
}
.oh-ammo-select-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  background: var(--oh-bg-panel);
  border: 1px solid var(--oh-border-soft);
  border-radius: 8px;
  padding: 6px 10px;
  flex-wrap: wrap !important;
}
.oh-ammo-select-bar .oh-mod-label {
  margin-bottom: 0;
  color: var(--oh-ink-heading);
}
.oh-ammo-select {
  background: var(--oh-bg-input);
  color: var(--oh-ink-heading);
  border: 1px solid var(--oh-border-muted);
  border-radius: 5px;
  padding: 3px 8px;
  font-size: 0.8rem;
  font-weight: 600;
}
.oh-ammo-select-hint {
  font-size: 0.72rem;
  color: var(--oh-ink-secondary);
}
.oh-dice-primary-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.oh-dice-primary-actions #oh-dice-roll-btn {
  flex: 1;
  padding: 9px 14px;
  font-size: 0.95rem;
  font-weight: 800;
}
.oh-dice-primary-actions #mod-btn-reset {
  padding: 8px 12px;
  font-size: 0.82rem;
  white-space: nowrap;
}
.oh-dice-pools {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.oh-pool-row {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--oh-bg-row);
  border: 1px solid var(--oh-border-soft);
  border-radius: 8px;
  padding: 5px 10px;
  transition: border-color 0.15s;
}
.oh-pool-row:hover {
  border-color: var(--oh-border-muted);
}
.oh-pool-badge {
  width: 32px;
  height: 32px;
  font-size: 1rem;
  flex-shrink: 0;
}
.die.black {
  background: #222222 !important;
  color: #ffffff !important;
  border: 1.5px solid #52525b !important;
}
.die.red {
  background: #c62828 !important;
  color: #ffffff !important;
  border: 1.5px solid #8e0000 !important;
}
.die.white {
  background: #ffffff !important;
  color: #111827 !important;
  border: 1.5px solid #64748b !important;
}
.oh-pool-info {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.oh-pool-name {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--oh-ink-heading);
}
.oh-pool-desc {
  font-size: 0.72rem;
  color: var(--oh-ink-secondary);
}
.oh-stepper {
  display: flex;
  align-items: center;
  gap: 6px;
}
.oh-stepper .oh-step-btn {
  width: 32px;
  height: 32px;
  background: var(--oh-bg-btn-subtle);
  color: var(--oh-ink-heading);
  border: 1px solid var(--oh-border-muted);
  border-radius: 6px;
  font-size: 1.2rem;
  font-weight: bold;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  user-select: none;
  transition: background-color 0.15s, border-color 0.15s;
}
.oh-stepper .oh-step-btn:hover {
  background: var(--oh-bg-row-hover);
  border-color: var(--oh-border-focus);
}
.oh-stepper .oh-step-btn:active {
  transform: scale(0.95);
}
.oh-step-input {
  width: 44px;
  height: 32px;
  background: var(--oh-bg-input) !important;
  border: 1px solid var(--oh-border-muted) !important;
  border-radius: 6px;
  font-size: 1.1rem !important;
  font-weight: 800 !important;
  text-align: center !important;
  padding: 0 !important;
  appearance: textfield !important;
  color: var(--oh-ink-heading) !important;
}
.oh-step-input::-webkit-outer-spin-button,
.oh-step-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.oh-dice-modifiers {
  background: var(--oh-bg-panel);
  border: 1px solid var(--oh-border-soft);
  border-radius: 8px;
  padding: 10px 12px;
}
.oh-mod-label {
  font-size: 0.68rem;
  font-weight: 800;
  color: var(--oh-ink-secondary);
  letter-spacing: 0.5px;
  margin-bottom: 8px;
}
.oh-mod-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.oh-mod-pill {
  background: var(--oh-bg-btn-subtle);
  color: var(--oh-ink-heading);
  border: 1px solid var(--oh-border-muted);
  border-radius: 6px;
  padding: 5px 10px;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  user-select: none;
  transition: all 0.15s ease;
}
.oh-mod-pill:hover {
  background: var(--oh-bg-row-hover);
  border-color: var(--oh-border-focus);
  color: var(--oh-ink-heading);
}
.oh-mod-pill.active {
  background: var(--oh-accent-active-bg);
  color: var(--oh-accent-active-ink);
  border-color: var(--oh-accent-active-border);
  box-shadow: none;
}
.oh-mod-pill.oh-mod-reset {
  margin-inline-start: auto;
  color: var(--oh-ink-secondary);
}
.oh-mod-pill.oh-mod-reset:hover {
  color: var(--oh-danger-ink);
  border-color: var(--oh-danger-border);
  background: var(--oh-danger-bg);
}
.oh-dice-results {
  animation: ohFadeIn 0.2s ease-out;
}
.oh-dice-results .hammerdice-result {
  border: 1px solid var(--oh-border-muted);
  max-width: 100%;
}
.oh-dice-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 16px;
  background: var(--oh-bg-panel-alt);
  border-top: 1px solid var(--oh-border-soft);
  color: var(--oh-ink-primary);
  gap: 10px;
  flex-shrink: 0;
}
.oh-tbtn-roll {
  background: #b45309 !important;
  color: #ffffff !important;
  border-color: #92400e !important;
  font-weight: 800 !important;
  font-size: 0.95rem !important;
  padding: 8px 16px !important;
  flex: 1;
  text-align: center;
  box-shadow: 0 2px 8px rgba(180, 83, 9, 0.35);
}
.oh-tbtn-roll:hover {
  background: #92400e !important;
  box-shadow: 0 4px 12px rgba(180, 83, 9, 0.5);
}
.oh-tbtn-roll:active {
  transform: translateY(1px);
}
.oh-weapon-cell-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  width: 100%;
}
.oh-dmg-cell-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 3px;
  width: 100%;
}
.oh-btn-weapon-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 6px;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.2;
  border-radius: 4px;
  cursor: pointer;
  border: 1px solid transparent;
  user-select: none;
  transition: background-color 0.15s, transform 0.1s;
  white-space: nowrap;
  flex-shrink: 0;
}
.oh-btn-weapon-atk {
  background: #1e3a5f;
  color: #93c5fd;
  border-color: #3b82f6;
}
.oh-btn-weapon-atk:hover {
  background: #2563eb;
  color: #ffffff;
}
.oh-btn-weapon-dmg {
  background: #451a03;
  color: #fdba74;
  border-color: #ea580c;
}
.oh-btn-weapon-dmg:hover {
  background: #c2410c;
  color: #ffffff;
}
.oh-btn-weapon-action:active {
  transform: scale(0.96);
}
.oh-help-icon,
.oh-help-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  min-width: 24px;
  min-height: 24px;
  margin-inline-start: 5px;
  background: rgba(255, 255, 255, 0.08);
  color: #d1d5db;
  border: 1px solid #4b5563;
  border-radius: 50%;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
  vertical-align: middle;
  transition: all 0.15s ease;
  user-select: none;
  padding: 0;
}
.oh-help-icon:hover,
.oh-help-btn:hover {
  background: #d97706;
  color: #ffffff;
  border-color: #f59e0b;
  box-shadow: 0 0 6px rgba(245, 158, 11, 0.5);
}
.oh-help-icon:active,
.oh-help-btn:active {
  transform: scale(0.92);
}
.oh-dice-traits {
  background: var(--oh-bg-panel);
  border: 1px solid var(--oh-border-soft);
  border-radius: 8px;
  padding: 10px 12px;
}
.oh-trait-pill {
  background: var(--oh-bg-btn-subtle);
  color: var(--oh-ink-heading);
  border: 1px solid var(--oh-border-muted);
  border-radius: 6px;
  padding: 5px 10px;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  user-select: none;
  transition: all 0.15s ease;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.oh-trait-pill:hover {
  background: var(--oh-bg-row-hover);
  border-color: var(--oh-border-focus);
  color: var(--oh-ink-heading);
}
.oh-trait-pill.active {
  background: var(--oh-accent-active-bg);
  color: var(--oh-accent-active-ink);
  border-color: var(--oh-accent-active-border);
  box-shadow: none;
}
.oh-trait-usage-tag {
  font-size: 0.68rem;
  color: var(--oh-ink-secondary);
  font-weight: normal;
}
.oh-trait-pill.active .oh-trait-usage-tag {
  color: var(--oh-accent-active-ink);
}
.oh-help-modal {
  position: fixed;
  inset: 0;
  z-index: 9999999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 15px;
}
.oh-help-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
  backdrop-filter: blur(4px);
}
.oh-help-dialog {
  position: relative;
  z-index: 10;
  background: var(--oh-bg-elevated);
  color: var(--oh-ink-primary);
  border: 2px solid var(--oh-border-muted);
  border-radius: 12px;
  width: 100%;
  max-width: 600px;
  max-height: 85vh;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.7);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  animation: ohModalSlideIn 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.oh-help-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  background: var(--oh-bg-header-alt);
  border-bottom: 1px solid var(--oh-border-muted);
  color: var(--oh-ink-primary);
}
.oh-help-badge {
  display: inline-block;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.5px;
  color: #f59e0b;
  background: rgba(245, 158, 11, 0.12);
  border: 1px solid rgba(245, 158, 11, 0.3);
  padding: 2px 6px;
  border-radius: 4px;
  margin-bottom: 4px;
}
.oh-help-title {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 800;
  color: #f9fafb;
}
.oh-help-close {
  background: transparent;
  border: none;
  color: #9ca3af;
  font-size: 1.3rem;
  font-weight: 700;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 4px;
  line-height: 1;
}
.oh-help-close:hover {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.15);
}
.oh-help-controls {
  padding: 12px 16px;
  background: #1f2937;
  border-bottom: 1px solid #374151;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.oh-help-search {
  width: 100%;
  padding: 8px 12px;
  background: #111827 !important;
  border: 1px solid #4b5563 !important;
  border-radius: 6px;
  color: #f3f4f6 !important;
  font-size: 0.9rem;
}
.oh-help-search:focus {
  outline: none;
  border-color: #f59e0b !important;
  box-shadow: 0 0 6px rgba(245, 158, 11, 0.4);
}
.oh-help-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.oh-help-tab {
  background: #111827;
  color: #9ca3af;
  border: 1px solid #374151;
  border-radius: 4px;
  padding: 4px 8px;
  font-size: 0.74rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
}
.oh-help-tab:hover {
  color: #f3f4f6;
  border-color: #6b7280;
}
.oh-help-tab.active {
  background: #b45309;
  color: #ffffff;
  border-color: #d97706;
}
.oh-help-body {
  padding: 16px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-height: calc(85vh - 180px);
  background: var(--oh-bg-surface);
  color: var(--oh-ink-primary);
}
.oh-help-entry-card {
  background: #202020;
  border: 1px solid #2e2e2e;
  border-radius: 8px;
  padding: 12px 14px;
  transition: border-color 0.15s;
}
.oh-help-entry-card:hover {
  border-color: #4b5563;
}
.oh-help-entry-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}
.oh-help-entry-title {
  font-size: 1.05rem;
  font-weight: 800;
  color: #fef3c7;
}
.oh-help-entry-gov {
  font-size: 0.74rem;
  font-weight: 700;
  color: #93c5fd;
  background: rgba(59, 130, 246, 0.15);
  border: 1px solid rgba(59, 130, 246, 0.3);
  padding: 2px 6px;
  border-radius: 4px;
}
.oh-help-entry-summary {
  font-size: 0.86rem;
  color: #e5e7eb;
  margin-bottom: 8px;
  line-height: 1.4;
}
.oh-help-entry-rules {
  font-size: 0.8rem;
  color: #9ca3af;
  background: #18181b;
  border-inline-start: 3px solid #f59e0b;
  padding: 8px 10px;
  border-start-end-radius: 4px;
  border-end-end-radius: 4px;
  line-height: 1.45;
}
.oh-help-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  background: var(--oh-bg-header-alt);
  border-top: 1px solid var(--oh-border-muted);
  color: var(--oh-ink-primary);
}
.oh-wiki-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #60a5fa;
  text-decoration: none;
  font-size: 0.82rem;
  font-weight: 600;
}
.oh-wiki-btn:hover {
  text-decoration: underline;
  color: #93c5fd;
}
.oh-tbtn-help {
  background: var(--oh-accent-teal-bg);
  color: var(--oh-accent-teal-ink);
  border-color: var(--oh-accent-teal-border);
  font-weight: 600;
}
.oh-tbtn-help:hover {
  background: var(--oh-accent-teal-hover);
  border-color: var(--oh-accent-teal-border);
  color: var(--oh-accent-teal-ink);
}
.hammerdice-result {
  font-family:
    system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    sans-serif;
  background: var(--oh-bg-panel);
  color: var(--oh-ink-primary);
  border: 1px solid var(--oh-border-muted);
  border-radius: 10px;
  padding: 12px 14px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.22);
  max-width: 440px;
}
.hammerdice-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--oh-border-soft);
  padding-bottom: 6px;
  margin-bottom: 10px;
  font-size: 0.85rem;
}
.hammerdice-character {
  font-weight: 700;
  color: var(--oh-ink-heading);
}
.hammerdice-label {
  color: var(--oh-ink-secondary);
  font-style: italic;
}
.hammerdice-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--oh-bg-surface);
  border: 1px solid var(--oh-border-soft);
  border-radius: 8px;
  padding: 8px 14px;
  margin-bottom: 10px;
}
.hammerdice-summary-label {
  text-transform: uppercase;
  font-size: 0.75rem;
  letter-spacing: 1px;
  color: var(--oh-ink-secondary);
  font-weight: 600;
}
.hammerdice-summary-val {
  font-size: 1.8rem;
  font-weight: 900;
  line-height: 1;
  color: var(--oh-ink-heading);
}
.hammerdice-breakdown {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.hammerdice-wave {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.hammerdice-wave-title {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--oh-ink-secondary);
}
.hammerdice-dice-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
.die {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  font-size: 1.25rem;
  font-weight: bold;
  border-radius: 6px;
  position: relative;
  user-select: none;
  box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.35);
  font-family:
    system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    sans-serif;
  line-height: 1;
}
.die.fail {
  opacity: 0.35;
}
.die.exploded {
  box-shadow: 0 0 8px rgba(217, 119, 6, 0.55);
}
.die-boom {
  position: absolute;
  top: -6px;
  inset-inline-end: -6px;
  font-size: 0.7rem;
  line-height: 1;
}
.hammerdice-empty {
  text-align: center;
  color: var(--oh-ink-secondary);
  font-style: italic;
  padding: 16px;
}
.oath-hammer-sheet textarea {
  background: var(--oh-bg-input);
  color: var(--oh-ink-primary);
  border: 1px solid var(--oh-border-input);
}
.oh-header-subfields label {
  background: var(--oh-bg-panel-alt);
  color: var(--oh-ink-secondary);
}
.oh-skills-table tbody tr:hover td:first-child,
.oh-skills-table tbody tr:hover .col-skill {
  background-color: var(--oh-bg-row-hover) !important;
  color: var(--oh-ink-heading);
}
.oath-hammer-sheet.oh-kanka-embedded .oh-portrait-box,
.oath-hammer-sheet.oh-kanka-embedded .oh-notes-section,
.oath-hammer-sheet.oh-kanka-embedded .oh-gallery-section,
.oath-hammer-sheet.oh-kanka-embedded .oh-spells-traits-select,
.oath-hammer-sheet.oh-kanka-embedded .oh-screen-btn[data-screen="notes"],
.oath-hammer-sheet.oh-kanka-embedded .oh-screen-btn[data-screen="gallery"] {
  display: none !important;
}
.oath-hammer-sheet.oh-kanka-embedded .oh-kanka-delegated-input {
  background: transparent !important;
  border-color: transparent !important;
  font-weight: 700;
  cursor: default;
}
.oh-tbtn-patches {
  background: var(--oh-bg-btn-subtle);
  color: var(--oh-ink-secondary);
  border: 1px solid var(--oh-border-soft);
  font-weight: 600;
}
.oh-tbtn-patches:hover {
  background: var(--oh-bg-btn-subtle-hover);
  border-color: var(--oh-border-muted);
  color: var(--oh-ink-heading);
}
.oh-patches-dialog {
  max-width: 760px;
  width: 95%;
}
.oh-patches-form-card {
  background: var(--oh-bg-panel);
  border: 1px solid var(--oh-border-soft);
  border-radius: 8px;
  padding: 14px;
}
.oh-patches-staged-list {
  max-height: 180px;
  overflow-y: auto;
  border: 1px solid var(--oh-border-soft);
  border-radius: 6px;
  background: var(--oh-bg-input);
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.oh-patches-empty {
  color: #64748b;
  font-size: 0.82rem;
  font-style: italic;
  text-align: center;
  padding: 12px;
}
.oh-patch-item-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--oh-bg-panel-alt);
  border: 1px solid var(--oh-border-light);
  border-radius: 5px;
  padding: 6px 10px;
  font-size: 0.82rem;
  color: var(--oh-ink-primary);
}
.oh-patch-item-badge {
  display: inline-block;
  font-weight: 700;
  font-size: 0.7rem;
  padding: 2px 6px;
  border-radius: 4px;
  margin-inline-end: 6px;
  text-transform: uppercase;
  background: var(--oh-bg-chip);
  color: var(--oh-ink-heading);
}
.oh-weapon-select-combo {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 2px;
  width: 100%;
  min-width: 0;
  max-width: none;
}
.oh-weapon-select {
  font-size: 0.78rem !important;
  padding: 2px 4px !important;
  width: 100%;
  max-width: 100%;
}
.oh-patch-existing-wrap {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.oh-fuzzy-combo {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  min-width: 0;
  max-width: 100%;
}
.oh-fuzzy-native-select {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  opacity: 0 !important;
  pointer-events: none !important;
  z-index: -1 !important;
  margin: 0 !important;
}
.oh-fuzzy-combo-input {
  position: relative;
  z-index: 1;
  width: 100%;
  min-width: 0;
  min-block-size: 26px;
  padding: 3px 42px 3px 6px !important;
  font-size: 0.82rem;
  font-family: inherit;
  border: 1px solid var(--oh-border-soft);
  border-radius: var(--oh-radius-md);
  background: var(--oh-bg-input);
  color: var(--oh-ink-primary);
  box-sizing: border-box;
  text-overflow: ellipsis;
}
.oh-fuzzy-input-combo .oh-fuzzy-combo-input {
  padding-inline-end: 22px !important;
}
.oh-weapons .oh-fuzzy-combo-input {
  font-size: 0.78rem;
  font-weight: 600;
  padding: 2px 38px 2px 5px !important;
}
.oh-item-slots .oh-fuzzy-combo-input,
.oh-trinkets .oh-fuzzy-combo-input {
  border-color: transparent;
  background: transparent;
  padding: 2px 20px 2px 4px !important;
  min-block-size: 24px;
  font-size: 0.8rem;
}
.oh-item-slots .oh-fuzzy-combo-input:hover,
.oh-trinkets .oh-fuzzy-combo-input:hover,
.oh-item-slots .oh-fuzzy-combo.is-open .oh-fuzzy-combo-input,
.oh-trinkets .oh-fuzzy-combo.is-open .oh-fuzzy-combo-input {
  border-color: var(--oh-border-soft);
  background: var(--oh-bg-input);
}
.oh-fuzzy-combo-input:focus-visible {
  outline: 2px solid var(--oh-border-focus);
  outline-offset: 1px;
  border-color: var(--oh-border-focus);
  background: var(--oh-bg-input);
}
.oh-fuzzy-combo.is-disabled .oh-fuzzy-combo-input {
  opacity: 0.55;
  cursor: not-allowed;
}
.oh-fuzzy-combo-clear {
  position: absolute;
  inset-inline-end: 20px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  min-width: 24px;
  min-height: 24px;
  padding: 0;
  border: none;
  border-radius: 3px;
  background: transparent;
  color: var(--oh-ink-muted);
  cursor: pointer;
}
.oh-fuzzy-combo-clear:hover {
  background: var(--oh-bg-menu-hover);
  color: var(--oh-ink-primary);
}
.oh-fuzzy-combo-clear:focus-visible {
  outline: 2px solid var(--oh-border-focus);
  outline-offset: 1px;
}
.oh-fuzzy-combo-chevron {
  position: absolute;
  inset-inline-end: 4px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 20px;
  color: var(--oh-ink-muted);
  cursor: pointer;
  user-select: none;
}
.oh-item-slots .oh-fuzzy-combo:not(:hover):not(.is-open) .oh-fuzzy-combo-chevron,
.oh-trinkets .oh-fuzzy-combo:not(:hover):not(.is-open) .oh-fuzzy-combo-chevron {
  opacity: 0.35;
}
.oh-fuzzy-combo.is-open .oh-fuzzy-combo-chevron svg {
  transform: rotate(180deg);
}
.oh-fuzzy-combo-menu {
  z-index: 10060;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: var(--oh-bg-menu);
  color: var(--oh-ink-primary);
  border: 1.5px solid var(--oh-border-muted);
  border-radius: 6px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.24);
  padding: 4px;
  font-family:
    system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    sans-serif;
  box-sizing: border-box;
}
.oh-fuzzy-combo-group {
  padding: 5px 8px 3px;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: var(--oh-ink-muted);
  border-top: 1px solid var(--oh-border-light);
  margin-top: 2px;
}
.oh-fuzzy-combo-group:first-child {
  border-top: none;
  margin-top: 0;
}
.oh-fuzzy-combo-opt {
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: 5px 8px;
  border-radius: 4px;
  cursor: pointer;
  color: var(--oh-ink-primary);
}
.oh-fuzzy-combo-opt.is-active {
  background: var(--oh-bg-row-hover);
}
.oh-fuzzy-combo-opt.is-selected .oh-fuzzy-combo-opt-title {
  font-weight: 800;
}
.oh-fuzzy-combo-opt.is-disabled {
  opacity: 0.42;
  cursor: not-allowed;
}
.oh-fuzzy-combo-opt-main {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}
.oh-fuzzy-combo-opt-title {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--oh-ink-heading);
}
.oh-fuzzy-combo-opt-badge {
  flex-shrink: 0;
  font-size: 0.68rem;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 999px;
  background: var(--oh-bg-chip);
  color: var(--oh-ink-secondary);
}
.oh-fuzzy-combo-opt-sub {
  font-size: 0.72rem;
  line-height: 1.3;
  color: var(--oh-ink-muted);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.oh-fuzzy-combo-empty {
  padding: 8px 10px;
  font-size: 0.78rem;
  font-style: italic;
  color: var(--oh-ink-muted);
}
.oh-quick-filter-input {
  padding: 5px 8px !important;
  font-size: 0.8rem !important;
  border: 1px solid var(--oh-border-muted) !important;
  border-radius: 5px !important;
  background: var(--oh-bg-input);
  color: var(--oh-ink-primary);
}
.oh-field-hint {
  font-weight: 500;
  font-size: 0.72rem;
  color: var(--oh-ink-muted);
}
.oh-w-field textarea {
  padding: 8px 10px;
  border: 2px solid var(--oh-border-input);
  border-radius: 6px;
  font-size: 0.88rem;
  font-family: inherit;
  background: var(--oh-bg-input);
  color: var(--oh-ink-primary);
  resize: vertical;
}
.oh-trait-multi-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  padding: 6px;
  border: 1px solid var(--oh-border-soft);
  border-radius: 6px;
  background: var(--oh-bg-input);
}
.oh-trait-multi-pill {
  padding: 4px 9px;
  font-size: 0.76rem;
  font-weight: 700;
  border-radius: 999px;
  border: 1px solid var(--oh-border-soft);
  background: var(--oh-bg-panel-alt);
  color: var(--oh-ink-secondary);
  cursor: pointer;
  transition: all 0.12s ease;
  user-select: none;
}
.oh-trait-multi-pill:hover {
  border-color: var(--oh-border-muted);
  background: var(--oh-bg-row-hover);
  color: var(--oh-ink-strong);
}
.oh-trait-multi-pill.is-selected {
  background: #2563eb;
  border-color: var(--oh-accent-cobalt-border);
  color: #ffffff;
  box-shadow: 0 1px 3px rgba(37, 99, 235, 0.35);
}
.oh-input-invalid {
  border-color: #dc2626 !important;
  box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.25) !important;
}
.oh-vtt-bar,
.oh-roll-log-header,
.oh-roll-log-card-body {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.oh-vtt-bar {
  flex-wrap: wrap;
  padding: 7px 12px;
  margin-bottom: 10px;
  border-radius: 6px;
  background: var(--oh-bg-header-alt);
  color: var(--oh-ink-on-header);
  border: 2px solid var(--oh-border-soft);
  box-shadow: none;
}
.oh-vtt-bar-left {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 0.8rem;
  font-weight: 700;
}
.oh-vtt-status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #22c55e;
  box-shadow: 0 0 6px #22c55e;
  flex-shrink: 0;
}
.oh-vtt-bar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
.oh-vtt-btn {
  background: rgba(255, 255, 255, 0.12);
  color: #f8fafc;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 5px;
  padding: 4px 9px;
  font-size: 0.74rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}
.oh-vtt-btn:hover {
  background: rgba(255, 255, 255, 0.14);
  border-color: var(--oh-border-focus);
}
.oh-vtt-btn.oh-vtt-btn-primary {
  background: var(--oh-accent-active-bg);
  color: var(--oh-accent-active-ink);
  border-color: var(--oh-accent-active-border);
}
.oh-vtt-btn.oh-vtt-btn-primary:hover {
  background: var(--oh-accent-active-bg);
  opacity: 0.9;
}
.oh-dice-header-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}
.oh-dice-popout-btn {
  background: var(--oh-bg-btn-subtle);
  color: var(--oh-ink-heading);
  border: 1px solid var(--oh-border-muted);
  border-radius: 5px;
  padding: 4px 9px;
  font-size: 0.74rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.oh-dice-popout-btn:hover {
  background: var(--oh-bg-row-hover);
  border-color: var(--oh-border-focus);
  color: var(--oh-ink-heading);
}
.oh-roll-log-section {
  margin-top: 12px;
  border-top: 1px solid var(--oh-border-soft);
  padding-top: 10px;
}
.oh-roll-log-header {
  margin-bottom: 6px;
}
.oh-roll-log-title {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.78rem;
  font-weight: 800;
  color: var(--oh-ink-heading);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.oh-roll-log-badge {
  background: var(--oh-bg-chip);
  color: var(--oh-ink-heading);
  padding: 1px 6px;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 700;
}
.oh-roll-log-vtt-tag {
  background: var(--oh-success-bg);
  color: var(--oh-success-ink);
  border: 1px solid var(--oh-success-border);
  padding: 1px 6px;
  border-radius: 4px;
  font-size: 0.66rem;
  font-weight: 700;
  text-transform: none;
}
.oh-roll-log-actions {
  display: inline-flex;
  gap: 5px;
}
.oh-roll-log-btn {
  background: var(--oh-bg-btn-subtle);
  color: var(--oh-ink-heading);
  border: 1px solid var(--oh-border-muted);
  border-radius: 4px;
  padding: 2px 7px;
  font-size: 0.7rem;
  font-weight: 600;
  cursor: pointer;
}
.oh-roll-log-btn:hover {
  background: var(--oh-bg-row-hover);
  color: var(--oh-ink-heading);
}
.oh-roll-log-feed {
  max-height: 190px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-inline-end: 2px;
}
.oh-roll-log-empty {
  font-size: 0.75rem;
  color: var(--oh-ink-secondary);
  font-style: italic;
  padding: 8px;
  text-align: center;
  background: var(--oh-bg-panel);
  border: 1px dashed var(--oh-border-soft);
  border-radius: 6px;
}
.oh-roll-log-card {
  background: var(--oh-bg-surface);
  border: 1px solid var(--oh-border-soft);
  border-inline-start: 3px solid var(--oh-accent-cobalt);
  border-radius: 6px;
  padding: 6px 8px;
  font-size: 0.76rem;
}
.oh-roll-log-card.is-remote {
  border-inline-start-color: var(--oh-accent-emerald);
  background: var(--oh-bg-panel);
}
.oh-roll-log-card-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 6px;
  margin-bottom: 4px;
}
.oh-roll-log-actor {
  font-weight: 800;
  color: var(--oh-ink-heading);
}
.oh-roll-log-card.is-remote .oh-roll-log-actor {
  color: var(--oh-success-ink);
}
.oh-roll-log-label {
  color: var(--oh-warn-ink);
  font-weight: 600;
}
.oh-roll-log-time {
  font-size: 0.68rem;
  color: var(--oh-ink-secondary);
  font-family: monospace;
}
.oh-roll-log-card-body {
  flex-wrap: wrap;
}
.oh-roll-log-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  align-items: center;
}
.oh-roll-log-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 4px;
  border-radius: 4px;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1;
}
.oh-roll-log-chip.white {
  background: #ffffff !important;
  color: #111827 !important;
  border: 1.5px solid #64748b !important;
}
.oh-roll-log-chip.red {
  background: #c62828 !important;
  color: #ffffff !important;
  border: 1.5px solid #8e0000 !important;
}
.oh-roll-log-chip.black {
  background: #222222 !important;
  color: #ffffff !important;
  border: 1.5px solid #52525b !important;
}
.oh-roll-log-chip.is-fail {
  opacity: 0.48;
}
.oh-roll-log-score {
  font-weight: 800;
  font-size: 0.8rem;
  padding: 2px 7px;
  border-radius: 4px;
  white-space: nowrap;
  background: var(--oh-bg-chip);
  color: var(--oh-ink-heading);
  border: 1px solid var(--oh-border-muted);
}
.oh-roll-log-breakdown {
  font-size: 0.74rem;
  color: var(--oh-ink-body);
  font-weight: 600;
  line-height: 1.3;
  margin-top: 2px;
}
.oh-roll-log-breakdown-dice {
  color: var(--oh-ink-heading);
  font-weight: 800;
}
.oh-roll-log-breakdown-succ {
  font-weight: 800;
  color: var(--oh-ink-heading);
}
.oh-roll-log-breakdown-ctx {
  color: var(--oh-accent-cobalt-ink);
  font-weight: 600;
}
.oh-roll-log-card.is-remote .oh-roll-log-breakdown-ctx {
  color: var(--oh-success-ink);
}
.oh-roll-log-dropdown {
  margin-bottom: 10px;
  background: var(--oh-bg-elevated);
  color: var(--oh-ink-primary);
  border: 2px solid var(--oh-border-soft);
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.14);
}
.oh-roll-log-dropdown-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 5px 10px;
  background: var(--oh-bg-panel-alt);
  flex-wrap: nowrap;
}
.oh-roll-log-dropdown-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--oh-bg-btn-subtle);
  color: var(--oh-ink-heading);
  border: 1px solid var(--oh-border-muted);
  border-radius: 5px;
  padding: 3px 9px;
  font-size: 0.75rem;
  font-weight: 800;
  cursor: pointer;
  flex-shrink: 0;
}
.oh-roll-log-dropdown-toggle:hover {
  background: var(--oh-bg-row-hover);
  border-color: var(--oh-border-focus);
}
.oh-roll-log-latest-inline {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  font-size: 0.75rem;
  color: var(--oh-ink-primary);
  cursor: pointer;
  padding: 2px 4px;
  border-radius: 4px;
  overflow: hidden;
  flex: 1 1 0;
  white-space: nowrap;
  line-height: 1.2;
}
.oh-roll-log-latest-inline:hover {
  background: var(--oh-bg-tint-subtle);
}
.oh-roll-log-latest-placeholder {
  color: var(--oh-ink-secondary);
  font-style: italic;
  font-size: 0.73rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.oh-roll-log-dropdown-actions {
  align-items: center;
  flex-shrink: 0;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
  gap: 4px;
}
.oh-roll-log-dropdown-panel {
  padding: 8px 10px;
  background: var(--oh-bg-panel);
  border-top: 1px solid var(--oh-border-soft);
}
.oh-roll-log-dropdown-panel .oh-roll-log-feed {
  max-height: 220px;
}
body.oh-dice-only-mode {
  padding: 0 !important;
  margin: 0 !important;
  background: var(--oh-bg-elevated) !important;
  color: var(--oh-ink-primary) !important;
}
body.oh-dice-only-mode #oh-standalone-toolbar,
body.oh-dice-only-mode .oath-hammer-sheet > :not(#oh-dice-modal),
body.oh-dice-only-mode #oh-dice-backdrop,
body.oh-dice-only-mode #oh-dice-close,
body.oh-dice-only-mode #oh-dice-cancel,
body.oh-dice-only-mode #oh-dice-popout-btn,
body.oh-log-only-mode #oh-standalone-toolbar {
  display: none !important;
}
body.oh-dice-only-mode .oath-hammer-sheet {
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
body.oh-dice-only-mode #oh-dice-modal {
  display: flex !important;
  position: static !important;
  width: 100vw !important;
  min-height: 100vh !important;
  height: auto !important;
  padding: 0 !important;
  align-items: stretch !important;
}
body.oh-dice-only-mode .oh-dice-dialog {
  max-width: 100% !important;
  width: 100% !important;
  min-height: 100vh !important;
  border-radius: 0 !important;
  border: none !important;
  box-shadow: none !important;
}
body.oh-dice-only-mode .oh-roll-log-feed {
  max-height: 340px !important;
}
body.oh-log-only-mode {
  padding: 0 !important;
  margin: 0 !important;
  background: var(--oh-bg-elevated) !important;
  color: var(--oh-ink-primary) !important;
  overflow: hidden !important;
}
body.oh-log-only-mode .oath-hammer-sheet > :not(#oh-roll-log-dropdown):not(#oh-dice-modal) {
  display: none !important;
}
body.oh-log-only-mode .oath-hammer-sheet {
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
  width: 100vw !important;
  height: 100dvh !important;
  background: var(--oh-bg-elevated) !important;
  box-shadow: none !important;
  display: flex !important;
  flex-direction: column !important;
}
body.oh-log-only-mode #oh-roll-log-dropdown {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  height: 100% !important;
  margin: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
body.oh-log-only-mode #oh-roll-log-dropdown-caret,
body.oh-log-only-mode #oh-dropdown-log-pin {
  display: none !important;
}
body.oh-log-only-mode #oh-dropdown-log-unpin {
  display: inline-flex !important;
}
body.oh-log-only-mode #oh-roll-log-dropdown-panel {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  padding: 8px 10px !important;
}
body.oh-log-only-mode #oh-roll-log-dropdown-feed {
  max-height: none !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-y: auto !important;
}
.oh-dir-suggest-list {
  position: absolute;
  top: calc(100% + 4px);
  inset-inline: 0;
  z-index: 50;
  background: var(--oh-bg-elevated);
  color: var(--oh-ink-primary);
  border: 2px solid var(--oh-border-muted);
  border-radius: 6px;
  max-height: 240px;
  overflow-y: auto;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
}
.oh-dir-suggest-item,
.oh-dir-card,
.oh-log-screen-toolbar,
.oh-provenance-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.oh-dir-suggest-item {
  padding: 7px 10px;
  font-size: 0.82rem;
  cursor: pointer;
  border-bottom: 1px solid rgba(128, 128, 128, 0.2);
}
.oh-dir-suggest-item:last-child {
  border-bottom: none;
}
.oh-dir-suggest-item:hover,
.oh-dir-suggest-item:focus {
  background: rgba(37, 99, 235, 0.14);
}
.oh-dir-card {
  flex-wrap: wrap;
  padding: 9px 11px;
  border: 1px solid rgba(128, 128, 128, 0.35);
  border-radius: 6px;
  margin-bottom: 6px;
}
.oh-dir-card-meta {
  font-size: 0.78rem;
  opacity: 0.85;
  margin-top: 2px;
}
.oh-dir-card-actions,
.oh-global-search-item-top,
.oh-log-assoc-row,
.oh-log-screen-toolbar-left,
.oh-log-screen-toolbar-right {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
}
.oh-item-help-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  min-width: 24px;
  min-height: 24px;
  padding: 0;
  margin-inline-start: 3px;
  border-radius: 50%;
  border: 1px solid var(--oh-border-muted);
  background: var(--oh-bg-slate);
  color: var(--oh-ink-body);
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
  vertical-align: middle;
  transition: all 0.12s ease;
}
.oh-item-help-btn:hover,
.oh-item-help-btn.active {
  background: #1e40af;
  color: #ffffff;
  border-color: #1e3a8a;
}
.oh-inline-help-drawer {
  flex: 1 1 100%;
  width: 100%;
  margin-top: 4px;
  padding: 6px 8px;
  border-radius: 4px;
  border-inline-start: 3px solid var(--oh-accent-cobalt-border);
  background: var(--oh-bg-slate);
  color: var(--oh-ink-primary);
  font-size: 0.74rem;
  font-weight: 400;
  line-height: 1.35;
  text-align: start;
  white-space: normal;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.oh-inline-help-meta {
  font-size: 0.72rem;
  color: var(--oh-accent-cobalt-ink);
  margin-bottom: 2px;
}
.oh-inline-help-text {
  color: var(--oh-ink-body);
}
.oh-global-search-wrap {
  position: relative;
  flex: 1 1 320px;
  max-width: 580px;
  min-width: 200px;
  margin-inline: auto;
  display: flex;
  align-items: center;
}
.oh-global-search-icon {
  position: absolute;
  inset-inline-start: 8px;
  font-size: 0.78rem;
  pointer-events: none;
  opacity: 0.75;
}
.oh-global-search-input {
  field-sizing: fixed !important;
  width: 100% !important;
  padding-block: 4px !important;
  padding-inline: 28px 58px !important;
  min-height: 30px;
  height: auto;
  border: 1.5px solid var(--oh-border-muted) !important;
  border-radius: 6px;
  background: var(--oh-bg-slate-deep) !important;
  color: var(--oh-ink-strong) !important;
  font-size: 0.78rem !important;
  font-weight: 500;
}
.oh-global-search-input:focus {
  outline: 2px solid #2563eb;
  border-color: #1d4ed8 !important;
}
.oh-global-search-kbd {
  position: absolute;
  inset-inline-end: 30px;
  font-size: 0.72rem;
  padding: 1px 4px;
  border-radius: 3px;
  border: 1px solid #cbd5e1;
  background: #f1f5f9;
  color: #475569;
  pointer-events: none;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}
.oh-global-search-clear {
  position: absolute;
  inset-inline-end: 4px;
  width: 24px;
  height: 24px;
  min-width: 24px;
  min-height: 24px;
  border: none;
  border-radius: 50%;
  background: #e2e8f0;
  color: #334155;
  font-size: 0.72rem;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.oh-global-search-results {
  position: absolute;
  top: calc(100% + 4px);
  inset-inline: 0;
  min-width: min(520px, 92vw);
  max-height: 420px;
  overflow-y: auto;
  z-index: 99990;
  background: var(--oh-bg-slate-deep);
  color: var(--oh-ink-strong);
  border: 2px solid var(--oh-border-muted);
  border-radius: 8px;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.28);
  padding: 6px;
}
.oh-global-search-empty {
  padding: 14px 10px;
  text-align: center;
  color: #64748b;
  font-size: 0.8rem;
}
.oh-global-search-item {
  padding: 7px 9px;
  border-bottom: 1px solid var(--oh-border-light);
  border-radius: 5px;
  cursor: pointer;
  text-align: start;
}
.oh-global-search-item:last-child {
  border-bottom: none;
}
.oh-global-search-item:hover {
  background: var(--oh-bg-slate);
}
.oh-global-search-item-top {
  margin-bottom: 3px;
}
.oh-global-search-badge {
  font-size: 0.62rem;
  font-weight: 800;
  padding: 1px 5px;
  border-radius: 3px;
  background: #e2e8f0;
  color: #1e293b;
  letter-spacing: 0.04em;
}
.oh-global-search-title {
  font-size: 0.84rem;
  color: var(--oh-ink-strong);
}
.oh-global-search-gov {
  font-size: 0.72rem;
  color: #64748b;
}
.oh-global-search-actions {
  margin-inline-start: auto;
  display: inline-flex;
  gap: 4px;
}
.oh-global-search-summary {
  font-size: 0.74rem;
  font-weight: 600;
  color: var(--oh-ink-body);
  margin-bottom: 2px;
}
.oh-global-search-rules {
  font-size: 0.73rem;
  color: var(--oh-ink-muted);
  line-height: 1.32;
}
.oh-roll-log-screen {
  display: none;
}
.oh-nav-log-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  font-size: 0.72rem;
  font-weight: 800;
  border-radius: 999px;
  background: #2563eb;
  color: #ffffff;
  line-height: 1;
}
.oh-screen-btn.active .oh-nav-log-badge {
  background: var(--oh-bg-surface);
  color: var(--oh-ink-primary);
}
.oh-log-assoc-bar {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 12px;
  padding: 10px 12px;
  margin-bottom: 10px;
  background: var(--oh-bg-slate-deep);
  border: 1.5px solid var(--oh-border-soft);
  border-radius: 6px;
  font-family:
    system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    sans-serif;
  color: var(--oh-ink-heading);
}
.oh-log-assoc-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.oh-log-assoc-label {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--oh-ink-muted);
  text-transform: uppercase;
}
.oh-log-assoc-row {
  min-width: 0;
}
.oh-log-select,
.oh-log-input {
  padding: 5px 8px;
  font-size: 0.82rem;
  border: 1px solid var(--oh-border-muted);
  border-radius: 4px;
  background: var(--oh-bg-slate);
  color: var(--oh-ink-strong);
  font-family: inherit;
  min-width: 0;
  flex: 1 1 130px;
}
.oh-log-code-banner {
  margin-top: 4px;
  padding: 8px 10px;
  border-radius: 5px;
  background: var(--oh-accent-cobalt-soft);
  border: 1px solid var(--oh-accent-cobalt-border);
  color: var(--oh-accent-cobalt-ink);
  font-size: 0.8rem;
  line-height: 1.4;
}
.oh-log-admin-box {
  padding: 10px 12px;
  margin-bottom: 10px;
  background: var(--oh-warn-bg);
  border: 1.5px solid var(--oh-warn-border);
  border-radius: 6px;
  font-family:
    system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    sans-serif;
  font-size: 0.82rem;
  color: var(--oh-warn-ink);
}
.oh-log-admin-header {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin-bottom: 8px;
}
.oh-log-admin-hint {
  font-size: 0.76rem;
  opacity: 0.9;
}
.oh-log-admin-controls {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.oh-log-checkbox-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  cursor: pointer;
}
.oh-log-admin-status {
  font-size: 0.78rem;
  font-weight: 700;
  min-height: 1em;
}
.oh-log-screen-toolbar {
  flex-wrap: wrap;
  margin-bottom: 10px;
}
.oh-screen-roll-log-feed {
  max-height: 620px;
  overflow-y: auto;
}
.oh-defense-roll-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
  padding-top: 6px;
  border-top: 1px dashed var(--oh-border-soft);
}
.oh-btn-def-roll {
  flex: 1 1 30%;
  min-width: 0;
  min-height: 36px;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 5px 6px;
  font-size: 0.75rem;
  font-weight: 800;
  font-family:
    system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    sans-serif;
  border: 1.5px solid var(--oh-border-muted);
  border-radius: 5px;
  cursor: pointer;
  background: var(--oh-bg-btn-subtle);
  color: var(--oh-ink-heading);
  transition: all 0.12s ease;
  text-align: center;
}
.oh-btn-def-roll .oh-btn-main {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  font-size: 0.76rem;
  font-weight: 800;
  line-height: 1.15;
}
.oh-btn-def-roll .oh-btn-sub {
  display: block;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.15;
  color: var(--oh-ink-secondary);
  font-variant-numeric: tabular-nums;
}
.oh-btn-def-roll:hover {
  background: var(--oh-bg-btn-subtle-hover);
  transform: translateY(-1px);
}
.oh-btn-def-melee {
  border-color: var(--oh-danger-border);
  background: var(--oh-danger-bg);
  color: var(--oh-danger-ink);
}
.oh-btn-def-ranged {
  border-color: var(--oh-accent-cobalt-border);
  background: var(--oh-accent-cobalt-soft);
  color: var(--oh-accent-cobalt-ink);
}
.oh-btn-def-armor {
  border-color: var(--oh-border-muted);
  background: var(--oh-bg-slate);
  color: var(--oh-ink-body);
}
.oh-provenance-box {
  margin-bottom: 10px;
  padding: 8px 10px;
  border: 1.5px solid var(--oh-border-soft) !important;
  border-radius: 6px;
  font-family:
    system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    sans-serif;
  font-size: 0.78rem;
  background: var(--oh-bg-panel) !important;
  color: var(--oh-ink-primary) !important;
}
.oh-provenance-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 6px;
  font-weight: 800;
  color: var(--oh-ink-strong);
}
.oh-provenance-hint {
  font-size: 0.7rem;
  font-weight: 500;
  color: var(--oh-ink-secondary) !important;
}
.oh-provenance-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.oh-provenance-item {
  padding: 4px 6px;
  border: 1px solid var(--oh-border-soft) !important;
  border-radius: 4px;
  cursor: pointer;
  background: var(--oh-bg-surface) !important;
  color: var(--oh-ink-primary) !important;
}
.oh-provenance-item label {
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  flex: 1;
  font-weight: 600;
}
.oh-dice-discord-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
}
.oh-post-roll-luck-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
  padding: 6px 10px;
  background: var(--oh-success-bg);
  border: 1.5px solid var(--oh-success-border);
  border-radius: 6px;
  font-family:
    system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    sans-serif;
  font-size: 0.78rem;
  color: var(--oh-success-ink);
}
.oh-post-roll-luck-btn {
  background: var(--oh-bg-btn-subtle);
  color: var(--oh-success-ink);
  border: 1px solid var(--oh-success-border);
  border-radius: 5px;
  padding: 4px 10px;
  font-size: 0.76rem;
  font-weight: 800;
  cursor: pointer;
}
.oh-post-roll-luck-btn:hover:not(:disabled) {
  background: var(--oh-success-bg-strong);
}
.oh-post-roll-luck-btn:disabled {
  opacity: 0.75;
  cursor: default;
}
body.oh-companion-roller-mode #oh-dice-modal {
  display: flex !important;
  position: static !important;
  width: 100% !important;
  height: auto !important;
  min-height: calc(100vh - 70px);
  background: transparent !important;
  padding: 8px 0 !important;
  z-index: 10 !important;
}
.oh-weapon-rune-wrap {
  display: block;
  margin-top: 3px;
}
.oh-weapons-breakdown-panel {
  margin-top: 8px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.oh-wb-card {
  border: 1px solid var(--oh-border-soft);
  border-radius: 5px;
  background: var(--oh-bg-slate-deep);
  padding: 6px 8px;
  font-size: 0.74rem;
  line-height: 1.35;
  color: var(--oh-ink-secondary);
}
.oh-wb-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 6px;
  border-bottom: 1px solid var(--oh-border-light);
  padding-bottom: 4px;
  margin-bottom: 5px;
}
.oh-wb-title {
  font-weight: 800;
  font-size: 0.8rem;
  color: var(--oh-ink-strong);
}
.oh-wb-pool-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 7px;
  font-size: 0.72rem;
  font-weight: 800;
  border-radius: 4px;
  border: 1px solid var(--oh-border-muted);
  background: var(--oh-bg-slate);
  color: var(--oh-ink-strong);
  cursor: pointer;
}
.oh-wb-pool-btn.is-red {
  background: var(--oh-danger-bg);
  border-color: var(--oh-danger-border);
  color: var(--oh-danger-ink);
}
.oh-wb-pool-btn.is-black {
  background: #18181b;
  border-color: #52525b;
  color: #fafafa;
}
.oh-wb-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 4px 8px;
}
.oh-wb-item {
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.oh-wb-label {
  font-size: 0.64rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: var(--oh-ink-muted);
}
.oh-wb-val {
  font-weight: 600;
  color: var(--oh-ink-body);
}
.oh-skill-row-actions {
  position: absolute;
  top: 2px;
  inset-inline-end: 3px;
  display: inline-flex;
  align-items: center;
  gap: 3px;
}
.oh-skill-mod-sources {
  display: block;
  margin-top: 1px;
  font-size: 0.62rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--oh-accent-cobalt-ink);
  white-space: normal;
  overflow-wrap: anywhere;
}
.oh-item-slots-status {
  margin: 2px 0 6px;
  padding: 4px 6px;
  border: 1px solid var(--oh-border-soft);
  border-inline-start: 3px solid var(--oh-success-border);
  border-radius: 3px;
  font-size: 0.72rem;
  line-height: 1.3;
  background: var(--oh-bg-panel);
  color: var(--oh-ink-primary);
}
.oh-roll-log-latest-inline .oh-roll-log-chips {
  flex: 0 1 auto;
  flex-wrap: nowrap;
  gap: 2px;
  min-width: 0;
  max-width: 45%;
  overflow: hidden;
}
.oh-roll-log-latest-inline .oh-roll-log-chip {
  min-width: 16px;
  height: 16px;
  padding: 0 3px;
  font-size: 0.64rem;
  flex: 0 0 auto;
}
.oh-roll-log-latest-inline .oh-roll-log-breakdown-dice,
.oh-toolbar-docs-dropdown summary::-webkit-details-marker {
  display: none;
}
.oh-roll-log-latest-inline .oh-roll-log-breakdown-succ {
  flex: 0 0 auto;
}
.oh-roll-log-latest-inline .oh-roll-log-breakdown-ctx {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.oh-roll-log-dropdown-actions .oh-roll-log-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 22px;
  white-space: nowrap;
}
.oh-identity-bar,
.oh-enc-card-header,
.oh-enc-weapon-row,
.oh-enc-quiver-bar,
.oh-enc-torch-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}
.oh-identity-bar {
  width: 100%;
  box-sizing: border-box;
  gap: 10px 14px;
  padding: 6px 2px;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--oh-border-divider);
}
.oh-provenance-tag {
  order: 5;
  flex: 1 0 100%;
  font-size: 0.64rem;
  line-height: 1.2;
  color: var(--oh-ink-muted);
  padding-inline-start: 2px;
}
.oh-provenance-tag.oh-provenance-unknown {
  font-style: italic;
  color: var(--oh-ink-faint);
}
.oh-wb-details {
  margin-top: 4px;
}
.oh-wb-details-summary {
  cursor: pointer;
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--oh-ink-muted);
  user-select: none;
}
.oh-wb-details[open] .oh-wb-grid {
  margin-top: 6px;
}
.oh-nav-hero-badge {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  padding: 3px 10px;
  border-radius: 6px;
  background: var(--oh-bg-tint-subtle);
  border: 1px solid var(--oh-border-divider);
  cursor: pointer;
  min-width: 0;
  max-width: 100%;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.oh-nav-hero-badge:hover {
  background: rgba(245, 158, 11, 0.14);
  border-color: rgba(217, 119, 6, 0.45);
}
.oh-nav-hero-name {
  font-weight: 900;
  font-size: 0.95rem;
  color: var(--oh-ink-strong);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.oh-nav-hero-sub {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--oh-ink-body);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.oh-screen-nav-top-btns {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-inline-start: auto;
}
.oh-screen-btn-expand {
  background: var(--oh-accent-cobalt-soft);
  border: 1.5px solid var(--oh-accent-cobalt-border);
  border-radius: 6px;
  color: var(--oh-accent-cobalt-ink);
  font-size: 0.78rem;
  font-weight: 800;
  padding: 6px 10px;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  transition: all 0.15s ease;
}
.oh-screen-btn-expand:hover {
  background: var(--oh-accent-cobalt-tint);
}
.oh-tab-btn-expand-all {
  margin-inline-start: auto;
  background: var(--oh-accent-cobalt-soft) !important;
  color: var(--oh-accent-cobalt-ink) !important;
  border-inline-start: 1px solid var(--oh-accent-cobalt-border) !important;
}
.oh-encounter-combat-deck {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed rgba(148, 163, 184, 0.45);
}
.oh-enc-deck-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
  gap: 10px;
}
.oh-enc-card {
  background: var(--oh-bg-slate-deep);
  border: 1.5px solid var(--oh-border-soft);
  border-radius: 6px;
  padding: 8px 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  color: var(--oh-ink-heading);
}
.oh-enc-card-header {
  gap: 6px;
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0.4px;
  color: var(--oh-ink-strong);
  border-bottom: 1px solid var(--oh-border-light);
  padding-bottom: 4px;
}
.oh-enc-armor-tag {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--oh-ink-muted);
}
.oh-enc-weapons-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.oh-enc-weapon-row {
  gap: 8px;
  padding: 6px 8px;
  background: var(--oh-bg-slate);
  border: 1px solid var(--oh-border-light);
  border-radius: 5px;
}
.oh-enc-weapon-info {
  flex: 1 1 160px;
  min-width: 0;
}
.oh-enc-weapon-title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  font-size: 0.88rem;
  color: var(--oh-ink-strong);
}
.oh-enc-weapon-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 3px;
  font-size: 0.72rem;
  color: var(--oh-ink-body);
}
.oh-enc-badge {
  display: inline-block;
  padding: 1px 5px;
  border-radius: 4px;
  background: var(--oh-bg-row-hover);
  color: var(--oh-ink-strong);
  font-weight: 700;
  font-size: 0.68rem;
}
.oh-enc-badge-rune {
  background: #fef3c7;
  color: #92400e;
  border: 1px solid #f59e0b;
}
.oh-enc-traits {
  font-style: italic;
  font-weight: 600;
}
.oh-enc-weapon-actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.oh-enc-act-btn {
  min-height: 34px;
  padding: 5px 10px;
  font-size: 0.78rem;
  font-weight: 800;
  border-radius: 5px;
  cursor: pointer;
  border: 1.5px solid #1e293b;
}
.oh-enc-atk-btn {
  background: var(--oh-accent-cobalt-soft);
  border-color: var(--oh-accent-cobalt-border);
  color: var(--oh-accent-cobalt-ink);
}
.oh-enc-dmg-btn {
  background: var(--oh-danger-bg);
  border-color: var(--oh-danger-border);
  color: var(--oh-danger-ink);
}
.oh-enc-def-btns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(125px, 1fr));
  gap: 6px;
}
.oh-enc-def-btns .oh-btn-def-roll {
  min-height: 36px;
  justify-content: center;
}
.oh-enc-quiver-bar,
.oh-enc-torch-bar {
  gap: 6px;
  padding-top: 6px;
  border-top: 1px dashed var(--oh-border-soft);
  font-size: 0.78rem;
}
.oh-enc-quiver-controls,
.oh-enc-torch-controls {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.oh-enc-spells-block {
  border-top: 1px dashed var(--oh-border-soft);
  padding-top: 6px;
}
.oh-enc-sub-label {
  font-size: 0.68rem;
  font-weight: 800;
  color: var(--oh-ink-muted);
  margin-bottom: 4px;
}
.oh-enc-spells-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.oh-enc-spell-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 8px;
  border-radius: 6px;
  font-size: 0.76rem;
  font-weight: 700;
  background: var(--oh-bg-row);
  border: 1px solid var(--oh-border-soft);
  color: var(--oh-ink-primary);
}
.oh-enc-cast-btn {
  border-radius: 4px;
  padding: 2px 7px;
  font-size: 0.72rem;
  font-weight: 800;
  cursor: pointer;
  background: var(--oh-accent-active-bg);
  color: var(--oh-accent-active-ink);
  border: 1px solid var(--oh-accent-active-border);
}
#oh-dice-modal .oh-provenance-header,
#oh-dice-modal .oh-provenance-title {
  color: var(--oh-ink-heading) !important;
}
#oh-dice-modal .oh-provenance-source {
  color: var(--oh-ink-heading) !important;
  font-weight: 600 !important;
}
#oh-dice-modal .oh-provenance-val {
  color: var(--oh-warn-ink) !important;
  font-weight: 800 !important;
}
#oh-dice-modal .oh-provenance-val.is-red {
  color: var(--oh-danger-ink) !important;
}
#oh-dice-modal .oh-provenance-val.is-black {
  color: var(--oh-ink-strong) !important;
}
html {
  overflow-x: hidden;
  transition: background-color 0.2s ease, color 0.2s ease;
}
body {
  overflow-x: hidden;
  transition: background-color 0.2s ease, color 0.2s ease;
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  padding: 15px;
  margin: 0;
  background: var(--oh-bg-canvas);
  color: var(--oh-ink-heading);
}
.oh-toolbar-group {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  padding: 2px 4px;
  min-inline-size: 0;
  border-inline-end: 1px solid rgba(128, 128, 128, 0.3);
}
.oh-toolbar-group:last-child {
  border-inline-end: none;
}
.oh-toolbar-docs-dropdown {
  position: relative;
  display: inline-block;
}
.oh-toolbar-docs-dropdown summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
}
.oh-toolbar-docs-menu {
  position: absolute;
  top: calc(100% + 4px);
  inset-inline-end: 0;
  background: var(--oh-bg-menu);
  border: 1px solid var(--oh-border-menu);
  border-radius: 6px;
  padding: 6px 0;
  min-width: 210px;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.25);
  z-index: 1000;
  display: flex;
  flex-direction: column;
}
.oh-toolbar-docs-menu .oh-toolbar-menu-item,
.oh-toolbar-menu-item {
  appearance: none;
  background: transparent;
  border: none;
  border-radius: 0;
  width: 100%;
  text-align: start;
  font-family: inherit;
  padding: 7px 12px;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--oh-ink-heading);
  text-decoration: none;
  display: block;
  white-space: nowrap;
  cursor: pointer;
}
.oh-toolbar-docs-menu .oh-toolbar-menu-item.oh-tbtn-random {
  color: var(--oh-accent-amber);
  font-weight: 600;
}
.oh-toolbar-docs-menu .oh-toolbar-menu-item.oh-tbtn-install {
  color: var(--oh-accent-cobalt);
  font-weight: 600;
}
.oh-toolbar-docs-menu .oh-toolbar-menu-item.oh-tbtn-danger {
  color: var(--oh-accent-crimson);
  font-weight: 600;
}
.oh-toolbar-docs-menu .oh-toolbar-menu-item:hover,
.oh-toolbar-docs-menu .oh-toolbar-menu-item:focus-visible,
.oh-toolbar-menu-item:hover {
  background: var(--oh-bg-menu-hover);
  color: var(--oh-ink-heading);
  outline: none;
}
.oh-weapons .oh-weapon-rune-wrap.oh-rune-empty {
  display: block;
  opacity: 0.72;
  transition: opacity 0.15s ease;
}
.oh-weapons tr:hover .oh-weapon-rune-wrap.oh-rune-empty,
.oh-weapons tr:focus-within .oh-weapon-rune-wrap.oh-rune-empty {
  opacity: 1;
}
.oh-weapon-quick-filter,
.oh-quick-filter,
.oh-val .oh-weapon-quick-filter {
  inline-size: 100%;
  font-size: 0.72rem;
  padding: 2px 6px;
  margin-block-end: 3px;
  border: 1px solid var(--oh-border-muted);
  border-radius: 3px;
  background: var(--oh-surface-subtle);
  color: var(--oh-ink);
  line-height: 1.2;
}
.oh-weapon-quick-filter:focus,
.oh-quick-filter:focus,
.oh-val .oh-weapon-quick-filter:focus {
  outline: 1px solid var(--oh-border-focus);
  border-color: var(--oh-border-focus);
  background: var(--oh-bg-input);
}
@media screen {
  html[data-theme="dark"] {
    color-scheme: dark;
    --oh-bg-canvas: #09090b;
    --oh-bg-surface: #141417;
    --oh-bg-subtle: #1a1a1f;
    --oh-surface-subtle: #1a1a1f;
    --oh-bg-elevated: #18181c;
    --oh-bg-panel: #18181c;
    --oh-bg-panel-alt: #202025;
    --oh-bg-slate: #1e293b;
    --oh-bg-slate-deep: #0f172a;
    --oh-bg-row: #202025;
    --oh-bg-row-alt: #202025;
    --oh-bg-row-hover: #27272a;
    --oh-bg-input: #101014;
    --oh-bg-header: #27272a;
    --oh-bg-header-alt: #202025;
    --oh-bg-toolbar: #18181c;
    --oh-bg-menu: #1f2937;
    --oh-bg-menu-hover: #374151;
    --oh-bg-toggle: #141417;
    --oh-bg-chip: #27272a;
    --oh-bg-chip-hover: #3f3f46;
    --oh-bg-btn-subtle: #222227;
    --oh-bg-btn-subtle-hover: #2c2c33;
    --oh-bg-code: rgba(0, 0, 0, 0.35);
    --oh-bg-tint-subtle: rgba(255, 255, 255, 0.06);
    --oh-ink: #f4f4f5;
    --oh-ink-primary: #f4f4f5;
    --oh-ink-heading: #fafafa;
    --oh-ink-strong: #f8fafc;
    --oh-ink-secondary: #d4d4d8;
    --oh-ink-body: #cbd5e1;
    --oh-ink-muted: #a1a1aa;
    --oh-ink-faint: #71717a;
    --oh-ink-inverse: #fafafa;
    --oh-ink-on-header: #e4e4e7;
    --oh-ink-brand: #e4e4e7;
    --oh-border-light: #27272a;
    --oh-border-soft: #3f3f46;
    --oh-border-muted: #52525b;
    --oh-border-input: #52525b;
    --oh-border-strong: #3f3f46;
    --oh-border-menu: #374151;
    --oh-border-focus: #a1a1aa;
    --oh-border-divider: rgba(255, 255, 255, 0.14);
    --oh-section-title-border: 1px solid #3f3f46;
    --oh-sheet-shadow: 0 10px 30px rgba(0, 0, 0, 0.6);
    --oh-toolbar-shadow: 0 4px 14px rgba(0, 0, 0, 0.45);
    --oh-accent-active-bg: #e4e4e7;
    --oh-accent-active-ink: #09090b;
    --oh-accent-active-border: #e4e4e7;
    --oh-accent-cobalt: #93c5fd;
    --oh-accent-cobalt-bg: rgba(148, 163, 184, 0.14);
    --oh-accent-cobalt-soft: #222227;
    --oh-accent-cobalt-tint: #2c2c33;
    --oh-accent-cobalt-ink: #e2e8f0;
    --oh-accent-cobalt-strong: #f8fafc;
    --oh-accent-cobalt-border: #52525b;
    --oh-accent-emerald: #34d399;
    --oh-accent-amber: #d6d3d1;
    --oh-accent-crimson: #f87171;
    --oh-accent-teal-bg: rgba(20, 184, 166, 0.12);
    --oh-accent-teal-hover: rgba(20, 184, 166, 0.22);
    --oh-accent-teal-ink: #5eead4;
    --oh-accent-teal-border: rgba(20, 184, 166, 0.3);
    --oh-success-bg: rgba(34, 197, 94, 0.14);
    --oh-success-bg-strong: rgba(34, 197, 94, 0.22);
    --oh-success-ink: #86efac;
    --oh-success-border: rgba(34, 197, 94, 0.38);
    --oh-warn-bg: rgba(245, 158, 11, 0.12);
    --oh-warn-bg-strong: rgba(245, 158, 11, 0.2);
    --oh-warn-ink: #fcd34d;
    --oh-warn-border: rgba(245, 158, 11, 0.38);
    --oh-danger-bg: rgba(239, 68, 68, 0.12);
    --oh-danger-bg-strong: rgba(239, 68, 68, 0.2);
    --oh-danger-ink: #fca5a5;
    --oh-danger-border: rgba(239, 68, 68, 0.38);
    --oh-focus-ring: #ffdd00;
    --oh-focus-inner: #0b0c0c;
  }
  .oath-hammer-sheet.oh-page-mode-all .oh-roll-log-screen,
  .oath-hammer-sheet:not(.oh-kanka-embedded) .oh-sheet-actions-bar,
  body:not(.oh-log-only-mode) .oath-hammer-sheet:not(.oh-page-mode-log) #oh-roll-log-dropdown,
  .oath-hammer-sheet.oh-page-mode-encounter .oh-box[data-screen]:not([data-screen~="encounter"]),
  .oath-hammer-sheet.oh-page-mode-info .oh-box[data-screen]:not([data-screen~="info"]),
  .oath-hammer-sheet.oh-page-mode-stats .oh-box[data-screen]:not([data-screen~="stats"]),
  .oath-hammer-sheet.oh-page-mode-weapons .oh-box[data-screen]:not([data-screen~="weapons"]),
  .oath-hammer-sheet.oh-page-mode-skills .oh-box[data-screen]:not([data-screen~="skills"]),
  .oath-hammer-sheet.oh-page-mode-magic .oh-box[data-screen]:not([data-screen~="magic"]),
  .oath-hammer-sheet.oh-page-mode-oaths .oh-box[data-screen]:not([data-screen~="oaths"]),
  .oath-hammer-sheet.oh-page-mode-gear .oh-box[data-screen]:not([data-screen~="gear"]),
  .oath-hammer-sheet.oh-page-mode-notes .oh-box[data-screen]:not([data-screen~="notes"]),
  .oath-hammer-sheet.oh-page-mode-gallery .oh-box[data-screen]:not([data-screen~="gallery"]),
  .oath-hammer-sheet.oh-page-mode-log .oh-box[data-screen]:not([data-screen~="log"]),
  .oath-hammer-sheet.oh-page-mode-encounter .oh-main-grid,
  .oath-hammer-sheet.oh-page-mode-info .oh-main-grid,
  .oath-hammer-sheet.oh-page-mode-magic .oh-main-grid,
  .oath-hammer-sheet.oh-page-mode-oaths .oh-main-grid,
  .oath-hammer-sheet.oh-page-mode-notes .oh-main-grid,
  .oath-hammer-sheet.oh-page-mode-gallery .oh-main-grid,
  .oath-hammer-sheet.oh-page-mode-log .oh-main-grid,
  .oath-hammer-sheet.oh-page-mode-encounter .oh-magic-grid,
  .oath-hammer-sheet.oh-page-mode-info .oh-magic-grid,
  .oath-hammer-sheet.oh-page-mode-stats .oh-magic-grid,
  .oath-hammer-sheet.oh-page-mode-weapons .oh-magic-grid,
  .oath-hammer-sheet.oh-page-mode-skills .oh-magic-grid,
  .oath-hammer-sheet.oh-page-mode-gear .oh-magic-grid,
  .oath-hammer-sheet.oh-page-mode-notes .oh-magic-grid,
  .oath-hammer-sheet.oh-page-mode-gallery .oh-magic-grid,
  .oath-hammer-sheet.oh-page-mode-log .oh-magic-grid,
  .oath-hammer-sheet.oh-page-mode-weapons .oh-left-col,
  .oath-hammer-sheet.oh-page-mode-weapons .oh-center-col,
  .oath-hammer-sheet.oh-page-mode-skills .oh-left-col,
  .oath-hammer-sheet.oh-page-mode-skills .oh-center-col,
  .oath-hammer-sheet.oh-page-mode-stats .oh-right-col,
  .oath-hammer-sheet.oh-page-mode-gear .oh-right-col,
  .oath-hammer-sheet.oh-page-mode-magic .oh-oaths-col {
    display: none !important;
  }
  .oath-hammer-sheet.oh-page-mode-log .oh-roll-log-screen {
    display: block !important;
  }
  .oath-hammer-sheet.oh-screen-slide-next .oh-box[data-screen],
  .oath-hammer-sheet.oh-screen-slide-next .oh-main-grid {
    animation: ohScreenSlideFromRight 230ms cubic-bezier(0.22, 1, 0.36, 1) both;
    will-change: transform, opacity;
  }
  .oath-hammer-sheet.oh-screen-slide-prev .oh-box[data-screen],
  .oath-hammer-sheet.oh-screen-slide-prev .oh-main-grid {
    animation: ohScreenSlideFromLeft 230ms cubic-bezier(0.22, 1, 0.36, 1) both;
    will-change: transform, opacity;
  }
  .oath-hammer-sheet.oh-screen-slide-up .oh-box[data-screen],
  .oath-hammer-sheet.oh-screen-slide-up .oh-main-grid,
  .oath-hammer-sheet.oh-screen-slide-up #oh-dice-modal .oh-dice-dialog {
    animation: ohScreenSlideFromBottom 230ms cubic-bezier(0.22, 1, 0.36, 1)
      both;
    will-change: transform, opacity;
  }
  .oath-hammer-sheet.oh-screen-slide-down .oh-box[data-screen],
  .oath-hammer-sheet.oh-screen-slide-down .oh-main-grid,
  .oath-hammer-sheet.oh-screen-slide-down #oh-dice-modal .oh-dice-dialog {
    animation: ohScreenSlideFromTop 230ms cubic-bezier(0.22, 1, 0.36, 1) both;
    will-change: transform, opacity;
  }
  @media (prefers-reduced-motion: reduce) {
    .oath-hammer-sheet .oh-box[data-screen],
    .oath-hammer-sheet .oh-main-grid,
    .oath-hammer-sheet #oh-dice-modal .oh-dice-dialog {
      animation: none !important;
      transition: none !important;
    }
  }
  .oath-hammer-sheet.oh-page-mode-stats .oh-main-grid,
  .oath-hammer-sheet.oh-page-mode-magic .oh-magic-grid,
  .oath-hammer-sheet.oh-page-mode-weapons .oh-main-grid,
  .oath-hammer-sheet.oh-page-mode-oaths .oh-magic-grid,
  .oath-hammer-sheet.oh-page-mode-skills .oh-main-grid,
  .oath-hammer-sheet.oh-page-mode-gear .oh-main-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 15px !important;
    margin-bottom: 15px !important;
  }
  .oath-hammer-sheet.oh-page-mode-stats .oh-left-col,
  .oath-hammer-sheet.oh-page-mode-stats .oh-center-col,
  .oath-hammer-sheet.oh-page-mode-weapons .oh-right-col,
  .oath-hammer-sheet.oh-page-mode-gear .oh-left-col,
  .oath-hammer-sheet.oh-page-mode-gear .oh-center-col,
  .oath-hammer-sheet.oh-page-mode-skills .oh-right-col {
    display: flex !important;
    flex-direction: column !important;
    gap: 15px !important;
    width: 100% !important;
  }
  .oath-hammer-sheet:is(.oh-page-mode-magic, .oh-page-mode-oaths, .oh-page-mode-space-hero, .oh-page-mode-space-skills) .oh-magic-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 15px !important;
  }
  .oath-hammer-sheet:is(.oh-page-mode-magic, .oh-page-mode-oaths, .oh-page-mode-space-hero, .oh-page-mode-space-skills) .oh-magic-right-col {
    display: flex !important;
    flex-direction: column !important;
    gap: 15px !important;
    width: 100% !important;
  }
  .oh-skills-table th {
    font-size: 0.72rem;
    padding: 2px 4px;
    letter-spacing: 0.03em;
    background: var(--oh-bg-header);
    color: var(--oh-ink-secondary);
    border-bottom: 2px solid var(--oh-border-strong);
  }
  .oh-skills-table td {
    padding: 1px 4px !important;
    height: 22px;
    font-size: 0.76rem;
    line-height: 1.15;
    vertical-align: middle;
    color: var(--oh-ink-primary);
    border-bottom: 1px solid var(--oh-border-light);
  }
  .oh-skills-table select,
  .oh-skills-table input {
    font-size: 0.74rem !important;
    padding: 0 2px !important;
    height: 20px !important;
    min-height: 20px !important;
  }
  #oh-magic-traits-list ul {
    list-style: none;
    padding-inline-start: 0;
    margin: 0;
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-radius: 4px;
    overflow: hidden;
  }
  #oh-magic-traits-list li.oh-bundled-trait {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 6px;
    padding: 4px 8px;
    margin: 0;
    font-size: 0.78rem;
    line-height: 1.3;
    border-bottom: 1px solid rgba(128, 128, 128, 0.2);
    background: var(--oh-bg-slate);
    color: var(--oh-ink-primary);
  }
  #oh-magic-traits-list li.oh-bundled-trait:nth-child(even) {
    background: var(--oh-bg-slate-deep);
    color: var(--oh-ink-primary);
  }
  #oh-magic-traits-list li.oh-bundled-trait:last-child {
    border-bottom: none;
  }
  .oh-bundled-trait-main {
    flex: 1;
    min-width: 0;
  }
  #oh-oaths-vows-box {
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
  #oh-oaths-vows-box p.oh-oath-vow-item,
  .oh-oath-vow-card {
    margin: 0;
    padding: 6px 8px;
    font-size: 0.78rem;
    line-height: 1.35;
    border: 1px solid var(--oh-border-soft);
    border-inline-start: 3px solid var(--oh-warn-border);
    background: var(--oh-warn-bg);
    border-radius: 4px;
    color: var(--oh-ink-primary);
  }
  .oh-oath-blessing-tag {
    display: block;
    margin-block-start: 3px;
    padding: 2px 6px;
    font-size: 0.72rem;
    color: var(--oh-ink-heading);
    background: var(--oh-bg-elevated);
    border: 1px solid var(--oh-border-light);
    border-radius: 3px;
    font-style: normal;
  }
  .oh-dynamic-item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    margin-bottom: 4px;
    background: var(--oh-bg-row);
    border-color: var(--oh-border-soft);
    color: var(--oh-ink-primary);
  }
  .oh-gs-act-btn {
    font-size: 0.68rem;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 4px;
    border: 1px solid #1e3a8a;
    cursor: pointer;
    background: #1e40af;
    color: #ffffff;
  }
  .oh-gs-ref-btn {
    font-size: 0.68rem;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 4px;
    border: 1px solid #cbd5e1;
    background: #f8fafc;
    color: #0f172a;
    cursor: pointer;
  }
  .oh-gs-act-btn:hover {
    background: #1d4ed8;
  }
  .oh-dv-bar {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex-wrap: wrap;
  }
  .oh-dv-input {
    width: 5.5ch;
    min-width: 48px;
    min-height: 26px;
    height: auto;
    text-align: center;
    font-weight: 800;
    font-size: 0.78rem;
    font-variant-numeric: tabular-nums;
    border: 1px solid #94a3b8;
    border-radius: 4px;
    padding: 1px 3px;
  }
  .hammerdice-dv-badge {
    display: inline-block;
    margin-inline-start: 8px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 800;
  }
  .hammerdice-dv-pass {
    background: #dcfce7;
    color: #166534;
    border: 1px solid #22c55e;
  }
  .hammerdice-dv-fail {
    background: #fee2e2;
    color: #991b1b;
    border: 1px solid #ef4444;
  }
  body.oh-companion-roller-mode .oath-hammer-sheet > *:not(#oh-dice-modal),
  body.oh-companion-roller-mode #oh-dice-modal .oh-dice-backdrop,
  .oh-print-only-title,
  .oath-hammer-sheet:is(.oh-roller-card-active, .oh-page-mode-roller) > .oh-beta-preview-panel,
  .oath-hammer-sheet:is(.oh-roller-card-active, .oh-page-mode-roller) > .oh-header,
  .oath-hammer-sheet:is(.oh-roller-card-active, .oh-page-mode-roller) > .oh-main-grid,
  .oath-hammer-sheet:is(.oh-roller-card-active, .oh-page-mode-roller) > .oh-magic-grid,
  .oath-hammer-sheet:is(.oh-roller-card-active, .oh-page-mode-roller) > .oh-notes-section,
  .oath-hammer-sheet:is(.oh-roller-card-active, .oh-page-mode-roller) > .oh-gallery-section,
  .oath-hammer-sheet:is(.oh-roller-card-active, .oh-page-mode-roller) > .oh-roll-log-screen,
  .oath-hammer-sheet:is(.oh-roller-card-active, .oh-page-mode-roller) > .oh-roll-log-dropdown,
  .oath-hammer-sheet:is(.oh-roller-card-active, .oh-page-mode-roller) #oh-dice-modal .oh-dice-backdrop {
    display: none !important;
  }
  body:not(.oh-dice-only-mode):not(.oh-companion-roller-mode) .oath-hammer-sheet:is(.oh-roller-card-active, .oh-page-mode-roller) {
    display: flex;
    flex-direction: column;
  }
  body:not(.oh-dice-only-mode):not(.oh-companion-roller-mode) .oath-hammer-sheet:is(.oh-roller-card-active, .oh-page-mode-roller) > #oh-dice-modal {
    order: 6;
  }
  body:not(.oh-dice-only-mode):not(.oh-companion-roller-mode) .oath-hammer-sheet:is(.oh-roller-card-active, .oh-page-mode-roller) > .oh-screen-footer {
    display: flex;
    order: 8;
  }
  #oh-standalone-toolbar,
  #oh-standalone-toolbar:not(.oh-toolbar-collapsed) .oh-toolbar-left,
  #oh-standalone-toolbar .oh-toolbar-right,
  .oh-toolbar-group {
    flex-wrap: wrap !important;
    min-inline-size: 0;
  }
  .oh-screen-nav-row,
  .oh-screen-nav-bottom {
    flex-wrap: wrap !important;
    overflow-x: visible !important;
    gap: 4px !important;
  }
  .oh-items-table {
    table-layout: fixed;
    width: 100%;
  }
  .oh-trinkets .oh-field {
    align-items: center;
    gap: 10px;
  }
  .oh-trinkets .oh-field > .oh-eq-slot-wrap {
    flex: 1 1 auto;
    min-inline-size: 0;
  }
  .oh-eq-slot-wrap,
  .oh-items-table td .oh-val,
  .oh-trinkets .oh-field > span,
  .oh-focus-body > span {
    display: flex;
    align-items: center;
    gap: 3px;
    min-inline-size: 0;
  }
  .oh-eq-slot-wrap > .oh-val,
  .oh-trinkets .oh-field > span > .oh-val,
  .oh-focus-body > span > .oh-val {
    flex: 1 1 auto;
    min-inline-size: 0;
  }
  .oh-eq-slot-wrap input,
  .oh-eq-slot-wrap select,
  .oh-items-table td .oh-val input,
  .oh-items-table td .oh-val select,
  .oh-trinkets .oh-field > span input,
  .oh-focus-body > span input[type="text"] {
    flex: 1 1 auto;
    min-inline-size: 0;
  }
  .oh-eq-slot-wrap .oh-item-help-btn,
  .oh-items-table td .oh-item-help-btn,
  .oh-trinkets .oh-field .oh-item-help-btn,
  .oh-focus-body .oh-item-help-btn {
    margin-inline-start: 0;
    flex-shrink: 0;
  }
  .oh-eq-slot-num {
    min-inline-size: 1.9ch;
    font-size: 0.76rem;
    font-weight: 700;
    color: var(--oh-ink-secondary);
    flex-shrink: 0;
  }
  .oh-quick-filter {
    inline-size: 100%;
    padding: 4px 8px;
    font-size: 0.8rem;
    border: 1px solid var(--oh-border-muted);
    border-radius: 4px;
    background: var(--oh-bg-input);
    color: var(--oh-ink-primary);
    margin-block-end: 6px;
  }
  .oh-gear-filter-wrap,
  .oh-items-quick-filter-wrap {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-block-end: 6px;
    min-inline-size: 0;
  }
  .oh-items-quick-filter-wrap .oh-quick-filter {
    margin-block-end: 0;
  }
  .oh-gear-Quick-suggestions,
  .oh-gear-quick-suggestions,
  .oh-items-quick-suggestions {
    background: var(--oh-bg-elevated);
    color: var(--oh-ink-primary);
    border: 1px solid var(--oh-border-muted);
    border-radius: 4px;
    max-height: 180px;
    overflow-y: auto;
    z-index: 40;
  }
  .oh-gear-Quick-suggestions:empty,
  .oh-gear-quick-suggestions:empty,
  .oh-items-quick-suggestions:empty {
    display: none;
  }
  .oh-gear-Quick-suggestions button,
  .oh-gear-quick-suggestions button,
  .oh-items-quick-suggestions button,
  .oh-item-quick-opt,
  .oh-gear-Quick-suggestion-item,
  .oh-gear-quick-suggestion-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    inline-size: 100%;
    padding: 4px 8px;
    font-size: 0.76rem;
    text-align: start;
    background: transparent;
    color: var(--oh-ink-primary);
    border: none;
    border-block-end: 1px solid var(--oh-border-light);
    cursor: pointer;
  }
  .oh-gear-Quick-suggestions button:hover,
  .oh-gear-quick-suggestions button:hover,
  .oh-items-quick-suggestions button:hover,
  .oh-item-quick-opt:hover,
  .oh-gear-Quick-suggestion-item:hover,
  .oh-gear-quick-suggestion-item:hover {
    background: var(--oh-bg-row-hover);
  }
  .oh-enc-oaths-block {
    margin-block-start: 8px;
    padding-block-start: 8px;
    border-block-start: 1px solid var(--oh-border-soft);
  }
  .oh-enc-oaths-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-block-start: 4px;
  }
  .oh-enc-oath-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    padding: 4px 6px;
    background: var(--oh-bg-row);
    border: 1px solid var(--oh-border-soft);
    border-radius: 4px;
    font-size: 0.76rem;
  }
  .oh-enc-oath-main {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-inline-size: 0;
  }
  .oh-enc-oath-boon {
    color: var(--oh-ink-secondary);
    font-size: 0.72rem;
  }
  body.oh-companion-roller-mode #oh-dice-modal .oh-dice-dialog {
    max-width: 680px !important;
    width: 100% !important;
    max-height: none !important;
    margin: 0 auto !important;
  }
  .oh-weapon-rune-wrap select {
    width: 100%;
    font-size: 0.68rem;
    padding: 1px 4px;
    border: 1px dashed var(--oh-border-muted);
    border-radius: 3px;
    background: var(--oh-bg-slate-deep);
    color: var(--oh-ink-body);
  }
  .oh-weapons .oh-dmg-cell-wrap .oh-weapon-bonus-tag {
    order: 3;
    flex: 1 0 100%;
    min-width: 0;
    margin-top: 0;
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: center;
    line-height: 1.15;
    font-size: 0.66rem;
  }
  .oh-weapons .oh-table td:nth-child(3) {
    overflow: hidden;
  }
  .oh-skills-table td.col-skill.oh-has-skill-actions {
    position: relative;
    padding-inline-end: 52px !important;
  }
  .oh-skill-row-actions .oh-item-help-btn,
  .oh-skill-row-actions .oh-help-icon {
    margin: 0 !important;
  }
  .oh-skills-table .col-mods .oh-skill-ability-bonus {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: help;
  }
  .oh-item-slots {
    container: item-slots / inline-size;
  }
  .oh-item-slots-status:empty {
    display: none;
  }
  .oh-item-slots-status[data-state="near"] {
    border-inline-start-color: var(--oh-warn-border);
  }
  .oh-item-slots-status[data-state="over"] {
    border-inline-start-color: var(--oh-danger-border);
    background: var(--oh-danger-bg);
  }
  .oh-slots-line {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 10px;
  }
  .oh-slots-count {
    font-variant-numeric: tabular-nums;
  }
  .oh-slots-breakdown,
  .oh-slots-note {
    color: var(--oh-ink-muted);
  }
  .oh-slots-meter {
    position: relative;
    height: 3px;
    margin: 3px 0;
    background: var(--oh-bg-chip-hover);
  }
  .oh-slots-meter > span {
    position: absolute;
    inset-block: 0;
    inset-inline-start: 0;
    background: #16a34a;
  }
  .oh-item-slots-status[data-state="near"] .oh-slots-meter > span {
    background: #d97706;
  }
  .oh-item-slots-status[data-state="over"] .oh-slots-meter > span {
    background: #dc2626;
  }
  .oh-item-slots-status[data-state="over"] .oh-slots-note {
    color: var(--oh-danger-ink);
    font-weight: 700;
  }
  .oh-items-table tbody tr:nth-child(1) td:nth-child(1) {
    order: 1;
  }
  .oh-items-table tbody tr:nth-child(2) td:nth-child(1) {
    order: 2;
  }
  .oh-items-table tbody tr:nth-child(3) td:nth-child(1) {
    order: 3;
  }
  .oh-items-table tbody tr:nth-child(4) td:nth-child(1) {
    order: 4;
  }
  .oh-items-table tbody tr:nth-child(5) td:nth-child(1) {
    order: 5;
  }
  .oh-items-table tbody tr:nth-child(6) td:nth-child(1) {
    order: 6;
  }
  .oh-items-table tbody tr:nth-child(7) td:nth-child(1) {
    order: 7;
  }
  .oh-items-table tbody tr:nth-child(8) td:nth-child(1) {
    order: 8;
  }
  .oh-items-table tbody tr:nth-child(9) td:nth-child(1) {
    order: 9;
  }
  .oh-items-table tbody tr:nth-child(10) td:nth-child(1) {
    order: 10;
  }
  .oh-items-table tbody tr:nth-child(1) td:nth-child(2) {
    order: 11;
  }
  .oh-items-table tbody tr:nth-child(2) td:nth-child(2) {
    order: 12;
  }
  .oh-items-table tbody tr:nth-child(3) td:nth-child(2) {
    order: 13;
  }
  .oh-items-table tbody tr:nth-child(4) td:nth-child(2) {
    order: 14;
  }
  .oh-items-table tbody tr:nth-child(5) td:nth-child(2) {
    order: 15;
  }
  .oh-items-table tbody tr:nth-child(6) td:nth-child(2) {
    order: 16;
  }
  .oh-items-table tbody tr:nth-child(7) td:nth-child(2) {
    order: 17;
  }
  .oh-items-table tbody tr:nth-child(8) td:nth-child(2) {
    order: 18;
  }
  .oh-items-table tbody tr:nth-child(9) td:nth-child(2) {
    order: 19;
  }
  .oh-items-table tbody tr:nth-child(10) td:nth-child(2) {
    order: 20;
  }
  .oh-identity-hero {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 8px 10px;
    min-width: 0;
  }
  .oh-hero-title-name {
    font-size: 1.75rem;
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: 0.4px;
    cursor: pointer;
    border-bottom: 1px dashed transparent;
    transition: border-color 0.15s ease, color 0.15s ease;
  }
  .oh-hero-title-name:hover,
  .oh-hero-title-name:focus-visible {
    border-bottom-color: currentColor;
    outline: none;
  }
  .oh-hero-title-meta {
    appearance: none;
    background: var(--oh-bg-tint-subtle);
    color: inherit;
    border: 1px solid var(--oh-border-divider);
    border-radius: 999px;
    padding: 3px 10px;
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
    line-height: 1.25;
    transition: background 0.15s ease, border-color 0.15s ease;
  }
  .oh-hero-title-meta:hover {
    background: rgba(245, 158, 11, 0.15);
    border-color: rgba(245, 158, 11, 0.45);
  }
  .oh-identity-brand {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-inline-start: auto;
  }
  .oh-system-brand-badge {
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 2.2px;
    text-transform: uppercase;
    opacity: 0.65;
    white-space: nowrap;
  }
  .oh-identity-bar .oh-version-tag {
    margin-bottom: 0;
  }
  .oath-hammer-sheet .oh-header .oh-field {
    padding: 3px 6px;
    border-radius: 5px;
    transition: background-color 0.15s ease;
  }
  .oath-hammer-sheet .oh-header .oh-field:hover,
  .oath-hammer-sheet .oh-header .oh-field:focus-within {
    background: var(--oh-bg-tint-subtle);
  }
  .oath-hammer-sheet .oh-header .oh-val input,
  .oath-hammer-sheet .oh-header .oh-val select {
    border: 1px solid transparent !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 0.96rem;
    font-weight: 700;
    cursor: pointer;
    border-radius: 4px;
    transition: border-color 0.15s ease, background-color 0.15s ease;
  }
  .oath-hammer-sheet .oh-header .oh-val input {
    padding: 2px 4px !important;
  }
  .oath-hammer-sheet .oh-header .oh-val select {
    padding: 2px 4px !important;
    appearance: none;
    padding-inline-end: 14px !important;
  }
  .oath-hammer-sheet .oh-header .oh-val input:hover,
  .oath-hammer-sheet .oh-header .oh-val select:hover {
    border-bottom-color: rgba(100, 116, 139, 0.55) !important;
  }
  .oath-hammer-sheet .oh-header .oh-val input:focus,
  .oath-hammer-sheet .oh-header .oh-val select:focus {
    cursor: text;
    border-color: var(--oh-warn-border) !important;
    background: var(--oh-bg-elevated) !important;
    color: var(--oh-ink-primary) !important;
    outline: none !important;
  }
  .oath-hammer-sheet .oh-header-fields .oh-val[data-attr="Name"] input {
    font-size: 1.6rem !important;
    font-weight: 900 !important;
    line-height: 1.15;
    padding: 2px 4px !important;
    width: 100%;
    letter-spacing: 0.4px;
  }
  .oh-dynamic-item > .oh-inline-help-drawer {
    order: 10;
  }
  .oath-hammer-sheet.oh-roller-card-active #oh-dice-modal {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    background: transparent !important;
    padding: 4px 0 12px 0 !important;
    z-index: 10 !important;
    align-items: stretch !important;
  }
  .oath-hammer-sheet.oh-roller-card-active #oh-dice-modal .oh-dice-dialog {
    max-width: 100% !important;
    width: 100% !important;
    max-height: none !important;
    margin: 0 !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25) !important;
    animation: ohScreenSlideFromRight 220ms cubic-bezier(0.22, 1, 0.36, 1) both
      !important;
  }
  #oh-dice-close {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.85rem;
    font-weight: 800;
    padding: 5px 12px;
    border-radius: 6px;
    border: 1px solid var(--oh-border-muted);
    background: var(--oh-bg-btn-subtle);
    color: var(--oh-ink-heading);
  }
  #oh-dice-close:hover {
    background: var(--oh-bg-row-hover);
    border-color: var(--oh-border-focus);
  }
  .oh-weapon-select-combo {
    display: flex;
    align-items: center;
    width: 100%;
    min-width: 0;
  }
  .oh-weapons .oh-weapon-cell-wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap !important;
    gap: 4px !important;
  }
  .oh-weapons .oh-weapon-cell-wrap > .oh-val {
    flex: 1 1 95px !important;
    min-width: 85px !important;
  }
  .oh-weapons tr.oh-weapon-row-empty .oh-btn-weapon-action,
  .oh-weapons tr.oh-weapon-row-empty .oh-weapon-rune-wrap,
  .oath-hammer-sheet:not(.oh-kanka-embedded) .oh-identity-brand,
  .oath-hammer-sheet:not(.oh-kanka-embedded) .oh-identity-hero,
  .oath-hammer-sheet:not(.oh-page-mode-all) .oh-screen-btn-expand,
  .oath-hammer-sheet:not(.oh-page-mode-all) .oh-section-collapse-btn {
    display: none !important;
  }
  .oh-weapons .oh-table td .oh-val input,
  .oh-weapons .oh-table td .oh-val select {
    border: 1px solid transparent !important;
    background: transparent !important;
    box-shadow: none !important;
    font-weight: 700;
    border-radius: 4px;
    transition: border-color 0.15s ease, background-color 0.15s ease;
  }
  .oh-weapons .oh-table td .oh-val input:hover,
  .oh-weapons .oh-table td .oh-val select:hover {
    border-color: rgba(100, 116, 139, 0.45) !important;
  }
  .oh-weapons .oh-table td .oh-val input:focus,
  .oh-weapons .oh-table td .oh-val select:focus {
    border-color: var(--oh-focus-inner) !important;
    background: var(--oh-bg-elevated) !important;
    color: var(--oh-ink-primary) !important;
  }
  .oath-hammer-sheet:not(.oh-kanka-embedded) .oh-identity-bar {
    margin-bottom: 8px !important;
    padding-bottom: 6px !important;
  }
  .oh-section-title {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 6px;
    background-color: var(--oh-bg-header);
    color: var(--oh-ink-inverse);
    border: var(--oh-section-title-border);
  }
  .oh-section-collapse-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    min-height: 24px;
    background: rgba(255, 255, 255, 0.16);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 3px;
    font-size: 0.75rem;
    font-weight: 900;
    line-height: 1;
    padding: 2px 6px;
    cursor: pointer;
    margin-inline-start: auto;
    flex-shrink: 0;
  }
  .oh-section-collapse-btn:hover {
    background: rgba(255, 255, 255, 0.3);
  }
  .oath-hammer-sheet.oh-page-mode-all .oh-box.oh-section-collapsed > *:not(.oh-section-title):not(.oh-section-header):not(.oh-section-header-tabs),
  .oath-hammer-sheet.oh-page-mode-all .oh-box.oh-section-collapsed > .oh-section-header-tabs > .oh-notes-tabs,
  .oath-hammer-sheet:not(.oh-page-mode-all) .oh-enc-deck-toggle-btn {
    display: none !important;
  }
  .oh-note-pane-label {
    display: none;
    font-size: 0.74rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--oh-ink-body);
    margin-bottom: 4px;
  }
  .oh-notes-section.oh-notes-expanded .oh-notes-content {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
    gap: 10px !important;
  }
  .oh-notes-section.oh-notes-expanded .oh-tab-pane,
  .oh-notes-section.oh-notes-expanded .oh-note-pane-label {
    display: block !important;
  }
  .oath-hammer-sheet.oh-page-mode-all #oh-beta-preview-panel:not(.oh-enc-deck-expanded) #oh-encounter-combat-deck {
    display: none !important;
  }
  #oh-dice-ammo-select {
    flex: 1 1 140px !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  .oh-skills-table th.col-total {
    background: var(--oh-bg-header) !important;
    color: var(--oh-ink-inverse) !important;
  }
  .oh-attributes .oh-section-header {
    flex-direction: column !important;
    align-items: stretch !important;
    border-bottom: none !important;
    padding-bottom: 0 !important;
    margin-bottom: 6px !important;
    gap: 2px !important;
  }
  .oh-attributes .oh-array-hint {
    display: block;
    text-align: end;
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--oh-ink-body) !important;
  }
  .oh-weapons .oh-table th,
  .oh-weapons .oh-table td {
    padding: 4px 4px !important;
  }
  .oh-weapons .oh-val[data-attr$=" RNG"] input {
    max-inline-size: 56px !important;
  }
  .oh-weapons .oh-val[data-attr$=" Traits"] input {
    width: 100% !important;
    min-width: 72px !important;
    text-overflow: ellipsis;
  }
  .oh-val input,
  .oh-val select,
  .oh-dynamic-ability-select,
  .oh-dynamic-spell-select,
  textarea {
    width: 100%;
    max-width: 100%;
    border: 1px solid var(--oh-border-input);
    padding: 3px 4px;
    font-size: 0.85rem;
    background: var(--oh-bg-input);
    color: var(--oh-ink-primary);
    border-radius: var(--oh-radius-sm);
  }
  .oh-val input:focus,
  .oh-val select:focus,
  .oh-dynamic-item select:focus,
  .oh-dynamic-ability-select:focus,
  .oh-dynamic-spell-select:focus,
  textarea:focus {
    border-color: var(--oh-border-focus);
    outline: 1px solid var(--oh-border-focus);
  }
  button.oh-toolbar-menu-item,
  a.oh-toolbar-menu-item,
  label.oh-toolbar-menu-item {
    appearance: none;
    background: transparent;
    border: none;
    border-radius: 0;
    width: 100%;
    text-align: start;
    font-family: inherit;
    padding: 7px 12px;
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--oh-ink-heading);
    text-decoration: none;
    display: block;
    white-space: nowrap;
    cursor: pointer;
  }
  .oh-center-col {
    align-self: stretch;
    display: flex;
    flex-direction: column;
  }
  .oh-combat-notes,
  .oh-combat-notes .oh-blank-notes-area,
  .oh-combat-notes .oh-blank-notes-area > .oh-val {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
  }
  .oh-combat-notes .oh-blank-notes-area textarea {
    flex: 1 1 auto;
    min-height: 220px;
  }
  .oh-gear-notes .oh-blank-notes-area textarea {
    min-height: 150px;
  }
  html[data-theme="dark"] select option,
  html[data-theme="dark"] select optgroup {
    background: var(--oh-bg-elevated);
    color: var(--oh-ink-primary);
  }
  html[data-theme="dark"] #pwa-vault-request-details,
  html[data-theme="dark"] #pwa-vault-cloud-details {
    background: #1e293b !important;
    border-color: #475569 !important;
    color: #e2e8f0 !important;
  }
  html[data-theme="dark"] #pwa-vault-request-details summary,
  html[data-theme="dark"] #pwa-vault-cloud-details summary,
  html[data-theme="dark"] #pwa-vault-request-details [style*="color:#2b2318"],
  html[data-theme="dark"] #pwa-vault-cloud-details [style*="color:#2b2318"] {
    color: #f1f5f9 !important;
  }
  html[data-theme="dark"] #pwa-vault-request-details [style*="color:#4a3f30"],
  html[data-theme="dark"] #pwa-vault-cloud-details [style*="color:#4a3f30"] {
    color: #cbd5e1 !important;
  }
  html[data-theme="dark"] #pwa-vault-cloud-details [style*="color:#15803d"] {
    color: #86efac !important;
  }
  html[data-theme="dark"] #pwa-vault-cloud-details [style*="background:#dcfce7"] {
    background: #14532d !important;
  }
  html[data-theme="dark"] select option:disabled {
    background: var(--oh-bg-header);
    color: #71717a;
  }
  @container item-slots (inline-size > 600px) {
    .oh-items-table {
      display: block;
      width: 100%;
    }
    .oh-items-table tbody {
      width: 100%;
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      grid-template-rows: repeat(7, auto);
      grid-auto-flow: column;
      column-gap: 8px;
    }
    .oh-items-table tbody tr {
      display: contents;
    }
    .oh-items-table tbody td {
      display: block;
      width: 100%;
      box-sizing: border-box;
      min-width: 0;
    }
  }
  @container item-slots (inline-size > 900px) {
    .oh-items-table tbody {
      grid-template-columns: repeat(4, minmax(0, 1fr));
      grid-template-rows: repeat(5, auto);
    }
  }
}
@media screen and (min-width: 768px) {
  .oh-wide-only {
    display: inline;
  }
  .oh-screen-nav-top .oh-screen-btn[data-screen="roller"] {
    display: none !important;
  }
  body:not(.oh-dice-only-mode):not(.oh-companion-roller-mode) .oath-hammer-sheet.oh-roller-card-active .oh-screen-nav-top .oh-screen-btn[data-screen="encounter"] {
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    background: var(--oh-accent-active-bg);
    color: var(--oh-accent-active-ink);
    border-color: var(--oh-accent-active-border);
  }
  body:not(.oh-dice-only-mode):not(.oh-companion-roller-mode) .oath-hammer-sheet:is(.oh-page-mode-encounter, .oh-page-mode-roller, .oh-roller-card-active) {
    display: grid !important;
    grid-template-columns:
      minmax(320px, 1.05fr) minmax(320px, 0.95fr) !important;
    gap: 14px !important;
    align-items: start !important;
  }
  body:not(.oh-dice-only-mode):not(.oh-companion-roller-mode) .oath-hammer-sheet:is(.oh-page-mode-encounter, .oh-page-mode-roller, .oh-roller-card-active) > :is(#oh-instance-banner, #oh-vtt-bar, #oh-screen-nav, #oh-kanka-session-banner, .oh-sheet-actions-bar) {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    order: 1;
  }
  body:not(.oh-dice-only-mode):not(.oh-companion-roller-mode) .oath-hammer-sheet:is(.oh-page-mode-encounter, .oh-page-mode-roller, .oh-roller-card-active) > #oh-screen-footer {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    order: 8;
  }
  body:not(.oh-dice-only-mode):not(.oh-companion-roller-mode) .oath-hammer-sheet:is(.oh-page-mode-encounter, .oh-page-mode-roller, .oh-roller-card-active) > #oh-beta-preview-panel {
    display: block !important;
    grid-column: 1 !important;
    order: 6;
    margin: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  body:not(.oh-dice-only-mode):not(.oh-companion-roller-mode) .oath-hammer-sheet:is(.oh-page-mode-encounter, .oh-page-mode-roller, .oh-roller-card-active) #oh-beta-preview-panel #oh-encounter-combat-deck {
    display: block !important;
  }
  body:not(.oh-dice-only-mode):not(.oh-companion-roller-mode) .oath-hammer-sheet:is(.oh-page-mode-encounter, .oh-page-mode-roller, .oh-roller-card-active) #oh-beta-preview-panel .oh-enc-deck-grid {
    grid-template-columns: 1fr !important;
  }
  body:not(.oh-dice-only-mode):not(.oh-companion-roller-mode) .oath-hammer-sheet:is(.oh-page-mode-encounter, .oh-page-mode-roller, .oh-roller-card-active) > #oh-dice-modal {
    display: flex !important;
    position: static !important;
    grid-column: 2 !important;
    order: 7;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
  }
  body:not(.oh-dice-only-mode):not(.oh-companion-roller-mode) .oath-hammer-sheet:is(.oh-page-mode-encounter, .oh-page-mode-roller, .oh-roller-card-active) #oh-dice-modal .oh-dice-backdrop {
    display: none !important;
  }
  body:not(.oh-dice-only-mode):not(.oh-companion-roller-mode) .oath-hammer-sheet:is(.oh-page-mode-encounter, .oh-page-mode-roller, .oh-roller-card-active) #oh-dice-modal .oh-dice-dialog {
    width: 100% !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    animation: none !important;
  }
  body:not(.oh-dice-only-mode):not(.oh-companion-roller-mode) .oath-hammer-sheet:is(.oh-page-mode-encounter, .oh-page-mode-roller, .oh-roller-card-active) > :is(.oh-header, .oh-main-grid, .oh-magic-grid, .oh-notes-section, .oh-gallery-section, .oh-roll-log-screen, .oh-roll-log-dropdown, #oh-roll-log-dropdown) {
    display: none !important;
  }
  .oh-skills-table .col-skill {
    width: auto;
    text-align: start !important;
    padding-inline-start: 6px !important;
    white-space: normal;
  }
  .oh-gov-attr {
    display: inline !important;
    font-size: 0.64rem;
    color: #64748b;
    font-weight: 500;
    margin-inline-start: 4px;
    white-space: nowrap;
  }
  .oh-screen-nav-bottom {
    flex-wrap: wrap !important;
    overflow-x: visible !important;
    gap: 4px !important;
  }
  .oh-screen-nav-bottom .oh-screen-btn {
    padding: 5px 9px !important;
    font-size: 0.79rem !important;
  }
  .oath-hammer-sheet.oh-page-mode-all .oh-roll-log-screen {
    display: block !important;
    margin-top: 14px !important;
  }
  .oath-hammer-sheet.oh-page-mode-all .oh-notes-section:not(.oh-notes-single-tab) .oh-notes-content {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
  .oath-hammer-sheet.oh-page-mode-all .oh-notes-section:not(.oh-notes-single-tab) .oh-tab-pane,
  .oath-hammer-sheet.oh-page-mode-all .oh-notes-section:not(.oh-notes-single-tab) .oh-note-pane-label {
    display: block !important;
  }
  .oath-hammer-sheet.oh-page-mode-all .oh-notes-section:not(.oh-notes-single-tab) .oh-notes-content textarea {
    min-height: 120px;
  }
}
@media screen and (min-width: 768px) and (max-width: 1023px) {
  .oath-hammer-sheet.oh-page-mode-all .oh-main-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 14px !important;
  }
  .oath-hammer-sheet.oh-page-mode-all .oh-main-grid .oh-right-col {
    grid-column: 1 / -1 !important;
  }
  .oath-hammer-sheet.oh-page-mode-all .oh-magic-grid {
    display: grid !important;
    grid-template-columns: 1fr 1.15fr !important;
    gap: 14px !important;
  }
}
@media screen and (min-width: 1024px) {
  .oh-toolbar {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 9px 14px;
  }
  .oh-toolbar-left {
    display: flex;
    align-items: center;
    width: 100%;
    gap: 10px;
    flex-wrap: wrap;
    border-bottom: 1px solid var(--oh-border-divider);
    padding-bottom: 8px;
  }
  .oh-toolbar-top-right {
    margin-inline-start: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
  }
  .oh-toolbar-right {
    width: 100%;
  }
  .oh-toolbar-right #btn-save-browser {
    margin-inline-start: auto;
  }
  .oh-main-grid {
    gap: 12px;
  }
  .oh-magic-grid {
    gap: 12px;
    margin-top: 8px;
  }
  .oh-box {
    padding: 8px 10px;
    margin-bottom: 8px;
  }
  .oh-header {
    margin-bottom: 10px;
  }
  .oh-attr-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
  }
  .oh-attr-card {
    padding: 4px 6px;
  }
  .oh-items-table td {
    padding: 2px 4px;
    font-size: 0.8rem;
  }
  .oh-items-table select,
  .oh-items-table input {
    height: 22px;
    font-size: 0.78rem;
    padding: 1px 4px;
  }
}
@media screen and (max-width: 767px) {
  .oh-main-grid {
    grid-template-columns: 1fr;
    width: 100% !important;
    gap: 10px !important;
  }
  .oh-header {
    align-items: flex-start !important;
    text-align: start !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .oh-title {
    text-align: start;
  }
  .oh-title h1 {
    word-break: break-word;
    max-width: 100%;
    font-size: 1.5rem !important;
    letter-spacing: 0.5px !important;
    margin-bottom: 6px !important;
  }
  .oath-hammer-sheet {
    max-width: 100% !important;
    width: 100% !important;
    padding: 4px !important;
    border-width: 2px !important;
    margin: 0 !important;
  }
  .oh-box {
    border-width: 2px;
    width: 100% !important;
    max-width: 100% !important;
    padding: 6px !important;
    margin-bottom: 10px !important;
  }
  .oh-version-tag .oh-pill-secondary,
  .oh-toolbar.oh-toolbar-collapsed .oh-toolbar-right,
  .oh-toolbar.oh-toolbar-collapsed .oh-roster-controls,
  .oh-toolbar.oh-toolbar-collapsed .oh-autosave-status,
  .oh-toolbar.oh-toolbar-collapsed .oh-toolbar-top-right,
  .oh-toolbar.oh-toolbar-collapsed .oh-toolbar-docs-dropdown,
  .oh-toolbar.oh-toolbar-collapsed .oh-tbtn-channel,
  .oh-toolbar.oh-toolbar-collapsed .oh-tbtn-beta {
    display: none !important;
  }
  .oh-weapons th {
    font-size: 0.8em;
    padding: 2px;
  }
  .oh-weapons td {
    font-size: 0.8em;
    padding: 2px;
    word-break: break-word;
  }
  .oh-header-subfields {
    grid-template-columns: 1fr;
  }
  .oh-skills-table .col-skill {
    width: 42% !important;
    padding-inline-start: 3px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .oh-skills-table .col-ranks {
    width: 14% !important;
  }
  .oh-skills-table .col-mods {
    width: 14% !important;
    min-width: 0 !important;
  }
  .oh-skills-table .col-total {
    width: 12% !important;
    background: var(--oh-bg-row);
    color: var(--oh-ink-heading);
  }
  .oh-skills-table .col-color {
    width: 18% !important;
  }
  .oh-lightbox-nav {
    font-size: 1.4rem;
    padding: 8px;
  }
  .oh-lightbox-img {
    max-width: 78vw;
  }
  .oh-toolbar-toggle-btn {
    display: inline-flex;
  }
  .oh-toolbar {
    padding: 8px 10px;
    gap: 8px;
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: 8px !important;
  }
  .oh-toolbar.oh-toolbar-collapsed #btn-toolbar-changelog,
  .oh-toolbar.oh-toolbar-collapsed .oh-theme-toggle,
  .oh-header.oh-header-collapsed .oh-title,
  .oh-header.oh-header-collapsed .oh-header-layout,
  .oh-skill-inline-btn {
    display: none !important;
  }
  .oh-toolbar.oh-toolbar-collapsed {
    margin-bottom: 6px;
    min-height: 0;
    max-height: none !important;
    overflow: visible !important;
    padding: 6px 10px !important;
  }
  .oh-header-layout {
    flex-direction: column-reverse;
  }
  .oh-portrait-box {
    align-self: center;
    width: 140px;
    height: auto;
    min-height: 140px;
    margin-bottom: 8px;
  }
  .oh-sheet-actions-bar {
    justify-content: flex-start;
    gap: 6px;
  }
  .oh-sheet-actions-bar .oh-tbtn {
    flex: 1 1 calc(50% - 6px);
    min-width: 120px;
    max-width: 100%;
    text-align: center;
    justify-content: center;
    padding: 6px 6px;
    font-size: 0.78rem;
    white-space: normal;
    word-break: break-word;
  }
  .oh-magic-grid {
    width: 100% !important;
    gap: 10px !important;
    grid-template-columns: 1fr;
  }
  .oh-left-col,
  .oh-center-col,
  .oh-right-col,
  .oh-magic-right-col {
    width: 100% !important;
    max-width: 100% !important;
  }
  .oh-section-title,
  .oh-section-header-tabs {
    margin: -6px -6px 8px -6px !important;
    width: calc(100% + 12px) !important;
  }
  .oh-header-toggle {
    display: flex;
  }
  .oh-header.oh-header-collapsed {
    margin-bottom: 8px;
  }
  .oh-screen-nav {
    top: 0px !important;
    padding: 4px;
    margin-bottom: 10px;
    background: var(--oh-bg-toggle);
    border-radius: 6px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.15);
  }
  .oh-wide-only {
    display: none;
  }
  .oh-screen-btn {
    padding: 5px 8px;
    font-size: 0.78rem;
  }
  .oh-screen-btn-top {
    min-width: 0;
  }
  .oh-w-form-grid {
    grid-template-columns: 1fr;
  }
  .oh-w-attr-grid,
  .oh-header-fields {
    grid-template-columns: 1fr 1fr;
  }
  #ohcs-roll-toast {
    bottom: 12px;
    inset-inline: 12px;
    width: auto;
    max-width: calc(100vw - 24px);
  }
  .oh-skills .oh-table-wrapper {
    overflow-x: hidden !important;
    max-width: 100% !important;
  }
  .oh-skills-table {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    table-layout: fixed !important;
  }
  .oh-skills-table th,
  .oh-skills-table td {
    padding: 1px 2px !important;
  }
  .oh-skills-table .col-mods input {
    width: 100% !important;
    max-width: 32px !important;
    min-width: 0 !important;
    padding: 0 1px !important;
  }
  .oh-skills-table select {
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  .oh-skills-table .col-ranks select {
    max-width: 44px !important;
  }
  .oh-skills-table .col-color select {
    max-width: 64px !important;
  }
  .oh-gov-attr {
    display: block !important;
    margin-inline-start: 0;
  }
  .oh-global-search-wrap {
    min-width: 0;
    flex: 1 1 100%;
    max-width: 100%;
    order: 3;
  }
  .oh-global-search-results {
    min-width: 0;
    width: 100%;
  }
  .oh-global-search-kbd {
    display: none;
  }
  .oh-skills-table td.col-skill.oh-has-skill-actions {
    padding-inline-end: 28px !important;
  }
  .oh-roll-log-dropdown-bar {
    flex-wrap: wrap;
  }
  .oh-roll-log-latest-inline {
    flex-basis: 100%;
    order: 3;
  }
  .oh-roll-log-dropdown-actions {
    margin-inline-start: auto;
    grid-auto-flow: row;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .oh-hero-title-name {
    font-size: 1.4rem;
  }
  .oath-hammer-sheet .oh-header-fields .oh-field:first-child {
    grid-column: 1 / -1;
  }
  .oath-hammer-sheet .oh-header-fields .oh-val[data-attr="Name"] input {
    font-size: 1.35rem !important;
  }
  .oh-weapons .oh-table th:nth-child(3),
  .oh-weapons .oh-table td:nth-child(3) {
    inline-size: 76px !important;
  }
  .oh-weapons .oh-table th:nth-child(4),
  .oh-weapons .oh-table td:nth-child(4) {
    inline-size: 40px !important;
  }
  .oh-weapons .oh-table thead {
    display: none !important;
  }
  .oh-weapons .oh-table,
  .oh-weapons .oh-table tbody {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    width: 100% !important;
  }
  .oh-weapons .oh-table tbody tr {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 6px !important;
    border: 1.5px solid var(--oh-border-soft) !important;
    border-radius: 6px !important;
    padding: 8px !important;
    background: var(--oh-bg-elevated) !important;
  }
  .oh-weapons .oh-table tbody tr td {
    border: none !important;
    padding: 2px 0 !important;
    min-height: 0 !important;
  }
  .oh-weapons .oh-table tbody tr td:nth-child(1),
  .oh-weapons .oh-table tbody tr td:nth-child(5) {
    inline-size: 100% !important;
  }
  .oh-weapons .oh-table tbody tr td:nth-child(2),
  .oh-weapons .oh-table tbody tr td:nth-child(3),
  .oh-weapons .oh-table tbody tr td:nth-child(4) {
    justify-self: center;
  }
  .oh-weapons .oh-table tbody tr td:nth-child(1) {
    grid-column: 1 / -1 !important;
    border-bottom: 1px solid var(--oh-border-light) !important;
    padding-bottom: 6px !important;
  }
  .oh-weapons .oh-table tbody tr td:nth-child(2)::before {
    content: "RNG: ";
    display: block;
    font-size: 0.65rem;
    font-weight: 800;
    color: var(--oh-ink-muted);
  }
  .oh-weapons .oh-table tbody tr td:nth-child(4)::before {
    content: "AP: ";
    display: block;
    font-size: 0.65rem;
    font-weight: 800;
    color: var(--oh-ink-muted);
  }
  .oh-weapons .oh-table tbody tr td:nth-child(5) {
    grid-column: 1 / -1 !important;
    border-top: 1px dashed var(--oh-border-light) !important;
    padding-top: 4px !important;
    text-align: start !important;
  }
  .oh-weapons .oh-table tbody tr.oh-weapon-row-empty td:not(:nth-child(1)) {
    display: none !important;
  }
  .oh-weapons .oh-table tbody tr.oh-weapon-row-empty td:nth-child(1) {
    border-bottom: none !important;
    padding-bottom: 0 !important;
  }
  .oh-toolbar.oh-toolbar-collapsed .oh-toolbar-left {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    gap: 6px !important;
  }
  .oh-toolbar.oh-toolbar-collapsed .oh-toolbar-brand {
    font-size: 0.92rem !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    min-width: 0 !important;
  }
  .oh-toolbar.oh-toolbar-collapsed .oh-toolbar-toggle-btn {
    flex-shrink: 0 !important;
    min-height: 34px !important;
    padding: 5px 10px !important;
  }
  .oh-beta-step {
    min-width: 30px !important;
    min-height: 30px !important;
    font-size: 0.95rem !important;
    padding: 2px 6px !important;
    background: var(--oh-bg-surface);
    color: var(--oh-ink-heading);
    border: 1.5px solid var(--oh-border-muted);
  }
  .oh-beta-pip-btn {
    width: 26px !important;
    height: 26px !important;
    background: var(--oh-bg-surface);
    color: var(--oh-ink-secondary);
    border: 1.5px solid var(--oh-border-muted);
  }
  .oh-dynamic-item {
    gap: 8px !important;
    padding: 5px 6px !important;
  }
  .oh-dynamic-item .oh-help-icon,
  .oh-dynamic-item .oh-del-btn {
    min-width: 32px !important;
    min-height: 32px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  .oh-dynamic-item .oh-del-btn {
    margin-inline-start: 4px !important;
  }
  .oath-hammer-sheet .oh-header .oh-val input,
  .oath-hammer-sheet .oh-header .oh-val select,
  .oh-dynamic-item select,
  .oh-dynamic-item .oh-fuzzy-combo-input,
  .oh-oath-row select,
  .oh-notes-content textarea,
  .oh-blank-notes-area textarea,
  #oh-dice-modal input,
  #oh-dice-modal select {
    font-size: 16px !important;
  }
  body {
    padding: 6px;
  }
  .oh-toolbar-group {
    border-inline-end: none;
    flex-wrap: wrap;
    width: 100%;
    gap: 4px;
    margin-bottom: 4px;
  }
  .oh-toolbar-right {
    gap: 6px;
  }
}
@media screen and (max-width: 520px), screen and (max-height: 700px) {
  .oh-wizard-modal,
  .oh-dice-modal,
  .oh-help-modal {
    padding: 6px;
    overflow-y: auto;
  }
  .oh-wizard-dialog,
  .oh-dice-dialog,
  .oh-help-dialog {
    max-height: calc(100dvh - 12px);
    border-width: 2px;
  }
  .oh-wizard-header,
  .oh-dice-header,
  .oh-help-header,
  .oh-wizard-footer,
  .oh-dice-footer,
  .oh-help-footer {
    flex-shrink: 0;
    padding: 10px 12px;
  }
  .oh-wizard-body,
  .oh-dice-body,
  .oh-help-body {
    padding: 12px;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
  }
}
@media screen and (max-height: 760px) {
  .oh-dice-dialog {
    max-height: calc(100dvh - 12px) !important;
  }
  .oh-dice-header {
    padding: 5px 12px !important;
  }
  .oh-dice-title {
    font-size: 0.92rem !important;
  }
  .oh-dice-subtitle {
    font-size: 0.74rem !important;
    color: var(--oh-ink-secondary);
  }
  .oh-dice-body {
    padding: 5px 10px !important;
    gap: 4px !important;
  }
  .oh-dice-options-row,
  .oh-ammo-select-bar {
    padding: 2px 8px !important;
  }
  .oh-dice-pools {
    gap: 3px !important;
  }
  .oh-pool-row {
    padding: 2px 8px !important;
    gap: 6px !important;
  }
  .oh-pool-badge {
    width: 24px !important;
    height: 24px !important;
    font-size: 0.82rem !important;
  }
  .oh-pool-name {
    font-size: 0.8rem !important;
  }
  .oh-pool-desc {
    display: none !important;
  }
  .oh-stepper .oh-step-btn {
    width: 24px !important;
    height: 24px !important;
    font-size: 0.95rem !important;
  }
  .oh-step-input {
    width: 36px !important;
    height: 24px !important;
    font-size: 0.92rem !important;
    color: var(--oh-ink-heading) !important;
  }
  .oh-dice-primary-actions #oh-dice-roll-btn {
    padding: 5px 10px !important;
    font-size: 0.88rem !important;
  }
  .oh-dice-primary-actions #mod-btn-reset {
    padding: 4px 8px !important;
    font-size: 0.75rem !important;
  }
  .oh-dice-results .hammerdice-result {
    padding: 5px 10px !important;
  }
  .oh-dice-results .hammerdice-summary {
    padding: 3px 8px !important;
    margin-bottom: 4px !important;
  }
  .oh-dice-results .hammerdice-summary-val {
    font-size: 1.35rem !important;
  }
  .oh-dice-results .die {
    width: 30px !important;
    height: 30px !important;
    font-size: 1rem !important;
  }
  .oh-post-roll-luck-bar {
    padding: 3px 8px !important;
    font-size: 0.76rem !important;
  }
}
@media screen {
  html {
    scroll-padding-top: 88px;
  }
  :is(a, button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])):focus-visible {
    outline: 3px solid var(--oh-focus-ring) !important;
    outline-offset: 0 !important;
    box-shadow: 0 0 0 5px var(--oh-focus-inner) !important;
  }
  :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea):focus-visible {
    border-color: var(--oh-focus-inner) !important;
  }
  .oh-attr-box input,
  .oh-skills-table .col-ranks,
  .oh-skills-table .col-mods,
  .oh-skills-table .col-total,
  .oh-skills-table input,
  .oh-skills-table select,
  .oh-beta-mono,
  #beta-ql-torch-timer,
  .oh-enc-vital-val,
  .oh-step-input,
  .oh-val[data-attr="Experience"] input,
  .oh-val[data-attr$=" DMG"] input,
  .oh-val[data-attr$=" AP"] input,
  .oh-val[data-attr$=" RNG"] input,
  .oh-val[data-attr="Armor AV"] input,
  .oh-val[data-attr="Armor Penalty"] input,
  .oh-roll-log-score,
  .oh-roll-log-time,
  .oh-roll-log-chip,
  .oh-roll-log-badge,
  #oh-cloud-totp,
  #oh-cloud-stepup-totp,
  #oh-cloud-totp-verify-code {
    font-variant-numeric: tabular-nums;
  }
  .oh-val[data-attr="Experience"] input {
    max-inline-size: 11ch;
  }
  .oh-weapons .oh-val[data-attr$=" DMG"] input,
  .oh-weapons .oh-val[data-attr$=" AP"] input {
    max-inline-size: 7ch;
    text-align: center;
  }
  .oh-weapons .oh-val[data-attr$=" RNG"] input {
    max-inline-size: 8.5ch !important;
    text-align: center;
  }
  #oh-cloud-totp,
  #oh-cloud-stepup-totp,
  #oh-cloud-totp-verify-code {
    max-inline-size: 12ch;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    letter-spacing: 0.12em;
    text-align: center;
  }
  .oh-field-group {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
  }
  .oh-field-label {
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--oh-ink-heading);
  }
  .oh-field-hint {
    font-size: 0.75rem;
    font-weight: 400;
    line-height: 1.35;
    color: var(--oh-ink-secondary);
  }
  .oh-error-summary {
    border: 3px solid var(--oh-danger-border);
    background: var(--oh-danger-bg);
    color: var(--oh-ink-primary);
    border-radius: 6px;
    padding: 10px 12px;
    margin-bottom: 12px;
  }
  .oh-error-summary-title {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.86rem;
    font-weight: 800;
    color: var(--oh-danger-ink);
    margin-bottom: 6px;
  }
  .oh-error-summary-list {
    margin: 0;
    padding-inline-start: 18px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 0.8rem;
  }
  .oh-error-summary-list a {
    color: var(--oh-danger-ink);
    font-weight: 700;
    text-decoration: underline;
  }
  [aria-invalid="true"] {
    border-color: var(--oh-danger-border) !important;
    background-color: var(--oh-danger-bg) !important;
  }
  .oh-field-error-msg {
    display: block;
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--oh-danger-ink);
    margin-top: 3px;
  }
  button[data-confirm-armed="true"] {
    background: #b91c1c !important;
    color: #ffffff !important;
    border-color: #7f1d1d !important;
    font-weight: 800 !important;
  }
  .oh-summary-list {
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--oh-border-soft);
  }
  .oh-summary-row {
    display: grid;
    grid-template-columns: minmax(110px, 145px) 1fr auto;
    gap: 6px 12px;
    align-items: start;
    padding: 8px 4px;
    border-bottom: 1px solid var(--oh-border-soft);
  }
  .oh-summary-row dt {
    margin: 0;
    font-size: 0.8rem;
    font-weight: 800;
    color: var(--oh-ink-heading);
  }
  .oh-summary-val {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.4;
    color: var(--oh-ink-primary);
    min-width: 0;
  }
  .oh-summary-actions {
    margin: 0;
    display: flex;
    justify-content: flex-end;
  }
  .oh-summary-change-btn {
    appearance: none;
    background: var(--oh-bg-btn-subtle);
    color: var(--oh-accent-cobalt-ink);
    border: 1px solid var(--oh-border-muted);
    border-radius: 4px;
    padding: 4px 10px;
    min-width: 24px;
    min-height: 28px;
    font-size: 0.76rem;
    font-weight: 700;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
  }
  .oh-summary-change-btn:hover {
    background: var(--oh-bg-btn-subtle-hover);
  }
}
@media screen and (max-width: 560px) {
  .oh-summary-row {
    grid-template-columns: 1fr auto;
  }
  .oh-summary-val {
    grid-column: 1 / -1;
    order: 3;
  }
}
@media screen and (pointer: coarse) {
  .oh-section-collapse-btn,
  .oh-global-search-clear,
  .oh-dynamic-item .oh-del-btn,
  .oh-dynamic-item .oh-item-help-btn {
    min-width: 36px;
    min-height: 36px;
  }
}
@media print {
  @page {
    size: A4 portrait;
    margin: 8mm;
  }
  :root,
  html,
  html[data-theme="dark"],
  html[data-theme="light"] {
    color-scheme: light !important;
  }
  .oh-channel-pill,
  .oh-beta-drawer-btn,
  .oh-beta-preview-panel,
  .oh-portrait-carousel,
  .oh-lightbox,
  .oh-sheet-actions-bar,
  .oh-kanka-session-banner,
  #oh-standalone-toolbar,
  #oh-instance-banner,
  #oh-beta-preview-panel,
  #oh-beta-vitals-strip,
  #oh-beta-pips-row,
  #oh-beta-supplies-row,
  .oh-beta-supplies-row,
  .oh-toolbar-docs-dropdown,
  .oh-beta-status-strip,
  .oh-beta-step,
  .oh-beta-resets-group,
  .oh-beta-diff-callout,
  .oh-beta-pips-row,
  .oh-version-tag,
  #oh-screen-nav,
  #oh-screen-footer,
  #oh-header-toggle,
  #attr-array-hint,
  .oh-array-hint,
  .oh-attr-validity,
  .oh-portrait-actions,
  .oh-notes-tabs,
  .oh-gallery-toolbar,
  .oh-gallery-card-actions,
  .oh-add-btn,
  .oh-btn-remove,
  .oh-btn-upload,
  .oh-gallery-hint,
  .oh-gallery-empty,
  #oh-wizard-modal,
  #oh-dice-modal,
  #oh-help-modal,
  #oh-changelog-modal,
  #pwa-vault-modal,
  #oh-patches-modal,
  #ohcs-roll-toast,
  .oh-help-icon,
  .oh-help-btn,
  .oh-btn-weapon-action,
  .oh-weapon-quick-filter,
  .oh-quick-filter-input,
  .oh-gallery-section.oh-print-hide,
  .oh-box[data-screen="encounter"],
  #oh-screen-roll-log,
  .oh-roll-log-screen,
  .oh-box[data-screen="log"],
  .oh-header-subfields .oh-field.oh-field-campaign-meta,
  body.oh-companion-roller-mode #oh-dice-modal,
  .oh-del-btn,
  .oh-item-help-btn,
  .oh-trait-help-btn,
  .oh-inline-help-drawer,
  .oh-portrait-frame:has(img[src]:not([src=""])) .oh-portrait-placeholder,
  .oh-tab-pane,
  #oh-directory-modal,
  #oh-lightbox-modal,
  #oh-vtt-bar,
  #oh-roll-log-dropdown,
  #oh-global-search-wrap,
  .oh-field-campaign-meta,
  .oh-defense-roll-actions,
  .oh-weapon-rune-wrap,
  .oh-weapons-breakdown-panel,
  .oh-identity-bar,
  .oh-skill-row-actions,
  .oh-skill-mod-sources,
  .oh-item-slots-status,
  .oh-provenance-tag,
  .oh-encounter-combat-deck,
  .oh-fuzzy-native-select,
  .oh-fuzzy-combo-clear,
  .oh-fuzzy-combo-chevron,
  .oh-fuzzy-combo-menu,
  .oh-fuzzy-combo-input.oh-print-blank,
  .oh-quick-filter,
  .oh-no-print,
  #oh-combo-live-status {
    display: none !important;
  }
  html,
  body {
    background: #ffffff !important;
    color: #0f172a !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 11px !important;
    font-family:
      -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
      Arial, sans-serif !important;
    print-color-adjust: exact !important;
  }
  .oath-hammer-sheet .oh-box:not(.oh-roll-log-screen):not(#oh-screen-roll-log):not([data-screen="log"]):not(#oh-beta-preview-panel):not([data-screen="encounter"]):not(.oh-print-hide) {
    display: block !important;
  }
  .oh-main-grid,
  .oath-hammer-sheet .oh-main-grid,
  .oath-hammer-sheet[class*="oh-page-mode-"] .oh-main-grid {
    display: grid !important;
    grid-template-columns: 1fr 180px 1.25fr !important;
    gap: 8px !important;
    margin-bottom: 0 !important;
  }
  .oh-left-col,
  .oh-center-col,
  .oh-right-col,
  .oath-hammer-sheet[class*="oh-page-mode-"] .oh-left-col,
  .oath-hammer-sheet[class*="oh-page-mode-"] .oh-center-col,
  .oath-hammer-sheet[class*="oh-page-mode-"] .oh-right-col {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
  }
  .oh-magic-grid,
  .oath-hammer-sheet .oh-magic-grid,
  .oath-hammer-sheet[class*="oh-page-mode-"] .oh-magic-grid {
    break-before: page !important;
    page-break-before: always !important;
    display: grid !important;
    grid-template-columns: 1fr 1.25fr !important;
    gap: 8px !important;
    margin-bottom: 8px !important;
  }
  .oh-magic-right-col,
  .oath-hammer-sheet[class*="oh-page-mode-"] .oh-magic-right-col {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
  }
  .oath-hammer-sheet,
  .oath-hammer-sheet.oh-sheet-beta-mode,
  .oath-hammer-sheet.oh-sheet-tweaked-mode {
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    background: #ffffff !important;
    border: none !important;
    box-shadow: none !important;
  }
  .oh-header {
    margin-bottom: 6px !important;
    padding: 5px 8px !important;
    border: 1.5px solid #0f172a !important;
    border-radius: 4px !important;
    background: #ffffff !important;
  }
  .oh-header.oh-header-collapsed .oh-title,
  .oh-header.oh-header-collapsed .oh-header-layout {
    display: flex !important;
  }
  .oh-header-layout {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
  }
  .oh-header-main {
    flex: 1 !important;
  }
  .oh-header-fields {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 5px !important;
    margin-bottom: 5px !important;
  }
  .oh-header-fields .oh-field,
  .oh-header-subfields .oh-field {
    border: 1px solid #cbd5e1 !important;
    border-radius: 3px !important;
    overflow: hidden !important;
    background: #ffffff !important;
  }
  .oh-header-subfields {
    display: grid !important;
    grid-template-columns: 90px 1.2fr 1.8fr !important;
    gap: 5px !important;
    border-top: 1px solid #e2e8f0 !important;
    padding-top: 4px !important;
  }
  .oh-title h1 {
    font-family:
      "Cinzel", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif
      !important;
    font-size: 1.25rem !important;
    margin-bottom: 2px !important;
    letter-spacing: 2.5px !important;
    color: #334155 !important;
    font-weight: 600 !important;
    text-shadow: none !important;
  }
  .oh-header-fields label,
  .oh-header-subfields label {
    padding: 2px 4px !important;
    font-size: 0.62rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    background: #f1f5f9 !important;
    color: #475569 !important;
    border-bottom: 1px solid #e2e8f0 !important;
    letter-spacing: 0.5px !important;
  }
  .oh-header-fields span,
  .oh-header-subfields span {
    padding: 2px 4px !important;
    min-height: 18px !important;
    font-size: 0.82rem !important;
    font-weight: 600 !important;
    color: #0f172a !important;
  }
  .oh-portrait-box {
    flex: 0 0 72px !important;
    width: 72px !important;
    height: 72px !important;
    max-height: 72px !important;
    border: 1.25px solid #cbd5e1 !important;
    border-radius: 4px !important;
    align-self: center !important;
    overflow: hidden !important;
    background: #f8fafc !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
  .oh-portrait-frame {
    width: 100% !important;
    height: 100% !important;
    min-height: unset !important;
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  .oh-portrait-img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: none !important;
  }
  .oh-portrait-img[src]:not([src=""]) {
    display: block !important;
  }
  .oh-portrait-placeholder {
    padding: 2px !important;
    gap: 2px !important;
  }
  .oh-portrait-icon {
    font-size: 1.3rem !important;
  }
  .oh-portrait-text {
    font-size: 0.58rem !important;
    letter-spacing: 0.5px !important;
    font-weight: 700 !important;
    color: #64748b !important;
  }
  .oh-box {
    border: 1.25px solid #334155 !important;
    border-radius: 4px !important;
    margin-bottom: 0 !important;
    background: #ffffff !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .oh-section-title {
    font-family:
      "Cinzel", "Palatino Linotype", Palatino, Georgia, serif !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.8px !important;
    padding: 2.5px 6px !important;
    margin-bottom: 4px !important;
    background: #1e293b !important;
    color: #ffffff !important;
    border-radius: 2px !important;
    text-transform: uppercase !important;
    print-color-adjust: exact !important;
  }
  .oh-attr-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 4px !important;
  }
  .oh-attr-card {
    padding: 3px 4px !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 3px !important;
    background: #ffffff !important;
  }
  .oh-attr-card label {
    font-family: "Cinzel", Georgia, serif !important;
    font-size: 0.65rem !important;
    font-weight: 700 !important;
    color: #1e293b !important;
    letter-spacing: 0.5px !important;
  }
  .oh-attr-base select {
    font-size: 0.95rem !important;
    font-weight: 800 !important;
    color: #0f172a !important;
  }
  .oh-attr-mod {
    font-size: 0.75rem !important;
    font-weight: 600 !important;
    color: #2563eb !important;
  }
  .oh-attr-total {
    font-size: 1.15rem !important;
    font-weight: 800 !important;
    background: #1e293b !important;
    color: #ffffff !important;
    border-radius: 2px !important;
    padding: 1px 0 !important;
    print-color-adjust: exact !important;
  }
  .oh-items-table {
    border-collapse: collapse !important;
    width: 100% !important;
    border-bottom: 1.5px solid #334155 !important;
  }
  .oh-items-table td {
    padding: 2px 4px !important;
    font-size: 0.72rem !important;
    line-height: 1.15 !important;
    border-bottom: 1px dotted #e2e8f0 !important;
  }
  .oh-items-table .oh-eq-slot-wrap {
    display: flex !important;
    align-items: center !important;
    gap: 3px !important;
  }
  .oh-items-table .oh-eq-slot-num {
    font-weight: 700 !important;
    color: #475569 !important;
    font-size: 0.68rem !important;
    flex-shrink: 0 !important;
  }
  .oh-items-table tbody tr:last-child td {
    border-bottom: none !important;
  }
  .oh-items-table td strong {
    color: #475569 !important;
    font-size: 0.68rem !important;
  }
  .oh-items-table select.oh-print-blank,
  .oh-items-table .oh-print-blank {
    opacity: 0 !important;
    color: transparent !important;
  }
  .oh-defense .oh-armor-stats {
    gap: 4px !important;
  }
  .oh-defense label {
    font-size: 0.65rem !important;
    font-weight: 700 !important;
    color: #475569 !important;
    padding: 1.5px 3px !important;
    background: #f1f5f9 !important;
    border-bottom: 1px solid #e2e8f0 !important;
    letter-spacing: 0.4px !important;
    text-transform: uppercase !important;
  }
  .oh-defense .oh-field {
    border: 1px solid #cbd5e1 !important;
    border-radius: 3px !important;
    overflow: hidden !important;
    margin-bottom: 3px !important;
  }
  .oh-defense span {
    padding: 2px 4px !important;
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    color: #0f172a !important;
  }
  .oh-traits,
  .oh-focus {
    border: 1px solid #cbd5e1 !important;
    border-radius: 3px !important;
    overflow: hidden !important;
    background: #ffffff !important;
    margin-bottom: 0 !important;
  }
  .oh-traits label,
  .oh-focus label {
    display: block !important;
    width: 100% !important;
    background: #f1f5f9 !important;
    color: #475569 !important;
    font-size: 0.65rem !important;
    font-weight: 700 !important;
    padding: 2px 4px !important;
    border-bottom: 1px solid #cbd5e1 !important;
    text-align: center !important;
    letter-spacing: 0.5px !important;
    text-transform: uppercase !important;
    box-sizing: border-box !important;
  }
  .oh-traits-body,
  .oh-focus-body {
    padding: 3px 5px !important;
    min-height: 28px !important;
    box-sizing: border-box !important;
  }
  .oh-traits-body span,
  .oh-focus-body span,
  .oh-traits span,
  .oh-focus span {
    font-size: 0.78rem !important;
    font-weight: 500 !important;
    color: #0f172a !important;
    text-align: start !important;
  }
  .oath-hammer-sheet .oh-grit-luck.oh-box,
  .oh-grit-luck.oh-box,
  .oh-grit-luck {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 4px !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    margin-bottom: 0 !important;
  }
  .oh-grit-luck .oh-field {
    border: 1px solid #cbd5e1 !important;
    border-radius: 3px !important;
    overflow: hidden !important;
    text-align: center !important;
    background: #ffffff !important;
    margin-bottom: 0 !important;
  }
  .oh-grit-luck .oh-field label {
    display: block !important;
    background: #1e293b !important;
    color: #ffffff !important;
    font-family: "Cinzel", Georgia, serif !important;
    font-size: 0.65rem !important;
    font-weight: 700 !important;
    padding: 2px 0 !important;
    letter-spacing: 0.8px !important;
    border-bottom: none !important;
    text-align: center !important;
    print-color-adjust: exact !important;
  }
  .oh-grit-luck .oh-field span {
    display: block !important;
    font-size: 1.15rem !important;
    font-weight: 800 !important;
    color: #0f172a !important;
    padding: 3px 0 !important;
    text-align: center !important;
  }
  .oh-grit-luck .oh-vital-tracker {
    display: flex !important;
    align-items: baseline !important;
    justify-content: center !important;
    padding: 2px 0 !important;
  }
  .oh-grit-luck .oh-vital-cur-max {
    display: inline-flex !important;
    align-items: baseline !important;
    gap: 2px !important;
    font-size: 1.15rem !important;
    font-weight: 800 !important;
    color: #0f172a !important;
    padding: 0 !important;
  }
  .oh-grit-luck .oh-vital-cur-max strong,
  .oh-grit-luck .oh-vital-cur-max span {
    display: inline !important;
    font-size: 1.15rem !important;
    font-weight: 800 !important;
    color: #0f172a !important;
    padding: 0 !important;
  }
  .oh-weapons .oh-table th:nth-child(1),
  .oh-weapons .oh-table td:nth-child(1) {
    width: 36% !important;
  }
  .oh-weapons .oh-table th:nth-child(2),
  .oh-weapons .oh-table td:nth-child(2) {
    width: 52px !important;
    text-align: center !important;
  }
  .oh-weapons .oh-table th:nth-child(3),
  .oh-weapons .oh-table td:nth-child(3) {
    width: 46px !important;
    text-align: center !important;
  }
  .oh-weapons .oh-table th:nth-child(4),
  .oh-weapons .oh-table td:nth-child(4) {
    width: 34px !important;
    text-align: center !important;
  }
  .oh-weapons .oh-table th:nth-child(5),
  .oh-weapons .oh-table td:nth-child(5) {
    width: auto !important;
  }
  .oh-wealth {
    padding: 3px !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 3px !important;
    background: #ffffff !important;
    margin-bottom: 0 !important;
  }
  .oh-wealth .oh-field {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 3px !important;
    overflow: hidden !important;
    margin-bottom: 2px !important;
  }
  .oh-wealth .oh-field:last-child {
    margin-bottom: 0 !important;
  }
  .oh-wealth .oh-field label {
    width: 58px !important;
    min-width: 58px !important;
    max-width: 58px !important;
    background: #f1f5f9 !important;
    color: #475569 !important;
    font-size: 0.65rem !important;
    font-weight: 700 !important;
    padding: 2px 4px !important;
    border-inline-end: 1px solid #cbd5e1 !important;
    border-bottom: none !important;
    text-align: start !important;
    letter-spacing: 0.5px !important;
    box-sizing: border-box !important;
  }
  .oh-wealth .oh-field span {
    flex: 1 !important;
    padding: 2px 6px !important;
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    text-align: end !important;
    background: #ffffff !important;
  }
  .oh-trinkets {
    padding: 3px !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 3px !important;
    background: #ffffff !important;
    margin-bottom: 0 !important;
  }
  .oh-trinkets .oh-field {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 3px !important;
    overflow: hidden !important;
    margin-bottom: 2px !important;
  }
  .oh-trinkets .oh-field:last-child {
    margin-bottom: 0 !important;
  }
  .oh-trinkets .oh-field label {
    width: 72px !important;
    min-width: 72px !important;
    max-width: 72px !important;
    background: #f1f5f9 !important;
    color: #475569 !important;
    font-size: 0.62rem !important;
    font-weight: 700 !important;
    padding: 2px 4px !important;
    border-inline-end: 1px solid #cbd5e1 !important;
    border-bottom: none !important;
    text-align: start !important;
    letter-spacing: 0.4px !important;
    box-sizing: border-box !important;
  }
  .oh-trinkets .oh-field span {
    flex: 1 !important;
    padding: 2px 4px !important;
    font-size: 0.75rem !important;
    font-weight: 500 !important;
    text-align: start !important;
    background: #ffffff !important;
  }
  .oh-gear-notes,
  .oh-combat-notes {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 !important;
    border: 1.25px solid #334155 !important;
    border-radius: 4px !important;
    overflow: hidden !important;
    background: #ffffff !important;
    margin-bottom: 0 !important;
  }
  .oh-gear-notes {
    min-height: 110px !important;
  }
  .oh-combat-notes {
    min-height: 75px !important;
  }
  .oh-blank-notes-area {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    padding: 4px 6px !important;
    background: repeating-linear-gradient(
      to bottom,
      transparent,
      transparent 15px,
      #e2e8f0 16px
    ) !important;
    box-sizing: border-box !important;
  }
  .oh-blank-notes-area textarea,
  .oh-blank-notes-area span {
    flex: 1 !important;
    width: 100% !important;
    height: 100% !important;
    border: none !important;
    background: transparent !important;
    font-size: 0.74rem !important;
    line-height: 16px !important;
    resize: none !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
  .oh-val[data-attr="Experience"] input.oh-zero-val,
  .oh-val[data-attr="Experience"].oh-zero-val,
  .oh-val[data-attr="Experience"] input.oh-print-blank,
  .oh-val[data-attr="Experience"].oh-print-blank,
  .oh-val[data-attr="Experience"] input[data-zero="true"],
  .oh-header-fields .oh-val[data-attr="Experience"]:has(input[value="0"]) input,
  .oh-header-fields .oh-val[data-attr="Experience"]:has(input[value="0"]) {
    opacity: 0 !important;
    color: transparent !important;
    visibility: hidden !important;
  }
  .oh-skills-table tbody tr:nth-child(even) td {
    background: #f8fafc !important;
  }
  .oh-skills-table .col-skill {
    line-height: 1.1 !important;
    font-size: 0.72rem !important;
    font-weight: 600 !important;
    color: #0f172a !important;
    white-space: nowrap !important;
  }
  .oh-gov-attr {
    display: block !important;
    font-size: 0.58rem !important;
    color: #64748b !important;
    font-weight: normal !important;
    line-height: 1 !important;
    margin-top: 0.5px !important;
    white-space: nowrap !important;
  }
  .col-ranks select,
  .col-mods input,
  .col-color select {
    font-size: 0.75rem !important;
    padding: 0 !important;
    text-align: center !important;
  }
  .col-total {
    font-weight: 800 !important;
    font-size: 0.82rem !important;
    color: #0f172a !important;
    text-align: center !important;
  }
  .oh-skills-table .col-ranks select.oh-zero-rank,
  .oh-skills-table .col-ranks .oh-val.oh-zero-rank,
  .oh-skills-table .col-ranks .oh-zero-rank,
  .oh-skills-table .col-mods input.oh-zero-mod,
  .oh-skills-table .col-mods .oh-val.oh-zero-mod,
  .oh-skills-table .col-mods .oh-zero-mod,
  input::placeholder,
  textarea::placeholder {
    opacity: 0 !important;
    color: transparent !important;
  }
  input[type="number"]::-webkit-inner-spin-button,
  input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
    display: none !important;
  }
  input[type="number"] {
    appearance: textfield !important;
  }
  input,
  select,
  textarea {
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: none !important;
    font-family: inherit !important;
    color: #0f172a !important;
    appearance: none !important;
  }
  .oh-oaths-vows {
    font-size: 0.78rem !important;
    line-height: 1.35 !important;
  }
  .oh-magic .oh-textarea {
    font-size: 0.78rem !important;
    min-height: 60px !important;
  }
  .oh-magic-stats {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 6px !important;
    margin-top: 6px !important;
  }
  .oh-magic-stats .oh-field {
    border: 1px solid #cbd5e1 !important;
    border-radius: 3px !important;
    overflow: hidden !important;
    text-align: center !important;
    background: #ffffff !important;
  }
  .oh-magic-stats .oh-field label {
    display: block !important;
    background: #0f172a !important;
    color: #ffffff !important;
    font-family: "Cinzel", Georgia, serif !important;
    font-size: 0.62rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.5px !important;
    padding: 2.5px 2px !important;
    text-transform: uppercase !important;
    print-color-adjust: exact !important;
  }
  .oh-magic-stats .oh-field span,
  .oh-magic-stats .oh-val[data-attr="Arcane Stress"] input {
    display: block !important;
    font-size: 1.15rem !important;
    font-weight: 800 !important;
    color: #0f172a !important;
    padding: 3px 0 !important;
    text-align: center !important;
    width: 100% !important;
  }
  .oh-notes-section {
    margin-block: 8px !important;
    page-break-inside: auto !important;
    break-inside: auto !important;
  }
  .oh-tab-pane.active,
  .oh-tab-pane.oh-print-show,
  .oh-tab-pane:not(.active):not(:has(textarea:placeholder-shown)) {
    display: block !important;
    margin-bottom: 6px !important;
  }
  .oh-tab-pane::before {
    display: block;
    font-weight: 800;
    font-size: 0.72rem;
    color: #334155;
    margin-bottom: 2px;
    text-transform: uppercase;
    font-family: "Cinzel", Georgia, serif;
  }
  #pane-backstory::before {
    content: "Backstory & Lore";
  }
  #pane-journal::before {
    content: "Session Journal";
  }
  #pane-contacts::before {
    content: "Allies & Contacts";
  }
  #pane-loot::before {
    content: "Inventory Overflow";
  }
  .oh-notes-content textarea {
    font-size: 0.78rem !important;
    min-height: 80px !important;
    height: auto;
    border: 1px solid #cbd5e1 !important;
    border-radius: 3px !important;
    padding: 5px !important;
    line-height: 1.4 !important;
    resize: none !important;
    overflow: visible !important;
    field-sizing: content !important;
    background: #ffffff !important;
  }
  .oh-gallery-section {
    margin-top: 8px !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
  .oh-gallery-grid {
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)) !important;
    gap: 6px !important;
  }
  .oh-gallery-card img {
    height: 100px !important;
    object-fit: contain !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 2px !important;
  }
  .oh-print-only-title {
    display: block !important;
  }
}
