/* Archive intake skin. All form behavior remains owned by app.js. */
body.is-archive-intake {
  --archive-desk: var(--archive-home-desk, #e8e1cf);
  --archive-paper: var(--archive-home-paper, #fbfbf8);
  --archive-ink: var(--archive-home-ink, #242321);
  --archive-muted: var(--archive-home-muted, #77736c);
  --archive-blue: #0d4cd0;
  --archive-red: #b43b2e;
  --archive-line: var(--archive-home-line, rgba(36, 35, 33, .18));
  color: var(--archive-ink);
  background: var(--archive-desk);
  font-family: var(--archive-serif);
  font-synthesis: none;
}

body.is-archive-intake[data-archive-skill="romance"] { --archive-blue: #a74e4a; }
body.is-archive-intake[data-archive-skill="business"] { --archive-blue: #0d4cd0; }
body.is-archive-intake[data-archive-skill="destiny"] { --archive-blue: var(--archive-destiny-accent, #486052); }

body.is-archive-intake .app-shell { min-height: 100svh; }

body.is-archive-intake .topbar {
  position: relative;
  height: auto;
  min-height: 76px;
  padding: calc(16px + env(safe-area-inset-top)) max(22px, calc((100vw - 1120px) / 2)) 12px;
  border: 0;
  background: transparent;
  backdrop-filter: none;
}

body.is-archive-intake .brand { gap: 0; font-family: var(--archive-serif); }
body.is-archive-intake .brand-mark { display: none; }
body.is-archive-intake .brand strong { font-family: var(--archive-serif); font-size: 20px; font-weight: 700; letter-spacing: .14em; }
body.is-archive-intake .brand small {
  margin-top: 3px;
  color: var(--archive-muted);
  font: 10px var(--archive-mono);
  letter-spacing: .08em;
}

body.is-archive-intake .topbar-actions { gap: 14px; }
body.is-archive-intake .topbar-actions .text-button {
  color: var(--archive-ink);
  font-family: var(--archive-serif);
}
body.is-archive-intake #redemptionAdminButton,
body.is-archive-intake #profileManagerButton,
body.is-archive-intake #privacyButton,
body.is-archive-intake #themeButton { display: none; }

body.is-archive-intake .intake-view {
  position: relative;
  width: min(var(--archive-intake-max-width), calc(100% - 32px));
  margin: 12px auto 64px;
  padding: var(--archive-intake-padding-top) clamp(24px, 6vw, 76px) var(--archive-intake-padding-bottom);
  background: var(--archive-paper);
  box-shadow: 0 14px 36px rgba(64, 56, 42, .1);
}

body.is-archive-intake .intake-view::before {
  position: absolute;
  top: 22px;
  right: 24px;
  color: var(--archive-muted);
  content: "INPUT ARCHIVE / 01";
  font: 10px var(--archive-mono);
  letter-spacing: .08em;
}

body.is-archive-intake .back-button {
  color: var(--archive-muted);
  font-family: var(--archive-serif);
}

body.is-archive-intake .page-heading {
  max-width: 620px;
  margin: var(--archive-intake-heading-top) 0 var(--archive-intake-heading-bottom);
}
body.is-archive-intake .page-heading .eyebrow {
  color: var(--archive-blue);
  font: 700 11px var(--archive-mono);
  letter-spacing: .12em;
  text-transform: uppercase;
}
body.is-archive-intake .page-heading .eyebrow:empty { display: none; }
body.is-archive-intake .page-heading h1 { margin-top: 0; }
body.is-archive-intake .page-heading h1 {
  margin: 0 0 15px;
  color: var(--archive-ink);
  font-family: var(--archive-serif);
  font-size: var(--archive-intake-title-size);
  font-weight: 700;
  line-height: var(--archive-intake-title-leading);
}
body.is-archive-intake[data-archive-skill="romance"] .page-heading,
body.is-archive-intake[data-archive-skill="business"] .page-heading { margin-top: var(--archive-intake-heading-top); }
body.is-archive-intake[data-archive-skill="romance"] .page-heading h1,
body.is-archive-intake[data-archive-skill="business"] .page-heading h1 { font-size: var(--archive-intake-title-size); }
body.is-archive-intake .page-heading > p:last-child {
  max-width: 34em;
  color: var(--archive-muted);
  font-size: var(--archive-intake-description-size);
  line-height: var(--archive-copy-leading);
}
body.is-archive-intake .page-heading > p:last-child:empty { display: none; }

body.is-archive-intake .profile-entry-button {
  width: 100%;
  margin: 0 0 14px;
  padding: 15px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--archive-ink);
  box-shadow: none;
}
body.is-archive-intake .profile-entry-button:hover { border-color: var(--archive-blue); background: transparent; transform: none; }
body.is-archive-intake .profile-entry-button strong { font-family: var(--archive-serif); font-size: 16px; }
body.is-archive-intake .profile-entry-button small { color: var(--archive-muted); font-size: 11px; }
body.is-archive-intake .profile-entry-button b {
  padding: 0 0 3px;
  border-bottom: 1px solid var(--archive-ink);
  border-radius: 0;
  background: transparent;
  color: var(--archive-ink);
  font-size: 13px;
}

body.is-archive-intake .profile-panel {
  margin-bottom: 34px;
  padding: 20px;
  border: 1px solid var(--archive-line);
  border-radius: 0;
  background: rgba(255,255,255,.48);
}

body.is-archive-intake .intake-form { gap: 0; }
body.is-archive-intake .person-grid { gap: 0; border-top: 0; }
body.is-archive-intake .person-block {
  position: relative;
  padding: 54px 34px 30px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
body.is-archive-intake .person-block + .person-block {
  padding-right: 0;
  padding-left: 34px;
  border-left: 1px solid var(--archive-line);
}
body.is-archive-intake .person-block legend {
  position: absolute;
  top: 16px;
  left: 0;
  gap: 11px;
  color: var(--archive-ink);
  font-family: var(--archive-serif);
  font-size: 25px;
}
body.is-archive-intake .person-block + .person-block legend { left: 34px; }
body.is-archive-intake .person-block legend span {
  width: auto;
  height: auto;
  border-radius: 0;
  background: transparent;
  color: var(--archive-blue);
  font: 10px var(--archive-mono);
}
body.is-archive-intake .person-block > .field-block:first-of-type { margin-top: 22px; }

body.is-archive-intake .field-label,
body.is-archive-intake .eyebrow {
  color: var(--archive-muted);
  font-family: var(--archive-serif);
}
body.is-archive-intake .field-label em { color: #97928a; font-style: normal; font-weight: 400; }
body.is-archive-intake input,
body.is-archive-intake select,
body.is-archive-intake textarea {
  min-height: var(--archive-intake-control-height);
  border-color: var(--archive-line);
  border-radius: 0;
  color: var(--archive-ink);
  background: transparent;
  font-family: var(--archive-serif);
}
body.is-archive-intake input:focus,
body.is-archive-intake select:focus,
body.is-archive-intake textarea:focus { border-color: var(--archive-blue); }
body.is-archive-intake input::placeholder { color: #aaa69f; }

body.is-archive-intake .inline-picker-button,
body.is-archive-intake .secondary-button {
  min-height: var(--archive-intake-picker-height);
  border-color: var(--archive-line);
  border-radius: 0;
  color: var(--archive-ink);
  background: transparent;
  font-family: var(--archive-serif);
}
body.is-archive-intake .inline-place-grid {
  gap: var(--archive-intake-column-gap);
  border-color: var(--archive-line);
  border-radius: 0;
  background: rgba(255,255,255,.42);
}
body.is-archive-intake .inline-place-grid > * { min-width: 0; }
body.is-archive-intake .inline-place-grid select {
  width: 100%;
  min-width: 0;
  padding-right: 24px;
  overflow: hidden;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body.is-archive-intake .place-suggestions { border-radius: 0; }

body.is-archive-intake .context-fields {
  max-width: none;
  margin-top: var(--archive-intake-section-gap);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
body.is-archive-intake .context-fields::before {
  color: var(--archive-blue);
  content: "03 / RELATION CONTEXT";
  font: 10px var(--archive-mono);
  letter-spacing: .08em;
}
body.is-archive-intake .context-fields select#stateInput {
  min-height: var(--archive-intake-emphasis-height);
  padding: 10px 12px;
  border: 1px solid var(--archive-line);
  border-radius: 0;
  background: rgba(255,255,255,.5);
}

body.is-archive-intake .consent-row { color: var(--archive-muted); }
body.is-archive-intake .consent-row input { border-color: var(--archive-line); }
body.is-archive-intake .save-profile-row { margin: 26px 0 0; }
body.is-archive-intake .form-error { margin: 18px 0 0; }
body.is-archive-intake .generation-panel {
  margin-top: 24px;
  border-color: var(--archive-line);
  border-radius: 0;
  background: rgba(255,255,255,.5);
}
body.is-archive-intake .generation-panel strong {
  font-family: var(--archive-serif);
  font-variant-numeric: lining-nums proportional-nums;
  font-weight: 700;
  letter-spacing: .02em;
}
body.is-archive-intake .generation-orbit { border-color: rgba(22,74,216,.25); }
body.is-archive-intake .generation-orbit span,
body.is-archive-intake .generation-progress span { background: var(--archive-blue); }

body.is-archive-intake .form-footer { margin-top: 30px; padding-top: 0; border: 0; }
body.is-archive-intake .form-footer p { color: var(--archive-muted); }
body.is-archive-intake .primary-button {
  min-height: var(--archive-intake-emphasis-height);
  padding: 13px 20px;
  border-radius: 0;
  background: var(--archive-ink);
  color: var(--archive-paper);
  font-family: var(--archive-serif);
}
body.is-archive-intake .primary-button:hover { background: var(--archive-blue); }
body.is-archive-intake .site-footer { color: var(--archive-muted); }

@media (max-width: 780px) {
  body.is-archive-intake .topbar { padding-right: 20px; padding-left: 20px; }
  body.is-archive-intake .topbar-actions #profileManagerButton,
  body.is-archive-intake .topbar-actions #privacyButton { display: none; }
  body.is-archive-intake .intake-view { width: min(100% - 24px, 620px); margin-top: 6px; }
  body.is-archive-intake .person-grid { grid-template-columns: 1fr; }
  body.is-archive-intake .person-block,
  body.is-archive-intake .person-block + .person-block {
    padding: 54px 0 28px;
    border-left: 0;
  }
  body.is-archive-intake .person-block + .person-block legend { left: 0; }
}

@media (max-width: 560px) {
  body.is-archive-intake .topbar { min-height: 66px; height: auto; }
  body.is-archive-intake .brand strong { font-size: 18px; }
  body.is-archive-intake .intake-view {
    width: calc(100% - 20px);
    margin-bottom: 34px;
    padding: 30px 20px calc(48px + env(safe-area-inset-bottom));
  }
  body.is-archive-intake .intake-view::before { top: 18px; right: 20px; font-size: 8px; }
  body.is-archive-intake .page-heading { margin: var(--archive-intake-mobile-heading-top) 0 var(--archive-intake-mobile-heading-bottom); }
  body.is-archive-intake .page-heading { margin-top: 40px; }
  body.is-archive-intake .page-heading h1 { font-size: var(--archive-intake-mobile-title-size); }
  body.is-archive-intake .profile-entry-button { align-items: flex-start; }
  body.is-archive-intake .profile-entry-button small { max-width: 22em; }
  body.is-archive-intake .person-block,
  body.is-archive-intake .person-block + .person-block { padding-bottom: 28px; }
  body.is-archive-intake .two-column { grid-template-columns: 1fr 1fr; gap: var(--archive-intake-column-gap); }
  body.is-archive-intake .inline-place-grid { grid-template-columns: 1fr; }
  body.is-archive-intake .save-profile-row { display: grid; gap: 10px; }
  body.is-archive-intake .form-footer { gap: 18px; }
}

@media (max-width: 390px) {
  body.is-archive-intake .two-column { grid-template-columns: 1fr; }
}

@media (min-width: 1100px) {
  body.is-archive-intake .intake-view {
    width: min(var(--archive-intake-wide-max-width), calc(100% - 64px));
    padding-right: 82px;
    padding-left: 82px;
  }
  body.is-archive-intake .page-heading {
    display: grid;
    grid-template-columns: minmax(280px, .8fr) minmax(360px, 1.2fr);
    column-gap: 72px;
    max-width: none;
    align-items: end;
  }
  body.is-archive-intake .page-heading .eyebrow { grid-column: 1 / -1; }
  body.is-archive-intake .page-heading h1 { margin-bottom: 0; }
  body.is-archive-intake .page-heading > p:last-child { margin: 0 0 4px; }
  body.is-archive-intake .person-block { padding-right: 46px; }
  body.is-archive-intake .person-block + .person-block { padding-left: 46px; }
  body.is-archive-intake .person-block + .person-block legend { left: 46px; }
}

/* The search field is primary; the full region picker is an explicit alternative. */
body.is-archive-intake .intake-view::before,
body.is-archive-intake .context-fields::before{content:none}
body.is-archive-intake .manual-place{margin:0;border:0}
body.is-archive-intake .manual-place summary{min-height:44px;display:flex;align-items:center;gap:8px;color:var(--archive-muted);font-size:14px;cursor:pointer;list-style:none}
body.is-archive-intake .manual-place summary::before{content:'＋';font-size:16px}
body.is-archive-intake .manual-place[open] summary::before{content:'−'}
body.is-archive-intake .manual-place .inline-place-grid{margin-top:4px;padding:16px;border:1px solid var(--archive-line);background:transparent}
body.is-archive-intake .manual-place select{font-size:16px;white-space:normal}
body.is-archive-intake .field-label{font-size:14px}
body.is-archive-intake :is(input,select,textarea){font-size:16px;min-height:46px}
body.is-archive-intake input::placeholder{color:#858076}
body.is-archive-intake .inline-picker-button{min-height:44px;min-width:48px;font-size:14px}
body.is-archive-intake .person-content{display:grid;gap:18px;margin-top:16px;min-width:0}
body.is-archive-intake .person-content[hidden]{display:none}
body.is-archive-intake .intake-person-toggle{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:0;border:0;background:none;color:var(--archive-ink);font:inherit;text-align:left;opacity:1}
body.is-archive-intake .intake-person-toggle:disabled{cursor:default;opacity:1;color:var(--archive-ink)}
body.is-archive-intake .intake-person-toggle small{display:none;margin-left:auto;font-size:13px;font-weight:400;color:var(--archive-muted)}
body.is-archive-intake .intake-person-toggle:focus-visible,
body.is-archive-intake .manual-place summary:focus-visible{outline:2px solid var(--archive-blue);outline-offset:4px}
@media(max-width:780px){
 body.is-archive-intake .person-grid{gap:0}
 body.is-archive-intake .person-block{border-top:1px solid var(--archive-line);padding:62px 0 24px}
 body.is-archive-intake .person-block + .person-block{padding:62px 0 24px;border-top:1px solid var(--archive-line)}
 body.is-archive-intake .person-block legend{width:100%;top:10px}
 body.is-archive-intake .person-block.is-collapsed{padding-bottom:0;min-height:70px}
 body.is-archive-intake .intake-person-toggle small{display:block}
 body.is-archive-intake .person-content{margin-top:4px}
 body.is-archive-intake .page-heading{margin:24px 0}
 body.is-archive-intake .page-heading h1{font-size:34px}
 body.is-archive-intake .intake-view{padding-top:20px}
 body.is-archive-intake .context-fields{margin-top:20px}
}
