@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Baskerville:wght@400;700&display=swap");
:root {
  color-scheme: dark;
  --bg: #06130f;
  --panel: #0b2019;
  --line: #294438;
  --ink: #eee9d9;
  --muted: #a5b8a9;
  --gold: #d6b67a;
  --red: #a54642;
  --green: #a8cfae;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  background:
    radial-gradient(ellipse at 90% 0, #17372a, transparent 55%), var(--bg);
  color: var(--ink);
  font:
    16px/1.6 "DM Sans",
    system-ui,
    sans-serif;
  min-height: 100vh;
}
a {
  color: inherit;
  text-underline-offset: 5px;
}
button,
input,
select,
textarea {
  font: inherit;
}
button,
a,
input,
select,
textarea {
  touch-action: manipulation;
}
button {
  cursor: pointer;
  border: 1px solid transparent;
  background: var(--gold);
  color: #111d15;
  padding: 12px 19px;
  border-radius: 5px;
  font-weight: 700;
  min-height: 46px;
}
button:hover {
  filter: brightness(1.12);
}
button:disabled {
  opacity: 0.48;
  cursor: not-allowed;
}
button.quiet {
  background: transparent;
  border-color: var(--line);
  color: var(--ink);
}
button.danger {
  background: #8d3734;
  color: #fff;
}
.masthead {
  max-width: 1320px;
  margin: auto;
  padding: 26px 36px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--line);
  gap: 20px;
}
.brand {
  text-decoration: none;
  letter-spacing: 0.16em;
  font-weight: 700;
  font-size: 20px;
}
.brand b {
  color: var(--gold);
}
.brand small {
  display: block;
  font:
    9px/2.2 ui-monospace,
    monospace;
  letter-spacing: 0.22em;
  color: var(--muted);
}
nav {
  display: flex;
  align-items: center;
  gap: 20px;
}
main {
  max-width: 1248px;
  margin: 38px auto 80px;
  padding: 0 36px;
}
.eyebrow,
.tag {
  font:
    12px/1.6 ui-monospace,
    monospace;
  letter-spacing: 0.13em;
  color: var(--gold);
  text-transform: uppercase;
}
.eyebrow {
  margin-bottom: 24px;
}
.tag {
  border: 1px solid var(--line);
  padding: 5px 9px;
  display: inline-block;
  border-radius: 3px;
}
h1,
h2,
h3,
p {
  margin-top: 0;
}
h1,
h2 {
  font-family: "Libre Baskerville", Georgia, serif;
  font-weight: 400;
  line-height: 1.25;
}
h1 {
  font-size: clamp(30px, 4vw, 48px);
  letter-spacing: -0.035em;
  margin-bottom: 18px;
}
h2 {
  font-size: 27px;
}
h3 {
  font-size: 18px;
  line-height: 1.4;
}
p {
  color: var(--muted);
}
.intro {
  max-width: 650px;
  font-size: 18px;
}
.grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
.grid.three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.card {
  background: linear-gradient(130deg, #10281f, #091b15);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 26px;
  min-width: 0;
}
.card p:last-child {
  margin-bottom: 0;
}
.choice {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}
.choice p {
  flex: 1;
}
.number {
  font:
    12px ui-monospace,
    monospace;
  color: var(--gold);
}
.auth-wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start;
  margin: 45px 0;
}
.auth-wrap .card {
  max-width: 470px;
  width: 100%;
}
.auth-note {
  border-left: 2px solid var(--gold);
  padding-left: 20px;
  margin-top: 32px;
  max-width: 420px;
}
.fields {
  display: grid;
  gap: 17px;
}
label {
  display: block;
  color: var(--ink);
  font-size: 14px;
}
input:not([type="checkbox"]),
select,
textarea {
  display: block;
  background: #06140f;
  border: 1px solid #46604e;
  color: var(--ink);
  border-radius: 4px;
  padding: 12px 12px;
  width: 100%;
  margin-top: 7px;
  min-height: 47px;
}
textarea {
  resize: vertical;
  min-height: 100px;
}
input[type="checkbox"] {
  accent-color: var(--gold);
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  margin: 3px 0;
}
.check {
  display: flex;
  gap: 10px;
  align-items: flex-start;
}
.help {
  font-size: 13px;
  color: var(--muted);
  margin: 5px 0 0;
}
.actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 20px;
  align-items: center;
}
.link-button {
  background: none;
  color: var(--gold);
  padding: 5px 0;
  text-decoration: underline;
  text-underline-offset: 4px;
  font-weight: 500;
}
.section {
  margin-top: 34px;
}
.section-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 18px;
}
.section-head h2 {
  margin-bottom: 0;
}
.stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid var(--line);
  border-radius: 7px;
  margin: 30px 0;
  background: #091b15;
}
.stats div {
  padding: 18px;
  border-right: 1px solid var(--line);
}
.stats div:last-child {
  border: 0;
}
.stats small {
  display: block;
  font:
    12px/1.8 ui-monospace,
    monospace;
  color: var(--muted);
  letter-spacing: 0.08em;
}
.stats strong {
  font-size: 17px;
  font-weight: 500;
}
.tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 24px 0;
}
.tabs button {
  background: transparent;
  color: var(--muted);
  border: 1px solid var(--line);
}
.tabs button[aria-selected="true"] {
  background: var(--gold);
  color: #101c14;
}
.stack {
  display: grid;
  gap: 16px;
}
.message time {
  font:
    12px ui-monospace,
    monospace;
  color: var(--muted);
}
.message h3 {
  margin: 14px 0 8px;
}
.pre {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.empty {
  padding: 30px;
  border: 1px dashed var(--line);
  border-radius: 7px;
  color: var(--muted);
}
.vault {
  background:
    radial-gradient(ellipse at 50% 0, #27352d, transparent 70%), #0b1510;
  border: 1px solid #6c7252;
}
.vault-display {
  border: 1px solid var(--line);
  background: #030b07;
  padding: 28px;
  margin: 22px 0;
  text-align: center;
  font:
    clamp(20px, 4vw, 32px) ui-monospace,
    monospace;
  letter-spacing: 0.18em;
  color: var(--gold);
}
.private {
  border-left: 3px solid var(--gold);
}
#notice:not(:empty) {
  padding: 14px 18px;
  border: 1px solid var(--gold);
  border-radius: 6px;
  background: #213025;
  margin-bottom: 24px;
  white-space: pre-wrap;
}
#notice.error {
  border-color: #d47970;
  background: #311e1b;
  color: #ffcac1;
}
footer {
  max-width: 1248px;
  padding: 24px 36px;
  margin: auto;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 12px;
  display: flex;
  justify-content: space-between;
  gap: 20px;
}
.host-grid {
  display: grid;
  grid-template-columns: 230px 1fr;
  gap: 28px;
}
.host-grid aside button {
  display: block;
  width: 100%;
  text-align: left;
  margin-bottom: 8px;
}
.host-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.host-table td,
.host-table th {
  padding: 12px;
  text-align: left;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}
