:root {
  --midnight: #0f2238;
  --navy: #16324f;
  --sapphire: #1769aa;
  --deep-sapphire: #0b4778;
  --gold: #d5a94e;
  --cloud: #f4f7fa;
  --white: #ffffff;
  --slate: #5f6b78;
  --ink: #18222d;
  --muted: #7a8794;
  --border: #dbe3ea;
  --danger: #a13b36;
  --success: #2f6b4f;
  --warning: #8a651d;
  --shadow: 0 24px 70px rgba(8, 24, 40, 0.2);
  --panel-shadow: 0 14px 38px rgba(8, 24, 40, 0.14);
}

* {
  box-sizing: border-box;
}

html {
  min-height: 100%;
  background: var(--midnight);
}

body {
  min-height: 100vh;
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  color: var(--ink);
  background:
    radial-gradient(circle at top right, rgba(23, 105, 170, 0.34), transparent 34%),
    linear-gradient(145deg, #0b1b2d 0%, var(--midnight) 52%, #173a5d 100%);
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

.app-shell {
  min-height: 100vh;
}

.app-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  min-height: 92px;
  padding: 1.15rem clamp(1.25rem, 4vw, 4rem);
  color: var(--white);
  background: rgba(8, 25, 42, 0.92);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(10px);
  position: sticky;
  top: 0;
  z-index: 20;
}

.header-platform,
.header-tagline,
.header-simulation span,
.header-simulation small {
  display: block;
}

.header-platform {
  margin: 0;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.header-tagline {
  margin-top: 0.3rem;
  color: #b9c9d6;
  font-size: 0.78rem;
}

.header-simulation {
  text-align: right;
}

.header-simulation span {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.2rem;
}

.header-simulation small {
  margin-top: 0.2rem;
  color: var(--gold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.screen {
  min-height: 100vh;
}

.content-shell {
  width: min(1400px, calc(100% - 2rem));
  margin: 0 auto;
  padding: clamp(1.5rem, 4vw, 3.5rem) 0 4rem;
}

.eyebrow {
  margin: 0;
  color: var(--deep-sapphire);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.eyebrow.light {
  color: var(--gold);
}

h1,
h2,
h3,
p {
  overflow-wrap: anywhere;
}

.page-title {
  margin: 0.45rem 0 0.75rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.3rem, 5vw, 4.4rem);
  font-weight: 500;
  line-height: 1;
}

.page-intro {
  max-width: 820px;
  margin: 0;
  color: #cad8e3;
  font-size: 1.05rem;
  line-height: 1.7;
}

.primary-button,
.secondary-button,
.ghost-button,
.danger-button {
  border-radius: 9px;
  font-weight: 700;
  letter-spacing: 0.02em;
  transition: transform 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.primary-button {
  border: 0;
  padding: 0.95rem 1.35rem;
  color: var(--white);
  background: var(--sapphire);
  box-shadow: 0 10px 24px rgba(23, 105, 170, 0.26);
}

.primary-button:hover {
  background: var(--deep-sapphire);
  transform: translateY(-2px);
}

.secondary-button,
.ghost-button {
  padding: 0.85rem 1.15rem;
  color: var(--deep-sapphire);
  background: var(--white);
  border: 1px solid var(--border);
}

.ghost-button {
  color: var(--white);
  background: transparent;
  border-color: rgba(255, 255, 255, 0.3);
}

.danger-button {
  padding: 0.85rem 1.15rem;
  color: var(--white);
  background: var(--danger);
  border: 0;
}

.button-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.splash-screen {
  display: grid;
  place-items: center;
  color: var(--white);
  text-align: center;
  padding: 2rem;
}

.splash-content {
  width: min(760px, 100%);
}

.platform-name {
  margin: 0;
  font-size: clamp(1rem, 2vw, 1.3rem);
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
}

.platform-tagline {
  margin: 0.75rem 0 1.75rem;
  color: #dce8f2;
  letter-spacing: 0.08em;
}

.gold-rule {
  width: 110px;
  height: 2px;
  margin: 0 auto 1.5rem;
  background: var(--gold);
}

.presents {
  margin: 0 0 1rem;
  color: #c7d4df;
  font-family: Georgia, "Times New Roman", serif;
  font-style: italic;
}

.splash-content h1 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3.2rem, 9vw, 7rem);
  font-weight: 500;
  letter-spacing: 0.03em;
}

.simulation-subtitle {
  margin: 1rem 0 0;
  color: var(--gold);
  font-size: clamp(1rem, 2.3vw, 1.45rem);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.briefing-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(300px, 0.75fr);
  gap: clamp(1.25rem, 3vw, 2.5rem);
}

.panel {
  background: var(--white);
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 18px;
  box-shadow: var(--shadow);
}

.briefing-panel {
  padding: clamp(1.5rem, 4vw, 3.5rem);
}

.briefing-panel h2 {
  margin: 0.55rem 0 1.25rem;
  color: var(--midnight);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.1rem, 5vw, 4.2rem);
  font-weight: 500;
  line-height: 1;
}

.opening-message {
  margin: 0;
  max-width: 760px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.25rem, 2.4vw, 1.75rem);
  line-height: 1.55;
}

.briefing-copy {
  max-width: 760px;
  margin: 1rem 0 0;
  color: var(--slate);
  line-height: 1.7;
}

.city-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 2rem 0;
}

