/* Bootstrap-first: keep overrides minimal and targeted */

.lk-body {
  background:
    radial-gradient(1200px 700px at 10% 0%, rgba(13,110,253,.18), transparent 55%),
    radial-gradient(900px 600px at 90% 0%, rgba(32,201,151,.14), transparent 55%),
    linear-gradient(180deg, var(--bs-body-bg), var(--bs-body-bg));
}

.lk-pill {
  font-weight: 600;
  padding: .5rem .6rem;
}

/* JS-rendered editor cards should have consistent spacing */
.lk-editor > .card,
.lk-editor > div.card {
  margin-bottom: .75rem;
}

/* Log area */
.lk-log {
  height: 520px;
  overflow: auto;
  white-space: pre-wrap;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px;
  line-height: 1.35;
  padding: .75rem;
  border: 1px solid var(--bs-border-color);
  border-radius: .75rem;
  background: var(--bs-tertiary-bg);
}

/* Textarea in import modal */
.lk-textarea {
  min-height: 220px;
  resize: vertical;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px;
}

.lk-hint {
  padding: .75rem;
  border-radius: .75rem;
  border: 1px dashed var(--bs-border-color);
  background: var(--bs-tertiary-bg);
}

/* Smaller pills */
.nav-pills-sm .nav-link {
  padding: .35rem .6rem;
  font-size: .875rem;
}

/* Slightly sharper cards */
.card { border-radius: 1rem; }
.card-header { border-top-left-radius: 1rem !important; border-top-right-radius: 1rem !important; }

/* Mobile tweaks */
@media (max-width: 575.98px) {
  .lk-log { height: 360px; }
}

/* -----------------------------
   Party management: card grid
-------------------------------- */

.lk-party-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 1rem;
  align-items: start;
}

/* Treat each direct child as a "character card" */
#partyEditor.lk-party-grid > *{
  border: 1px solid var(--lk-border);
  border-radius: var(--lk-radius);
  background: var(--bs-body-bg);
  box-shadow: var(--lk-shadow-sm);
  overflow: clip;
  padding: 1rem;
}

/* Headings inside a character card */
#partyEditor.lk-party-grid > * :is(h1,h2,h3,h4,h5){
  margin: 0 0 .75rem 0;
  line-height: 1.2;
}

/* Reduce random spacing patterns from legacy markup */
#partyEditor.lk-party-grid > * :is(.row, .form-group, .input-group, .btn-group){
  margin-top: 0;
}

/* Normalize grid gutters if JS uses .row/.col-* patterns */
#partyEditor.lk-party-grid .row{
  --bs-gutter-x: .75rem;
  --bs-gutter-y: .75rem;
}

/* Make labels look consistent and “sheet-like” */
#partyEditor.lk-party-grid label{
  font-size: .75rem;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: var(--bs-secondary-color);
  margin-bottom: .25rem;
}

/* Inputs/selects: consistent sizing */
#partyEditor.lk-party-grid :is(input[type="text"], input[type="number"], select, textarea){
  border-radius: .7rem;
}

/* “Section” styling for common block containers (stats/inventory/etc.) */
#partyEditor.lk-party-grid :is(
  .stats, .statblock, .character-stats,
  .inventory, .inv, .equipment,
  [class*="stats"], [class*="inventory"],
  [id*="stats"], [id*="inventory"]
){
  margin-top: .85rem;
  padding-top: .85rem;
  border-top: 1px dashed color-mix(in oklab, var(--bs-border-color) 60%, transparent);
}

/* Inventory buttons: flow nicely instead of looking scattered */
#partyEditor.lk-party-grid :is(
  .inventory, .inv, .equipment,
  [class*="inventory"], [id*="inventory"]
){
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-items: center;
}

/* Any obvious "button rows" align cleanly */
#partyEditor.lk-party-grid .text-right,
#partyEditor.lk-party-grid .actions,
#partyEditor.lk-party-grid [class*="actions"],
#partyEditor.lk-party-grid [class*="controls"]{
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  justify-content: flex-end;
  align-items: center;
}

/* Small buttons look more intentional */
#partyEditor.lk-party-grid .btn{
  border-radius: .8rem;
}

/* If JS outputs tables inside a character card, keep them compact */
#partyEditor.lk-party-grid table{
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--lk-border);
  border-radius: var(--lk-radius-sm);
  overflow: hidden;
  margin-top: .75rem;
}
#partyEditor.lk-party-grid th,
#partyEditor.lk-party-grid td{
  padding: .45rem .55rem;
  border-bottom: 1px solid var(--lk-border);
  vertical-align: middle;
}
#partyEditor.lk-party-grid tr:last-child td{ border-bottom: none; }
