:root {
  --bg: #e9ede6;
  --bg-deep: #dfe5dc;
  --surface: #f8faf6;
  --surface-2: #f0f4ee;
  --surface-3: #e6ece4;
  --ink: #202b27;
  --ink-soft: #59655f;
  --line: #cbd3ca;
  --line-strong: #9eaaa1;
  --nav: #1e2c29;
  --nav-soft: #2b3d38;
  --green: #3f8f70;
  --green-deep: #27634c;
  --green-soft: #dcece3;
  --blue: #4f75b7;
  --blue-soft: #dfe8f7;
  --amber: #c68b35;
  --amber-soft: #f5ead6;
  --red: #c55f52;
  --red-soft: #f7e1dd;
  --purple: #8065aa;
  --purple-soft: #ebe5f4;
  --shadow: 0 18px 44px rgba(29, 43, 38, .08);
  --shadow-small: 0 8px 20px rgba(29, 43, 38, .07);
  --radius: 18px;
  font-family: "Microsoft YaHei UI", "PingFang SC", "Noto Sans CJK SC", system-ui, sans-serif;
  color: var(--ink);
  background: var(--bg);
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { min-height: 100%; overscroll-behavior-y: none; }
body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  background: var(--bg);
  overscroll-behavior-y: none;
  -webkit-tap-highlight-color: transparent;
}

button, select { font: inherit; }
button { color: inherit; }
button, [role="button"], select { touch-action: manipulation; }
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