.fact-card {
  padding: 1.15rem 1.25rem;
  background: var(--cloud);
  border: 1px solid var(--border);
  border-radius: 12px;
}

.fact-label {
  display: block;
  margin-bottom: 0.4rem;
  color: var(--slate);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.fact-card strong {
  color: var(--midnight);
  font-size: 1.2rem;
}

.conditions-panel {
  padding: 1.5rem;
  background: #fbfcfd;
  border-left: 4px solid var(--gold);
  border-radius: 0 12px 12px 0;
}

.conditions-panel h3 {
  margin: 0 0 0.8rem;
  color: var(--midnight);
}

.conditions-panel ul {
  margin: 0;
  padding-left: 1.25rem;
  color: #35414c;
  line-height: 1.75;
}

.identity-panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2rem;
  padding: clamp(1.5rem, 3vw, 2.5rem);
  color: var(--white);
  background:
    linear-gradient(rgba(15, 34, 56, 0.93), rgba(15, 34, 56, 0.93)),
    radial-gradient(circle at 70% 20%, rgba(213, 169, 78, 0.25), transparent 45%);
}

.city-seal {
  display: grid;
  place-items: center;
  min-height: 290px;
}

.sapphire-police-logo {
  display: block;
  width: min(330px, 78vw);
  max-height: 390px;
  object-fit: contain;
  filter: drop-shadow(0 22px 34px rgba(0, 0, 0, 0.34));
}

.identity-panel h3 {
  margin: 0.6rem 0 0.8rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.85rem;
  font-weight: 500;
}

.identity-panel p {
  color: #cbd8e2;
  line-height: 1.65;
}

.assignment-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
  margin-top: 2rem;
}

.organization-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.mode-label {
  color: #dbe7f0;
}

.mode-label strong {
  color: var(--white);
}

.org-main-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(320px, 0.7fr);
  gap: 1.25rem;
  align-items: start;
}

.organization-panel,
.dashboard-panel,
.log-panel {
  padding: 1.25rem;
}

.section-heading {
  margin: 0 0 1rem;
  color: var(--midnight);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.8rem;
  font-weight: 500;
}

.unit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.sidebar-stack {
  display: grid;
  gap: 1.25rem;
}

.footer-note {
  margin-top: 1rem;
  color: var(--muted);
  font-size: 0.85rem;
  line-height: 1.5;
}

@media (max-width: 1050px) {
  .briefing-layout,
  .org-main-grid,
  .assignment-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .app-header,
  .organization-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .header-simulation {
    text-align: left;
  }

  .city-facts,
  .unit-grid {
    grid-template-columns: 1fr;
  }

  .content-shell {
    width: min(100% - 1rem, 1400px);
  }
}


/* Version 1.1 organizational layout */
.command-panel {
  margin: 1.25rem 0;
  padding: 1.4rem;
}

.command-panel-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 1.25rem;
}

.command-panel-heading .section-heading {
  margin-bottom: 0;
}

.command-panel-heading > p {
  max-width: 520px;
  margin: 0;
  color: var(--slate);
  line-height: 1.55;
}

.command-chart {
  display: grid;
  justify-items: center;
  gap: 0.35rem;
  max-width: 520px;
  margin: 0 auto 1.4rem;
}

.command-node {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  width: min(100%, 420px);
  padding: 0.85rem 1rem;
  color: var(--white);
  background: var(--midnight);
  border-radius: 10px;
  box-shadow: var(--panel-shadow);
}

.command-node.level-2 {
  width: min(92%, 390px);
  background: var(--navy);
}

.command-node.level-3 {
  width: min(84%, 360px);
  background: var(--deep-sapphire);
}

.command-node span {
  font-weight: 700;
}

.command-node strong {
  display: grid;
  place-items: center;
  min-width: 34px;
  height: 34px;
  color: var(--midnight);
  background: var(--gold);
  border-radius: 50%;
}

.command-connector {
  color: var(--gold);
  font-size: 1.25rem;
  line-height: 1;
}

.division-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
}

.division-row article {
  padding: 1rem;
  background: var(--cloud);
  border: 1px solid var(--border);
  border-radius: 12px;
}

.division-row strong,
.division-row span {
  display: block;
}

.division-row strong {
  color: var(--midnight);
}

.division-row span {
  margin-top: 0.35rem;
  color: var(--slate);
  font-size: 0.84rem;
  line-height: 1.45;
}