details {
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 16px;
}
summary {
  cursor: pointer;
  color: var(--gold);
}
details > div {
  margin-top: 18px;
}
.corruption-banner {
  padding: 14px 18px;
  border-left: 3px solid #b65349;
  background: #301d19;
  color: #f6c2a6;
  margin: 20px 0;
  font:
    12px/1.7 ui-monospace,
    monospace;
  letter-spacing: 0.08em;
}
body[data-corruption="4"] {
  --line: #634336;
}
body[data-corruption="3"] .masthead,
body[data-corruption="4"] .masthead {
  border-color: #b65349;
}
*:focus-visible {
  outline: 3px solid #f2d396;
  outline-offset: 4px;
}
[hidden] {
  display: none !important;
}
@media (max-width: 800px) {
  .masthead {
    padding: 20px;
  }
  .auth-wrap {
    grid-template-columns: 1fr;
    gap: 25px;
    margin-top: 15px;
  }
  .auth-wrap .card {
    max-width: none;
  }
  .grid.three {
    grid-template-columns: 1fr 1fr;
  }
  .host-grid {
    grid-template-columns: 1fr;
  }
  .host-grid aside {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }
  .host-grid aside button {
    width: auto;
  }
  main {
    padding: 0 20px;
    margin-top: 28px;
  }
  .stats {
    grid-template-columns: 1fr 1fr;
  }
  .stats div:nth-child(2) {
    border-right: 0;
  }
  .stats div:nth-child(-n + 2) {
    border-bottom: 1px solid var(--line);
  }
}
@media (max-width: 520px) {
  .grid,
  .grid.three {
    grid-template-columns: 1fr;
  }
  .card {
    padding: 22px;
  }
  .masthead nav {
    gap: 10px;
    font-size: 13px;
  }
  .brand {
    font-size: 16px;
  }
  .brand small {
    font-size: 7px;
  }
  .masthead {
    gap: 10px;
  }
  .masthead button {
    padding: 8px 10px;
  }
  h2 {
    font-size: 23px;
  }
  .stats div {
    padding: 14px;
  }
  .stats strong {
    font-size: 14px;
  }
  .tabs {
    gap: 6px;
  }
  .tabs button {
    padding: 9px 12px;
    font-size: 13px;
  }
  .section-head {
    align-items: flex-start;
  }
  footer {
    flex-direction: column;
    padding: 24px 20px;
    gap: 4px;
  }
  .host-table {
    font-size: 12px;
  }
  .host-table td,
  .host-table th {
    padding: 8px 4px;
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    scroll-behavior: auto !important;
    animation: none !important;
    transition: none !important;
  }
}

/* Keep staff navigation and wide form controls within narrow screens. */
.masthead {
  flex-wrap: wrap;
}
.masthead nav {
  flex-wrap: wrap;
  min-width: 0;
  max-width: 100%;
}
.host-grid > section,
.fields,
label {
  min-width: 0;
}
select {
  max-width: 100%;
}
@media (max-width: 520px) {
  .masthead nav {
    width: 100%;
    justify-content: flex-start;
    gap: 10px 18px;
  }
}
.account-editor {
  margin-top: 24px;
}
.account-editor > summary {
  font-weight: 700;
}
.account-editor .account-edit-form {
  grid-template-columns: minmax(180px, 1fr) minmax(150px, 0.65fr) auto;
  align-items: end;
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
}
.account-editor .account-edit-form:last-child {
  border-bottom: 0;
}
.account-editor .account-edit-form > .check,
.account-editor .account-edit-form > .help {
  grid-column: 1/-1;
}
.account-editor .account-edit-form > button {
  align-self: end;
}
.account-editor h3 {
  margin-bottom: 4px;
}
@media (max-width: 720px) {
  .account-editor .account-edit-form {
    grid-template-columns: 1fr;
  }
  .account-editor .account-edit-form > .check,
  .account-editor .account-edit-form > .help {
    grid-column: auto;
  }
  .account-editor .account-edit-form > button {
    width: 100%;
  }
}

/* Make the required registration path visible and keep couple handoffs easy to follow. */
.registration-progress {
  margin: 0 0 34px;
  padding: 18px 20px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #091b15;
}
.registration-progress > p {
  margin: 0 0 13px;
  font:
    11px/1.4 ui-monospace,
    monospace;
  letter-spacing: 0.12em;
  color: var(--gold);
}
.registration-progress ol {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
}
.registration-progress li {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  color: var(--muted);
  font-size: 12px;
}
.registration-progress li span {
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  border: 1px solid #46604e;
  border-radius: 50%;
  font:
    11px ui-monospace,
    monospace;
}
.registration-progress li strong {
  overflow: hidden;
  text-overflow: ellipsis;
}
.registration-progress li.complete {
  color: var(--ink);
}
.registration-progress li.complete span {
  border-color: var(--gold);
  background: var(--gold);
  color: #101c14;
}
.registration-progress li.current {
  color: var(--gold);
}
.registration-progress li.current span {
  border: 2px solid var(--gold);
  color: var(--gold);
}
.registration-callout {
  max-width: 760px;
  margin: 22px 0 30px;
  padding: 18px 20px;
  border-left: 4px solid var(--gold);
  background: #213025;
}
.registration-callout strong {
  display: block;
  color: var(--gold);
  font-size: 15px;
}
.registration-callout p {
  margin: 6px 0 0;
  color: var(--ink);
}
@media (max-width: 520px) {
  .registration-progress {
    padding: 16px 12px;
  }
  .registration-progress ol {
    gap: 4px;
  }
  .registration-progress li {
    display: grid;
    justify-items: center;
    gap: 5px;
    text-align: center;
    font-size: 9px;
  }
  .registration-progress li strong {
    width: 100%;
  }
  .registration-callout {
    padding: 16px;
  }
}

