* { box-sizing: border-box; }
:root {
  --bg: #111210;
  --panel: #191a17;
  --panel-2: #22231f;
  --line: #3b3b35;
  --text: #f4f0e6;
  --muted: #a7a397;
  --gold: #9d8351;
  --gold-light: #c0a36a;
  --paper: #f4f0e7;
  --ink: #10110f;
  --paper-line: #8d897f;
  --danger: #b85d56;
}
html, body { margin: 0; min-height: 100%; background: var(--bg); color: var(--text); font-family: Inter, system-ui, sans-serif; }
body { padding-bottom: env(safe-area-inset-bottom); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.app-header {
  min-height: 82px; display: flex; align-items: center; justify-content: space-between;
  padding: 16px 22px; border-bottom: 1px solid var(--line); position: sticky; top: 0;
  background: rgba(17,18,16,.96); backdrop-filter: blur(12px); z-index: 30;
}
.eyebrow, .kicker { color: var(--gold-light); font-family: "Barlow Condensed", sans-serif; font-weight: 700; letter-spacing: .16em; font-size: 12px; }
.app-header h1 { margin: 2px 0 0; font-family: "Barlow Condensed", sans-serif; text-transform: uppercase; font-size: 28px; line-height: 1; }
.header-actions { display: flex; gap: 8px; }
button, .file-button {
  border: 1px solid var(--line); border-radius: 8px; padding: 10px 14px; color: var(--text);
  background: var(--panel-2); font-weight: 700;
}
button.primary { background: var(--gold); color: #111; border-color: var(--gold); }
button.ghost, .file-button { background: transparent; }
button.small { padding: 8px 10px; font-size: 13px; }
button.danger { color: #f4b4ae; border-color: #6d3632; background: transparent; }
.workspace {
  display: grid; grid-template-columns: minmax(380px, 510px) minmax(620px, 1fr) 260px;
  min-height: calc(100vh - 82px);
}
.panel { padding: 22px; border-right: 1px solid var(--line); overflow: auto; }
.preview-panel { background: #0d0e0c; }
.panel-heading, .section-editor-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.panel-heading h2, .section-editor-heading h2 { margin: 2px 0 0; font-family: "Barlow Condensed", sans-serif; text-transform: uppercase; font-size: 26px; }
.form-grid { margin-top: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.field { display: grid; gap: 7px; }
.field.span-2 { grid-column: span 2; }
.field > span { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); font-weight: 700; }
input, select, textarea {
  width: 100%; border: 1px solid var(--line); color: var(--text); background: #121310;
  border-radius: 8px; padding: 11px 12px; outline: none;
}
input:focus, select:focus, textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 2px rgba(157,131,81,.16); }
textarea { min-height: 100px; resize: vertical; line-height: 1.45; }
.suffix-field { display: flex; align-items: center; border: 1px solid var(--line); background: #121310; border-radius: 8px; }
.suffix-field input { border: 0; background: transparent; box-shadow: none !important; }
.suffix-field span { padding-right: 12px; color: var(--muted); }
.section-editor { margin-top: 30px; }
.editor-card {
  margin-top: 12px; padding: 14px; border: 1px solid var(--line); background: var(--panel-2);
  border-radius: 12px;
}
.editor-card-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.editor-card-top strong { font-family: "Barlow Condensed", sans-serif; font-size: 20px; text-transform: uppercase; }
.editor-card-actions { display: flex; gap: 6px; }
.editor-card-actions button { padding: 6px 9px; min-width: 34px; }
.weapon-fields { display: grid; grid-template-columns: 1.3fr .8fr .8fr .8fr; gap: 10px; }
.ability-fields { display: grid; grid-template-columns: 1.4fr .8fr .6fr; gap: 10px; }
.ability-fields .text-field { grid-column: 1 / -1; }
.editor-footer-actions { display: flex; gap: 8px; flex-wrap: wrap; margin: 28px 0 10px; }
.file-button { display: inline-flex; align-items: center; cursor: pointer; }
.preview-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.preview-note, .muted { color: var(--muted); font-size: 13px; margin-top: 3px; }
.zoom-controls { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 13px; }
.icon-button { width: 34px; height: 34px; padding: 0; }
.card-stage { display: flex; justify-content: center; align-items: flex-start; overflow: auto; padding: 10px 6px 40px; }
.stat-card {
  width: 900px; min-height: 0; background:
  radial-gradient(circle at 20% 10%, rgba(255,255,255,.75), transparent 28%),
  linear-gradient(100deg, rgba(157,131,81,.035), transparent 30%, rgba(157,131,81,.02) 70%, transparent),
  var(--paper);
  color: var(--ink); position: relative; padding: 38px 42px 44px;
  border: 2px solid #353631; outline: 1px solid #9e927a; outline-offset: -9px;
  transform-origin: top center; box-shadow: 0 22px 70px rgba(0,0,0,.4);
  font-family: Inter, Arial, sans-serif;
}
.stat-card::before {
  content: ""; position: absolute; inset: 15px; border: 1px solid rgba(49,49,44,.7); pointer-events: none;
}
.corner { position: absolute; width: 26px; height: 26px; z-index: 2; }
.corner::before, .corner::after { content:""; position:absolute; background:#33332f; }
.corner.tl { left:8px; top:8px; } .corner.tr { right:8px; top:8px; transform:rotate(90deg); }
.corner.br { right:8px; bottom:8px; transform:rotate(180deg); } .corner.bl { left:8px; bottom:8px; transform:rotate(270deg); }
.corner::before { width:24px; height:2px; left:0; top:6px; transform:rotate(45deg); transform-origin:left center; }
.corner::after { width:2px; height:24px; left:6px; top:0; transform:rotate(-45deg); transform-origin:center top; }
.card-header { display: flex; justify-content: space-between; gap: 28px; align-items: flex-start; padding: 0 0 23px; border-bottom: 1px solid var(--paper-line); }
.card-header h2 {
  font-family: "Barlow Condensed", Impact, sans-serif; font-weight: 800; font-size: 52px;
  letter-spacing: .01em; line-height: .92; margin: 0; text-transform: uppercase;
}
.points {
  font-family: "Barlow Condensed", Impact, sans-serif; font-size: 30px; font-weight: 700;
  color: #8b7447; white-space: nowrap; letter-spacing: .04em; margin-top: 8px;
}
.stats-band, .threshold-band {
  margin-top: 12px; border: 1px solid var(--paper-line); clip-path: polygon(2% 0,98% 0,100% 18%,100% 82%,98% 100%,2% 100%,0 82%,0 18%);
  display: grid; background: rgba(255,255,255,.12);
}
.stats-band { grid-template-columns: repeat(4, 1fr); padding: 14px 0; }
.stat { text-align: center; border-right: 1px solid var(--paper-line); }
.stat:last-child { border-right: 0; }
.stat span, .threshold-band span {
  display:block; font-family:"Barlow Condensed", sans-serif; font-weight:700; font-size:20px; letter-spacing:.06em;
}
.stat strong { display:block; font-family:"Barlow Condensed", sans-serif; font-size:38px; line-height:1; margin-top:4px; }
.threshold-band { grid-template-columns: 1fr 1fr; padding: 10px 0; }
.threshold-band > div { text-align:center; border-right:1px solid var(--paper-line); }
.threshold-band > div:last-child { border-right:0; }
.threshold-band strong { display:block; font-family:"Barlow Condensed", sans-serif; font-size:28px; line-height:1; margin-top:2px; }
.card-section { margin-top: 14px; }
.section-title { display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.section-title span { font-family:"Barlow Condensed", sans-serif; font-weight:800; font-size:26px; }
.section-title i { flex:1; height:1px; background:#8a7956; position:relative; }
.section-title i::before { content:""; position:absolute; width:10px; height:10px; border:1px solid #8a7956; transform:rotate(45deg); left:47%; top:-5px; background:var(--paper); }
.weapon-list { display:grid; gap:10px; }
.weapon-card {
  border:1px solid var(--paper-line); padding:8px 14px 9px;
  clip-path: polygon(1.5% 0,98.5% 0,100% 15%,100% 85%,98.5% 100%,1.5% 100%,0 85%,0 15%);
}
.weapon-name {
  font-family:"Barlow Condensed", sans-serif; font-size:23px; font-weight:800; text-transform:uppercase; margin-bottom:2px;
}
.weapon-stats { display:grid; grid-template-columns:repeat(3,1fr); }
.weapon-stat { text-align:center; border-right:1px solid var(--paper-line); }
.weapon-stat:last-child { border-right:0; }
.weapon-stat span {
  display:block; color:#8b7447; font-family:"Barlow Condensed", sans-serif; font-weight:700; font-size:16px; letter-spacing:.05em;
}
.weapon-stat strong { display:block; font-family:"Barlow Condensed", sans-serif; font-size:20px; margin-top:1px; }
.ability { padding: 0 2px 8px; margin-bottom: 7px; border-bottom: 1px solid #aaa59a; }
.ability:last-child { border-bottom:0; margin-bottom:0; }
.ability-heading { display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; margin-bottom:3px; }
.ability-heading strong { font-family:"Barlow Condensed", sans-serif; font-size:20px; font-weight:800; text-transform:uppercase; }
.ability-type { color:#8b7447; font-style:italic; font-weight:600; font-size:14px; }
.ability-text { font-size:14px; line-height:1.34; white-space:pre-wrap; }
.card-mark {
  position:absolute; bottom:12px; left:50%; transform:translateX(-50%);
  font-family:"Barlow Condensed", sans-serif; font-weight:800; font-size:30px; color:#8b7447;
  border-top:3px solid #8b7447; padding:0 8px; line-height:1;
}
.saved-list { display:grid; gap:10px; margin-top:16px; }
.saved-item { border:1px solid var(--line); background:var(--panel-2); border-radius:10px; padding:12px; }
.saved-item strong { display:block; font-family:"Barlow Condensed", sans-serif; font-size:20px; text-transform:uppercase; }
.saved-item small { color:var(--muted); display:block; margin:3px 0 10px; }
.saved-actions { display:flex; gap:6px; flex-wrap:wrap; }
.saved-actions button { padding:6px 9px; font-size:12px; }
.mobile-tabs { display:none; }
.toast {
  position:fixed; left:50%; bottom:24px; transform:translate(-50%, 20px); opacity:0;
  background:#f4f0e7; color:#111; padding:10px 14px; border-radius:8px; font-weight:700;
  pointer-events:none; transition:.2s; z-index:100;
}
.toast.show { opacity:1; transform:translate(-50%, 0); }

@media (max-width: 1240px) {
  .workspace { grid-template-columns: 420px 1fr; }
  .library-panel { display:none; }
}
@media (max-width: 820px) {
  .app-header { position:sticky; min-height:70px; padding:12px 14px; }
  .app-header h1 { font-size:22px; }
  .header-actions .ghost { display:none; }
  .header-actions button { padding:9px 11px; font-size:12px; }
  .mobile-tabs {
    display:grid; grid-template-columns:repeat(3,1fr); position:sticky; top:70px; z-index:25;
    background:#111210; border-bottom:1px solid var(--line);
  }
  .mobile-tabs .tab { border:0; border-radius:0; background:transparent; color:var(--muted); padding:12px 6px; }
  .mobile-tabs .tab.active { color:var(--text); box-shadow: inset 0 -2px 0 var(--gold); }
  .workspace { display:block; min-height:auto; }
  .panel { display:none; border-right:0; padding:16px 14px; overflow:visible; }
  .panel.active { display:block; }
  .preview-panel.active { min-height:calc(100vh - 116px); }
  .library-panel.active { display:block; }
  .weapon-fields { grid-template-columns:1fr 1fr; }
  .ability-fields { grid-template-columns:1fr 1fr; }
  .ability-fields .text-field { grid-column:1/-1; }
  .card-stage { justify-content:flex-start; }
  .stat-card { transform-origin:top left; }
}
@media print {
  body { background:white; }
  .app-header, .mobile-tabs, .editor-panel, .library-panel, .preview-toolbar { display:none !important; }
  .workspace, .preview-panel, .card-stage { display:block !important; padding:0 !important; margin:0 !important; background:white !important; }
  .stat-card { transform:none !important; box-shadow:none; margin:0 auto; }
}


/* v0.3 adaptive card layout */
.abilities-section { min-height: 0; }
.ability-list { min-height: 0; }
.stat-card.export-mode { width: 900px !important; min-height: 1200px; }
.stat-card.export-mode .ability-text { font-size: 14px; line-height: 1.34; }
.stat-card.export-mode .card-header h2 { font-size: 52px; }
.stat-card.export-mode .weapon-name { font-size: 23px; }
.stat-card.export-mode .weapon-stat strong { font-size: 20px; }

/* iOS-friendly PNG export sheet */
.export-modal { display: none; position: fixed; inset: 0; z-index: 200; }
.export-modal.open { display: block; }
.export-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.75); backdrop-filter: blur(8px); }
.export-sheet {
  position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
  width: min(680px, 100%); max-height: 92vh; overflow: auto;
  background: #191a17; border: 1px solid var(--line); border-radius: 18px 18px 0 0;
  padding: 18px 18px calc(18px + env(safe-area-inset-bottom));
}
.export-sheet-head { display: flex; justify-content: space-between; align-items: center; }
.export-sheet-head h2 { margin: 2px 0 0; font-family: "Barlow Condensed", sans-serif; text-transform: uppercase; font-size: 26px; }
.export-help strong { color: var(--text); }
.export-image-wrap {
  margin: 14px 0; background: #0d0e0c; border-radius: 10px; padding: 10px;
  display: flex; justify-content: center;
}
.export-image-wrap img { display: block; width: min(100%, 430px); height: auto; box-shadow: 0 12px 40px rgba(0,0,0,.35); }
.export-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.download-link {
  display: inline-flex; justify-content: center; align-items: center;
  text-decoration: none; border: 1px solid var(--line); border-radius: 8px;
  padding: 10px 14px; color: var(--text); font-weight: 700;
}
@media (max-width: 820px) {
  .export-actions { grid-template-columns: 1fr; }
}


@media (max-width: 820px) {
  .preview-panel { padding: 14px 10px 24px; }
  .preview-toolbar { margin-bottom: 10px; padding: 0 4px; }
  .zoom-controls { display: none; }
  .card-stage {
    width: 100%;
    padding: 0 0 28px;
    overflow: visible;
    display: block;
  }
  .stat-card {
    width: 100%;
    min-height: 0;
    padding: 24px 18px 32px;
    transform: none !important;
    margin: 0;
    box-shadow: 0 14px 38px rgba(0,0,0,.35);
  }
  .stat-card::before { inset: 10px; }
  .corner { transform: scale(.8); transform-origin: center; }
  .corner.tr { transform: rotate(90deg) scale(.8); }
  .corner.br { transform: rotate(180deg) scale(.8); }
  .corner.bl { transform: rotate(270deg) scale(.8); }

  .card-header { gap: 10px; padding-bottom: 14px; align-items: flex-start; }
  .card-header h2 {
    font-size: clamp(38px, 12vw, 54px);
    line-height: .9;
    max-width: 72%;
  }
  .points {
    font-size: clamp(19px, 6vw, 28px);
    margin-top: 4px;
  }

  .stats-band { margin-top: 10px; padding: 11px 0; }
  .stat span, .threshold-band span { font-size: 14px; }
  .stat strong { font-size: 30px; margin-top: 3px; }
  .threshold-band { margin-top: 9px; padding: 8px 0; }
  .threshold-band strong { font-size: 22px; }

  .card-section { margin-top: 13px; }
  .section-title { margin-bottom: 7px; gap: 8px; }
  .section-title span { font-size: 23px; }

  .weapon-list { gap: 8px; }
  .weapon-card { padding: 8px 10px 9px; }
  .weapon-name { font-size: 21px; margin-bottom: 3px; }
  .weapon-stat span { font-size: 12px; }
  .weapon-stat strong { font-size: 18px; }

  .ability { padding-bottom: 8px; margin-bottom: 7px; }
  .ability-heading { gap: 6px; margin-bottom: 3px; }
  .ability-heading strong { font-size: 18px; }
  .ability-type { font-size: 12px; }
  .ability-text { font-size: 13.2px; line-height: 1.32; }

  .card-mark { font-size: 24px; bottom: 8px; }
}


/* =========================================================
   v0.4 — Daggerheart-inspired interface polish
   ========================================================= */

:root {
  --bg: #12120f;
  --bg-soft: #181812;
  --panel: rgba(30, 29, 23, .92);
  --panel-2: rgba(39, 37, 29, .92);
  --panel-hover: rgba(48, 45, 35, .96);
  --line: rgba(214, 196, 154, .16);
  --line-strong: rgba(214, 196, 154, .28);
  --text: #f6f0e2;
  --muted: #b8ae99;
  --gold: #b49253;
  --gold-light: #d5bd83;
  --gold-deep: #86682f;
  --shadow: rgba(0,0,0,.35);
}

html { background: var(--bg); }
body {
  background:
    radial-gradient(circle at 18% -10%, rgba(180,146,83,.11), transparent 31rem),
    radial-gradient(circle at 90% 26%, rgba(123,95,51,.08), transparent 28rem),
    linear-gradient(180deg, #13130f 0%, #10110e 100%);
  position: relative;
  overflow-x: hidden;
}

.app-glow {
  position: fixed;
  pointer-events: none;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  filter: blur(90px);
  opacity: .09;
  z-index: 0;
}
.glow-one { background: #d2ae68; top: -130px; left: -160px; }
.glow-two { background: #7f6539; right: -170px; top: 38vh; }

.app-header, .mobile-tabs, .workspace, .toast, .export-modal { position: relative; z-index: 2; }

.glass-shell {
  background: rgba(20,20,16,.78);
  backdrop-filter: blur(18px) saturate(115%);
  -webkit-backdrop-filter: blur(18px) saturate(115%);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 8px 30px rgba(0,0,0,.16);
}

.app-header {
  transition: background .25s ease, border-color .25s ease, box-shadow .25s ease;
}

button, .file-button, .download-link {
  border-color: var(--line);
  border-radius: 12px;
  transition:
    transform .16s ease,
    background .18s ease,
    border-color .18s ease,
    box-shadow .18s ease,
    color .18s ease;
}

button:hover, .file-button:hover, .download-link:hover {
  border-color: var(--line-strong);
  background: var(--panel-hover);
}
button:active, .file-button:active, .download-link:active {
  transform: scale(.975);
}

button.primary {
  background: linear-gradient(180deg, #c09d5d 0%, #a88449 100%);
  border-color: rgba(239,219,171,.18);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.15),
    0 8px 22px rgba(123,90,36,.18);
}
button.primary:hover {
  background: linear-gradient(180deg, #caa766 0%, #af8b4e 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.18),
    0 10px 28px rgba(123,90,36,.24);
}

.panel {
  background: transparent;
}
.editor-panel, .library-panel {
  background: linear-gradient(180deg, rgba(27,27,22,.76), rgba(20,20,17,.72));
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.preview-panel {
  background:
    radial-gradient(circle at 50% 10%, rgba(181,146,83,.08), transparent 30rem),
    linear-gradient(180deg, rgba(14,15,12,.62), rgba(11,12,10,.88));
}

input, select, textarea {
  background: rgba(15,15,12,.78);
  border-color: var(--line);
  border-radius: 11px;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
}
input:hover, select:hover, textarea:hover { background: rgba(20,20,16,.88); }
input:focus, select:focus, textarea:focus {
  border-color: rgba(201,167,99,.72);
  background: rgba(20,20,16,.96);
  box-shadow:
    0 0 0 3px rgba(180,146,83,.11),
    0 6px 20px rgba(0,0,0,.13);
}

.editor-card, .saved-item {
  background:
    linear-gradient(180deg, rgba(43,41,32,.88), rgba(32,31,25,.88));
  border-color: var(--line);
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(0,0,0,.11);
  transition: border-color .18s ease, transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.editor-card:hover, .saved-item:hover {
  border-color: var(--line-strong);
  background:
    linear-gradient(180deg, rgba(47,45,35,.94), rgba(35,34,27,.94));
  box-shadow: 0 14px 32px rgba(0,0,0,.15);
}

.mobile-tabs {
  background: rgba(18,18,15,.86);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.mobile-tabs .tab {
  position: relative;
  transition: color .2s ease, background .2s ease, transform .15s ease;
}
.mobile-tabs .tab::after {
  content: "";
  position: absolute;
  left: 22%;
  right: 22%;
  bottom: 0;
  height: 2px;
  border-radius: 999px;
  background: var(--gold-light);
  transform: scaleX(0);
  transition: transform .24s cubic-bezier(.2,.75,.25,1);
}
.mobile-tabs .tab.active {
  box-shadow: none;
}
.mobile-tabs .tab.active::after { transform: scaleX(1); }

.panel {
  opacity: 1;
}
@media (max-width: 820px) {
  .panel.active {
    animation: panelIn .28s cubic-bezier(.2,.78,.25,1);
  }
}
@keyframes panelIn {
  from { opacity: 0; transform: translateY(7px); }
  to { opacity: 1; transform: translateY(0); }
}

.preview-toolbar {
  padding: 4px 3px 10px;
}
.card-stage {
  border-radius: 18px;
  transition: background .25s ease;
}
.stat-card {
  transition: box-shadow .25s ease, transform .25s ease;
}
@media (min-width: 821px) {
  .stat-card:hover {
    box-shadow: 0 28px 80px rgba(0,0,0,.48);
  }
}

.section-editor {
  animation: sectionReveal .32s ease both;
}
@keyframes sectionReveal {
  from { opacity: .75; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

.toast {
  background: rgba(246,240,226,.96);
  box-shadow: 0 12px 36px rgba(0,0,0,.26);
  border: 1px solid rgba(255,255,255,.45);
}

.export-backdrop {
  background: rgba(8,8,7,.76);
}
.export-sheet {
  background:
    linear-gradient(180deg, rgba(36,35,28,.98), rgba(22,22,18,.99));
  border-color: var(--line-strong);
  box-shadow: 0 -22px 70px rgba(0,0,0,.38);
}
.export-image-wrap {
  background:
    radial-gradient(circle at 50% 0%, rgba(180,146,83,.09), transparent 28rem),
    #0f100d;
  border: 1px solid var(--line);
}

/* Mobile spatial polish */
@media (max-width: 820px) {
  .app-header {
    padding: 13px 15px;
    min-height: 72px;
  }
  .app-header h1 { letter-spacing: .015em; }
  .mobile-tabs { top: 72px; }
  .panel { padding: 18px 15px 24px; }
  .form-grid { gap: 11px; }
  .editor-card { padding: 15px; }
  .section-editor { margin-top: 26px; }
  .card-stage {
    background:
      radial-gradient(circle at 50% 0%, rgba(180,146,83,.075), transparent 20rem);
  }
}

/* Respect accessibility motion settings */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}


/* =========================================================
   v0.5 — restore mobile tab workflow + robust export renderer
   ========================================================= */

@media (max-width: 820px) {
  .mobile-tabs {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    position: sticky;
    top: 72px;
    z-index: 28;
    width: 100%;
    min-height: 54px;
    background: rgba(17,17,14,.96);
    border-bottom: 1px solid var(--line);
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
  }

  .mobile-tabs .tab {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 54px;
    padding: 0 8px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #9f9888;
    font-size: 16px;
    font-weight: 700;
  }

  .mobile-tabs .tab.active {
    color: var(--text);
  }

  .workspace {
    display: block !important;
  }

  .workspace > .panel {
    display: none !important;
  }

  .workspace > .panel.active {
    display: block !important;
  }

  .editor-panel.active,
  .preview-panel.active,
  .library-panel.active {
    animation: panelIn .24s cubic-bezier(.2,.78,.25,1);
  }
}

/* Export is rendered in its own offscreen surface so hidden mobile tabs
   can never collapse the card to zero width. */
.export-render-stage {
  position: fixed;
  left: -20000px;
  top: 0;
  width: 720px;
  height: auto;
  pointer-events: none;
  opacity: 1;
  z-index: -9999;
  overflow: visible;
}

.export-render-stage .stat-card {
  width: 720px !important;
  min-height: 0 !important;
  height: auto !important;
  transform: none !important;
  transform-origin: top left !important;
  margin: 0 !important;
  padding: 30px 30px 38px !important;
  display: block !important;
}

.export-render-stage .stat-card::before {
  inset: 12px !important;
}

.export-render-stage .card-header {
  gap: 18px !important;
  padding-bottom: 18px !important;
}

.export-render-stage .card-header h2 {
  font-size: 46px !important;
  line-height: .92 !important;
  max-width: none !important;
}

.export-render-stage .points {
  font-size: 25px !important;
  margin-top: 5px !important;
}

.export-render-stage .stats-band {
  padding: 13px 0 !important;
}

.export-render-stage .stat span,
.export-render-stage .threshold-band span {
  font-size: 17px !important;
}

.export-render-stage .stat strong {
  font-size: 34px !important;
}

.export-render-stage .threshold-band strong {
  font-size: 24px !important;
}

.export-render-stage .section-title span {
  font-size: 25px !important;
}

.export-render-stage .weapon-name {
  font-size: 22px !important;
}

.export-render-stage .weapon-stat span {
  font-size: 13px !important;
}

.export-render-stage .weapon-stat strong {
  font-size: 18px !important;
}

.export-render-stage .ability-heading strong {
  font-size: 19px !important;
}

.export-render-stage .ability-type {
  font-size: 12px !important;
}

.export-render-stage .ability-text {
  font-size: 13px !important;
  line-height: 1.3 !important;
}

.export-render-stage .card-mark {
  font-size: 24px !important;
}


/* =========================================================
   v0.6 — physical card proportions + faction presets
   ========================================================= */

/* 2.5 x 3.5 inch poker-card ratio = 5:7 */
.stat-card {
  aspect-ratio: 5 / 7;
  width: 700px;
  min-height: auto;
  height: auto;
  overflow: hidden;
  box-shadow: none;
  background:
    radial-gradient(circle at 20% 10%, rgba(255,255,255,.55), transparent 26%),
    linear-gradient(100deg, rgba(157,131,81,.025), transparent 30%, rgba(157,131,81,.015) 70%, transparent),
    var(--paper);
}

/* Remove the odd heavy shadow / faux depth on the card itself */
.stat-card:hover {
  box-shadow: none !important;
}

/* Cleaner centred section ornaments */
.section-title i {
  position: relative;
  background: #8a7956;
}
.section-title i::before {
  left: 50% !important;
  transform: translate(-50%, -50%) rotate(45deg) !important;
  top: 50% !important;
  width: 9px;
  height: 9px;
}

/* Ensure the exported card is still true 5:7 */
.export-render-stage {
  width: 700px !important;
}
.export-render-stage .stat-card {
  width: 700px !important;
  aspect-ratio: 5 / 7 !important;
  height: 980px !important;
  min-height: 980px !important;
  max-height: 980px !important;
  overflow: hidden !important;
  padding: 28px 28px 36px !important;
}

/* Preset controls */
.faction-grid {
  margin-top: 18px;
  margin-bottom: 10px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(43,41,32,.72), rgba(31,30,24,.7));
}
.preset-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
}
.preset-row button {
  min-width: 74px;
}

/* Card should use available width on mobile while keeping 5:7 */
@media (max-width: 820px) {
  .stat-card {
    width: 100% !important;
    aspect-ratio: 5 / 7;
    height: auto;
    min-height: 0;
    overflow: hidden;
    padding: 20px 16px 26px;
  }

  .card-header h2 {
    font-size: clamp(32px, 10.8vw, 46px);
    max-width: 70%;
  }

  .points {
    font-size: clamp(17px, 5.4vw, 24px);
  }

  .stats-band {
    padding: 8px 0;
  }

  .stat span, .threshold-band span {
    font-size: 12px;
  }

  .stat strong {
    font-size: 26px;
  }

  .threshold-band strong {
    font-size: 20px;
  }

  .card-section {
    margin-top: 9px;
  }

  .section-title {
    margin-bottom: 5px;
  }

  .section-title span {
    font-size: 20px;
  }

  .weapon-list {
    gap: 6px;
  }

  .weapon-card {
    padding: 6px 8px 7px;
  }

  .weapon-name {
    font-size: 18px;
  }

  .weapon-stat span {
    font-size: 10px;
  }

  .weapon-stat strong {
    font-size: 15px;
  }

  .ability {
    padding-bottom: 5px;
    margin-bottom: 4px;
  }

  .ability-heading strong {
    font-size: 15px;
  }

  .ability-type {
    font-size: 10px;
  }

  .ability-text {
    font-size: 10.8px;
    line-height: 1.18;
  }
}


/* v0.6.1 faction hierarchy */
.faction-grid > .field:not(.span-2) {
  min-width: 0;
}
#subfaction:disabled {
  opacity: .6;
}


/* v0.7 model presets */
.model-preset-field {
  padding-top: 4px;
  padding-bottom: 4px;
}
.model-preset-field .preset-row {
  grid-template-columns: 1fr auto;
}
.model-preset-field button {
  min-width: 82px;
}

/* ===== v0.7.25 — Midnight Indigo companion theme ===== */
:root{
  --bg:#080a2a; --panel:#10143c; --panel-2:#171b4b; --panel-3:#20255a;
  --text:#f5f4ff; --muted:#a8abc8; --line:#2d3266; --line-strong:#41488b;
  --gold:#6d70ff; --gold-light:#8a8cff; --danger:#d85f77;
}
body{background:linear-gradient(135deg,#080a2a 0%,#0c1034 50%,#090c2b 100%);color:var(--text)}
.app-glow.glow-one{background:#4549ff22}.app-glow.glow-two{background:#7a55ff18}
.glass-shell,.panel,.editor-section,.library-card,.faction-grid{background:rgba(16,20,60,.88)!important;border-color:var(--line)!important}
input,select,textarea{background:#0c1031!important;color:var(--text)!important;border-color:#30366d!important}
button{border-color:#343a75;color:var(--text)}
button.primary,.primary{background:linear-gradient(180deg,#7477ff,#595de7)!important;color:white!important;border-color:#8c8fff!important}
button.ghost{background:#171b49!important}
.mobile-tabs{background:rgba(10,13,43,.98)!important;border-color:#292f63!important;box-shadow:0 8px 30px #02031366}
.mobile-tabs .tab.active{color:#fff!important}.mobile-tabs .tab.active:after{background:#7b7eff!important}
.eyebrow,.kicker{color:#9da0ff!important}

/* keep exported/stat card parchment, not indigo */
.stat-card,.export-render-stage .stat-card{background:var(--paper)!important;color:#171717!important}

/* no-gap persistent mobile app nav */
@media(max-width:820px){
  .app-header{display:none!important}
  .mobile-tabs{display:grid!important;grid-template-columns:repeat(4,1fr)!important;position:sticky!important;top:0!important;z-index:120!important;margin:0!important;padding-top:env(safe-area-inset-top);border-top:0!important}
  .workspace{margin-top:0!important;padding-top:0!important}
  .mobile-tabs .tab{font-size:14px!important}
}

/* Army */
.army-shell{width:min(1120px,100%);margin:auto;padding:20px}
.army-title-row,.pane-head,.setup-actions{display:flex;justify-content:space-between;align-items:center;gap:12px}
.army-title-row h2,.setup-card h3,.pane-head h3,.army-group h3{font-family:"Barlow Condensed";text-transform:uppercase;margin:3px 0}
.army-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:5px;margin:14px 0 22px;background:#0b0f31;border:1px solid var(--line);border-radius:14px}
.army-steps button{background:transparent;border:0;color:var(--muted);padding:10px 5px}
.army-steps button.active{background:#20255a;color:#fff}
.army-step{display:none}.army-step.active{display:block;animation:panelIn .22s ease}
.setup-card{max-width:560px;margin:25px auto;padding:22px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(#171b4b,#10143c)}
.setup-card p{color:var(--muted)}.point-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}
.point-buttons button.selected{background:#252b68;border-color:#8588ff}.full{width:100%;margin-top:12px}
.points-bar{position:sticky;top:0;z-index:15;padding:12px 14px;margin-bottom:14px;border:1px solid var(--line);border-radius:13px;background:#0d1137f2;backdrop-filter:blur(12px)}
.points-bar strong{display:flex;justify-content:space-between;gap:10px}.points-bar small{color:var(--muted)}
.points-meter{height:5px;background:#ffffff14;border-radius:99px;margin-top:8px;overflow:hidden}.points-meter i{display:block;height:100%;background:#7d80ff}.points-bar.over .points-meter i{background:var(--danger)}
.army-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.army-pane,.army-group{padding:14px;border:1px solid var(--line);border-radius:16px;background:#10143ccc}
.catalogue-unit,.roster-unit{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px;margin:7px 0;border:1px solid var(--line);border-radius:12px;background:#171b4b}
.catalogue-unit small,.roster-unit small{display:block;color:var(--muted)}.leader-picker{width:100%;margin-top:7px}.empty-state{color:var(--muted);text-align:center;padding:28px 8px}
.army-card-groups{display:grid;gap:14px;margin-top:14px}.army-cards-row{display:flex;gap:12px;overflow-x:auto;padding-bottom:6px}
.game-card{flex:0 0 min(340px,86vw);background:var(--paper);color:#1c1c1c;border:1px solid #b8ad99;border-radius:10px;padding:16px}
.game-card h4{font-family:"Barlow Condensed";text-transform:uppercase;font-size:26px;margin:0}.game-meta{font-weight:700;font-size:12px;margin:5px 0 9px}.game-rule{border-top:1px solid #aaa59a;padding-top:7px;margin-top:7px;font-size:12px;line-height:1.4}

/* glossary */
.rule-term{display:inline!important;background:transparent!important;border:0!important;padding:0!important;color:inherit!important;font:inherit!important;font-weight:700!important;text-decoration:underline dotted;text-underline-offset:2px}
.rule-modal{display:none;position:fixed;inset:0;z-index:600}.rule-modal.open{display:block}.rule-scrim{position:absolute;inset:0;background:#03051dbb;backdrop-filter:blur(6px)}
.rule-dialog{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(440px,calc(100% - 28px));max-height:75vh;overflow:auto;padding:21px;border:1px solid #454c91;border-radius:18px;background:linear-gradient(#1b2054,#10143c);box-shadow:0 30px 90px #0009}
.rule-dialog h3{font-family:"Barlow Condensed";text-transform:uppercase;font-size:31px;margin:3px 38px 9px 0}.rule-dialog p{line-height:1.5;color:#e6e6f6}.rule-x{position:absolute;right:11px;top:10px;width:36px;height:36px;padding:0;border-radius:50%;font-size:24px;background:#252b68}
@media(max-width:820px){.army-shell{padding:13px 11px 26px}.army-steps{position:sticky;top:54px;z-index:20}.army-columns{grid-template-columns:1fr}.point-buttons{grid-template-columns:repeat(2,1fr)}.points-bar{top:106px}.pane-head input{max-width:145px}}

/* ===== v0.7.3 interface theme — dark charcoal / violet ===== */
:root{
  --bg:#100e1d;
  --panel:#171426;
  --panel-2:#211d34;
  --panel-3:#292442;
  --text:#f4f2fb;
  --muted:#aaa4bb;
  --line:#332e49;
  --line-strong:#4a4365;
  --gold:#8e91e9;
  --gold-light:#a8abff;
}
body{
  background:
    radial-gradient(circle at 18% -8%,rgba(105,87,184,.16),transparent 28rem),
    linear-gradient(180deg,#100e1d 0%,#111020 100%) !important;
}
.glass-shell,.editor-panel,.library-panel,.preview-panel{
  background:#12101f!important;
}
.mobile-tabs{
  background:#12101f!important;
  border-color:#2a263b!important;
}
.mobile-tabs .tab{color:#9b96a8!important}
.mobile-tabs .tab.active{
  color:#fff!important;
  background:#26203b!important;
}
.mobile-tabs .tab::after{background:#989cff!important}
input,select,textarea{background:#27223d!important;border-color:#4a4362!important}
.editor-card,.saved-item,.faction-grid{
  background:#211d34!important;
  border-color:#332e49!important;
}
button.primary,.primary{
  background:#8f96ee!important;
  border-color:#aeb3ff!important;
  color:#12101f!important;
}

/* Top bar layout with left menu button */
.mobile-tabs{
  grid-template-columns:54px repeat(3,1fr)!important;
}
.menu-toggle{
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  font-size:22px;
  color:#d9d6e3!important;
}

/* Side drawer */
.side-drawer{display:none;position:fixed;inset:0;z-index:700}
.side-drawer.open{display:block}
.drawer-scrim{position:absolute;inset:0;background:#05040db3;backdrop-filter:blur(4px)}
.drawer-panel{
  position:absolute;left:0;top:0;bottom:0;width:min(360px,86vw);
  background:#12101f;border-right:1px solid #332e49;
  box-shadow:24px 0 70px #0008;padding:18px;
  animation:drawerIn .24s ease;
}
@keyframes drawerIn{from{transform:translateX(-100%)}to{transform:translateX(0)}}
.drawer-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #332e49;padding-bottom:16px}
.drawer-head h2{font-family:"Barlow Condensed";text-transform:uppercase;font-size:30px;margin:2px 0}
.drawer-close{width:38px;height:38px;padding:0;border-radius:50%;font-size:23px}
.drawer-nav{display:grid;gap:10px;margin-top:16px}
.drawer-nav button,.drawer-link{
  display:flex;align-items:center;justify-content:space-between;
  width:100%;padding:14px;border:1px solid #332e49;border-radius:13px;
  background:#1c1830;color:#f4f2fb;text-decoration:none;font-weight:700;
}
.army-link{background:#292442!important;border-color:#57508a!important}

/* FIX: card previews may grow vertically; do not crop abilities */
.stat-card{
  aspect-ratio:auto!important;
  min-height:980px!important;
  height:auto!important;
  overflow:visible!important;
}
@media(max-width:820px){
  .stat-card{
    aspect-ratio:auto!important;
    min-height:0!important;
    height:auto!important;
    overflow:visible!important;
  }
}
.export-render-stage .stat-card{
  aspect-ratio:auto!important;
  height:auto!important;
  min-height:980px!important;
  max-height:none!important;
  overflow:visible!important;
}

/* remove accidental bottom overlap on content */
.abilities-section{padding-bottom:34px!important}
.card-mark{position:relative!important;left:auto!important;bottom:auto!important;transform:none!important;margin:12px auto -8px!important;width:max-content}

/* ===== v0.7.35 navigation cleanup ===== */
.drawer-nav button,.drawer-link{
  min-height:74px;
  font-size:20px;
}
.drawer-nav button span,.drawer-link span{
  font-size:26px;
  opacity:.85;
}

/* ===== v0.8.1 side navigation ===== */
@media(max-width:820px){
  .mobile-tabs{
    grid-template-columns:54px repeat(3,1fr)!important;
  }
  .menu-toggle{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    color:#f3eff8!important;
    font-size:22px!important;
    padding:0!important;
  }
}
.side-drawer{display:none;position:fixed;inset:0;z-index:900}
.side-drawer.open{display:block}
.drawer-scrim{
  position:absolute;inset:0;background:rgba(4,3,10,.72);backdrop-filter:blur(5px)
}
.drawer-panel{
  position:absolute;left:0;top:0;bottom:0;width:min(360px,86vw);
  padding:18px;background:#12101f;border-right:1px solid #332e49;
  box-shadow:28px 0 80px rgba(0,0,0,.5);
  animation:aohDrawerIn .22s ease
}
@keyframes aohDrawerIn{from{transform:translateX(-100%)}to{transform:translateX(0)}}
.drawer-head{
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;padding-bottom:16px;border-bottom:1px solid #332e49
}
.drawer-head h2{
  margin:2px 0 0;font-family:"Barlow Condensed",sans-serif;
  text-transform:uppercase;font-size:30px
}
.drawer-close{
  width:38px;height:38px;padding:0;border-radius:50%;font-size:24px
}
.drawer-nav{display:grid;gap:10px;margin-top:16px}
.drawer-nav button,.drawer-link{
  display:flex;align-items:center;justify-content:space-between;
  width:100%;min-height:68px;padding:14px 15px;
  border:1px solid #332e49;border-radius:14px;
  background:#1b172c;color:#f5f2fa;text-decoration:none;
  font-weight:800;font-size:18px
}
.drawer-nav button span,.drawer-link span{font-size:24px;color:#a8abff}
.drawer-link.subtle{background:#15121f;color:#aaa4bb}


/* ===== v0.8.1 iOS modal background scroll lock ===== */
html.modal-open,
body.modal-open {
  overflow: hidden !important;
  overscroll-behavior: none !important;
  touch-action: none;
}

body.modal-open {
  position: fixed !important;
  width: 100% !important;
  left: 0 !important;
  right: 0 !important;
}

/* Modal content must scroll independently */
.drawer-panel,
.picker,
.rule-popup-card,
.rule-dialog,
.export-sheet {
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
}


/* ===== v0.8.1 universal navigation ===== */
.global-menu-button{
  position:fixed;
  left:14px;
  top:calc(14px + env(safe-area-inset-top));
  z-index:850;
  width:44px;
  height:44px;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid #332e49;
  border-radius:12px;
  background:rgba(18,16,31,.94)!important;
  color:#f3eff8!important;
  font-size:22px;
  box-shadow:0 10px 28px rgba(0,0,0,.25);
  backdrop-filter:blur(10px);
}
.global-menu-button:active{transform:scale(.97)}
.global-side-drawer{z-index:1000!important}

html.global-nav-open,
body.global-nav-open{
  overflow:hidden!important;
  overscroll-behavior:none!important;
  touch-action:none!important;
}
body.global-nav-open{
  position:fixed!important;
  width:100%!important;
  left:0!important;
  right:0!important;
}
.global-side-drawer .drawer-panel{
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
}

/* Leave a little space for the floating menu button on page headers */
.army-page-top,
.rules-topbar,
.landing-top{
  padding-left:72px!important;
}

/* On the Stat Block Editor, use the existing tab bar menu area instead of
   overlapping it with a floating button. */
body:has(.mobile-tabs) .global-menu-button{
  display:none;
}


/* ===== v0.8.1 Library-style universal drawer ===== */
.library-drawer .library-panel{
  width:min(88vw,430px);
  background:#20184f;
  border-right:1px solid rgba(134,221,226,.35);
  padding:calc(22px + env(safe-area-inset-top)) 20px calc(28px + env(safe-area-inset-bottom));
  overflow-y:auto;
}
.library-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.library-head .eyebrow{color:#a7a8ff;letter-spacing:.18em;font-weight:900}
.library-title{
  font-family:var(--display);
  font-size:2rem;
  font-weight:900;
  letter-spacing:.03em;
  padding:16px 0 28px;
  border-bottom:2px solid #84d8de;
  color:#fff;
}
.library-nav{display:block}
.library-primary{
  width:100%;
  min-height:92px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:22px 4px;
  border:0;
  border-bottom:2px solid #84d8de;
  background:transparent;
  color:#fff!important;
  text-decoration:none;
  font-family:var(--display);
  font-size:1.55rem;
  font-weight:900;
  text-align:left;
  cursor:pointer;
}
.library-chevron{font-family:system-ui,sans-serif;font-size:2rem;font-weight:400;transition:transform .22s ease;color:#9ea1ff}
.library-group.expanded .library-chevron{transform:rotate(90deg)}
.rules-submenu{
  max-height:0;
  overflow:hidden;
  opacity:0;
  background:#09090e;
  transition:max-height .32s ease,opacity .2s ease;
}
.library-group.expanded .rules-submenu{max-height:720px;opacity:1}
.rules-submenu a{
  display:flex;
  align-items:center;
  min-height:58px;
  padding:14px 18px;
  color:#fff!important;
  text-decoration:none;
  font-family:var(--display);
  font-weight:800;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.rules-submenu a::before{
  content:"";
  width:8px;height:8px;
  border:2px solid #84d8de;
  border-radius:2px;
  margin-right:14px;
  transform:rotate(45deg);
  flex:none;
}
.library-divider{height:28px;border-bottom:2px solid rgba(132,216,222,.45)}
.library-drawer .drawer-close{
  position:static;
  width:48px;height:48px;
  border-radius:50%;
  border:1px solid #5b55a0;
  background:#2a235e;
  color:#fff;
}


/* ===== v0.9.0 accounts / cloud sync ===== */
.cloud-account-indicator{
  display:inline-flex;align-items:center;gap:6px;
  font-size:12px;color:#aaa4bb
}
html[data-cloud-status="signed-in"] .cloud-account-indicator::before{
  content:"";width:7px;height:7px;border-radius:50%;background:#8f96ee
}


/* ===== v0.9.0 iPhone drawer visibility hotfix ===== */

/* The drawer container itself must be above all page content. */
.side-drawer,
.global-side-drawer,
.library-drawer {
  position: fixed !important;
  inset: 0 !important;
  z-index: 5000 !important;
  pointer-events: none;
}

/* When open, re-enable interaction. */
.side-drawer.open,
.global-side-drawer.open,
.library-drawer.open {
  display: block !important;
  pointer-events: auto !important;
}

/* Scrim stays below the actual panel. */
.side-drawer .drawer-scrim,
.global-side-drawer .drawer-scrim,
.library-drawer .drawer-scrim {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  background: rgba(4, 3, 10, .72) !important;
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}

/* The visible menu panel must sit above the scrim on Safari/iOS. */
.side-drawer .drawer-panel,
.global-side-drawer .drawer-panel,
.library-drawer .drawer-panel,
.library-drawer .library-panel {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
  z-index: 2 !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateX(0);
  isolation: isolate;
  -webkit-transform: translateZ(0);
  backface-visibility: hidden;
}

/* Ensure drawer contents cannot inherit blur/opacity from ancestors. */
.library-drawer .library-panel,
.library-drawer .library-panel * {
  filter: none !important;
  -webkit-filter: none !important;
}

/* Avoid Safari compositing the drawer below backdrop-filter layers. */
body.global-nav-open .global-side-drawer,
body.modal-open .global-side-drawer {
  transform: translateZ(999px);
  -webkit-transform: translateZ(999px);
}


/* ==========================================================
   v0.9.0 HARD iOS DRAWER FIX
   Avoid Safari backdrop-filter/compositing entirely.
   ========================================================== */

.global-side-drawer,
.library-drawer,
.side-drawer {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147483000 !important;
  display: none !important;
  pointer-events: none !important;
  isolation: isolate !important;
  transform: none !important;
  -webkit-transform: none !important;
}

.global-side-drawer.open,
.library-drawer.open,
.side-drawer.open {
  display: block !important;
  pointer-events: auto !important;
}

/* Opaque translucent scrim: NO BLUR. */
.global-side-drawer .drawer-scrim,
.library-drawer .drawer-scrim,
.side-drawer .drawer-scrim {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147483001 !important;
  background: rgba(3, 3, 9, .78) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  filter: none !important;
  -webkit-filter: none !important;
  transform: none !important;
  -webkit-transform: none !important;
}

/* Sidebar is a completely separate fixed plane above the scrim. */
.global-side-drawer .drawer-panel,
.library-drawer .drawer-panel,
.library-drawer .library-panel,
.side-drawer .drawer-panel {
  position: fixed !important;
  left: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
  right: auto !important;
  width: min(88vw, 430px) !important;
  z-index: 2147483002 !important;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  background: #20184f !important;
  filter: none !important;
  -webkit-filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  transform: none !important;
  -webkit-transform: none !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior: contain !important;
  touch-action: pan-y !important;
  box-shadow: 24px 0 70px rgba(0,0,0,.55) !important;
}

/* Explicitly keep drawer content sharp/visible. */
.global-side-drawer .drawer-panel *,
.library-drawer .drawer-panel *,
.side-drawer .drawer-panel * {
  opacity: 1;
  filter: none !important;
  -webkit-filter: none !important;
}

/* When drawer is open, freeze the document behind it. */
html.aoh-drawer-open,
body.aoh-drawer-open {
  overflow: hidden !important;
  overscroll-behavior: none !important;
}

body.aoh-drawer-open {
  position: fixed !important;
  width: 100% !important;
  left: 0 !important;
  right: 0 !important;
}

/* Account row styling */
.library-account-row {
  margin-top: 10px;
  border-top: 2px solid rgba(132,216,222,.45);
}
.library-account-row .account-state {
  display: block;
  font-family: system-ui, sans-serif;
  font-size: .72rem;
  font-weight: 600;
  color: #aaa4bb;
  margin-top: 3px;
  text-transform: none;
  letter-spacing: 0;
}


/* ==========================================================
   v0.9.1 — Digital Rulebook
   ========================================================== */
.rulebook-page{
  margin:0!important;
  max-width:none!important;
  padding:0!important;
  background:#11101b!important;
  color:#17151a;
  font-family:"Inter",sans-serif!important;
}
.rulebook-site-header{
  position:sticky;top:0;z-index:300;
  height:72px;display:flex;align-items:center;
  padding:env(safe-area-inset-top) 18px 0 72px;
  box-sizing:content-box;
  background:linear-gradient(90deg,#171426,#11101b);
  border-bottom:2px solid #c7aa55;
  box-shadow:0 5px 22px rgba(0,0,0,.28)
}
.rulebook-page .global-menu-button{
  top:calc(14px + env(safe-area-inset-top))!important;
}
.rulebook-brand{color:#fff;text-decoration:none;display:flex;flex-direction:column;line-height:1}
.rulebook-brand span{font-family:"Barlow Condensed";font-weight:800;letter-spacing:.12em;font-size:20px}
.rulebook-brand small{font-size:8px;letter-spacing:.32em;color:#a6a2b3;margin-top:5px}
.rulebook-search-shortcut{margin-left:auto;color:#8fd9dd;text-decoration:none;font-size:30px;line-height:1;padding:8px}
.rules-library-main{min-height:calc(100vh - 72px);padding:34px 18px 70px;max-width:900px;margin:auto;color:#f5f2fa}
.rules-library-hero{text-align:left;padding:22px 4px 26px}
.rulebook-kicker{font-size:12px;font-weight:800;letter-spacing:.19em;color:#92d9dc}
.rules-library-hero h1{font-family:"Barlow Condensed";font-size:52px;text-transform:uppercase;margin:6px 0 8px}
.rules-library-hero p{max-width:600px;color:#aaa4bb;line-height:1.55;margin:0}
.rules-search-shell{
  position:sticky;top:calc(74px + env(safe-area-inset-top));z-index:80;
  display:grid;grid-template-columns:34px 1fr 38px;align-items:center;
  background:#28233f;border:1px solid #504969;border-radius:14px;padding:4px 9px;
  box-shadow:0 10px 30px rgba(0,0,0,.25);margin-bottom:30px
}
.rules-search-shell input{
  background:transparent!important;border:0!important;outline:0!important;
  min-height:52px;color:#fff!important;font-size:16px!important;padding:0 6px!important
}
.rules-search-icon{font-size:25px;color:#9da4ff;text-align:center}
#rulesSearchClear{visibility:hidden;border:0;background:transparent!important;color:#aaa4bb;font-size:22px;padding:6px}
#rulesSearchClear.visible{visibility:visible}
.rules-browse-title{display:flex;justify-content:space-between;align-items:end;margin:8px 0 12px;color:#aaa4bb}
.rules-browse-title span{font-family:"Barlow Condensed";font-weight:800;color:#fff;font-size:24px}
.rules-browse-title small{font-size:11px}
.rules-library-grid{display:grid;gap:11px}
.rules-library-card{
  display:grid;grid-template-columns:45px 1fr 30px;align-items:center;gap:12px;
  color:#fff;text-decoration:none;background:#1b1829;border:1px solid #343047;
  border-radius:15px;padding:16px;min-height:80px
}
.rules-library-card:active{transform:scale(.99)}
.rule-section-number{font-family:"Barlow Condensed";font-size:18px;color:#82d4d8}
.rules-library-card h2{font-family:"Barlow Condensed";text-transform:uppercase;font-size:25px;margin:0 0 4px}
.rules-library-card p{font-size:12px;color:#aaa4bb;margin:0;line-height:1.4}
.rule-card-arrow{font-size:32px;color:#8589ef}
.rules-search-results{display:grid;gap:10px}
.search-result-count{color:#aaa4bb;font-size:12px;margin-bottom:4px}
.rules-search-result{position:relative;display:block;text-decoration:none;color:#fff;background:#1b1829;border:1px solid #343047;border-radius:14px;padding:15px 45px 15px 16px}
.rules-search-result small{color:#88d5d9;font-weight:700}
.rules-search-result h2{font-family:"Barlow Condensed";text-transform:uppercase;font-size:25px;margin:3px 0}
.rules-search-result p{font-size:13px;line-height:1.5;color:#bbb5c6;margin:0}
.rules-search-result>span{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:30px;color:#8d91ee}
.rules-no-results{text-align:center;padding:50px 10px;color:#aaa4bb}
.rules-no-results h2{color:#fff;font-family:"Barlow Condensed";font-size:30px}

.rule-reader{background:#ebe6d9;min-height:calc(100vh - 72px);background-image:radial-gradient(#8f856d12 1px,transparent 1px);background-size:6px 6px}
.rule-reader-hero{
  max-width:760px;margin:auto;padding:62px 28px 48px;text-align:center;
  background:linear-gradient(180deg,rgba(255,255,255,.6),rgba(255,255,255,0))
}
.rule-chapter-label{font-family:"Inter";font-size:12px;font-weight:800;letter-spacing:.22em;color:#a38331}
.rule-reader-hero h1{font-family:"Barlow Condensed";text-transform:uppercase;font-size:clamp(45px,12vw,74px);line-height:.94;margin:12px 0;color:#18161c}
.rule-reader-hero p{font-family:"Libre Baskerville";font-style:italic;line-height:1.65;color:#565057;max-width:570px;margin:0 auto 20px}
.within-rules-search{display:inline-flex;align-items:center;gap:7px;text-decoration:none;color:#4f4778;border:1px solid #b8ad9b;background:#f5f1e7;border-radius:99px;padding:9px 14px;font-size:13px;font-weight:700}
.rule-paper{max-width:760px;margin:auto;background:rgba(250,247,239,.94);border-top:4px solid #c9a541;padding:18px 30px 80px;box-sizing:border-box;box-shadow:0 20px 55px rgba(48,39,23,.09)}
.rulebook-rule{position:relative;padding:45px 0 35px;border-bottom:1px solid #c7bead;scroll-margin-top:110px}
.rulebook-rule:last-of-type{border-bottom:0}
.rule-index{font-size:11px;font-weight:800;letter-spacing:.18em;color:#a7832e}
.rulebook-rule h2{font-family:"Barlow Condensed";font-size:38px;text-transform:uppercase;line-height:1;margin:8px 0 20px;color:#9b7520;text-align:center}
.rule-prose{white-space:pre-line;font-family:"Inter";font-size:18px;line-height:1.75;color:#262329}
.rulebook-callout{margin:30px 0 4px;padding:22px;border-radius:14px;background:#eee1d4;border-left:5px solid #b6602a}
.rulebook-callout span{display:block;font-family:"Barlow Condensed";font-size:21px;font-weight:800;color:#a54e24;margin-bottom:8px}
.rulebook-callout strong{font-size:16px;line-height:1.55}
.rulebook-nextprev{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:40px}
.rulebook-nextprev a{display:flex;align-items:center;justify-content:space-between;text-decoration:none;color:#332d4b;background:#e6dfd1;border:1px solid #c7bead;border-radius:11px;padding:12px;font-size:13px;font-weight:700}
.rulebook-nextprev a:last-child{text-align:right}
@media(max-width:600px){
  .rulebook-site-header{height:60px;padding-left:69px}
  .rulebook-brand span{font-size:17px}.rulebook-brand small{display:none}
  .rules-library-main{padding-left:14px;padding-right:14px}
  .rules-library-hero h1{font-size:45px}
  .rules-search-shell{top:calc(62px + env(safe-area-inset-top))}
  .rule-reader-hero{padding:50px 22px 38px}
  .rule-paper{padding:10px 24px 65px;border-radius:0}
  .rulebook-rule h2{font-size:34px}
  .rule-prose{font-size:17px;line-height:1.72}
  .rulebook-nextprev{grid-template-columns:1fr}
}


/* ==========================================================
   v0.9.2 — Swipeable leader/unit stat stacks
   ========================================================== */

.unit-model-count{
  font-size:.68em;
  font-weight:800;
  opacity:.72;
  white-space:nowrap;
}

.swipe-group{
  overflow:hidden;
}

.swipe-stack{
  position:relative;
  width:100%;
  overflow:hidden;
  touch-action:pan-y;
}

.swipe-track{
  display:flex;
  width:100%;
  will-change:transform;
  transform:translateX(0);
}

.swipe-slide{
  flex:0 0 100%;
  width:100%;
  min-width:100%;
  box-sizing:border-box;
  padding:0 1px;
}

.swipe-slide .stack-card{
  margin-left:0;
  margin-right:0;
}

/* Slight layered-card hint behind the active card */
.swipe-stack::before,
.swipe-stack::after{
  content:"";
  position:absolute;
  left:10px;
  right:10px;
  border-radius:18px;
  pointer-events:none;
  z-index:0;
}

.swipe-stack::before{
  top:9px;
  bottom:54px;
  background:#2a263a;
  transform:translateY(5px) scale(.985);
  opacity:.46;
}

.swipe-stack::after{
  top:14px;
  bottom:54px;
  background:#211e30;
  transform:translateY(10px) scale(.97);
  opacity:.35;
}

.swipe-track,
.swipe-controls,
.swipe-label{
  position:relative;
  z-index:2;
}

.swipe-controls{
  display:grid;
  grid-template-columns:44px 1fr 44px;
  align-items:center;
  gap:10px;
  margin:10px 6px 0;
}

.swipe-arrow{
  width:42px;
  height:42px;
  padding:0;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#27233b!important;
  border:1px solid #4a4563!important;
  color:#fff!important;
  font-size:27px;
  line-height:1;
}

.swipe-indicators{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
}

.swipe-dot{
  width:8px;
  height:8px;
  min-width:8px;
  padding:0;
  border:0!important;
  border-radius:50%;
  background:#59536b!important;
  transition:.2s ease;
}

.swipe-dot.active{
  width:22px;
  border-radius:99px;
  background:#9a9df8!important;
}

.swipe-label{
  text-align:center;
  margin:7px 0 2px;
  font-size:11px;
  font-weight:700;
  color:#aaa4bb;
}

@media(max-width:600px){
  .swipe-controls{
    grid-template-columns:38px 1fr 38px;
  }
  .swipe-arrow{
    width:36px;
    height:36px;
    font-size:24px;
  }
}


/* ==========================================================
   v0.9.3 — Carousel / navigation quality-of-life
   ========================================================== */

.drawer-home-title{
  display:inline-block;
  color:#a7a8ff!important;
  text-decoration:none!important;
  cursor:pointer;
}

.drawer-home-title:active{
  opacity:.72;
}

.swipe-track{
  cursor:grab;
  user-select:none;
  -webkit-user-select:none;
  touch-action:pan-y;
}

.swipe-track:active{
  cursor:grabbing;
}

.swipe-stack{
  overscroll-behavior-x:contain;
}


/* ==========================================================
   v0.9.4 — Collapsible Army Builder categories
   ========================================================== */

.category-head{
  display:grid!important;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:10px;
}

.category-collapse{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  width:100%!important;
  min-height:84px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:#f5f2fa!important;
  text-align:left!important;
}

.category-title{
  font-family:"Barlow Condensed",sans-serif;
  font-size:23px;
  font-weight:800;
}

.category-chevron{
  margin-left:auto;
  padding:0 10px;
  font-size:24px;
  color:#aaa4bb;
  transform:rotate(0deg);
  transition:transform .2s ease;
}

.category.collapsed .category-chevron{
  transform:rotate(-90deg);
}

.category-add{
  width:48px!important;
  height:48px!important;
  min-width:48px!important;
  padding:0!important;
  font-size:30px!important;
}

.category-items{
  max-height:5000px;
  opacity:1;
  overflow:hidden;
  transition:max-height .28s ease, opacity .2s ease;
}

.category.collapsed .category-items{
  max-height:0!important;
  opacity:0;
  pointer-events:none;
}

/* Preserve the header while collapsed */
.category.collapsed{
  padding-bottom:0;
}


/* ==========================================================
   v0.9.5 — Hamburger branding / navigation cleanup
   ========================================================== */

.library-head{
  align-items:center!important;
  min-height:86px;
  gap:14px;
}

.drawer-brand{
  display:flex!important;
  flex-direction:column;
  justify-content:center;
  text-decoration:none!important;
  color:#fff!important;
  min-width:0;
  padding:8px 0;
}

.drawer-brand-main{
  display:block;
  font-family:"Barlow Condensed",sans-serif;
  font-size:clamp(29px,8vw,39px);
  line-height:.9;
  font-weight:800;
  letter-spacing:.055em;
  white-space:nowrap;
}

.drawer-brand-sub{
  display:block;
  margin-top:8px;
  font-family:"Inter",sans-serif;
  font-size:9px;
  font-weight:800;
  letter-spacing:.32em;
  color:#9fa4ff;
}

.drawer-brand:active{
  opacity:.75;
}

/*
  Future logo support:
  When an The Confluence logo image is supplied, this brand block can be
  replaced with an <img class="drawer-brand-logo"> without redesigning
  the drawer.
*/
.drawer-brand-logo{
  display:block;
  width:min(230px,65vw);
  max-height:72px;
  object-fit:contain;
  object-position:left center;
}


/* ==========================================================
   v0.9.6 — Bidirectional card-stack swipe fix
   ========================================================== */
.swipe-track{
  touch-action:pan-y pinch-zoom;
  -webkit-user-drag:none;
}
.swipe-slide,
.swipe-slide .stack-card{
  touch-action:pan-y pinch-zoom;
}


/* ==========================================================
   v0.9.7 — Layered Library Drawer
   ========================================================== */

.library-drawer .library-panel{
  width:min(86vw,430px)!important;
  background:#21184f!important;
  padding:0!important;
  overflow:hidden!important;
  box-shadow:22px 0 70px rgba(0,0,0,.58)!important;
}

/* Top site bar that visually overlaps the drawer */
.drawer-overlap-bar{
  position:sticky;
  top:0;
  z-index:10;
  min-height:92px;
  display:flex;
  align-items:center;
  gap:14px;
  padding:calc(14px + env(safe-area-inset-top)) 18px 14px;
  background:
    linear-gradient(90deg,rgba(14,13,24,.94),rgba(18,17,28,.98)),
    radial-gradient(circle at 30% 20%,rgba(113,99,185,.18),transparent 55%);
  border-bottom:2px solid #d5c978;
  box-shadow:0 6px 18px rgba(0,0,0,.28);
}

.drawer-inline-menu{
  width:40px!important;
  height:40px!important;
  min-width:40px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:#8bd6d9!important;
  font-size:25px!important;
  line-height:1!important;
}

.drawer-brand-lockup{
  display:flex;
  flex-direction:column;
  text-decoration:none!important;
  color:#fff!important;
  min-width:0;
}

.drawer-brand-main{
  font-family:"Barlow Condensed",sans-serif;
  font-weight:800;
  font-size:22px;
  line-height:.95;
  letter-spacing:.055em;
}

.drawer-brand-sub{
  margin-top:5px;
  font-family:"Inter",sans-serif;
  font-size:8px;
  letter-spacing:.28em;
  color:#9ba1ff;
  font-weight:800;
}

.drawer-scroll-area{
  height:calc(100% - 92px);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  background:#21184f;
}

/* Main purple library section */
.drawer-main-section{
  background:#21184f;
  padding:0 24px 22px;
}

.library-title{
  padding:18px 0 24px!important;
  border-bottom:2px solid #83d4d9!important;
  color:#fff!important;
  font-family:"Barlow Condensed",sans-serif!important;
  font-size:30px!important;
  font-weight:800!important;
  line-height:1!important;
}

.library-nav{
  display:block!important;
}

.library-primary{
  min-height:118px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  padding:20px 0!important;
  border:0!important;
  border-bottom:2px solid #83d4d9!important;
  border-radius:0!important;
  background:transparent!important;
  color:#fff!important;
  text-decoration:none!important;
  font-family:"Barlow Condensed",sans-serif!important;
  font-size:31px!important;
  font-weight:800!important;
  line-height:1!important;
  letter-spacing:.01em!important;
}

.library-primary:last-child{
  border-bottom:0!important;
}

.library-primary .library-chevron{
  display:none!important;
}

.library-account-row{
  border-top:0!important;
}

.library-account-row .account-state{
  margin-top:9px!important;
  color:#b9b2c9!important;
  font-size:11px!important;
  letter-spacing:0!important;
  line-height:1.35!important;
}

/* Strong darker break at the bottom */
.drawer-utility-section{
  background:#17171e;
  padding:26px 24px calc(34px + env(safe-area-inset-bottom));
  border-top:1px solid rgba(255,255,255,.06);
  min-height:260px;
}

.drawer-utility-link{
  min-height:76px;
  display:flex;
  align-items:center;
  gap:16px;
  color:#fff!important;
  text-decoration:none!important;
  font-family:"Barlow Condensed",sans-serif;
  font-size:24px;
  font-weight:800;
}

.drawer-utility-icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  color:#2ca5ec;
  border:2px solid #2ca5ec;
  border-radius:9px;
  font-family:"Inter",sans-serif;
  font-size:16px;
  font-weight:800;
  flex:none;
}

/* Make the global floating menu feel connected to the site chrome */
.global-menu-button{
  width:48px!important;
  height:48px!important;
  border-radius:12px!important;
  border:1px solid #3f3a59!important;
  background:#171426!important;
  box-shadow:0 8px 24px rgba(0,0,0,.24)!important;
}

/* Remove old drawer header styles that can visually compete */
.library-head,
.drawer-head{
  display:none!important;
}

@media(max-width:600px){
  .library-drawer .library-panel{
    width:85vw!important;
    max-width:none!important;
  }

  .library-title{
    font-size:29px!important;
  }

  .library-primary{
    min-height:116px!important;
    font-size:30px!important;
  }

  .drawer-utility-link{
    font-size:23px;
  }
}


/* ==========================================================
   v0.9.7 repaired — native two-way card stack
   ========================================================== */
.swipe-stack{
  overflow:hidden!important;
  touch-action:auto!important;
}
.swipe-track{
  display:flex!important;
  width:100%!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scroll-snap-type:x mandatory!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior-x:contain!important;
  touch-action:pan-x pan-y!important;
  transform:none!important;
  transition:none!important;
  scrollbar-width:none!important;
}
.swipe-track::-webkit-scrollbar{display:none!important}
.swipe-slide{
  flex:0 0 100%!important;
  width:100%!important;
  min-width:100%!important;
  scroll-snap-align:start!important;
  scroll-snap-stop:always!important;
  touch-action:auto!important;
}
.swipe-slide .stack-card{touch-action:auto!important}


/* ==========================================================
   THE CONFLUENCE v1.0 — AURORA DESIGN SYSTEM
   ========================================================== */
:root{
  --confluence-midnight:#20163d;
  --confluence-indigo:#132a93;
  --confluence-violet:#493273;
  --confluence-teal:#3d9984;
  --confluence-pale:#b4d7c4;
  --confluence-gold:#b89550;
  --confluence-copper:#a65f40;
  --confluence-ink:#0d1022;
  --confluence-paper:#f3f0e8;
}
html,body{background:var(--confluence-ink)!important}
body{
  background:
   radial-gradient(circle at 88% 2%,rgba(61,153,132,.14),transparent 30%),
   radial-gradient(circle at 28% 0%,rgba(73,50,115,.2),transparent 42%),
   linear-gradient(180deg,#0b1026,#15122b 65%,#0b1020)!important;
}
.global-menu-button,.army-page-top,.rulebook-site-header{
  border-color:rgba(180,215,196,.28)!important;
}
button.primary,.fab,.play-mode-launch{
  background:linear-gradient(135deg,var(--confluence-teal),#327d76)!important;
  border-color:var(--confluence-pale)!important;
  color:#071619!important;
}
.eyebrow,.play-kicker,.rulebook-kicker,.rule-chapter-label{color:var(--confluence-pale)!important}
.meter i{background:linear-gradient(90deg,var(--confluence-teal),var(--confluence-pale),#7681d7)!important}
a,.rule-term{accent-color:var(--confluence-teal)}
.confluence-drawer-logo{
  display:block;width:min(260px,65vw);height:64px;object-fit:contain;object-position:left center;
}
.confluence-header-brand img{width:190px;height:48px;object-fit:contain}
.confluence-home-logo{display:block;width:min(720px,92vw);max-height:220px;object-fit:contain;margin:24px auto}
.floating-home-logo{margin-top:84px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Aurora shell */
.drawer-main-section{
  background:
    linear-gradient(180deg,rgba(32,22,61,.97),rgba(25,22,61,.98)),
    radial-gradient(circle at 15% 0%,rgba(61,153,132,.2),transparent 35%)!important;
}
.library-primary{border-bottom-color:rgba(180,215,196,.55)!important}
.drawer-overlap-bar{border-bottom-color:var(--confluence-gold)!important}
.drawer-utility-icon{color:var(--confluence-gold)!important;border-color:var(--confluence-gold)!important}

/* Card artwork */
.card-art-zone,.play-unit-art,.unit-image-preview{
  position:relative;display:block;overflow:hidden;
  background:
   radial-gradient(circle at 30% 20%,rgba(180,215,196,.46),transparent 34%),
   linear-gradient(135deg,#132a93,#493273 58%,#20163d);
}
.card-art-zone{height:190px!important}
.card-art-zone img,.play-unit-art img,.unit-image-preview img{
  width:100%;height:100%;display:block;object-fit:cover;
}
.model-image-placeholder{display:grid!important;place-items:center}
.model-image-placeholder img{width:42%!important;height:72%!important;object-fit:contain!important;opacity:.65}
.unit-image-editor{display:grid;gap:9px;margin-bottom:18px}
.unit-image-preview{height:160px;border-radius:12px;border:1px solid #4c536b}
.image-upload-button{display:block;padding:11px 14px;border-radius:10px;background:#242239;border:1px solid #4d4960;font-weight:700;text-align:center}
.image-upload-button input{display:none}

/* PLAY MODE */
.play-shell{padding-bottom:90px}
.play-aurora-head{
  position:sticky;top:62px;z-index:25;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin:-14px -14px 12px;padding:20px 18px;
  background:
   linear-gradient(100deg,rgba(15,29,72,.96),rgba(47,35,89,.95) 55%,rgba(37,91,78,.94)),
   radial-gradient(circle at 70% 0%,rgba(180,215,196,.45),transparent 30%);
  border-bottom:1px solid var(--confluence-gold);
  box-shadow:0 12px 35px rgba(0,0,0,.3)
}
.play-aurora-head h2{font-family:"Barlow Condensed";font-size:32px;text-transform:uppercase;margin:3px 0;color:#fff}
.play-round{color:#c9c4d5}
.play-faction-btn{border-color:var(--confluence-gold)!important;color:#f0ddb1!important;background:#19152b!important}
.play-command-bar{
  position:sticky;top:168px;z-index:23;display:flex;gap:8px;align-items:center;flex-wrap:wrap;
  padding:9px;background:#121427e8;border:1px solid #343c5b;border-radius:13px;margin-bottom:14px;
  backdrop-filter:blur(10px)
}
.play-resource{display:flex;align-items:center;gap:8px;margin-right:auto}
.play-resource>span{font-weight:800;color:var(--confluence-gold)}
.play-resource button,.hp-tracker button{width:34px;height:34px;padding:0;border-radius:50%}
.play-resource strong{min-width:30px;text-align:center;font-size:22px}
.play-unit-group{display:grid;gap:8px;margin:14px 0 20px}
.play-unit-card{
  overflow:hidden;border:1px solid rgba(180,215,196,.25);border-radius:16px;
  background:#f3f0e8;color:#171820;box-shadow:0 14px 34px rgba(0,0,0,.18)
}
.play-unit-card.activated{opacity:.62;filter:saturate(.65)}
.play-unit-card.activated .play-unit-content{box-shadow:inset 4px 0 0 var(--confluence-violet)}
.play-unit-art{height:150px}
.play-unit-content{padding:14px}
.play-unit-title{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.play-unit-title h3{font-family:"Barlow Condensed";font-size:27px;text-transform:uppercase;margin:0}
.play-unit-title small{font-weight:800;color:var(--confluence-copper)}
.activation-toggle{background:#25233a!important;color:#fff!important;border-color:#4d4960!important;white-space:nowrap}
.play-unit-stats{font-size:13px;color:#5a5860;margin:6px 0 12px}
.hp-tracker{display:flex;align-items:center;gap:9px;padding:10px;border-radius:12px;background:#ddd8cc}
.hp-tracker span{font-weight:800;color:var(--confluence-copper)}
.hp-tracker strong{font-size:20px;min-width:70px;text-align:center}
.effect-row{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-top:10px}
.effect-chip{padding:7px 10px!important;border-radius:99px!important;background:#d8e9df!important;color:#173d35!important;text-decoration:none!important}
.effect-row select{width:auto;min-width:110px;padding:7px}
.play-reference{margin-top:12px;border-top:1px solid #cec8bb;padding-top:10px}
.play-reference summary{font-weight:800;cursor:pointer;color:#332b4d}
.play-full-reference h4{font-family:"Barlow Condensed";font-size:22px;text-transform:uppercase;color:#8c692a;margin:16px 0 6px}
.army-view-actions{display:flex;justify-content:space-between;gap:9px;align-items:center;margin-bottom:12px}

/* Faction rules drawer */
.faction-rules-card{
  position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  width:min(720px,100%);max-height:82vh;overflow-y:auto;padding:22px;
  background:#17152d;border:1px solid #536271;border-radius:20px 20px 0 0;color:#f2eef7;
  -webkit-overflow-scrolling:touch
}
.faction-rules-card>button{position:absolute;right:14px;top:14px;width:38px;height:38px;padding:0;border-radius:50%}
.faction-rules-card h3,.faction-rules-card h4{font-family:"Barlow Condensed";text-transform:uppercase}
.faction-rules-card h3{font-size:32px;margin:4px 50px 18px 0;color:var(--confluence-gold)}
.faction-rule-block,.psychic-power{padding:15px 0;border-bottom:1px solid #35324b}
.faction-rule-block h4,.psychic-power h4{font-size:23px;margin:0 0 5px}
.faction-rule-block p,.psychic-power p{line-height:1.55;color:#d4cede}
.psychic-power{display:grid;grid-template-columns:1fr auto;gap:12px}
.psychic-power.used{opacity:.52}
.psychic-power button{align-self:start}

/* Gold/copper details */
.stack-card{border-color:rgba(184,149,80,.45)!important}
.details-toggle{border-color:rgba(184,149,80,.55)!important}
.rulebook-rule h2{color:#92702d!important}
.rulebook-callout{border-left-color:var(--confluence-copper)!important}

/* ==========================================================
   The Confluence v1.3.0 — Latest Updates
   ========================================================== */
.updates-page{min-height:100vh;color:#f3f0f7}
.updates-main{max-width:760px;margin:auto;padding:92px 18px 90px}
.updates-logo-link img{display:block;width:min(430px,82vw);max-height:120px;object-fit:contain;object-position:left center;margin-bottom:35px}
.updates-kicker{font-size:11px;font-weight:800;letter-spacing:.2em;color:var(--confluence-pale)}
.updates-main>h1{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;font-size:48px;margin:5px 0 28px;color:#fff}
.update-release{position:relative;margin:13px 0;padding:22px;border:1px solid rgba(180,215,196,.2);border-radius:16px;background:rgba(27,24,49,.9)}
.update-release.current{border-color:rgba(184,149,80,.6);box-shadow:inset 3px 0 0 var(--confluence-gold)}
.update-version{display:flex;align-items:center;gap:9px;color:var(--confluence-pale);font-weight:800}
.update-version small{padding:3px 7px;border-radius:99px;background:rgba(61,153,132,.2);color:var(--confluence-pale);text-transform:uppercase;font-size:9px}
.update-release h2{font-family:"Barlow Condensed";text-transform:uppercase;font-size:28px;margin:7px 0;color:#fff}
.update-release p,.update-release li{color:#c8c2d1;line-height:1.55}
.update-release ul{padding-left:20px}

/* v1.3.0 Specialist */
.threshold-band.single{grid-template-columns:1fr!important}
.threshold-band.single>div:first-child{grid-column:1/-1}


/* ==========================================================
   THE CONFLUENCE v1.2 — Navigation, Models, Campaign, Detachments
   ========================================================== */

/* Hamburger */
.confluence-main-nav{padding-top:14px}
.drawer-nav-group{border-bottom:2px solid rgba(180,215,196,.55)}
.drawer-nav-group summary{
  list-style:none;min-height:112px;display:flex;align-items:center;justify-content:space-between;
  font-family:"Barlow Condensed",sans-serif;font-size:31px;font-weight:800;color:#fff;cursor:pointer
}
.drawer-nav-group summary::-webkit-details-marker{display:none}
.drawer-nav-group summary span{color:var(--confluence-pale);transition:.2s}
.drawer-nav-group[open] summary span{transform:rotate(180deg)}
.drawer-nav-sub{padding:0 0 18px 18px;display:grid}
.drawer-nav-sub a{
  min-height:54px;display:flex;align-items:center;color:#e9e6ef;text-decoration:none;font-weight:700;
  border-left:2px solid rgba(180,215,196,.4);padding-left:17px
}

/* Army keys + detachments */
.army-key-display{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--confluence-pale)!important}
.army-share-row{
  display:flex;align-items:center;justify-content:space-between;padding:12px 14px;margin:0 0 12px;
  background:#17152a;border:1px solid #3a405d;border-radius:12px;color:#aaa4bb
}
.army-share-row strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--confluence-pale);letter-spacing:.08em}
.detachment-builder-panel{margin:12px 0 22px;padding:16px;border:1px solid rgba(184,149,80,.4);border-radius:15px;background:#17152a}
.detachment-builder-head{display:grid;grid-template-columns:1fr minmax(130px,230px);align-items:center;gap:12px}
.detachment-builder-head small{color:var(--confluence-gold);font-weight:800;letter-spacing:.12em}
.detachment-builder-head h3{margin:3px 0;font-family:"Barlow Condensed";font-size:27px;text-transform:uppercase}
.detachment-stage-mini{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid #343248;font-size:12px}
.detachment-stage-mini strong{color:var(--confluence-gold)}
.detachment-stage-mini.locked{opacity:.4}
.detachment-locked{opacity:.42}
.play-head-buttons{display:flex;gap:7px;flex-wrap:wrap}

/* Models compendium */
.models-main,.campaign-main{max-width:920px;margin:auto;padding:92px 18px 90px;color:#f2eef7}
.models-brand,.campaign-logo{display:block;width:min(440px,82vw);height:105px;object-fit:contain;object-position:left center;margin-bottom:24px}
.models-main>h1,.campaign-main>h1{font-family:"Barlow Condensed";font-size:50px;text-transform:uppercase;margin:4px 0 24px}
.models-toolbar{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:8px;position:sticky;top:12px;z-index:20;padding:10px;background:#111426e8;border:1px solid #333b55;border-radius:14px;backdrop-filter:blur(10px)}
.models-toolbar input,.models-toolbar select{min-width:0}
.model-results-count{margin:18px 2px 10px;color:#aaa4bb;font-size:12px}
.models-grid{display:grid;gap:10px}
.compendium-card{background:#f2efe6;color:#1b1a20;border-radius:16px;overflow:hidden;border:1px solid rgba(184,149,80,.4)}
.compendium-card summary{display:grid;grid-template-columns:100px 1fr 28px;gap:13px;align-items:center;padding:12px;cursor:pointer;list-style:none}
.compendium-card summary::-webkit-details-marker{display:none}
.compendium-art{height:84px;border-radius:10px;overflow:hidden;background:linear-gradient(135deg,#132a93,#493273,#3d9984)}
.compendium-art img{width:100%;height:100%;object-fit:cover}
.compendium-card h2{font-family:"Barlow Condensed";font-size:27px;text-transform:uppercase;margin:3px 0}
.compendium-card summary p,.compendium-card summary small{margin:0;color:#66616a;font-size:12px}
.compendium-body{padding:4px 18px 22px;border-top:1px solid #d2cabd}
.compendium-body h3{font-family:"Barlow Condensed";font-size:23px;text-transform:uppercase;color:#8b6728;margin:20px 0 8px}
.compendium-threshold{display:inline-block;margin-top:14px;padding:7px 10px;border-radius:99px;background:#ded7ca;font-weight:800}
.compendium-rule{padding:9px 0;border-bottom:1px solid #ddd6ca}
.compendium-rule strong,.compendium-rule span{display:block}
.compendium-rule span,.compendium-rule p{font-size:13px;color:#5e5a61;margin:3px 0}

/* Campaign */
.campaign-control,.campaign-add,.campaign-army{background:#17152a;border:1px solid #343b57;border-radius:16px;padding:16px;margin:12px 0}
.campaign-control{display:flex;align-items:center;justify-content:space-between;gap:14px}
.round-control,.campaign-trackers>div,.campaign-hp{display:flex;align-items:center;gap:8px}
.round-control strong{font-size:32px;min-width:40px;text-align:center;color:var(--confluence-gold)}
.round-control button,.campaign-trackers button,.campaign-hp button{width:36px;height:36px;padding:0;border-radius:50%}
.campaign-add h2{font-family:"Barlow Condensed";font-size:28px;text-transform:uppercase;margin:0}
.campaign-key-entry{display:grid;grid-template-columns:1fr auto;gap:8px}
#campaignMessage{min-height:20px;margin-top:8px;color:var(--confluence-pale)}
.campaign-armies{display:grid;gap:12px}
.campaign-army{border-color:rgba(184,149,80,.35)}
.campaign-army-head{display:flex;justify-content:space-between;gap:10px}
.campaign-army-head h2{font-family:"Barlow Condensed";font-size:30px;text-transform:uppercase;margin:2px 0}
.campaign-army-head small{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--confluence-pale)}
.campaign-trackers{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.campaign-trackers>div{justify-content:center;padding:10px;border-radius:12px;background:#0f1325}
.campaign-trackers span{font-size:11px;font-weight:800;color:var(--confluence-gold)}
.campaign-trackers strong{font-size:23px;min-width:32px;text-align:center}
.campaign-roster{margin-top:12px;border-top:1px solid #343248;padding-top:10px}
.campaign-roster summary{font-weight:800;color:var(--confluence-pale);cursor:pointer}
.campaign-unit{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #302e43}
.campaign-unit small{display:block;color:#9f99aa;margin-top:3px}
.campaign-empty{text-align:center;padding:40px;color:#aaa4bb}

@media(max-width:700px){
 .models-toolbar{grid-template-columns:1fr 1fr}.models-toolbar input{grid-column:1/-1}
 .detachment-builder-head{grid-template-columns:1fr}
 .compendium-card summary{grid-template-columns:76px 1fr 20px}
 .compendium-art{height:70px}
 .campaign-trackers{grid-template-columns:1fr}
}

/* v1.3.0 Play Mode stacks */
.play-units{display:grid!important;grid-template-columns:minmax(0,1fr);gap:18px!important;align-items:start}
.play-unit-stack-group{min-width:0;width:100%;max-width:520px;margin:0 auto}
.play-stack-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding:0 4px 8px}
.play-stack-heading small{display:block;color:#9f99aa;font-size:10px;text-transform:uppercase;letter-spacing:.12em}
.play-stack-heading h3{margin:2px 0 0;font-family:"Barlow Condensed",sans-serif;font-size:22px;line-height:1;color:#f4f0f7;text-transform:uppercase}
.play-card-stack{position:relative;width:100%;overflow:hidden}
.play-swipe-track{display:flex;width:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none}
.play-swipe-track::-webkit-scrollbar{display:none}
.play-swipe-slide{flex:0 0 100%;min-width:100%;width:100%;scroll-snap-align:start;scroll-snap-stop:always;box-sizing:border-box}
.play-swipe-controls{margin-top:8px}
.round-check-label,.round-check-row{display:flex;align-items:center;gap:9px;cursor:pointer}
.round-check-label{font-size:12px;color:#c9c4d5;white-space:nowrap}
.round-check-label input,.round-check-row input{width:19px;height:19px;accent-color:var(--confluence-teal)}
.play-round-checklist{margin:0 0 18px;border:1px solid rgba(180,215,196,.25);border-radius:14px;background:#111426cc;overflow:hidden}
.play-round-checklist summary{cursor:pointer;padding:13px 15px;font-family:"Barlow Condensed",sans-serif;font-size:22px;font-weight:800;text-transform:uppercase;color:var(--confluence-gold)}
#playRoundChecklist{display:grid;padding:0 14px 12px}
.round-check-row{min-height:42px;border-top:1px solid #2c3045;color:#ddd8e5}
.round-check-row:first-child{border-top:0}
.round-check-row input:checked+span{text-decoration:line-through;opacity:.55}
@media(min-width:900px){.play-units{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:22px!important}.play-unit-stack-group{max-width:470px}}
@media(min-width:1250px){.play-units{max-width:1040px;margin-left:auto;margin-right:auto}}


/* ==========================================================
   v1.3.0 — Universal Thresholds / Score / Destroyed
   ========================================================== */

.play-command-bar .play-score-resource{
  border-left:1px solid #343b55;
  padding-left:10px;
}

.play-unit-actions{
  display:flex;
  gap:7px;
  align-items:center;
  flex-wrap:wrap;
}

.destroy-toggle{
  background:#3b1d22!important;
  border-color:#7e3f43!important;
  color:#f0c9c9!important;
}

.destroy-toggle.restore{
  background:#18352e!important;
  border-color:#3d806d!important;
  color:#ccecdf!important;
}

.play-unit-card.destroyed{
  opacity:.5!important;
  filter:grayscale(.55) saturate(.45)!important;
  position:relative;
}

.play-unit-card.destroyed::after{
  content:"DESTROYED";
  position:absolute;
  top:14px;
  right:14px;
  z-index:4;
  padding:6px 9px;
  border-radius:999px;
  background:#431f25;
  border:1px solid #9e565d;
  color:#f2d1d3;
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
}

.compendium-thresholds{
  margin-top:14px;
}

.thresholds,
.compendium-thresholds{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}

.thresholds span,
.compendium-thresholds span{
  display:flex!important;
  flex-direction:column;
  gap:2px;
  text-align:center;
}

.thresholds strong,
.compendium-thresholds strong{
  font-size:20px;
}


/* ==========================================================
   v1.3.0 — Universal threshold visibility + stable card stacks
   ========================================================== */

.stack-card .thresholds,
.play-unit-card .thresholds,
.compendium-card .thresholds{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  width:100%!important;
  margin:10px 0!important;
}

.stack-card .thresholds span,
.play-unit-card .thresholds span,
.compendium-card .thresholds span{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:54px!important;
  padding:7px!important;
  border-radius:10px!important;
  border:1px solid rgba(184,149,80,.35)!important;
  background:rgba(184,149,80,.08)!important;
  font-size:10px!important;
  font-weight:800!important;
  text-transform:uppercase!important;
  letter-spacing:.06em!important;
}

.stack-card .thresholds strong,
.play-unit-card .thresholds strong,
.compendium-card .thresholds strong{
  display:block!important;
  margin-top:3px!important;
  font-size:21px!important;
  line-height:1!important;
  letter-spacing:0!important;
}


/* ==========================================================
   v1.3.0 — Stable Play controls + removable Effects
   ========================================================== */

.effect-chip-wrap{
  display:inline-flex;
  align-items:stretch;
  border-radius:999px;
  overflow:hidden;
  background:#d8e9df;
}

.effect-chip-wrap .effect-chip{
  border-radius:999px 0 0 999px!important;
  margin:0!important;
}

.effect-remove{
  min-width:30px!important;
  width:30px!important;
  padding:0!important;
  border:0!important;
  border-left:1px solid rgba(23,61,53,.18)!important;
  border-radius:0 999px 999px 0!important;
  background:#c8dbd1!important;
  color:#173d35!important;
  font-size:17px!important;
  font-weight:900!important;
  line-height:1!important;
}

.effect-remove:active{
  background:#b8cdc2!important;
}


/* ==========================================================
   v1.3.0 — Major release visual system
   ========================================================== */

:root{
  --tc-midnight:#090c18;
  --tc-navy:#11172a;
  --tc-teal:#59a993;
  --tc-pale:#bcd9c9;
  --tc-violet:#7c6ab2;
  --tc-gold:#b89658;
  --tc-copper:#9e6e4d;
}

.confluence-drawer-logo{
  width:min(310px,68vw)!important;
  height:78px!important;
  object-fit:contain!important;
}

/* Landing */
.confluence-landing-page{background:var(--tc-midnight)!important;color:#f4f1e9!important;overflow-x:hidden}
.landing-header{
  position:fixed;inset:0 0 auto 0;height:74px;z-index:60;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(180deg,rgba(7,9,18,.96),rgba(7,9,18,.66),transparent);
  border-bottom:1px solid rgba(184,150,88,.22);
  backdrop-filter:blur(8px)
}
.landing-header-logo img{width:min(330px,54vw);height:58px;object-fit:contain}
.landing-account-link{
  position:absolute;right:22px;color:#efe9dc;text-decoration:none;font-family:"Barlow Condensed",sans-serif;
  font-weight:800;letter-spacing:.1em;font-size:14px
}
.landing-menu{position:fixed!important;left:18px!important;top:17px!important;z-index:80!important}
.tc-hero{
  min-height:82vh;position:relative;display:flex;align-items:center;justify-content:center;
  overflow:hidden;padding:110px 20px 70px;
  background:
    radial-gradient(circle at 50% 72%,rgba(59,129,117,.22),transparent 28rem),
    radial-gradient(circle at 15% 20%,rgba(115,89,169,.18),transparent 32rem),
    linear-gradient(180deg,#090c18 0%,#0d1324 44%,#10162b 75%,#090c18 100%)
}
.tc-hero::after{
  content:"";position:absolute;inset:auto 0 0;height:150px;background:linear-gradient(transparent,var(--tc-midnight));pointer-events:none
}
.tc-aurora{position:absolute;width:120%;height:46%;filter:blur(38px);opacity:.38;border-radius:50%;mix-blend-mode:screen}
.tc-aurora-a{top:18%;left:-30%;transform:rotate(-8deg);background:linear-gradient(90deg,transparent,#4b88a6,#64bd9f,#7360b7,transparent);animation:tcAuroraA 16s ease-in-out infinite alternate}
.tc-aurora-b{top:32%;right:-45%;transform:rotate(11deg);background:linear-gradient(90deg,transparent,#7d58a7,#4f9e91,#2f657c,transparent);animation:tcAuroraB 19s ease-in-out infinite alternate}
@keyframes tcAuroraA{to{transform:translateX(14%) rotate(3deg) scaleY(1.12)}}
@keyframes tcAuroraB{to{transform:translateX(-13%) rotate(-4deg) scaleY(.9)}}
.tc-hero-content{position:relative;z-index:4;text-align:center;width:min(900px,94vw)}
.tc-hero-logo{display:block;width:min(760px,92vw);height:auto;max-height:240px;object-fit:contain;margin:0 auto 24px;filter:drop-shadow(0 16px 40px #0008)}
.tc-hero-kicker,.tc-eyebrow{font-family:"Barlow Condensed",sans-serif;font-weight:800;letter-spacing:.18em;font-size:12px;color:var(--tc-gold);text-transform:uppercase}
.tc-primary-cta{
  display:inline-flex;align-items:center;justify-content:center;min-width:230px;min-height:58px;margin-top:22px;padding:0 28px;
  border:1px solid rgba(216,190,132,.72);background:linear-gradient(145deg,#b89658,#8c6b36);
  color:#0b0d15;text-decoration:none;font-family:"Barlow Condensed",sans-serif;font-weight:900;font-size:24px;letter-spacing:.08em;
  box-shadow:0 16px 45px #0007,inset 0 1px rgba(255,255,255,.22);clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)
}
.tc-section{width:min(1120px,calc(100% - 36px));margin:auto;padding:90px 0}
.tc-section h1,.tc-section h2,.tc-joswind h2,.tc-final-cta h2{
  margin:7px 0 22px;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;font-size:clamp(42px,7vw,76px);line-height:.92
}
.tc-intro{max-width:880px;text-align:center}
.tc-intro p{max-width:740px;margin:16px auto;line-height:1.7;color:#bbb7c4}
.tc-large-copy{font-family:"Barlow Condensed",sans-serif;font-size:clamp(24px,4vw,38px)!important;line-height:1.15!important;color:#eee9df!important}
.tc-feature-pair{display:grid;grid-template-columns:1fr 1fr;min-height:480px}
.tc-feature{position:relative;display:flex;align-items:flex-end;padding:42px;color:#f6f1e7;text-decoration:none;overflow:hidden;border-top:1px solid rgba(184,150,88,.2);border-bottom:1px solid rgba(184,150,88,.2)}
.tc-feature::before{content:"";position:absolute;inset:0;transition:.35s ease}
.tc-feature-army::before{background:radial-gradient(circle at 25% 30%,rgba(78,170,143,.35),transparent 24rem),linear-gradient(140deg,#111b29,#1d1730 68%,#0d101c)}
.tc-feature-rules::before{background:radial-gradient(circle at 80% 24%,rgba(118,86,158,.35),transparent 23rem),linear-gradient(145deg,#171425,#0c1821)}
.tc-feature:hover::before{transform:scale(1.025)}
.tc-feature>div{position:relative;z-index:2;max-width:480px}
.tc-feature span,.tc-feature small{font-family:"Barlow Condensed";font-weight:800;letter-spacing:.16em;color:var(--tc-gold)}
.tc-feature h2{font-family:"Barlow Condensed";font-size:48px;text-transform:uppercase;margin:8px 0}
.tc-feature p{color:#beb9c4;line-height:1.55}.tc-feature b{display:inline-block;margin-top:18px;color:#d8bd80}
.tc-joswind{
  min-height:600px;position:relative;display:flex;align-items:center;padding:70px max(24px,calc((100vw - 1100px)/2));
  background:
   radial-gradient(ellipse at 70% 0%,rgba(85,181,150,.36),transparent 38%),
   radial-gradient(ellipse at 40% 0%,rgba(127,86,178,.42),transparent 48%),
   linear-gradient(180deg,#15132a,#0b1b24 58%,#090c18)
}
.tc-joswind::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,12,24,.85),rgba(9,12,24,.25),rgba(9,12,24,.65))}
.tc-joswind-copy{position:relative;z-index:2;max-width:610px}.tc-joswind-copy p{color:#d0cbd5;line-height:1.7;font-size:18px}
.tc-tool-grid,.tc-faction-grid,.tc-news-grid{display:grid;gap:14px}
.tc-tool-grid{grid-template-columns:repeat(3,1fr)}
.tc-tool-grid a,.tc-faction-grid a,.tc-news-grid a{
  min-height:210px;padding:24px;border:1px solid #34384d;background:linear-gradient(145deg,#151827,#101523);
  color:#f4efe7;text-decoration:none;box-shadow:0 20px 45px #0004
}
.tc-tool-grid span,.tc-faction-grid small,.tc-news-grid small{color:var(--tc-gold);font-family:"Barlow Condensed";font-weight:800;letter-spacing:.12em}
.tc-tool-grid h3,.tc-faction-grid h3{font-family:"Barlow Condensed";font-size:36px;text-transform:uppercase;margin:30px 0 8px}
.tc-tool-grid p,.tc-faction-grid p{color:#aaa7b4;line-height:1.5}
.tc-factions{background:linear-gradient(180deg,#090c18,#11142a 50%,#090c18)}
.tc-faction-grid{grid-template-columns:1fr 1fr}
.tc-faction-grid a{min-height:280px;background:radial-gradient(circle at 75% 20%,rgba(91,159,145,.2),transparent 18rem),linear-gradient(145deg,#161a2d,#10111d)}
.tc-news-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}
.tc-news-head a{color:#d4b87c;text-decoration:none;font-weight:800}
.tc-news-grid{grid-template-columns:repeat(3,1fr)}
.tc-news-grid a{min-height:130px;display:flex;flex-direction:column;justify-content:space-between}
.tc-site-updates{padding-top:20px;border-top:1px solid #272b3c}
.tc-site-updates p{max-width:750px;color:#aaa6b4;line-height:1.6}
.tc-final-cta{min-height:480px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:70px 20px;background:radial-gradient(circle at 50% 10%,rgba(77,162,143,.2),transparent 24rem),linear-gradient(#0d1322,#070910)}
.tc-final-cta img{width:min(520px,84vw);max-height:160px;object-fit:contain}
.tc-final-cta h2{font-size:40px;margin-top:30px}
.tc-footer{padding:45px 22px 60px;text-align:center;border-top:1px solid #262a37;background:#070910}
.tc-footer img{width:min(320px,75vw);height:80px;object-fit:contain}.tc-footer nav{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin:22px 0}.tc-footer a{color:#d5d0da;text-decoration:none}.tc-footer small{color:#706e7c}

/* Army sharing */
.army-share-panel{margin:0 0 16px;padding:14px;border:1px solid #3a405d;border-radius:14px;background:#15182b}
.army-share-panel p{font-size:12px;color:#aaa7b5;margin:7px 0 12px}
.army-share-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.army-share-actions span{font-size:12px;color:var(--tc-pale)}
.unit-composition,.card-composition,.compendium-composition{display:block;color:#b3adbb;font-size:12px;margin:4px 0 8px}

/* Detachment selection */
.detachment-flavour{color:#c1bbc8;line-height:1.55}
.detachment-visible-stages{display:grid;gap:9px;margin-top:14px}
.detachment-stage-read{padding:13px 14px;border-left:3px solid var(--tc-gold);background:#101525;border-radius:0 10px 10px 0}
.detachment-stage-read small{color:var(--tc-gold);font-weight:800;letter-spacing:.08em}.detachment-stage-read h4{margin:4px 0 7px;font-family:"Barlow Condensed";font-size:22px;text-transform:uppercase}.detachment-stage-read p{margin:0;color:#bbb7c3;line-height:1.5}

/* Live Play Mode */
.play-detachment-state{margin:0 0 14px;padding:12px;border:1px solid rgba(184,150,88,.32);border-radius:13px;background:#12172a}
.play-detachment-state-head{display:flex;gap:10px;align-items:center;margin-bottom:8px}.play-detachment-state-head span{font-size:10px;letter-spacing:.12em;color:var(--tc-gold);font-weight:900}
.fate-pool,.kindred-track{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}.fate-pool strong,.kindred-track strong{font-size:11px;color:#d9ccac}.fate-dice{display:flex;gap:6px;align-items:center}.fate-dice button{width:40px;height:40px;padding:0;border-radius:8px;font-size:18px}
.play-live-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:10px 0}
.live-stat{position:relative;display:flex!important;flex-direction:column;align-items:center;justify-content:center;min-height:56px;padding:7px;border:1px solid #37394a;border-radius:9px;background:#f0ece2;color:#171820}
.live-stat span{font-size:10px!important;letter-spacing:.08em!important;font-weight:900!important;color:#746f72!important}.live-stat strong{font-size:24px!important;font-weight:900!important;line-height:1!important}.live-stat small{font-size:8px;color:#8b5e35;margin-top:3px}
.live-stat.modified{border-color:#b89658!important;background:linear-gradient(145deg,#eee8d8,#dfeae5)!important;box-shadow:inset 0 0 0 1px rgba(88,158,139,.35)}
.live-stat.modified strong{color:#23695b!important}
.play-thresholds{display:grid!important;grid-template-columns:1fr 1fr;gap:7px!important}
.play-thresholds .live-stat{margin:0!important;width:100%!important}
.live-modifier-list{display:flex;gap:6px;flex-wrap:wrap;margin:5px 0 9px}.live-modifier-list span{padding:5px 7px;border-radius:99px;background:#23382f;color:#bfe1d2;font-size:9px;font-weight:700}
.play-composition{display:block!important;color:#aaa5b2!important;margin-top:3px!important}
.play-granted-rules{margin:12px 0;padding:11px;border:1px solid rgba(184,150,88,.55);background:linear-gradient(145deg,rgba(184,150,88,.08),rgba(82,151,135,.08));border-radius:10px}
.granted-label{font-size:9px;color:#d3b777;font-weight:900;letter-spacing:.12em;margin-bottom:8px}.granted-rule{padding:8px 0;border-top:1px solid rgba(184,150,88,.2)}.granted-rule:first-of-type{border-top:0}.granted-rule strong{font-family:"Barlow Condensed";font-size:18px;text-transform:uppercase}.granted-rule p{font-size:11px;line-height:1.45;color:#c2bdc8;margin:4px 0 0}
.play-state-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:7px 0}.play-state-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 5px 5px 9px;border-radius:99px;background:#322e4d;color:#d7cff2;font-size:10px}.play-state-chip button{width:22px;height:22px;padding:0;border-radius:50%;border:0}
.psychic-casting-reminder{padding:10px;border-left:3px solid var(--tc-violet);background:#17152b;font-size:12px;line-height:1.5}

/* Campaign */
.campaign-local-add{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:8px}

/* Models */
.compendium-composition{color:#6e6970!important}

/* Responsive */
@media(max-width:760px){
 .landing-header-logo img{width:52vw}.landing-account-link{font-size:11px;right:13px}
 .tc-hero{min-height:70vh;padding-top:105px}.tc-hero-logo{width:94vw}
 .tc-section{padding:64px 0}
 .tc-feature-pair{grid-template-columns:1fr}.tc-feature{min-height:360px;padding:28px}
 .tc-tool-grid,.tc-faction-grid,.tc-news-grid{grid-template-columns:1fr}
 .tc-joswind{min-height:500px;padding:60px 22px}
 .tc-news-head{align-items:flex-start;flex-direction:column}
 .campaign-local-add,.campaign-key-entry{grid-template-columns:1fr}
 .play-live-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
}

.reserve-status{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:9px 10px;margin:9px 0;border:1px solid #55507a;background:#1b1832;border-radius:10px}
.reserve-status strong{color:#d5c8ef;font-size:10px;letter-spacing:.1em}.reserve-status span{color:#aaa4b6;font-size:10px;line-height:1.35}.reserve-status button{padding:7px 9px;font-size:10px}
.second-detachment-builder{margin-top:18px;padding-top:16px;border-top:1px solid #34384c}.second-detachment-head{display:grid;grid-template-columns:1fr minmax(180px,260px);gap:10px;align-items:center}.second-detachment-head small{color:var(--tc-gold);font-weight:900;letter-spacing:.08em}
.detachment-stage-read.secondary{border-left-color:var(--tc-teal)}
.support-badge{background:#315348!important}


/* ==========================================================
   v1.3.0 landing hotfix — mobile first, full-width and readable
   ========================================================== */
html:has(body.confluence-landing-page),
body.confluence-landing-page{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  overflow-x:hidden!important;
}
body.confluence-landing-page *{box-sizing:border-box}
body.confluence-landing-page main{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  display:block!important;
}
body.confluence-landing-page .landing-header{
  width:100%!important;
  max-width:none!important;
  left:0!important;right:0!important;
}
body.confluence-landing-page .tc-hero,
body.confluence-landing-page .tc-joswind,
body.confluence-landing-page .tc-factions,
body.confluence-landing-page .tc-final-cta{
  width:100vw!important;
  max-width:none!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
}
body.confluence-landing-page .tc-section{
  width:min(1120px,calc(100% - 40px))!important;
  max-width:1120px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
body.confluence-landing-page .tc-feature-pair{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}
body.confluence-landing-page img{
  max-width:100%;
}
body.confluence-landing-page .tc-hero-logo{
  width:min(760px,88vw)!important;
  max-width:88vw!important;
  height:auto!important;
}
body.confluence-landing-page .landing-header-logo img{
  width:min(330px,46vw)!important;
  max-width:46vw!important;
  height:54px!important;
  object-fit:contain!important;
}
body.confluence-landing-page .tc-feature{
  min-width:0!important;
}
body.confluence-landing-page .tc-tool-grid,
body.confluence-landing-page .tc-faction-grid,
body.confluence-landing-page .tc-news-grid{
  width:100%!important;
  min-width:0!important;
}

@media (max-width: 760px){
  body.confluence-landing-page .landing-header{
    height:68px!important;
    padding:0 58px!important;
    justify-content:center!important;
  }
  body.confluence-landing-page .landing-menu{
    left:12px!important;top:14px!important;
    width:40px!important;height:40px!important;
    font-size:22px!important;
  }
  body.confluence-landing-page .landing-account-link{
    right:12px!important;
    font-size:10px!important;
    letter-spacing:.06em!important;
  }
  body.confluence-landing-page .landing-header-logo img{
    width:58vw!important;
    max-width:270px!important;
    height:48px!important;
  }
  body.confluence-landing-page .tc-hero{
    min-height:68svh!important;
    padding:100px 20px 58px!important;
  }
  body.confluence-landing-page .tc-hero-content{
    width:100%!important;
    max-width:100%!important;
  }
  body.confluence-landing-page .tc-hero-logo{
    width:88vw!important;
    max-width:520px!important;
    margin:0 auto 18px!important;
  }
  body.confluence-landing-page .tc-primary-cta{
    min-width:min(240px,78vw)!important;
    min-height:56px!important;
    font-size:22px!important;
  }
  body.confluence-landing-page .tc-section{
    width:calc(100% - 32px)!important;
    padding:58px 0!important;
  }
  body.confluence-landing-page .tc-intro{
    text-align:left!important;
  }
  body.confluence-landing-page .tc-section h1,
  body.confluence-landing-page .tc-section h2,
  body.confluence-landing-page .tc-joswind h2{
    font-size:clamp(38px,12vw,56px)!important;
    line-height:.95!important;
  }
  body.confluence-landing-page .tc-large-copy{
    font-size:27px!important;
    line-height:1.13!important;
  }
  body.confluence-landing-page .tc-intro p,
  body.confluence-landing-page .tc-joswind-copy p,
  body.confluence-landing-page .tc-site-updates p{
    font-size:16px!important;
    line-height:1.65!important;
  }
  body.confluence-landing-page .tc-feature-pair{
    display:block!important;
  }
  body.confluence-landing-page .tc-feature{
    min-height:320px!important;
    padding:28px 22px!important;
  }
  body.confluence-landing-page .tc-feature h2{
    font-size:42px!important;
    line-height:.96!important;
  }
  body.confluence-landing-page .tc-feature p{
    font-size:15px!important;
  }
  body.confluence-landing-page .tc-joswind{
    min-height:520px!important;
    padding:60px 20px!important;
    align-items:flex-end!important;
  }
  body.confluence-landing-page .tc-joswind-copy{
    width:100%!important;
    max-width:none!important;
  }
  body.confluence-landing-page .tc-tool-grid,
  body.confluence-landing-page .tc-faction-grid,
  body.confluence-landing-page .tc-news-grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  body.confluence-landing-page .tc-tool-grid a,
  body.confluence-landing-page .tc-faction-grid a{
    min-height:170px!important;
    padding:22px!important;
  }
  body.confluence-landing-page .tc-tool-grid h3,
  body.confluence-landing-page .tc-faction-grid h3{
    font-size:34px!important;
    margin:24px 0 6px!important;
  }
  body.confluence-landing-page .tc-news-head{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
  }
  body.confluence-landing-page .tc-news-grid a{
    min-height:110px!important;
  }
  body.confluence-landing-page .tc-final-cta{
    min-height:430px!important;
    padding:58px 20px!important;
  }
  body.confluence-landing-page .tc-final-cta img{
    width:82vw!important;
    max-width:480px!important;
  }
  body.confluence-landing-page .tc-footer{
    width:100%!important;
    max-width:none!important;
  }
}

/* Logo treatment everywhere: transparent image, no box behind it. */
.confluence-drawer-logo,
.landing-header-logo img,
.tc-hero-logo,
.tc-final-cta img,
.tc-footer img{
  background:transparent!important;
}

/* Detachments collapsible in Army Builder */
.detachment-collapse{
  margin-top:10px;
  border:1px solid #343a55;
  border-radius:14px;
  overflow:hidden;
  background:#101426;
}
.detachment-collapse>summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  font-family:"Barlow Condensed",sans-serif;
  font-size:20px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.detachment-collapse>summary::-webkit-details-marker{display:none}
.detachment-collapse>summary::after{
  content:"⌄";
  color:var(--tc-gold);
  transition:.2s ease;
}
.detachment-collapse[open]>summary::after{transform:rotate(180deg)}
.detachment-collapse-body{padding:0 14px 14px}

/* Core stat readability retained from the 1.2.6 hotfix */
.basic-stat strong{font-size:25px!important;font-weight:900!important;line-height:1!important}
.basic-stat span{font-weight:900!important}
.category-unit small{font-size:13px}
.play-live-stats .live-stat strong{font-size:26px!important;font-weight:900!important}

.update-card.major-update{margin:24px auto;padding:22px;max-width:980px;border:1px solid rgba(184,150,88,.55);border-radius:16px;background:linear-gradient(145deg,#15182a,#101522);color:#eee9df}
.update-card.major-update small{color:#b89658;font-weight:900;letter-spacing:.12em}
.update-card.major-update h2{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;font-size:34px;margin:7px 0}
.update-card.major-update p{color:#bbb6c2;line-height:1.55}

/* v1.3.1 play hotfix */
.play-stack{
  height:auto!important;
  min-height:0!important;
  transition:height .2s ease;
}
.play-stack .play-unit-card{
  position:relative!important;
  inset:auto!important;
}
.play-stack .play-unit-card[hidden],
.play-stack .play-unit-card:not(.is-active):not(:only-child){
  display:none!important;
}
.play-granted-rules{
  color:#27242a!important;
  background:#f0ecdf!important;
}
.play-granted-rules .granted-label{
  color:#9a7440!important;
}
.play-granted-rules .granted-rule strong{
  color:#1f1d22!important;
}
.play-granted-rules .granted-rule p,
.play-granted-rules .rule-term{
  color:#4b4650!important;
}
.play-granted-rules .rule-term{
  text-decoration-color:#6f6773!important;
}
.play-bottom-controls{
  display:flex;
  justify-content:center;
  padding:18px 12px 30px;
}
.play-bottom-controls button{
  min-width:min(320px,90%);
}
button.danger,#playEndBattle{
  border-color:#8e4a4a!important;
  color:#f2d6d6!important;
  background:#3a1f29!important;
}

/* v1.3.1 swipe-stack sizing correction */
.play-swipe-track{
  align-items:flex-start!important;
  transition:height .22s ease!important;
}
.play-swipe-slide{
  height:auto!important;
  align-self:flex-start!important;
}
.play-swipe-slide:not(.active-slide){
  pointer-events:none;
}
.play-swipe-slide.active-slide{
  pointer-events:auto;
}
.play-granted-rules,
.play-granted-rules *{
  --play-rule-text:#302c33;
}
.play-granted-rules p,
.play-granted-rules strong,
.play-granted-rules .rule-term{
  opacity:1!important;
}
.play-granted-rules p{color:#403b43!important}
.play-granted-rules strong{color:#17151a!important}
.play-granted-rules .rule-term{color:#403b43!important}


/* ==========================================================
   v1.4.0 — T'au update / motion / Centrepiece selection
   ========================================================== */

:root{
  --motion-fast:160ms;
  --motion-standard:230ms;
  --motion-slow:320ms;
  --motion-ease:cubic-bezier(.22,.8,.28,1);
}

/* Centrepieces remain tagless player-facing, but read as special in selection. */
#pickerList .unit-row.centrepiece-option{
  position:relative;
  border:1px solid rgba(199,162,92,.92)!important;
  box-shadow:
    inset 0 0 0 1px rgba(242,215,151,.16),
    0 0 0 1px rgba(88,68,36,.25),
    0 10px 26px rgba(0,0,0,.18);
  background:
    linear-gradient(135deg,rgba(184,150,88,.09),transparent 42%),
    var(--panel,#161a2a)!important;
}
#pickerList .unit-row.centrepiece-option::before,
#pickerList .unit-row.centrepiece-option::after{
  content:"";
  position:absolute;
  width:13px;height:13px;
  pointer-events:none;
}
#pickerList .unit-row.centrepiece-option::before{
  left:5px;top:5px;border-left:2px solid #c7a25c;border-top:2px solid #c7a25c;
}
#pickerList .unit-row.centrepiece-option::after{
  right:5px;bottom:5px;border-right:2px solid #c7a25c;border-bottom:2px solid #c7a25c;
}

/* T'au Play Mode spotting helper. */
.tau-spotted-track{
  display:grid;
  grid-template-columns:auto minmax(120px,1fr) minmax(120px,1fr) auto;
  gap:8px;
  align-items:center;
  margin-top:9px;
  padding:10px;
  border:1px solid rgba(94,174,159,.35);
  border-radius:10px;
  background:rgba(52,119,109,.09);
}
.tau-spotted-track strong{
  font-family:"Barlow Condensed",sans-serif;
  letter-spacing:.1em;
  color:#b8ddd2;
}
.tau-spotted-track input{
  min-width:0;
}

/* Three current factions on wider landing layouts. */
@media(min-width:761px){
  .tc-faction-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}

/* Consistent motion language. */
button,
a,
select,
input,
.category,
.category-unit,
.unit-row,
.stack-card,
.play-unit-card,
.play-swipe-track,
.play-swipe-slide,
.swipe-track,
.swipe-slide,
.rule-popup,
.rule-modal,
.drawer-modal,
.export-modal,
.side-drawer .drawer-panel,
.drawer-scrim,
.detachment-stage-read,
.live-stat,
.effect-chip,
.play-state-chip{
  transition:
    transform var(--motion-standard) var(--motion-ease),
    opacity var(--motion-standard) var(--motion-ease),
    background-color var(--motion-standard) var(--motion-ease),
    border-color var(--motion-standard) var(--motion-ease),
    color var(--motion-standard) var(--motion-ease),
    box-shadow var(--motion-standard) var(--motion-ease);
}

button:active,
a.tc-feature:active,
.tc-tool-grid a:active,
.tc-faction-grid a:active{
  transform:scale(.985);
}

.side-drawer .drawer-panel{
  transition:transform var(--motion-slow) var(--motion-ease)!important;
}
.drawer-scrim{
  transition:opacity var(--motion-standard) ease!important;
}
.modal.open,
.rule-popup.open,
.rule-modal.open,
.export-modal.open{
  animation:confluenceModalIn var(--motion-standard) var(--motion-ease) both;
}
@keyframes confluenceModalIn{
  from{opacity:0;transform:translateY(8px) scale(.995)}
  to{opacity:1;transform:none}
}

/* Smoother expandable content where supported. */
@supports (interpolate-size: allow-keywords){
  :root{interpolate-size:allow-keywords}
  details::details-content{
    block-size:0;
    opacity:0;
    overflow:hidden;
    transition:block-size var(--motion-standard) var(--motion-ease),opacity var(--motion-fast) ease;
  }
  details[open]::details-content{
    block-size:auto;
    opacity:1;
  }
}

.play-swipe-track,
.swipe-track{
  scroll-behavior:smooth;
  scroll-snap-type:x mandatory;
}
.play-swipe-slide,
.swipe-slide{
  scroll-snap-align:start;
}

/* Make live stat changes feel alive without being distracting. */
.live-stat.modified{
  animation:modifiedStatIn var(--motion-slow) var(--motion-ease);
}
@keyframes modifiedStatIn{
  from{transform:scale(.975);filter:brightness(1.08)}
  to{transform:none;filter:none}
}

@media(max-width:760px){
  .tau-spotted-track{
    grid-template-columns:1fr;
    align-items:stretch;
  }
}

@media(prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
}


/* v1.4.1 — dynamic 5% points allowance */
.points-strip-state .meter{
  overflow:hidden;
}
.points-strip-state .meter i{
  transition:width var(--motion-standard,230ms) var(--motion-ease,ease),
             background-color var(--motion-standard,230ms) var(--motion-ease,ease);
}
.points-strip-state.allowance-active{
  color:#f0c9c9;
}
.points-strip-state.allowance-active .meter{
  border-color:#8e4a4a!important;
  background:#2a171d!important;
}
.points-strip-state.allowance-active .meter i{
  background:#b65353!important;
}
.points-strip-state.allowance-active small,
.points-strip-state.allowance-active strong span:last-child{
  color:#e9aaaa!important;
}
.points-strip-state.over-maximum .meter i{
  background:#d84545!important;
}


/* ==========================================================
   v1.5.0 — Commanders, Dispositions & Primary Missions
   ========================================================== */

.commander-builder-panel{
  margin:14px 0;
  border:1px solid #343a55;
  border-radius:16px;
  background:#101426;
  overflow:hidden;
}
.commander-builder-head{
  padding:15px 16px 10px;
  border-bottom:1px solid #292f48;
}
.commander-builder-head small,
.field-label{
  display:block;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  color:var(--confluence-gold);
  text-transform:uppercase;
}
.commander-builder-head h3{
  margin:3px 0 0;
  font-family:"Barlow Condensed",sans-serif;
  font-size:28px;
  text-transform:uppercase;
}
#commanderBuilderBody{padding:14px 16px 16px}
.commander-grid{display:grid;gap:14px}
.commander-priority-note,
.commander-empty,
.mission-unavailable{
  padding:11px 12px;
  border-radius:11px;
  background:#171b30;
  color:#bdb8ca;
  line-height:1.45;
  font-size:13px;
}
.commander-priority-note strong{color:#ead69e}
.disposition-options{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:8px;
}
.disposition-choice{
  min-height:42px;
  border-radius:999px!important;
  padding:8px 14px!important;
  font-weight:900!important;
  letter-spacing:.03em;
}
.disposition-choice.selected{
  border-color:var(--confluence-gold)!important;
  background:#302744!important;
  color:#f2dfad!important;
  box-shadow:0 0 0 1px rgba(184,150,88,.2) inset;
}
.mission-choice-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-top:8px;
}
.mission-choice{
  text-align:left!important;
  min-height:82px;
  display:flex!important;
  flex-direction:column;
  justify-content:space-between;
  gap:8px;
  border-radius:12px!important;
  padding:12px!important;
}
.mission-choice strong{
  font-family:"Barlow Condensed",sans-serif;
  font-size:19px;
  text-transform:uppercase;
}
.mission-choice small{color:#9f9aaa}
.mission-choice.selected{
  border-color:var(--confluence-gold)!important;
  background:#28223b!important;
  box-shadow:inset 3px 0 0 var(--confluence-gold);
}

.view-command-summary{margin:12px 0}
.view-command-card{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:9px 14px;
  padding:12px 14px;
  border:1px solid rgba(184,150,88,.45);
  border-radius:13px;
  background:#12172a;
}
.view-command-card small{color:var(--confluence-gold);font-weight:900;letter-spacing:.1em}
.view-command-card strong{font-family:"Barlow Condensed";font-size:22px;text-transform:uppercase}
.view-command-card span{color:#bbb6c7}
.view-command-card button{margin-left:auto}
.view-command-card.incomplete{border-color:#784954}

/* Large battle header now leaves naturally when the player scrolls. */
.play-aurora-head{
  position:relative!important;
  top:auto!important;
  z-index:2!important;
  min-height:118px;
  transition:background var(--motion-standard) var(--motion-ease);
}
.play-battle-plan{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
  color:#d8d2df;
  margin-top:3px;
}
.play-battle-plan>strong{
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#fff;
}
.play-commander-line{
  margin-top:7px;
  color:#c6c1ce;
  font-size:13px;
}

/* Compact battle navigation follows instead. */
.play-sticky-nav{
  position:sticky;
  top:62px;
  z-index:28;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  margin:0 0 10px;
  border:1px solid #39405c;
  border-radius:12px;
  background:rgba(15,18,33,.94);
  backdrop-filter:blur(13px);
  box-shadow:0 9px 24px rgba(0,0,0,.25);
}
.play-sticky-status{
  display:flex;
  gap:8px;
  align-items:center;
  min-width:0;
  font-size:11px;
  color:#bdb8c7;
  white-space:nowrap;
}
.play-sticky-status>strong{
  max-width:160px;
  overflow:hidden;
  text-overflow:ellipsis;
  color:#fff;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.play-sticky-actions{
  display:flex;
  gap:5px;
  min-width:0;
}
.play-sticky-actions .play-faction-btn{
  min-height:34px!important;
  padding:6px 9px!important;
  font-size:11px!important;
  white-space:nowrap;
}

/* AP / points / round controls are useful but no longer permanently occupy the screen. */
.play-command-bar{
  position:relative!important;
  top:auto!important;
  z-index:2!important;
}

/* Disposition-informed battle treatment. */
.disposition-priority-assets{
  --disposition-accent:#b58a45;
  --disposition-deep:#59411f;
}
.disposition-disruption{
  --disposition-accent:#8757a7;
  --disposition-deep:#3f2854;
}
.disposition-reconnaissance{
  --disposition-accent:#4b8b80;
  --disposition-deep:#244b45;
}
.disposition-purge-the-foe{
  --disposition-accent:#9a3f45;
  --disposition-deep:#4e2026;
}
.disposition-take-and-hold{
  --disposition-accent:#466e9a;
  --disposition-deep:#233a59;
}
.play-aurora-head[class*="disposition-"]{
  border-bottom-color:var(--disposition-accent,var(--confluence-gold));
  background:
    linear-gradient(105deg,rgba(12,17,37,.97),color-mix(in srgb,var(--disposition-deep,#343055) 75%,#161326) 58%,rgba(25,49,55,.95)),
    radial-gradient(circle at 72% 0%,color-mix(in srgb,var(--disposition-accent,#b89658) 38%,transparent),transparent 34%);
}
.play-sticky-nav[class*="disposition-"]{
  border-color:color-mix(in srgb,var(--disposition-accent,#b89658) 65%,#30364e);
  box-shadow:inset 3px 0 0 var(--disposition-accent,#b89658),0 9px 24px rgba(0,0,0,.25);
}
.play-sticky-nav[class*="disposition-"] .play-sticky-status>strong{
  color:color-mix(in srgb,var(--disposition-accent,#b89658) 72%,white);
}

/* Primary Mission reference */
.primary-mission-card,
.round-scoring-card,
.battle-summary-card{max-width:640px!important}
.mission-reference{display:grid;gap:12px}
.mission-meta{
  color:var(--confluence-gold);
  text-transform:uppercase;
  font-size:11px;
  font-weight:900;
  letter-spacing:.09em;
}
.mission-reference section{
  padding:12px;
  border:1px solid #343a51;
  border-radius:11px;
  background:#14182a;
}
.mission-reference section small{
  color:#a69fb4;
  font-weight:900;
  letter-spacing:.08em;
}
.mission-reference section p{line-height:1.52}
.mission-score-condition{
  display:grid;
  grid-template-columns:54px 1fr;
  gap:10px;
  align-items:start;
}
.mission-score-condition>strong{
  font-family:"Barlow Condensed";
  font-size:24px;
  color:#e4c984;
}
.mission-score-condition p{margin:2px 0!important}
.mission-lore{font-style:italic;color:#aaa4b2}
.mission-history{display:grid;gap:4px}
.mission-history>div{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:8px 0;
  border-top:1px solid #30354d;
}
.mission-history>div:first-of-type{border-top:0}

/* End-of-round scoring */
.round-score-mission{display:grid;gap:12px}
.round-score-mission h4{
  margin:0;
  font-family:"Barlow Condensed";
  font-size:30px;
  text-transform:uppercase;
}
.round-score-setup{
  padding:11px;
  border-left:3px solid var(--confluence-gold);
  background:#171a2c;
  border-radius:6px;
}
.round-score-setup small{color:#c4a866;font-weight:900;letter-spacing:.08em}
.round-score-check{
  display:grid;
  grid-template-columns:28px 1fr;
  align-items:start;
  gap:10px;
  padding:13px;
  border:1px solid #373d55;
  border-radius:12px;
  background:#14182a;
  cursor:pointer;
}
.round-score-check input{
  width:20px;height:20px;margin-top:3px;
}
.round-score-check span{
  display:grid;
  grid-template-columns:54px 1fr;
  gap:8px;
  line-height:1.45;
}
.round-score-check span>strong{
  color:#ead293;
  font-family:"Barlow Condensed";
  font-size:22px;
}
.round-score-total{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:12px 14px;
  border-radius:12px;
  background:#232036;
}
.round-score-total strong{font-size:25px}
.round-scoring-actions{
  display:flex;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:8px;
  margin-top:16px;
}
.round-score-empty{padding:14px;border-radius:12px;background:#171a2b;color:#bdb8c6}
.battle-summary-total{
  text-align:center;
  padding:18px;
  border:1px solid rgba(184,150,88,.4);
  border-radius:14px;
  background:#15192b;
}
.battle-summary-total small{display:block;color:#b9a36e;font-weight:900;letter-spacing:.12em}
.battle-summary-total strong{display:block;font-size:46px;font-family:"Barlow Condensed";margin-top:3px}
.battle-summary-plan{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px;
  margin:12px 0;
  color:#bbb5c4;
}
.battle-summary-plan strong{color:#fff}

@media(max-width:760px){
  .mission-choice-grid{grid-template-columns:1fr}
  .play-sticky-nav{
    top:58px;
    align-items:stretch;
    flex-direction:column;
    padding:7px;
  }
  .play-sticky-status{justify-content:space-between;padding:0 4px}
  .play-sticky-status>strong{max-width:52vw}
  .play-sticky-actions{
    display:grid;
    grid-template-columns:1.25fr 1fr 1fr;
    width:100%;
  }
  .play-sticky-actions .play-faction-btn{
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .play-aurora-head{
    min-height:126px;
  }
  .round-score-check span{grid-template-columns:45px 1fr}
}


/* ==========================================================
   v1.5.1 — Mobile interaction & persistent UI cleanup
   ========================================================== */

/* Closed overlays can never intercept taps, even if mobile Safari briefly
   retains a composited layer after an animation. */
.rule-popup,
.drawer-modal,
.rule-modal,
.export-modal{
  pointer-events:none;
}
.rule-popup.open,
.drawer-modal.open,
.rule-modal.open,
.export-modal.open{
  pointer-events:auto;
}

/* Keep every sheet inside the visible mobile viewport and leave room for
   browser chrome / safe areas. */
.faction-rules-card,
.rule-popup-card,
.rule-dialog,
.export-sheet,
.picker{
  max-height:min(84dvh, calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 18px))!important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.faction-rules-card{
  padding-top:22px!important;
  padding-bottom:max(22px, calc(14px + env(safe-area-inset-bottom)))!important;
}
.faction-rules-card>button,
.faction-rules-card>.sheet-close{
  position:sticky!important;
  float:right;
  right:0!important;
  top:0!important;
  z-index:12;
  margin:-8px -8px 0 10px;
  background:#25213a!important;
  box-shadow:0 5px 14px rgba(0,0,0,.25);
}
.picker-head{
  position:sticky;
  top:0;
  z-index:14;
  margin:-16px -16px 12px;
  padding:max(14px, env(safe-area-inset-top)) 16px 12px;
  background:#171426f5;
  backdrop-filter:blur(12px);
  border-bottom:1px solid #332e49;
}
.drawer-panel{
  max-height:100dvh;
  padding-bottom:max(20px, env(safe-area-inset-bottom))!important;
}

/* Build screen gets persistent View Army access without making the player
   scroll through the full roster first. */
#buildStep{
  padding-bottom:104px;
}
.build-view-army-actions{
  height:0;
  margin:0!important;
}
.build-view-army-fab{
  position:fixed!important;
  right:max(18px, env(safe-area-inset-right));
  bottom:max(22px, calc(16px + env(safe-area-inset-bottom)));
  z-index:58;
  width:auto!important;
  min-width:132px;
  min-height:48px;
  padding:11px 18px!important;
  border-radius:999px!important;
  box-shadow:0 12px 34px rgba(0,0,0,.42);
  backdrop-filter:blur(12px);
}

/* Mission selection is readable before committing to a mission. */
.mission-choice-grid{
  align-items:start;
}
.mission-choice-card{
  min-width:0;
  border:1px solid #32374d;
  border-radius:13px;
  overflow:hidden;
  background:#14182a;
}
.mission-choice-card.selected{
  border-color:var(--confluence-gold);
  box-shadow:inset 3px 0 0 var(--confluence-gold);
}
.mission-choice-card .mission-choice{
  width:100%;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:transparent!important;
}
.mission-select-preview{
  border-top:1px solid #30364d;
}
.mission-select-preview>summary{
  cursor:pointer;
  padding:10px 12px;
  color:#c7c1cf;
  font-size:12px;
  font-weight:800;
  list-style:none;
}
.mission-select-preview>summary::-webkit-details-marker{display:none}
.mission-select-preview>summary::after{
  content:"⌄";
  float:right;
  transition:transform var(--motion-standard) var(--motion-ease);
}
.mission-select-preview[open]>summary::after{transform:rotate(180deg)}
.mission-select-preview-body{
  display:grid;
  gap:8px;
  padding:0 12px 12px;
}
.mission-select-preview-body section{
  padding:9px 10px;
  border-radius:9px;
  background:#1a1f32;
}
.mission-select-preview-body section>strong{
  color:#ead293;
  font-family:"Barlow Condensed";
  font-size:19px;
}
.mission-select-preview-body section small{
  color:#bda66d;
  font-weight:900;
  letter-spacing:.07em;
}
.mission-select-preview-body p{
  margin:4px 0 0;
  line-height:1.45;
  color:#d4cfda;
  font-size:12px;
}
.mission-select-lore{
  font-style:italic;
  opacity:.82;
}

/* Sticky battle controls should never create an invisible full-page hit area. */
.play-sticky-nav{
  isolation:isolate;
  contain:layout paint;
}
.play-sticky-nav,
.play-sticky-nav *{
  pointer-events:auto;
}

/* Give fixed/floating controls room above iOS browser chrome. */
@media(max-width:760px){
  .build-view-army-fab{
    bottom:max(28px, calc(18px + env(safe-area-inset-bottom)));
  }
  .faction-rules-card,
  .rule-popup-card,
  .rule-dialog,
  .export-sheet,
  .picker{
    max-height:min(80dvh, calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 24px))!important;
  }
  .mission-choice-grid{grid-template-columns:1fr!important}
}

/* If iOS has left a modal-open class during a paint frame, the actual open
   sheet remains scrollable and tappable. */
body.modal-open .rule-popup.open .faction-rules-card,
body.modal-open .drawer-modal.open .picker{
  touch-action:pan-y!important;
  pointer-events:auto!important;
}


/* ==========================================================
   v1.5.2 — Four-button battle bar + End Battle confirmation
   ========================================================== */

.play-sticky-nav{
  align-items:stretch!important;
}

.play-sticky-actions{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:7px!important;
  width:100%!important;
  align-items:stretch;
}

.play-sticky-actions .play-faction-btn{
  width:100%!important;
  min-width:0!important;
  min-height:46px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  line-height:1.15!important;
}

.play-end-battle-btn{
  border-color:#a9474d!important;
  color:#f0c2c4!important;
  background:linear-gradient(180deg,#351a23,#29151c)!important;
}

.play-end-battle-btn:active{
  background:#47212a!important;
}

.end-battle-confirm-card{
  max-width:560px!important;
  border-color:#754047!important;
  box-shadow:0 20px 70px rgba(0,0,0,.5), inset 4px 0 0 #a9474d;
}

.end-battle-confirm-card .play-kicker,
.end-battle-confirm-card h3{
  color:#d96a70!important;
}

.end-battle-confirm-card>p{
  color:#d8d2dc;
  line-height:1.55;
  margin:6px 0 18px;
}

.end-battle-confirm-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}

.end-battle-confirm-yes{
  border-color:#b64b52!important;
  background:#a9474d!important;
  color:#fff!important;
  font-weight:900!important;
}

@media(max-width:760px){
  .play-sticky-actions{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:6px!important;
  }

  .play-sticky-actions .play-faction-btn{
    padding:7px 4px!important;
    min-height:50px!important;
    font-size:10.5px!important;
    white-space:normal!important;
  }

  .end-battle-confirm-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .end-battle-confirm-actions button{
    width:100%;
  }
}


/* ==========================================================
   v1.5.3 — Centrepieces, card reminders & Play controls
   ========================================================== */

/* Centrepieces stay visibly unavailable in Round 1 without opening a blocking
   UI layer. The overlay belongs to the card itself, not the viewport. */
.play-unit-card{
  position:relative;
}

.play-unit-card.centrepiece-in-reserves{
  overflow:hidden;
}

.play-unit-card.centrepiece-round-one > .play-unit-card.centrepiece-round-one > .play-unit-art,
.play-unit-card.centrepiece-round-one > .play-unit-content{
  filter:grayscale(1) saturate(.15);
  opacity:.34;
  pointer-events:none;
  user-select:none;
}

.centrepiece-deploy-overlay{
  position:absolute;
  inset:0;
  z-index:16;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(12,13,19,.34);
  pointer-events:none;
}

.centrepiece-deploy-overlay.locked{
  background:rgba(12,13,19,.48);
}

.centrepiece-deploy-panel{
  width:min(420px,88%);
  display:grid;
  gap:9px;
  justify-items:center;
  text-align:center;
  padding:16px;
  border:1px solid rgba(220,220,226,.38);
  border-radius:16px;
  background:rgba(21,22,31,.9);
  box-shadow:0 16px 42px rgba(0,0,0,.42);
  backdrop-filter:blur(10px);
  pointer-events:auto;
}

.centrepiece-deploy-panel>span{
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  color:#bebbc5;
}

.centrepiece-deploy-panel>button{
  width:min(300px,100%);
  min-height:58px;
  border-radius:12px!important;
  font-family:"Barlow Condensed",sans-serif;
  font-size:24px!important;
  font-weight:900!important;
  letter-spacing:.04em;
  color:#151521!important;
  background:#ece8dd!important;
  border-color:#ece8dd!important;
}

.centrepiece-deploy-panel>button:disabled{
  opacity:.72!important;
  color:#aaa7ae!important;
  background:#3c3c43!important;
  border-color:#56565f!important;
}

.centrepiece-deploy-panel>small{
  max-width:330px;
  color:#b6b2bd;
  line-height:1.4;
}

/* Unit cards only remind the player that Detachment rules apply. The full
   wording now lives in the persistent Detachment reference. */
.play-detachment-reminder{
  display:flex!important;
  align-items:center;
  gap:8px;
  width:auto!important;
  max-width:100%;
  margin:12px 0 4px;
  padding:7px 10px!important;
  border-radius:999px!important;
  border:1px solid rgba(176,139,70,.45)!important;
  background:#eee8d9!important;
  color:#4b4232!important;
  text-align:left!important;
  font-size:11px!important;
}

.play-detachment-reminder span{
  flex:0 0 auto;
  font-size:9px;
  font-weight:900;
  letter-spacing:.1em;
  color:#97783c;
}

.play-detachment-reminder strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:11px;
}

/* Clean, centred command block: resources in one balanced row, then the
   three battle controls in a second balanced row. */
.play-command-bar{
  display:grid!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:10px!important;
  align-items:center!important;
  justify-items:stretch!important;
  padding:14px!important;
}

.play-command-bar .play-resource{
  grid-column:span 3;
  width:100%;
  min-width:0;
  justify-content:center!important;
  margin:0!important;
}

.play-command-bar #playNewRound,
.play-command-bar #playCollapseAllTop,
.play-command-bar #exitPlayMode{
  grid-column:span 2;
  width:100%!important;
  min-width:0;
  min-height:48px;
  margin:0!important;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}

@media(max-width:760px){
  .play-command-bar{
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    gap:8px!important;
    padding:12px!important;
  }

  .play-command-bar .play-resource{
    grid-column:span 3;
    justify-content:space-evenly!important;
  }

  .play-command-bar .play-resource>span{
    margin-right:2px;
  }

  .play-command-bar #playNewRound,
  .play-command-bar #playCollapseAllTop,
  .play-command-bar #exitPlayMode{
    grid-column:span 2;
    padding:9px 5px!important;
    font-size:13px!important;
    white-space:normal;
    line-height:1.15;
  }

  .centrepiece-deploy-overlay{
    padding:18px;
  }

  .centrepiece-deploy-panel{
    width:90%;
    padding:14px;
  }

  .centrepiece-deploy-panel>button{
    min-height:54px;
    font-size:21px!important;
  }
}


/* ==========================================================
   v1.5.5 — Generic Secondary Missions
   ========================================================== */

.mission-panel-section{
  display:grid;
  gap:10px;
  margin:0 0 16px;
}
.mission-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.mission-section-head small,
.round-score-block-head small{
  display:block;
  color:#b8a06b;
  font-size:10px;
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.mission-section-head h4,
.round-score-block-head h4{
  margin:2px 0 0;
  font-family:"Barlow Condensed",sans-serif;
  font-size:27px;
  text-transform:uppercase;
}
.mission-status-pill{
  flex:0 0 auto;
  padding:6px 9px;
  border:1px solid #4a5069;
  border-radius:999px;
  font-size:9px;
  font-weight:900;
  letter-spacing:.07em;
}
.mission-status-pill.active{
  border-color:#4f776d;
  background:#172a29;
  color:#a6d8ca;
}
.mission-status-pill.pending{
  border-color:#67636c;
  background:#25242c;
  color:#c1bdc7;
}
.secondary-round-one-note{
  display:grid;
  gap:3px;
  padding:11px 12px;
  border-left:3px solid var(--confluence-gold);
  border-radius:8px;
  background:#191a2b;
}
.secondary-round-one-note strong{
  color:#e7d19a;
  font-size:12px;
}
.secondary-round-one-note span{
  color:#c2bdc8;
  line-height:1.42;
  font-size:12px;
}
.secondary-mission-list{
  display:grid;
  gap:10px;
}
.secondary-mission-card{
  padding:12px;
  border:1px solid #363b52;
  border-radius:12px;
  background:#14182a;
}
.secondary-mission-card.inactive{
  border-color:#3b3c46;
  background:#171820;
}
.secondary-mission-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:9px;
}
.secondary-mission-head small{
  color:#9d96aa;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.secondary-mission-head h5{
  margin:2px 0 0;
  font-family:"Barlow Condensed",sans-serif;
  font-size:23px;
  text-transform:uppercase;
}
.secondary-reroll-btn{
  flex:0 0 auto;
  padding:7px 9px!important;
  border-color:#9a7e45!important;
  color:#ead49b!important;
  font-size:10px!important;
}
.secondary-reroll-btn:disabled{
  opacity:.38!important;
}
.secondary-rule-text{
  color:#d6d1dc;
  font-size:12px;
  line-height:1.5;
}
.secondary-score-history{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:10px;
}
.secondary-score-history span,
.battle-summary-secondaries span{
  padding:5px 8px;
  border-radius:999px;
  background:#272b3d;
  color:#c8c3cf;
  font-size:10px;
  font-weight:800;
}
.round-score-block{
  display:grid;
  gap:10px;
  padding:12px;
  border:1px solid #353a51;
  border-radius:12px;
  background:#121628;
}
.round-score-block+.round-score-block{
  margin-top:4px;
}
.round-score-block.inactive{
  opacity:.7;
}
.secondary-scoring-note{
  margin:0;
  color:#b8b3c0;
  line-height:1.45;
}
.secondary-score-check span span{
  display:block;
  min-width:0;
}
.secondary-score-check b{
  color:#eee9f1;
  font-family:"Barlow Condensed",sans-serif;
  font-size:18px;
  text-transform:uppercase;
}
.battle-summary-secondaries{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:6px;
  margin:8px 0 14px;
}
.battle-round-summary{
  display:grid!important;
  grid-template-columns:1fr auto;
  gap:3px 10px!important;
}
.battle-round-summary small{
  grid-column:1 / -1;
  color:#9892a2;
  line-height:1.4;
}

@media(max-width:760px){
  .mission-section-head{
    align-items:center;
  }
  .mission-status-pill{
    max-width:132px;
    text-align:center;
  }
  .secondary-mission-head{
    align-items:center;
  }
  .secondary-reroll-btn{
    max-width:112px;
    white-space:normal;
    line-height:1.15;
  }
}


/* ==========================================================
   v1.5.6 — Round 1 Secondary Review
   ========================================================== */
.secondary-review-card{
  max-width:680px!important;
}
.secondary-review-intro{
  display:grid;
  gap:6px;
  padding:11px 12px;
  margin-bottom:12px;
  border-left:3px solid var(--confluence-gold);
  border-radius:8px;
  background:#191a2b;
}
.secondary-review-intro p{
  margin:0;
  color:#d0cad6;
  line-height:1.45;
}
.secondary-review-list{
  display:grid;
  gap:10px;
}
.secondary-review-mission{
  display:grid;
  gap:10px;
  padding:12px;
  border:1px solid #393e56;
  border-radius:12px;
  background:#14182a;
}
.secondary-review-mission small{
  color:#9f98ab;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
}
.secondary-review-mission h4{
  margin:2px 0 0;
  font-family:"Barlow Condensed",sans-serif;
  font-size:25px;
  text-transform:uppercase;
}
.secondary-review-mission>button{
  width:100%;
  min-height:44px;
  border-color:#9a7e45!important;
  color:#ead49b!important;
}
.secondary-review-mission>button:disabled{
  opacity:.35!important;
}


/* ==========================================================
   v1.5.65 — Automatic round AP generation
   ========================================================== */
.play-ap-resource{
  flex-wrap:wrap;
}
.play-ap-income{
  flex-basis:100%;
  display:block;
  margin-top:4px;
  color:#9f99aa;
  font-size:9px;
  line-height:1.35;
  text-align:center;
}


/* ==========================================================
   v1.5.67 — Round AP ledger + reserved Round 2 AP
   ========================================================== */
.round-two-ap-reserve{
  display:grid;
  grid-template-columns:1fr auto;
  gap:3px 12px;
  align-items:center;
  padding:10px 12px;
  margin-bottom:4px;
  border:1px solid #676d85;
  border-radius:10px;
  background:#111525;
}
.round-two-ap-reserve>span{
  font-size:9px;
  font-weight:900;
  letter-spacing:.1em;
  color:#aaa5b2;
}
.round-two-ap-reserve>strong{
  font-family:"Barlow Condensed",sans-serif;
  font-size:21px;
  letter-spacing:.03em;
}
.round-two-ap-reserve>small{
  grid-column:1 / -1;
  color:#bbb6c3;
  line-height:1.4;
}
.round-two-ap-reserve.available{
  border-color:#9a7e45;
  box-shadow:inset 3px 0 0 #b8944f;
}
.round-two-ap-reserve.available>strong{
  color:#ecd49a;
}
.round-two-ap-reserve.spent{
  border-color:#704047;
  box-shadow:inset 3px 0 0 #a9474d;
}
.round-two-ap-reserve.spent>strong{
  color:#dfa2a6;
}


/* ==========================================================
   v1.5.73 — Stat Block disclosure reliability
   ========================================================== */
.play-reference{
  position:relative;
  overflow:visible;
}
.play-reference > summary{
  position:relative;
  z-index:4;
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  width:100%;
  min-height:46px;
  box-sizing:border-box;
  cursor:pointer;
  touch-action:manipulation!important;
  -webkit-tap-highlight-color:transparent;
  user-select:none;
  pointer-events:auto!important;
}
.play-reference > summary::after{
  content:"⌄";
  flex:0 0 auto;
  margin-left:10px;
  transition:transform .18s ease;
}
.play-reference[open] > summary::after{
  transform:rotate(180deg);
}
.play-reference > summary::-webkit-details-marker{
  display:none;
}
.play-reference > .play-full-reference{
  position:relative;
  z-index:1;
  pointer-events:auto;
}
.play-swipe-track{
  touch-action:pan-x pan-y;
}
.play-swipe-slide .play-reference > summary{
  touch-action:manipulation!important;
}


/* v1.5.76 — structured faction psychic powers */
.psychic-section-title{
  margin:22px 0 10px;
}
.psychic-power{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin:10px 0;
  padding:14px 15px;
  border:1px solid var(--line,rgba(255,255,255,.14));
  border-radius:12px;
  background:rgba(255,255,255,.035);
}
.psychic-power-copy{
  min-width:0;
  flex:1 1 auto;
}
.psychic-power-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}
.psychic-power-head h4{
  margin:0;
}
.psychic-power-head small{
  opacity:.72;
  white-space:nowrap;
}
.psychic-power p{
  margin:0;
  line-height:1.5;
}
.psychic-power > button{
  flex:0 0 auto;
}
@media(max-width:620px){
  .psychic-power{
    display:block;
  }
  .psychic-power-head{
    display:block;
  }
  .psychic-power-head small{
    display:block;
    margin-top:3px;
    white-space:normal;
  }
  .psychic-power > button{
    width:100%;
    margin-top:12px;
  }
}

/* v1.5.77 — Play card interaction repair */
.play-swipe-slide.active-slide .play-unit-card:not(.centrepiece-round-one) .play-unit-content{position:relative;z-index:3;pointer-events:auto!important}
.play-swipe-slide.active-slide .play-unit-card:not(.centrepiece-round-one) .play-unit-content button,
.play-swipe-slide.active-slide .play-unit-card:not(.centrepiece-round-one) .play-unit-content select,
.play-swipe-slide.active-slide .play-unit-card:not(.centrepiece-round-one) .play-unit-content input,
.play-swipe-slide.active-slide .play-unit-card:not(.centrepiece-round-one) .play-unit-content summary{position:relative;z-index:4;pointer-events:auto!important;touch-action:manipulation!important}


/* ==========================================================
   v1.5.78 — Chrome + Safari interaction compatibility
   ========================================================== */

.play-unit-card button,
.play-unit-card select,
.play-unit-card input,
.play-unit-card summary,
.play-sticky-nav button,
.play-command-bar button{
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}

.play-swipe-track{
  touch-action:pan-x pan-y;
  -webkit-overflow-scrolling:touch;
}

.play-unit-card button,
.play-unit-card select,
.play-unit-card input,
.play-unit-card summary{
  pointer-events:auto!important;
}

/* Prevent WebKit text-selection behaviour from stealing repeated taps. */
.play-unit-card button,
.play-unit-card summary{
  -webkit-user-select:none;
  user-select:none;
}


/* ==========================================================
   v1.5.79 — Universal multi-model weapon Damage
   ========================================================== */
.model-weapon-allocation{
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid rgba(120,112,135,.32);
}
.weapon-damage-modes,
.model-weapon-roster{
  display:grid;
  gap:10px;
  margin-top:12px;
}
.weapon-damage-mode{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(190px,.8fr);
  gap:10px;
  align-items:center;
}
.weapon-damage-mode>span{
  font-weight:800;
}
.model-weapon-row{
  display:grid;
  gap:8px;
  padding:12px;
  border:1px solid rgba(120,112,135,.28);
  border-radius:11px;
  background:rgba(255,255,255,.025);
}
.model-weapon-label{
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:10px;
  font-weight:900;
}
.model-weapon-checks{
  display:flex;
  flex-wrap:wrap;
  gap:7px 12px;
}
.model-weapon-checks label{
  display:flex;
  align-items:center;
  gap:5px;
  font-size:12px;
}
.model-casualty-tracker{
  margin-top:10px;
  padding:10px;
  border:1px solid rgba(95,88,111,.28);
  border-radius:12px;
  background:#d7d3c8;
}
.model-casualty-head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
  margin-bottom:7px;
}
.model-casualty-head span{
  color:#735f38;
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
}
.model-casualty-list{
  display:grid;
  gap:6px;
}
.model-casualty{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:2px 10px!important;
  width:100%!important;
  padding:8px 10px!important;
  text-align:left!important;
  background:#eee9dd!important;
  border-color:#bbb4a5!important;
  color:#2b2830!important;
}
.model-casualty span{
  font-weight:900;
}
.model-casualty small{
  grid-column:1;
  color:#66606b;
}
.model-casualty b{
  grid-column:2;
  grid-row:1 / span 2;
  align-self:center;
  font-size:10px;
  text-transform:uppercase;
}
.model-casualty.removed{
  opacity:.48;
  text-decoration:line-through;
}
.weapon-line.tracked-weapon{
  border-left:3px solid #7d9a78;
  padding-left:10px;
}
.weapon-line.unit-level-weapon{
  border-left:3px solid #8b779f;
  padding-left:10px;
}
.legacy-damage-note{
  display:inline-block;
  margin-left:5px;
  color:#8c6c36;
  font-size:9px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
@media(max-width:620px){
  .weapon-damage-mode,
  .model-weapon-label{
    grid-template-columns:1fr;
  }
}


/* v1.5.80 — Multi-model tracking review state */
.weapon-tracking-review-note{
  display:grid;
  gap:3px;
  margin:0 0 12px;
  padding:10px 12px;
  border-left:3px solid #9a7e45;
  border-radius:8px;
  background:rgba(154,126,69,.10);
}
.weapon-tracking-review-note strong{
  color:#8b6d31;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.weapon-tracking-review-note span{
  color:#66606b;
  font-size:11px;
  line-height:1.42;
}


/* ==========================================================
   v1.5.81 — Reviewed model ownership / pending Damage values
   ========================================================== */
.weapon-line.pending-tracked-weapon{
  border-left:3px solid #9a7e45;
  padding-left:10px;
}
.pending-damage-value{
  display:inline-block;
  margin-left:6px;
  font-size:9px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#8b6d31;
}


/* ==========================================================
   v1.5.82 — compact tracking editor + interaction stability
   ========================================================== */
details.model-weapon-allocation{
  margin-top:16px;
  padding:0;
  border:1px solid rgba(120,112,135,.30);
  border-radius:12px;
  overflow:hidden;
  background:rgba(255,255,255,.025);
}
details.model-weapon-allocation > summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  cursor:pointer;
  list-style:none;
  touch-action:manipulation;
  -webkit-user-select:none;
  user-select:none;
}
details.model-weapon-allocation > summary::-webkit-details-marker{
  display:none;
}
details.model-weapon-allocation > summary span{
  font-weight:900;
}
details.model-weapon-allocation > summary small{
  opacity:.68;
  text-align:right;
}
details.model-weapon-allocation > summary::after{
  content:"▾";
  font-size:13px;
  transition:transform .15s ease;
}
details.model-weapon-allocation[open] > summary::after{
  transform:rotate(180deg);
}
.model-weapon-allocation-body{
  padding:0 14px 14px;
  border-top:1px solid rgba(120,112,135,.22);
}
#unitEditBody button,
#unitEditBody select,
#unitEditBody input,
#unitEditBody summary,
#unitEditBody label{
  touch-action:manipulation;
}
.play-swipe-slide{
  contain:layout style;
}


/* ==========================================================
   v1.5.83 — Stage Three Play Mode polish
   ========================================================== */
.play-unit-points{
  display:inline-block;
  margin-top:3px;
  font-weight:900;
  letter-spacing:.06em;
  opacity:.82;
}
details.model-casualty-tracker{
  margin-top:10px;
  border:1px solid rgba(120,112,135,.28);
  border-radius:10px;
  overflow:hidden;
}
details.model-casualty-tracker > summary{
  list-style:none;
  cursor:pointer;
  touch-action:manipulation;
}
details.model-casualty-tracker > summary::-webkit-details-marker{
  display:none;
}
details.model-casualty-tracker > summary::after{
  content:"▾";
  margin-left:8px;
  font-size:12px;
  transition:transform .15s ease;
}
details.model-casualty-tracker[open] > summary::after{
  transform:rotate(180deg);
}
details.model-casualty-tracker .model-casualty-list{
  border-top:1px solid rgba(120,112,135,.20);
}
.play-card-stack.restore-pending .play-swipe-track{
  visibility:hidden;
}
.model-weapon-quantity{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.model-weapon-quantity input{
  width:64px;
}

/* ==========================================================
   v1.5.93 — Final Round + cumulative Primary scoring
   ========================================================== */
.final-round-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  padding:4px 9px;
  border:1px solid rgba(255,224,151,.72);
  border-radius:999px;
  background:rgba(100,24,35,.74);
  color:#ffe7ac;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  line-height:1;
  white-space:nowrap;
}
.final-round-badge[hidden]{display:none!important}
.final-round-badge.compact{min-height:20px;padding:3px 7px;font-size:9px}
.play-aurora-head.final-round{
  box-shadow:inset 0 -3px 0 rgba(229,171,92,.78),0 12px 34px rgba(93,24,38,.18);
}
.play-sticky-nav.final-round{
  border-bottom-color:rgba(229,171,92,.72)!important;
  box-shadow:0 10px 26px rgba(71,17,29,.22);
}
.play-sticky-nav.final-round .play-sticky-status{
  gap:8px;
}
.primary-cap-note{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin:10px 0 12px;
  padding:10px 12px;
  border:1px solid rgba(184,149,80,.35);
  border-radius:11px;
  background:rgba(184,149,80,.07);
}
.primary-cap-note strong{color:var(--confluence-gold);white-space:nowrap}
.primary-cap-note span{font-size:12px;color:#aaa4bb;text-align:right;line-height:1.4}
.primary-tier-check>span>strong{display:block;margin-bottom:5px;color:var(--confluence-gold)}
.primary-tier-check input:disabled+span{opacity:.48}
@media(max-width:620px){
  .primary-cap-note{display:block}
  .primary-cap-note strong,.primary-cap-note span{display:block;text-align:left;white-space:normal}
  .primary-cap-note span{margin-top:3px}
  .play-battle-plan{flex-wrap:wrap}
}
.primary-builder-scoring{display:block;margin:4px 0 10px;color:#9f99aa;line-height:1.4}


/* ==========================================================
   v1.5.93 — Primary mission readability
   Keep tier headings and rules in a vertical flow. The previous
   fixed-width 54px score column allowed long "5 VP · Success"
   headings to paint over the rule text on mobile browsers.
   ========================================================== */
.mission-score-condition{
  display:block;
  min-width:0;
}
.mission-score-condition>strong{
  display:block;
  width:auto;
  margin:0 0 6px;
  line-height:1.05;
  white-space:normal;
  overflow-wrap:anywhere;
}
.mission-score-condition p{
  display:block;
  margin:0!important;
  min-width:0;
  line-height:1.52;
  overflow-wrap:anywhere;
}

.round-score-check{
  grid-template-columns:28px minmax(0,1fr);
}
.round-score-check>span{
  display:block;
  min-width:0;
  line-height:1.45;
}
.round-score-check>span>strong{
  display:block;
  width:auto;
  margin:0 0 6px;
  line-height:1.05;
  white-space:normal;
  overflow-wrap:anywhere;
}
.round-score-check>span>span{
  display:block;
  min-width:0;
  overflow-wrap:anywhere;
}

@media(max-width:760px){
  .mission-score-condition{display:block}
  .round-score-check>span{display:block}
}

/* v1.5.93 — disposition identity */
.disposition-identity{
  margin:9px 0 0;
  padding:9px 11px;
  border-left:3px solid var(--confluence-gold);
  border-radius:6px;
  background:#171a2c;
  color:#c8c2ce;
  font-size:12px;
  line-height:1.45;
}

/* ==========================================================
   v1.5.93 — Unit detail/editor polish
   ========================================================== */
#unitEditModal .picker{
  width:min(720px, calc(100vw - 20px));
  padding:16px;
}
#unitEditModal .picker-head{
  justify-content:center;
}
#unitEditModal .picker-head h3{
  width:100%;
  margin:0;
  padding:0 48px;
  text-align:center;
  overflow-wrap:anywhere;
}
#unitEditModal .picker-head button{
  position:absolute;
  right:12px;
  top:50%;
  transform:translateY(-50%);
}
#unitEditBody{
  display:grid;
  gap:16px;
  min-width:0;
  padding-bottom:8px;
}
.unit-edit-profile{
  display:grid;
  gap:11px;
  padding:4px 2px 2px;
  text-align:center;
}
.unit-edit-points{
  justify-self:center;
  padding:5px 11px;
  border:1px solid rgba(184,149,80,.42);
  border-radius:999px;
  background:rgba(184,149,80,.09);
  color:#ead293;
  font-size:12px;
  font-weight:900;
  letter-spacing:.06em;
}
.unit-edit-lore{
  max-width:610px;
  margin:0 auto;
  color:#c8c2ce;
  font-size:13px;
  font-style:italic;
  line-height:1.55;
  text-align:center;
  overflow-wrap:anywhere;
}
.unit-edit-stat-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:7px;
  width:100%;
}
.unit-edit-stat{
  min-width:0;
  padding:10px 6px;
  border:1px solid #34394f;
  border-radius:10px;
  background:#14182a;
  text-align:center;
}
.unit-edit-stat small{
  display:block;
  margin-bottom:3px;
  color:#aaa4b2;
  font-size:9px;
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.unit-edit-stat strong{
  display:block;
  color:#f0edf4;
  font-family:"Barlow Condensed";
  font-size:23px;
  line-height:1;
  white-space:normal;
  overflow-wrap:anywhere;
}

.unit-edit-section{
  min-width:0;
  padding:14px;
  border:1px solid #32374d;
  border-radius:14px;
  background:#121629;
}
.unit-edit-section-title{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 11px;
}
.unit-edit-section-title::after{
  content:"";
  flex:1;
  height:1px;
  background:#34394f;
}
.unit-edit-section-title span{
  color:#f0edf4;
  font-family:"Barlow Condensed";
  font-size:22px;
  font-weight:900;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.unit-edit-size-section{
  display:grid;
  gap:8px;
}
.unit-edit-model-count{
  display:grid;
  grid-template-columns:minmax(0,1fr) 90px;
  align-items:center;
  gap:12px;
}
.unit-edit-model-count span{font-weight:800}
.unit-edit-size-section>small,
.unit-edit-note{
  color:#aaa4b2;
  font-size:11px;
  line-height:1.45;
}

.unit-edit-weapon-editor{
  display:grid;
  gap:8px;
}
.unit-edit-weapon-check{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr);
  gap:10px;
  align-items:center;
  min-width:0;
  padding:10px 11px;
  border:1px solid #353a50;
  border-radius:10px;
  background:#171b2f;
}
.unit-edit-weapon-check>span{
  display:block;
  min-width:0;
}
.unit-edit-weapon-check strong{
  display:block;
  color:#f0edf4;
  line-height:1.25;
  overflow-wrap:anywhere;
}
.unit-edit-weapon-check small{
  display:block;
  margin-top:2px;
  color:#aaa4b2;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.unit-edit-loadout{
  min-width:0;
  padding:11px;
  border:1px solid #353a50;
  border-radius:10px;
  background:#171b2f;
}
.unit-edit-loadout>strong,
.unit-edit-loadout-head strong{
  display:block;
  margin-bottom:7px;
  color:#f0edf4;
}
.unit-edit-loadout select{
  width:100%;
}
.unit-edit-loadout-head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
  margin-bottom:7px;
}
.unit-edit-loadout-head small{
  color:#aaa4b2;
  white-space:nowrap;
}
.unit-edit-loadout .qty-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 70px;
  gap:10px;
  align-items:center;
  margin-top:7px;
}
.unit-edit-loadout .qty-row span{
  min-width:0;
  overflow-wrap:anywhere;
}
.unit-edit-weapon-reference{
  display:grid;
  gap:6px;
  margin-top:11px;
  padding-top:11px;
  border-top:1px solid #30354a;
}
.unit-edit-weapon-profile{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);
  gap:12px;
  align-items:start;
  min-width:0;
  padding:7px 0;
}
.unit-edit-weapon-profile strong,
.unit-edit-weapon-profile span{
  min-width:0;
  overflow-wrap:anywhere;
}
.unit-edit-weapon-profile span{
  color:#aaa4b2;
  text-align:right;
  line-height:1.4;
}

.unit-edit-abilities{
  display:grid;
  gap:8px;
}
.unit-edit-ability{
  min-width:0;
  padding:11px 12px;
  border:1px solid #353a50;
  border-radius:10px;
  background:#171b2f;
}
.unit-edit-ability>div{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  min-width:0;
}
.unit-edit-ability strong{
  min-width:0;
  color:#f0edf4;
  overflow-wrap:anywhere;
}
.unit-edit-ability small{
  flex:0 0 auto;
  color:#d7bd7c;
  font-weight:900;
  white-space:nowrap;
}
.unit-edit-ability p{
  margin:6px 0 0;
  color:#c4beca;
  font-size:12px;
  line-height:1.5;
  overflow-wrap:anywhere;
}
.unit-edit-art-section{
  margin-bottom:4px;
}
#unitEditModal .unit-image-editor{
  margin:0;
}
#unitEditModal .unit-image-preview{
  width:100%;
  max-width:560px;
  height:190px;
  margin:0 auto;
}
.unit-image-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  max-width:560px;
  width:100%;
  margin:0 auto;
}
.unit-image-actions>*{
  min-width:0;
  width:100%;
  margin:0!important;
}
#unitEditModal .setup-actions{
  position:sticky;
  bottom:-16px;
  z-index:13;
  margin:14px -16px -16px;
  padding:12px 16px max(12px, env(safe-area-inset-bottom));
  border-top:1px solid #332e49;
  background:#171426f5;
  backdrop-filter:blur(12px);
}
#unitEditModal .setup-actions .primary{
  width:100%;
  min-height:46px;
}

/* Keep the existing multi-model controls compact and contained inside the
   new section rather than creating a second divider system. */
#unitEditModal details.model-weapon-allocation{
  margin-top:12px;
}
#unitEditModal .model-weapon-allocation-body{
  min-width:0;
}
#unitEditModal .weapon-damage-mode,
#unitEditModal .model-weapon-row,
#unitEditModal .model-weapon-label,
#unitEditModal .model-weapon-checks{
  min-width:0;
}

@media(max-width:620px){
  #unitEditModal .picker{
    width:min(calc(100vw - 12px), 720px);
    padding:12px;
  }
  #unitEditModal .picker-head{
    margin:-12px -12px 10px;
  }
  #unitEditModal .picker-head h3{
    padding:0 42px;
    font-size:21px;
  }
  .unit-edit-profile{gap:10px}
  .unit-edit-stat-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .unit-edit-stat{
    padding:9px 5px;
  }
  .unit-edit-stat strong{font-size:22px}
  .unit-edit-section{padding:12px}
  .unit-edit-weapon-profile{
    grid-template-columns:1fr;
    gap:3px;
  }
  .unit-edit-weapon-profile span{text-align:left}
  .unit-edit-ability>div{
    align-items:flex-start;
    flex-direction:column;
    gap:3px;
  }
  .unit-edit-ability small{white-space:normal}
  .unit-image-actions{
    grid-template-columns:1fr;
  }
  #unitEditModal .setup-actions{
    bottom:-12px;
    margin:12px -12px -12px;
    padding-left:12px;
    padding-right:12px;
  }
}

.compendium-lore{
  margin:0 0 14px;
  padding:0 4px 12px;
  border-bottom:1px solid rgba(120,112,135,.24);
  color:#aaa4b2;
  font-style:italic;
  line-height:1.55;
  text-align:center;
}

/* ==========================================================
   v1.5.93 — Sticky unit names
   ========================================================== */
/* The unit name remains visible for the entire editor scroll.
   The picker itself is the scroll container, keeping the behaviour stable
   in mobile Safari and Chrome. */
#unitEditModal .picker-head{
  position:sticky!important;
  top:-16px!important;
  z-index:40!important;
  margin:-16px -16px 12px!important;
  padding:16px 16px 13px!important;
  min-height:64px;
  background:rgba(23,20,38,.98)!important;
  border-bottom:1px solid #3b3650!important;
  box-shadow:0 8px 20px rgba(0,0,0,.28);
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
}
#unitEditModal .picker-head h3{
  position:relative;
  z-index:1;
}
#unitEditModal .picker-head button{
  z-index:2;
}

@media(max-width:620px){
  #unitEditModal .picker-head{
    top:-12px!important;
    margin:-12px -12px 10px!important;
    padding:14px 12px 12px!important;
    min-height:60px;
  }
}

/* ==========================================================
   v1.5.93 — Add-unit stat previews
   ========================================================== */
#pickerList .unit-picker-card{
  min-width:0;
  margin:8px 0;
}
#pickerList .unit-picker-card .unit-row{
  margin:0;
  min-width:0;
}
#pickerList .unit-row-main{
  display:flex;
  flex:1 1 auto;
  min-width:0;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:2px 0;
  border:0!important;
  background:transparent!important;
  color:inherit!important;
  text-align:left;
  box-shadow:none!important;
}
#pickerList .unit-row-main>span:first-child{
  display:block;
  min-width:0;
}
#pickerList .unit-row-main strong{
  display:block;
  min-width:0;
  color:#f2eff6;
  overflow-wrap:anywhere;
}
#pickerList .unit-row-main small{
  display:block;
  margin-top:3px;
  color:#aaa4bb;
  line-height:1.35;
  overflow-wrap:anywhere;
}
#pickerList .unit-row-view-hint{
  display:flex;
  flex:0 0 auto;
  align-items:center;
  gap:5px;
  color:#b9b2c4;
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
}
#pickerList .unit-row-view-hint b{
  display:inline-block;
  color:#d7bd7c;
  transition:transform .16s ease;
}
#pickerList .unit-row-main[aria-expanded="true"] .unit-row-view-hint b{
  transform:rotate(180deg);
}
#pickerList .unit-row-add{
  flex:0 0 auto;
  min-width:76px;
}
#pickerList .unit-row-add:disabled{
  max-width:128px;
  white-space:normal;
  line-height:1.15;
}

.unit-picker-preview{
  min-width:0;
  margin-top:-1px;
  padding:14px;
  border:1px solid #373249;
  border-top-color:#2b2739;
  border-radius:0 0 12px 12px;
  background:#111424;
  box-shadow:inset 0 8px 18px rgba(0,0,0,.10);
}
.unit-picker-preview[hidden]{
  display:none!important;
}
.unit-picker-lore{
  max-width:620px;
  margin:0 auto 12px;
  color:#bdb6c4;
  font-size:12px;
  font-style:italic;
  line-height:1.55;
  text-align:center;
  overflow-wrap:anywhere;
}
.picker-preview-stat-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:6px;
  min-width:0;
}
.picker-preview-stat{
  min-width:0;
  padding:8px 4px;
  border:1px solid #34394f;
  border-radius:9px;
  background:#171b2f;
  text-align:center;
}
.picker-preview-stat small{
  display:block;
  margin-bottom:3px;
  color:#9993a3;
  font-size:8px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.picker-preview-stat strong{
  display:block;
  color:#f2eff6;
  font-family:"Barlow Condensed";
  font-size:20px;
  line-height:1;
  overflow-wrap:anywhere;
}
.picker-preview-composition{
  display:grid;
  gap:3px;
  margin-top:10px;
  padding:9px 10px;
  border-left:3px solid rgba(184,149,80,.62);
  background:rgba(184,149,80,.07);
  border-radius:7px;
}
.picker-preview-composition small{
  color:#d7bd7c;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.picker-preview-composition span{
  color:#c7c1cf;
  font-size:11px;
  line-height:1.4;
  overflow-wrap:anywhere;
}
.picker-preview-section{
  min-width:0;
  margin-top:13px;
}
.picker-preview-section h4{
  margin:0 0 7px;
  color:#f0edf4;
  font-family:"Barlow Condensed";
  font-size:18px;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.picker-preview-rule,
.picker-preview-ability{
  min-width:0;
  padding:8px 0;
  border-top:1px solid #2d3245;
}
.picker-preview-rule{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr);
  gap:10px;
}
.picker-preview-rule strong,
.picker-preview-rule span{
  min-width:0;
  overflow-wrap:anywhere;
}
.picker-preview-rule span{
  color:#aaa4b2;
  text-align:right;
  font-size:11px;
  line-height:1.4;
}
.picker-preview-ability>div{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:8px;
  min-width:0;
}
.picker-preview-ability strong{
  min-width:0;
  overflow-wrap:anywhere;
}
.picker-preview-ability small{
  flex:0 0 auto;
  color:#d7bd7c;
  font-size:9px;
  font-weight:900;
}
.picker-preview-ability p{
  margin:4px 0 0;
  color:#aaa4b2;
  font-size:11px;
  line-height:1.45;
  overflow-wrap:anywhere;
}

@media(max-width:620px){
  #pickerList .unit-row{
    align-items:stretch;
  }
  #pickerList .unit-row-main{
    align-items:flex-start;
    flex-direction:column;
    justify-content:center;
    gap:4px;
  }
  #pickerList .unit-row-view-hint{
    font-size:9px;
  }
  #pickerList .unit-row-add{
    min-width:70px;
    max-width:104px;
    padding-left:9px;
    padding-right:9px;
  }
  .unit-picker-preview{
    padding:12px 10px;
  }
  .picker-preview-stat-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .picker-preview-rule{
    grid-template-columns:1fr;
    gap:2px;
  }
  .picker-preview-rule span{
    text-align:left;
  }
  .picker-preview-ability>div{
    align-items:flex-start;
    flex-direction:column;
    gap:2px;
  }
}

/* ==========================================================
   v1.5.95 — Voidscarred Specialist Loadouts
   ========================================================== */
.specialist-loadout-slot{
  border-color:rgba(184,149,80,.48)!important;
  background:linear-gradient(135deg,rgba(184,149,80,.10),rgba(255,255,255,.02))!important;
}
.specialist-loadout-slot h4{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
}
.specialist-loadout-slot h4 small{
  color:#c2ab74;
  font-size:10px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.specialist-loadout-slot select{
  width:100%;
}
.loadout-rule-note{
  margin-top:8px;
  color:#aaa4b2;
  font-size:11px;
  line-height:1.45;
}
.unit-edit-specialist-section .specialist-loadout-slot{
  margin:0;
}
.specialist-loadout-display strong{
  color:#e4ca88;
}
.play-specialist-loadout{
  display:block;
  margin-top:4px;
  color:#d8c48d!important;
  font-size:10px!important;
  font-weight:900;
  letter-spacing:.07em;
  line-height:1.35;
  text-transform:uppercase;
}

.compendium-specialist-list{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:8px 0 14px;
}
.compendium-specialist-list span{
  padding:5px 8px;
  border:1px solid rgba(184,149,80,.38);
  border-radius:999px;
  background:rgba(184,149,80,.08);
  color:#d7bd7c;
  font-size:10px;
  font-weight:800;
}

.picker-preview-specialist-note{
  margin:0 0 7px;
  color:#aaa4b2;
  font-size:11px;
  line-height:1.45;
}
.picker-preview-specialist-list{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}
.picker-preview-specialist-list span{
  padding:4px 7px;
  border:1px solid rgba(184,149,80,.34);
  border-radius:999px;
  background:rgba(184,149,80,.07);
  color:#d7bd7c;
  font-size:9px;
  font-weight:800;
}

/* ==========================================================
   v1.5.96 — Automatic Voidscarred specialist packages
   ========================================================== */
.specialist-choice-details{
  margin-top:10px;
  border-top:1px solid rgba(184,149,80,.24);
  padding-top:8px;
}
.specialist-choice-details>summary{
  cursor:pointer;
  color:#d9c486;
  font-size:11px;
  font-weight:900;
  list-style:none;
}
.specialist-choice-details>summary::-webkit-details-marker{display:none}
.specialist-choice-grid{
  display:grid;
  gap:8px;
  margin-top:9px;
}
.specialist-choice-reference{
  min-width:0;
  padding:10px;
  border:1px solid rgba(120,112,135,.28);
  border-radius:9px;
  background:rgba(12,14,25,.36);
}
.specialist-choice-reference.used{opacity:.48}
.specialist-choice-reference>div{
  display:flex;
  justify-content:space-between;
  gap:8px;
  align-items:baseline;
}
.specialist-choice-reference>div strong{
  color:#f0edf4;
  overflow-wrap:anywhere;
}
.specialist-choice-reference>div small{
  flex:0 0 auto;
  color:#c9b273;
  font-size:9px;
  font-weight:900;
}
.specialist-choice-reference>span{
  display:block;
  margin-top:3px;
  color:#9f99a8;
  font-size:10px;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.specialist-choice-reference h5{
  margin:8px 0 2px;
  color:#e4ca88;
  font-size:12px;
}
.specialist-choice-reference p{
  margin:0;
  color:#aaa4b2;
  font-size:11px;
  line-height:1.45;
  overflow-wrap:anywhere;
}

.specialist-auto-note{
  display:grid;
  gap:4px;
  padding:10px 11px!important;
  border-left:3px solid rgba(184,149,80,.72);
}
.specialist-auto-note strong{color:#e4ca88}
.specialist-auto-note span{line-height:1.45}
.specialist-auto-tracking{
  border-top-color:rgba(184,149,80,.28)!important;
}
.specialist-auto-row{
  background:rgba(184,149,80,.045);
}
.specialist-auto-row .model-weapon-label{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
}
.specialist-auto-row .model-weapon-label>span{
  color:#8f8998;
  font-size:9px;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.specialist-auto-row .model-weapon-label>strong{
  color:#f0edf4;
}
.specialist-auto-weapons span{
  display:inline-flex;
  padding:4px 7px;
  border:1px solid rgba(120,112,135,.28);
  border-radius:999px;
  color:#bbb4c3;
  font-size:10px;
  font-weight:700;
}

.picker-preview-specialist-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
}
.picker-preview-specialist-grid>span{
  display:grid;
  gap:2px;
  min-width:0;
  padding:7px 8px;
  border:1px solid rgba(184,149,80,.28);
  border-radius:8px;
  background:rgba(184,149,80,.055);
}
.picker-preview-specialist-grid strong{
  color:#d7bd7c;
  font-size:10px;
  overflow-wrap:anywhere;
}
.picker-preview-specialist-grid small{
  color:#96909f;
  font-size:9px;
  overflow-wrap:anywhere;
}

.compendium-specialist-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin:9px 0 16px;
}
.compendium-specialist-grid article{
  min-width:0;
  padding:10px;
  border:1px solid rgba(184,149,80,.26);
  border-radius:9px;
  background:rgba(184,149,80,.045);
}
.compendium-specialist-grid article>div{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:8px;
}
.compendium-specialist-grid strong{color:#e4ca88}
.compendium-specialist-grid small{
  color:#a99b79;
  font-size:9px;
  font-weight:900;
}
.compendium-specialist-grid article>span{
  display:block;
  margin:4px 0 8px;
  color:#96909f;
  font-size:10px;
  overflow-wrap:anywhere;
}
.compendium-specialist-grid h4{
  margin:0 0 3px;
  color:#f0edf4;
  font-size:12px;
}
.compendium-specialist-grid p{
  margin:0!important;
  color:#aaa4b2;
  font-size:11px;
  line-height:1.45;
}

@media(max-width:620px){
  .picker-preview-specialist-grid,
  .compendium-specialist-grid{
    grid-template-columns:1fr;
  }
}


/* v1.6.1.6 — Battle Weapon selection */
.unit-edit-battle-weapons{min-width:0;overflow:hidden}
.battle-weapon-heading{
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-width:0;
  margin:0 0 10px;padding-bottom:9px;border-bottom:1px solid #34394f
}
.battle-weapon-heading>span{
  min-width:0;color:#f0edf4;font-family:"Barlow Condensed";font-size:22px;font-weight:900;
  line-height:1;letter-spacing:.03em;text-transform:uppercase
}
.battle-weapon-heading>small{flex:0 0 auto;color:#aaa4b2;font-size:11px;font-weight:800;white-space:nowrap}
.battle-weapon-picker{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;min-width:0;margin-top:10px
}
.battle-weapon-choice{
  display:grid!important;grid-template-columns:22px minmax(0,1fr)!important;align-items:start!important;
  gap:10px!important;width:auto!important;min-width:0!important;min-height:0!important;margin:0!important;
  padding:11px!important;border:1px solid #353a50!important;border-radius:10px!important;
  background:#171b2f!important;box-sizing:border-box!important;overflow:hidden!important;
  touch-action:manipulation;-webkit-tap-highlight-color:transparent
}
.battle-weapon-choice.is-selected{border-color:#656c9f!important;background:#1d2239!important}
.battle-weapon-choice.is-unavailable{opacity:.5}
.battle-weapon-choice input[type="checkbox"]{
  appearance:auto!important;-webkit-appearance:checkbox!important;display:block!important;position:static!important;
  width:20px!important;min-width:20px!important;max-width:20px!important;height:20px!important;min-height:20px!important;
  max-height:20px!important;margin:1px 0 0!important;padding:0!important;border:0!important;border-radius:4px!important;
  box-shadow:none!important;transform:none!important
}
.battle-weapon-choice-copy{
  display:block!important;position:static!important;width:auto!important;min-width:0!important;max-width:100%!important;
  margin:0!important;padding:0!important;transform:none!important;text-align:left!important;overflow:hidden!important
}
.battle-weapon-choice-copy strong{
  display:block;min-width:0;color:#f0edf4;font-size:13px;line-height:1.25;overflow-wrap:anywhere
}
.battle-weapon-choice-copy small{
  display:block;min-width:0;margin-top:3px;color:#aaa4b2;font-size:11px;line-height:1.3;overflow-wrap:anywhere
}
.battle-weapon-count{display:flex;justify-content:flex-end;align-items:center;gap:4px;margin-top:8px;color:#aaa4b2;font-size:11px}
.battle-weapon-shortlist-note{
  display:flex;flex-direction:column;gap:3px;min-width:0;padding:8px 10px;margin:0 0 8px;
  border:1px solid rgba(255,255,255,.12);border-radius:8px;background:rgba(255,255,255,.035)
}
.battle-weapon-shortlist-note strong{font-size:10px;letter-spacing:.11em;opacity:.68}
.battle-weapon-shortlist-note span{min-width:0;font-size:12px;line-height:1.3;overflow-wrap:anywhere}
.battle-weapon-empty{
  display:flex;flex-direction:column;gap:4px;padding:10px;border:1px dashed rgba(255,255,255,.18);
  border-radius:9px;color:#aaa4b2
}
.battle-weapon-empty strong{color:#d5d0db;font-size:11px;letter-spacing:.06em}
.battle-weapon-empty span{font-size:11px;line-height:1.35}
@media(max-width:640px){
  .battle-weapon-picker{grid-template-columns:1fr}
  .battle-weapon-heading{align-items:flex-start}
  .battle-weapon-heading>span{font-size:20px}
  .battle-weapon-choice{grid-template-columns:22px minmax(0,1fr)!important;padding:10px!important}
}


/* v1.6.1.6 — separate ranged/melee Battle Weapon caps */
.battle-weapon-type-group{
  min-width:0;
  margin-top:14px;
}
.battle-weapon-type-group + .battle-weapon-type-group{
  padding-top:14px;
  border-top:1px solid #30354a;
}
.battle-weapon-type-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  min-width:0;
}
.battle-weapon-type-head strong{
  min-width:0;
  color:#e6e1ea;
  font-size:12px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.battle-weapon-type-head small{
  flex:0 0 auto;
  color:#aaa4b2;
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
}


/* v1.6.1.6 — Legal / IP Contact */
.legal-page{
  min-height:100vh;
  background:
    radial-gradient(circle at 18% -8%,rgba(105,87,184,.14),transparent 28rem),
    linear-gradient(180deg,#100e1d 0%,#111020 100%);
}
.legal-main{
  width:min(760px,calc(100% - 28px));
  margin:0 auto;
  padding:88px 0 96px;
}
.legal-hero{
  margin:0 0 22px;
}
.legal-hero h1{
  margin:4px 0 8px;
  color:#f4f2fb;
  font-family:"Barlow Condensed",sans-serif;
  font-size:clamp(38px,8vw,58px);
  font-weight:800;
  line-height:.95;
  text-transform:uppercase;
}
.legal-hero p{
  margin:0;
  color:#aaa4bb;
  line-height:1.5;
}
.legal-card{
  margin:12px 0;
  padding:18px;
  border:1px solid #3a3552;
  border-radius:16px;
  background:#171426;
}
.legal-card h2{
  margin:0 0 10px;
  color:#f4f2fb;
  font-family:"Barlow Condensed",sans-serif;
  font-size:26px;
  font-weight:800;
  text-transform:uppercase;
}
.legal-card p{
  margin:8px 0;
  color:#c7c2cf;
  font-size:14px;
  line-height:1.6;
}
.legal-email{
  display:inline-flex;
  max-width:100%;
  margin:7px 0 3px;
  padding:10px 12px;
  border:1px solid #565078;
  border-radius:9px;
  color:#fff;
  background:#24203a;
  font-weight:800;
  overflow-wrap:anywhere;
}
.legal-small{
  color:#918b9b!important;
  font-size:12px!important;
}
@media(max-width:640px){
  .legal-main{padding-top:76px}
  .legal-card{padding:15px}
}


/* v1.6.1.7 — unified Confluence controls */
.tc-native-select{
  position:absolute!important;
  width:1px!important;height:1px!important;
  opacity:0!important;pointer-events:none!important;
}
.tc-select-shell{position:relative;display:block;width:100%;min-width:0}
.tc-select-button{
  width:100%;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:11px 13px!important;border:1px solid #4a4365!important;border-radius:11px!important;
  background:#27223d!important;color:#f4f2fb!important;text-align:left!important;font-weight:600!important;
  box-shadow:none!important
}
.tc-select-button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tc-select-button b{flex:0 0 auto;color:#aaa4bb;font-size:16px;transition:transform .16s ease}
.tc-select-button.open b{transform:rotate(180deg)}
.tc-select-button.is-placeholder span{color:#aaa4bb}
.tc-select-button:disabled{opacity:.5}
.tc-select-menu{
  position:fixed;z-index:100000;display:grid;gap:4px;padding:7px;overflow:auto;
  touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  border:1px solid #4a4365;border-radius:14px;background:#1a172c;
  box-shadow:0 24px 70px rgba(0,0,0,.55)
}
.tc-select-menu[hidden]{display:none!important}
.tc-select-option{
  width:100%;min-height:44px;padding:10px 12px!important;border:0!important;border-radius:9px!important;
  background:transparent!important;color:#eeeaf3!important;text-align:left!important;font-weight:600!important;
  pointer-events:auto!important;touch-action:manipulation
}
.tc-select-option:hover,.tc-select-option:focus{background:#292540!important}
.tc-select-option.selected{background:#353052!important;color:#fff!important}
.tc-select-option.placeholder{color:#aaa4bb!important}
.tc-select-option:disabled{opacity:.38}

.tc-dialog-overlay{
  position:fixed;inset:0;z-index:120000;display:grid;place-items:center;padding:18px;
  background:rgba(5,5,12,.72);backdrop-filter:blur(8px)
}
.tc-dialog-overlay[hidden]{display:none!important}
.tc-dialog-card{
  width:min(460px,100%);padding:22px;border:1px solid #4a4365;border-radius:18px;
  background:linear-gradient(145deg,#1a172d,#121522);box-shadow:0 30px 90px rgba(0,0,0,.58)
}
.tc-dialog-kicker{color:#b4d7c4;font-size:10px;font-weight:900;letter-spacing:.18em}
.tc-dialog-card h2{
  margin:6px 0 9px;font-family:"Barlow Condensed",sans-serif;font-size:30px;line-height:1;
  text-transform:uppercase;color:#fff
}
.tc-dialog-card p{margin:0;color:#c6c0cf;line-height:1.5}
.tc-dialog-input-wrap{display:grid;gap:6px;margin-top:16px}
.tc-dialog-input-wrap span{color:#aaa4bb;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.tc-dialog-input-wrap input{width:100%}
.tc-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}
.tc-dialog-actions button{min-width:96px}
.tc-dialog-confirm.danger{
  background:#552c35!important;border-color:#8e4a55!important;color:#f7d9dd!important
}
html.tc-dialog-open,body.tc-dialog-open{overflow:hidden!important}


/* v1.6.1.7 — Updates tab cleanup */
.updates-page{
  min-height:100vh;
  background:
    radial-gradient(circle at 15% -10%,rgba(100,83,170,.15),transparent 30rem),
    linear-gradient(180deg,#0d1020 0%,#111020 100%);
}
.updates-main{
  width:min(820px,calc(100% - 28px));
  max-width:none;
  margin:0 auto;
  padding:82px 0 96px;
}
.updates-hero{margin-bottom:26px}
.updates-logo-link{
  display:inline-block;
  max-width:min(440px,84vw);
  margin-bottom:24px;
}
.updates-logo-link img{
  display:block;
  width:100%;
  max-height:112px;
  margin:0;
  object-fit:contain;
  object-position:left center;
}
.updates-kicker{
  color:#b4d7c4;
  font-size:10px;
  font-weight:900;
  letter-spacing:.18em;
}
.updates-hero h1{
  margin:5px 0 8px;
  color:#fff;
  font-family:"Barlow Condensed",sans-serif;
  font-size:clamp(42px,8vw,58px);
  line-height:.95;
  text-transform:uppercase;
}
.updates-hero>p{
  max-width:620px;
  margin:0;
  color:#aaa4bb;
  font-size:14px;
  line-height:1.55;
}
.updates-tabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:22px;
  padding:5px;
  border:1px solid #35324c;
  border-radius:13px;
  background:#151326;
}
.updates-tabs a{
  display:flex;
  min-height:42px;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  border-radius:9px;
  color:#aaa4bb;
  text-decoration:none;
  font-size:12px;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.updates-tabs a.active{
  background:#2b2742;
  color:#fff;
  box-shadow:inset 0 0 0 1px #494361;
}
.updates-section-heading{
  display:flex;
  align-items:center;
  gap:12px;
  margin:26px 0 10px;
  color:#b4d7c4;
  font-size:10px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.updates-section-heading::after{
  content:"";
  height:1px;
  flex:1;
  background:#35324c;
}
.update-release{
  position:relative;
  margin:10px 0;
  padding:18px;
  border:1px solid #343149;
  border-radius:15px;
  background:linear-gradient(145deg,#18162b,#111421);
  box-shadow:none;
}
.update-release.current{
  border-color:#6c628c;
  box-shadow:inset 3px 0 0 #b4d7c4;
}
.update-version{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.update-version strong{
  color:#f3eff8;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:12px;
  letter-spacing:.02em;
}
.update-version small{
  min-width:0;
  padding:4px 7px;
  border-radius:999px;
  background:#242c36;
  color:#b4d7c4;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.update-release h2{
  margin:8px 0 9px;
  color:#fff;
  font-family:"Barlow Condensed",sans-serif;
  font-size:28px;
  line-height:1;
  text-transform:uppercase;
}
.update-release p{
  margin:7px 0 0;
  color:#beb8c7;
  font-size:13px;
  line-height:1.55;
}
.updates-archive-list{
  display:grid;
  gap:8px;
}
.update-archive-release{
  border:1px solid #302d43;
  border-radius:13px;
  background:#141225;
  overflow:hidden;
}
.update-archive-release>summary{
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:52px;
  padding:11px 14px;
  cursor:pointer;
}
.update-archive-release>summary::-webkit-details-marker{display:none}
.update-archive-release>summary strong{
  color:#eae6ef;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:12px;
}
.update-archive-release>summary span{
  color:#8f8999;
  font-size:11px;
}
.update-archive-release[open]>summary{
  border-bottom:1px solid #302d43;
  background:#1b182d;
}
.update-archive-body{
  display:grid;
  gap:0;
  padding:0 14px;
}
.archive-update-item{
  padding:14px 0;
  border-bottom:1px solid #2b283b;
}
.archive-update-item:last-child{border-bottom:0}
.archive-update-item h3{
  margin:0 0 6px;
  color:#f1edf4;
  font-family:"Barlow Condensed",sans-serif;
  font-size:21px;
  line-height:1.05;
  text-transform:uppercase;
}
.archive-update-item p{
  margin:5px 0 0;
  color:#aaa4b2;
  font-size:12px;
  line-height:1.5;
}
@media(max-width:640px){
  .updates-main{padding-top:74px}
  .update-release{padding:15px}
  .update-release h2{font-size:25px}
  .update-version{align-items:flex-start;flex-direction:column;gap:5px}
  .update-version small{white-space:normal}
}


/* v1.6.1.8 — dialog input visibility hotfix */
.tc-dialog-input-wrap[hidden]{
  display:none!important;
}

/* v1.6.2 — Adeptus Astartes roster recovery */
.models-faction-status{margin:18px 0 20px;padding:18px;border:1px solid #4a4560;border-radius:16px;background:linear-gradient(135deg,#171426,#201c31);color:#ece9f5}
.models-faction-status>small{display:block;color:#b8a56a;font-weight:800;letter-spacing:.12em}
.models-faction-status h2{margin:4px 0 8px;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;font-size:30px}
.models-faction-status p{margin:0;color:#c8c2d5;line-height:1.5}
.models-roster-count{display:flex;align-items:center;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid #ffffff18}
.models-roster-count strong{font-family:"Barlow Condensed",sans-serif;font-size:32px;color:#fff}
.models-roster-count span{color:#aaa4bb;font-size:13px}
.models-chapter-preview{display:grid;gap:8px;margin-top:14px}
.models-chapter-preview>div{padding:11px 12px;border:1px solid #ffffff16;border-radius:10px;background:#ffffff08}
.models-chapter-preview strong{display:block;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;font-size:20px}
.models-chapter-preview span{display:block;color:#c9c3d6;font-size:12px;margin-top:3px}

/* v1.6.2 — Adeptus Astartes recovered named roster */
.models-roster-preview{display:grid;gap:14px;margin-top:16px}
.models-roster-group{padding:14px;border:1px solid #ffffff16;border-radius:12px;background:#0d0b16aa}
.models-roster-group h3{margin:0 0 10px;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;font-size:20px;color:#f1edf4}
.models-roster-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}
.models-roster-entry{min-width:0;padding:10px 11px;border:1px solid #ffffff12;border-radius:9px;background:#ffffff07}
.models-roster-entry strong{display:block;font-family:"Barlow Condensed",sans-serif;font-size:18px;text-transform:uppercase;color:#fff}
.models-roster-entry small{display:block;margin-top:2px;color:#b8a56a;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.models-roster-entry span{display:block;margin-top:4px;color:#bcb5c9;font-size:11px;line-height:1.35}
.models-chapter-preview{display:grid;gap:14px;margin-top:14px}
.models-chapter-preview>section{padding:14px}
.models-chapter-group{border-color:#6b4050;background:linear-gradient(135deg,#24121a,#160e18)}
@media(max-width:640px){.models-roster-grid{grid-template-columns:1fr 1fr}.models-roster-entry{padding:9px}}
@media(max-width:430px){.models-roster-grid{grid-template-columns:1fr}}


/* v1.6.2.1 — Astartes recovery roster in Army Builder */
.recovery-roster-builder{margin:16px 0 22px;padding:16px;border:1px solid #4a4365;border-radius:16px;background:linear-gradient(145deg,#1a172d,#121522)}
.recovery-roster-head small{color:#b4d7c4;font-size:10px;font-weight:900;letter-spacing:.16em}.recovery-roster-head h3{margin:5px 0 8px;font-family:"Barlow Condensed",sans-serif;font-size:30px;text-transform:uppercase}.recovery-roster-builder>p{margin:0 0 14px;color:#bcb6c8;line-height:1.5}.recovery-roster-group{margin-top:14px}.recovery-roster-group h4{margin:0 0 7px;font-family:"Barlow Condensed",sans-serif;font-size:20px;text-transform:uppercase}.recovery-roster-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.recovery-roster-grid article{display:grid;gap:2px;padding:10px;border:1px solid #37324e;border-radius:10px;background:#211d34}.recovery-roster-grid strong{font-size:13px}.recovery-roster-grid small{color:#b4d7c4;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.recovery-roster-grid span{color:#aaa4bb;font-size:11px;line-height:1.35}.recovery-roster-group.chapter{padding-top:12px;border-top:1px solid #3d3854}.category-add:disabled{opacity:.28!important;cursor:not-allowed!important}
@media(max-width:640px){.recovery-roster-grid{grid-template-columns:1fr}}
