/* Next Hello interactive studios. Scoped to the native modal. */
html.gc-tool-open { overflow: hidden; }
.tool-dialog {
  --tool-line: #c7c9b9;
  --tool-soft: #edf1e8;
  --tool-muted: #53635c;
  width: min(1040px, calc(100vw - 40px));
  max-width: none;
  max-height: min(920px, calc(100dvh - 40px));
  margin: auto;
  padding: 0;
  border: 1px solid var(--wine, #164c48);
  border-radius: 24px;
  background: var(--paper, #fcf8ef);
  color: var(--ink, #243d37);
  box-shadow: 0 30px 100px #12383155;
  overflow: hidden;
  font-family: var(--sans, Arial, sans-serif);
  font-size: 17px;
  line-height: 1.55;
  text-align: left;
}
.tool-dialog[open] { display: flex; flex-direction: column; }
.tool-dialog::backdrop { background: #133b37aa; backdrop-filter: blur(7px); }
.tool-dialog *, .tool-dialog *::before, .tool-dialog *::after { box-sizing: border-box; }
.tool-dialog [hidden] { display: none !important; }
.tool-dialog h2, .tool-dialog h3, .tool-dialog h4, .tool-dialog p, .tool-dialog figure, .tool-dialog blockquote { margin: 0; }
.tool-dialog button, .tool-dialog input, .tool-dialog select, .tool-dialog textarea { font: inherit; }
.tool-dialog button, .tool-dialog a, .tool-dialog input, .tool-dialog textarea, .tool-dialog select, .tool-dialog [tabindex] { -webkit-tap-highlight-color: transparent; }
.tool-dialog :focus-visible { outline: 3px solid var(--wine, #164c48); outline-offset: 4px; }
.tool-dialog h2:focus, .tool-dialog h3:focus { outline: none; }
.tool-dialog .tool-header { flex: 0 0 auto; position: relative; padding: 30px 76px 26px 44px; border-bottom: 1px solid var(--tool-line); background: var(--paper, #fcf8ef); }
.tool-dialog .tool-eyebrow, .tool-dialog .tool-kicker { color: var(--wine, #164c48); font-weight: 700; font-size: 12px; letter-spacing: .14em; line-height: 1.5; }
.tool-dialog .tool-header h2 { max-width: 800px; margin: 10px 0 8px; font-family: var(--serif, Georgia, serif); font-size: clamp(34px, 4vw, 53px); font-weight: 400; line-height: 1.04; letter-spacing: -.035em; }
.tool-dialog .tool-description { color: var(--tool-muted); font-size: 17px; line-height: 1.5; max-width: 700px; }
.tool-dialog .tool-body { flex: 1 1 auto; min-height: 0; padding: 30px 44px 38px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #8b9c8c transparent; }
.tool-dialog .tool-status { flex: 0 0 auto; border-top: 1px solid var(--tool-line); padding: 14px 44px; background: #f3e8cc; color: var(--wine, #164c48); font-size: 15px; font-weight: 700; line-height: 1.5; max-height: 150px; overflow-y: auto; }
.tool-dialog .tool-status:empty { display: none; }
.tool-dialog .tool-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 48px; min-width: 44px; padding: 13px 20px;
  border: 1px solid var(--wine, #164c48); border-radius: 999px;
  background: var(--wine, #164c48); color: #fffaf0;
  font-size: 16px; line-height: 1.3; font-weight: 700; text-align: center;
  cursor: pointer; text-decoration: none; transition: background .15s ease, transform .15s ease;
}
.tool-dialog .tool-button:hover:not(:disabled) { background: #0c3734; transform: translateY(-1px); }
.tool-dialog .tool-button.is-secondary { background: transparent; color: var(--wine, #164c48); border-color: #8a9f91; }
.tool-dialog .tool-button.is-secondary:hover:not(:disabled) { background: #e9eee4; }
.tool-dialog .tool-button.is-text { background: transparent; color: var(--wine, #164c48); border-color: transparent; padding: 11px 6px; text-decoration: underline; text-underline-offset: 5px; }
.tool-dialog .tool-button.is-text:hover:not(:disabled) { background: transparent; color: #0c3734; }
.tool-dialog .tool-button:disabled { opacity: .58; cursor: default; transform: none; }
.tool-dialog .tool-close { position: absolute; right: 18px; top: 18px; width: 44px; height: 44px; min-height: 44px; padding: 0; background: transparent; color: var(--wine, #164c48); border-color: var(--tool-line); font-family: Arial, sans-serif; font-size: 30px; font-weight: 400; line-height: 1; }
.tool-dialog .tool-close:hover:not(:disabled) { background: var(--wine, #164c48); color: white; }
.tool-dialog .tool-form { display: grid; gap: 24px; }
.tool-dialog .tool-form + .tool-help { margin-top: 22px; }
.tool-dialog .tool-field { min-width: 0; }
.tool-dialog .tool-field-label { display: block; margin: 0 0 9px; color: var(--ink, #243d37); font-size: 16px; font-weight: 700; }
.tool-dialog .tool-field-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.tool-dialog .tool-control { display: block; width: 100%; min-width: 0; min-height: 50px; padding: 12px 14px; border: 1px solid #8b9c8c; border-radius: 9px; background: #fffdf7; color: var(--ink, #243d37); font-size: 17px; line-height: 1.5; box-shadow: none; }
.tool-dialog select.tool-control { padding-right: 32px; cursor: pointer; }
.tool-dialog textarea.tool-control { resize: vertical; min-height: 110px; }
.tool-dialog input.tool-control[type='date'], .tool-dialog input.tool-control[type='time'] { -webkit-appearance: none; appearance: none; min-height: 52px; }
.tool-dialog .tool-control::placeholder { color: #6b756e; opacity: 1; }
.tool-dialog .tool-control[aria-invalid='true'] { border-color: #963b2a; }
.tool-dialog .tool-help { color: var(--tool-muted); font-size: 14px; line-height: 1.65; }
.tool-dialog .tool-field .tool-help { margin-top: 8px; }
.tool-dialog .tool-section-title { font-family: var(--serif, Georgia, serif); color: var(--wine, #164c48); font-size: clamp(27px, 3.1vw, 37px); font-weight: 400; letter-spacing: -.02em; line-height: 1.12; }
.tool-dialog .tool-section-title + .tool-help { margin: 12px 0 22px; }
.tool-dialog .tool-fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.tool-dialog .tool-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.tool-dialog .tool-choice { position: relative; display: flex; align-items: flex-start; gap: 12px; min-height: 64px; min-width: 0; padding: 18px; border: 1px solid var(--tool-line); border-radius: 12px; background: #fffdf7; cursor: pointer; transition: background .15s, border-color .15s; }
.tool-dialog .tool-choice:hover { border-color: var(--wine, #164c48); }
.tool-dialog .tool-choice:has(input:checked) { background: #e6eee1; border-color: var(--wine, #164c48); box-shadow: inset 0 0 0 1px var(--wine, #164c48); }
.tool-dialog .tool-radio-input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.tool-dialog .tool-choice:has(input:focus-visible) { outline: 3px solid var(--wine, #164c48); outline-offset: 3px; }
.tool-dialog .tool-choice-dot { flex: 0 0 19px; width: 19px; height: 19px; margin-top: 3px; border: 1.5px solid #73867a; border-radius: 50%; background: #fffdf7; }
.tool-dialog .tool-radio-input:checked + .tool-choice-dot { border: 5px solid var(--wine, #164c48); }
.tool-dialog .tool-choice-copy { display: block; min-width: 0; }
.tool-dialog .tool-choice-title { display: block; color: var(--wine, #164c48); font-weight: 700; font-size: 17px; line-height: 1.4; }
.tool-dialog .tool-choice-detail { display: block; margin-top: 5px; color: var(--tool-muted); font-size: 14px; line-height: 1.5; }
.tool-dialog .tool-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 22px; }
.tool-dialog .tool-form > .tool-actions { margin-top: 0; }
.tool-dialog .tool-error { color: #8b3325; background: #f9e4d8; border-left: 3px solid #8b3325; padding: 12px 16px; font-size: 16px; }
.tool-dialog .tool-search-results { margin-top: 34px; padding-top: 32px; border-top: 1px solid var(--tool-line); }
.tool-dialog .tool-search-results > .tool-kicker { margin-bottom: 8px; }
.tool-dialog .tool-disclosure { margin: 16px 0 12px; padding: 16px 18px; background: #f4ebd6; border-radius: 9px; font-size: 15px; line-height: 1.6; }
.tool-dialog .tool-place-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: 24px 0; }
.tool-dialog .tool-place-card { min-width: 0; display: flex; flex-direction: column; padding: 23px; border: 1px solid var(--tool-line); border-radius: 14px; background: #fffdf7; }
.tool-dialog .tool-card-meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 18px; color: var(--tool-muted); font-size: 10px; letter-spacing: .11em; font-weight: 700; }
.tool-dialog .tool-tag { display: inline-block; flex: 0 0 auto; background: #e9eee2; padding: 4px 9px; border-radius: 20px; color: var(--wine, #164c48); font-size: 10px; letter-spacing: .04em; }
.tool-dialog .tool-place-card h4 { margin: 0 0 13px; color: var(--wine, #164c48); font-family: var(--serif, Georgia, serif); font-size: 28px; line-height: 1.15; font-weight: 400; letter-spacing: -.02em; }
.tool-dialog .tool-place-card p { font-size: 17px; line-height: 1.65; }
.tool-dialog .tool-place-card .tool-place-check { margin-top: 16px; color: var(--tool-muted); font-size: 13px; line-height: 1.7; }
.tool-dialog .tool-provider-links { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 18px; padding-top: 10px; border-top: 1px solid var(--tool-line); }
.tool-dialog .tool-inline-link { display: inline-flex; align-items: center; min-height: 44px; color: var(--wine, #164c48); font-weight: 700; font-size: 14px; line-height: 1.4; text-decoration: underline; text-underline-offset: 4px; }
.tool-dialog .tool-card-actions { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; margin-top: auto; padding-top: 15px; }
.tool-dialog .tool-card-actions .tool-button { padding: 11px 14px; font-size: 14px; }
.tool-dialog .tool-progress-label { display: flex; justify-content: space-between; gap: 16px; color: var(--tool-muted); font-size: 10px; letter-spacing: .12em; font-weight: 700; }
.tool-dialog .tool-progress { display: block; width: 100%; height: 5px; margin-top: -14px; appearance: none; border: 0; border-radius: 4px; background: #e2e6d9; color: var(--wine, #164c48); }
.tool-dialog .tool-progress::-webkit-progress-bar { background: #e2e6d9; border-radius: 4px; }
.tool-dialog .tool-progress::-webkit-progress-value { background: var(--wine, #164c48); border-radius: 4px; }
.tool-dialog .tool-progress::-moz-progress-bar { background: var(--wine, #164c48); border-radius: 4px; }
.tool-dialog .tool-quiz-choices .tool-choice-grid { grid-template-columns: 1fr; }
.tool-dialog .tool-quiz-choices .tool-choice { padding: 18px 21px; }
.tool-dialog .tool-quiz-choices .tool-choice-title { font-size: 18px; }
.tool-dialog .tool-quiz-choices .tool-choice-detail { font-size: 15px; }
.tool-dialog .tool-compass-result { padding: 30px; border-radius: 16px; background: var(--tool-soft); border: 1px solid var(--tool-line); margin-bottom: 30px; }
.tool-dialog .tool-result-heading { color: var(--wine, #164c48); font-family: var(--serif, Georgia, serif); font-size: clamp(32px, 3.8vw, 47px); line-height: 1.08; font-weight: 400; letter-spacing: -.025em; margin: 10px 0 20px; overflow-wrap: anywhere; }
.tool-dialog .tool-compass-result > p:not(.tool-kicker) { margin-top: 14px; }
.tool-dialog .tool-week-plan { padding: 0; margin: 28px 0 0; list-style: none; display: grid; gap: 0; }
.tool-dialog .tool-week-plan li { display: grid; grid-template-columns: 60px minmax(0, 1fr); gap: 18px; padding: 20px 0; border-top: 1px solid #bdc7b6; }
.tool-dialog .tool-day-marker { color: var(--wine, #164c48); font-size: 11px; font-weight: 700; letter-spacing: .08em; padding-top: 4px; }
.tool-dialog .tool-week-plan p { font-size: 17px; line-height: 1.7; }
.tool-dialog .tool-mini-ideas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 20px 0; }
.tool-dialog .tool-mini-ideas article { padding: 20px; background: #fffdf7; border: 1px solid var(--tool-line); border-radius: 12px; }
.tool-dialog .tool-mini-ideas h4 { color: var(--wine, #164c48); font-family: var(--serif, Georgia, serif); font-weight: 400; font-size: 24px; line-height: 1.2; margin-bottom: 12px; }
.tool-dialog .tool-mini-ideas p { font-size: 14px; line-height: 1.65; }
.tool-dialog .tool-reading-links { display: grid; gap: 8px; margin: 24px 0; padding-top: 20px; border-top: 1px solid var(--tool-line); }
.tool-dialog .tool-mode-switch { display: flex; gap: 8px; margin-bottom: 28px; padding: 6px; background: #eaf0e3; border-radius: 999px; width: fit-content; max-width: 100%; }
.tool-dialog .tool-mode-switch .tool-button { border-color: transparent; font-size: 15px; }
.tool-dialog .tool-mode-switch .tool-button[aria-pressed='true'] { color: #fffaf0; background: var(--wine, #164c48); }
.tool-dialog .tool-deck-filters { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; margin: 24px 0; align-items: end; }
.tool-dialog .tool-check-label { display: flex; align-items: flex-start; gap: 12px; min-height: 44px; padding: 10px 0; cursor: pointer; font-size: 16px; line-height: 1.5; }
.tool-dialog .tool-checkbox { flex: 0 0 21px; height: 21px; width: 21px; margin: 2px 0 0; accent-color: var(--wine, #164c48); cursor: pointer; }
.tool-dialog .tool-conversation-card { position: relative; padding: 38px 42px 28px; min-height: 260px; border: 1px solid var(--wine, #164c48); border-radius: 16px 16px 70px 16px; background: var(--butter, #f2d473); box-shadow: 6px 6px 0 #164c4818; margin: 20px 0; }
.tool-dialog .tool-conversation-quote { color: var(--wine, #164c48); font-family: var(--serif, Georgia, serif); font-size: clamp(28px, 3.7vw, 44px); letter-spacing: -.02em; line-height: 1.18; margin: 24px 0 30px; }
.tool-dialog .tool-deck-counter { color: #3c5443; font-size: 10px; letter-spacing: .12em; font-weight: 700; }
.tool-dialog .tool-copy-area { margin-top: 14px; }
.tool-dialog .tool-copy-fallback { padding: 20px; border: 1px solid var(--tool-line); border-radius: 12px; background: #f6eedc; margin-top: 18px; }
.tool-dialog .tool-draft-result { margin-top: 30px; padding: 25px; border: 1px solid var(--tool-line); border-radius: 14px; background: var(--tool-soft); }
.tool-dialog .tool-draft-text { font-size: 18px; line-height: 1.75; }
.tool-dialog .tool-draft-result > .tool-help { margin-top: 8px; }
.tool-dialog .tool-plan-progress { margin: 0 0 30px; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.tool-dialog .tool-plan-progress li { display: flex; align-items: center; gap: 8px; padding: 9px 8px; color: #637268; border-bottom: 2px solid #d4dbcd; font-size: 12px; line-height: 1.3; font-weight: 700; }
.tool-dialog .tool-plan-progress li > span:first-child { display: grid; place-items: center; flex: 0 0 24px; width: 24px; height: 24px; border: 1px solid #a1b2a4; border-radius: 50%; font-size: 11px; }
.tool-dialog .tool-plan-progress .is-current { color: var(--wine, #164c48); border-color: var(--wine, #164c48); }
.tool-dialog .tool-plan-progress .is-current > span:first-child { background: var(--wine, #164c48); border-color: var(--wine, #164c48); color: #fffaf0; }
.tool-dialog .tool-plan-progress .is-complete { color: var(--wine, #164c48); border-color: #708e7d; }
.tool-dialog .tool-plan-sheet { padding: 30px; border: 1px solid var(--tool-line); border-radius: 16px; background: #fffdf7; }
.tool-dialog .tool-plan-details { margin: 0 0 16px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 30px; }
.tool-dialog .tool-plan-details > div { padding: 17px 0; border-top: 1px solid var(--tool-line); min-width: 0; }
.tool-dialog .tool-plan-details dt { font-size: 11px; letter-spacing: .08em; font-weight: 700; text-transform: uppercase; color: var(--tool-muted); margin-bottom: 5px; }
.tool-dialog .tool-plan-details dd { margin: 0; font-size: 17px; line-height: 1.6; overflow-wrap: anywhere; white-space: pre-wrap; }
.tool-dialog .tool-plan-notes { margin: 18px 0; padding: 18px; background: #f3eddf; border-radius: 9px; }
.tool-dialog .tool-plan-notes h4 { font-size: 14px; margin-bottom: 8px; }
.tool-dialog .tool-plan-notes p { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 16px; }
.tool-dialog .tool-plan-safety-title { margin: 24px 0 10px; padding-top: 24px; border-top: 1px solid var(--tool-line); color: var(--wine, #164c48); font-family: var(--serif, Georgia, serif); font-size: 29px; line-height: 1.2; font-weight: 400; }
.tool-dialog .tool-safety-checks { margin: 12px 0 20px; }
.tool-dialog .tool-safety-checks .tool-check-label { padding: 13px 0; border-bottom: 1px solid #e0e4d7; }
.tool-dialog .tool-schedule-note { margin: 20px 0 0; padding: 15px 18px; border-left: 3px solid #82987d; border-radius: 0 8px 8px 0; background: var(--tool-soft); font-size: 15px; line-height: 1.6; }
.tool-dialog .tool-form .tool-schedule-note { margin-top: 0; }
.tool-dialog .tool-schedule-note.is-warning { border-color: #a56c22; background: #f6e9c8; color: #6c4a1c; }
.tool-dialog .tool-actions + .tool-help { margin-top: 14px; }
.tool-dialog .tool-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 760px) {
  .tool-dialog { width: calc(100vw - 24px); max-height: calc(100dvh - 24px); border-radius: 18px; }
  .tool-dialog .tool-header { padding: 24px 66px 23px 26px; }
  .tool-dialog .tool-body { padding: 25px 26px 30px; }
  .tool-dialog .tool-status { padding: 12px 26px; }
  .tool-dialog .tool-mini-ideas { grid-template-columns: 1fr; }
  .tool-dialog .tool-mini-ideas article { padding: 18px; }
  .tool-dialog .tool-mini-ideas h4 { font-size: 26px; }
  .tool-dialog .tool-place-grid { grid-template-columns: 1fr; }
  .tool-dialog .tool-plan-progress { gap: 4px; }
  .tool-dialog .tool-plan-progress li { font-size: 11px; padding: 8px 2px; }
  .tool-dialog .tool-compass-result, .tool-dialog .tool-plan-sheet { padding: 24px; }
}
@media (max-width: 520px) {
  .tool-dialog { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); border-radius: 14px; font-size: 17px; }
  .tool-dialog .tool-header { padding: 22px 56px 20px 20px; }
  .tool-dialog .tool-header h2 { font-size: 32px; line-height: 1.04; }
  .tool-dialog .tool-description { font-size: 14px; line-height: 1.5; }
  .tool-dialog .tool-eyebrow { font-size: 10px; letter-spacing: .12em; }
  .tool-dialog .tool-close { right: 10px; top: 12px; }
  .tool-dialog .tool-body { padding: 22px 19px 26px; }
  .tool-dialog .tool-status { padding: 12px 19px; font-size: 14px; }
  .tool-dialog .tool-field-row, .tool-dialog .tool-choice-grid, .tool-dialog .tool-deck-filters, .tool-dialog .tool-plan-details { grid-template-columns: 1fr; gap: 19px; }
  .tool-dialog .tool-choice { padding: 15px; }
  .tool-dialog .tool-actions { gap: 9px; }
  .tool-dialog .tool-actions > .tool-button { flex: 1 1 auto; }
  .tool-dialog .tool-button { font-size: 15px; padding: 13px 16px; }
  .tool-dialog .tool-form { gap: 21px; }
  .tool-dialog .tool-place-card { padding: 20px; }
  .tool-dialog .tool-progress-label span:last-child { display: none; }
  .tool-dialog .tool-compass-result, .tool-dialog .tool-plan-sheet { padding: 20px; }
  .tool-dialog .tool-week-plan li { grid-template-columns: 1fr; gap: 7px; padding: 20px 0; }
  .tool-dialog .tool-week-plan p { font-size: 17px; }
  .tool-dialog .tool-mode-switch { width: 100%; border-radius: 14px; }
  .tool-dialog .tool-mode-switch .tool-button { flex: 1; border-radius: 10px; padding: 11px 8px; font-size: 13px; }
  .tool-dialog .tool-deck-filters { gap: 9px; }
  .tool-dialog .tool-conversation-card { padding: 28px 24px 26px; border-bottom-right-radius: 45px; min-height: 270px; }
  .tool-dialog .tool-conversation-quote { font-size: 32px; }
  .tool-dialog .tool-draft-result { padding: 19px; }
  .tool-dialog .tool-plan-progress { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 12px; row-gap: 9px; }
  .tool-dialog .tool-plan-progress li { font-size: 12px; }
  .tool-dialog .tool-plan-details { gap: 0; }
  .tool-dialog .tool-result-heading { font-size: 35px; }
  .tool-dialog .tool-copy-fallback { padding: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .tool-dialog *, .tool-dialog *::before, .tool-dialog *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
