/* CSS Cog: charlist.css */
/* Updated: 23:50 UTC, 2026-04-14, Claude Opus 4.6 */
/* Chat: Bestiary Completion and Invite Integration */
/* Fix: max-height 2000px -> 50000px for 140+ bestiary entries */
.char-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1em;margin-top:1.5em;}
.char-card{background:var(--bg-dark);border:1px solid var(--border-thin);border-radius:var(--radius-md);padding:1.25em;cursor:pointer;transition:all 0.2s;box-shadow:var(--shadow-low);}
.char-card:hover{box-shadow:var(--shadow-med);border-color:var(--accent-blue);}
.char-card h3{font-size:1.1em;margin-bottom:0.3em;}.char-card .meta{color:var(--text-muted);font-size:0.9em;}
/* ============================================================
   CHARACTER LIST COLLAPSIBLES (GM only)
   ============================================================ */
.charlist-collapse{border:1px solid var(--border-thin);border-radius:var(--radius-sm);margin-bottom:0.75em;overflow:hidden;}
.charlist-collapse-header{display:flex;align-items:center;padding:0.6em 0.8em;cursor:pointer;font-family:var(--font-display);font-size:0.95em;font-weight:700;background:var(--bg-darkest);user-select:none;transition:background 0.15s;}
.charlist-collapse-header:hover{background:rgba(88,101,242,0.06);}
.charlist-count{font-weight:400;font-size:0.8em;color:var(--text-faint);margin-left:0.3em;}
.charlist-chevron{margin-left:auto;transition:transform 0.2s;font-size:0.75em;color:var(--text-faint);}
.charlist-collapse.open .charlist-chevron{transform:rotate(180deg);}
.charlist-collapse-body{max-height:0;overflow:hidden;transition:max-height 0.3s ease;}
.charlist-collapse.open .charlist-collapse-body{max-height:50000px;}
.charlist-collapse-body .char-grid{padding:0.5em 0.8em 0.8em;}
.char-type-tag{font-size:0.6em;font-weight:400;padding:0.15em 0.4em;border-radius:3px;vertical-align:middle;margin-left:0.3em;}
.char-type-tag.char-type-npc{background:rgba(240,178,50,0.15);color:var(--accent-amber);}
.char-type-tag.char-type-bestiary{background:rgba(237,66,69,0.15);color:var(--accent-red);}
.char-type-tag.char-type-clone{background:rgba(240,178,50,0.1);color:var(--accent-amber);border:1px dashed var(--accent-amber);}
/* Pregen Cards */
.pregen-card{position:relative;border:1px dashed var(--accent-blue)!important;opacity:0.85;}
.pregen-card:hover{opacity:1;}
.pregen-selected{opacity:1!important;border-color:var(--accent-blue)!important;background:rgba(88,101,242,0.06)!important;}
.pregen-badge{position:absolute;top:0.4em;right:0.4em;font-family:var(--font-code);font-size:0.55em;color:var(--accent-blue);background:rgba(88,101,242,0.1);border:1px solid rgba(88,101,242,0.3);border-radius:3px;padding:0.15em 0.4em;}
.pregen-actions{margin-top:0.4em;display:flex;gap:0.3em;justify-content:center;min-height:0;}
/* Read-Only per category */
.ro-badge{position:absolute;top:0.4em;right:0.4em;font-family:var(--font-code);font-size:0.55em;border-radius:3px;padding:0.15em 0.4em;}
.ro-badge-green{color:var(--accent-green);background:rgba(87,242,135,0.1);border:1px solid rgba(87,242,135,0.3);}
.ro-badge-amber{color:var(--accent-amber);background:rgba(240,178,50,0.1);border:1px solid rgba(240,178,50,0.3);}
.ro-badge-red{color:var(--accent-red);background:rgba(237,66,69,0.1);border:1px solid rgba(237,66,69,0.3);}
.ro-badge-blue{color:var(--accent-blue);background:rgba(88,101,242,0.1);border:1px solid rgba(88,101,242,0.3);}
/* Player Cards */
.player-card{position:relative;border-left:3px solid var(--accent-blue)!important;}
.player-owner-badge{position:absolute;top:0.4em;right:0.4em;font-family:var(--font-code);font-size:0.55em;color:var(--accent-blue);background:rgba(88,101,242,0.1);border:1px solid rgba(88,101,242,0.3);border-radius:3px;padding:0.15em 0.4em;}
.player-inner-collapse{margin:0.3em 0.5em;}
.player-inner-header{font-size:0.85em!important;padding:0.4em 0.6em!important;background:var(--bg-medium)!important;}
.player-viewing-tag{display:inline-flex;align-items:center;gap:0.3em;font-family:var(--font-code);font-size:0.7em;color:var(--accent-blue);background:rgba(88,101,242,0.1);border:1px solid rgba(88,101,242,0.3);border-radius:var(--radius-sm);padding:0.25em 0.6em;}
/* Sheet Actions Bar */
.sheet-actions{display:flex;gap:0.5em;align-items:center;}
.charlist-selects {
  display: flex;
  gap: 0.5em;
  flex-wrap: wrap;
  margin-bottom: 0.8em;
}
.charlist-selects .form-input { flex: 1; min-width: 180px; }
.charlist-search {
  margin-bottom: 0.5em;
  font-size: 0.85em;
}
.charlist-actions {
  display: flex;
  gap: 0.5em;
  flex-wrap: wrap;
  margin-bottom: 1em;
}
.char-type-npc { background: var(--accent-amber); color: #000; }
.char-type-bestiary { background: var(--accent-red); color: #fff; }
.npc-lib-card {
  border-left: 3px solid var(--accent-amber);
}
.npc-lib-bestiary {
  border-left: 3px solid var(--accent-red);
}
/* Category accent borders for fabula_sheets cards */
.char-card-pc{border-left:3px solid var(--accent-green);}
.char-card-npc{border-left:3px solid var(--accent-amber);}
.char-card-bestiary{border-left:3px solid var(--accent-red);}
.char-card-clone{border-left:3px solid var(--accent-amber);border-left-style:dashed;}
/* Bestiary species filter buttons */

/* ============================================================
   SPECIES SUB-GROUP COLLAPSES (nested inside Bestiary section)
   Uses its own class to avoid descendant-selector conflict
   with the parent charlist-collapse.
   ============================================================ */
.species-collapse {
  margin-bottom: 0.25em;
}
.species-collapse-header {
  display: flex;
  align-items: center;
  padding: 0.4em 0.6em;
  cursor: pointer;
  font-family: var(--font-display);
  font-size: 0.85em;
  font-weight: 600;
  background: var(--bg-darkest);
  border-radius: var(--radius-sm);
  user-select: none;
  transition: background 0.15s;
}
.species-collapse-header:hover {
  background: rgba(88,101,242,0.06);
}
.species-chevron {
  transition: transform 0.2s;
  font-size: 0.65em;
  color: var(--text-faint);
  margin-right: 0.4em;
}
.species-collapse.open .species-chevron {
  transform: rotate(180deg);
}
.species-collapse-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.species-collapse.open .species-collapse-body {
  max-height: 50000px;
}