.influence-shell { gap: 1.5rem; }

.influence-hero {
  display:flex; justify-content:space-between; gap:1.5rem; align-items:flex-end;
  background:linear-gradient(180deg, rgba(17,24,39,.96), rgba(8,12,22,.98));
  border:1px solid rgba(148,163,184,.16); border-radius:18px; padding:1.5rem;
  box-shadow:0 24px 60px rgba(2,6,23,.35);
}
.influence-hero h1 { margin:.2rem 0 .6rem; }
.influence-hero p { max-width:76ch; }
.influence-hero-actions { display:flex; flex-wrap:wrap; gap:.75rem; }

.influence-summary-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(175px,1fr)); gap:.9rem;
}
.influence-stat-card {
  background:rgba(15,23,42,.9); border:1px solid rgba(148,163,184,.16); border-radius:14px; padding:1rem 1.1rem;
}
.influence-stat-card span { display:block; color:#98a6bc; font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; }
.influence-stat-card strong { display:block; margin-top:.42rem; font-size:1.55rem; }

.hex-map-panel,
.rules-panel {
  background:rgba(10,16,30,.94); border:1px solid rgba(148,163,184,.16); border-radius:18px; padding:1.35rem;
}

.hex-world {
  position:relative; min-height:920px; overflow:hidden; border-radius:18px;
  background:
    radial-gradient(circle at 12% 18%, rgba(255,255,255,.18) 0 1px, transparent 1.7px),
    radial-gradient(circle at 82% 24%, rgba(255,255,255,.14) 0 1px, transparent 1.7px),
    radial-gradient(circle at 56% 72%, rgba(255,255,255,.12) 0 1px, transparent 1.7px),
    radial-gradient(circle at 31% 57%, rgba(255,255,255,.11) 0 1px, transparent 1.7px),
    linear-gradient(180deg,#050a13 0%,#07101d 52%,#040914 100%);
  box-shadow:inset 0 0 0 1px rgba(85,103,139,.2), inset 0 0 90px rgba(49,64,95,.18);
}
.hex-world-grid {
  position:absolute; inset:0; opacity:.22;
  background-image:linear-gradient(rgba(93,121,164,.14) 1px, transparent 1px),linear-gradient(90deg,rgba(93,121,164,.14) 1px,transparent 1px);
  background-size:40px 40px;
  mask-image:linear-gradient(to bottom,transparent,black 15%,black 85%,transparent);
}

.discipline-cluster {
  position:absolute; width:248px; height:220px; transform:translate(-50%,-50%);
  filter:drop-shadow(0 0 20px rgba(53,71,105,.28));
}

/* Width-rebalanced seven-cell honeycomb. The 37-cell territory field remains wider without becoming taller, with the four side discipline clusters moved slightly farther outward to give the central territory more breathing room. */
.cluster-optical { left:50%!important; top:calc(50% - 292px)!important; }
.cluster-radio { left:calc(50% - 230px)!important; top:calc(50% - 136px)!important; }
.cluster-solar { left:calc(50% + 230px)!important; top:calc(50% - 136px)!important; }
.cluster-general { left:50%!important; top:50%!important; }
.cluster-lunar { left:calc(50% - 230px)!important; top:calc(50% + 136px)!important; }
.cluster-exoplanet { left:calc(50% + 230px)!important; top:calc(50% + 136px)!important; }
.cluster-moving_object { left:50%!important; top:calc(50% + 292px)!important; }
.cluster-heading {
  position:absolute; left:50%; top:-26px; transform:translateX(-50%); z-index:15;
  display:flex; align-items:center; gap:.4rem; white-space:nowrap; text-decoration:none; color:#edf5ff;
  padding:.35rem .6rem; border-radius:999px; background:rgba(4,9,18,.82); border:1px solid rgba(148,163,184,.18);
}
.cluster-heading span { color:var(--discipline-accent); font-size:1.1rem; }
.cluster-heading strong { font-size:.87rem; }
.cluster-heading small { color:#94a7c3; font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; }
/* Reserve a dedicated label band above every territory. The normalized radius-three grid places its top row at 0%, so shifting the entire hex field down keeps the full top-centered label clear of every small hex without changing territory-to-territory spacing. */
.hex-cluster {
  position:absolute;
  top:32px;
  right:0;
  bottom:-32px;
  left:0;
}

.hex-wrap {
  position:absolute; width:34px; height:38px; transform:translate(-50%,-50%); z-index:4;
}
.hex-cell {
  position:absolute; inset:1px; display:flex; align-items:center; justify-content:center;
  clip-path:polygon(25% 6%,75% 6%,100% 50%,75% 94%,25% 94%,0 50%);
  background:var(--holder-color);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);
  transition:transform .12s ease, filter .12s ease;
}
.hex-wrap:hover { z-index:30; }
.hex-wrap:hover .hex-cell { transform:scale(1.12); filter:brightness(1.18); }
.hex-acronym {
  color:#fff; font-size:.52rem; font-weight:800; letter-spacing:.02em; text-shadow:0 1px 3px rgba(0,0,0,.9);
  max-width:28px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.hex-unclaimed .hex-cell { background:#263247; opacity:.36; }
.hex-minor .hex-cell {
  background-color:#6f7d91;
  background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.06) 0 4px,rgba(0,0,0,.08) 4px 8px);
}
.hex-contested .hex-cell {
  background-color:var(--holder-color);
  background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.18) 0 4px,rgba(0,0,0,.08) 4px 8px);
  box-shadow:inset 0 0 0 2px #f2cc60;
}
.hex-highly_contested .hex-cell {
  background-color:var(--holder-color);
  background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.22) 0 4px,rgba(0,0,0,.10) 4px 8px);
  box-shadow:inset 0 0 0 2px #ff7b7b,0 0 8px rgba(255,91,91,.48);
}
.hex-wrap::after {
  content:attr(data-tip); position:absolute; left:50%; bottom:calc(100% + 9px); transform:translateX(-50%);
  width:270px; max-width:70vw; padding:.6rem .7rem; border-radius:8px; background:#07111f; color:#eaf2ff;
  border:1px solid rgba(149,170,205,.32); box-shadow:0 12px 34px rgba(0,0,0,.45);
  font-size:.75rem; line-height:1.35; opacity:0; pointer-events:none; transition:opacity .12s ease; z-index:100;
}
.hex-wrap:hover::after { opacity:1; }