/* Detective account assessment workspace. */
.account-dashboard {
  display: grid;
  gap: 20px;
}
.account-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 4px;
}
.account-heading .eyebrow {
  display: block;
  margin-bottom: 8px;
}
.account-heading h2 {
  font-size: clamp(28px, 4vw, 42px);
  margin-bottom: 8px;
}
.account-heading p {
  max-width: 720px;
  margin: 0;
}
.account-heading > button {
  flex: 0 0 auto;
}
.account-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
  background: #091b15;
}
.account-metrics div {
  display: grid;
  gap: 2px;
  padding: 18px 20px;
  border-right: 1px solid var(--line);
}
.account-metrics div:last-child {
  border-right: 0;
}
.account-metrics small {
  font:
    11px/1.5 ui-monospace,
    monospace;
  letter-spacing: 0.11em;
  color: var(--muted);
}
.account-metrics strong {
  font:
    32px/1.1 "Libre Baskerville",
    Georgia,
    serif;
  color: var(--ink);
}
.account-metrics span {
  font-size: 12px;
  color: var(--muted);
}
.account-metrics .good strong {
  color: var(--green);
}
.account-metrics .warn strong {
  color: #ef9b86;
}
.attention-queue {
  display: grid;
  grid-template-columns: minmax(190px, 0.55fr) minmax(0, 1.45fr);
  gap: 20px;
  align-items: start;
  padding: 20px;
  border: 1px solid #75483e;
  border-left: 4px solid #d26b59;
  border-radius: 9px;
  background: linear-gradient(120deg, #2e1c18, #111d17);
}
.attention-queue h3 {
  margin: 9px 0 0;
}
.attention-queue > p {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
}
.account-jump {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 40px;
  padding: 8px 11px;
  background: #17271f;
  color: var(--ink);
  border-color: #75483e;
  text-align: left;
}
.account-jump span {
  color: #efb0a3;
  font-weight: 500;
  font-size: 12px;
}
.account-tools {
  position: sticky;
  top: 8px;
  z-index: 4;
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  gap: 16px;
  align-items: end;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: rgba(6, 19, 15, 0.96);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(8px);
}
.account-search span {
  font:
    11px/1.5 ui-monospace,
    monospace;
  letter-spacing: 0.1em;
  color: var(--muted);
}
.account-search input {
  margin-top: 5px;
  min-height: 42px;
}
.account-filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}
.account-filters button {
  min-height: 39px;
  padding: 8px 11px;
  font-size: 12px;
}
.account-list {
  display: grid;
  gap: 10px;
}
.account-row {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: linear-gradient(120deg, #10281f, #091b15);
  overflow: hidden;
}
.account-row-main {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(230px, 0.85fr);
  gap: 20px;
  align-items: center;
  padding: 18px 20px 13px;
}
.account-identity {
  display: flex;
  gap: 13px;
  align-items: center;
  min-width: 0;
}
.account-identity h3 {
  margin: 0 0 2px;
  font-size: 17px;
  overflow-wrap: anywhere;
}
.account-identity p,
.account-assessment p {
  margin: 0;
  font-size: 12px;
}
.account-avatar {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border: 1px solid #526a59;
  border-radius: 50%;
  background: #07150f;
  color: var(--gold);
  font:
    12px ui-monospace,
    monospace;
  letter-spacing: 0.04em;
}
.account-assessment {
  text-align: right;
  min-width: 0;
}
.account-state {
  display: inline-block;
  padding: 4px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font:
    10px/1.4 ui-monospace,
    monospace;
  letter-spacing: 0.08em;
}
.account-state.ready {
  border-color: #447451;
  color: #bde1c2;
  background: #11281a;
}
.account-state.attention {
  border-color: #8d5044;
  color: #ffc2b6;
  background: #351d19;
}
.account-state.staff {
  border-color: #6e6042;
  color: #f1d59e;
  background: #292316;
}
.account-assessment p {
  margin-top: 6px;
  overflow-wrap: anywhere;
}
.account-facts {
  display: grid;
  grid-template-columns: 1fr 1fr 1.45fr 0.85fr 0.9fr;
  border-top: 1px solid rgba(70, 96, 78, 0.65);
  border-bottom: 1px solid rgba(70, 96, 78, 0.65);
  background: rgba(3, 12, 8, 0.22);
}
.account-facts span {
  min-width: 0;
  padding: 10px 14px;
  color: var(--ink);
  font-size: 12px;
  overflow-wrap: anywhere;
  border-right: 1px solid rgba(70, 96, 78, 0.45);
}
.account-facts span:last-child {
  border-right: 0;
}
.account-facts b {
  display: block;
  margin-bottom: 2px;
  color: var(--muted);
  font:
    9px/1.5 ui-monospace,
    monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.account-review {
  margin: 0;
  border: 0;
  border-radius: 0;
  padding: 0;
}
.account-review > summary {
  padding: 11px 20px;
  font-size: 13px;
  font-weight: 700;
}
.account-review > div {
  margin: 0;
  padding: 4px 20px 22px;
  border-top: 1px solid var(--line);
}
.account-member-access {
  display: flex;
  gap: 12px 26px;
  flex-wrap: wrap;
  padding: 14px 0;
}
.account-member-access p {
  display: grid;
  margin: 0;
  font-size: 13px;
}
.account-member-access span {
  font-size: 11px;
  color: var(--muted);
}
.account-review .account-editor {
  margin-top: 0;
}
.account-review .account-editor > summary {
  font-size: 13px;
}
.account-review .section {
  margin-top: 12px;
}
@media (max-width: 1050px) {
  .account-tools {
    position: static;
    grid-template-columns: 1fr;
  }
  .account-filters {
    justify-content: flex-start;
  }
  .account-facts {
    grid-template-columns: repeat(3, 1fr);
  }
  .account-facts span:nth-child(3) {
    border-right: 0;
  }
  .account-facts span:nth-child(-n + 3) {
    border-bottom: 1px solid rgba(70, 96, 78, 0.45);
  }
}
@media (max-width: 720px) {
  .account-heading {
    display: grid;
  }
  .account-heading > button {
    width: 100%;
  }
  .account-metrics {
    grid-template-columns: 1fr 1fr;
  }
  .account-metrics div:nth-child(2) {
    border-right: 0;
  }
  .account-metrics div:nth-child(-n + 2) {
    border-bottom: 1px solid var(--line);
  }
  .attention-queue {
    grid-template-columns: 1fr;
  }
  .account-row-main {
    grid-template-columns: 1fr;
  }
  .account-assessment {
    text-align: left;
  }
  .account-facts {
    grid-template-columns: 1fr 1fr;
  }
  .account-facts span,
  .account-facts span:nth-child(3) {
    border-right: 1px solid rgba(70, 96, 78, 0.45);
    border-bottom: 1px solid rgba(70, 96, 78, 0.45);
  }
  .account-facts span:nth-child(2n) {
    border-right: 0;
  }
  .account-facts span:last-child {
    border-bottom: 0;
  }
  .account-review > summary {
    padding: 12px 16px;
  }
  .account-review > div {
    padding: 4px 16px 18px;
  }
}
@media (max-width: 420px) {
  .account-metrics strong {
    font-size: 26px;
  }
  .account-metrics div {
    padding: 14px;
  }
  .account-tools {
    padding: 12px;
  }
  .account-filters button {
    flex: 1 1 auto;
  }
  .account-row-main {
    padding: 16px 14px 12px;
  }
  .account-facts {
    grid-template-columns: 1fr;
  }
  .account-facts span,
  .account-facts span:nth-child(3) {
    border-right: 0;
  }
  .account-jump {
    width: 100%;
    justify-content: space-between;
  }
  .attention-queue > p {
    display: grid;
  }
  .account-member-access {
    display: grid;
  }
}

/* Heat, field reports, Grinch intelligence, and collaborative account recovery. */
.security-alert {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px;
  margin: 18px 0;
  padding: 20px 22px;
  border: 1px solid #8d5044;
  border-left: 5px solid #d36f5e;
  border-radius: 9px;
  background: linear-gradient(115deg, #351d19, #101d17);
}
.security-alert.report {
  border-color: #78633e;
  border-left-color: var(--gold);
  background: linear-gradient(115deg, #292316, #101d17);
}
.security-alert.relay {
  border-color: #436b66;
  border-left-color: #79b7ac;
  background: linear-gradient(115deg, #102a27, #101d17);
}
.security-alert h2 {
  margin: 5px 0 6px;
  font-size: 23px;
}
.security-alert p {
  margin: 0;
  color: var(--ink);
}
.security-alert button {
  white-space: nowrap;
}
.portal-navigation .tabs button.grinch-tab {
  border-color: #b45249;
  color: #ffc5b8;
  background: #2d1917;
}
.portal-navigation .tabs button.grinch-tab[aria-selected="true"] {
  background: #9b413a;
  color: white;
}
.tab-alert {
  display: grid;
  place-items: center;
  width: 19px;
  height: 19px;
  border-radius: 50%;
  background: #b45249;
  color: white;
  font:
    700 11px ui-monospace,
    monospace;
}
.module-heading {
  margin-bottom: 24px;
}
.module-heading h2 {
  font-size: clamp(30px, 4vw, 44px);
  margin: 8px 0;
}
.module-heading p {
  margin: 0;
}
.field-report-card {
  max-width: 900px;
  margin: auto;
  padding: clamp(22px, 4vw, 42px);
}
.field-report-heading {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 24px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 20px;
  margin-bottom: 20px;
}
.field-report-heading h2 {
  font-size: clamp(27px, 4vw, 40px);
  margin: 8px 0 0;
}
.report-stamp {
  flex: none;
  padding: 9px 13px;
  border: 2px solid;
  border-radius: 4px;
  font:
    700 12px ui-monospace,
    monospace;
  letter-spacing: 0.12em;
  transform: rotate(2deg);
}
.report-stamp.filed {
  border-color: #6da77a;
  color: #bde1c2;
}
.report-stamp.due {
  border-color: #d36f5e;
  color: #ffc2b6;
}
.report-members {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 20px 0;
}
.status-pill {
  display: inline-flex;
  padding: 5px 9px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  font:
    10px/1.4 ui-monospace,
    monospace;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}
.status-pill.ready {
  border-color: #447451;
  color: #bde1c2;
}
.status-pill.waiting {
  border-color: #8d5044;
  color: #ffc2b6;
}
.filed-report {
  display: grid;
  gap: 16px;
  margin: 24px 0;
  padding: 24px;
  border-left: 3px solid var(--gold);
  background: #07150f;
}
.filed-report p {
  margin: 0;
  color: var(--ink);
}
.field-exchanges {
  display: grid;
  gap: 16px;
  margin: 0 auto 28px;
  max-width: 900px;
}
.field-exchange {
  border-left: 4px solid #d36f5e;
}
.field-exchange.complete {
  border-left-color: #5e9b69;
}
.field-exchange h3 {
  margin: 10px 0 18px;
  font:
    normal 23px/1.4 "Libre Baskerville",
    Georgia,
    serif;
}
.field-exchange details {
  background: #07150f;
}
.field-exchange details p {
  color: var(--ink);
}
.notes-security {
  margin: 16px 0 22px;
  padding: 14px 16px;
  border: 1px solid #84683f;
  border-radius: 6px;
  background: #292316;
  color: #e8dcc1;
  font-size: 13px;
}
.notes-security b {
  color: #f2ce8b;
}
.lockdown-hold {
  margin-bottom: 20px;
  border-color: #9b4d46;
  color: #ffc8bd;
}
.recovery-layout {
  display: grid;
  gap: 30px;
}
.inbound-relays {
  display: grid;
  gap: 14px;
}
.relay-card {
  border-left: 4px solid #79b7ac;
}
.relay-card.complete {
  border-left-color: #5e9b69;
}
.signal-word {
  display: inline-grid;
  gap: 2px;
  margin: 10px 0 18px;
  padding: 14px 18px;
  border: 1px solid #8b744a;
  border-radius: 5px;
  background: #050e0a;
}
.signal-word small {
  font:
    9px ui-monospace,
    monospace;
  letter-spacing: 0.12em;
  color: var(--muted);
}
.signal-word strong {
  font:
    700 22px ui-monospace,
    monospace;
  letter-spacing: 0.18em;
  color: #f4d793;
}
.recovery-console {
  padding: clamp(22px, 4vw, 40px);
  border-color: #49736c;
}
.relay-start,
.burn-advantage,
.counter-signal {
  margin-top: 24px;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #07150f;
}
.burn-advantage {
  border-color: #77463e;
}
.relay-progress {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin: 24px 0;
}
.relay-step {
  padding: 20px;
  border: 1px dashed #526a59;
  border-radius: 8px;
  background: #07150f;
}
.relay-step.complete {
  border-style: solid;
  border-color: #5e9b69;
}
.relay-step > span {
  font:
    10px ui-monospace,
    monospace;
  letter-spacing: 0.12em;
  color: var(--gold);
}
.relay-step h3 {
  margin: 6px 0;
}
.relay-step blockquote {
  margin: 14px 0 0;
  padding-left: 14px;
  border-left: 2px solid #526a59;
  color: var(--muted);
}
.relay-wait {
  padding-left: 4px;
}
.heat-meter {
  display: grid;
  grid-template-columns: auto auto;
  align-items: center;
  justify-items: end;
  gap: 3px 9px;
  min-width: 118px;
}
.heat-number {
  grid-row: 1/3;
  font:
    42px/1 "Libre Baskerville",
    Georgia,
    serif;
  color: var(--ink);
}
.heat-dots {
  display: flex;
  gap: 4px;
}
.heat-dots i {
  width: 10px;
  height: 10px;
  border: 1px solid #6e7a69;
  border-radius: 50%;
  background: #12231b;
}
.heat-dots i.hot {
  border-color: #d16a5e;
  background: #d16a5e;
  box-shadow: 0 0 8px #d16a5e66;
}
.heat-meter b {
  font:
    9px ui-monospace,
    monospace;
  letter-spacing: 0.1em;
  color: var(--muted);
}
.grinch-console {
  display: grid;
  gap: 22px;
}
.grinch-command {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: center;
  padding: 30px;
  border: 1px solid #8e403a;
  border-radius: 10px;
  background:
    radial-gradient(circle at 90% 20%, #5a201b99, transparent 38%),
    linear-gradient(120deg, #301916, #0b1712);
}
.grinch-command h2 {
  margin: 7px 0;
  font-size: clamp(34px, 5vw, 54px);
}
.grinch-command p {
  max-width: 700px;
  margin: 0;
  color: #e5cbc3;
}
.action-budget {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 15px 18px;
  border: 1px solid #bd5c51;
  border-radius: 7px;
  background: #170d0b;
}
.action-budget strong {
  font:
    48px/1 "Libre Baskerville",
    Georgia,
    serif;
  color: #ffc2b6;
}
.action-budget span {
  font:
    10px/1.5 ui-monospace,
    monospace;
  letter-spacing: 0.1em;
  color: #e6aaa0;
}
.grinch-rules {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid #623a34;
  border-radius: 8px;
  overflow: hidden;
  background: #160f0d;
}
.grinch-rules article {
  display: grid;
  gap: 5px;
  padding: 17px;
  border-right: 1px solid #623a34;
}
.grinch-rules article:last-child {
  border: 0;
}
.grinch-rules b {
  color: #f3d2c9;
}
.grinch-rules span {
  font-size: 12px;
  color: #bfaaa5;
}
.grinch-target-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.grinch-target {
  display: grid;
  align-content: start;
  gap: 16px;
  padding: 23px;
  border: 1px solid #4b4237;
  border-top: 4px solid #527860;
  border-radius: 9px;
  background: linear-gradient(140deg, #111e17, #0a1410);
}
.grinch-target.traceable {
  border-top-color: #d2a557;
}
.grinch-target.exposed {
  border-top-color: #c9574d;
  background: linear-gradient(140deg, #281512, #0a1410);
}
.target-heading {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: start;
}
.target-heading h3 {
  margin: 8px 0 2px;
  font-size: 21px;
}
.target-heading p {
  margin: 0;
}
.intel-counts {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.intel-counts span {
  padding: 6px 8px;
  border: 1px solid #453a32;
  border-radius: 4px;
  background: #070f0b;
  color: #b9aaa4;
  font-size: 10px;
}
.intel-counts b {
  color: #f0d6ce;
}
.automatic-access {
  margin: 0;
  padding: 10px 12px;
  border: 1px solid #7e3b35;
  background: #291512;
  color: #ffc2b6;
  font:
    10px/1.5 ui-monospace,
    monospace;
  letter-spacing: 0.08em;
}
.breached-file {
  border-color: #86463e;
  background: #0c120e;
}
.breached-file > summary {
  font-weight: 700;
  color: #ffc2b6;
}
.intel-vault {
  display: grid;
  gap: 22px;
}
.intel-vault section {
  display: grid;
  gap: 8px;
}
.intel-vault h4 {
  margin: 0;
  color: #f1c7bb;
  text-transform: uppercase;
  font:
    11px ui-monospace,
    monospace;
  letter-spacing: 0.1em;
}
.intel-vault article {
  display: grid;
  gap: 6px;
  padding: 13px;
  border-left: 2px solid #6c493f;
  background: #07100c;
}
.intel-vault article p {
  margin: 0;
  font-size: 12px;
}
.intel-vault article small {
  color: #8f9e92;
}
.intel-vault .empty {
  padding: 14px;
}
.grinch-constraint {
  padding: 18px;
  border-top: 1px solid #623a34;
  color: #ad9b96;
  font-size: 12px;
}
@media (max-width: 860px) {
  .security-alert {
    grid-template-columns: 1fr;
  }
  .security-alert button {
    width: 100%;
  }
  .grinch-target-grid {
    grid-template-columns: 1fr;
  }
  .grinch-command {
    grid-template-columns: 1fr;
  }
  .action-budget {
    justify-self: start;
  }
  .grinch-rules {
    grid-template-columns: 1fr;
  }
  .grinch-rules article {
    border-right: 0;
    border-bottom: 1px solid #623a34;
  }
  .relay-progress {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 520px) {
  .field-report-heading,
  .target-heading {
    display: grid;
  }
  .report-stamp {
    justify-self: start;
  }
  .heat-meter {
    justify-items: start;
  }
  .security-alert {
    padding: 18px;
  }
  .relay-start,
  .burn-advantage,
  .counter-signal {
    padding: 18px;
  }
  .grinch-command {
    padding: 22px;
  }
  .grinch-target {
    padding: 18px;
  }
  .action-budget {
    width: 100%;
  }
}
/* Cinematic Case Briefings, private Grinch conversion, and tactile advantages. */
.briefing-shell {
  display: grid;
  gap: 24px;
}
.briefing-schedule {
  padding: 20px;
  border: 1px solid #806b42;
  border-radius: 10px;
  background: linear-gradient(135deg, #282216, #0b1812);
  box-shadow: 0 18px 45px #0004;
}
.briefing-schedule > div {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  margin: 13px 0;
  background: #806b4266;
}
.briefing-schedule section {
  display: grid;
  gap: 5px;
  padding: 14px;
  background: #0b1812;
}
.briefing-schedule small {
  font:
    9px/1.5 ui-monospace,
    monospace;
  letter-spacing: 0.12em;
  color: #c8a968;
}
.briefing-schedule b {
  font-size: 13px;
}
.briefing-schedule p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}
.case-briefing {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid #806b42;
  border-radius: 12px;
  background: #0b1712;
  box-shadow: 0 28px 70px #0008;
}
.case-briefing:before {
  content: "";
  position: absolute;
  z-index: -2;
  inset: 0 0 auto;
  height: 360px;
  background:
    linear-gradient(
      90deg,
      rgba(3, 13, 9, 0.96) 0%,
      rgba(3, 13, 9, 0.76) 40%,
      rgba(3, 13, 9, 0.14)
    ),
    linear-gradient(0deg, #0b1712 0%, transparent 45%),
      url("../assets/briefings/case-briefing-transmission.webp") center/cover
      no-repeat;
}
.case-briefing > header {
  min-height: 290px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 28px;
  padding: 40px;
}
.case-briefing > header h2 {
  max-width: 520px;
  margin: 10px 0;
  font-size: clamp(40px, 7vw, 72px);
  text-shadow: 0 4px 22px #000;
}
.briefing-deadline {
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border: 1px solid #d4b66e;
  background: #07110dcc;
  color: #d4b66e;
  font:
    10px/1.4 ui-monospace,
    monospace;
  letter-spacing: 0.12em;
  text-align: right;
}
.grinch-dispatch {
  margin: 0 40px 28px;
  padding: 28px;
  border-left: 4px solid #a64940;
  background: #221512ed;
  color: #f0dbd4;
  box-shadow: 0 16px 35px #0005;
}
.detective-annotation {
  margin: 0 40px 28px;
  padding: 20px 22px;
  border: 1px solid #526a59;
  background: #0d2119;
  transform: rotate(-0.35deg);
}
.detective-annotation > span,
.generated-advantage > span {
  font:
    10px ui-monospace,
    monospace;
  letter-spacing: 0.12em;
  color: var(--gold);
}
.case-briefing .report-members,
.case-briefing .briefing-form,
.case-briefing .briefing-locked {
  margin: 20px 40px 40px;
}
.lead-options,
.approach-options {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.approach-options {
  grid-template-columns: repeat(2, 1fr);
}
.lead-options label,
.approach-options label {
  cursor: pointer;
}
.lead-options input,
.approach-options input {
  position: absolute;
  opacity: 0;
}
.lead-options span,
.approach-options span {
  display: grid;
  gap: 5px;
  height: 100%;
  padding: 17px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #07150f;
}
.lead-options input:checked + span,
.approach-options input:checked + span {
  border-color: var(--gold);
  box-shadow:
    inset 0 0 0 1px var(--gold),
    0 0 25px #d2ac5a22;
}
.lead-options small,
.approach-options small {
  color: var(--muted);
}
.briefing-form fieldset {
  margin: 24px 0;
  border: 0;
  padding: 0;
}
.briefing-form legend {
  margin-bottom: 10px;
  font-weight: 700;
}
.secondary-lead {
  display: grid;
  gap: 8px;
}
.briefing-locked {
  padding: 28px;
  border: 1px solid #4f7458;
  background: #10241a;
}
.generated-advantage,
.advantage-issued {
  margin-top: 24px;
  padding: 24px;
  border: 1px solid #d5b768;
  background:
    radial-gradient(circle at 95% 5%, #d5b76822, transparent 38%), #2a2417;
  box-shadow: 0 0 32px #d5b7681c;
}
.briefing-archive {
  display: grid;
  gap: 12px;
}
.advantage-console {
  position: relative;
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 24px;
  margin: 28px 0;
  padding: 30px;
  border: 1px solid #dfbf69;
  border-radius: 12px;
  background:
    radial-gradient(circle at 8% 15%, #e9c76d2b, transparent 28%),
    linear-gradient(125deg, #332917, #0b1712 68%);
  box-shadow:
    0 22px 55px #0007,
    inset 0 0 45px #d9b6570b;
  overflow: hidden;
}
.advantage-console:after {
  content: "FIELD AUTHORITY";
  position: absolute;
  right: -22px;
  top: 28px;
  transform: rotate(36deg);
  font:
    9px ui-monospace,
    monospace;
  letter-spacing: 0.18em;
  color: #d8bb6d55;
}
.advantage-emblem {
  display: grid;
  place-items: center;
  width: 100px;
  height: 100px;
  border: 1px solid #e2c675;
  border-radius: 50%;
  background: #100f09;
  box-shadow:
    0 0 0 7px #d7b95c14,
    0 0 35px #d7b95c30;
}
.advantage-emblem svg {
  width: 52px;
  height: 52px;
  fill: none;
  stroke: #f0d68c;
  stroke-width: 1.45;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.advantage-copy > span {
  font:
    10px ui-monospace,
    monospace;
  letter-spacing: 0.14em;
  color: #e4c979;
}
.advantage-copy h2 {
  margin: 7px 0;
  font-size: clamp(30px, 5vw, 46px);
  color: #f4dfaa;
}
.advantage-copy p {
  max-width: 720px;
  color: #eee2c4;
}
.advantage-copy small {
  color: #c1a968;
}
.advantage-copy .advantage-lore { font-family: Georgia, serif; font-style: italic; color: #e0c17e; }
.advantage-terms { display: grid; gap: 7px; padding-top: 14px; border-top: 1px solid #d6b86644; }
.advantage-terms b { color: #f1dba0; font-size: 14px; }
.advantage-availability { padding: 14px; border-left: 2px solid #d9bd77; background: #d6b8660a; }
.advantage-help { display: block; margin-top: 14px; color: #c6bd9f; }
.advantage-boundary { grid-column: 1 / -1; color: #bcb298; font-size: 12px; line-height: 1.6; }
.advantage-button:disabled { opacity: .58; cursor: default; filter: none; box-shadow: none; }
.advantage-activate.fields { padding: 22px 0 0; }
@media (prefers-reduced-motion: reduce) {
  .advantage-pending i, .advantage-sequence, .sequence-rings i { animation: none; }
}
.advantage-activate,
.advantage-result,
.advantage-pending {
  grid-column: 1/-1;
  padding: 22px;
  border-top: 1px solid #8b744a;
}
.advantage-button {
  width: 100%;
  margin-top: 14px;
  border-color: #edcf78;
  background: linear-gradient(110deg, #9b742c, #e5c66e 45%, #8b6524);
  color: #101008;
  box-shadow: 0 0 28px #dfbd5e33;
  font-weight: 800;
  letter-spacing: 0.06em;
}
.advantage-button:hover {
  filter: brightness(1.12);
  box-shadow: 0 0 40px #dfbd5e55;
}
.advantage-pending i {
  display: inline-block;
  width: 9px;
  height: 9px;
  margin-right: 9px;
  border-radius: 50%;
  background: #e8ca73;
  box-shadow: 0 0 16px #e8ca73;
  animation: advPulse 1.2s infinite;
}
.advantage-result b {
  color: #e8ca73;
}
.advantage-sequence {
  position: fixed;
  z-index: 9999;
  inset: 0;
  display: grid;
  place-items: center;
  align-content: center;
  text-align: center;
  background: radial-gradient(circle, #473718dd, #050b08f5 54%);
  backdrop-filter: blur(10px);
  animation: sequenceIn 0.25s ease-out;
}
.advantage-sequence > span {
  margin-top: 120px;
  font:
    11px ui-monospace,
    monospace;
  letter-spacing: 0.2em;
  color: #f0d37c;
}
.advantage-sequence h2 {
  margin: 10px;
  color: #fff0bb;
  font-size: clamp(36px, 7vw, 70px);
}
.advantage-sequence p {
  color: #cab985;
}
.sequence-rings {
  position: absolute;
  width: 110px;
  height: 110px;
}
.sequence-rings i {
  position: absolute;
  inset: 0;
  border: 1px solid #efcf74;
  border-radius: 50%;
  animation: ring 1.1s ease-out infinite;
}
.sequence-rings i:nth-child(2) {
  animation-delay: 0.22s;
}
.sequence-rings i:nth-child(3) {
  animation-delay: 0.44s;
}
.advantage-sequence.complete {
  opacity: 0;
  transition: opacity 0.45s;
}
@keyframes ring {
  0% {
    transform: scale(0.35);
    opacity: 1;
  }
  100% {
    transform: scale(1.8);
    opacity: 0;
  }
}
@keyframes advPulse {
  50% {
    opacity: 0.35;
    transform: scale(0.75);
  }
}
@keyframes sequenceIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.grinch-offer-screen {
  position: relative;
  min-height: 76vh;
  display: grid;
  place-items: center;
  padding: 30px;
}
.offer-static {
  position: fixed;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(0deg, transparent 0 3px, #98ffb005 4px);
  mix-blend-mode: screen;
}
.grinch-offer {
  position: relative;
  max-width: 830px;
  padding: clamp(28px, 6vw, 64px);
  border: 1px solid #9c493f;
  border-radius: 12px;
  background:
    radial-gradient(circle at 100% 0, #6d211c77, transparent 36%),
    linear-gradient(130deg, #291512, #07140f 68%);
  box-shadow: 0 35px 100px #000c;
}
.offer-classification {
  display: block;
  padding-bottom: 15px;
  border-bottom: 1px solid #704039;
  color: #e8a79b;
  font:
    9px/1.6 ui-monospace,
    monospace;
  letter-spacing: 0.12em;
}
.offer-mark,
.grinch-sigil {
  display: grid;
  place-items: center;
  width: 82px;
  height: 82px;
  margin: 28px 0;
  border: 2px solid #c05a4d;
  border-radius: 50%;
  color: #f2b1a5;
  font:
    56px/1 Georgia,
    serif;
  transform: rotate(-7deg);
  box-shadow: 0 0 34px #bc4d4233;
}
.offer-kicker,
.offer-objective > span {
  color: #e8a79b;
  font:
    10px ui-monospace,
    monospace;
  letter-spacing: 0.16em;
}
.grinch-offer h1 {
  margin: 12px 0;
  font-size: clamp(44px, 8vw, 82px);
}
.offer-lore {
  font-size: 18px;
  line-height: 1.8;
}
.offer-objective {
  margin: 28px 0;
  padding: 22px;
  border-left: 4px solid #b34c42;
  background: #160e0c;
}
.offer-objective h2 {
  margin: 8px 0;
}
.offer-objective li {
  margin: 7px 0;
}
.offer-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.offer-actions form {
  margin: 0;
}
.grinch-dossier {
  border-color: #8e403a;
  background:
    radial-gradient(circle at 90% 5%, #69231e77, transparent 35%), #10150f;
}
.grinch-objective {
  margin-top: 25px;
  padding: 25px;
  border: 1px solid #94463d;
  background: #251310;
}
.grinch-objective > span {
  color: #e8a79b;
  font:
    10px ui-monospace,
    monospace;
  letter-spacing: 0.14em;
}
.encrypted-notice {
  padding: 14px;
  border: 1px solid #dfbf69;
  color: #f2d995;
  background: #2b2415;
}
@media (max-width: 760px) {
  .briefing-schedule > div {
    grid-template-columns: 1fr;
  }
  .case-briefing > header {
    min-height: 250px;
    padding: 28px;
  }
  .grinch-dispatch,
  .detective-annotation,
  .case-briefing .report-members,
  .case-briefing .briefing-form,
  .case-briefing .briefing-locked {
    margin-left: 20px;
    margin-right: 20px;
  }
  .lead-options,
  .approach-options {
    grid-template-columns: 1fr;
  }
  .advantage-console {
    grid-template-columns: 1fr;
  }
  .advantage-emblem {
    width: 82px;
    height: 82px;
  }
  .offer-actions {
    display: grid;
  }
  .offer-actions button {
    width: 100%;
  }
}

/* One private portrait, shared by the accepted designation and its welcome. */
.identity-dossier.grinch-dossier { background: #0b2118; color: #e7e0cd; border-color: #967442; }
.identity-dossier.grinch-dossier p { color: #dce2d4; }
.identity-dossier.grinch-dossier h2, .identity-dossier.grinch-dossier .grinch-objective h3 { color: #e3ca8f; }
.identity-dossier.grinch-dossier .file-clearance, .identity-dossier.grinch-dossier .editorial-heading, .identity-dossier.grinch-dossier .identity-signature { color: #d9c38e; }
.grinch-portrait { margin: 0; overflow: hidden; background: #07110d; border: 1px solid #967442; border-radius: 12px; }
.grinch-portrait img { display: block; width: 100%; height: 100%; object-fit: cover; }
.grinch-portrait [hidden] { display: none; }
.grinch-portrait [data-grinch-loading] { display: block; padding: 24px; color: #d9c38e; font-size: 14px; }
.grinch-portrait-avatar { width: 160px; aspect-ratio: 1; flex-shrink: 0; }
.grinch-portrait-avatar img, .grinch-portrait-hero img { object-position: 50% 28%; }
.grinch-portrait-hero { width: 100%; aspect-ratio: 1; max-width: 360px; }
.grinch-profile-hero .hero-art { min-width: 0; }
.grinch-file-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.grinch-welcome { margin-top: 24px; border: 1px solid #967442; border-radius: 14px; overflow: hidden; background: #081b13; }
.grinch-welcome header { padding: clamp(20px, 4vw, 40px); background: linear-gradient(135deg, #1b2c1c, #111c12); }
.grinch-welcome header h2 { color: #e3ca8f; font-size: clamp(30px, 5vw, 48px); line-height: 1.1; margin: 16px 0; }
.grinch-portrait-dossier { border: 0; border-radius: 0; width: 100%; max-height: 720px; aspect-ratio: 2 / 3; }
.grinch-portrait-dossier img { object-position: 50% 28%; }
.grinch-welcome-copy { padding: clamp(20px, 4vw, 40px); }
.grinch-welcome-copy section { padding: 28px 0; border-bottom: 1px solid #4c5133; }
.grinch-welcome-copy section:first-child { padding-top: 0; }
.grinch-welcome-copy h3 { font-family: inherit; font-size: 16px; letter-spacing: .04em; color: #e3ca8f; line-height: 1.5; margin: 0 0 16px; }
.grinch-welcome-copy .pre { font-size: 16px; line-height: 1.8; overflow-wrap: anywhere; }
.grinch-welcome-copy > button { margin-top: 28px; }
@media(max-width: 620px) {
  .grinch-dossier .identity-top { display: flex; flex-direction: column; align-items: flex-start; }
  .grinch-profile-hero .hero-art { display: block; }
  .grinch-portrait-hero { max-width: none; }
}

/* Detective production workspace */
.detective-dashboard { background:#06100f; }
.detective-dashboard .masthead {border-bottom:1px solid #254139;gap:24px;}
.detective-dashboard .masthead nav {gap:8px;}
.detective-dashboard .masthead nav a {padding:9px 12px;border:1px solid #30453f;border-radius:8px;font-size:12px;background:#10211d;}
.detective-dashboard .host-grid > aside {background:#0b1c18;padding:12px;border:1px solid #29453b;border-radius:14px;align-self:start;}
.detective-dashboard .host-grid > aside button[data-section] {display:flex;align-items:center;gap:12px;text-align:left;font-size:13px;padding:13px 11px;border-radius:8px;}
.detective-dashboard .host-grid > aside svg {width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.planner-next {display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px 26px;margin:20px 0 30px;border:1px solid #8e7948;border-radius:14px;background:linear-gradient(115deg,#273020,#0b201c);}
.planner-next h2 {font-size:clamp(21px,3vw,29px);margin:8px 0;}
.planner-next p {margin:0;font-size:13px;color:#c2cbb8;}
.planner-next button {flex-shrink:0;}
.command-intro {padding:clamp(22px,4vw,42px);border:1px solid #2e5b4c;border-radius:16px;background:radial-gradient(ellipse at top right,#224e443b,transparent 60%),linear-gradient(130deg,#122b24,#091711);}
.command-intro h2 {font-size:clamp(32px,4vw,48px);line-height:1.15;margin:18px 0;color:#f0e6c7;}
.command-intro p {max-width:640px;color:#afc3b8;}
.command-stats {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:28px;}
.command-stats div {padding:16px 0;border-top:1px solid #345345;}
.command-stats span {display:block;font:10px ui-monospace,monospace;letter-spacing:.12em;color:#9dad9c;}
.command-stats b {display:block;font:32px ui-monospace,monospace;color:#e9cc87;margin-top:10px;}
.command-section-heading {display:flex;justify-content:space-between;align-items:center;gap:16px;margin:30px 0 16px;}
.command-section-heading h3 {margin:0;}
.command-section-heading > span {font:9px ui-monospace,monospace;letter-spacing:.13em;color:#829c8e;}
.command-cards {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.command-card {position:relative;display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:12px;min-width:0;min-height:240px;padding:24px!important;background:linear-gradient(145deg,#132921,#0b1b16)!important;border:1px solid #345447!important;border-radius:12px;color:#eee3c9!important;text-decoration:none;font-weight:400!important;transition:transform .18s,border-color .18s,box-shadow .18s;}
.command-card:hover {transform:translateY(-3px);border-color:#bca36b!important;box-shadow:0 10px 35px #0004;}
.command-card:focus-visible {outline:3px solid #eac87b;outline-offset:3px;}
.command-card-icon {display:grid;place-items:center;width:45px;height:45px;border:1px solid #69734b;border-radius:10px;background:#bfaa6420;color:#e5c477;}
.command-card-icon svg {width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;}
.command-card-tag {font:9px ui-monospace,monospace;color:#89b6a0;letter-spacing:.1em;text-transform:uppercase;}
.command-card strong {font-size:19px;line-height:1.25;}
.command-card-description {font-size:13px;line-height:1.6;color:#afc2b5;}
.command-card-open {margin-top:auto;padding-top:12px;font-size:11px;color:#d5bf86;display:flex;justify-content:space-between;align-self:stretch;}
.planner header h2 {font-size:36px;margin:10px 0;}
.planner-focus {padding:25px;border:1px solid #be9d53;border-radius:12px;background:linear-gradient(120deg,#2b2b1d,#0f211a);margin:22px 0;}
.planner-focus > b {font:12px ui-monospace,monospace;color:#efd08c;}
.planner-reminders {padding:20px;border:1px solid #365145;border-radius:12px;margin:20px 0;}
.planner-reminder {padding:14px;border-left:2px solid #bca06a;background:#c2a1600a;}
.planner-roadmap {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:24px 0;}
.planner-roadmap a {display:flex;flex-direction:column;gap:6px;padding:13px;border:1px solid #355245;border-radius:8px;text-decoration:none;color:#ddcfac;}
.planner-roadmap span,.planner-roadmap small {font-size:11px;color:#a2b9a8;}
.planner-chapter {margin:14px 0;scroll-margin-top:24px;padding:0!important;}
.planner-chapter > summary {cursor:pointer;display:flex;gap:18px;align-items:center;padding:22px;}
.planner-chapter > summary small {display:block;margin-top:7px;color:#a5b59f;text-transform:capitalize;}
.planner-chapter-date {white-space:nowrap;color:#dec184;font:14px ui-monospace,monospace;}
.planner-chapter-body {padding:0 24px 24px;}
.planner-fields {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.planner .fields {gap:18px;}
.planner fieldset {border:1px solid #365446;border-radius:8px;padding:18px;}
.planner fieldset .check {margin:12px 0;}
.planner-links {display:flex;flex-wrap:wrap;gap:15px;margin:15px 0;}
.planner-blueprint summary {cursor:pointer;font-size:19px;color:#dfc58e;}
.planner-blueprint pre {white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.75 system-ui,sans-serif;color:#bac7b7;}
@media(max-width:1100px){.command-cards{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:650px){.planner-next{align-items:stretch;flex-direction:column;padding:20px}.planner-fields{grid-template-columns:1fr}.planner-roadmap{grid-template-columns:repeat(2,minmax(0,1fr))}.command-card{padding:18px!important;min-height:230px}.command-card strong{font-size:17px}.command-stats{gap:8px}.command-stats span{font-size:8px}.command-section-heading>span{display:none}.planner-chapter>summary{padding:18px;gap:12px}.planner-chapter-body{padding:0 18px 18px}.detective-dashboard .host-grid>aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.detective-dashboard .host-grid>aside button[data-section]{font-size:11px;gap:7px}.detective-dashboard .host-grid>aside svg{width:17px;height:17px}}
@media(max-width:370px){.command-cards{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.command-card{transition:none}.command-card:hover{transform:none}}
@media(max-width:650px){.detective-dashboard .host-grid[data-active="command"]>aside{display:none}.detective-dashboard .host-grid:not([data-active="command"])>aside{display:flex;overflow-x:auto;max-width:100%}.detective-dashboard .host-grid>aside button{flex:0 0 auto}}
.command-topline {display:flex;align-items:center;justify-content:space-between;gap:20px;margin:12px 0 24px}.command-topline h1{font-size:clamp(30px,4vw,45px);margin:9px 0}.command-topline>span{font:11px ui-monospace,monospace;color:#8daf9d;white-space:nowrap}@media(max-width:650px){.command-topline{align-items:flex-start;flex-direction:column;gap:8px}.command-topline h1{margin-bottom:0}}


/* Focus the Detective home on current work; retain every specialist control. */
.detective-dashboard .host-grid[data-active="command"]{grid-template-columns:minmax(0,1fr)}
.detective-dashboard .host-grid[data-active="command"]>aside{display:none}
.detective-dashboard .command-section-heading{margin:0 0 18px}
.detective-dashboard .command-section-heading h2{margin:0;font-size:23px}
.detective-dashboard .command-card{min-height:205px;gap:10px}
.detective-dashboard .command-card-icon{width:36px;height:36px}
.detective-dashboard .command-card-icon svg{width:22px;height:22px}
.command-review-count{margin:0 0 18px;color:#d8c18e}
.command-tools{margin-top:28px;padding-top:20px;border-top:1px solid #30493a}
.command-tools h3{margin:0 0 14px;font-size:16px}
.command-tools>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.command-tool{display:flex;align-items:center;gap:10px;min-width:0;min-height:48px;margin:0;padding:12px;border:1px solid #30493a;border-radius:7px;background:#0a1d16;color:#cbd6c9;font:13px/1.4 system-ui,sans-serif;text-align:left;text-decoration:none}
.command-tool svg{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.command-tool:focus-visible{outline:2px solid #eac87b;outline-offset:3px}
.desk-folder{padding:0;border:1px solid #30493a;border-radius:8px}
.desk-folder>summary{padding:18px;min-height:48px;cursor:pointer;color:#dfc58e;font-weight:600}
.desk-folder[open]>summary{border-bottom:1px solid #30493a;margin-bottom:18px}
.desk-folder>div,.desk-folder>form{margin:0 18px 18px}
.briefing-desk>header p{margin-bottom:0}
@media(max-width:650px){.command-tools>div{grid-template-columns:repeat(2,minmax(0,1fr))}.detective-dashboard .command-card{min-height:195px}.command-tool{font-size:12px;padding:10px;gap:8px}}
@media(max-width:370px){.command-tools>div{grid-template-columns:1fr}}


/* An assigned briefing receives the same numbered signal as new mail. */
.case-briefing.detective-briefing:before{background:linear-gradient(130deg,#173426,#0b1712);height:240px}
.case-briefing.detective-briefing>header{min-height:0;padding-bottom:24px}
.case-briefing.detective-briefing>header h2{font-size:clamp(28px,4.5vw,44px);text-shadow:none}
.grinch-dispatch.detective-dispatch{border-left-color:#c5ab70;background:#15271e;color:#eee7d4;box-shadow:none}
.detective-briefing .detective-annotation{transform:none}