.reports-to {
  margin-top: 0.35rem;
  color: var(--deep-sapphire);
  font-size: 0.74rem;
  font-weight: 700;
}

.dashboard-horizontal {
  margin-top: 1.25rem;
}

.dashboard-horizontal .dashboard-panel {
  padding: 1.25rem;
}

.dashboard-horizontal .metric-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.dashboard-horizontal .metric-card {
  min-width: 0;
}

.decision-log-horizontal {
  margin-top: 1.25rem;
}

.decision-log-horizontal .log-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-height: none;
}

@media (max-width: 1200px) {
  .dashboard-horizontal .metric-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .division-row,
  .decision-log-horizontal .log-list {
    grid-template-columns: 1fr;
  }

  .command-panel-heading {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 700px) {
  .dashboard-horizontal .metric-grid {
    grid-template-columns: 1fr;
  }
}


/* Version 1.3 compact organization layout */
.compact-command-panel {
  padding: 1rem 1.25rem;
}

.command-panel-heading.compact {
  margin-bottom: 0.8rem;
}

.unit-allocation-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1.25rem;
  margin-bottom: 1rem;
}

.unit-allocation-heading .section-heading {
  margin-bottom: 0;
}

.personnel-summary.compact {
  grid-template-columns: repeat(3, minmax(96px, 120px));
  margin-bottom: 0;
}

.personnel-summary.compact .personnel-card {
  padding: 0.7rem 0.8rem;
}

.personnel-summary.compact .personnel-card span {
  font-size: 0.66rem;
}

.personnel-summary.compact .personnel-card strong {
  margin-top: 0.2rem;
  font-size: 1.2rem;
}

@media (max-width: 900px) {
  .unit-allocation-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .personnel-summary.compact {
    width: 100%;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .personnel-summary.compact {
    grid-template-columns: 1fr;
  }
}


/* Version 2.0 simulation engine */
.advance-button {
  white-space: nowrap;
}

.simulation-cycle-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.85fr);
  gap: 1rem;
  margin: 1.25rem 0;
}

.cycle-panel,
.briefing-summary {
  padding: 1.15rem 1.25rem;
}

.cycle-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.cycle-heading h2 {
  margin: 0.15rem 0 0;
  color: var(--midnight);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
}

.cycle-heading > span {
  padding: 0.35rem 0.55rem;
  color: var(--deep-sapphire);
  background: var(--cloud);
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
}

.factor-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.6rem;
  margin-top: 1rem;
}

.factor-item {
  padding: 0.65rem 0.7rem;
  background: var(--cloud);
  border: 1px solid var(--border);
}

.factor-item span,
.factor-item strong {
  display: block;
}

.factor-item span {
  color: var(--slate);
  font-size: 0.67rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.factor-item strong {
  margin-top: 0.2rem;
  color: var(--midnight);
  font-size: 1.2rem;
}

.factor-item.factor-risk {
  background: #f8e7e5;
  border-color: #ecc8c3;
}

.factor-item.factor-risk strong {
  color: var(--danger);
}

.briefing-items {
  display: grid;
  gap: 0.65rem;
  margin-top: 0.55rem;
}

.briefing-item {
  padding-top: 0.65rem;
  border-top: 1px solid var(--border);
}

.briefing-item:first-child {
  padding-top: 0;
  border-top: 0;
}

.briefing-item strong {
  color: var(--deep-sapphire);
  font-size: 0.78rem;
}

.briefing-item p {
  margin: 0.25rem 0 0;
  color: var(--slate);
  font-size: 0.84rem;
  line-height: 1.45;
}

@media (max-width: 1050px) {
  .simulation-cycle-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 800px) {
  .factor-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .organization-toolbar .button-row {
    flex-wrap: wrap;
  }
}

@media (max-width: 520px) {
  .factor-strip {
    grid-template-columns: 1fr;
  }
}


/* Version 3.0 two-module simulation */
.module-introduction,
.submit-organization-panel {
  margin: 1.25rem 0;
  padding: 1.25rem 1.4rem;
}

.module-introduction h2,
.submit-organization-panel h2 {
  margin: 0.2rem 0 0.45rem;
  color: var(--midnight);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
}

.module-introduction p:last-child,
.submit-organization-panel p {
  margin-bottom: 0;
  color: var(--slate);
  line-height: 1.55;
}

.submit-organization-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}

.operations-progress {
  min-width: 190px;
  padding: 0.7rem 0.9rem;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.22);
}

.operations-progress span,
.operations-progress strong {
  display: block;
  color: white;
}

.operations-progress span {
  font-size: 0.7rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.operations-progress strong {
  margin-top: 0.2rem;
  font-size: 1.15rem;
}

.operating-period-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.2rem;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}