.discipline-detail-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(330px,1fr)); gap:1rem;
}
.discipline-detail {
  background:rgba(13,19,34,.95); border:1px solid rgba(148,163,184,.16); border-top:3px solid var(--discipline-accent);
  border-radius:16px; padding:1rem; box-shadow:0 18px 38px rgba(2,6,23,.22); scroll-margin-top:90px;
}
.discipline-detail header { display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; }
.discipline-detail h3 { margin:.2rem 0 0; }
.status-pill {
  display:inline-flex; align-items:center; justify-content:center; min-width:112px; padding:.34rem .62rem;
  border-radius:999px; font-size:.7rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; border:1px solid rgba(255,255,255,.16);
}
.status-controlled { background:rgba(32,87,54,.24); color:#9be9b0; }
.status-contested { background:rgba(110,76,18,.24); color:#ffd173; }
.status-highly_contested { background:rgba(124,42,42,.24); color:#ff9e9e; }
.status-unclaimed { background:rgba(71,85,105,.24); color:#d4deee; }

.discipline-metrics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; margin:1rem 0; }
.discipline-metrics div { background:rgba(8,14,26,.72); border:1px solid rgba(148,163,184,.11); border-radius:10px; padding:.65rem; }
.discipline-metrics span { display:block; color:#94a7c3; font-size:.69rem; text-transform:uppercase; letter-spacing:.07em; }
.discipline-metrics strong { display:block; margin-top:.25rem; }

.territory-legend { display:flex; flex-direction:column; gap:.42rem; max-height:380px; overflow:auto; padding-right:.2rem; }
.territory-row {
  display:grid; grid-template-columns:14px minmax(0,1fr) 62px 62px; gap:.6rem; align-items:center;
  padding:.55rem .6rem; background:rgba(8,14,26,.56); border:1px solid rgba(148,163,184,.09); border-radius:8px;
}
.territory-color { width:12px; height:12px; border-radius:3px; box-shadow:0 0 0 1px rgba(255,255,255,.16); }
.territory-name { min-width:0; }
.territory-name strong { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:.86rem; }
.territory-name small { display:block; color:#91a4be; margin-top:.1rem; font-size:.7rem; }
.territory-share,.territory-tiles { text-align:right; font-size:.78rem; color:#c9d6e8; }

.rules-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(245px,1fr)); gap:.9rem; }
.rules-grid article { background:rgba(15,23,42,.9); border:1px solid rgba(148,163,184,.14); border-radius:14px; padding:1rem; }
.rules-grid strong { display:block; margin-bottom:.35rem; }
.rules-grid p { margin:0; color:#9fb1c9; line-height:1.55; }

@media (max-width:1050px) {
  .hex-world { min-height:940px; }
  .discipline-cluster { width:229px; height:205px; }
  .cluster-optical { left:50%!important; top:calc(50% - 274px)!important; }
  .cluster-radio { left:calc(50% - 212px)!important; top:calc(50% - 128px)!important; }
  .cluster-solar { left:calc(50% + 212px)!important; top:calc(50% - 128px)!important; }
  .cluster-general { left:50%!important; top:50%!important; }
  .cluster-lunar { left:calc(50% - 212px)!important; top:calc(50% + 128px)!important; }
  .cluster-exoplanet { left:calc(50% + 212px)!important; top:calc(50% + 128px)!important; }
  .cluster-moving_object { left:50%!important; top:calc(50% + 274px)!important; }
  .hex-cluster { top:30px; right:0; bottom:-30px; left:0; }
  .hex-wrap { width:31px; height:35px; }
}

@media (max-width:760px) {
  .influence-hero { flex-direction:column; align-items:flex-start; }
  .hex-world { min-height:auto; display:flex; flex-direction:column; gap:2.8rem; padding:3rem 1rem; overflow:visible; }
  .hex-world-grid { display:none; }
  .discipline-cluster { position:relative; left:auto!important; top:auto!important; transform:none; width:min(260px,90vw); height:245px; margin:0 auto; }
  .cluster-heading { top:-30px; }
  .hex-cluster { top:30px; right:0; bottom:-30px; left:0; }
  .discipline-metrics { grid-template-columns:1fr; }
  .territory-row { grid-template-columns:14px minmax(0,1fr) 55px; }
  .territory-tiles { grid-column:3; }
  .hex-wrap::after { display:none; }
}
