
/* v45 UI consolidation and player-safe display polish */
:root{
  --v45-card: rgba(26,31,45,.82);
  --v45-card-2: rgba(32,38,55,.78);
  --v45-line: rgba(255,255,255,.12);
  --v45-soft: rgba(255,255,255,.065);
  --v45-blue: rgba(111,150,255,.24);
  --v45-gold: rgba(241,177,64,.22);
}
.topbar.compact-topbar{
  position:sticky;
  top:0;
  z-index:50;
  backdrop-filter:blur(14px);
  background:rgba(10,13,21,.88);
  border-bottom:1px solid var(--v45-line);
}
.v45-command-hub .section-head{align-items:center}
.v45-hub-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:12px;
}
.v45-hub-card{
  display:flex;
  flex-direction:column;
  gap:7px;
  min-height:86px;
  padding:15px;
  border-radius:18px;
  background:var(--v45-card-2);
  border:1px solid var(--v45-line);
  text-decoration:none;
  color:inherit;
  box-shadow:0 12px 30px rgba(0,0,0,.18);
}
.v45-hub-card:hover{transform:translateY(-1px);border-color:rgba(111,150,255,.45)}
.v45-hub-card strong{font-size:1.05rem}
.v45-hub-card span{opacity:.76;line-height:1.25}
.v45-hub-card.primary-hub{
  background:linear-gradient(135deg,rgba(111,150,255,.26),rgba(241,177,64,.13));
  border-color:rgba(111,150,255,.38);
}
.live-command-bar{
  position:sticky;
  top:74px;
  z-index:40;
  background:rgba(18,23,35,.92)!important;
  backdrop-filter:blur(12px);
}
.live-party-progress-pill{
  display:inline-flex;
  width:max-content;
  padding:7px 10px;
  border-radius:999px;
  background:var(--v45-gold);
  border:1px solid rgba(241,177,64,.3);
  margin-top:8px;
  font-weight:700;
}
.combat-wrap{
  grid-template-columns:minmax(250px,.75fr) minmax(520px,1.45fr) minmax(260px,.8fr)!important;
  gap:14px!important;
}
.combat-initiative-list .combat-turn{
  padding:9px!important;
  min-height:auto!important;
}
.compact-combatant-card{
  padding:12px!important;
  border-radius:16px!important;
}
.compact-combatant-card .dm-stat-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.compact-combatant-card .dm-actions{
  gap:7px!important;
  align-items:center;
}
.compact-combatant-card .dm-actions form{
  margin:0!important;
}
.compact-combatant-card .dm-actions form:not(.compact-form){
  opacity:.8;
}
.dm-notes-collapsible{
  margin:10px 0;
  border:1px solid rgba(255,255,255,.08);
  border-radius:13px;
  background:rgba(255,255,255,.035);
  overflow:hidden;
}
.dm-notes-collapsible summary{
  cursor:pointer;
  padding:9px 11px;
  font-weight:800;
  color:#d7def6;
}
.dm-notes-collapsible .dm-notes{
  border-top:1px solid rgba(255,255,255,.08);
  padding:10px 11px;
  max-height:260px;
  overflow:auto;
}
.inline-form.compact-form input[type=number],
.inline-form.compact-form select{
  min-height:34px!important;
}
.initiative-modal-backdrop{
  position:fixed!important;
  inset:0!important;
  z-index:99998!important;
  background:rgba(0,0,0,.72)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:24px!important;
}
.initiative-modal{
  width:min(820px,96vw)!important;
  max-height:90vh!important;
  overflow:auto!important;
  border-radius:24px!important;
  background:rgba(17,22,34,.98)!important;
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:0 30px 110px rgba(0,0,0,.62)!important;
  padding:22px!important;
}
.initiative-entry{
  display:grid!important;
  grid-template-columns:1fr 150px!important;
  gap:12px!important;
  align-items:center!important;
  background:rgba(255,255,255,.05)!important;
  border:1px solid rgba(255,255,255,.08)!important;
  border-radius:14px!important;
  padding:12px!important;
  margin-bottom:10px!important;
}
.initiative-entry input{text-align:center;font-size:1.15rem}
.initiative-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
.map-side .mini-turn small,
.tv42-turn p{color:rgba(236,241,255,.82)}
.map-party-level-card,
.tv42 .party-level-badge{
  background:rgba(241,177,64,.12)!important;
  border-color:rgba(241,177,64,.22)!important;
}
.tv42-party-card p strong,
.map-party-level-card strong{color:#f8d78b}
.tv42-current-turn,
.tv42-hero{
  border-color:rgba(111,150,255,.28)!important;
}
.tv42-party-card{
  min-height:92px!important;
}
.tv42-turn{
  min-height:64px!important;
}
.tv42-turn .npc-private-hidden,
.mini-turn .npc-private-hidden{
  opacity:.8;
}
@media(max-width:1200px){
  .combat-wrap{grid-template-columns:1fr!important}
  .live-command-bar{top:0}
}
@media(max-width:720px){
  .initiative-entry{grid-template-columns:1fr!important}
  .v45-hub-grid{grid-template-columns:1fr}
}