.operating-period-action p {
  margin: 0;
  color: var(--slate);
  font-size: 0.84rem;
  line-height: 1.45;
}

.static-role-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.65rem 0;
  border-top: 1px solid var(--border);
}

.static-role-row span {
  color: var(--slate);
  font-size: 0.84rem;
}

.static-role-row strong {
  color: var(--midnight);
  font-size: 1rem;
}

.scorecard-panel {
  margin: 1.5rem 0;
  padding: 2rem;
}

.scorecard-title {
  margin: 0.25rem 0 0.35rem;
  color: var(--midnight);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 4vw, 3.25rem);
  font-weight: 500;
}

.scorecard-subtitle {
  max-width: 760px;
  margin: 0;
  color: var(--slate);
  line-height: 1.6;
}

.approval-summary {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  margin: 1.5rem 0;
  padding: 0.8rem 1rem;
  background: var(--cloud);
  border: 1px solid var(--border);
}

.approval-summary strong {
  color: var(--deep-sapphire);
  font-size: 2rem;
}

.approval-summary span {
  color: var(--slate);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.stakeholder-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1.5rem;
}

.stakeholder-card {
  padding: 1.2rem;
  background: white;
  border: 1px solid var(--border);
}

.stakeholder-score {
  color: var(--deep-sapphire);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.7rem;
  line-height: 1;
}

.stakeholder-card h2 {
  margin: 0.4rem 0 0.7rem;
  color: var(--midnight);
  font-size: 1rem;
}

.stakeholder-card p {
  color: var(--slate);
  font-size: 0.79rem;
  line-height: 1.5;
}

.rating-bar {
  height: 6px;
  overflow: hidden;
  background: var(--cloud);
}

.rating-bar span {
  display: block;
  height: 100%;
  background: var(--deep-sapphire);
}

.stakeholder-card.stakeholder-pass {
  border-top: 4px solid #4b7c68;
}

.stakeholder-card.stakeholder-fail {
  border-top: 4px solid var(--danger);
}

.stakeholder-result {
  display: block;
  margin-top: 0.8rem;
  color: var(--midnight);
  font-size: 0.73rem;
  text-transform: uppercase;
}

.contract-outcome {
  margin: 1.5rem 0;
  padding: 1.4rem;
  border-left: 5px solid;
}

.contract-outcome h2 {
  margin: 0.2rem 0 0.35rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2rem;
  font-weight: 500;
}

.contract-outcome p {
  margin: 0.2rem 0 0.7rem;
}

.contract-win {
  background: #edf5f1;
  border-color: #4b7c68;
}

.contract-loss {
  background: #f8e7e5;
  border-color: var(--danger);
}

.score-comparison,
.print-department-summary {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border);
}

.score-comparison h2,
.print-department-summary h2 {
  margin: 0.2rem 0 0.8rem;
  color: var(--midnight);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
}

.comparison-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
}

.comparison-grid article {
  padding: 0.8rem;
  background: var(--cloud);
}

.comparison-grid strong,
.comparison-grid span,
.comparison-grid b {
  display: block;
}

.comparison-grid strong {
  margin-bottom: 0.4rem;
  color: var(--midnight);
}

.comparison-grid span {
  color: var(--slate);
  font-size: 0.78rem;
}

.comparison-grid b {
  margin-top: 0.35rem;
  color: var(--deep-sapphire);
  font-size: 1.05rem;
}

.print-unit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
}

.print-unit-grid article {
  padding: 0.65rem;
  background: var(--cloud);
}

.print-unit-grid strong,
.print-unit-grid span {
  display: block;
}

.print-unit-grid span {
  margin-top: 0.2rem;
  color: var(--slate);
  font-size: 0.75rem;
}

.score-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.7rem;
  margin-top: 1.5rem;
}

@media (max-width: 1050px) {
  .stakeholder-grid,
  .comparison-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .submit-organization-panel,
  .operating-period-action {
    align-items: stretch;
    flex-direction: column;
  }

  .stakeholder-grid,
  .comparison-grid,
  .print-unit-grid {
    grid-template-columns: 1fr;
  }

  .score-actions {
    align-items: stretch;
    flex-direction: column;
  }
}

@media print {
  body {
    background: white !important;
  }

  .no-print,
  .site-header {
    display: none !important;
  }

  .screen,
  .content-shell,
  .scorecard-panel {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: white !important;
    box-shadow: none !important;
  }

  .stakeholder-grid,
  .comparison-grid {
    grid-template-columns: repeat(4, 1fr);
  }

  .stakeholder-card,
  .comparison-grid article,
  .print-unit-grid article {
    break-inside: avoid;
  }

  .scorecard-title {
    font-size: 28pt;
  }
}


/* Version 3.1 operational staffing controls */
.operations-guidance-panel {
  margin: 1.25rem 0;
  padding: 1.15rem 1.35rem;
}

