/* FO refinement: preserve the ivory / coral / sage identity and product behavior. */
:root {
  --fo-ink: #343b35;
  --fo-muted: #61685f;
  --fo-line: #dedfd5;
  --fo-accent: #a74837;
  --fo-focus: #824633;
  --fo-radius: 14px;
}

.fo-app, .account-main, .studio-edit-page {
  font-family: system-ui, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
}
.fo-app ::selection, .account-main ::selection, .studio-edit-page ::selection {
  background: #f1d9ce;
  color: #343b35;
}
.fo-app :is(input, textarea), .account-main input, .studio-edit-page :is(input, textarea) {
  caret-color: var(--fo-accent);
}
.fo-app :is(input, textarea)::placeholder, .account-main input::placeholder,
.studio-edit-page :is(input, textarea)::placeholder { color: var(--fo-muted); opacity: 1; }
.fo-app :is(button, a, input, select, textarea):focus-visible,
.account-main :is(button, a, input):focus-visible,
.studio-edit-page :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--fo-focus);
  outline-offset: 3px;
}

.fo-app .page { padding-inline: 40px; }
.fo-app { color: var(--fo-ink); }
.fo-app .brand-small { font-size: 11px; }
.fo-app .rail { padding: 32px 20px; background: #f3f0e9; }
.fo-app .rail-item { align-items: center; gap: 12px; min-height: 52px; padding: 14px; }
.fo-app .rail-item img { flex: 0 0 20px; opacity: .8; }
.fo-app .rail-item span { padding: 0; font-size: 15px; }
.fo-app .rail-item.active { color: #894b38; background: #f1dfd5; }
.fo-app .rail-caption, .fo-app .rail-bottom p { color: var(--fo-muted); line-height: 1.8; }
.fo-app .topbar { height: 80px; }
.fo-app .top-label { font-size: 13px; letter-spacing: 0; color: var(--fo-muted); }
.fo-app .text-button { font-size: 14px; }
.fo-app .page main { padding-top: 32px; animation: none; }
.fo-app .hero { padding: 40px; gap: 24px; border-radius: 16px; }
.fo-app .hero-copy { flex: 1; min-width: 0; }
.fo-app .hero h1 { margin: 0 0 20px; font-size: 36px; line-height: 1.35; letter-spacing: -.03em; }
.fo-app .hero p { font-size: 16px; line-height: 1.8; }
.fo-app .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.fo-app .hero-actions .button { margin: 0; }
.fo-app .hero-art { flex-shrink: 0; width: 190px; }
.fo-app .invitation { box-shadow: 0 12px 24px #00000012; }
.fo-app .button { min-height: 48px; border-radius: 12px; font-size: 14px; }
.fo-app :is(.hero-copy, .intro-head, .places-panel, .confirmed, .dialog-head) .eyebrow,
.fo-app .section-top > .eyebrow { display: none; }
.fo-app .intro-head h1 { margin: 0 0 8px; font-size: 28px; letter-spacing: -.025em; }
.fo-app .intro-head .muted { font-size: 15px; }
.fo-app .section-top { margin-block: 32px 16px; }
.fo-app .section-top h2 { font-size: 20px; }
.fo-app .welcome-steps { margin-top: 0; gap: 28px; }
.fo-app .step { padding: 20px 0; }
.fo-app .step-number { color: #686e61; font-family: inherit; font-style: normal; font-size: 14px; font-weight: 700; }
.fo-app .step h3 { margin: 12px 0 8px; font-size: 17px; }
.fo-app .step p { font-size: 14px; }
.fo-app .demo-panel { margin-top: 16px; padding-block: 24px; }
.fo-app .meeting-list { gap: 14px; }
.fo-app .meeting-card { padding: 20px; border-radius: var(--fo-radius); }
.fo-app .meeting-card:hover { transform: none; background: #fcfaf6; }
.fo-app .meeting-card.selected { border-color: var(--fo-accent); box-shadow: none; background: #fff8f2; }
.fo-app .meeting-card h3 { font-size: 17px; line-height: 1.55; }
.fo-app .card-header { gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.fo-app .badge { font-size: 12px; }
.fo-app .status-open { color: #486142; background: #eaf0e6; }
.fo-app .status-confirmed { color: #514a3b; background: #ece8dd; }
.fo-app .meeting-card .meta { font-size: 13px; color: var(--fo-muted); flex-wrap: wrap; }
.fo-app .detail { margin-top: 32px; }
.fo-app .detail-heading .eyebrow { display: inline-block; font-size: 13px; letter-spacing: 0; color: #865340; }
.fo-app .detail-heading h2 { font-size: 24px; line-height: 1.45; letter-spacing: -.025em; }
.fo-app .stats { border: 0; border-block: 1px solid var(--fo-line); border-radius: 0; background: none; padding-block: 20px; }
.fo-app .stat { font-size: 13px; color: var(--fo-muted); font-variant-numeric: tabular-nums; }
.fo-app .stat strong { font-size: 22px; }
.fo-app .tabs { gap: 4px; }
.fo-app .tab { min-width: 110px; }
.fo-app .poll-grid { gap: 24px; }
.fo-app .poll-grid > .panel { padding: 0; border: 0; border-radius: 0; background: none; }
.fo-app .panel-head { margin-bottom: 8px; }
.fo-app .panel-head h3 { line-height: 1.5; }
.fo-app .option-card { background: var(--white); padding: 18px; border-radius: 12px; }
.fo-app .option-card.chosen { background: #fff6ee; }
.fo-app .option-content strong { font-size: 16px; }
.fo-app .option-content p, .fo-app .option-footer { font-size: 13px; }
.fo-app .hint { color: #4f6049; font-size: 14px; padding: 16px 18px; }
.fo-app .empty { border: 0; background: #f1eee6; font-size: 14px; padding: 26px 18px; }
.fo-app .save-bar { border: 0; box-shadow: 0 -4px 18px #373c3612; border-radius: 12px; }
.fo-app .save-bar.unsaved { background: #f9e9df; }
.fo-app :is(.form-error, .fine-print, .small) { line-height: 1.7; }
.fo-app dialog { border: 0; border-radius: 16px; padding: 28px; max-height: calc(100svh - 32px); }
.fo-app dialog .social-login { gap: 10px; margin-bottom: 20px; }
.fo-app dialog h2 { font-size: 24px; line-height: 1.4; }
.fo-app .page-footer { font-size: 12px; line-height: 1.8; flex-wrap: wrap; }
.fo-app .page-footer > span:last-child { font-size: 10px; }
.fo-app .mobile-nav { background: #fffdf9; backdrop-filter: none; }
.fo-app .mobile-nav button { min-width: 0; padding: 6px 2px; }
.fo-app .mobile-nav span { font-size: 12px; }

.meeting-region { min-width: 0; padding: 0; margin: 24px 0 0; border: 0; }
.meeting-region legend { padding: 0; font-size: 14px; font-weight: 600; color: #686e60; }
.meeting-region .quick-region { margin-top: 14px; }
.meeting-region .quick-region-title { font-size: 12px; color: var(--fo-muted); }
.meeting-region .region-chip { min-height: 44px; padding: 9px 14px; border: 1px solid var(--fo-line); border-radius: 12px; font-size: 13px; background: #fffefa; }
.meeting-region .region-chip:hover { background: #f5ebe1; }
.meeting-region .region-chip[aria-pressed=true] { color: #894b38; background: #f1dfd5; border-color: #a74837; font-weight: 600; }
.meeting-region .region-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 12px; }
.meeting-region .region-fields label { min-width: 0; }
.meeting-region .region-fields label:has(input) { grid-column: 1 / -1; }
.meeting-region [hidden] { display: none !important; }
.ten-minute-picker { border: 0; padding: 0; margin: 18px 0; min-width: 0; }
.ten-minute-picker legend { font-size: 14px; font-weight: 600; color: #686e60; padding: 0; }
.ten-minute-controls { clear: both; width: 100%; display: grid; grid-template-columns: minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr); gap: 10px; }
.ten-minute-controls label { margin-top: 8px; font-size: 12px; min-width: 0; }
.ten-minute-controls :is(input,select) { min-width: 0; width: 100%; font-size: 16px; min-height: 48px; padding-inline: 10px; }
.studio-edit-page .studio-step-panel .ten-minute-picker { border: 0; padding: 0; border-radius: 0; margin: 18px 0; background: none; }
@media (max-width: 480px) { .ten-minute-controls { grid-template-columns: repeat(2,minmax(0,1fr)); } .ten-minute-controls label:first-child { grid-column: 1 / -1; } }
@media (max-width: 360px) {
  .meeting-region .region-fields { grid-template-columns: 1fr; }
}

/* Editor chrome only: never restyle the published invitation artwork. */
.studio-edit-page { --studio-accent: #9a533d; --studio-muted: #665e52; }
.studio-edit-page .studio-intro > .eyebrow { display: none; }
.studio-edit-page .studio-intro h1 { font-size: 28px; letter-spacing: -.025em; }
.studio-edit-page .studio-intro p { font-size: 15px; }
.studio-edit-page .studio-layout { gap: 32px; }
.studio-edit-page .editor-panel { min-width: 0; }
.studio-edit-page .collection-head { margin-bottom: 12px; }
.studio-edit-page .collection-head h2 { font-size: 16px; }
.studio-edit-page .collection {
  display: flex; flex-wrap: nowrap; gap: 10px; overflow-x: auto;
  max-height: none; padding-bottom: 8px; scrollbar-width: thin;
}
.studio-edit-page .collection button { flex: 0 0 auto; max-width: 280px; min-height: 54px; padding: 10px 14px; font-size: 13px; }
.studio-edit-page .collection button small { font-size: 12px; }
.studio-edit-page .studio-guide { border: 0; border-radius: 0; padding: 20px 0; margin: 12px 0 16px; background: none; }
.studio-edit-page .studio-guide-top { align-items: center; }
.studio-edit-page .studio-guide-top > span { color: var(--studio-accent); font-weight: 700; font-variant-numeric: tabular-nums; }
.studio-edit-page .studio-guide h2 { font-size: 24px; margin: 14px 0 6px; letter-spacing: -.02em; }
.studio-edit-page .studio-guide p { font-size: 14px; line-height: 1.7; }
.studio-edit-page .studio-guide progress { margin-top: 12px; height: 5px; }
.studio-edit-page .studio-step-panel { border: 0; }
.studio-edit-page .studio-step-nav button { font-size: 13px; }
.studio-edit-page .studio-step-nav button span { font-size: 11px; }
.studio-edit-page .studio-step-panel fieldset { padding: 22px; border-radius: 14px; }
.studio-edit-page .studio-step-panel legend { font-size: 16px; }
.studio-edit-page .studio-step-panel :is(label, .hint) { font-size: 14px; line-height: 1.6; }
.studio-edit-page .template-choice { min-width: 0; }
.studio-edit-page .template-choice strong { font-size: 14px; }
.studio-edit-page .template-choice small { font-size: 12px; line-height: 1.6; }
.studio-edit-page .template-choice:has(input:checked) { box-shadow: none; border-color: var(--studio-accent); }
.studio-edit-page .templates { gap: 20px 12px; align-items: start; }
.studio-edit-page .template-choice { display: flex; flex-direction: column; gap: 8px; }
.studio-edit-page .template-choice > :is(strong,small) { margin: 0; overflow-wrap: anywhere; }
.studio-edit-page .template-choice .mini-card {
  flex: none; width: 100%; height: 170px; padding: 16px 10px;
  justify-content: space-between; align-items: center; gap: 8px;
  box-sizing: border-box; line-height: 1.2;
}
.studio-edit-page .template-choice .mini-card > small { flex: none; font-size: 9px; line-height: 1.2; letter-spacing: .08em; white-space: nowrap; }
.studio-edit-page .template-choice .mini-card-title { flex: none; font-size: 26px; line-height: 1.2; }
.studio-edit-page .template-choice .mini-card-ornament { display: block; flex: none; width: 16px; height: 16px; }
.studio-edit-page .template-choice input:checked + .mini-card { border-color: var(--studio-accent); box-shadow: none; }
.studio-edit-page .template-choice input:focus-visible + .mini-card { outline: 3px solid #496650; outline-offset: 3px; }
.studio-edit-page .template-choice:has(input:checked) > strong { color: var(--studio-accent); }
@media(max-width:760px) {
  .studio-edit-page .template-choice .mini-card { height: 144px; padding: 14px 8px; }
  .studio-edit-page .template-choice .mini-card-title { font-size: 22px; }
  .studio-edit-page .template-choice .mini-card > small { font-size: 8px; }
}
.studio-edit-page .preview-heading { font-size: 13px; letter-spacing: 0; }
.studio-edit-page .studio-toolbar { border-top: 1px solid #e5ddd2; box-shadow: none; }
.studio-edit-page .toolbar-inner p { font-size: 13px; line-height: 1.5; }
.studio-edit-page .toolbar-actions button { min-height: 48px; border-radius: 12px; font-size: 14px; }
.studio-edit-page .studio-wizard-actions button { min-height: 48px; font-size: 14px; }

.account-main { border-radius: 16px; border-color: var(--fo-line); padding: 32px; }
.account-main > .eyebrow { display: none; }
.account-main h1 { font-size: 28px; line-height: 1.4; letter-spacing: -.025em; }
.account-main > p { font-size: 15px; color: var(--fo-muted); }
.account-main input { min-height: 50px; background: #fffefa; border-color: #c8c9bf; }
.account-main .account-links { gap: 16px; line-height: 1.7; }
.account-main .button:not(.secondary) { background: var(--fo-accent); color: white; }
.account-main .button:not(.secondary):hover { background: #8c3b2d; }

@media (max-width: 1100px) {
  .fo-app .page { padding-inline: 28px; }
  .fo-app .hero { padding: 32px; }
  .fo-app .hero h1 { font-size: 32px; }
  .fo-app .hero-art { width: 160px; }
}
@media (max-width: 800px) {
  .fo-app .page { padding-inline: 20px; }
  .fo-app .topbar { height: 68px; }
  .fo-app .page main { padding-top: 24px; }
  .fo-app .hero { padding: 26px 24px; }
  .fo-app .hero h1 { font-size: 28px; line-height: 1.4; margin-bottom: 16px; }
  .fo-app .hero p { font-size: 15px; }
  .fo-app .hero-art { display: none; }
  .fo-app .hero-actions { margin-top: 24px; width: 100%; flex-direction: column; gap: 10px; }
  .fo-app .hero-actions .button { width: 100%; }
  .fo-app .welcome-steps { gap: 0; }
  .fo-app .step { padding: 20px 0 20px 38px; }
  .fo-app .step-number { left: 0; top: 22px; }
  .fo-app .step h3 { margin: 0 0 6px; }
  .fo-app .intro-head { align-items: flex-start; gap: 12px; }
  .fo-app .intro-head h1 { font-size: 24px; }
  .fo-app .intro-head > .button { padding: 12px; font-size: 13px; }
  .fo-app .intro-head .muted { font-size: 14px; }
  .fo-app .meeting-card { flex-basis: min(290px, 88%); }
  .fo-app .detail-heading h2 { font-size: 22px; }
  .fo-app .detail-heading > .button { align-self: stretch; }
  .fo-app .stats { padding-block: 16px; gap: 0; }
  .fo-app .stat { font-size: 12px; line-height: 1.6; }
  .fo-app .stat strong { font-size: 20px; }
  .fo-app .tab { min-width: 0; font-size: 14px; }
  .fo-app .poll-grid { gap: 28px; }
  .fo-app .save-bar { padding: 14px; margin: 20px 0 0; gap: 10px; }
  .fo-app .save-bar .button { min-width: 112px; }
  .fo-app dialog { width: calc(100% - 24px); padding: 22px; }
  .fo-app .page-footer { margin-bottom: 88px; gap: 8px; }
}
@media (max-width: 760px) {
  .studio-edit-page .studio-intro { margin: 18px auto; padding-inline: 20px; }
  .studio-edit-page .studio-intro h1 { font-size: 24px; margin: 0 0 8px; }
  .studio-edit-page .studio-intro p { font-size: 14px; }
  .studio-edit-page .studio-layout { padding-inline: 20px; padding-bottom: 140px; }
  .studio-edit-page .studio-view-switch { margin-inline: 20px; margin-bottom: 16px; }
  .studio-edit-page .collection-head { margin-bottom: 10px; }
  .studio-edit-page .collection-head button { min-height: 44px; padding: 10px 12px; }
  .studio-edit-page .collection button { max-width: 230px; }
  .studio-edit-page .studio-guide { margin-block: 8px 16px; padding-block: 12px 0; }
  .studio-edit-page .studio-guide-top label { display: flex; align-items: center; gap: 8px; font-size: 12px; }
  .studio-edit-page .studio-guide-top select { display: inline-block; margin: 0; max-width: 150px; font-size: 14px; }
  .studio-edit-page .studio-guide h2 { font-size: 22px; margin-top: 12px; }
  .studio-edit-page .studio-step-panel fieldset { padding: 18px; }
  .studio-edit-page .studio-toolbar { padding-inline: 20px; }
  .studio-edit-page .toolbar-inner p { font-size: 12px; margin-bottom: 8px; }
  .studio-edit-page .toolbar-actions { gap: 10px; }
  .studio-edit-page .toolbar-actions button { min-height: 48px; font-size: 14px; }
  .account-main { margin-inline: 16px; padding: 24px; }
  .account-main h1 { font-size: 24px; }
}
@media (max-width: 360px) {
  .fo-app .page, .studio-edit-page .studio-layout { padding-inline: 16px; }
  .fo-app .user-chip > span:nth-child(2) { max-width: 64px; }
  .studio-edit-page .studio-guide-top label { gap: 5px; }
  .studio-edit-page .studio-guide-top { flex-wrap: wrap; }
  .studio-edit-page .studio-guide-top select { max-width: 132px; }
  .studio-edit-page .toolbar-actions { gap: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .fo-app *, .studio-edit-page *, .account-main * { scroll-behavior: auto; transition: none; }
}

.fo-app .page-footer .service-brief{flex-basis:100%;max-width:680px;font-size:12px;line-height:1.85;margin:12px 0;color:var(--ink)}

/* Saved invitations lead with continuing work, rather than a blank editor. */
.time-option-row{padding:18px 0;border-bottom:1px solid #ded5ca}
.time-option-row:first-child{padding-top:0}
.time-option-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}
.time-option-heading strong{font-size:15px}
.time-option-heading button{min-height:44px;padding:8px 10px}
.time-option-row .ten-minute-picker{margin:8px 0 0}
.time-option-add{width:100%;margin:18px 0 8px;min-height:48px}
#time-options-form{max-height:65svh;overflow:auto;padding:2px 4px 8px;scrollbar-width:thin}
#time-options-form>[type=submit]{width:100%;min-height:48px;margin-top:12px}
#time-options-form[aria-busy=true]{opacity:.7}
.fo-app .place-address-copy{display:flex;align-items:center;gap:8px;max-width:100%;min-height:44px;padding:8px 0;background:transparent;color:var(--ink,#403a34);border:0;border-radius:4px;text-align:left;font:inherit;font-size:14px;line-height:1.6}
.place-address-copy>span{text-decoration:underline dotted;text-underline-offset:4px;overflow-wrap:anywhere}
.place-address-copy>small{flex-shrink:0;font-size:12px;color:#72513c}
.fo-app .result .place-phone{margin:0 0 14px;font-size:13px}
.place-map-name{font-weight:700;margin-bottom:6px}
.place-map-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0 8px}
.place-map-choices a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:112px;padding:18px 10px;border:1px solid #d8c9ba;border-radius:12px;text-decoration:none;color:#403a34;background:#fff;font-size:15px;font-weight:600}
.place-map-choices img{border-radius:9px;object-fit:contain}
.place-map-choices a:hover{background:#faf7f2}
.fo-app .result.place-selected{border-color:#66816d;background:#f3f6ef}
.fo-app .result [aria-pressed=true]{background:#496650;color:#fff}
.place-selection{position:sticky;bottom:20px;z-index:4;background:#fffdf9;border:1px solid #d8c9ba;border-radius:12px;padding:16px;margin-top:24px}
.place-selection-summary{display:flex;align-items:center;justify-content:space-between;gap:16px}
.place-selection-summary [role=status]{font-size:14px;color:#403a34}
.place-selection-summary .button{min-height:48px;flex-shrink:0}
.place-selection-list{margin-top:12px;font-size:14px;color:#403a34}
.place-selection-list summary{cursor:pointer;min-height:44px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:4px}
.place-selection-list ul{list-style:none;padding:0;margin:0;max-height:160px;overflow:auto}
.place-selection-list li{display:flex;align-items:center;justify-content:space-between;gap:12px}
.place-selection-list li span{overflow-wrap:anywhere}
.place-selection-list li button{min-height:44px;flex-shrink:0}
.place-save-error{font-size:14px;color:#a83e2f;margin:8px 0 0;line-height:1.6}
.place-save-error:empty{display:none}
@media(max-width:760px){
  .place-selection{bottom:calc(88px + env(safe-area-inset-bottom));padding:12px}
  .place-selection-summary{flex-wrap:wrap;gap:8px}
  .place-selection-summary .button{width:100%}
}
.place-address-copy:focus-visible,.place-map-choices a:focus-visible{outline:3px solid #759c85;outline-offset:3px}
.home-invitations{margin:28px 0 40px}
.invitation-library{max-width:1000px;margin:40px auto;padding:0 24px 64px}
.invitation-library-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}
.invitation-library-heading h1{font-size:28px;margin-bottom:10px;letter-spacing:-.02em}
.invitation-library-heading p{color:#6b5f54;line-height:1.7;margin:0}
.invitation-library-list{border-top:1px solid #ded5ca}
.saved-invitation{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 0;border-bottom:1px solid #ded5ca}
.saved-invitation-info{min-width:0}
.saved-invitation h3{font-size:19px;line-height:1.5;margin:6px 0;overflow-wrap:anywhere}
.saved-invitation p{color:#6b5f54;font-size:13px;line-height:1.7;margin:0}
.invitation-state{font-size:12px;color:#755039}
.saved-invitation-actions{display:flex;gap:8px;flex-shrink:0}
.saved-invitation-actions a,.library-new{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 14px;border:1px solid #d8c9ba;border-radius:8px;text-decoration:none;font-size:14px;color:#574334;background:#fff}
.saved-invitation-actions .invitation-edit-link{background:#9d604b;border-color:#9d604b;color:#fff}
.invitation-edit-link img{filter:brightness(0) invert(1)}
.saved-invitation-actions a:hover,.library-new:hover{filter:brightness(.96)}
.saved-invitation-actions a:focus-visible,.library-new:focus-visible{outline:3px solid #759c85;outline-offset:3px}
.studio-edit-page[data-studio-view=preview] .editor-panel{display:none}
.studio-edit-page[data-studio-view=preview] .studio-layout{display:block}
.studio-edit-page[data-studio-view=preview] .preview-panel{position:static}
.studio-edit-page .studio-view-switch{display:flex;max-width:1216px;margin:0 auto 20px;padding:0 32px;gap:10px}
.studio-edit-page .studio-view-switch button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px}
@media(max-width:760px){
  .invitation-library{margin:28px auto;padding:0 20px 40px}
  .invitation-library-heading{display:block}
  .invitation-library-heading h1{font-size:25px}
  .library-new{margin-top:16px}
  .saved-invitation{display:block;padding:22px 0}
  .saved-invitation-actions{margin-top:16px}
  .saved-invitation-actions a{flex:1}
  .home-invitations{margin:24px 0 32px}
  .studio-edit-page .studio-view-switch{padding:0;margin:0 16px 18px}
}