.ambient-grid {
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .36;
  background-image:
    linear-gradient(rgba(36, 52, 45, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(36, 52, 45, .035) 1px, transparent 1px);
  background-size: 32px 32px;
  mask-image: linear-gradient(90deg, transparent 0, #000 30%, #000);
}

.game-shell-v2 {
  position: relative;
  display: grid;
  grid-template-columns: 248px minmax(0, 1fr);
  min-height: 100vh;
}

.sidebar-v2 {
  position: sticky;
  z-index: 20;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  padding: 24px 18px 18px;
  background:
    radial-gradient(circle at 20% 0, rgba(103, 162, 134, .18), transparent 20rem),
    var(--nav);
  color: #eef5f0;
  box-shadow: 12px 0 34px rgba(21, 32, 28, .08);
}

.brand-v2 {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 8px 22px;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.brand-v2 img {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  box-shadow: 0 7px 18px rgba(0,0,0,.16);
}
.brand-v2 strong { display: block; font-size: 1.12rem; letter-spacing: -.03em; }
.brand-v2 span { display: block; margin-top: 3px; color: #aabbb2; font-size: .72rem; letter-spacing: .08em; }

.desktop-nav {
  display: grid;
  gap: 7px;
  margin-top: 22px;
}
.desktop-nav button {
  position: relative;
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  grid-template-rows: auto auto;
  gap: 1px 9px;
  align-items: center;
  width: 100%;
  min-height: 62px;
  border: 0;
  border-radius: 14px;
  background: transparent;
  color: #d5dfda;
  padding: 10px 12px;
  text-align: left;
  cursor: pointer;
  transition: background .18s, transform .18s;
}
.desktop-nav button:hover { background: rgba(255,255,255,.055); transform: translateX(2px); }
.desktop-nav button.active { background: #f0f5f1; color: var(--ink); box-shadow: 0 9px 24px rgba(0,0,0,.13); }
.desktop-nav i {
  grid-row: 1 / 3;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 10px;
  color: #86b89e;
  font-style: normal;
  font-size: .66rem;
  font-weight: 900;
}
.desktop-nav button.active i { border-color: var(--line); background: var(--green-soft); color: var(--green-deep); }
.desktop-nav span { font-weight: 800; font-size: .92rem; }
.desktop-nav small { color: #8fa19a; font-size: .68rem; }
.desktop-nav button.active small { color: var(--ink-soft); }

.company-mini {
  margin-top: auto;
  padding: 15px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 15px;
  background: rgba(255,255,255,.055);
}
.company-mini > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.company-mini small { color: #9bafa6; font-size: .68rem; }
.company-mini strong { font-size: .95rem; }
.mini-meter { overflow: hidden; height: 6px; margin: 10px 0 8px; border-radius: 999px; background: rgba(255,255,255,.13); }
.mini-meter span { display: block; height: 100%; border-radius: inherit; background: #75c29b; }
.sidebar-foot { display: flex; justify-content: space-between; gap: 8px; padding: 14px 3px 0; color: #7f938a; font-size: .62rem; }
.sidebar-foot small { color: inherit; }

.workspace-v2 {
  min-width: 0;
  width: min(1480px, 100%);
  padding: 25px 34px 110px;
  margin: 0 auto;
}

.mobile-header-v2, .mobile-nav-v2 { display: none; }

.context-bar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  min-height: 55px;
  margin-bottom: 15px;
}
.context-bar > div { display: flex; align-items: baseline; gap: 12px; }
.context-bar span { color: var(--green-deep); font-size: .78rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.context-bar strong { font-size: 1.1rem; }
.context-bar p { max-width: 490px; margin: 0; color: var(--ink-soft); font-size: .78rem; text-align: right; }

.resource-bar-v2 {
  display: grid;
  grid-template-columns: 1.35fr repeat(5, 1fr);
  gap: 8px;
  margin-bottom: 21px;
  padding: 7px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(248,250,246,.75);
  box-shadow: var(--shadow-small);
  backdrop-filter: blur(12px);
}
.resource-cell {
  position: relative;
  min-width: 0;
  padding: 10px 13px 9px 16px;
  border-radius: 11px;
  background: var(--surface);
}
.resource-cell::before {
  content: "";
  position: absolute;
  top: 12px;
  bottom: 12px;
  left: 7px;
  width: 3px;
  border-radius: 999px;
  background: var(--line-strong);
}
.resource-cell.cash::before { background: var(--green); }
.resource-cell.coffee::before { background: var(--amber); }
.resource-cell.insight::before { background: var(--purple); }
.resource-cell.supplies::before { background: var(--blue); }
.resource-cell.reputation::before { background: #bb7c55; }
.resource-cell.clues::before { background: #4e9298; }
.resource-cell.danger { background: var(--red-soft); }
.resource-cell.danger::before { background: var(--red); }
.resource-cell small { display: block; color: var(--ink-soft); font-size: .65rem; letter-spacing: .04em; }
.resource-cell strong { display: block; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; font-size: 1rem; }

.view { display: none; animation: view-in .22s ease-out; }
.view.active { display: block; }
@keyframes view-in { from { opacity: 0; transform: translateY(5px); } }

.content-v2 { display: grid; gap: 18px; }
.panel {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(248,250,246,.96);
  box-shadow: var(--shadow);
  padding: 22px;
}
.kicker {
  display: block;
  margin-bottom: 5px;
  color: var(--green-deep);
  font-size: .65rem;
  font-weight: 900;
  letter-spacing: .14em;
}
.panel h2, .page-title h1, .command-card h1 { margin: 0; letter-spacing: -.045em; }
.panel-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 17px;
}
.panel-heading h2 { font-size: 1.25rem; }
.panel-heading p { margin: 5px 0 0; color: var(--ink-soft); font-size: .77rem; line-height: 1.5; }
.panel-heading > small { color: var(--ink-soft); font-size: .68rem; }

.button {
  appearance: none;
  min-height: 42px;
  border: 1px solid var(--line-strong);
  border-radius: 11px;
  background: var(--surface);
  padding: 9px 15px;
  font-weight: 800;
  font-size: .8rem;
  cursor: pointer;
  transition: transform .13s, box-shadow .13s, background .13s;
}
.button:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 7px 15px rgba(30,45,39,.1); }
.button:active:not(:disabled) { transform: translateY(1px); box-shadow: none; }
.button:disabled { opacity: .38; cursor: not-allowed; }
.button.primary { border-color: var(--green-deep); background: var(--green); color: #fff; }
.button.secondary { background: var(--surface-2); }
.button.ghost { border-color: var(--line); background: transparent; color: var(--ink-soft); }
.button.danger { border-color: #98483e; background: var(--red); color: #fff; }
.button.compact { min-height: 34px; padding: 6px 10px; font-size: .7rem; }
.button.wide { width: 100%; }
.text-button { border: 0; background: none; padding: 4px; cursor: pointer; font-size: .7rem; font-weight: 800; }
.danger-text { color: #a7453a !important; }

.command-card {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 25px;
  min-height: 190px;
  border: 1px solid #a9b8ae;
  border-radius: 22px;
  background:
    linear-gradient(120deg, rgba(248,250,246,.97) 0 61%, rgba(217,235,225,.92) 61% 100%);
  box-shadow: var(--shadow);
  padding: 28px 30px;
}
.command-card::after {
  content: "拾光";
  position: absolute;
  right: 34px;
  bottom: -21px;
  color: rgba(41,95,72,.07);
  font-size: 6.8rem;
  font-weight: 1000;
  letter-spacing: -.15em;
}
.command-card h1 { max-width: 650px; font-size: clamp(1.55rem, 3vw, 2.45rem); }
.command-card p { max-width: 720px; margin: 11px 0 0; color: var(--ink-soft); font-size: .88rem; line-height: 1.75; }
.command-actions { position: relative; z-index: 1; display: flex; align-items: center; gap: 12px; }
.cost-preview { min-width: 150px; padding: 13px; border: 1px solid rgba(61,100,80,.18); border-radius: 13px; background: rgba(255,255,255,.65); }
.cost-preview small, .cost-preview span { display: block; color: var(--ink-soft); font-size: .62rem; }
.cost-preview strong { display: block; margin: 3px 0; font-size: 1.4rem; }
.danger-large {
  min-width: 118px;
  min-height: 68px;
  border-color: #963f36;
  background: var(--red);
  color: #fff;
  font-size: .92rem;
  box-shadow: 0 8px 20px rgba(166,67,56,.2);
}

.warning-strip, .good-strip {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin: 13px 0 18px;
  border: 1px solid #d4a69f;
  border-radius: 14px;
  background: var(--red-soft);
  padding: 12px 15px;
  font-size: .76rem;
}
.warning-strip strong, .good-strip strong { flex: 0 0 auto; }
.warning-strip div { display: grid; gap: 3px; color: #78443d; }
.good-strip { border-color: #a7cbb7; background: var(--green-soft); color: var(--green-deep); }

.dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(300px, .75fr);
  gap: 18px;
  margin-bottom: 18px;
}
.schedule-list { display: grid; gap: 8px; }
.schedule-row {
  display: grid;
  grid-template-columns: auto minmax(115px, .7fr) minmax(200px, 1.3fr);
  align-items: center;
  gap: 10px;
  padding: 10px 11px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}
.person-dot, .portrait-v2 {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 12px;
  background: var(--person);
  color: #fff;
  font-weight: 900;
  box-shadow: inset 0 -8px 18px rgba(24,36,31,.08);
}
.person-dot { width: 38px; height: 38px; font-size: .82rem; }
.person-dot.large { width: 44px; height: 44px; border-radius: 14px; }
.schedule-person strong, .schedule-person small { display: block; }
.schedule-person strong { font-size: .82rem; }
.schedule-person small { margin-top: 2px; color: var(--ink-soft); font-size: .64rem; }
select {
  width: 100%;
  min-height: 36px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--surface);
  color: var(--ink);
  padding: 6px 9px;
  font-size: .72rem;
}
select:focus { outline: 2px solid rgba(63,143,112,.2); border-color: var(--green); }
select:disabled { opacity: .65; }

.daily-actions { display: grid; align-content: start; }
.office-action {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}
.office-action:last-child { border-bottom: 0; }
.office-action strong, .office-action small { display: block; }
.office-action strong { font-size: .8rem; }
.office-action small { margin-top: 3px; color: var(--ink-soft); font-size: .64rem; }
.counter-chip, .deadline-chip, .story-chip, .objective-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface-2);
  padding: 5px 9px;
  color: var(--ink-soft);
  font-size: .66rem;
  font-weight: 800;
  white-space: nowrap;
}

.facility-v2-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.facility-v2 {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 128px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  padding: 14px;
}
.facility-v2.unbuilt { background: var(--surface-2); color: var(--ink-soft); }
.facility-symbol {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid #aac2b5;
  border-radius: 13px;
  background: var(--green-soft);
  color: var(--green-deep);
  font-weight: 1000;
}
.facility-name { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.facility-name h3 { margin: 0; font-size: .9rem; }
.facility-name span { color: var(--green-deep); font-size: .64rem; font-weight: 900; }
.facility-copy p { margin: 6px 0; color: var(--ink-soft); font-size: .68rem; line-height: 1.45; }
.facility-copy small { color: #748078; font-size: .6rem; }

.page-title {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin: 4px 1px 18px;
}
.page-title h1 { font-size: clamp(1.55rem, 3vw, 2.2rem); }
.page-title p { max-width: 720px; margin: 7px 0 0; color: var(--ink-soft); font-size: .8rem; line-height: 1.6; }
.page-title-actions { display: flex; align-items: center; gap: 8px; }

.project-list { display: grid; gap: 11px; }
.project-card {
  border: 1px solid var(--line);
  border-radius: 15px;
  background: #fff;
  padding: 16px;
}
.project-card.urgent { border-color: #d29a91; box-shadow: inset 4px 0 0 var(--red); }
.project-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.project-top h3 { margin: 3px 0 0; font-size: 1rem; }
.client-name { color: var(--green-deep); font-size: .63rem; font-weight: 900; letter-spacing: .05em; }
.deadline-chip { border-color: #dbb0a8; background: var(--red-soft); color: #93493e; }
.story-chip { border-color: #b7a6d0; background: var(--purple-soft); color: #63488a; }
.project-card > p { margin: 10px 0; color: var(--ink-soft); font-size: .7rem; line-height: 1.55; }
.project-meta, .region-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.project-meta span, .region-tags b {
  border-radius: 7px;
  background: var(--surface-2);
  padding: 5px 7px;
  color: var(--ink-soft);
  font-size: .61rem;
  font-weight: 700;
}
.progress-line { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; margin-top: 13px; }
.progress-line > div, .xp-row > div {
  overflow: hidden;
  height: 9px;
  border-radius: 999px;
  background: var(--surface-3);
}
.progress-line span, .xp-row span { display: block; height: 100%; border-radius: inherit; background: var(--green); }
.progress-line strong { font-size: .7rem; }
.project-footer { display: flex; align-items: center; gap: 8px; margin-top: 12px; }
.assigned-chips { display: flex; flex: 1; flex-wrap: wrap; gap: 5px; }
.assigned-chips span, .forecast-chip {
  border-radius: 999px;
  background: var(--green-soft);
  padding: 4px 7px;
  color: var(--green-deep);
  font-size: .6rem;
  font-weight: 800;
}
.assigned-chips em { color: var(--red); font-size: .65rem; font-style: normal; }
.forecast-chip { background: var(--blue-soft); color: #3f6096; }
.board-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.board-project { display: flex; flex-direction: column; }
.project-price { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 8px; margin-top: auto; padding-top: 15px; }
.project-price small, .project-price strong { display: block; }
.project-price small { color: var(--ink-soft); font-size: .58rem; }
.project-price strong { margin-top: 2px; font-size: .9rem; }
.empty-state { display: grid; place-items: center; min-height: 150px; color: var(--ink-soft); text-align: center; }
.empty-state p { margin: 5px 0 0; font-size: .72rem; }

.party-panel { margin-bottom: 13px; }
.party-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.party-row.compact { margin-top: 18px; }
.party-card {
  display: flex;
  align-items: center;
  gap: 9px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  padding: 9px;
}
.party-card strong, .party-card small { display: block; }
.party-card strong { font-size: .76rem; }
.party-card small { margin-top: 2px; color: var(--ink-soft); font-size: .6rem; }
.team-note { margin-top: 10px; color: var(--ink-soft); font-size: .66rem; }
.region-list { display: grid; gap: 10px; }
.region-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) 130px;
  align-items: center;
  gap: 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(248,250,246,.95);
  box-shadow: var(--shadow-small);
  padding: 16px;
}
.region-card.locked { opacity: .57; filter: grayscale(.4); }
.region-number {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border: 1px solid #a9beb2;
  border-radius: 17px;
  background: var(--green-soft);
  color: var(--green-deep);
  font-size: 1.18rem;
  font-weight: 1000;
}
.region-copy > span { color: var(--green-deep); font-size: .62rem; font-weight: 900; }
.region-copy h3 { margin: 3px 0 6px; font-size: 1rem; }
.region-copy p { margin: 0 0 9px; color: var(--ink-soft); font-size: .7rem; line-height: 1.5; }
.region-action { display: grid; gap: 8px; }
.region-action small { color: var(--ink-soft); font-size: .62rem; text-align: center; }

.expedition-v2-layout { display: grid; grid-template-columns: minmax(430px, .9fr) minmax(360px, 1.1fr); gap: 18px; }
.map-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.map-title h2 { margin: 0; font-size: 1.3rem; }
.map-title p { margin: 5px 0 0; color: var(--ink-soft); font-size: .7rem; }
.objective-chip { min-width: 54px; background: var(--amber-soft); border-color: #ddc39a; color: #825b22; }
.exp-bars { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 16px 0 12px; }
.exp-bars label { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 5px; font-size: .64rem; }
.bar { overflow: hidden; height: 9px; border-radius: 999px; background: var(--surface-3); }
.bar i { display: block; height: 100%; border-radius: inherit; }
.bar.focus i { background: var(--green); }
.bar.pressure i { background: var(--red); }
.map-grid-v2 { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; margin: 10px auto 14px; width: min(100%, 490px); }
.map-tile-v2 {
  aspect-ratio: 1;
  min-width: 0;
  border: 1px solid #cdd3cb;
  border-radius: 9px;
  background: #dfe4dd;
  color: #87918a;
  font-weight: 1000;
  cursor: default;
}
.map-tile-v2.revealed { border-color: #9eaaa1; background: #fff; color: var(--ink); }
.map-tile-v2.visited { background: var(--blue-soft); }
.map-tile-v2.blocked { background: repeating-linear-gradient(135deg,#d8ddd7,#d8ddd7 6px,#cbd1ca 6px,#cbd1ca 12px); color: #7f8982; }
.map-tile-v2.current { border: 2px solid var(--green-deep); background: var(--green); color: #fff; box-shadow: 0 0 0 4px rgba(63,143,112,.14); }
.map-tile-v2.clickable { cursor: pointer; }
.map-tile-v2.clickable:hover { transform: translateY(-2px); box-shadow: var(--shadow-small); }
.map-controls { display: grid; justify-content: center; gap: 5px; }
.map-controls > button { margin: 0 auto; }
.map-controls div { display: flex; gap: 5px; }
.map-controls button {
  width: 42px;
  height: 36px;
  border: 1px solid var(--line-strong);
  border-radius: 9px;
  background: var(--surface-2);
  cursor: pointer;
  font-weight: 900;
}
.map-actions { display: flex; justify-content: center; gap: 7px; margin-top: 14px; }
.log-panel-v2 { min-height: 590px; }
.story-log-v2 { display: grid; gap: 8px; max-height: 525px; overflow-y: auto; padding-right: 5px; }
.story-entry {
  position: relative;
  border-left: 2px solid var(--line);
  background: var(--surface-2);
  padding: 12px 12px 12px 15px;
  color: var(--ink-soft);
  font-size: .75rem;
  line-height: 1.7;
}
.story-entry.latest { border-left-color: var(--green); background: var(--green-soft); color: var(--ink); }
.story-entry strong { color: var(--green-deep); }

.employee-v2-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.employee-v2 {
  display: grid;
  gap: 13px;
  border: 1px solid var(--line);
  border-radius: 17px;
  background: rgba(248,250,246,.96);
  box-shadow: var(--shadow-small);
  padding: 17px;
}
.employee-v2.selected { border-color: #82ae98; box-shadow: inset 0 3px 0 var(--green), var(--shadow-small); }
.employee-v2.locked { background: var(--surface-2); }
.employee-head { display: flex; align-items: center; gap: 11px; }
.portrait-v2 { width: 58px; height: 58px; border-radius: 17px; font-size: 1.1rem; }
.employee-head span { color: var(--green-deep); font-size: .62rem; font-weight: 900; }
.employee-head h3 { margin: 2px 0; font-size: 1.05rem; }
.employee-head p { margin: 0; color: var(--ink-soft); font-size: .62rem; }
.employee-stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 6px; }
.employee-stats > div { border-radius: 9px; background: var(--surface-2); padding: 7px; text-align: center; }
.employee-stats small, .employee-stats strong { display: block; }
.employee-stats small { color: var(--ink-soft); font-size: .56rem; }
.employee-stats strong { margin-top: 2px; font-size: .9rem; }
.condition-grid { display: grid; gap: 6px; }
.condition-grid > div { display: grid; grid-template-columns: 32px minmax(0,1fr) 23px; align-items: center; gap: 6px; font-size: .58rem; }
.condition-grid span { overflow: hidden; height: 6px; border-radius: 999px; background: var(--surface-3); }
.condition-grid i { display: block; height: 100%; border-radius: inherit; background: var(--green); }
.condition-grid .fatigue i { background: var(--amber); }
.condition-grid .stress i { background: var(--red); }
.trait-box { display: grid; gap: 3px; border-left: 3px solid var(--green); background: var(--green-soft); padding: 9px 11px; }
.trait-box strong { font-size: .7rem; }
.trait-box span, .trait-box em { color: var(--ink-soft); font-size: .61rem; line-height: 1.45; }
.trait-box em { color: #88644c; font-style: normal; }
.employee-controls { display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: 7px; }
.employee-controls label { color: var(--ink-soft); font-size: .56rem; }
.employee-controls select { margin-top: 4px; }
.xp-row { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 8px; }
.xp-row > div { height: 6px; }
.xp-row span { background: var(--purple); }
.xp-row small { color: var(--ink-soft); font-size: .58rem; }
.employee-bio { min-height: 4em; margin: 0; color: var(--ink-soft); font-size: .68rem; line-height: 1.55; }

.archive-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(260px, .55fr); gap: 15px; }
.archive-layout.lower { grid-template-columns: 1fr 1fr; margin-top: 15px; }
.chapter-list { display: grid; gap: 7px; }
.chapter-row {
  display: grid;
  grid-template-columns: 42px minmax(0,1fr) auto;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  padding: 11px;
}
.chapter-row > span { color: var(--line-strong); font-size: 1rem; font-weight: 1000; }
.chapter-row strong, .chapter-row small { display: block; }
.chapter-row strong { font-size: .8rem; }
.chapter-row small { margin-top: 2px; color: var(--green-deep); font-size: .58rem; }
.chapter-row p { margin: 4px 0 0; color: var(--ink-soft); font-size: .6rem; line-height: 1.4; }
.chapter-row > b { color: var(--ink-soft); font-size: .6rem; }
.chapter-row.current { border-color: #8db7a1; background: var(--green-soft); }
.chapter-row.complete { opacity: .72; }
.chapter-row.locked { opacity: .45; }
.stat-summary { display: flex; flex-direction: column; }
.stat-summary > div { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 15px 0 auto; }
.stat-summary > div span { border: 1px solid var(--line); border-radius: 11px; background: #fff; padding: 10px; color: var(--ink-soft); font-size: .6rem; }
.stat-summary > div strong { display: block; margin-top: 4px; color: var(--ink); font-size: 1rem; }
.install-button { margin-top: 15px; }
.stat-summary > .text-button { margin-top: 10px; }
.inventory-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 7px; }
.inventory-item { position: relative; border: 1px solid var(--line); border-radius: 11px; background: #fff; padding: 10px; }
.inventory-item > small { position: absolute; right: 9px; top: 9px; color: var(--green-deep); font-weight: 900; }
.inventory-item strong, .inventory-item span { display: block; }
.inventory-item strong { font-size: .72rem; padding-right: 25px; }
.inventory-item span { margin-top: 2px; color: var(--green-deep); font-size: .55rem; }
.inventory-item p { margin: 7px 0 0; color: var(--ink-soft); font-size: .58rem; line-height: 1.45; }
.journal-list-v2 { display: grid; gap: 7px; max-height: 490px; overflow-y: auto; }
.journal-v2 { display: grid; grid-template-columns: 52px 1fr; gap: 9px; border-bottom: 1px solid var(--line); padding: 8px 0; }
.journal-v2 > span { color: var(--green-deep); font-size: .59rem; font-weight: 900; }
.journal-v2 p { margin: 0; color: var(--ink-soft); font-size: .65rem; line-height: 1.55; }
.journal-v2.story { border-left: 3px solid var(--purple); padding-left: 8px; }

.modal-backdrop-v2 {
  position: fixed;
  z-index: 70;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(23,35,31,.58);
  backdrop-filter: blur(6px);
  animation: modal-in .17s ease-out;
}
@keyframes modal-in { from { opacity: 0; } }
.modal-v2 {
  width: min(650px, 100%);
  max-height: calc(100vh - 40px);
  overflow-y: auto;
  border: 1px solid #9ba8a0;
  border-radius: 22px;
  background: var(--surface);
  box-shadow: 0 28px 70px rgba(15,28,22,.28);
  padding: 26px;
}
.modal-v2.wide-modal { width: min(820px, 100%); }
.modal-v2 h2 { margin: 0; font-size: 1.55rem; letter-spacing: -.04em; }
.modal-v2 > p { margin: 10px 0 0; color: var(--ink-soft); font-size: .78rem; line-height: 1.75; }
.modal-buttons { display: flex; justify-content: flex-end; gap: 8px; margin-top: 20px; }
.modal-summary { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.modal-summary span { border: 1px solid var(--line); border-radius: 999px; background: var(--surface-2); padding: 6px 9px; font-size: .66rem; font-weight: 800; }
.day-preview-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 17px; }
.day-preview-grid > div { border: 1px solid var(--line); border-radius: 13px; background: #fff; padding: 13px; }
.day-preview-grid h3 { margin: 0 0 8px; font-size: .78rem; }
.day-preview-grid span { display: block; margin-top: 4px; color: var(--ink-soft); font-size: .65rem; }
.preview-warning { background: var(--red-soft) !important; }
.summary-list { display: grid; gap: 7px; margin: 16px 0 0; padding: 0; list-style: none; }
.summary-list li { border-left: 3px solid var(--green); background: var(--surface-2); padding: 8px 10px; font-size: .7rem; line-height: 1.5; }
.level-notice { margin-top: 12px; border-radius: 11px; background: var(--purple-soft); padding: 10px; color: #63478d; font-size: .7rem; font-weight: 900; }
.event-choice-list-v2 { display: grid; gap: 8px; margin-top: 18px; }
.event-choice-v2 {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 12px;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: #fff;
  padding: 12px;
  text-align: left;
  cursor: pointer;
}
.event-choice-v2.expedition-choice { grid-template-columns: auto minmax(0,1fr) auto; }
.event-choice-v2:hover:not(:disabled) { border-color: var(--green); background: var(--green-soft); }
.event-choice-v2:disabled { opacity: .4; }
.event-choice-v2 strong, .event-choice-v2 span { display: block; }
.event-choice-v2 strong { font-size: .78rem; }
.event-choice-v2 span { margin-top: 3px; color: var(--ink-soft); font-size: .63rem; line-height: 1.45; }
.event-choice-v2 > b { color: var(--ink-soft); font-size: .61rem; }
.chance-v2 { border-radius: 999px; background: var(--green-soft); padding: 5px 8px; color: var(--green-deep) !important; white-space: nowrap; }
.chance-v2.risky { background: var(--red-soft); color: #a1483d !important; }
.choice-icon-v2 { width: 38px; height: 38px; display: grid !important; place-items: center; border-radius: 11px; background: var(--surface-2); color: var(--green-deep) !important; font-weight: 1000; }
.intro-rules { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin: 18px 0; }
.intro-rules div { border: 1px solid var(--line); border-radius: 12px; background: #fff; padding: 11px; }
.intro-rules strong, .intro-rules span { display: block; }
.intro-rules strong { font-size: .7rem; }
.intro-rules span { margin-top: 4px; color: var(--ink-soft); font-size: .6rem; line-height: 1.45; }
.legacy-note { margin-top: 12px; border-radius: 11px; background: var(--amber-soft); padding: 10px; color: #77521e; font-size: .65rem; line-height: 1.5; }

.toast-root {
  position: fixed;
  z-index: 90;
  top: 18px;
  left: 50%;
  transform: translateX(-50%);
  display: grid;
  gap: 7px;
  width: min(420px, calc(100% - 28px));
  pointer-events: none;
}
.toast {
  border: 1px solid #52645b;
  border-radius: 12px;
  background: var(--nav);
  color: #fff;
  box-shadow: 0 12px 30px rgba(20,32,27,.2);
  padding: 11px 14px;
  text-align: center;
  font-size: .74rem;
  font-weight: 800;
  animation: toast-in .22s ease-out;
}
@keyframes toast-in { from { opacity: 0; transform: translateY(-6px); } }

/* v3 · 季度经营、程序化项目与全局成长 */
.quarter-strip-v3 {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
  align-items: center;
  gap: 18px;
  border: 1px solid #aebcb3;
  border-radius: 16px;
  background: linear-gradient(115deg, #f7faf5, #e5eee7);
  box-shadow: var(--shadow-small);
  padding: 14px 18px;
}
.quarter-strip-v3 > div { display: grid; gap: 3px; }
.quarter-strip-v3 > div:last-child { text-align: right; }
.quarter-strip-v3 span { color: var(--green-deep); font-size: .58rem; font-weight: 1000; letter-spacing: .08em; text-transform: uppercase; }
.quarter-strip-v3 strong { font-size: .82rem; }
.quarter-strip-v3 small { color: var(--ink-soft); font-size: .62rem; }
.quarter-strip-v3 > b { border: 1px solid #8eaa9b; border-radius: 999px; background: #fff; padding: 7px 12px; color: var(--green-deep); font-size: .67rem; white-space: nowrap; }

.market-banner-v3 {
  display: grid;
  grid-template-columns: minmax(190px, .55fr) 1fr;
  gap: 18px;
  align-items: center;
  border: 1px solid #9eaf9f;
  border-radius: 16px;
  background: linear-gradient(120deg, #243a34, #3f6756);
  color: #f5faf6;
  box-shadow: var(--shadow-small);
  padding: 16px 18px;
}
.market-banner-v3.hiring { background: linear-gradient(120deg, #34405d, #64749b); border-color: #8994b0; }
.market-banner-v3 div { display: grid; gap: 4px; }
.market-banner-v3 span { color: #bcd2c6; font-size: .58rem; font-weight: 900; letter-spacing: .08em; }
.market-banner-v3 strong { font-size: .95rem; }
.market-banner-v3 p { margin: 0; color: #dce8e1; font-size: .68rem; line-height: 1.65; }

.project-tags-v3 { display: flex; flex-wrap: wrap; gap: 5px; margin: 8px 0; }
.project-tags-v3 span { border: 1px solid var(--line); border-radius: 999px; background: var(--surface-2); padding: 4px 7px; color: var(--ink-soft); font-size: .57rem; font-weight: 800; }
.project-health-v3 { display: grid; grid-template-columns: repeat(4,1fr); gap: 6px; margin: 10px 0; }
.project-health-v3 span { border: 1px solid var(--line); border-radius: 9px; background: #fff; padding: 7px; color: var(--ink-soft); font-size: .58rem; }
.project-health-v3 b { display: block; margin-top: 2px; color: var(--ink); font-size: .7rem; }
.strategy-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; margin: 10px 0 12px; }
.strategy-button { border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2); padding: 8px; text-align: left; cursor: pointer; }
.strategy-button:hover { border-color: var(--green); }
.strategy-button.selected { border-color: var(--green-deep); background: var(--green-soft); box-shadow: inset 0 0 0 1px var(--green-deep); }
.strategy-button strong, .strategy-button span { display: block; }
.strategy-button strong { font-size: .66rem; }
.strategy-button span { margin-top: 3px; color: var(--ink-soft); font-size: .54rem; line-height: 1.4; }
.bid-grid-v3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; margin-top: 11px; }
.bid-grid-v3 .button { min-height: 56px; display: grid; place-items: center; gap: 2px; padding: 7px; }
.bid-grid-v3 small { display: block; font-size: .48rem; opacity: .75; }
.employee-stats.preview { margin: 10px 0; }
.dismiss-button { display: block; margin: 10px auto 0; }

.growth-hero-v3 {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  align-items: center;
  gap: 26px;
  border-radius: 20px;
  background: radial-gradient(circle at 80% 10%, rgba(255,255,255,.12), transparent 18rem), var(--nav);
  color: #edf5f0;
  padding: 24px;
  box-shadow: var(--shadow);
}
.growth-hero-v3 span { color: #a9c0b5; font-size: .6rem; font-weight: 900; letter-spacing: .09em; }
.growth-hero-v3 h2 { margin: 4px 0 7px; font-size: 1.25rem; }
.growth-hero-v3 p { margin: 0; color: #c6d6ce; font-size: .68rem; line-height: 1.65; }
.management-xp-v3 { display: grid; gap: 6px; }
.management-xp-v3 > div { height: 8px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.14); }
.management-xp-v3 i { display: block; height: 100%; border-radius: inherit; background: #6fc39a; }
.management-xp-v3 small { color: #a9c0b5; font-size: .58rem; }
.growth-layout-v3 { display: grid; grid-template-columns: 1.3fr .7fr; gap: 14px; }
.office-tier-v3 { display: flex; align-items: center; justify-content: space-between; gap: 18px; border: 1px solid var(--line); border-radius: 14px; background: #fff; padding: 16px; }
.office-tier-v3 > div { display: grid; gap: 3px; }
.office-tier-v3 span { color: var(--green-deep); font-size: .58rem; font-weight: 900; }
.office-tier-v3 strong { font-size: .85rem; }
.office-tier-v3 small { color: var(--ink-soft); font-size: .6rem; }
.growth-card-grid-v3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; }
.growth-card-v3 { border: 1px solid var(--line); border-radius: 13px; background: #fff; padding: 13px; }
.growth-card-v3.unlocked { border-color: #88aa98; background: var(--green-soft); }
.growth-card-v3 > span { color: var(--green-deep); font-size: .55rem; font-weight: 900; }
.growth-card-v3 h3 { margin: 5px 0; font-size: .78rem; }
.growth-card-v3 p { min-height: 34px; margin: 0 0 10px; color: var(--ink-soft); font-size: .6rem; line-height: 1.5; }
.growth-card-v3 .button { width: 100%; }
.policy-grid-v3 { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; }
.policy-chip-v3 { display: grid; gap: 5px; border: 1px dashed var(--line-strong); border-radius: 12px; background: var(--surface-2); padding: 11px; opacity: .68; }
.policy-chip-v3.owned { border-style: solid; border-color: #7da38e; background: var(--green-soft); opacity: 1; }
.policy-chip-v3 strong { font-size: .7rem; }
.policy-chip-v3 span { color: var(--ink-soft); font-size: .57rem; line-height: 1.45; }
.policy-chip-v3 b { color: var(--green-deep); font-size: .54rem; }
.quarter-history-list { display: grid; gap: 6px; }
.quarter-history-row { display: grid; grid-template-columns: auto auto 1fr; align-items: center; gap: 8px; border-bottom: 1px solid var(--line); padding: 7px 0; }
.quarter-history-row span { font-size: .58rem; font-weight: 900; }
.quarter-history-row strong { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 8px; background: var(--green-soft); color: var(--green-deep); }
.quarter-history-row small { color: var(--ink-soft); font-size: .57rem; text-align: right; }

.floor-mod-v3 { display: grid; gap: 2px; margin-top: 7px; border-left: 3px solid var(--amber); background: var(--amber-soft); padding: 7px 9px; }
.floor-mod-v3 strong { color: #76511f; font-size: .61rem; }
.floor-mod-v3 span { color: #85683f !important; font-size: .56rem !important; }
.quarter-review-v3 { position: relative; overflow: hidden; }
.grade-mark-v3 { float: right; display: grid; place-items: center; width: 72px; height: 72px; border: 3px solid var(--green); border-radius: 22px; color: var(--green-deep); font-size: 2.2rem; font-weight: 1000; transform: rotate(4deg); }
.quarter-score-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; margin: 18px 0; }
.quarter-score-grid span { border: 1px solid var(--line); border-radius: 11px; background: #fff; padding: 9px; color: var(--ink-soft); font-size: .59rem; }
.quarter-score-grid strong { display: block; margin-top: 3px; color: var(--ink); font-size: .8rem; }
.quarter-perk-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.quarter-perk-choice { border: 1px solid var(--line); border-radius: 13px; background: #fff; padding: 13px; text-align: left; cursor: pointer; }
.quarter-perk-choice:hover { border-color: var(--green); background: var(--green-soft); transform: translateY(-1px); }
.quarter-perk-choice span, .quarter-perk-choice strong { display: block; }
.quarter-perk-choice span { color: var(--green-deep); font-size: .55rem; font-weight: 900; }
.quarter-perk-choice strong { margin-top: 4px; font-size: .78rem; }
.quarter-perk-choice p { margin: 7px 0 0; color: var(--ink-soft); font-size: .6rem; line-height: 1.5; }

@media (max-width: 1120px) {
  .game-shell-v2 { grid-template-columns: 210px minmax(0,1fr); }
  .workspace-v2 { padding-left: 22px; padding-right: 22px; }
  .board-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .facility-v2 { grid-template-columns: auto minmax(0,1fr); }
  .facility-v2 > .button { grid-column: 1 / -1; }
  .employee-controls { grid-template-columns: 1fr 1fr; }
  .employee-controls label:first-child { grid-column: 1 / -1; }
  .growth-card-grid-v3 { grid-template-columns: repeat(2,1fr); }
  .policy-grid-v3 { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 860px) {
  .game-shell-v2 { display: block; }
  .sidebar-v2 { display: none; }
  .workspace-v2 { width: 100%; padding: 14px 14px 102px; }
  .mobile-header-v2 { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
  .mobile-header-v2 > strong { color: var(--green-deep); font-size: .72rem; }
  .brand-v2.compact { border: 0; padding: 0; }
  .brand-v2.compact img { width: 38px; height: 38px; }
  .brand-v2.compact strong { font-size: .9rem; }
  .brand-v2.compact span { font-size: .58rem; }
  .context-bar { align-items: flex-start; min-height: 0; }
  .context-bar p { display: none; }
  .resource-bar-v2 { grid-template-columns: repeat(3,1fr); }
  .command-card { grid-template-columns: 1fr; }
  .command-card::after { display: none; }
  .command-actions { justify-content: space-between; }
  .dashboard-grid, .archive-layout, .archive-layout.lower, .expedition-v2-layout { grid-template-columns: 1fr; }
  .growth-layout-v3 { grid-template-columns: 1fr; }
  .facility-v2-grid, .employee-v2-grid { grid-template-columns: 1fr; }
  .board-grid { grid-template-columns: repeat(2,1fr); }
  .mobile-nav-v2 {
    position: fixed;
    z-index: 45;
    left: 50%;
    bottom: max(8px, env(safe-area-inset-bottom));
    transform: translateX(-50%);
    width: min(620px, calc(100% - 20px));
    display: grid;
    grid-template-columns: repeat(6,1fr);
    gap: 4px;
    border: 1px solid #7f9188;
    border-radius: 18px;
    background: rgba(30,44,41,.95);
    box-shadow: 0 16px 36px rgba(20,31,27,.25);
    padding: 6px;
    backdrop-filter: blur(14px);
  }
  .mobile-nav-v2 button {
    display: grid;
    place-items: center;
    gap: 1px;
    min-height: 52px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: #bac8c1;
    cursor: pointer;
  }
  .mobile-nav-v2 button.active { background: #f0f5f1; color: var(--ink); }
  .mobile-nav-v2 i { font-style: normal; font-size: .8rem; font-weight: 1000; }
  .mobile-nav-v2 span { font-size: .55rem; font-weight: 800; }
  .quarter-strip-v3, .growth-hero-v3 { grid-template-columns: 1fr; }
  .quarter-strip-v3 > div:last-child { text-align: left; }
  .quarter-strip-v3 > b { justify-self: start; }
  .log-panel-v2 { min-height: auto; }
  .story-log-v2 { max-height: 330px; }
}

@media (max-width: 580px) {
  .workspace-v2 { padding: 10px 10px 94px; }
  .context-bar > div { display: grid; gap: 2px; }
  .context-bar strong { font-size: .9rem; }
  .resource-bar-v2 { gap: 5px; padding: 5px; }
  .resource-cell { padding: 8px 6px 7px 11px; }
  .resource-cell::before { left: 4px; top: 9px; bottom: 9px; width: 2px; }
  .resource-cell small { font-size: .54rem; }
  .resource-cell strong { font-size: .76rem; }
  .panel { padding: 15px; border-radius: 15px; }
  .command-card { min-height: 0; padding: 20px 17px; }
  .command-card h1 { font-size: 1.4rem; }
  .command-card p { font-size: .72rem; }
  .command-actions { align-items: stretch; }
  .cost-preview { min-width: 0; flex: 1; }
  .danger-large { min-width: 105px; min-height: 62px; }
  .warning-strip, .good-strip { display: grid; gap: 6px; }
  .schedule-row { grid-template-columns: auto 1fr; }
  .schedule-row select { grid-column: 1 / -1; }
  .facility-v2 { grid-template-columns: auto 1fr; }
  .facility-v2-grid { grid-template-columns: 1fr; }
  .facility-symbol { width: 39px; height: 39px; }
  .page-title { align-items: flex-start; }
  .page-title-actions { display: grid; justify-items: end; }
  .page-title p { font-size: .7rem; }
  .board-grid { grid-template-columns: 1fr; }
  .project-footer { flex-wrap: wrap; }
  .forecast-chip { margin-left: auto; }
  .project-price { grid-template-columns: 1fr 1fr; }
  .project-price .button { grid-column: 1 / -1; }
  .strategy-grid, .bid-grid-v3 { grid-template-columns: 1fr; }
  .project-health-v3 { grid-template-columns: repeat(2,1fr); }
  .market-banner-v3 { grid-template-columns: 1fr; gap: 8px; }
  .growth-card-grid-v3, .policy-grid-v3, .quarter-perk-grid, .quarter-score-grid { grid-template-columns: 1fr; }
  .office-tier-v3 { display: grid; }
  .office-tier-v3 .button { width: 100%; }
  .party-row { grid-template-columns: 1fr; }
  .region-card { grid-template-columns: auto 1fr; gap: 11px; }
  .region-action { grid-column: 1 / -1; grid-template-columns: 1fr 1fr; align-items: center; }
  .region-action small { text-align: left; }
  .region-number { width: 48px; height: 48px; border-radius: 14px; }
  .exp-bars { grid-template-columns: 1fr; }
  .map-grid-v2 { gap: 4px; }
  .map-tile-v2 { border-radius: 7px; }
  .employee-stats { grid-template-columns: repeat(4,1fr); }
  .employee-controls { grid-template-columns: 1fr; }
  .employee-controls label:first-child { grid-column: auto; }
  .inventory-grid { grid-template-columns: 1fr; }
  .day-preview-grid, .intro-rules { grid-template-columns: 1fr; }
  .modal-v2 { padding: 20px 16px; }
  .event-choice-v2, .event-choice-v2.expedition-choice { grid-template-columns: 1fr; }
  .choice-icon-v2 { display: none !important; }
  .chance-v2 { justify-self: start; }
  .modal-buttons { display: grid; }
  .modal-buttons .button { width: 100%; }
}

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

/* ===== V4 complete management layer ===== */
.content-v2 { max-width: 1480px; }
.view { animation: v4-rise .24s ease; }
@keyframes v4-rise { from { opacity: .55; transform: translateY(5px); } to { opacity: 1; transform: none; } }
.kicker { font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.fineprint, .section-intro { color: var(--ink-soft); font-size: .72rem; line-height: 1.7; }
.text-button {
  border: 0;
  padding: 5px 0;
  background: transparent;
  color: var(--green-deep);
  font-size: .72rem;
  font-weight: 900;
  cursor: pointer;
}
.danger-text { color: var(--red); }
.v4-panel {
  margin-bottom: 18px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(248,250,246,.92);
  box-shadow: var(--shadow-small);
}
.panel-heading, .section-title, .page-heading-v4 {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}
.panel-heading { margin-bottom: 16px; }
.panel-heading h3, .section-title h2, .page-heading-v4 h1 {
  margin: 3px 0 0;
  letter-spacing: -.04em;
}
.panel-heading h3 { font-size: 1.05rem; }
.panel-heading .kicker, .section-title .kicker, .page-heading-v4 .kicker { color: var(--green-deep); font-size: .61rem; }
.panel-heading > b, .section-title > b, .section-title > span { color: var(--ink-soft); font-size: .72rem; }
.page-heading-v4 {
  margin-bottom: 18px;
  padding: 27px 28px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background:
    radial-gradient(circle at 84% 15%, rgba(87,139,111,.16), transparent 18rem),
    linear-gradient(135deg, #f9fbf7, #edf3ec);
  box-shadow: var(--shadow);
}
.page-heading-v4 h1 { max-width: 780px; font-size: clamp(1.55rem, 3vw, 2.25rem); }
.page-heading-v4 p { max-width: 780px; margin: 10px 0 0; color: var(--ink-soft); font-size: .82rem; line-height: 1.75; }
.page-heading-v4 > div:last-child {
  min-width: 130px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: rgba(255,255,255,.72);
  text-align: right;
}
.page-heading-v4 > div:last-child strong { display: block; color: var(--green-deep); font-size: 1.65rem; }
.page-heading-v4 > div:last-child span { color: var(--ink-soft); font-size: .65rem; }
.v4-section { margin-bottom: 22px; }
.v4-section > .section-title { margin-bottom: 13px; padding: 0 3px; }
.v4-progress {
  position: relative;
  height: 6px;
  overflow: hidden;
  border-radius: 999px;
  background: #dfe5df;
}
.v4-progress i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--green);
  transition: width .3s ease;
}
.v4-progress.warn i { background: var(--amber); }
.v4-progress.danger i { background: var(--red); }
.v4-progress.good i { background: var(--green); }
.good, .positive { color: var(--green-deep) !important; }
.warn { color: var(--amber) !important; }
.danger, .negative, .risk { color: var(--red) !important; }
.empty-v4 {
  display: grid;
  place-items: center;
  min-height: 130px;
  padding: 28px;
  border: 1px dashed var(--line-strong);
  border-radius: var(--radius);
  background: rgba(246,248,244,.66);
  text-align: center;
}
.empty-v4 strong { margin-bottom: 5px; }
.empty-v4 span { max-width: 560px; color: var(--ink-soft); font-size: .72rem; line-height: 1.6; }

.resource-bar-v2 {
  grid-template-columns: repeat(8, minmax(74px,1fr));
  gap: 6px;
}
.resource-chip-v4, .resource-detail-button {
  min-height: 51px;
  padding: 9px 11px;
  border: 0;
  border-left: 3px solid var(--green);
  border-radius: 10px;
  background: var(--surface);
  text-align: left;
}
.resource-chip-v4 span, .resource-detail-button { color: var(--ink-soft); font-size: .57rem; font-weight: 800; }
.resource-chip-v4 strong { display: block; margin-top: 3px; color: var(--ink); font-size: .83rem; }
.resource-chip-v4.warn { border-color: var(--amber); }
.resource-chip-v4.danger { border-color: var(--red); }
.resource-detail-button { border: 1px solid var(--line); cursor: pointer; }

.office-hero-v4 {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0,1.7fr) minmax(260px,.7fr);
  gap: 24px;
  overflow: hidden;
  margin-bottom: 18px;
  padding: 30px;
  border-radius: 23px;
  background:
    linear-gradient(100deg, rgba(28,49,42,.97), rgba(43,76,64,.93)),
    var(--nav);
  color: #f2f7f3;
  box-shadow: 0 20px 48px rgba(25,45,37,.18);
}
.office-hero-v4::after {
  content: "";
  position: absolute;
  width: 320px;
  height: 320px;
  right: -90px;
  top: -170px;
  border: 42px solid rgba(255,255,255,.055);
  border-radius: 50%;
}
.office-hero-v4 h1 { margin: 7px 0 10px; font-size: clamp(1.7rem,3.2vw,2.5rem); letter-spacing: -.05em; }
.office-hero-v4 p { max-width: 720px; margin: 0; color: #bfcdc6; font-size: .82rem; line-height: 1.75; }
.office-hero-v4 .kicker { color: #8fd0b1; font-size: .63rem; }
.hero-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 18px; }
.hero-tags span {
  padding: 6px 9px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px;
  background: rgba(255,255,255,.07);
  color: #dce8e1;
  font-size: .61rem;
}
.next-day-card {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 19px;
  border: 1px solid rgba(255,255,255,.17);
  border-radius: 16px;
  background: rgba(255,255,255,.08);
}
.next-day-card span { color: #a8bdb2; font-size: .62rem; font-weight: 900; }
.next-day-card strong { margin: 7px 0 4px; font-size: 1rem; }
.next-day-card small { margin-bottom: 15px; color: #c3d0c9; font-size: .65rem; }

.forecast-grid {
  display: grid;
  grid-template-columns: repeat(6,1fr);
  gap: 7px;
}
.forecast-grid > div {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: var(--surface-2);
}
.forecast-grid span { display: block; color: var(--ink-soft); font-size: .58rem; }
.forecast-grid strong { display: block; margin-top: 4px; font-size: .82rem; }
.management-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 9px;
}
.management-card {
  display: flex;
  flex-direction: column;
  min-height: 168px;
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: linear-gradient(145deg,#fff,#f1f5f0);
  text-align: left;
  cursor: pointer;
  transition: .17s ease;
}
.management-card:hover:not(:disabled) { transform: translateY(-2px); border-color: var(--green); box-shadow: var(--shadow-small); }
.management-card > span { color: var(--green-deep); font-size: .56rem; font-weight: 900; }
.management-card > strong { margin-top: 6px; font-size: .84rem; }
.management-card p { flex: 1; color: var(--ink-soft); font-size: .65rem; line-height: 1.55; }
.management-card > b { color: var(--amber); font-size: .65rem; }
.management-card:disabled { opacity: .48; cursor: not-allowed; }
.room-strip {
  display: grid;
  grid-template-columns: repeat(6,1fr);
  gap: 7px;
}
.room-strip > div {
  min-height: 108px;
  padding: 12px;
  border: 1px dashed var(--line);
  border-radius: 11px;
  background: var(--surface-2);
}
.room-strip > div.active { border-style: solid; border-color: #acc9b8; background: var(--green-soft); }
.room-strip span, .room-strip strong, .room-strip small { display: block; }
.room-strip span { color: var(--ink-soft); font-size: .6rem; }
.room-strip strong { margin: 5px 0; }
.room-strip small { color: var(--ink-soft); font-size: .56rem; line-height: 1.45; }
.assignment-summary { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; }
.assignment-summary > div {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 9px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: var(--surface-2);
}
.avatar-dot {
  display: grid;
  place-items: center;
  width: 31px;
  height: 31px;
  border-radius: 10px;
  background: var(--green-deep);
  color: white;
  font-size: .7rem;
  font-weight: 900;
}
.assignment-summary p { margin: 0; }
.assignment-summary strong, .assignment-summary small { display: block; }
.assignment-summary strong { font-size: .69rem; }
.assignment-summary small { margin-top: 2px; color: var(--ink-soft); font-size: .55rem; }
.assignment-summary b { font-size: .61rem; }

.project-card-v4, .offer-card-v4, .employee-card-v4, .candidate-card-v4,
.department-card-v4, .room-card-v4, .research-node-v4, .blueprint-card-v4,
.region-card-v4, .story-chain-v4 {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-small);
}
.project-card-v4 { margin-bottom: 12px; padding: 21px; }
.project-card-head { display: flex; justify-content: space-between; gap: 15px; }
.project-card-head .kicker { color: var(--green-deep); font-size: .58rem; }
.project-card-head h3 { margin: 4px 0; font-size: 1.13rem; }
.project-card-head p { margin: 0; color: var(--ink-soft); font-size: .67rem; }
.project-card-head > b {
  align-self: flex-start;
  padding: 7px 10px;
  border-radius: 999px;
  background: var(--green-soft);
  color: var(--green-deep);
  font-size: .63rem;
}
.project-card-head > b.risk { background: var(--red-soft); }
.project-metrics {
  display: grid;
  grid-template-columns: repeat(6,1fr);
  gap: 6px;
  margin: 16px 0 11px;
}
.project-metrics > div {
  padding: 10px;
  border-radius: 9px;
  background: var(--surface-2);
}
.project-metrics span, .project-metrics strong { display: block; }
.project-metrics span { color: var(--ink-soft); font-size: .55rem; }
.project-metrics strong { margin-top: 3px; font-size: .72rem; }
.contract-note {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 4px 10px;
  padding: 11px 13px;
  border-left: 3px solid var(--amber);
  border-radius: 8px;
  background: var(--amber-soft);
  font-size: .65rem;
}
.contract-note span { color: #735d3a; }
.contract-note small { grid-column: 1 / -1; color: #806947; font-size: .56rem; }
.contract-note.compact { margin: 11px 0; grid-template-columns: 1fr; }
.contract-note.compact small { grid-column: auto; }
.stage-timeline { display: grid; gap: 5px; margin: 16px 0; }
.stage-timeline > div {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  opacity: .55;
}
.stage-timeline > div.active, .stage-timeline > div.done { opacity: 1; }
.stage-timeline > div > span {
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--surface-2);
  font-size: .61rem;
  font-weight: 900;
}
.stage-timeline > div.active > span { background: var(--green-deep); color: white; }
.stage-timeline > div.done > span { background: var(--green-soft); color: var(--green-deep); }
.stage-timeline p { position: relative; margin: 0; }
.stage-timeline strong, .stage-timeline small { display: block; }
.stage-timeline strong { font-size: .7rem; }
.stage-timeline small { margin: 2px 0 5px; color: var(--ink-soft); font-size: .55rem; }
.stage-timeline em { position: absolute; right: 0; top: 0; color: var(--ink-soft); font-size: .52rem; font-style: normal; }
.project-team {
  display: flex;
  gap: 10px;
  padding: 9px 11px;
  border-radius: 8px;
  background: var(--blue-soft);
  font-size: .62rem;
}
.project-team span { color: var(--blue); font-weight: 900; }
.strategy-row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 12px; }
.strategy-row > span { margin-right: 3px; color: var(--ink-soft); font-size: .58rem; font-weight: 900; }
.strategy-row button {
  padding: 7px 9px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  font-size: .59rem;
  font-weight: 800;
  cursor: pointer;
}
.strategy-row button.active { border-color: var(--green); background: var(--green-soft); color: var(--green-deep); }
.offer-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 11px; }
.offer-card-v4 { padding: 18px; }
.offer-top, .blueprint-card-v4 > div:first-child, .department-card-v4 > div:first-child,
.research-node-v4 > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.offer-top span { color: var(--green-deep); font-size: .58rem; font-weight: 900; }
.offer-top b { color: var(--amber); font-size: 1rem; }
.offer-card-v4 h3 { margin: 8px 0 2px; }
.client-line { margin: 0 0 9px !important; color: var(--ink-soft) !important; font-size: .65rem !important; }
.offer-card-v4 > p { color: var(--ink-soft); font-size: .65rem; line-height: 1.55; }
.offer-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.offer-tags span {
  padding: 4px 7px;
  border-radius: 999px;
  background: var(--surface-3);
  font-size: .54rem;
  font-weight: 800;
}
.negotiation-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 5px; margin-top: 12px; }
.negotiation-grid button {
  display: grid;
  gap: 3px;
  padding: 9px 7px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: white;
  text-align: left;
  cursor: pointer;
}
.negotiation-grid button:hover { border-color: var(--green); background: var(--green-soft); }
.negotiation-grid strong { font-size: .61rem; }
.negotiation-grid small { color: var(--ink-soft); font-size: .5rem; line-height: 1.4; }
.receivable-table { display: grid; gap: 3px; }
.receivable-table > div {
  display: grid;
  grid-template-columns: 1.5fr .65fr .7fr .8fr;
  align-items: center;
  gap: 8px;
  padding: 9px 11px;
  border-radius: 8px;
  background: var(--surface-2);
  font-size: .63rem;
}
.receivable-table .table-head { background: transparent; color: var(--ink-soft); font-size: .54rem; font-weight: 900; }
.receivable-table strong, .receivable-table small { display: block; }
.receivable-table small { margin-top: 2px; color: var(--ink-soft); font-size: .51rem; }
.receivable-table .late { color: var(--red); font-weight: 900; }
.client-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; }
.client-grid > div { padding: 11px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2); }
.client-grid span, .client-grid strong, .client-grid small { display: block; }
.client-grid span { color: var(--green-deep); font-size: .52rem; font-weight: 900; }
.client-grid strong { margin-top: 4px; font-size: .72rem; }
.client-grid p, .client-grid small { color: var(--ink-soft); font-size: .55rem; line-height: 1.45; }

.employee-grid-v4 { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
.employee-card-v4 { overflow: hidden; padding: 17px; }
.employee-head { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; }
.employee-avatar {
  display: grid;
  place-items: center;
  width: 43px;
  height: 43px;
  border-radius: 14px;
  background: linear-gradient(145deg,var(--green-deep),#568e75);
  color: white;
  font-weight: 900;
}
.employee-head span, .employee-head small { color: var(--ink-soft); font-size: .55rem; }
.employee-head h3 { margin: 2px 0; font-size: .94rem; }
.employee-head > b { color: var(--green-deep); font-size: .72rem; }
.employee-stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 5px; margin: 13px 0 10px; }
.employee-stats span { padding: 7px; border-radius: 7px; background: var(--surface-2); color: var(--ink-soft); font-size: .56rem; text-align: center; }
.employee-stats b { color: var(--ink); }
.condition-bars { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; }
.condition-bars label { color: var(--ink-soft); font-size: .52rem; }
.condition-bars .v4-progress { margin-top: 4px; height: 4px; }
.employee-meta { display: flex; gap: 6px; margin: 11px 0 8px; }
.employee-meta span { padding: 5px 7px; border-radius: 7px; background: var(--blue-soft); color: var(--blue); font-size: .53rem; font-weight: 900; }
.select-label { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 9px; color: var(--ink-soft); font-size: .6rem; font-weight: 900; }
.select-label select, .equipment-selects select, .settings-panel select {
  width: 100%;
  min-width: 0;
  padding: 8px 9px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  color: var(--ink);
  font-size: .6rem;
}
.employee-actions { display: flex; gap: 6px; margin-top: 9px; }
.employee-actions .button { min-height: 34px; padding: 7px 10px; font-size: .58rem; }
.employee-details { margin: 13px -17px -17px; padding: 0 17px 15px; border-top: 1px solid var(--line); background: var(--surface-2); }
.employee-details summary { padding: 11px 0; color: var(--green-deep); font-size: .59rem; font-weight: 900; cursor: pointer; }
.career-box { padding: 10px; border-radius: 9px; background: white; }
.career-box span, .career-box strong, .career-box small { display: block; }
.career-box span { color: var(--ink-soft); font-size: .5rem; }
.career-box strong { margin: 3px 0; font-size: .66rem; }
.career-box small { color: var(--ink-soft); font-size: .52rem; }
.skill-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 5px; margin-top: 8px; }
.skill-grid button {
  position: relative;
  display: grid;
  gap: 3px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  text-align: left;
}
.skill-grid button.learned { border-color: #9fc6b2; background: var(--green-soft); }
.skill-grid strong { font-size: .57rem; }
.skill-grid small { color: var(--ink-soft); font-size: .48rem; line-height: 1.35; }
.skill-grid span { color: var(--green-deep); font-size: .49rem; font-weight: 900; }
.equipment-selects { display: grid; grid-template-columns: repeat(2,1fr); gap: 6px; margin-top: 8px; }
.equipment-selects label { color: var(--ink-soft); font-size: .5rem; font-weight: 800; }
.equipment-selects select { margin-top: 3px; }
.candidate-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 9px; }
.candidate-card-v4 { padding: 14px; }
.candidate-card-v4 > span { color: var(--green-deep); font-size: .54rem; font-weight: 900; }
.candidate-card-v4 h3 { margin: 5px 0; }
.candidate-stats { display: flex; gap: 4px; }
.candidate-stats b { padding: 5px; border-radius: 6px; background: var(--surface-2); font-size: .53rem; }
.candidate-card-v4 p, .candidate-card-v4 small { display: block; color: var(--ink-soft); font-size: .55rem; line-height: 1.5; }
.candidate-card-v4 .button { margin-top: 10px; }
.inventory-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; }
.inventory-grid article { padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2); }
.inventory-grid article > div { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.inventory-grid span, .inventory-grid small { color: var(--ink-soft); font-size: .51rem; }
.inventory-grid strong { font-size: .63rem; }
.inventory-grid article > b { display: block; margin-top: 7px; color: var(--green-deep); font-size: .6rem; }
.inventory-grid p { min-height: 33px; color: var(--ink-soft); font-size: .53rem; line-height: 1.45; }

.material-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 7px; }
.material-grid.compact { grid-template-columns: repeat(6,1fr); }
.material-grid > div { padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2); }
.material-grid span, .material-grid strong, .material-grid small { display: block; }
.material-grid span { color: var(--ink-soft); font-size: .55rem; }
.material-grid strong { margin: 4px 0; color: var(--green-deep); font-size: 1rem; }
.material-grid small { color: var(--ink-soft); font-size: .5rem; line-height: 1.4; }
.research-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; }
.research-node-v4 { min-height: 205px; padding: 14px; }
.research-node-v4.done { border-color: #8dbca4; background: var(--green-soft); }
.research-node-v4.active { border-color: var(--blue); background: var(--blue-soft); }
.research-node-v4.locked { opacity: .55; }
.research-node-v4 span { color: var(--green-deep); font-size: .5rem; font-weight: 900; }
.research-node-v4 strong { font-size: .7rem; }
.research-node-v4 b { color: var(--amber); font-size: .53rem; }
.research-node-v4 p { min-height: 50px; color: var(--ink-soft); font-size: .57rem; line-height: 1.5; }
.research-node-v4 small { display: block; margin: 6px 0 10px; color: var(--ink-soft); font-size: .5rem; }
.department-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 9px; }
.department-card-v4, .room-card-v4 { padding: 15px; }
.department-card-v4.active, .room-card-v4.active { border-color: #a8c7b6; background: linear-gradient(145deg,#fbfdfb,var(--green-soft)); }
.department-card-v4 span, .room-card-v4 > span { color: var(--green-deep); font-size: .52rem; font-weight: 900; }
.department-card-v4 h3, .room-card-v4 h3 { margin: 5px 0; font-size: .83rem; }
.department-card-v4 > div b, .room-card-v4 > b { color: var(--amber); font-size: .62rem; }
.department-card-v4 p, .room-card-v4 p { min-height: 45px; color: var(--ink-soft); font-size: .57rem; line-height: 1.5; }
.department-card-v4 small, .room-card-v4 small { display: block; min-height: 28px; color: var(--ink-soft); font-size: .51rem; line-height: 1.4; }
.department-card-v4 ul { min-height: 70px; margin: 8px 0; padding-left: 17px; color: var(--ink-soft); font-size: .52rem; line-height: 1.6; }
.room-grid-v4 { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; }
.blueprint-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; }
.blueprint-card-v4 { padding: 15px; }
.blueprint-card-v4 span { color: var(--green-deep); font-size: .5rem; font-weight: 900; }
.blueprint-card-v4 h3 { margin: 4px 0; font-size: .78rem; }
.blueprint-card-v4 > div b { color: var(--amber); font-size: .53rem; }
.numeric-bonus { display: block; margin-top: 10px; color: var(--green-deep); font-size: .67rem; }
.blueprint-card-v4 p { min-height: 43px; color: var(--ink-soft); font-size: .56rem; line-height: 1.5; }
.blueprint-card-v4 > small { display: block; min-height: 28px; color: var(--ink-soft); font-size: .5rem; }
.blueprint-actions { display: grid; grid-template-columns: 1fr auto; gap: 5px; margin-top: 9px; }
.blueprint-actions .button { min-height: 34px; padding: 7px 8px; font-size: .51rem; }
.settings-panel { display: grid; grid-template-columns: 1fr 220px auto; align-items: end; gap: 16px; }
.settings-panel h3 { margin: 4px 0; }
.settings-panel p { margin: 0; color: var(--ink-soft); font-size: .62rem; }
.settings-panel label { color: var(--ink-soft); font-size: .56rem; }
.settings-panel label select { margin-top: 4px; }
.settings-panel > div:last-child { display: flex; gap: 5px; }

.party-grid-v4 { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; }
.party-grid-v4 button {
  display: grid;
  gap: 4px;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface-2);
  text-align: left;
}
.party-grid-v4 button.selected { border-color: var(--green); background: var(--green-soft); }
.party-grid-v4 span { color: var(--green-deep); font-size: .55rem; font-weight: 900; }
.party-grid-v4 strong { font-size: .61rem; }
.party-grid-v4 small { color: var(--ink-soft); font-size: .5rem; }
.region-grid-v4 { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; }
.region-card-v4 { padding: 17px; }
.region-card-v4 > span { color: var(--green-deep); font-size: .54rem; font-weight: 900; }
.region-card-v4 h3 { margin: 7px 0 2px; }
.region-card-v4 > b { color: var(--amber); font-size: .61rem; }
.region-card-v4 > p { min-height: 53px; color: var(--ink-soft); font-size: .59rem; line-height: 1.55; }
.region-card-v4 > small { display: block; color: var(--ink-soft); font-size: .52rem; line-height: 1.45; }
.boss-line { display: flex; align-items: center; gap: 6px; margin: 11px 0; padding: 8px; border-radius: 8px; background: var(--red-soft); }
.boss-line span { color: var(--red); font-size: .5rem; font-weight: 900; }
.boss-line strong { font-size: .58rem; }
.investigation-run-v4 {
  margin-bottom: 18px;
  padding: 23px;
  border: 1px solid #a9bbb1;
  border-radius: 22px;
  background:
    linear-gradient(rgba(246,249,245,.96),rgba(236,242,236,.96)),
    repeating-linear-gradient(90deg,transparent 0 25px,rgba(43,75,64,.06) 25px 26px);
  box-shadow: var(--shadow);
}
.run-head { display: flex; justify-content: space-between; gap: 15px; }
.run-head .kicker { color: var(--green-deep); font-size: .57rem; }
.run-head h2 { margin: 5px 0; }
.run-head p { margin: 0; color: var(--ink-soft); font-size: .63rem; }
.run-resources { display: grid; grid-template-columns: 1fr 1fr .8fr; gap: 8px; margin: 16px 0; }
.run-resources > div { padding: 11px; border: 1px solid var(--line); border-radius: 10px; background: white; }
.run-resources span, .run-resources strong { display: block; }
.run-resources span { color: var(--ink-soft); font-size: .53rem; }
.run-resources strong { margin: 3px 0 6px; font-size: .74rem; }
.run-resources button { border: 0; background: transparent; color: var(--green-deep); font-size: .52rem; font-weight: 900; cursor: pointer; }
.route-history { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; margin-bottom: 15px; }
.route-history > span, .route-history > b { font-size: .55rem; }
.route-history > div { display: flex; gap: 5px; align-items: center; }
.route-history i {
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  border-radius: 8px;
  background: var(--green-soft);
  color: var(--green-deep);
  font-style: normal;
  font-size: .6rem;
  font-weight: 900;
}
.route-history i.failure { background: var(--red-soft); color: var(--red); }
.route-options { margin-top: 12px; }
.route-options > .section-title { margin-bottom: 8px; }
.route-options > button {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 5px 10px;
  width: 100%;
  margin-bottom: 6px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: white;
  text-align: left;
  cursor: pointer;
}
.route-options > button:hover { border-color: var(--green); background: var(--green-soft); }
.route-options i {
  grid-row: 1 / 4;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--nav);
  color: white;
  font-style: normal;
  font-weight: 900;
}
.route-options span { font-size: .65rem; font-weight: 900; }
.route-options strong { color: var(--green-deep); font-size: .57rem; }
.route-options p { margin: 0; color: var(--ink-soft); font-size: .54rem; }
.route-options small { color: var(--amber); font-size: .5rem; }
.boss-card-v4 { padding: 22px; border: 1px solid #dfaaa3; border-radius: 15px; background: var(--red-soft); text-align: center; }
.boss-card-v4 > span { color: var(--red); font-size: .55rem; font-weight: 900; }
.boss-card-v4 h3 { margin: 5px 0; }
.boss-card-v4 p { color: #73504b; font-size: .6rem; line-height: 1.5; }
.run-log { max-height: 210px; overflow: auto; margin-top: 14px; padding: 12px; border-radius: 10px; background: var(--nav); color: #dce7e1; }
.run-log .kicker { color: #80c39f; font-size: .52rem; }
.run-log p { margin: 7px 0 0; padding-top: 7px; border-top: 1px solid rgba(255,255,255,.08); font-size: .55rem; line-height: 1.45; }

/* Investigation encounters and three-stage Boss encounters */
.route-encounter-v51, .boss-card-v51, .investigation-report-v51 {
  margin-top: 14px;
  padding: 18px 0;
  border-top: 1px solid #b8c8be;
  border-bottom: 1px solid #b8c8be;
}
.encounter-heading-v51 { display: flex; align-items: center; gap: 11px; }
.encounter-heading-v51 > i {
  display: grid;
  flex: 0 0 42px;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 8px;
  background: var(--nav);
  color: #fff;
  font-style: normal;
  font-weight: 1000;
}
.encounter-heading-v51 span, .boss-intro-v51 > span { color: var(--amber); font-size: 10px; font-weight: 1000; }
.encounter-heading-v51 h3, .boss-intro-v51 h3 { margin: 3px 0 0; font-size: 19px; }
.encounter-story-v51 { margin-top: 14px; }
.encounter-story-v51 > p { margin: 7px 0; color: #40504c; font-size: 13px; line-height: 1.75; }
.encounter-story-v51 aside {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 5px 12px;
  margin-top: 12px;
  padding: 12px;
  border-left: 4px solid var(--amber);
  background: #fff6df;
}
.encounter-story-v51 aside span { color: #9a692c; font-size: 10px; font-weight: 1000; }
.encounter-story-v51 aside strong { font-size: 12px; line-height: 1.6; }
.encounter-actions-v51 { margin-top: 18px; }
.encounter-actions-v51 > .section-title { margin-bottom: 8px; }
.encounter-actions-v51 > button, .boss-actions-v51 > button {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-content: start;
  gap: 5px 12px;
  width: 100%;
  min-height: 92px;
  margin: 7px 0;
  padding: 12px 13px;
  border: 1px solid #b9c8bf;
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}
.encounter-actions-v51 > button:hover, .boss-actions-v51 > button:hover { border-color: var(--green); background: var(--green-soft); }
.encounter-actions-v51 > button:disabled, .boss-actions-v51 > button:disabled { opacity: .45; cursor: not-allowed; }
.encounter-actions-v51 button strong, .encounter-actions-v51 button span,
.boss-actions-v51 button strong, .boss-actions-v51 button span { display: block; }
.encounter-actions-v51 button strong, .boss-actions-v51 button strong { font-size: 13px; }
.encounter-actions-v51 button span, .boss-actions-v51 button span { margin-top: 3px; color: var(--ink-soft); font-size: 10px; }
.encounter-actions-v51 button > b, .boss-actions-v51 button > b { color: var(--green-deep); font-size: 12px; white-space: nowrap; }
.encounter-actions-v51 button > p, .boss-actions-v51 button > p { grid-column: 1 / -1; margin: 2px 0 0; color: var(--ink-soft); font-size: 11px; line-height: 1.55; }
.boss-actions-v51 button > small { grid-column: 1 / -1; color: var(--red); font-size: 10px; }
.route-back-v51 { display: block; margin: 10px auto 0; }

.investigation-report-v51 { padding-right: 16px; padding-left: 16px; }
.investigation-report-v51.success { border-color: #8fb39f; background: rgba(222,240,228,.5); }
.investigation-report-v51.failure { border-color: #d5a59e; background: rgba(251,230,226,.55); }
.report-status-v51 { color: var(--green-deep); font-size: 10px; font-weight: 1000; }
.investigation-report-v51.failure .report-status-v51 { color: var(--red); }
.investigation-report-v51 h3 { margin: 5px 0 11px; font-size: 19px; }
.report-copy-v51 p { margin: 7px 0; color: #40504c; font-size: 13px; line-height: 1.72; }
.report-outcome-v51 {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 6px 12px;
  margin: 13px 0;
  padding: 11px 12px;
  background: rgba(255,255,255,.8);
}
.report-outcome-v51 span { color: var(--ink-soft); font-size: 10px; font-weight: 900; }
.report-outcome-v51 strong { color: var(--green-deep); font-size: 11px; line-height: 1.5; }
.forced-retreat-v51 { color: var(--red); font-size: 11px; font-weight: 900; }

.boss-progress-v51 { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 10px; }
.boss-progress-v51 > span { color: var(--red); font-size: 10px; font-weight: 1000; }
.boss-progress-v51 > div { display: flex; gap: 6px; }
.boss-progress-v51 i {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border: 1px solid #c6b9b2;
  border-radius: 50%;
  background: #fff;
  color: var(--ink-soft);
  font-size: 10px;
  font-style: normal;
  font-weight: 1000;
}
.boss-progress-v51 i.active { border-color: var(--red); background: var(--red-soft); color: var(--red); }
.boss-progress-v51 i.done { border-color: var(--green); background: var(--green); color: #fff; }
.boss-progress-v51 > strong { font-size: 11px; }
.boss-intro-v51 { margin-top: 15px; }
.boss-intro-v51 > p { max-width: 780px; margin: 8px 0 0; color: #5d4844; font-size: 13px; line-height: 1.7; }
.boss-mechanism-v51 { margin: 14px 0; padding: 14px; border-left: 4px solid var(--red); background: #fff4f1; }
.boss-mechanism-v51 > div span, .boss-mechanism-v51 > div strong { display: block; }
.boss-mechanism-v51 > div span { color: var(--red); font-size: 10px; font-weight: 1000; }
.boss-mechanism-v51 > div strong { margin-top: 3px; font-size: 13px; line-height: 1.55; }
.boss-mechanism-v51 > p { margin: 9px 0; color: #654f4b; font-size: 12px; line-height: 1.65; }
.boss-mechanism-v51 > aside { color: #823e35; font-size: 11px; font-weight: 900; }
.boss-actions-v51 > h4 { margin: 3px 0 8px; font-size: 15px; }
.boss-card-v51 > footer { margin-top: 12px; color: var(--ink-soft); font-size: 10px; text-align: center; }

.story-chain-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 9px; }
.story-chain-v4 { padding: 17px; }
.story-chain-v4.done { border-color: #91bda7; background: linear-gradient(145deg,#fbfdfb,var(--green-soft)); }
.story-chain-v4.locked { opacity: .5; filter: grayscale(.5); }
.story-chain-v4 > div:first-child { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 3px 10px; }
.story-chain-v4 span { color: var(--green-deep); font-size: .53rem; font-weight: 900; }
.story-chain-v4 h3 { grid-column: 1; margin: 2px 0; font-size: .84rem; }
.story-chain-v4 > div:first-child b { grid-column: 2; grid-row: 1 / 3; color: var(--amber); font-size: .6rem; }
.story-chain-v4 > p { min-height: 40px; color: var(--ink-soft); font-size: .58rem; line-height: 1.5; }
.story-chain-v4 > small { display: block; margin-top: 8px; color: var(--ink-soft); font-size: .51rem; }
.resolution { margin-top: 10px; padding: 10px; border-left: 3px solid var(--green); border-radius: 8px; background: white; }
.resolution strong { color: var(--green-deep); font-size: .55rem; }
.resolution p { margin: 4px 0 0; color: var(--ink-soft); font-size: .54rem; line-height: 1.5; }
.evidence-board-v4 {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 12px;
  padding: 20px;
  border-radius: 14px;
  background: #d7c7a7;
  background-image: radial-gradient(#8c7956 1px,transparent 1px);
  background-size: 18px 18px;
}
.evidence-board-v4 article {
  min-height: 135px;
  padding: 13px;
  background: #fffbed;
  box-shadow: 0 8px 17px rgba(69,52,29,.15);
  transform: rotate(var(--tilt));
}
.evidence-board-v4 span, .evidence-board-v4 strong { display: block; }
.evidence-board-v4 span { color: #8a7653; font-size: .47rem; }
.evidence-board-v4 strong { margin: 7px 0; font-size: .66rem; }
.evidence-board-v4 p { color: #675a43; font-size: .52rem; line-height: 1.5; }
.ending-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.ending-grid button { padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); text-align: left; cursor: pointer; }
.ending-grid button.selected { border-color: var(--green); background: var(--green-soft); }
.ending-grid span { color: var(--amber); font-size: .5rem; font-weight: 900; }
.ending-grid strong { display: block; margin: 5px 0; }
.ending-grid p { color: var(--ink-soft); font-size: .55rem; line-height: 1.5; }
.journal-v4 { max-height: 520px; overflow: auto; }
.journal-v4 > div { display: grid; grid-template-columns: 70px 1fr; gap: 12px; padding: 9px 3px; border-bottom: 1px solid var(--line); }
.journal-v4 span { color: var(--green-deep); font-size: .52rem; font-weight: 900; }
.journal-v4 p { margin: 0; color: var(--ink-soft); font-size: .6rem; line-height: 1.5; }
.journal-v4 .danger p, .journal-v4 .warning p { color: #8a4e47; }
.journal-v4 .story p { color: var(--purple); }
.stats-v4 > div:last-child { display: grid; grid-template-columns: repeat(6,1fr); gap: 7px; }
.stats-v4 > div:last-child span { padding: 10px; border-radius: 9px; background: var(--surface-2); color: var(--ink-soft); font-size: .52rem; }
.stats-v4 > div:last-child strong { display: block; margin-top: 4px; color: var(--ink); font-size: .78rem; }

.toast-v4 {
  padding: 11px 15px;
  border: 1px solid #668f7b;
  border-radius: 10px;
  background: rgba(30,44,41,.96);
  color: #f0f5f2;
  box-shadow: var(--shadow);
  opacity: 0;
  transform: translateY(8px);
  transition: .2s ease;
  font-size: .68rem;
}
.toast-v4.show { opacity: 1; transform: none; }
.warning-list { display: grid; gap: 5px; margin: 15px 0; }
.warning-list p { margin: 0; padding: 9px; border-radius: 8px; background: var(--red-soft); color: #7e4a43; font-size: .61rem; }
.success-note { margin: 15px 0; padding: 10px; border-radius: 8px; background: var(--green-soft); color: var(--green-deep); font-size: .62rem; }
.incident-choices { display: grid; gap: 7px; margin-top: 15px; }
.incident-choices button { display: grid; gap: 4px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2); text-align: left; cursor: pointer; }
.incident-choices button:hover { border-color: var(--green); background: var(--green-soft); }
.incident-choices strong { font-size: .69rem; }
.incident-choices small { color: var(--ink-soft); font-size: .53rem; }

@media (max-width: 1180px) {
  .resource-bar-v2 { grid-template-columns: repeat(4,1fr); }
  .management-grid { grid-template-columns: repeat(3,1fr); }
  .forecast-grid { grid-template-columns: repeat(3,1fr); }
  .project-metrics { grid-template-columns: repeat(3,1fr); }
  .department-grid, .candidate-grid { grid-template-columns: repeat(2,1fr); }
  .research-grid, .blueprint-grid, .region-grid-v4 { grid-template-columns: repeat(2,1fr); }
  .room-strip { grid-template-columns: repeat(3,1fr); }
  .evidence-board-v4 { grid-template-columns: repeat(3,1fr); }
  .stats-v4 > div:last-child { grid-template-columns: repeat(4,1fr); }
}

@media (max-width: 860px) {
  .office-hero-v4, .settings-panel { grid-template-columns: 1fr; }
  .management-grid, .assignment-summary, .client-grid, .inventory-grid { grid-template-columns: repeat(2,1fr); }
  .employee-grid-v4, .offer-grid, .story-chain-grid { grid-template-columns: 1fr; }
  .material-grid.compact { grid-template-columns: repeat(3,1fr); }
  .room-grid-v4 { grid-template-columns: repeat(2,1fr); }
  .party-grid-v4 { grid-template-columns: 1fr; }
  .evidence-board-v4, .ending-grid { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 580px) {
  .v4-panel { padding: 15px; border-radius: 14px; }
  .page-heading-v4 { display: block; padding: 20px 17px; border-radius: 16px; }
  .page-heading-v4 > div:last-child { display: inline-block; min-width: 115px; margin-top: 15px; text-align: left; }
  .resource-bar-v2 { grid-template-columns: repeat(3,1fr); }
  .resource-chip-v4, .resource-detail-button { min-height: 45px; padding: 7px 8px; }
  .resource-chip-v4:nth-child(2), .resource-chip-v4:nth-child(6) { display: none; }
  .office-hero-v4 { padding: 20px 17px; border-radius: 17px; }
  .management-grid { grid-template-columns: repeat(2,1fr); }
  .management-card { min-height: 150px; padding: 12px; }
  .forecast-grid, .project-metrics { grid-template-columns: repeat(2,1fr); }
  .room-strip, .assignment-summary, .research-grid, .department-grid, .room-grid-v4, .blueprint-grid,
  .candidate-grid, .region-grid-v4, .inventory-grid { grid-template-columns: 1fr; }
  .offer-grid, .employee-grid-v4 { grid-template-columns: 1fr; }
  .negotiation-grid { grid-template-columns: 1fr; }
  .project-card-v4 { padding: 15px; }
  .project-card-head { display: block; }
  .project-card-head > b { display: inline-block; margin-top: 8px; }
  .contract-note { grid-template-columns: 1fr; }
  .contract-note small { grid-column: auto; }
  .project-team { display: grid; }
  .receivable-table > div { grid-template-columns: 1.35fr .65fr; }
  .receivable-table > div span:nth-child(3), .receivable-table > div span:nth-child(4) { font-size: .52rem; }
  .client-grid, .material-grid { grid-template-columns: repeat(2,1fr); }
  .condition-bars { grid-template-columns: 1fr; }
  .skill-grid, .equipment-selects { grid-template-columns: 1fr; }
  .material-grid.compact { grid-template-columns: repeat(2,1fr); }
  .settings-panel > div:last-child { display: grid; }
  .run-resources { grid-template-columns: 1fr; }
  .route-options > button { grid-template-columns: auto 1fr; }
  .route-options strong { grid-column: 2; }
  .route-options p, .route-options small { grid-column: 1 / -1; }
  .evidence-board-v4, .ending-grid { grid-template-columns: 1fr; }
  .stats-v4 > div:last-child { grid-template-columns: repeat(2,1fr); }
}

/* ===== V4 layout repair: page hierarchy, readable type and bounded pages ===== */
.page-tabs-v4 {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  margin: -4px 0 20px;
  padding: 7px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: rgba(248,250,246,.92);
  box-shadow: var(--shadow-small);
  scrollbar-width: none;
  width: 100%;
  min-width: 0;
  max-width: 100%;
}
.page-tabs-v4::-webkit-scrollbar,
.filter-tabs-v4::-webkit-scrollbar,
.management-grid::-webkit-scrollbar,
.room-strip::-webkit-scrollbar { display: none; }
.page-tabs-v4 button {
  flex: 1 0 150px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 46px;
  padding: 10px 14px;
  border: 1px solid transparent;
  border-radius: 11px;
  background: transparent;
  color: var(--ink-soft);
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
  white-space: nowrap;
}
.page-tabs-v4 button:hover { background: var(--surface-2); color: var(--ink); }
.page-tabs-v4 button.active {
  border-color: #9db9aa;
  background: var(--nav);
  color: #f3f7f4;
  box-shadow: 0 7px 18px rgba(31,54,46,.16);
}
.page-tabs-v4 b {
  min-width: 24px;
  padding: 3px 6px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  font-size: 11px;
}
.filter-tabs-v4 {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 0 0 15px;
  min-width: 0;
  max-width: 100%;
}
.filter-tabs-v4 button {
  min-height: 40px;
  padding: 8px 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--ink-soft);
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}
.filter-tabs-v4 button.active {
  border-color: var(--green);
  background: var(--green-soft);
  color: var(--green-deep);
}
.focused-grid { max-width: 1120px; }
.compact-panel { padding-top: 17px; padding-bottom: 17px; }

.resource-chip-v4 span { font-size: 11px; }
.resource-chip-v4 strong { font-size: 15px; }
.resource-detail-button { font-size: 11px; }
.fineprint, .section-intro { font-size: 12px; }
.management-card > span,
.project-card-head .kicker,
.offer-top span,
.region-card-v4 > span,
.story-chain-v4 span { font-size: 10px; }
.management-card > strong { font-size: 14px; }
.management-card p,
.offer-card-v4 > p,
.department-card-v4 p,
.room-card-v4 p,
.research-node-v4 p,
.blueprint-card-v4 p,
.region-card-v4 > p,
.story-chain-v4 > p { font-size: 12px; line-height: 1.6; }
.management-card > b,
.numeric-bonus,
.project-card-head p,
.contract-note,
.project-team,
.strategy-row button,
.employee-head h3,
.candidate-card-v4 p,
.candidate-card-v4 small { font-size: 12px; }
.view small { font-size: 11px; line-height: 1.5; }
.blueprint-actions .button { min-height: 42px; font-size: 11px; }
.skill-grid strong { font-size: 11px; }
.skill-grid small { font-size: 10px; }
.equipment-selects label,
.select-label,
.settings-panel label { font-size: 11px; }
.equipment-selects select,
.select-label select,
.settings-panel select { min-height: 42px; font-size: 12px; }
.contract-note small { font-size: 11px; }
.project-metrics span { font-size: 10px; }
.project-metrics strong { font-size: 13px; }
.stage-timeline strong { font-size: 12px; }
.stage-timeline small { font-size: 10px; }
.receivable-table > div { font-size: 12px; }
.client-grid span { font-size: 10px; }
.client-grid strong { font-size: 13px; }
.client-grid p, .client-grid small { font-size: 11px; }

@media (min-width: 1500px) {
  .game-shell-v2 { grid-template-columns: 270px minmax(0,1fr); }
  .sidebar-v2 { width: 270px; }
  .content-v2 { max-width: 1560px; }
  .workspace-v2 { padding-left: 38px; padding-right: 38px; }
  .offer-grid, .employee-grid-v4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 860px) {
  .page-tabs-v4 { margin-bottom: 15px; padding: 6px; }
  .page-tabs-v4 button { flex-basis: 132px; min-height: 44px; font-size: 12px; }
  .filter-tabs-v4 {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 3px;
  }
  .filter-tabs-v4 button { flex: 0 0 auto; }
}

@media (max-width: 580px) {
  .workspace-v2,
  .content-v2,
  .view,
  .v4-section,
  .v4-panel,
  .page-heading-v4,
  .page-tabs-v4,
  .filter-tabs-v4,
  .management-grid,
  .room-strip {
    min-width: 0;
    max-width: 100%;
  }
  .workspace-v2,
  .content-v2,
  .view { width: 100%; }
  .page-heading-v4 { margin-bottom: 12px; }
  .page-heading-v4 h1 { font-size: 24px; line-height: 1.18; }
  .page-heading-v4 p { font-size: 13px; line-height: 1.65; }
  .page-tabs-v4 {
    width: 100%;
    margin: 0 0 14px;
    border-radius: 13px;
  }
  .page-tabs-v4 button { flex: 0 0 126px; padding: 9px 11px; font-size: 12px; }
  .v4-section > .section-title { align-items: flex-start; flex-direction: column; gap: 10px; }
  .v4-section > .section-title > .button { width: 100%; }
  .section-title h2 { font-size: 21px; }
  .panel-heading h3 { font-size: 18px; }
  .management-grid {
    display: flex;
    overflow-x: auto;
    gap: 9px;
    padding-bottom: 5px;
    scroll-snap-type: x proximity;
  }
  .management-card {
    flex: 0 0 82%;
    min-height: 172px;
    scroll-snap-align: start;
  }
  .room-strip {
    display: flex;
    overflow-x: auto;
    gap: 8px;
    padding-bottom: 4px;
  }
  .room-strip > div { flex: 0 0 72%; min-height: 112px; }
  .forecast-grid { gap: 7px; }
  .forecast-grid span { font-size: 10px; }
  .forecast-grid strong { font-size: 13px; }
  .project-card-v4,
  .offer-card-v4,
  .employee-card-v4,
  .candidate-card-v4,
  .department-card-v4,
  .room-card-v4,
  .research-node-v4,
  .blueprint-card-v4,
  .region-card-v4,
  .story-chain-v4 { border-radius: 14px; }
  .project-metrics { grid-template-columns: repeat(2,1fr); }
  .strategy-row button { min-height: 42px; font-size: 12px; }
  .negotiation-grid button { min-height: 58px; }
  .employee-actions .button,
  .candidate-card-v4 .button,
  .research-node-v4 .button,
  .department-card-v4 .button,
  .room-card-v4 .button,
  .region-card-v4 .button { min-height: 44px; font-size: 12px; }
  .material-grid > div { min-height: 82px; }
  .blueprint-actions { grid-template-columns: 1fr 82px; }
  .blueprint-actions .button { font-size: 11px; }
  .journal-v4 > div { grid-template-columns: 54px 1fr; }
  .journal-v4 p { font-size: 12px; }
}

/* ===== V4.2 interaction and layout redesign ===== */
body:not(.game-started) .game-shell-v2 { display: none; }
.game-started .start-screen-v42 { display: none; }
.start-screen-v42 {
  position: relative;
  z-index: 2;
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: 28px;
  background:
    radial-gradient(circle at 16% 18%, rgba(232,145,49,.17), transparent 24rem),
    radial-gradient(circle at 84% 80%, rgba(63,143,112,.16), transparent 27rem),
    linear-gradient(145deg, rgba(239,243,235,.96), rgba(222,230,220,.96));
}
.start-card-v42 {
  width: min(980px,100%);
  display: grid;
  grid-template-columns: minmax(0,1.15fr) minmax(310px,.85fr);
  gap: 42px;
  padding: 54px;
  border: 1px solid rgba(44,74,61,.17);
  border-radius: 30px;
  background: rgba(249,251,247,.9);
  box-shadow: 0 32px 90px rgba(30,52,43,.16);
  backdrop-filter: blur(18px);
}
.start-brand-v42 { align-self: center; }
.start-brand-v42 img { width: 76px; height: 76px; border-radius: 22px; box-shadow: 0 14px 30px rgba(32,55,46,.16); }
.start-brand-v42 > span { display: block; margin-top: 24px; color: var(--amber); font-size: 11px; font-weight: 1000; letter-spacing: .16em; }
.start-brand-v42 h1 { margin: 7px 0 12px; font-size: clamp(50px,8vw,82px); line-height: .95; letter-spacing: -.08em; }
.start-brand-v42 p { max-width: 520px; margin: 0; color: var(--ink-soft); font-size: 16px; line-height: 1.8; }
.start-actions-v42 { display: grid; align-content: center; gap: 11px; }
.start-actions-v42 .button { min-height: 72px; display: grid; place-items: start; align-content: center; padding: 13px 18px; text-align: left; }
.start-actions-v42 strong, .start-actions-v42 small { display: block; }
.start-actions-v42 strong { font-size: 16px; }
.start-actions-v42 small { margin-top: 4px; color: inherit; opacity: .72; font-size: 11px; }
.start-actions-v42 .ghost-v42 { border: 1px solid var(--line); border-radius: 10px; background: transparent; cursor: pointer; }
.start-actions-v42 button:disabled { opacity: .46; cursor: not-allowed; }
.start-bulletin-v42 { grid-column: 1 / -1; justify-self: start; border: 0; border-bottom: 1px dashed #a8804d; padding: 6px 1px; background: transparent; color: #8b673a; font-size: 11px; cursor: pointer; }
.start-card-v42 footer { grid-column: 1 / -1; color: #87938d; font-size: 10px; }
.start-message-v42 { grid-column: 1 / -1; margin: 0; padding: 10px 13px; border-radius: 10px; background: var(--amber-soft); color: #795b31; font-size: 12px; }

.desktop-nav { gap: 4px; margin-top: 16px; }
.desktop-nav button { min-height: 54px; }
.sidebar-foot { align-items: center; }
.bulletin-link { border: 0; border-bottom: 1px dashed currentColor; padding: 3px 0; background: transparent; color: #81978d; font-size: 10px; cursor: pointer; }
.owner-mini-v42 { width: 100%; display: flex; align-items: center; gap: 8px; margin: -4px 0 12px; border: 0; border-bottom: 1px solid rgba(255,255,255,.09); padding: 0 0 10px; background: transparent; color: #eef5f0; text-align: left; cursor: pointer; }
.owner-mini-v42 > span:last-child { min-width: 0; }
.owner-mini-v42 small, .owner-mini-v42 strong { display: block; }
.owner-mini-v42 strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.owner-dot-v42 { display: grid; place-items: center; flex: 0 0 30px; height: 30px; border-radius: 10px; background: #dc8a32; color: white; font-size: 12px; font-weight: 1000; }

.context-bar { align-items: center; }
.context-bar > div:first-child { flex: 0 0 auto; }
.context-bar > p { flex: 1; }
.context-actions-v42 { display: flex !important; align-items: center !important; gap: 6px !important; }
.context-actions-v42 button { min-height: 34px; border: 1px solid var(--line); border-radius: 999px; padding: 6px 10px; background: rgba(248,250,246,.82); color: var(--green-deep); font-size: 11px; font-weight: 900; cursor: pointer; }

.office-hero-v4 { grid-template-columns: minmax(0,1.8fr) 280px; padding: 22px 24px; }
.office-hero-v4 h1 { font-size: clamp(1.55rem,2.5vw,2rem); }
.next-day-card { padding: 14px; }
.office-workbench-v42 { display: grid; grid-template-columns: minmax(0,1fr) minmax(330px,390px); gap: 14px; margin-bottom: 14px; }
.office-deploy-v42, .manager-side-v42 { min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(248,250,246,.94); box-shadow: var(--shadow-small); }
.compact-heading-v42 { align-items: center; margin-bottom: 7px; }
.compact-heading-v42 h3 { font-size: 18px; }
.manager-tip-v42 { margin: 0 0 12px; color: var(--ink-soft); font-size: 11px; line-height: 1.55; }
.deployment-rail-v42 { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; max-height: 555px; overflow-y: auto; padding-right: 3px; }
.deploy-card-v42 { min-width: 0; padding: 11px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.deploy-person-v42 { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 8px; }
.deploy-person-v42 strong, .deploy-person-v42 small { display: block; }
.deploy-person-v42 strong { font-size: 12px; }
.deploy-person-v42 small { margin-top: 2px; color: var(--ink-soft); font-size: 10px; }
.deploy-person-v42 > b { font-size: 10px; }
.deploy-meta-v42 { display: flex; flex-wrap: wrap; gap: 4px; margin: 8px 0; }
.deploy-meta-v42 span { padding: 3px 6px; border-radius: 999px; background: var(--surface-2); color: var(--ink-soft); font-size: 9px; }
.deploy-card-v42 label { display: grid; gap: 4px; color: var(--ink-soft); font-size: 10px; font-weight: 900; }
.deploy-card-v42 select { width: 100%; min-width: 0; min-height: 36px; border: 1px solid var(--line); border-radius: 8px; padding: 6px 8px; background: #fff; color: var(--ink); font-size: 11px; }
.management-rail-v42 { height: 555px; display: grid; gap: 7px; overflow-y: auto; padding-right: 3px; scroll-snap-type: y proximity; }
.management-card.compact-v42 { min-height: 125px; padding: 12px; scroll-snap-align: start; }
.management-card.compact-v42 > strong { font-size: 13px; }
.management-card.compact-v42 p { margin: 7px 0; font-size: 11px; line-height: 1.5; }
.management-card.compact-v42 > b { font-size: 11px; }
.project-team-v52 { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 10px; margin: 12px 0; padding: 10px 11px; border: 1px solid #cadbd7; border-radius: 10px; background: var(--blue-soft); }
.project-team-title-v52 span, .project-team-title-v52 strong { display: block; }
.project-team-title-v52 span { color: var(--blue); font-size: 9px; font-weight: 1000; }
.project-team-title-v52 strong { margin-top: 3px; font-size: 12px; }
.project-member-list-v52 { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.project-member-v52 { display: flex; align-items: center; gap: 7px; min-width: 170px; padding: 7px 9px; border: 1px solid rgba(76,123,135,.18); border-radius: 9px; background: rgba(255,255,255,.72); }
.project-member-v52 .avatar-dot { flex: 0 0 28px; width: 28px; height: 28px; }
.project-member-v52 > span:last-child { min-width: 0; }
.project-member-v52 b, .project-member-v52 small { display: block; }
.project-member-v52 b { font-size: 11px; }
.project-member-v52 small { margin-top: 2px; color: var(--ink-soft); font-size: 9px; white-space: nowrap; }
.project-team-empty-v52 { margin: 0; color: #87524a; font-size: 11px; font-weight: 800; }
.office-collapse-v42 { margin-bottom: 10px; border: 1px solid var(--line); border-radius: 14px; background: rgba(248,250,246,.9); box-shadow: var(--shadow-small); }
.office-collapse-v42 > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 17px; cursor: pointer; list-style: none; }
.office-collapse-v42 > summary::-webkit-details-marker { display: none; }
.office-collapse-v42 > summary span, .office-collapse-v42 > summary b, .office-collapse-v42 > summary small { display: block; }
.office-collapse-v42 > summary b { font-size: 13px; }
.office-collapse-v42 > summary small { margin-top: 3px; color: var(--ink-soft); font-size: 10px; }
.office-collapse-v42 > summary > strong { color: var(--green-deep); font-size: 12px; }
.office-collapse-v42 > .v4-panel { margin: 0; border: 0; border-top: 1px solid var(--line); border-radius: 0 0 14px 14px; box-shadow: none; }

.employee-columns-v42 { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; align-items: start; }
.employee-columns-v42 > div { display: grid; gap: 11px; min-width: 0; }
.compact-employee-v42 { min-width: 0; }
.employee-xp-v42 { margin: 8px 0 10px; }
.employee-xp-v42 > span { display: block; margin-bottom: 4px; color: var(--ink-soft); font-size: 10px; }
.employee-actions-v42 { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.employee-actions-v42 .button { width: 100%; white-space: normal; }

.modal-title-row-v42 { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.modal-close-v42 { width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 50%; background: var(--surface-2); font-size: 20px; cursor: pointer; }
.employee-modal-v42 { max-height: min(820px,calc(100vh - 36px)); overflow-y: auto; }
.career-box-v42 { margin-top: 16px; }
.employee-guide-strip-v42 { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; margin: 13px 0; }
.employee-guide-strip-v42 span { padding: 10px; border-radius: 10px; background: var(--surface-2); color: var(--ink-soft); font-size: 10px; }
.employee-guide-strip-v42 b { display: block; margin-bottom: 3px; color: var(--ink); font-size: 12px; }
.compact-skill-list-v42 { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
.compact-skill-list-v42 button { display: grid; gap: 3px; min-height: 82px; border: 1px solid var(--line); border-radius: 10px; padding: 10px; background: #fff; text-align: left; cursor: pointer; }
.compact-skill-list-v42 button.learned { border-color: #86b99f; background: var(--green-soft); }
.compact-skill-list-v42 button:disabled:not(.learned) { opacity: .5; }
.compact-skill-list-v42 span { color: var(--green-deep); font-size: 9px; font-weight: 900; }
.compact-skill-list-v42 strong { font-size: 12px; }
.compact-skill-list-v42 small { color: var(--ink-soft); font-size: 10px; line-height: 1.45; }
.equipment-modal-selects-v42 { margin: 16px 0; }
.loadout-detail-v42 { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.loadout-detail-v42 article { padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-2); }
.loadout-detail-v42 span, .loadout-detail-v42 strong, .loadout-detail-v42 b { display: block; }
.loadout-detail-v42 span { color: var(--green-deep); font-size: 9px; font-weight: 900; }
.loadout-detail-v42 strong { margin: 4px 0; font-size: 12px; }
.loadout-detail-v42 b { color: var(--amber); font-size: 10px; }
.loadout-detail-v42 p { margin: 5px 0 0; color: var(--ink-soft); font-size: 10px; line-height: 1.5; }
.training-delta-v42 { display: grid; grid-template-columns: repeat(4,1fr); gap: 7px; margin: 16px 0; }
.training-delta-v42 > div { padding: 11px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2); }
.training-delta-v42 span, .training-delta-v42 strong, .training-delta-v42 small { display: block; }
.training-delta-v42 span { color: var(--ink-soft); font-size: 9px; }
.training-delta-v42 strong { margin-top: 4px; font-size: 13px; }
.training-delta-v42 small { margin-top: 3px; color: var(--ink-soft); font-size: 9px; }
.guide-callout-v42 { padding: 12px 14px; border-left: 3px solid var(--amber); border-radius: 9px; background: var(--amber-soft); }
.guide-callout-v42 strong { font-size: 12px; }
.guide-callout-v42 p { margin: 5px 0 0; color: #70593a; font-size: 11px; line-height: 1.6; }

.owner-hero-v42 { display: grid; grid-template-columns: auto minmax(0,1fr) 240px; align-items: center; gap: 17px; margin-bottom: 15px; padding: 22px; border: 1px solid #d2a665; border-radius: 18px; background: linear-gradient(135deg,#fff9ee,#f6e5c8); box-shadow: var(--shadow-small); }
.owner-avatar-v42 { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 20px; background: linear-gradient(145deg,#e49b42,#c97528); color: #fff; font-size: 24px; font-weight: 1000; box-shadow: 0 12px 24px rgba(186,105,34,.2); }
.owner-hero-v42 h2 { margin: 3px 0 5px; }
.owner-hero-v42 p { margin: 0; color: var(--ink-soft); font-size: 11px; line-height: 1.6; }
.owner-xp-v42 { margin-top: 10px; }
.owner-xp-v42 > span { display: block; margin-bottom: 4px; color: #8b632f; font-size: 10px; font-weight: 900; }
.owner-hero-v42 aside { padding: 12px; border: 1px solid rgba(169,111,43,.22); border-radius: 12px; background: rgba(255,255,255,.55); }
.owner-hero-v42 aside span, .owner-hero-v42 aside strong, .owner-hero-v42 aside small { display: block; }
.owner-hero-v42 aside span { color: #9a713e; font-size: 9px; }
.owner-hero-v42 aside strong { margin: 4px 0; font-size: 11px; }
.owner-hero-v42 aside small { color: var(--ink-soft); font-size: 9px; }
.owner-stat-grid-v42 { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; }
.owner-stat-grid-v42 article { padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-2); }
.owner-stat-grid-v42 span { color: var(--green-deep); font-size: 10px; font-weight: 900; }
.owner-stat-grid-v42 strong { display: block; margin: 3px 0; font-size: 24px; }
.owner-stat-grid-v42 p { min-height: 48px; color: var(--ink-soft); font-size: 10px; line-height: 1.5; }
.owner-stat-grid-v42 .button { width: 100%; min-height: 36px; font-size: 10px; }
.owner-skill-grid-v42 { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.owner-skill-grid-v42 button { min-height: 125px; padding: 13px; border: 1px solid var(--line); border-radius: 12px; background: #fff; text-align: left; cursor: pointer; }
.owner-skill-grid-v42 button.learned { border-color: #c8893d; background: #fff4df; }
.owner-skill-grid-v42 button:disabled:not(.learned) { opacity: .52; }
.owner-skill-grid-v42 span, .owner-skill-grid-v42 strong { display: block; }
.owner-skill-grid-v42 span { color: #a56d2e; font-size: 9px; font-weight: 900; }
.owner-skill-grid-v42 strong { margin: 6px 0; font-size: 13px; }
.owner-skill-grid-v42 p { margin: 0; color: var(--ink-soft); font-size: 10px; line-height: 1.55; }
.owner-item-grid-v42 { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.owner-item-grid-v42 article { padding: 13px; border: 1px solid #e2c69d; border-radius: 11px; background: #fffaf1; }
.owner-item-grid-v42 span { color: #a66a27; font-size: 9px; font-weight: 900; }
.owner-item-grid-v42 strong, .owner-item-grid-v42 b { display: block; }
.owner-item-grid-v42 strong { margin: 5px 0; font-size: 12px; }
.owner-item-grid-v42 p { color: var(--ink-soft); font-size: 10px; line-height: 1.5; }
.owner-item-grid-v42 b { color: #8a6232; font-size: 10px; }

.guide-loop-v42 { display: grid; grid-template-columns: repeat(5,1fr); gap: 7px; margin-bottom: 15px; }
.guide-loop-v42 article { padding: 13px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.guide-loop-v42 span { color: var(--amber); font-size: 10px; font-weight: 1000; }
.guide-loop-v42 strong { display: block; margin: 5px 0; font-size: 13px; }
.guide-loop-v42 p { margin: 0; color: var(--ink-soft); font-size: 10px; line-height: 1.5; }
.guide-sections-v42 { display: grid; gap: 8px; }
.guide-sections-v42 details { border: 1px solid var(--line); border-radius: 13px; background: rgba(248,250,246,.94); box-shadow: var(--shadow-small); }
.guide-sections-v42 summary { padding: 15px 17px; color: var(--green-deep); font-size: 13px; font-weight: 1000; cursor: pointer; }
.guide-table-v42 { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; padding: 0 15px 15px; }
.guide-table-v42 > div { display: grid; grid-template-columns: 100px 90px 1fr; gap: 8px; padding: 10px; border-radius: 9px; background: var(--surface-2); }
.guide-table-v42 strong, .guide-table-v42 b { font-size: 11px; }
.guide-table-v42 b { color: var(--amber); }
.guide-table-v42 p { margin: 0; color: var(--ink-soft); font-size: 10px; line-height: 1.5; }
.guide-copy-v42 { padding: 0 17px 16px; }
.guide-copy-v42 p { margin: 7px 0; color: var(--ink-soft); font-size: 11px; line-height: 1.7; }

.character-create-v42 { max-height: calc(100vh - 34px); overflow-y: auto; }
.character-fields-v42 { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin: 15px 0; }
.character-fields-v42 label, .bulletin-input-v42 { display: grid; gap: 5px; color: var(--ink-soft); font-size: 10px; font-weight: 900; }
.character-fields-v42 input, .bulletin-input-v42 input, .modifier-grid-v42 input { width: 100%; min-height: 42px; border: 1px solid var(--line); border-radius: 9px; padding: 8px 10px; background: #fff; color: var(--ink); }
.background-grid-v42 { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.background-grid-v42 label { position: relative; display: grid; align-content: start; min-height: 168px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-2); cursor: pointer; }
.background-grid-v42 input { position: absolute; opacity: 0; }
.background-grid-v42 label:has(input:checked) { border-color: #c98638; background: #fff4df; box-shadow: inset 0 0 0 1px #d69b56; }
.background-grid-v42 span { color: #ad722f; font-size: 9px; font-weight: 900; }
.background-grid-v42 strong { margin: 4px 0; font-size: 14px; }
.background-grid-v42 p { margin: 0; color: var(--ink-soft); font-size: 10px; line-height: 1.5; }
.background-grid-v42 small { margin-top: 9px; color: var(--green-deep); font-size: 10px; font-weight: 900; }
.background-grid-v42 b { margin-top: 5px; color: #8b642f; font-size: 9px; }
.bulletin-modal-v42 blockquote { margin: 16px 0; padding: 18px; border: 0; border-radius: 6px 17px 8px 13px; background: #fff3a8; color: #5f5429; box-shadow: 0 10px 23px rgba(80,68,24,.14); font-size: 14px; line-height: 1.8; transform: rotate(-.4deg); }
.bulletin-input-v42 { margin: 14px 0 9px; }

.modifier-tab-v42 { position: fixed; z-index: 65; right: 0; top: 46%; width: 36px; height: 72px; border: 1px solid #b86d25; border-right: 0; border-radius: 13px 0 0 13px; background: #e38d32; color: #fff; font-weight: 1000; box-shadow: 0 10px 25px rgba(132,72,20,.25); cursor: pointer; }
.modifier-entry-locked-v42 { display: none; }
.modifier-panel-v42 { position: fixed; z-index: 64; right: 14px; top: 50%; width: min(390px,calc(100vw - 28px)); max-height: calc(100vh - 34px); overflow-y: auto; transform: translateY(-50%); padding: 16px; border: 1px solid #c57b2e; border-radius: 17px; background: #fff8e9; box-shadow: 0 28px 70px rgba(75,46,21,.28); }
.modifier-head-v42 { display: flex; justify-content: space-between; align-items: center; }
.modifier-head-v42 span, .modifier-head-v42 strong { display: block; }
.modifier-head-v42 span { color: #a96a29; font-size: 9px; font-weight: 1000; letter-spacing: .13em; }
.modifier-head-v42 strong { font-size: 17px; }
.modifier-head-v42 button { width: 32px; height: 32px; border: 1px solid #dfb77e; border-radius: 50%; background: transparent; cursor: pointer; }
.modifier-panel-v42 > p { color: #796348; font-size: 10px; line-height: 1.5; }
.modifier-grid-v42 { display: grid; grid-template-columns: repeat(2,1fr); gap: 6px; margin: 12px 0; }
.modifier-grid-v42 label { color: #7f633f; font-size: 9px; font-weight: 900; }
.modifier-grid-v42 input { min-height: 35px; margin-top: 3px; font-size: 11px; }
.modifier-actions-v42 { display: grid; grid-template-columns: repeat(2,1fr); gap: 5px; margin-top: 8px; }
.modifier-actions-v42 button { min-height: 36px; border: 1px solid #ddb882; border-radius: 8px; background: #fff; color: #805a2e; font-size: 10px; font-weight: 900; cursor: pointer; }

/* v5 growth systems */
.quarter-rule-v5 { display: flex; flex-wrap: wrap; gap: 5px 12px; align-items: baseline; margin: 11px 0 2px; padding: 9px 11px; border-left: 3px solid var(--amber); background: rgba(255,255,255,.58); }
.quarter-rule-v5 b { color: #7e5728; font-size: 11px; }
.quarter-rule-v5 span { color: var(--ink-soft); font-size: 10px; }
.employee-path-v5 { display: flex; justify-content: space-between; gap: 8px; margin: 8px 0; padding: 8px 9px; border-left: 3px solid var(--green); background: var(--green-soft); }
.employee-path-v5 strong { font-size: 10px; }
.employee-path-v5 span { color: var(--ink-soft); font-size: 9px; text-align: right; }
.training-program-grid-v5 { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-top: 15px; }
.training-program-grid-v5 button, .owner-program-grid-v5 button, .specialization-grid-v5 button { min-width: 0; border: 1px solid var(--line); border-radius: 8px; padding: 12px; background: #fff; color: var(--ink); text-align: left; cursor: pointer; }
.training-program-grid-v5 button:disabled, .owner-program-grid-v5 button:disabled, .specialization-grid-v5 button:disabled:not(.selected) { opacity: .48; cursor: not-allowed; }
.training-program-grid-v5 span, .training-program-grid-v5 strong, .training-program-grid-v5 b,
.owner-program-grid-v5 span, .owner-program-grid-v5 strong, .owner-program-grid-v5 b,
.specialization-grid-v5 span, .specialization-grid-v5 strong { display: block; }
.training-program-grid-v5 span, .owner-program-grid-v5 span, .specialization-grid-v5 span { color: var(--green-deep); font-size: 9px; font-weight: 900; }
.training-program-grid-v5 strong, .owner-program-grid-v5 strong, .specialization-grid-v5 strong { margin: 5px 0; font-size: 12px; }
.training-program-grid-v5 p, .owner-program-grid-v5 p, .specialization-grid-v5 p { min-height: 43px; margin: 0 0 7px; color: var(--ink-soft); font-size: 10px; line-height: 1.5; }
.training-program-grid-v5 b, .owner-program-grid-v5 b { color: var(--amber); font-size: 9px; line-height: 1.45; }
.employee-guide-v5 { grid-template-columns: repeat(4,1fr); }
.growth-matrix-v5 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 13px 0; }
.growth-matrix-v5 > div { padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-2); }
.growth-matrix-v5 > div > span { color: var(--ink-soft); font-size: 9px; font-weight: 900; }
.matrix-values-v5 { display: grid; grid-template-columns: repeat(2,1fr); gap: 5px; margin-top: 8px; }
.matrix-values-v5 b { padding: 7px; background: #fff; color: var(--green-deep); font-size: 10px; }
.mastery-section-v5, .specialization-section-v5 { margin-top: 18px; }
.mastery-grid-v5, .owner-mastery-grid-v5 { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 7px; }
.mastery-grid-v5 article, .owner-mastery-grid-v5 article { min-width: 0; padding: 11px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-2); }
.mastery-grid-v5 span, .mastery-grid-v5 strong, .mastery-grid-v5 b,
.owner-mastery-grid-v5 span, .owner-mastery-grid-v5 strong, .owner-mastery-grid-v5 b { display: block; }
.mastery-grid-v5 span, .owner-mastery-grid-v5 span { color: var(--amber); font-size: 9px; font-weight: 1000; }
.mastery-grid-v5 strong, .owner-mastery-grid-v5 strong { margin: 4px 0; font-size: 11px; }
.mastery-grid-v5 b, .owner-mastery-grid-v5 b { color: var(--green-deep); font-size: 10px; }
.mastery-grid-v5 p, .owner-mastery-grid-v5 p { min-height: 41px; margin: 6px 0 0; color: var(--ink-soft); font-size: 9px; line-height: 1.45; }
.specialization-grid-v5 { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.specialization-grid-v5 button.selected { border-color: var(--amber); background: var(--amber-soft); opacity: 1; }
.trait-strip-v5 { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 13px 0; padding: 10px; background: var(--surface-2); }
.trait-strip-v5 span { color: var(--ink-soft); font-size: 9px; }
.trait-strip-v5 b { padding: 5px 8px; border: 1px solid var(--line); background: #fff; font-size: 9px; }
.skill-title-v5 { margin-top: 16px; }
.mbti-panel-v5 .panel-heading { align-items: flex-start; }
.mbti-panel-v5 .panel-heading > b { max-width: 48%; color: #825c31; font-size: 10px; text-align: right; }
.mbti-panel-v5 > p { margin: 10px 0 0; color: var(--ink-soft); font-size: 10px; line-height: 1.55; }
.mbti-axis-grid-v5 { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; }
.mbti-axis-grid-v5 > div { padding: 10px; background: var(--surface-2); }
.mbti-axis-grid-v5 span, .mbti-axis-grid-v5 strong { display: block; font-size: 9px; }
.mbti-axis-grid-v5 strong { margin-top: 5px; color: var(--green-deep); text-align: right; }
.perk-strip-v5 { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.perk-strip-v5 span { padding: 6px 9px; background: var(--amber-soft); color: #76501f; font-size: 9px; font-weight: 900; }
.owner-program-grid-v5 { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; margin-top: 10px; }
.modifier-panel-v5 { width: min(450px,calc(100vw - 28px)); }
.modifier-panel-v5 details { margin: 8px 0; border-top: 1px solid #e2bd89; }
.modifier-panel-v5 summary { padding: 9px 1px 4px; color: #7b5528; font-size: 11px; font-weight: 1000; cursor: pointer; }
.modifier-select-v5 { margin: 8px 0; }
.modifier-select-v5 label { display: grid; gap: 4px; color: #7f633f; font-size: 9px; font-weight: 900; }
.modifier-select-v5 select, .character-fields-v5 select { width: 100%; min-height: 39px; border: 1px solid var(--line); border-radius: 8px; padding: 7px 9px; background: #fff; color: var(--ink); }
.character-fields-v5 { grid-template-columns: 1fr 1fr 1.2fr; align-items: start; }
.character-fields-v5 small { color: var(--ink-soft); font-size: 9px; font-weight: 400; line-height: 1.4; }

@media (max-width: 1180px) {
  .deployment-rail-v42 { grid-template-columns: 1fr; }
  .owner-stat-grid-v42 { grid-template-columns: repeat(2,1fr); }
  .owner-skill-grid-v42, .owner-item-grid-v42 { grid-template-columns: repeat(2,1fr); }
  .guide-loop-v42 { grid-template-columns: repeat(3,1fr); }
  .guide-table-v42 { grid-template-columns: 1fr; }
  .training-program-grid-v5, .specialization-grid-v5 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .mastery-grid-v5, .owner-mastery-grid-v5 { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .character-fields-v5 { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 860px) {
  body:not(.game-started) .game-shell-v2 { display: none; }
  .mobile-nav-v2 { grid-template-columns: repeat(7,1fr); }
  .mobile-nav-v2 button { min-height: 50px; }
  .context-actions-v42 { display: none !important; }
  .office-hero-v4 { grid-template-columns: minmax(0,1fr); }
  .office-workbench-v42 { grid-template-columns: 1fr; }
  .office-deploy-v42 .manager-tip-v42 { display: none; }
  .deployment-rail-v42 { display: grid; grid-template-columns: 1fr; height: auto; max-height: none; overflow: visible; gap: 6px; padding: 0; }
  .management-rail-v42 { display: flex; height: auto; max-height: none; overflow-x: auto; overflow-y: hidden; padding: 0 0 5px; scroll-snap-type: x proximity; }
  .deploy-card-v42 { display: grid; grid-template-columns: minmax(112px,.82fr) minmax(150px,1.18fr); grid-template-rows: auto auto; align-items: center; gap: 4px 8px; padding: 8px 9px; }
  .deploy-person-v42 { grid-column: 1; grid-row: 1; min-width: 0; grid-template-columns: auto minmax(0,1fr); gap: 6px; }
  .deploy-person-v42 .avatar-dot { width: 28px; height: 28px; border-radius: 8px; }
  .deploy-person-v42 > div { min-width: 0; }
  .deploy-person-v42 strong, .deploy-person-v42 small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .deploy-person-v42 > b { display: none; }
  .deploy-meta-v42 { grid-column: 1; grid-row: 2; flex-wrap: nowrap; gap: 2px; margin: 0; }
  .deploy-meta-v42 span { padding: 2px 4px; white-space: nowrap; }
  .deploy-meta-v42 span:nth-child(2) { display: none; }
  .deploy-card-v42 label { grid-column: 2; grid-row: 1 / 3; align-self: stretch; align-content: center; }
  .deploy-card-v42 select { min-height: 44px; }
  .management-card.compact-v42 { flex: 0 0 76%; min-height: 150px; }
  .employee-columns-v42 { grid-template-columns: 1fr; }
  .employee-columns-v42 > div { display: contents; }
  .owner-hero-v42 { grid-template-columns: auto 1fr; }
  .owner-hero-v42 aside { grid-column: 1 / -1; }
  .start-card-v42 { grid-template-columns: 1fr; gap: 28px; padding: 36px; }
  .start-bulletin-v42, .start-card-v42 footer, .start-message-v42 { grid-column: auto; }
}

@media (max-width: 580px) {
  .start-screen-v42 { padding: 10px; }
  .start-card-v42 { gap: 20px; padding: 24px 18px; border-radius: 20px; }
  .start-brand-v42 img { width: 56px; height: 56px; border-radius: 17px; }
  .start-brand-v42 > span { margin-top: 15px; font-size: 9px; }
  .start-brand-v42 h1 { font-size: 50px; }
  .start-brand-v42 p { font-size: 13px; }
  .start-actions-v42 .button { min-height: 62px; }
  .mobile-nav-v2 { width: calc(100% - 12px); gap: 1px; padding: 4px; border-radius: 15px; }
  .mobile-nav-v2 button { min-height: 48px; border-radius: 10px; }
  .mobile-nav-v2 i { font-size: 11px; }
  .mobile-nav-v2 span { font-size: 8px; }
  .office-hero-v4 { padding: 16px; }
  .office-deploy-v42, .manager-side-v42 { padding: 14px; }
  .management-card.compact-v42 { flex-basis: 88%; }
  .project-team-v52 { grid-template-columns: 1fr auto; padding: 9px; }
  .project-member-list-v52, .project-team-empty-v52 { grid-column: 1 / -1; }
  .project-member-list-v52 { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px; }
  .project-member-v52 { min-width: 0; padding: 6px; }
  .project-member-v52 small { overflow: hidden; text-overflow: ellipsis; }
  .office-collapse-v42 > summary { align-items: flex-start; padding: 12px; }
  .office-collapse-v42 > summary > strong { text-align: right; }
  .employee-actions-v42 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .employee-guide-strip-v42, .training-delta-v42 { grid-template-columns: repeat(2,1fr); }
  .compact-skill-list-v42, .loadout-detail-v42 { grid-template-columns: 1fr; }
  .employee-modal-v42 { width: 100%; max-height: calc(100vh - 18px); padding: 17px 14px; }
  .owner-hero-v42 { padding: 16px; }
  .owner-avatar-v42 { width: 50px; height: 50px; border-radius: 16px; }
  .owner-stat-grid-v42, .owner-skill-grid-v42, .owner-item-grid-v42 { grid-template-columns: 1fr; }
  .owner-stat-grid-v42 p { min-height: 0; }
  .guide-loop-v42 { display: flex; overflow-x: auto; }
  .guide-loop-v42 article { flex: 0 0 76%; }
  .guide-table-v42 > div { grid-template-columns: 90px 1fr; }
  .guide-table-v42 p { grid-column: 1 / -1; }
  .character-fields-v42, .background-grid-v42 { grid-template-columns: 1fr; }
  .background-grid-v42 label { min-height: 145px; }
  .modifier-tab-v42 { top: 58px; bottom: auto; width: 52px; height: 34px; border-radius: 10px 0 0 10px; font-size: 10px; }
  .modifier-entry-locked-v42 { display: block; }
  .modifier-panel-v42 { right: 0; top: auto; bottom: 0; width: 100%; max-height: 78vh; transform: none; border-radius: 18px 18px 0 0; padding-bottom: calc(18px + env(safe-area-inset-bottom)); }
  .employee-path-v5 { display: grid; }
  .employee-path-v5 span { text-align: left; }
  .training-program-grid-v5, .specialization-grid-v5, .owner-program-grid-v5 { grid-template-columns: 1fr; }
  .employee-guide-v5, .growth-matrix-v5 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .mastery-grid-v5, .owner-mastery-grid-v5 { display: flex; overflow-x: auto; padding-bottom: 4px; }
  .mastery-grid-v5 article, .owner-mastery-grid-v5 article { flex: 0 0 68%; }
  .mbti-axis-grid-v5 { grid-template-columns: repeat(2,1fr); }
  .mbti-panel-v5 .panel-heading { display: grid; }
  .mbti-panel-v5 .panel-heading > b { max-width: none; text-align: left; }
  .character-fields-v5 { grid-template-columns: 1fr; }
  .investigation-run-v4 { padding: 13px; border-radius: 12px; }
  .run-head { align-items: flex-start; gap: 8px; }
  .run-head .button { min-height: 36px; padding: 7px 9px; white-space: nowrap; }
  .run-resources { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; }
  .run-resources > div { min-width: 0; padding: 8px 6px; }
  .run-resources button { line-height: 1.35; }
  .route-history { grid-template-columns: auto minmax(0,1fr) auto; gap: 6px; }
  .route-history > div { min-width: 0; overflow-x: auto; }
  .route-options > button { padding: 10px; }
  .route-options span { font-size: 12px; }
  .route-options strong { font-size: 10px; }
  .route-options p { font-size: 11px; line-height: 1.55; }
  .route-options small { font-size: 10px; line-height: 1.45; }
  .route-encounter-v51, .boss-card-v51, .investigation-report-v51 { padding-top: 14px; padding-bottom: 14px; }
  .investigation-report-v51 { padding-right: 10px; padding-left: 10px; }
  .encounter-heading-v51 h3, .boss-intro-v51 h3, .investigation-report-v51 h3 { font-size: 17px; }
  .encounter-story-v51 > p, .boss-intro-v51 > p, .report-copy-v51 p { font-size: 12px; }
  .encounter-story-v51 aside, .report-outcome-v51 { grid-template-columns: 1fr; }
  .encounter-actions-v51 > .section-title { display: block; }
  .encounter-actions-v51 > .section-title > span { display: block; margin-top: 4px; }
  .boss-progress-v51 { grid-template-columns: 1fr auto; }
  .boss-progress-v51 > div { grid-row: 2; }
  .boss-progress-v51 > strong { grid-column: 2; grid-row: 2; }
  .boss-mechanism-v51 { padding: 11px; }
  .encounter-actions-v51 > button, .boss-actions-v51 > button { min-height: 96px; padding: 10px; }
}

/* iOS home-screen mode */
@media (display-mode: standalone) and (max-width: 860px) {
  body { min-height: 100dvh; }
  .start-screen-v42 {
    min-height: 100dvh;
    padding-top: max(10px, env(safe-area-inset-top));
    padding-right: max(10px, env(safe-area-inset-right));
    padding-bottom: max(10px, env(safe-area-inset-bottom));
    padding-left: max(10px, env(safe-area-inset-left));
  }
  .workspace-v2 {
    padding-top: calc(10px + env(safe-area-inset-top));
    padding-right: max(10px, env(safe-area-inset-right));
    padding-bottom: calc(94px + env(safe-area-inset-bottom));
    padding-left: max(10px, env(safe-area-inset-left));
  }
  .mobile-nav-v2 {
    bottom: max(6px, env(safe-area-inset-bottom));
    width: calc(100% - 12px - env(safe-area-inset-left) - env(safe-area-inset-right));
  }
  .modal-backdrop-v2 {
    padding-top: max(10px, env(safe-area-inset-top));
    padding-right: max(10px, env(safe-area-inset-right));
    padding-bottom: max(10px, env(safe-area-inset-bottom));
    padding-left: max(10px, env(safe-area-inset-left));
  }
  .modal-v2, .employee-modal-v42, .character-create-v42 {
    max-height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 20px);
  }
  .modifier-tab-v42 { top: calc(58px + env(safe-area-inset-top)); bottom: auto; }
  .modifier-panel-v42 {
    max-height: calc(78dvh - env(safe-area-inset-top));
    padding-bottom: calc(18px + env(safe-area-inset-bottom));
  }
  .toast-root { top: calc(8px + env(safe-area-inset-top)); }
}

@media (max-width: 860px) {
  input, select, textarea { font-size: 16px !important; }
  .deployment-rail-v42, .management-rail-v42, .page-tabs-v4, .filter-tabs-v4,
  .mastery-grid-v5, .owner-mastery-grid-v5, .modifier-panel-v42, .modal-v2 {
    -webkit-overflow-scrolling: touch;
  }
}