.operations-guidance-panel h2 {
  margin: 0.2rem 0 0.4rem;
  color: var(--midnight);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
}

.operations-guidance-panel p:last-child {
  margin-bottom: 0;
  color: var(--slate);
  line-height: 1.55;
}


/* Version 3.2 page flow and alignment refinements */
.accept-job-wrap {
  margin-top: 1.5rem;
}

.personnel-card,
.factor-item {
  text-align: center;
}

.personnel-card span,
.personnel-card strong,
.factor-item span,
.factor-item strong {
  text-align: center;
}

.start-over-footer {
  display: flex;
  justify-content: center;
  margin: 1.75rem 0 0.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(255,255,255,0.18);
}

.panel .start-over-footer,
.scorecard-panel .start-over-footer {
  border-top-color: var(--border);
}

.start-over-button {
  min-width: 220px;
}

.revision-notice {
  margin-top: 1.25rem;
  padding: 0.85rem 1rem;
  color: var(--deep-sapphire);
  background: var(--cloud);
  border-left: 4px solid var(--deep-sapphire);
  font-size: 0.86rem;
  font-weight: 700;
}

.revision-notice.revision-used {
  color: var(--slate);
  border-left-color: var(--slate);
}


/* v3.4.1 - final review start over button placement */
.scorecard-panel > .start-over-footer{
  margin-top:2rem;
  margin-left:-2rem;
  margin-right:-2rem;
  margin-bottom:-2rem;
  padding:1.75rem 2rem;
  background:var(--deep-sapphire);
  border-top:none;
  justify-content:center;
}

.scorecard-panel > .start-over-footer .start-over-button{
  background:transparent;
  color:#fff;
  border:2px solid rgba(255,255,255,.75);
}

.scorecard-panel > .start-over-footer .start-over-button:hover{
  background:rgba(255,255,255,.12);
}


/* Version 3.5 workforce management and executive review */
.hiring-panel {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.5rem;
  margin: 1.25rem 0;
}

.hiring-panel h2 {
  margin: 0.2rem 0 0.45rem;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
}

.hiring-panel p {
  margin: 0;
  line-height: 1.55;
}

.staffing-update {
  margin-top: 0.55rem !important;
  font-weight: 700;
}

.hiring-panel button:disabled {
  opacity: 0.62;
  cursor: not-allowed;
}

.executive-grade {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  margin: 1.4rem 0;
  padding: 1.2rem 1.35rem;
  background: var(--cloud);
  border: 1px solid var(--border);
}

.grade-mark {
  display: grid;
  place-items: center;
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background: var(--deep-sapphire);
  color: white;
  font-size: 2.5rem;
  font-weight: 800;
}

.executive-grade h2 {
  margin: 0.2rem 0 0.25rem;
}

/* Keep the final Start Over control visibly below the white report card. */
.score-screen .printable-report {
  padding-bottom: 0;
}

.scorecard-panel > .start-over-footer {
  position: relative;
  left: -2rem;
  width: calc(100% + 4rem);
  margin: 2rem 0 -2rem;
  padding: 1.75rem 2rem;
  background: var(--deep-sapphire);
  border-top: 0;
}

.scorecard-panel > .start-over-footer .start-over-button {
  background: transparent;
  color: #fff;
  border: 2px solid #fff;
}

@media (max-width: 760px) {
  .hiring-panel {
    align-items: stretch;
    flex-direction: column;
  }

  .scorecard-panel > .start-over-footer {
    left: -1rem;
    width: calc(100% + 2rem);
    margin-bottom: -1rem;
  }
}


/* Version 3.6 — Workforce Management panel */
.workforce-panel {
  margin: 1.25rem 0;
  padding: 1.35rem 1.5rem;
  overflow: hidden;
}

.workforce-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  margin-bottom: 1rem;
}

.workforce-heading h2 {
  margin: 0.2rem 0 0;
  color: var(--midnight);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
}

.workforce-recruit-button {
  flex: 0 0 auto;
  min-width: 210px;
  max-width: 260px;
  white-space: normal;
  line-height: 1.2;
}

.workforce-stat-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.75rem;
}

.workforce-stat {
  display: grid;
  place-items: center;
  min-height: 82px;
  padding: 0.75rem;
  text-align: center;
  background: var(--cloud);
  border: 1px solid var(--border);
  border-radius: 12px;
}

