.characters-page { min-width: 0; width: 100%; }
.character-toolbar, .character-actions, .character-section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.character-toolbar { margin-bottom: 24px; }
.character-actions { justify-content: flex-end; }
.character-toolbar h3 { display: flex; align-items: center; gap: 12px; margin: 0; }
.character-count, .character-muted { color: var(--muted); font-weight: 400; }
.character-filters { display: grid; grid-template-columns: minmax(180px, 360px) 180px 120px 1fr; align-items: end; gap: 16px; margin-bottom: 24px; }
.characters-page label { display: grid; gap: 8px; color: var(--muted); font-size: 13px; font-weight: 450; min-width: 0; }
.characters-page :is(input, select, textarea) { width: 100%; min-width: 0; font-size: 14px; }
.characters-page textarea { resize: vertical; line-height: 1.6; }
#characterMatches { padding: 10px 0; font-size: 13px; color: var(--muted); }
.character-table-wrap { width: 100%; overflow-x: auto; }
.character-table { border-collapse: collapse; width: 100%; text-align: left; font-size: 14px; border-top: 1px solid var(--line); }
.character-table th { color: var(--muted); font-size: 12px; font-weight: 500; padding: 14px 16px; white-space: nowrap; border-bottom: 1px solid var(--line); }
.character-table td { padding: 20px 16px; border-bottom: 1px solid #2b2d31; font-variant-numeric: tabular-nums; }
.character-table tbody tr:hover { background: var(--paper); }
.character-table td:first-child { min-width: 180px; }
.character-table td > small { display: block; color: var(--muted); margin-top: 5px; }
.character-table .character-empty-row { padding: 48px 16px; color: var(--muted); text-align: center; }
.character-name-link { border: 0; padding: 0; text-align: left; background: transparent; color: var(--ink); font-weight: 600; overflow-wrap: anywhere; }
.character-name-link:hover { color: var(--red); }
.character-status-text { display: block; min-width: 100px; max-width: 260px; color: var(--muted); line-height: 1.5; }
.character-hp { white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--muted); }
.character-hp strong { color: var(--ink); font-weight: 600; }
.character-hp.is-low strong { color: #edc679; }
.character-hp.is-down strong { color: #ef9298; }
.character-hp small { color: #8ed1db; margin-left: 8px; }
.character-section { padding: 24px 0; border-top: 1px solid var(--line); min-width: 0; }
.characters-page h3 { font-size: 16px; font-weight: 600; margin: 0 0 20px; }
.character-form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.character-form-grid.six, .character-saves { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.character-notes-grid, .character-live-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
.character-live-grid { gap: 48px; }
.character-identity { display: flex; align-items: center; gap: 16px; margin: 0 0 28px; }
.character-identity h3 { font-size: 24px; margin: 0 0 6px; overflow-wrap: anywhere; }
.character-identity p { color: var(--muted); margin: 0; }
.character-private-label { margin-left: auto; color: var(--muted); font-size: 12px; white-space: nowrap; }
.character-stat-strip, .character-saves { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin: 0; padding: 0 0 28px; gap: 20px; }
.character-stat-strip > div { min-width: 0; overflow-wrap: anywhere; }
.character-stat-strip dt, .character-saves dt { color: var(--muted); font-size: 12px; }
.character-stat-strip dd, .character-saves dd { margin: 8px 0 0; font-size: 24px; font-weight: 500; font-variant-numeric: tabular-nums; }
.character-stat-strip .character-speed { font-size: 16px; line-height: 1.5; }
.character-survival-fields { margin-bottom: 24px; }
.character-saves { grid-template-columns: repeat(6, minmax(0, 1fr)); padding: 0; }
.character-health-display { font-size: 32px; margin: 2px 0 12px; }
.character-health-display small { font-size: 15px; }
.character-health-bar { width: 100%; height: 5px; border: 0; margin-bottom: 22px; display: block; background: var(--line); accent-color: var(--red); }
.character-health-bar::-webkit-progress-bar { background: var(--line); }
.character-health-bar::-webkit-progress-value { background: var(--red); }
.character-hp-form { display: grid; grid-template-columns: minmax(120px, 1fr) minmax(104px, 120px) auto; align-items: end; gap: 12px; }
.character-hp-form button { min-height: 40px; }
.character-condition-form { display: flex; align-items: end; gap: 12px; flex-wrap: wrap; margin-top: 20px; }
.character-condition-form label { flex: 1 1 180px; }
.character-condition-form input { flex: 1 1 140px; }
.character-condition-help { color: var(--muted); font-size: 13px; line-height: 1.6; min-height: 20px; margin: 12px 0 4px; }
.character-rules-source { color: var(--muted); font-size: 11px; }
.character-rules-source a { color: inherit; }
.character-conditions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-height: 34px; }
.character-condition { display: inline-flex; align-items: center; padding-left: 10px; gap: 6px; background: #302b24; color: #edc679; border-radius: 4px; font-size: 13px; max-width: 100%; overflow-wrap: anywhere; }
.character-condition .icon-button { flex: 0 0 28px; width: 28px; height: 30px; border: 0; color: inherit; }
.character-session-fields { display: flex; align-items: center; gap: 32px; flex-wrap: wrap; margin-bottom: 24px; }
.character-session-fields > label:first-child { max-width: 160px; }
.characters-page .character-checkbox { display: flex; align-items: center; gap: 8px; }
.characters-page input[type="checkbox"] { width: 18px; height: 18px; margin: 0; accent-color: var(--red); }
.character-death-saves { display: flex; gap: 12px; border: 0; padding: 0; margin: 0; }
.character-death-saves legend { color: var(--muted); font-size: 12px; margin-bottom: 10px; }
.character-form-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; margin-top: 12px; }
.character-scene-note { display: flex; align-items: start; justify-content: space-between; gap: 20px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.character-scene-note strong { font-size: 13px; font-weight: 500; color: #a7c9d2; }
.character-scene-note p, .character-note-text { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 14px; line-height: 1.7; }
.character-note-text { color: var(--muted); }
.character-scene-note-form { display: grid; grid-template-columns: minmax(160px, 240px) 1fr auto; align-items: end; gap: 16px; margin-top: 20px; }
.character-save-status { color: var(--muted); font-size: 13px; margin: 16px 0; min-height: 20px; }
.character-save-status:empty { display: none; }
.party-widget-list { overflow-y: auto; min-height: 0; display: flex; flex-direction: column; }
.party-entry { display: flex; align-items: center; gap: 12px; border: 0; border-radius: 0; border-bottom: 1px solid var(--line); padding: 16px 0; background: transparent; text-align: left; min-width: 0; width: 100%; color: var(--ink); }
.party-entry:hover { background: #292c30; }
.party-avatar { display: grid; place-items: center; width: 40px; height: 40px; flex: 0 0 40px; border-radius: 6px; background: #293432; color: #c4d8d0; font-size: 13px; font-weight: 600; }
.party-entry-body { display: grid; gap: 6px; min-width: 0; flex: 1; }
.party-entry-body > strong { font-size: 14px; overflow-wrap: anywhere; }
.party-entry-body > span { font-size: 12px; display: flex; gap: 12px; flex-wrap: wrap; font-weight: 400; }
.party-stat { color: var(--muted); white-space: nowrap; }
.party-status { font-weight: 400; font-size: 11px; color: #edc679; overflow-wrap: anywhere; }
.party-entry > .ui-icon { color: var(--muted); flex-shrink: 0; }
.party-empty { display: grid; place-content: center; justify-items: center; gap: 18px; min-height: 260px; color: var(--muted); }
.party-empty > .ui-icon { width: 32px; height: 32px; }
.party-empty strong { font-size: 14px; font-weight: 400; }
.party-strip { display: flex; gap: 24px; overflow-x: auto; padding: 0 0 16px; margin: 0 0 16px; border-bottom: 1px solid var(--line); }
.party-strip[hidden] { display: none; }
.party-strip .party-entry { flex: 0 0 250px; padding: 8px 0; border: 0; }
.party-widget-list > .party-entry:first-child,
.character-scene-notes > .character-scene-note:first-child { border-top: 1px solid var(--line); }
@media (min-width: 1181px) {
  body.has-party-strip:not(.is-management-page-open) .party-strip { position: fixed; top: var(--workspace-head-height); left: var(--sidebar-width); right: 0; height: 88px; z-index: 24; background: var(--bg); padding: 8px var(--page-padding); margin: 0; }
  body.has-party-strip .layout.is-workspace-page:not(.is-management-page) { top: calc(var(--workspace-head-height) + 88px); }
}
@media (max-width: 1100px) {
  .character-live-grid { grid-template-columns: 1fr; gap: 0; }
  .character-filters { grid-template-columns: minmax(140px, 1fr) 150px 100px; }
  #characterMatches { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  .character-form-grid, .character-form-grid.three, .character-form-grid.six, .character-stat-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .character-notes-grid, .character-scene-note-form { grid-template-columns: 1fr; gap: 20px; }
  .character-filters { grid-template-columns: 1fr 100px; }
  .character-filters > label:first-child { grid-column: 1 / -1; }
  .character-saves { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .character-hp-form { grid-template-columns: minmax(0, 1fr) 104px; }
  .character-hp-form button { grid-column: 1 / -1; }
  .character-private-label { display: none; }
  .character-session-fields { gap: 20px; }
  .party-entry { gap: 8px; }
  .party-entry-body > span { gap: 6px; }
}
