.welcome-guide {
  width: min(520px, calc(100% - 28px));
  max-height: calc(100dvh - 28px);
  padding: clamp(22px, 5vw, 36px);
  overflow: auto;
  color: var(--navy);
}
.welcome-guide[open] { display: grid; gap: 14px; }
.welcome-guide h2 { font-size: clamp(29px, 6vw, 39px); }
.guide-progress { color: #735221; font-size: 15px; font-weight: 700; }
.guide-icon {
  display: inline-grid;
  width: 44px;
  height: 44px;
  margin: 0 0 6px;
  place-items: center;
  border-radius: 10px;
  background: #f1e7cf;
  color: #735221;
}
.welcome-guide #guide-description p { margin: 0 0 8px; color: #3b4d5a; font-size: 17px; line-height: 1.55; }
.large-text .welcome-guide #guide-description p { font-size: 20px; }
.guide-menu { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 3px; margin-top: 12px; }
.guide-menu span { display: grid; justify-items: center; gap: 4px; padding: 6px 0; border-radius: 8px; font-size: clamp(10px, 3vw, 13px); }
.guide-menu svg { width: 19px; height: 19px; }
.guide-menu-current { background: #f1e7cf; color: #63471d; font-weight: 700; }
.guide-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.guide-actions .button { flex: 1 1 auto; min-height: 46px; }
.welcome-guide [hidden] { display: none; }
.print-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 20px; }
.account-print { margin-top: 22px; }
.account-print .print-layout { grid-template-columns: 1fr; }
.account-print .print-card { margin-top: 12px; padding: 20px; background: #fffdf8; border: 1px solid #e4d8c1; border-radius: 14px; }
.print-card { display: grid; align-content: start; gap: 14px; }
.print-card p { line-height: 1.6; }
.print-card .button { width: 100%; }
.print-card .print-status { color: #364b5a; font-weight: 600; }
.print-card .print-status:empty { display: none; }
.photo-picker { display: grid; gap: 6px; font-weight: 700; }
.photo-picker input { max-width: 100%; padding: 8px 0; font-size: 16px; }
.photo-picker input::file-selector-button { min-height: 44px; margin-right: 6px; padding: 8px; border-radius: 8px; border: 1px solid #a38a60; background: #fbf6e8; color: var(--navy); cursor: pointer; }
.family-photo-preview { display: block; width: 100%; max-height: 340px; aspect-ratio: 423 / 316; object-fit: contain; border: 1px solid #a38a60; border-radius: 10px; background: #fbf6e8; }
.family-photo-preview[hidden], .print-card [hidden] { display: none; }
@media (max-width: 780px) { .print-layout { grid-template-columns: 1fr; } }