.workforce-stat span {
  color: var(--slate);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.workforce-stat strong {
  margin-top: 0.2rem;
  color: var(--midnight);
  font-size: 1.35rem;
}

.workforce-note {
  margin: 0.9rem 0 0;
  color: var(--slate);
  font-size: 0.88rem;
  line-height: 1.5;
}

.workforce-note strong {
  margin-left: 0.35rem;
  color: var(--midnight);
}

@media (max-width: 980px) {
  .workforce-stat-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .workforce-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .workforce-recruit-button {
    max-width: none;
    width: 100%;
  }

  .workforce-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* Version 4.0 — Executive decision system */
.executive-decision-panel {
  margin: 1.25rem 0;
  padding: 1.4rem 1.5rem;
  border-top: 4px solid var(--gold);
}

.decision-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.decision-heading h2 {
  margin: 0.2rem 0 0.25rem;
  color: var(--midnight);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
}

.decision-heading strong {
  color: var(--deep-sapphire);
  font-size: 0.82rem;
}

.decision-status {
  flex: 0 0 auto;
  padding: 0.45rem 0.7rem;
  color: #7a4b00;
  background: #fff3cd;
  border: 1px solid #f0d27a;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.decision-status.decision-complete {
  color: #205c38;
  background: #e3f4e8;
  border-color: #b8dec4;
}

.decision-brief {
  max-width: 1000px;
  margin: 0.85rem 0 1rem;
  color: var(--slate);
  line-height: 1.55;
}

.decision-choice-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
}

.decision-choice {
  display: flex;
  min-height: 132px;
  padding: 1rem;
  text-align: left;
  flex-direction: column;
  gap: 0.45rem;
  color: var(--midnight);
  background: var(--cloud);
  border: 1px solid var(--border);
  border-radius: 12px;
  cursor: pointer;
  transition: transform 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
}

.decision-choice:hover:not(:disabled) {
  transform: translateY(-2px);
  border-color: var(--deep-sapphire);
  box-shadow: 0 8px 24px rgba(10, 43, 76, 0.10);
}

.decision-choice strong {
  color: var(--deep-sapphire);
  font-size: 0.95rem;
}

.decision-choice span {
  color: var(--slate);
  font-size: 0.84rem;
  line-height: 1.45;
}

.decision-choice.selected {
  color: white;
  background: var(--deep-sapphire);
  border-color: var(--deep-sapphire);
}

.decision-choice.selected strong,
.decision-choice.selected span {
  color: white;
}

.decision-choice:disabled {
  cursor: default;
}

.decision-confirmation {
  margin: 0.9rem 0 0;
  color: var(--slate);
  font-size: 0.84rem;
}

.advance-button:disabled {
  opacity: 0.58;
  cursor: not-allowed;
}

@media (max-width: 880px) {
  .decision-choice-grid {
    grid-template-columns: 1fr;
  }
}


/* Version 4.0.1 — defensive executive-decision loading state */
.decision-error-panel {
  border-top-color: #b42318;
}

.decision-error-panel .decision-status {
  color: #7a271a;
  background: #fef3f2;
  border-color: #fecdca;
}


/* Version 4.1 — bottom navigation and command action hierarchy */
.bottom-advance-zone {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  margin-top: 1.5rem;
  padding: 1.5rem 1.65rem;
  color: #fff;
  background: linear-gradient(135deg, var(--deep-sapphire), var(--midnight));
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: 18px;
  box-shadow: 0 14px 34px rgba(4, 24, 45, 0.25);
}

.bottom-advance-zone h2 {
  margin: 0.2rem 0 0.35rem;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
}

.bottom-advance-zone p {
  margin: 0;
  color: rgba(255,255,255,0.82);
  line-height: 1.5;
}

.bottom-advance-button {
  flex: 0 0 auto;
  min-width: 245px;
  min-height: 62px;
  padding: 0.95rem 1.25rem;
  font-size: 1rem;
  box-shadow: 0 8px 22px rgba(0,0,0,0.22);
}

.bottom-advance-button:disabled {
  opacity: 0.58;
  cursor: not-allowed;
}

.start-over-footer {
  justify-content: flex-end !important;
  margin-top: 3rem !important;
  padding: 1.5rem 0 0 !important;
  background: transparent !important;
  border-top: 1px solid rgba(255,255,255,0.16) !important;
}

.panel .start-over-footer,
.scorecard-panel > .start-over-footer {
  position: relative !important;
  left: auto !important;
  width: auto !important;
  margin: 3rem -2rem -2rem !important;
  padding: 1.5rem 2rem !important;
  background: var(--deep-sapphire) !important;
  border-top: 0 !important;
  justify-content: flex-end !important;
}

.start-over-button {
  min-width: 110px !important;
  color: #fff !important;
  background: transparent !important;
  border: 2px solid rgba(255,255,255,0.82) !important;
}

.start-over-button:hover {
  background: rgba(255,255,255,0.12) !important;
}

@media (max-width: 760px) {
  .bottom-advance-zone {
    align-items: stretch;
    flex-direction: column;
  }

  .bottom-advance-button {
    width: 100%;
  }

  .panel .start-over-footer,
  .scorecard-panel > .start-over-footer {
    margin-left: -1rem !important;
    margin-right: -1rem !important;
    margin-bottom: -1rem !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }
}


/* Version 5.0 command-flow redesign */
.operating-period-header{display:grid;grid-template-columns:1fr auto;gap:1rem 2rem;align-items:center;margin-bottom:1rem}
.operating-period-header h2{margin:.15rem 0 0}.period-counter{text-align:right}.period-counter span,.period-counter strong{display:block}
.condition-strip{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem}
.condition-item{padding:.75rem;border-radius:12px;border:1px solid var(--border);background:#f7f9fb}.condition-item span,.condition-item strong{display:block}.condition-item span{font-size:.76rem;color:var(--muted)}.condition-item strong{margin-top:.2rem;text-transform:uppercase;letter-spacing:.05em}.condition-good strong{color:#26734d}.condition-watch strong{color:#8a6113}.condition-risk strong{color:#a52a2a}
.executive-decision-panel{margin-bottom:1rem;border-top:5px solid var(--gold)}.briefing-summary{margin-bottom:1rem}.six-month-summary{margin:0 0 1rem}.summary-heading{display:flex;justify-content:space-between;gap:1rem}.summary-trend-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.65rem;margin-top:1rem}.summary-trend{padding:.75rem;border:1px solid var(--border);border-radius:10px}.summary-trend span,.summary-trend strong{display:block}.summary-trend span{color:var(--muted);font-size:.76rem}.summary-notes{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border)}.summary-notes p{margin:.3rem 0}
.instructor-panel{border:2px dashed #8f6f18;background:#fffaf0;margin-bottom:1rem}.instructor-panel summary{cursor:pointer;font-weight:700}.instructor-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;margin:1rem 0}.instructor-grid article{padding:.6rem;background:#fff;border:1px solid #ddcf9e;border-radius:8px}.instructor-grid span,.instructor-grid strong{display:block}.instructor-grid span{font-size:.72rem;color:#6b5a22}
@media(max-width:850px){.condition-strip,.summary-trend-grid,.instructor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.operating-period-header{grid-template-columns:1fr}.period-counter{text-align:left}.condition-strip,.summary-trend-grid,.instructor-grid{grid-template-columns:1fr}}

/* Version 5.0.1 — Current Operating Period formatting correction */
.operating-period-header {
  margin: 1.25rem 0;
  padding: 1.35rem 1.5rem;
  overflow: hidden;
}

.operating-period-header h2 {
  margin: 0.2rem 0 0;
  color: var(--midnight);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.55rem, 3vw, 2.15rem);
  font-weight: 500;
  line-height: 1.15;
}

.period-counter {
  min-width: 112px;
  padding: 0.75rem 1rem;
  text-align: center;
  background: var(--cloud);
  border: 1px solid var(--border);
  border-radius: 12px;
}

.period-counter span {
  color: var(--slate);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.period-counter strong {
  margin-top: 0.2rem;
  color: var(--midnight);
  font-size: 1.15rem;
}

.condition-strip {
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}

.condition-item {
  min-height: 76px;
  display: grid;
  align-content: center;
  text-align: center;
  background: var(--cloud);
}

@media (max-width: 560px) {
  .period-counter {
    width: 100%;
    text-align: left;
  }
}


/* Version 5.0.2 refinements */
.stakeholder-guide {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem;
  margin-top: 1.1rem;
}
.stakeholder-guide article {
  padding: .9rem 1rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #f7f9fb;
}
.stakeholder-guide strong,
.stakeholder-guide span { display: block; }
.stakeholder-guide span { margin-top: .25rem; color: var(--muted); line-height: 1.45; }

.workforce-stat-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.six-month-summary.standard-section-panel {
  margin: 0 0 1rem;
  padding: 1.5rem;
  border-radius: var(--radius, 16px);
}
.standard-panel-heading h2 { margin: .2rem 0 0; }
.summary-trend {
  background: #f7f9fb;
  border-left-width: 5px;
}
.summary-trend strong {
  margin-top: .25rem;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.summary-trend.summary-good { border-left-color: #2f7d53; background: #eef8f2; }
.summary-trend.summary-good strong { color: #246642; }
.summary-trend.summary-watch { border-left-color: #c18a1b; background: #fff8e8; }
.summary-trend.summary-watch strong { color: #805b12; }
.summary-trend.summary-risk { border-left-color: #b43b3b; background: #fff0f0; }
.summary-trend.summary-risk strong { color: #962f2f; }

@media (max-width: 850px) {
  .stakeholder-guide { grid-template-columns: 1fr; }
  .workforce-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}


/* Version 6.0 — unified executive command design system */
:root {
  --executive-surface: #ffffff;
  --executive-soft: #f5f7fa;
  --executive-border: #d8e0e8;
  --executive-ink: #13283c;
  --executive-muted: #667789;
  --executive-good: #2f7d53;
  --executive-watch: #b47d10;
  --executive-risk: #ad3434;
  --executive-radius: 16px;
  --executive-shadow: 0 10px 28px rgba(12, 38, 61, .09);
}

.content-shell > .panel,
.workforce-panel,
.organization-panel,
.executive-decision-panel,
.executive-briefing-panel,
.executive-period-panel {
  border-radius: var(--executive-radius);
  border: 1px solid var(--executive-border);
  box-shadow: var(--executive-shadow);
}

.executive-period-panel {
  margin: 1rem 0;
  padding: 1.5rem;
  background: var(--executive-surface);
}

.period-panel-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--executive-border);
}

.period-panel-heading h2,
.executive-briefing-panel h2,
.executive-decision-panel h2 {
  margin: .18rem 0 0;
  color: var(--executive-ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.45rem, 2.4vw, 2rem);
  font-weight: 500;
  line-height: 1.2;
}

.period-panel-subtitle,
.panel-intro {
  margin: .45rem 0 0;
  color: var(--executive-muted);
  line-height: 1.5;
}

.executive-indicator-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .75rem;
  margin-top: 1rem;
}

.executive-indicator {
  min-height: 108px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: .9rem;
  padding: .95rem;
  background: var(--executive-soft);
  border: 1px solid var(--executive-border);
  border-left: 5px solid var(--executive-border);
  border-radius: 12px;
}

.indicator-copy strong,
.indicator-copy span { display: block; }
.indicator-copy strong { color: var(--executive-ink); font-size: .9rem; }
.indicator-copy span { margin-top: .28rem; color: var(--executive-muted); font-size: .73rem; line-height: 1.35; }
.indicator-status { display: flex; align-items: center; gap: .4rem; font-size: .78rem; font-weight: 850; letter-spacing: .045em; text-transform: uppercase; }
.status-symbol { font-size: .82rem; }
.indicator-good { border-left-color: var(--executive-good); background: #eff8f3; }
.indicator-good .indicator-status { color: var(--executive-good); }
.indicator-watch { border-left-color: var(--executive-watch); background: #fff8e8; }
.indicator-watch .indicator-status { color: #875d0b; }
.indicator-risk { border-left-color: var(--executive-risk); background: #fff1f1; }
.indicator-risk .indicator-status { color: var(--executive-risk); }

.previous-period-panel,
.operating-period-panel { overflow: hidden; }
.period-context-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--executive-border);
}
.period-context-row p { margin: 0; color: var(--executive-muted); line-height: 1.45; }

.executive-briefing-panel { margin: 1rem 0; padding: 1.5rem; }
.executive-briefing-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  margin-top: 1rem;
}
.briefing-division {
  padding: 1rem;
  background: var(--executive-soft);
  border: 1px solid var(--executive-border);
  border-radius: 12px;
}
.briefing-division:last-child:nth-child(odd) { grid-column: 1 / -1; }
.briefing-division-heading { display: flex; align-items: center; gap: .55rem; color: var(--executive-ink); }
.briefing-marker { width: 8px; height: 8px; flex: 0 0 8px; border-radius: 50%; background: var(--deep-sapphire); }
.briefing-division p { margin: .55rem 0 0; color: var(--executive-muted); line-height: 1.55; }

.executive-decision-panel { border-top: 1px solid var(--executive-border); }
.decision-choice { border-radius: 12px; }

@media (max-width: 980px) {
  .executive-indicator-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .executive-indicator:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
  .period-panel-heading { flex-direction: column; }
  .period-counter { width: 100%; }
  .executive-indicator-grid,
  .executive-briefing-grid,
  .period-context-row { grid-template-columns: 1fr; }
  .executive-indicator:last-child:nth-child(odd),
  .briefing-division:last-child:nth-child(odd) { grid-column: auto; }
}

/* Version 6.0.2 — Step 1 feedback and decision consistency */
.revision-feedback-panel {
  display: block;
}

.revision-feedback-title {
  margin-top: .2rem;
}

.revision-feedback-grid .stakeholder-card {
  height: 100%;
}

.decision-choice:disabled {
  cursor: not-allowed;
  opacity: .58;
  box-shadow: none;
}

.decision-choice-restriction {
  display: block;
  margin-top: .6rem;
  color: var(--danger);
  font-size: .72rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.35;
}

/* Sapphire City v6.1 classroom entry */
.classroom-entry{max-width:900px;margin:2rem auto}.student-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.5rem}.student-entry-grid label{display:flex;flex-direction:column;gap:.4rem;font-weight:700}.student-entry-grid input{font:inherit;padding:.8rem .9rem;border:1px solid var(--border);border-radius:8px;background:#fff}.student-entry-actions{grid-column:1/-1;display:flex;justify-content:flex-end;margin-top:.5rem}.classroom-message{margin-top:1rem;padding:.8rem 1rem;border:1px solid #b04a4a;border-radius:8px;background:#fff5f5;color:#7a2020}@media(max-width:700px){.student-entry-grid{grid-template-columns:1fr}}
