/* FAMILY-GUARDIAN-DESIGN-UNIFY-01 — 가족 지킴이 디자인 시스템 01 (owner approved 2026-10-14).
   One look for 사람 · 반려동물 · 가족 위치 on Desktop and Mobile Web, light and dark.
   Scope: elements marked .fg-ui (the three surfaces, the care tabs and welcome, and the
   sheets/dialogs they open). ":not(#fg)" lifts these rules above the shared consumer
   layers so the approved look wins only inside 가족 지킴이. Behaviour stays in the JS. */

:root {
  --fg-bg: #F6F7F9; --fg-surface: #FFFFFF; --fg-sub: #F2F4F6;
  --fg-line: #E5E8EB; --fg-line-strong: #D1D6DB;
  --fg-text: #191F28; --fg-text-2: #4E5968; --fg-text-3: #5F6B7A;
  --fg-blue: #2563EB; --fg-blue-hover: #1D4ED8; --fg-blue-soft: #EEF4FF; --fg-blue-line: #C9DAFD; --fg-blue-text: #1D4ED8;
  --fg-green: #15803D; --fg-green-soft: #EAF8EF; --fg-green-line: #A7E3BC; --fg-green-dot: #22C55E;
  --fg-amber: #B45309; --fg-amber-soft: #FFF5E6; --fg-amber-dot: #F59E0B;
  --fg-red: #D92D20; --fg-red-text: #B42318; --fg-red-soft: #FEF3F2; --fg-red-line: #FECDCA;
  --fg-disabled-bg: #E5E8EB; --fg-disabled-text: #6B7684;
  --fg-kakao: #FEE500; --fg-kakao-text: rgb(0 0 0 / 85%);
  --fg-shadow: 0 1px 2px rgb(25 31 40 / 4%);
}
body[data-site-theme="dark"],
html[data-site-theme-bootstrap="dark"] body:not([data-site-theme]) {
  --fg-bg: #17191C; --fg-surface: #212429; --fg-sub: #2A2E34;
  --fg-line: #33373D; --fg-line-strong: #4A5058;
  --fg-text: #F2F4F6; --fg-text-2: #C5CCD4; --fg-text-3: #A9B2BC;
  --fg-blue: #2F6FEB; --fg-blue-hover: #4A84F0; --fg-blue-soft: #1B2A45; --fg-blue-line: #2D4A7C; --fg-blue-text: #8AB4FF;
  --fg-green: #86EFAC; --fg-green-soft: #133A24; --fg-green-line: #1F5C3A; --fg-green-dot: #22C55E;
  --fg-amber: #F2B774; --fg-amber-soft: #3A2A12; --fg-amber-dot: #F59E0B;
  --fg-red: #C8312A; --fg-red-text: #FCA5A5; --fg-red-soft: #3A1D1D; --fg-red-line: #5B2B2B;
  --fg-disabled-bg: #33373D; --fg-disabled-text: #A9B2BC;
  --fg-shadow: none;
}
@media (prefers-color-scheme: dark) {
  body[data-site-theme="system"],
  html[data-site-theme-bootstrap="system"] body:not([data-site-theme]) {
    --fg-bg: #17191C; --fg-surface: #212429; --fg-sub: #2A2E34;
    --fg-line: #33373D; --fg-line-strong: #4A5058;
    --fg-text: #F2F4F6; --fg-text-2: #C5CCD4; --fg-text-3: #A9B2BC;
    --fg-blue: #2F6FEB; --fg-blue-hover: #4A84F0; --fg-blue-soft: #1B2A45; --fg-blue-line: #2D4A7C; --fg-blue-text: #8AB4FF;
    --fg-green: #86EFAC; --fg-green-soft: #133A24; --fg-green-line: #1F5C3A; --fg-green-dot: #22C55E;
    --fg-amber: #F2B774; --fg-amber-soft: #3A2A12; --fg-amber-dot: #F59E0B;
    --fg-red: #C8312A; --fg-red-text: #FCA5A5; --fg-red-soft: #3A1D1D; --fg-red-line: #5B2B2B;
    --fg-disabled-bg: #33373D; --fg-disabled-text: #A9B2BC;
    --fg-shadow: none;
  }
}

/* ── Workspace canvas, header and tabs (care workspace only) ───────────────── */
body[data-site-theme="dark"] :is(.consumer-workspace[data-workspace="care"], .consumer-workspace[data-workspace="pets"], .consumer-section-panel:has([data-consumer-surface="care"])),
html[data-site-theme-bootstrap="dark"] body:not([data-site-theme]) :is(.consumer-workspace[data-workspace="care"], .consumer-workspace[data-workspace="pets"], .consumer-section-panel:has([data-consumer-surface="care"])) {
  background: var(--fg-bg);
}
@media (prefers-color-scheme: dark) {
  body[data-site-theme="system"] :is(.consumer-workspace[data-workspace="care"], .consumer-workspace[data-workspace="pets"], .consumer-section-panel:has([data-consumer-surface="care"])),
  html[data-site-theme-bootstrap="system"] body:not([data-site-theme]) :is(.consumer-workspace[data-workspace="care"], .consumer-workspace[data-workspace="pets"], .consumer-section-panel:has([data-consumer-surface="care"])) {
    background: var(--fg-bg);
  }
}
/* The approved Desktop boards use a 980 px content column for 가족 지킴이 (other sections keep 880). */
/* FAMILY-GUARDIAN-DESIGN-03 (pc-* boards): a 1080px panel on a PC. */
body.chat-home-page .consumer-workspace:is([data-workspace="care"], [data-workspace="pets"]) > .site-modal.consumer-section-panel:not(#fg) { max-width: 1080px; width: min(100%, 1080px); }
.consumer-section-panel:has([data-consumer-surface="care"]):not(#fg) .site-modal-header h2 {
  font-size: 28px; line-height: 36px; font-weight: 700; letter-spacing: -.02em; color: var(--fg-text);
}
.consumer-section-panel:has([data-consumer-surface="care"]):not(#fg) .site-modal-description {
  font-size: 15px; color: var(--fg-text-2);
}
.fg-tabs:not(#fg) {
  display: flex; gap: 8px; border-bottom: 1px solid var(--fg-line); margin: 0 0 24px; padding: 0; overflow-x: auto; scrollbar-width: none;
}
.fg-tabs:not(#fg) > button {
  position: relative; display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 14px; margin: 0 0 -1px;
  border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: transparent;
  color: var(--fg-text-2); font: inherit; font-size: 15px; font-weight: 600; white-space: nowrap; cursor: pointer;
}
.fg-tabs:not(#fg) > button[aria-selected="true"] { color: var(--fg-blue-text); border-bottom-color: var(--fg-blue); font-weight: 700; }
.fg-tabs:not(#fg) > button .fg-icon { width: 20px; height: 20px; }
.fg-tabs:not(#fg) .fg-tab-count {
  min-width: 22px; height: 22px; padding: 0 7px; border-radius: 999px; background: var(--fg-sub);
  color: var(--fg-text-2); font-size: 12px; font-weight: 700; display: inline-grid; place-items: center;
}
.fg-tabs:not(#fg) .fg-tab-count:empty { display: none; }
.fg-tabs:not(#fg) .fg-tab-sep { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fg-tabs:not(#fg) > button[aria-selected="true"] .fg-tab-count { background: var(--fg-blue-soft); color: var(--fg-blue-text); }
.fg-tabs:not(#fg) > button:focus-visible { outline: 2px solid var(--fg-blue); outline-offset: -2px; }

/* ── Base inside 가족 지킴이 ──────────────────────────────────────────────── */
.fg-ui:not(#fg) { color: var(--fg-text); }
.fg-ui:not(#fg):is(.person-care-surface, .pet-family-surface, .family-loc-surface) { min-width: 0; max-width: 100%; box-sizing: border-box; }
.fg-ui:not(#fg) [hidden] { display: none !important; }
.fg-ui:not(#fg) .fg-icon {
  width: 20px; height: 20px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}
.fg-ui:not(#fg) .fg-icon-line { display: flex; align-items: flex-start; gap: 8px; }
.fg-ui:not(#fg) .fg-icon-line > .fg-icon { width: 18px; height: 18px; margin-top: 2px; color: var(--fg-text-3); }
.fg-ui:not(#fg) :is(h3, h4, h5) { color: var(--fg-text); letter-spacing: -.01em; }
.fg-ui:not(#fg) .fg-sr-only { position: absolute !important; width: 1px !important; min-width: 0 !important; height: 1px !important; min-height: 0 !important; margin: -1px !important; padding: 0 !important; border: 0 !important; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Buttons — one family of controls everywhere. */
.fg-ui:not(#fg) :is(.site-button, .family-loc-button) {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; box-sizing: border-box;
  min-height: 48px; padding: 0 20px; border: 1px solid var(--fg-line-strong); border-radius: 12px;
  background: var(--fg-surface); color: var(--fg-text); font: inherit; font-size: 15px; font-weight: 700;
  line-height: 1.3; text-align: center; text-decoration: none; white-space: normal; cursor: pointer; box-shadow: none;
}
.fg-ui:not(#fg) :is(.site-button, .family-loc-button) .fg-icon,
.fg-ui:not(#fg) .family-loc-button .family-loc-icon { width: 18px; height: 18px; }
.fg-ui:not(#fg) :is(.site-button, .family-loc-button):hover { border-color: var(--fg-text-3); }
.fg-ui:not(#fg) :is(.person-primary, .site-button-primary, .family-loc-primary) {
  background: var(--fg-blue); border-color: var(--fg-blue); color: #fff;
}
.fg-ui:not(#fg) :is(.person-primary, .site-button-primary, .family-loc-primary):hover { background: var(--fg-blue-hover); border-color: var(--fg-blue-hover); opacity: 1; }
.fg-ui:not(#fg) :is(.person-danger, .family-loc-danger, .pet-delete-button, .fg-danger-line, .pet-case-cancel) {
  background: var(--fg-surface); border-color: var(--fg-red-line); color: var(--fg-red-text);
}
.fg-ui:not(#fg) :is(.fg-danger, .family-loc-sos-button, .person-sos-form button[type="submit"], [data-pet-sos-form] button[type="submit"]) {
  background: var(--fg-red); border-color: var(--fg-red); color: #fff;
}
.fg-ui:not(#fg) :is(.person-text-button, .family-loc-quiet) {
  min-height: 40px; padding: 0 8px; border: 0; background: transparent; color: var(--fg-blue-text); font-weight: 700;
}
.fg-ui:not(#fg) .family-loc-quiet.family-loc-danger { color: var(--fg-red-text); }
/* 가족 위치 keeps its 48 px touch rule (FAMILY-LOCATION-DESIGN-01) for every button and tool. */
.fg-ui:not(#fg) :is(.family-loc-button, .family-loc-tool) { min-height: 48px; }
.fg-ui:not(#fg) :is(.safecare-found-cta-button, .fg-soft) { background: var(--fg-blue-soft); border-color: transparent; color: var(--fg-blue-text); }
.fg-ui:not(#fg) .family-loc-kakao { background: var(--fg-kakao); border-color: var(--fg-kakao); color: var(--fg-kakao-text); }
.fg-ui:not(#fg) .family-loc-kakao:hover { background: #F5DC00; border-color: #F5DC00; }
.fg-ui:not(#fg) .fg-kakao-symbol { width: 20px; height: 20px; fill: #000; stroke: none; flex: 0 0 auto; }
.fg-ui:not(#fg) :is(.site-button, .family-loc-button):is(:disabled, [aria-disabled="true"]) {
  background: var(--fg-disabled-bg); border-color: var(--fg-disabled-bg); color: var(--fg-disabled-text); cursor: not-allowed; opacity: 1;
}
.fg-ui:not(#fg) :is(button, a, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--fg-blue); outline-offset: 2px;
}

/* Fields */
/* 소유자 10-28 S26 내 아이 › 아이 추가: the 내 아이 screen keeps 지역정보's own fields (site-life-my-child.css); these general
   field rules out-ranked its search box input and drew a second box inside it. */
.fg-ui:not(#fg) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]), select, textarea):not(.fg-my-child-scope *) {
  box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; min-height: 52px;
  padding: 0 16px; border: 1px solid var(--fg-line-strong); border-radius: 12px;
  background: var(--fg-surface); color: var(--fg-text); font: inherit; font-size: 16px; line-height: 1.5;
}
.fg-ui:not(#fg) textarea { min-height: 104px; padding: 14px 16px; resize: vertical; }
.fg-ui:not(#fg) :is(input, select, textarea):disabled:not(.fg-my-child-scope *) { background: var(--fg-sub); color: var(--fg-text-2); }
.fg-ui:not(#fg) :is(input:not([type=checkbox]):not([type=radio]), select, textarea):focus:not(.fg-my-child-scope *) { border-color: var(--fg-blue); outline: 2px solid var(--fg-blue-soft); outline-offset: 0; }
.fg-ui:not(#fg) :is(input[type=checkbox], input[type=radio]) { accent-color: var(--fg-blue); width: 20px; height: 20px; flex: 0 0 auto; }
.fg-ui:not(#fg) :is(.person-field-label, .family-loc-field-label, .site-field > span:first-child) { font-size: 14px; font-weight: 700; color: var(--fg-text); }
.fg-ui:not(#fg) :is(.person-field-hint, .pet-field-hint, .safecare-submit-hint) { font-size: 13px; line-height: 1.5; color: var(--fg-text-3); }
.fg-ui:not(#fg) :is(.person-error, .pet-error, .site-field-error, .safecare-slot-error) {
  padding: 10px 14px; border-radius: 10px; background: var(--fg-red-soft); color: var(--fg-red-text); font-size: 14px; line-height: 1.5;
}
.fg-ui:not(#fg) :is(.person-status, .pet-status, .family-loc-status) {
  margin: 0 0 12px; padding: 12px 16px; border-radius: 12px; background: var(--fg-blue-soft); color: var(--fg-blue-text); font-size: 14px; line-height: 1.5;
}
.fg-ui:not(#fg) :is(.person-status, .pet-status, .family-loc-status, .person-error, .pet-error, .site-field-error, .safecare-slot-error, .pet-slot-error):empty { display: none; }
.fg-ui:not(#fg) .family-loc-status[role="alert"] { background: var(--fg-red-soft); color: var(--fg-red-text); }

/* Cards and panels */
.fg-ui:not(#fg) :is(.person-card, .pet-card, .family-loc-card, .person-form, .pet-form, .pet-draft-body, .safecare-found-cta, .person-empty-panel, .pet-empty, .family-loc-empty, .pet-detail-section, .person-danger-zone, .family-guardian-welcome) {
  box-sizing: border-box; background: var(--fg-surface); border: 1px solid var(--fg-line); border-radius: 16px; box-shadow: var(--fg-shadow); color: var(--fg-text);
}
.fg-ui:not(#fg) :is(.person-card, .pet-card, .family-loc-card) { padding: 20px; display: flex; flex-direction: column; gap: 14px; }
.fg-ui:not(#fg) :is(.person-form, .pet-draft-body) { padding: 28px 32px; display: flex; flex-direction: column; gap: 20px; }

/* Status badges (dot + short words) */
.fg-ui:not(#fg) .safecare-badge {
  display: inline-flex; align-items: center; gap: 6px; min-height: 26px; padding: 0 10px; border: 0; border-radius: 999px;
  font-size: 12.5px; font-weight: 700; line-height: 1.2; white-space: nowrap; background: var(--fg-sub); color: var(--fg-text-2);
}
.fg-ui:not(#fg) .safecare-badge::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: 0 0 auto; }
.fg-ui:not(#fg) :is(.safecare-badge-ok, .safecare-badge-success) { background: var(--fg-green-soft); color: var(--fg-green); }
.fg-ui:not(#fg) :is(.safecare-badge-progress, .safecare-badge-draft) { background: var(--fg-blue-soft); color: var(--fg-blue-text); }
.fg-ui:not(#fg) .safecare-badge-warning { background: var(--fg-amber-soft); color: var(--fg-amber); }
.fg-ui:not(#fg) .safecare-badge-danger { background: var(--fg-red-soft); color: var(--fg-red-text); }
.fg-ui:not(#fg) .safecare-badge-neutral { background: var(--fg-sub); color: var(--fg-text-2); }

/* Notes: lock line, blue note, gray note, emergency box */
.fg-ui:not(#fg) :is(.person-consent, .pet-notice, .pet-consent-copy, .family-loc-footer, .person-review-notices, .pet-case-safety) {
  display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 14px 16px; border-radius: 12px;
  background: var(--fg-sub); color: var(--fg-text-2); font-size: 13.5px; line-height: 1.55;
}
.fg-ui:not(#fg) :is(.person-consent, .pet-notice, .pet-consent-copy, .family-loc-footer, .pet-case-safety)::before {
  content: ""; width: 18px; height: 18px; margin-top: 1px; flex: 0 0 auto; background: currentColor; opacity: .75;
  -webkit-mask: var(--fg-mask-shield) center / contain no-repeat; mask: var(--fg-mask-shield) center / contain no-repeat;
}
.fg-ui:not(#fg) {
  --fg-mask-shield: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
  --fg-mask-lock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='11' x='3' y='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E");
  --fg-mask-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4'/%3E%3Cpath d='M12 8h.01'/%3E%3C/svg%3E");
  --fg-mask-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='M12 5v14'/%3E%3C/svg%3E");
  --fg-mask-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  --fg-mask-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  --fg-mask-alert: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3'/%3E%3Cpath d='M12 9v4'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E");
}
.fg-ui:not(#fg) .fg-lockline {
  display: flex; gap: 8px; align-items: flex-start; padding: 0; background: transparent; color: var(--fg-text-2); font-size: 13.5px;
}
.fg-ui:not(#fg) .fg-lockline::before { -webkit-mask-image: var(--fg-mask-lock); mask-image: var(--fg-mask-lock); width: 16px; height: 16px; margin-top: 2px; }
.fg-ui:not(#fg) :is(.person-bulk-warning, .person-info-callout, .family-loc-request, .fg-note-blue) {
  display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 12px 14px; border-radius: 12px;
  background: var(--fg-blue-soft); color: var(--fg-blue-text); font-size: 13.5px; line-height: 1.55;
}
.fg-ui:not(#fg) :is(.person-bulk-warning, .person-info-callout, .fg-note-blue)::before {
  content: ""; width: 18px; height: 18px; margin-top: 1px; flex: 0 0 auto; background: currentColor;
  -webkit-mask: var(--fg-mask-info) center / contain no-repeat; mask: var(--fg-mask-info) center / contain no-repeat;
}
.fg-ui:not(#fg) .safecare-emergency {
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 0; padding: 16px 18px; border-radius: 12px;
  background: var(--fg-red-soft); border: 1px solid var(--fg-red-line); color: var(--fg-red-text);
}
.fg-ui:not(#fg) .safecare-emergency-text { flex: 1 1 260px; margin: 0; font-size: 14px; line-height: 1.55; color: var(--fg-red-text); }
.fg-ui:not(#fg) .safecare-emergency-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.fg-ui:not(#fg) .safecare-emergency-call { min-height: 44px; background: var(--fg-surface); border-color: var(--fg-red-line); color: var(--fg-red-text); }

/* Found-report call to action */
.fg-ui:not(#fg) .safecare-found-cta { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding: 18px 20px; }
.fg-ui:not(#fg) .fg-cta-icon {
  width: 48px; height: 48px; border-radius: 14px; background: var(--fg-blue-soft); color: var(--fg-blue);
  display: grid; place-items: center; flex: 0 0 auto;
}
.fg-ui:not(#fg) .fg-cta-icon .fg-icon { width: 24px; height: 24px; }
.fg-ui:not(#fg) .safecare-found-cta-copy { flex: 1 1 240px; display: flex; flex-direction: column; gap: 2px; }
.fg-ui:not(#fg) .safecare-found-cta-copy strong { font-size: 16px; font-weight: 700; }
.fg-ui:not(#fg) .safecare-found-cta-copy span { font-size: 14px; color: var(--fg-text-2); }

/* Empty / loading / error states */
.fg-ui:not(#fg) :is(.person-empty-panel, .pet-empty, .family-loc-empty) {
  display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; padding: 32px 24px;
}
.fg-ui:not(#fg) :is(.person-empty-panel, .pet-empty, .family-loc-empty) > p { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--fg-text-2); max-width: 520px; }
.fg-ui:not(#fg) :is(.fg-state-icon, .family-loc-empty > .family-loc-icon) {
  width: 56px; height: 56px; border-radius: 50%; margin-bottom: 4px; background: var(--fg-blue-soft); color: var(--fg-blue);
  flex: 0 0 auto; display: grid; place-items: center; box-sizing: border-box;
}
.fg-ui:not(#fg) .fg-state-icon .fg-icon { width: 28px; height: 28px; }
.fg-ui:not(#fg) .fg-state-icon.is-error { background: var(--fg-red-soft); color: var(--fg-red); }
.fg-ui:not(#fg) .fg-state-icon.is-warn { background: var(--fg-amber-soft); color: var(--fg-amber); }
.fg-ui:not(#fg) .family-loc-empty > .family-loc-icon { padding: 14px; stroke: var(--fg-blue); }
.fg-ui:not(#fg) :is(.person-empty-panel > p:first-of-type, .pet-empty-title, .family-loc-empty > h3) { font-size: 17px; font-weight: 700; color: var(--fg-text); margin: 0; }
.fg-ui:not(#fg) .safecare-guide { margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.fg-ui:not(#fg) .safecare-guide-copy { margin: 0; font-size: 15px; line-height: 1.6; color: var(--fg-text-2); }
.fg-ui:not(#fg) .pet-draft-body > .pet-empty-copy, .fg-ui:not(#fg) .pet-draft-body .pet-slot-examples { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--fg-text-2); }
.fg-ui:not(#fg) .pet-draft-body > .pet-form { display: flex; flex-direction: column; gap: 18px; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.fg-ui:not(#fg) :is(.pet-photo-context-note, .pet-photo-progress-note) { margin: 0; font-size: 13.5px; line-height: 1.55; color: var(--fg-text-2); }
.fg-ui:not(#fg) .pet-photo-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.fg-ui:not(#fg) .pet-photo-title { margin: 0; font-size: 20px; font-weight: 700; }
.fg-ui:not(#fg) .pet-photo-section { display: flex; flex-direction: column; gap: 16px; }
.fg-ui:not(#fg) .pet-empty-copy { font-size: 14.5px; color: var(--fg-text-2); margin: 0; }
.fg-ui:not(#fg) :is(.person-empty-panel, .pet-empty, .family-loc-empty) .family-loc-actions { justify-content: center; }
.fg-ui:not(#fg) .safecare-loading {
  display: block; padding: 24px; border-radius: 16px; border: 1px solid var(--fg-line); background: var(--fg-surface); color: var(--fg-text-2); text-align: center;
}

/* Step indicator (4 steps, circles joined by a line) */
.fg-ui:not(#fg) .safecare-stepper { margin: 0; padding: 0; border: 0; background: transparent; }
.fg-ui:not(#fg) .safecare-step-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fg-ui:not(#fg) .safecare-steps { display: flex; align-items: flex-start; gap: 0; margin: 0; padding: 0; list-style: none; grid-template-columns: none; }
.fg-ui:not(#fg) .safecare-step {
  position: relative; flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 8px;
  margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; text-align: center;
}
.fg-ui:not(#fg) .safecare-step::before {
  content: ""; position: absolute; top: 15px; left: calc(-50% + 22px); right: calc(50% + 22px); height: 2px; background: var(--fg-line);
}
.fg-ui:not(#fg) .safecare-step:first-child::before { display: none; }
.fg-ui:not(#fg) .safecare-step:is([data-safecare-step-state="done"], [data-safecare-step-state="active"])::before { background: var(--fg-blue); }
.fg-ui:not(#fg) .safecare-step-number {
  position: relative; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; margin: 0;
  background: var(--fg-sub); color: var(--fg-text-3); font-size: 14px; font-weight: 700; border: 0; clip: auto; overflow: visible;
}
.fg-ui:not(#fg) .safecare-step[data-safecare-step-state="done"] .safecare-step-number { background: var(--fg-blue-soft); color: var(--fg-blue-text); }
.fg-ui:not(#fg) .safecare-step[data-safecare-step-state="active"] .safecare-step-number { background: var(--fg-blue); color: #fff; box-shadow: 0 0 0 4px var(--fg-blue-soft); }
.fg-ui:not(#fg) .safecare-step-name { font-size: 14px; line-height: 1.3; color: var(--fg-text-3); font-weight: 500; }
.fg-ui:not(#fg) .safecare-step[data-safecare-step-state="done"] .safecare-step-name { color: var(--fg-text-2); }
.fg-ui:not(#fg) .safecare-step[data-safecare-step-state="active"] .safecare-step-name { color: var(--fg-blue-text); font-weight: 700; }
.fg-ui:not(#fg) .fg-stepper-card { padding-bottom: 20px; border-bottom: 1px solid var(--fg-line); }

/* Wizard screens */
.fg-ui:not(#fg) :is(.safecare-back, .person-registration-bar) { display: flex; align-items: center; gap: 12px; margin: 0 0 16px; padding: 0; border: 0; background: transparent; }
.fg-ui:not(#fg) :is(.safecare-back, .person-registration-bar) > .site-button { min-height: 40px; padding: 0 14px; font-size: 14px; border-radius: 10px; }
.fg-ui:not(#fg) .person-screen-intro { display: flex; flex-direction: column; gap: 6px; }
.fg-ui:not(#fg) .person-screen-eyebrow { margin: 0; font-size: 14px; font-weight: 700; color: var(--fg-blue-text); }
.fg-ui:not(#fg) :is(.person-form-title, .pet-draft-title) { margin: 0; font-size: 26px; line-height: 34px; font-weight: 700; letter-spacing: -.02em; color: var(--fg-text); }
.fg-ui:not(#fg) :is(.person-screen-subtitle, .pet-draft-lead) { margin: 0; font-size: 15px; line-height: 1.6; color: var(--fg-text-2); }
.fg-ui:not(#fg) :is(.person-form-actions, .safecare-wizard-actions, .pet-draft-actions) {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; margin: 0; padding-top: 20px; border-top: 1px solid var(--fg-line);
}
.fg-ui:not(#fg) :is(.person-form-actions, .safecare-wizard-actions, .pet-draft-actions) > .person-field-hint,
.fg-ui:not(#fg) :is(.person-form-actions, .safecare-wizard-actions, .pet-draft-actions) > .safecare-submit-hint { flex: 1 1 100%; text-align: right; order: 9; }
.fg-ui:not(#fg) .person-form-actions-end { justify-content: flex-end; }
.fg-ui:not(#fg) .person-basic-fields { display: flex; flex-direction: column; gap: 16px; }
.fg-ui:not(#fg) .person-field-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; }
.fg-ui:not(#fg) :is(.person-field, .site-field) { display: flex; flex-direction: column; gap: 8px; }
.fg-ui:not(#fg) .person-birth-trigger {
  min-height: 52px; padding: 0 16px; border: 1px solid var(--fg-line-strong); border-radius: 12px; background: var(--fg-surface);
  color: var(--fg-text); font: inherit; font-size: 16px; text-align: left; cursor: pointer;
}
.fg-ui:not(#fg) .person-birth-trigger[data-has-value="false"] { color: var(--fg-text-3); }

/* Photo step: title left, gallery button right (Desktop); stacked on phones */
.fg-ui:not(#fg) .fg-photo-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 360px); gap: 16px 32px; align-items: start; }
.fg-ui:not(#fg) .fg-photo-head > .person-bulk:has(.person-bulk-list:not(:empty)),
.fg-ui:not(#fg) .fg-photo-head > .person-bulk[data-person-bulk-busy="true"] { grid-column: 1 / -1; }
.fg-ui:not(#fg) .person-bulk { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.fg-ui:not(#fg) .person-bulk-title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fg-ui:not(#fg) .person-bulk-pick { width: 100%; min-height: 56px; font-size: 16px; }
.fg-ui:not(#fg) .person-bulk-help { align-self: stretch; width: 100%; margin: 0; padding: 0; border: 0; text-align: left; font-size: 13px; color: var(--fg-text-2); }
.fg-ui:not(#fg) .person-bulk-help > summary { cursor: pointer; color: var(--fg-text-2); font-size: 13px; font-weight: 600; min-height: 32px; display: flex; align-items: center; justify-content: flex-start; text-decoration: underline; text-underline-offset: 3px; }
.fg-ui:not(#fg) .person-bulk-warning { border: 0; font-weight: 500; }
.fg-ui:not(#fg) :is(.person-content, .person-form, .pet-section, .pet-detail-section, .pet-photo-section, .pet-draft-body, .fg-photo-head, .person-screen-intro, .person-bulk, .family-loc-content, .family-loc-main, .family-loc-side) { min-width: 0; max-width: 100%; }
.fg-ui:not(#fg) .pet-detail-section { padding: 24px; }
.fg-ui:not(#fg) .person-bulk-help > p { margin: 6px 0 0; font-size: 13px; line-height: 1.55; color: var(--fg-text-2); }
.fg-ui:not(#fg) .person-bulk-status:empty { display: none; }
.fg-ui:not(#fg) .person-bulk-status { margin: 0; font-size: 14px; font-weight: 600; color: var(--fg-text); }
.fg-ui:not(#fg) .person-bulk-bar { height: 8px; border-radius: 999px; background: var(--fg-line); overflow: hidden; }
.fg-ui:not(#fg) .person-bulk-bar-fill { display: block; height: 100%; background: var(--fg-blue); border-radius: 999px; }
.fg-ui:not(#fg) .person-bulk-result:empty { display: none; }
.fg-ui:not(#fg) .person-bulk-result,
.fg-ui:not(#fg) .pet-bulk > .person-bulk-list:not([hidden]) {
  display: flex; flex-direction: column; gap: 10px; padding: 16px 18px; border: 1px solid var(--fg-line); border-radius: 12px; background: var(--fg-surface);
}
.fg-ui:not(#fg) .person-bulk-summary { margin: 0; font-size: 15px; font-weight: 700; }
.fg-ui:not(#fg) .person-bulk-list { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.fg-ui:not(#fg) .person-bulk-item { display: flex; gap: 12px; align-items: flex-start; flex-wrap: wrap; padding: 0; border: 0; background: transparent; }
.fg-ui:not(#fg) .person-bulk-thumb { width: 44px; height: 44px; border-radius: 8px; overflow: hidden; background: var(--fg-sub); flex: 0 0 auto; display: grid; place-items: center; font-size: 12px; color: var(--fg-text-3); }
.fg-ui:not(#fg) .person-bulk-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fg-ui:not(#fg) .person-bulk-body { flex: 1 1 220px; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.fg-ui:not(#fg) .person-bulk-item-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.fg-ui:not(#fg) .person-bulk-item-title { font-size: 14px; }
.fg-ui:not(#fg) :is(.person-bulk-item-message, .person-bulk-item-slot) { margin: 0; font-size: 13.5px; color: var(--fg-text-2); }
.fg-ui:not(#fg) .person-bulk-item-message.is-error { color: var(--fg-red-text); }
.fg-ui:not(#fg) :is(.person-bulk-notice, .person-bulk-alert, .person-bulk-anchor-hint) { margin: 0; padding: 10px 14px; border-radius: 10px; background: var(--fg-amber-soft); color: var(--fg-amber); font-size: 13.5px; }
.fg-ui:not(#fg) .person-bulk-item-actions { display: flex; gap: 8px; }
.fg-ui:not(#fg) :is(.person-bulk-item-actions .site-button, .pet-slot-retry-action, [data-person-bulk-clear]) { min-height: 40px; padding: 0 14px; font-size: 14px; border-radius: 10px; }
.fg-ui:not(#fg) [data-person-bulk-clear] { align-self: flex-end; border: 0; color: var(--fg-blue-text); background: transparent; }

/* Section heading of the example tiles */
.fg-ui:not(#fg) :is(.person-photo-reference-head, .fg-tiles-head) { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: nowrap; text-align: left; }
.fg-ui:not(#fg) :is(.person-photo-reference-head, .fg-tiles-head) span { text-align: right; font-weight: 400; }
.fg-ui:not(#fg) :is(.person-photo-reference-head, .fg-tiles-head) strong { font-size: 17px; font-weight: 700; }
.fg-ui:not(#fg) :is(.person-photo-reference-head, .fg-tiles-head) span { font-size: 13px; color: var(--fg-text-3); }

/* Photo tiles — real photos only */
.fg-ui:not(#fg) :is(.safecare-slot-grid, .pet-slot-grid) { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; }
.fg-ui:not(#fg) .safecare-found-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.fg-ui:not(#fg) :is(.safecare-slot, .pet-slot) {
  position: relative; /* keeps the visually hidden slot number inside the scrolling strip */
  display: flex; flex-direction: column; gap: 8px; min-width: 0; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none;
}
.fg-ui:not(#fg) :is(.safecare-slot-media, .pet-slot-media) {
  position: relative; aspect-ratio: 1 / 1; width: 100%; min-height: 0; border-radius: 12px; overflow: hidden;
  background: var(--fg-sub); border: 1px solid var(--fg-line); box-sizing: border-box; display: block; padding: 0;
}
.fg-ui:not(#fg) .pet-slot-media { aspect-ratio: 4 / 3; }
.fg-ui:not(#fg) :is(.safecare-slot-media, .pet-slot-media) > :is(img, .person-slot-guide-image, .pet-slot-guide-image) {
  position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0; margin: 0; max-width: none;
}
.fg-ui:not(#fg) :is(.safecare-slot-media, .pet-slot-media) > :is(.safecare-slot-loading, .pet-slot-loading) {
  position: absolute; inset: 0; display: grid; place-items: center; font-size: 12px; color: var(--fg-text-3);
}
.fg-ui:not(#fg) :is(.safecare-slot[data-safecare-slot-filled="true"], .pet-slot[data-pet-slot-filled="true"]) :is(.safecare-slot-media, .pet-slot-media) { border: 2px solid var(--fg-green); }
.fg-ui:not(#fg) .pet-slot[data-pet-photo-inspection="rejected"] .pet-slot-media { border: 2px solid var(--fg-red); }
.fg-ui:not(#fg) .fg-tile-tag {
  position: absolute; left: 8px; top: 8px; z-index: 1; display: inline-flex; align-items: center; height: 22px; padding: 0 8px;
  border-radius: 999px; font-size: 12px; font-weight: 700; background: rgb(25 31 40 / 62%); color: #fff; pointer-events: none;
}
.fg-ui:not(#fg) .fg-tile-tag-filled { background: #15803D; color: #fff; }
.fg-ui:not(#fg) .fg-tile-tag-rejected { background: #D92D20; color: #fff; }
.fg-ui:not(#fg) .fg-tile-tag-pending { background: #1D4ED8; color: #fff; }
.fg-ui:not(#fg) :is(.safecare-slot-caption, .pet-slot-caption) {
  display: flex; flex-direction: column; align-items: center; gap: 1px; margin: 0; padding: 0; text-align: center; background: transparent;
}
.fg-ui:not(#fg) .safecare-slot-compact .safecare-slot-index,
.fg-ui:not(#fg) .pet-slot-index { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fg-ui:not(#fg) :is(.safecare-slot-label, .pet-slot-label) { font-size: 13.5px; font-weight: 700; color: var(--fg-text); line-height: 1.35; }
.fg-ui:not(#fg) .fg-tile-sub { font-size: 12px; font-weight: 400; color: var(--fg-text-3); line-height: 1.35; }
.fg-ui:not(#fg) :is(.safecare-slot-hint, .pet-slot-hint, .safecare-slot-visible) { margin: 0; font-size: 12px; line-height: 1.45; color: var(--fg-text-3); text-align: center; }
.fg-ui:not(#fg) .pet-draft-photo-state { margin: 0; font-size: 12px; line-height: 1.45; text-align: center; color: var(--fg-text-2); }
.fg-ui:not(#fg) .pet-draft-photo-state-accepted { color: var(--fg-green); }
.fg-ui:not(#fg) .pet-draft-photo-state-rejected { color: var(--fg-red-text); }
.fg-ui:not(#fg) .pet-draft-photo-state-pending { color: var(--fg-blue-text); }
.fg-ui:not(#fg) :is(.safecare-slot-remove, .pet-slot-actions .site-button, .pet-slot-actions button) { min-height: 36px; padding: 0 10px; font-size: 13px; border-radius: 10px; align-self: center; }
.fg-ui:not(#fg) .pet-slot-actions { display: flex; justify-content: center; }
.fg-ui:not(#fg) :is(.safecare-slot-examples, .pet-slot-examples) { margin: 0; }
.fg-ui:not(#fg) [data-person-bulk-running] [data-person-slot-grid] { opacity: .55; }

/* Photo-count tiles */
.fg-ui:not(#fg) .fg-counts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.fg-ui:not(#fg) .fg-count { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 12px; background: var(--fg-sub); min-width: 0; }
.fg-ui:not(#fg) .fg-count-icon { width: 40px; height: 40px; border-radius: 10px; background: var(--fg-surface); color: var(--fg-blue); display: grid; place-items: center; flex: 0 0 auto; }
.fg-ui:not(#fg) .fg-count.is-done { background: var(--fg-green-soft); }
.fg-ui:not(#fg) .fg-count.is-done .fg-count-icon { color: var(--fg-green); }
.fg-ui:not(#fg) .fg-count-copy { display: flex; flex-direction: column; min-width: 0; }
.fg-ui:not(#fg) .fg-count-value { font-size: 20px; line-height: 24px; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--fg-text); }
.fg-ui:not(#fg) .fg-count-value em { font-style: normal; font-size: 15px; font-weight: 600; color: var(--fg-text-3); }
.fg-ui:not(#fg) .fg-count-label { font-size: 13px; color: var(--fg-text-2); }
.fg-ui:not(#fg) .safecare-photo-counter { display: block; margin: 0; padding: 0; border: 0; background: transparent; }
.fg-ui:not(#fg) .safecare-photo-counter:not(.fg-sr-only) { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; font-size: 14px; color: var(--fg-text-2); }
.fg-ui:not(#fg) .safecare-photo-counter:not(.fg-sr-only) strong { font-size: 17px; color: var(--fg-text); }
.fg-ui:not(#fg) :is(.safecare-progress, .pet-progress-bar) { height: 8px; border-radius: 999px; background: var(--fg-line); overflow: hidden; position: relative; margin: 0; }
.fg-ui:not(#fg) :is(.safecare-progress-fill, .pet-progress-fill) { display: block; height: 100%; background: var(--fg-blue); border-radius: 999px; }
.fg-ui:not(#fg) .safecare-progress-mark { position: absolute; left: 50%; top: -18px; font-size: 12px; color: var(--fg-text-3); }
.fg-ui:not(#fg) .safecare-progress-found { margin-top: 18px; overflow: visible; }
.fg-ui:not(#fg) .safecare-photo-set-note,
.fg-ui:not(#fg) [data-pet-draft-photo-note] {
  display: flex; gap: 10px; margin: 0; padding: 12px 14px; border-radius: 12px; background: var(--fg-blue-soft); color: var(--fg-blue-text); font-size: 13.5px; line-height: 1.55;
}

/* Optional extra photos (details row) */
.fg-ui:not(#fg) :is(.person-photo-optional, .pet-photo-optional, .pet-draft-extra) {
  padding: 0; border: 1px solid var(--fg-line); border-radius: 14px; background: var(--fg-surface);
}
.fg-ui:not(#fg) :is(.person-photo-optional, .pet-photo-optional, .pet-draft-extra) > summary {
  display: flex; align-items: center; gap: 14px; min-height: 64px; padding: 12px 18px; cursor: pointer; list-style: none;
  font-size: 15px; font-weight: 700; color: var(--fg-text);
}
.fg-ui:not(#fg) :is(.person-photo-optional, .pet-photo-optional, .pet-draft-extra) > summary::-webkit-details-marker { display: none; }
.fg-ui:not(#fg) :is(.person-photo-optional, .pet-photo-optional, .pet-draft-extra) > summary::before {
  content: ""; width: 40px; height: 40px; border-radius: 12px; flex: 0 0 auto;
  background:
    linear-gradient(var(--fg-blue), var(--fg-blue)) center / 16px 2px no-repeat,
    linear-gradient(var(--fg-blue), var(--fg-blue)) center / 2px 16px no-repeat,
    var(--fg-blue-soft);
}
.fg-ui:not(#fg) :is(.person-photo-optional, .pet-photo-optional, .pet-draft-extra) > summary::after {
  content: ""; width: 20px; height: 20px; margin-left: auto; flex: 0 0 auto; background: var(--fg-text-3);
  -webkit-mask: var(--fg-mask-chevron) center / contain no-repeat; mask: var(--fg-mask-chevron) center / contain no-repeat; transition: transform .15s ease;
}
.fg-ui:not(#fg) :is(.person-photo-optional, .pet-photo-optional, .pet-draft-extra)[open] > summary::after { transform: rotate(180deg); }
.fg-ui:not(#fg) :is(.person-photo-optional, .pet-photo-optional, .pet-draft-extra) > :not(summary) { margin: 0 18px 16px; }

/* Lists of people / pets */
.fg-ui:not(#fg) :is(.person-section-heading, .pet-section-header) { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 0 0 16px; }
.fg-ui:not(#fg) :is(.person-section-heading .person-title, .pet-section-title) { margin: 0; font-size: 20px; line-height: 28px; font-weight: 700; color: var(--fg-text); }
.fg-ui:not(#fg) .person-section-heading .person-empty { margin: 2px 0 0; font-size: 14px; color: var(--fg-text-2); }
.fg-ui:not(#fg) .pet-add-button { background: var(--fg-blue); border-color: var(--fg-blue); color: #fff; }
.fg-ui:not(#fg) .person-content, .fg-ui:not(#fg).pet-family-surface { display: flex; flex-direction: column; gap: 16px; }
.fg-ui:not(#fg) .pet-section { display: flex; flex-direction: column; gap: 16px; margin: 0; padding: 0; border: 0; background: transparent; }
.fg-ui:not(#fg) .person-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.fg-ui:not(#fg) .person-list > :is(.person-group, .person-empty-panel) { grid-column: 1 / -1; }
.fg-ui:not(#fg) .person-group { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
.fg-ui:not(#fg) .person-group > :is(.person-group-title, .person-empty) { grid-column: 1 / -1; margin: 0; }
.fg-ui:not(#fg) .person-group-title { font-size: 16px; font-weight: 700; }
.fg-ui:not(#fg) .person-group > .person-empty { font-size: 13.5px; color: var(--fg-text-3); }
.fg-ui:not(#fg) .pet-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.fg-ui:not(#fg) .pet-card-grid > .pet-empty { grid-column: 1 / -1; }
.fg-ui:not(#fg) .person-notice-button {
  justify-content: flex-start; gap: 12px; width: 100%; min-height: 64px; padding: 14px 18px; border: 1px solid var(--fg-blue-line);
  background: var(--fg-blue-soft); color: var(--fg-blue-text); font-size: 15px; border-radius: 16px; text-align: left;
}

/* Person / pet card */
.fg-ui:not(#fg) .person-card[data-person-registration="unfinished"] { border-style: dashed; border-color: var(--fg-line-strong); }
.fg-ui:not(#fg) .person-card:has(.safecare-sos-active),
.fg-ui:not(#fg) .pet-card:has(.safecare-sos-active) { border-color: var(--fg-red-line); }
.fg-ui:not(#fg) :is(.person-card-head, .pet-card-head) { display: flex; flex-direction: row; align-items: center; justify-content: flex-start; gap: 8px 12px; flex-wrap: wrap; margin: 0; text-align: left; }
.fg-ui:not(#fg) :is(.person-card-identity, .pet-card-identity) { display: flex; flex-direction: row; align-items: center; justify-content: flex-start; gap: 14px; flex: 1 1 200px; min-width: 0; margin: 0; }
.fg-ui:not(#fg) .person-section-heading { flex-direction: row; flex-wrap: nowrap; align-items: flex-start; text-align: left; }
.fg-ui:not(#fg) .person-section-heading > div { min-width: 0; }
.fg-ui:not(#fg) :is(.person-card-thumbnail, .pet-profile-thumbnail) {
  width: 64px; height: 64px; border-radius: 14px; overflow: hidden; background: var(--fg-sub); color: var(--fg-text-3);
  display: grid; place-items: center; flex: 0 0 auto; font-size: 12px; border: 0;
}
.fg-ui:not(#fg) :is(.person-card-thumbnail, .pet-profile-thumbnail) img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fg-ui:not(#fg) .person-card-title { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fg-ui:not(#fg) :is(.person-card-name, .pet-card-name) { margin: 0; font-size: 18px; font-weight: 700; color: var(--fg-text); }
.fg-ui:not(#fg) .person-card-meta { font-size: 14px; color: var(--fg-text-2); }
.fg-ui:not(#fg) .pet-card-species { display: inline-flex; align-items: center; min-height: 24px; padding: 0 10px; border-radius: 999px; background: var(--fg-sub); color: var(--fg-text-2); font-size: 12.5px; font-weight: 700; }
.fg-ui:not(#fg) .fg-primary-chip { display: inline-flex; align-items: center; gap: 4px; margin-left: 8px; min-height: 22px; padding: 0 8px; border-radius: 999px; background: var(--fg-blue-soft); color: var(--fg-blue-text); font-size: 12px; font-weight: 700; vertical-align: middle; }
.fg-ui:not(#fg) .fg-primary-chip .fg-icon { width: 13px; height: 13px; }
.fg-ui:not(#fg) .person-card-facts {
  display: grid; grid-auto-flow: column; grid-template-rows: auto auto; grid-auto-columns: minmax(0, 1fr); gap: 2px 0;
  margin: 0; padding: 12px 14px; border-radius: 12px; background: var(--fg-sub);
}
.fg-ui:not(#fg) .person-card-facts dt { font-size: 12.5px; color: var(--fg-text-3); margin: 0; padding-right: 10px; }
.fg-ui:not(#fg) .person-card-facts dd { font-size: 14px; font-weight: 700; color: var(--fg-text); margin: 0; padding-right: 10px; }
.fg-ui:not(#fg) :is(.person-card-note, .pet-profile-renewal, .pet-profile-age, .pet-profile-family, .pet-profile-identity, .pet-profile-sos, .pet-profile-resolved, .pet-profile-birthday, .pet-photo-kind-summary, .pet-number-value, .pet-card-consent) {
  margin: 0; font-size: 13.5px; line-height: 1.5; color: var(--fg-text-2);
}
.fg-ui:not(#fg) .person-card-note-danger, .fg-ui:not(#fg) .pet-profile-sos { color: var(--fg-red-text); }
.fg-ui:not(#fg) .pet-profile-resolved { color: var(--fg-green); }
.fg-ui:not(#fg) .pet-candidate-cta {
  display: flex; align-items: center; gap: 10px; width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid var(--fg-blue-line);
  border-radius: 12px; background: var(--fg-blue-soft); color: var(--fg-blue-text); font: inherit; font-size: 14px; font-weight: 700; text-align: left; cursor: pointer;
}
.fg-ui:not(#fg) .pet-progress { display: flex; align-items: center; gap: 10px; }
.fg-ui:not(#fg) .pet-progress-bar { flex: 1 1 auto; }
.fg-ui:not(#fg) .pet-progress-label { font-size: 13px; font-weight: 700; color: var(--fg-text-2); white-space: nowrap; }
.fg-ui:not(#fg) .safecare-sos-active {
  display: flex; flex-direction: column; gap: 4px; margin: 0; padding: 12px 14px; border-radius: 12px; border: 0;
  background: var(--fg-red-soft); color: var(--fg-red-text); font-size: 13.5px; line-height: 1.5;
}
.fg-ui:not(#fg) .safecare-sos-active > strong { display: flex; align-items: center; gap: 8px; font-size: 14.5px; color: var(--fg-red-text); }
.fg-ui:not(#fg) .safecare-sos-active > strong::before {
  content: ""; width: 18px; height: 18px; background: currentColor; flex: 0 0 auto;
  -webkit-mask: var(--fg-mask-alert) center / contain no-repeat; mask: var(--fg-mask-alert) center / contain no-repeat;
}
.fg-ui:not(#fg) .safecare-sos-active :is(span, .person-card-meta, .pet-number-value) { color: var(--fg-red-text); font-size: 13.5px; }
.fg-ui:not(#fg) .safecare-sos-active :is(.site-button, button) { align-self: flex-start; margin-top: 6px; min-height: 40px; padding: 0 14px; font-size: 14px; background: var(--fg-surface); border-color: var(--fg-red-line); color: var(--fg-red-text); }
.fg-ui:not(#fg) .pet-case-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.fg-ui:not(#fg) :is(.person-card-actions, .pet-card-actions) { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 0; }
.fg-ui:not(#fg) :is(.person-card-actions, .pet-card-actions) .site-button { min-height: 44px; padding: 0 16px; font-size: 14.5px; flex: 1 1 0; width: auto; }
.fg-ui:not(#fg) .pet-number-value { font-family: inherit; letter-spacing: 0; }
.fg-ui:not(#fg) .person-sos-target { border: 0; border-bottom: 1px solid var(--fg-line); border-radius: 0; box-shadow: none; }
.fg-ui:not(#fg) .person-card > .person-text-button { align-self: flex-start; margin: -8px 0 -6px -8px; }

/* Review / done */
.fg-ui:not(#fg) :is(.person-review, .pet-facts) {
  display: grid; grid-template-columns: minmax(96px, max-content) minmax(0, 1fr); gap: 10px 20px; margin: 0; padding: 16px 18px; border-radius: 12px; background: var(--fg-sub);
}
.fg-ui:not(#fg) :is(.person-review, .pet-facts) dt { margin: 0; font-size: 13.5px; color: var(--fg-text-3); }
.fg-ui:not(#fg) :is(.person-review, .pet-facts) dd { margin: 0; font-size: 14.5px; font-weight: 700; color: var(--fg-text); overflow-wrap: anywhere; }
.fg-ui:not(#fg) .person-review-section { display: flex; flex-direction: column; gap: 12px; }
.fg-ui:not(#fg) .person-review-section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.fg-ui:not(#fg) .person-review-section-head h5 { margin: 0; font-size: 17px; font-weight: 700; }
.fg-ui:not(#fg) .person-review-section-head .site-button { min-height: 40px; padding: 0 14px; font-size: 14px; }
.fg-ui:not(#fg) :is(.person-review-photo-grid, .pet-draft-review-photos) { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.fg-ui:not(#fg) .person-review-photo { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.fg-ui:not(#fg) .person-review-photo-media { aspect-ratio: 1 / 1; border-radius: 12px; overflow: hidden; background: var(--fg-sub); display: grid; place-items: center; border: 2px solid var(--fg-green); }
.fg-ui:not(#fg) .person-review-photo-media img, .fg-ui:not(#fg) .pet-draft-review-photo { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 10px; aspect-ratio: 1 / 1; }
.fg-ui:not(#fg) .person-review-photo figcaption { font-size: 12.5px; text-align: center; color: var(--fg-text-2); }
.fg-ui:not(#fg) .person-review-ready { margin: 0; font-size: 14px; font-weight: 700; color: var(--fg-green); }
.fg-ui:not(#fg) .person-review-notices { flex-direction: column; gap: 6px; }
.fg-ui:not(#fg) .person-review-notices::before { display: none; }
.fg-ui:not(#fg) .person-review-notices p { margin: 0; }
.fg-ui:not(#fg) :is(.safecare-done, .pet-draft-done) { align-items: center; text-align: center; }
.fg-ui:not(#fg) :is(.safecare-done, .pet-draft-done) > .safecare-stepper { align-self: stretch; width: 100%; text-align: initial; }
.fg-ui:not(#fg) .person-review-notices p { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.fg-ui:not(#fg) :is(.safecare-done, .pet-draft-done) > :is(.person-review, .pet-facts, .person-consent, .pet-consent-copy) { width: 100%; max-width: 560px; text-align: left; box-sizing: border-box; }
.fg-ui:not(#fg) :is(.safecare-done, .pet-draft-done) .person-form-actions { border-top: 0; justify-content: center; padding-top: 0; }
.fg-ui:not(#fg) .fg-done-mark { width: 64px; height: 64px; border-radius: 50%; background: var(--fg-green-soft); color: var(--fg-green); display: grid; place-items: center; }
.fg-ui:not(#fg) .fg-done-mark .fg-icon { width: 30px; height: 30px; stroke-width: 2.6; }

/* Missing-person / pet SOS form */
.fg-ui:not(#fg) .person-sos-target { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 0 0 16px; border-bottom: 1px solid var(--fg-line); background: transparent; }
.fg-ui:not(#fg) .person-sos-target > div { display: flex; flex-direction: column; gap: 2px; }
.fg-ui:not(#fg) .person-sos-target strong { font-size: 17px; }
.fg-ui:not(#fg) .person-sos-target span { font-size: 14px; color: var(--fg-text-2); }
.fg-ui:not(#fg) .person-sos-target-facts { display: flex; gap: 6px 14px; flex-wrap: wrap; margin: 0 0 0 auto; font-size: 13.5px; }
.fg-ui:not(#fg) .person-sos-target-facts dt { color: var(--fg-text-3); }
.fg-ui:not(#fg) .person-sos-target-facts dd { margin: 0; font-weight: 700; }
.fg-ui:not(#fg) .person-sos-layout { display: flex; flex-direction: column; gap: 20px; }
.fg-ui:not(#fg) .person-sos-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; }
.fg-ui:not(#fg) .person-sos-fields > :last-child { grid-column: 1 / -1; }
.fg-ui:not(#fg) .person-sos-privacy { display: flex; flex-direction: column; gap: 12px; padding: 18px 20px; border-radius: 12px; background: var(--fg-sub); border: 0; }
.fg-ui:not(#fg) .person-sos-privacy h5 { margin: 0; font-size: 15px; font-weight: 700; }
.fg-ui:not(#fg) .person-sos-privacy ol { counter-reset: fg-step; display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.fg-ui:not(#fg) .person-sos-privacy li { counter-increment: fg-step; display: flex; gap: 12px; font-size: 14px; line-height: 1.55; color: var(--fg-text-2); }
.fg-ui:not(#fg) .person-sos-privacy li::before {
  content: counter(fg-step); width: 22px; height: 22px; border-radius: 50%; border: 1px solid var(--fg-line-strong); background: var(--fg-surface);
  font-size: 12px; font-weight: 700; display: grid; place-items: center; flex: 0 0 auto; color: var(--fg-text); box-sizing: border-box;
}
.fg-ui:not(#fg) .person-sos-privacy > p { margin: 0; font-size: 13px; color: var(--fg-text-2); }
.fg-ui:not(#fg) :is(.person-consent-check, .pet-consent-toggle, .safecare-consent-row, .family-loc-consent) {
  display: flex; gap: 12px; align-items: flex-start; padding: 16px; border-radius: 12px; border: 1px solid var(--fg-line-strong); background: var(--fg-surface);
  font-size: 14.5px; line-height: 1.5; font-weight: 600; cursor: pointer;
}
.fg-ui:not(#fg) :is(.person-consent-check, .safecare-consent-row):has(input:checked) { border-color: var(--fg-blue); background: var(--fg-blue-soft); }
.fg-ui:not(#fg) .pet-profile-controls { display: flex; flex-direction: column; gap: 8px; padding: 16px 18px; border: 1px solid var(--fg-line); border-radius: 14px; background: var(--fg-surface); }
.fg-ui:not(#fg) .pet-profile-controls .pet-consent-toggle { display: flex; align-items: center; min-height: 48px; height: auto; padding: 0 14px; margin: 0; }
.fg-ui:not(#fg) .pet-profile-controls-title { margin: 0 0 4px; font-size: 15px; font-weight: 700; }

/* Found report and lists */
.fg-ui:not(#fg) .safecare-found-details { display: flex; flex-direction: column; gap: 16px; margin: 0; padding: 18px 20px; border: 1px solid var(--fg-line); border-radius: 12px; }
.fg-ui:not(#fg) .safecare-found-details legend { padding: 0 6px; font-size: 15px; font-weight: 700; }
.fg-ui:not(#fg) .safecare-add-photo { align-self: flex-start; }
.fg-ui:not(#fg) .safecare-report-list { display: flex; flex-direction: column; gap: 12px; margin: 0; }
.fg-ui:not(#fg) .safecare-report-list > .person-form-title,
.fg-ui:not(#fg) .safecare-report-list > h4 { font-size: 20px; line-height: 28px; }

/* Choice chips (pet species/sex/age) */
.fg-ui:not(#fg) :is(.pet-choice-row, .pet-choice-field) { display: flex; flex-wrap: wrap; gap: 8px; }
.fg-ui:not(#fg) .pet-choice { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 16px; border: 1px solid var(--fg-line-strong); border-radius: 999px; background: var(--fg-surface); font-size: 14.5px; font-weight: 600; cursor: pointer; }
.fg-ui:not(#fg) .pet-choice:has(input:checked) { border-color: var(--fg-blue); background: var(--fg-blue-soft); color: var(--fg-blue-text); }
.fg-ui:not(#fg) .pet-draft-species-choice { border-radius: 16px; min-height: 0; padding: 10px; flex-direction: column; }
.fg-ui:not(#fg) .pet-draft-species-photo { border-radius: 12px; overflow: hidden; }

/* Dialogs and sheets opened from 가족 지킴이 */
.lotbi-sheet.fg-ui:not(#fg) { background: var(--fg-surface); color: var(--fg-text); border-color: var(--fg-line); }
.lotbi-sheet.person-cancel-dialog.fg-ui:not(#fg) { border-radius: 20px; padding: 28px; }
.fg-ui:not(#fg) :is(.fg-confirm, .person-cancel-sheet) { display: flex; flex-direction: column; gap: 12px; }
.fg-ui:not(#fg) :is(.fg-confirm-title, .person-cancel-title) { margin: 0; font-size: 19px; line-height: 1.4; font-weight: 700; color: var(--fg-text); }
.fg-ui:not(#fg) :is(.fg-confirm-body, .person-cancel-lead) { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--fg-text-2); }
.fg-ui:not(#fg) .fg-confirm-actions { display: flex; gap: 8px; margin-top: 8px; }
.fg-ui:not(#fg) .fg-confirm-actions > .site-button { flex: 1 1 0; }
.fg-ui:not(#fg) .person-cancel-sheet .person-form-actions { border-top: 0; padding-top: 4px; }
.fg-ui:not(#fg) .person-cancel-sheet .person-form-actions > .site-button { flex: 1 1 0; }
.fg-ui:not(#fg) .person-cancel-choices { display: flex; flex-direction: column; gap: 8px; }
.fg-ui:not(#fg) .person-birth-picker-actions .site-button { width: 100%; }
.fg-ui:not(#fg) .person-birth-wheel-option.is-selected { background: var(--fg-blue-soft); color: var(--fg-blue-text); font-weight: 700; }
.fg-ui:not(#fg) .safecare-renewal-icon { width: 48px; height: 48px; border-radius: 14px; background: var(--fg-blue-soft); color: var(--fg-blue); display: grid; place-items: center; font-size: 0; }
.fg-ui:not(#fg) .safecare-renewal-icon .fg-icon { width: 24px; height: 24px; }
.fg-ui:not(#fg) .safecare-notice-section { border: 1px solid var(--fg-line); border-radius: 12px; background: var(--fg-surface); }
.fg-ui:not(#fg) .safecare-consent-all { border-color: var(--fg-blue-line); }
.fg-ui:not(#fg) .safecare-renewal-confirm { width: 100%; min-height: 52px; }
.fg-ui:not(#fg) .safecare-consent-row .fg-icon { width: 16px; height: 16px; margin: 2px 4px 0 0; color: var(--fg-text-3); vertical-align: -2px; }
.fg-ui:not(#fg) .pet-photo-source-menu { display: flex; flex-direction: column; gap: 4px; }
.fg-ui:not(#fg) .pet-photo-source-option {
  display: flex; align-items: center; gap: 14px; min-height: 56px; padding: 0 6px; border: 0; border-radius: 12px; background: transparent;
  color: var(--fg-text); font: inherit; font-size: 16px; font-weight: 600; text-align: left; cursor: pointer;
}
.fg-ui:not(#fg) .pet-photo-source-icon { width: 40px; height: 40px; border-radius: 12px; background: var(--fg-blue-soft); color: var(--fg-blue); display: grid; place-items: center; font-size: 0; flex: 0 0 auto; }
.fg-ui:not(#fg) .pet-photo-source-icon .fg-icon { width: 20px; height: 20px; }
.fg-ui:not(#fg) .pet-gate-panel { border-radius: 20px; padding: 28px; background: var(--fg-surface); color: var(--fg-text); }

/* Signed-out welcome */
.family-guardian-welcome.fg-ui:not(#fg) { max-width: 620px; padding: 28px; gap: 14px; }
.family-guardian-welcome.fg-ui:not(#fg) h3 { font-size: 20px; font-weight: 700; }
.family-guardian-welcome.fg-ui:not(#fg) p { color: var(--fg-text-2); }
.family-guardian-welcome.fg-ui:not(#fg) .site-button-primary { background: var(--fg-blue); border-color: var(--fg-blue); color: #fff; min-height: 48px; padding: 0 22px; border-radius: 12px; font-weight: 700; display: inline-flex; align-items: center; }

.family-guardian-welcome.fg-ui:not(#fg) [data-family-child-connect] { min-height: 48px; padding: 0 22px; border-radius: 12px; font-weight: 700; background: var(--fg-surface); color: var(--fg-text); border: 1px solid var(--fg-line, #dde2ea); display: inline-flex; align-items: center; justify-content: center; }
.family-guardian-welcome.fg-ui:not(#fg) .family-guardian-child-line { margin-top: 6px; }
.family-guardian-welcome.fg-ui:not(#fg) :is(.site-button-primary, [data-family-child-connect]) { width: 100%; max-width: 320px; justify-content: center; box-sizing: border-box; }
/* 소유자 시험 10-29: a child's phone waiting on its number, on the child's card. */
.fg-ui:not(#fg) .fl2-pending { display: grid; gap: 8px; padding: 14px; border-radius: 14px; background: var(--fg-blue-soft); color: var(--fg-text); }
.fg-ui:not(#fg) .fl2-pending-text { margin: 0; font-size: 15px; line-height: 22px; }
.fg-ui:not(#fg) .fl2-pending-num { white-space: nowrap; font-weight: 700; }

/* ── 가족 위치 ─────────────────────────────────────────────────────────────── */
.fg-ui:not(#fg).family-loc-surface { display: flex; flex-direction: column; gap: 16px; }
.fg-ui:not(#fg) .family-loc-privacy { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 13.5px; color: var(--fg-text-2); background: transparent; padding: 0; border: 0; }
.fg-ui:not(#fg) .family-loc-icon { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
.fg-ui:not(#fg) .family-loc-privacy .family-loc-icon { width: 16px; height: 16px; color: var(--fg-text-3); }
.fg-ui:not(#fg) .family-loc-content { display: flex; flex-direction: column; gap: 16px; }
.fg-ui:not(#fg) .family-loc-columns { display: flex; gap: 20px; align-items: flex-start; flex-wrap: wrap; }
.fg-ui:not(#fg) .family-loc-main { flex: 999 1 480px; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.fg-ui:not(#fg) .family-loc-side { flex: 1 1 260px; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.fg-ui:not(#fg) .family-loc-family { display: flex; flex-direction: column; gap: 14px; }
.fg-ui:not(#fg) .family-loc-family-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.fg-ui:not(#fg) :is(.family-loc-heading, .family-loc-view-title) { margin: 0; font-size: 20px; line-height: 28px; font-weight: 700; color: var(--fg-text); }
.fg-ui:not(#fg) .family-loc-chip { display: inline-flex; align-items: center; min-height: 26px; padding: 0 10px; border-radius: 999px; background: var(--fg-sub); color: var(--fg-text-2); font-size: 12.5px; font-weight: 700; margin: 0; width: fit-content; }
.fg-ui:not(#fg) .family-loc-note { margin: 0; font-size: 14px; line-height: 1.55; color: var(--fg-text-2); }
.fg-ui:not(#fg) .family-loc-member { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px 14px; align-items: start; }
.fg-ui:not(#fg) .family-loc-member > :not(.family-loc-card-head) { grid-column: 1 / -1; }
.fg-ui:not(#fg) .family-loc-card-head { grid-column: 1 / -1; display: flex; align-items: center; gap: 14px; }
.fg-ui:not(#fg) .family-loc-avatar {
  position: relative; width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; flex: 0 0 auto;
  background: var(--fg-blue-soft); color: var(--fg-blue-text); font-size: 18px; font-weight: 700;
}
.fg-ui:not(#fg) .family-loc-avatar::after {
  content: ""; position: absolute; right: 0; bottom: 0; width: 14px; height: 14px; border-radius: 50%; border: 2.5px solid var(--fg-surface); background: var(--fg-text-3); box-sizing: border-box;
}
.fg-ui:not(#fg) .family-loc-member[data-presence="LIVE"] .family-loc-avatar::after { background: var(--fg-green-dot); }
.fg-ui:not(#fg) .family-loc-member:is([data-presence="STALE"], [data-presence="PAUSED"]) .family-loc-avatar { background: var(--fg-amber-soft); color: var(--fg-amber); }
.fg-ui:not(#fg) .family-loc-member:is([data-presence="STALE"], [data-presence="PAUSED"]) .family-loc-avatar::after { background: var(--fg-amber-dot); }
.fg-ui:not(#fg) .family-loc-who { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; }
.fg-ui:not(#fg) .family-loc-name { font-size: 18px; font-weight: 700; color: var(--fg-text); }
.fg-ui:not(#fg) .family-loc-presence {
  display: inline-flex; align-items: center; gap: 6px; min-height: 26px; padding: 0 10px; border-radius: 999px; font-size: 12.5px; font-weight: 700;
  background: var(--fg-sub); color: var(--fg-text-2);
}
.fg-ui:not(#fg) .family-loc-presence::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.fg-ui:not(#fg) .family-loc-member[data-presence="LIVE"] .family-loc-presence { background: var(--fg-green-soft); color: var(--fg-green); }
.fg-ui:not(#fg) .family-loc-member:is([data-presence="STALE"], [data-presence="PAUSED"]) .family-loc-presence { background: var(--fg-amber-soft); color: var(--fg-amber); }
.fg-ui:not(#fg) :is(.family-loc-battery, .family-loc-place, .family-loc-viewers, .family-loc-place-name) {
  display: flex; align-items: center; gap: 6px; margin: 0; font-size: 13.5px; line-height: 1.5; color: var(--fg-text-2); font-weight: 500;
}
.fg-ui:not(#fg) :is(.family-loc-battery, .family-loc-place, .family-loc-viewers, .family-loc-place-name) .family-loc-icon { width: 16px; height: 16px; color: var(--fg-text-3); }
.fg-ui:not(#fg) .family-loc-battery[data-low] { color: var(--fg-red-text); }
.fg-ui:not(#fg) .family-loc-battery[data-low] .family-loc-icon { color: var(--fg-red-text); }
.fg-ui:not(#fg) .family-loc-why { display: flex; align-items: flex-start; gap: 8px; padding: 10px 12px; border-radius: 10px; background: var(--fg-amber-soft); color: var(--fg-amber); font-size: 13.5px; }
.fg-ui:not(#fg) .family-loc-why .family-loc-icon { width: 16px; height: 16px; margin-top: 2px; }
.fg-ui:not(#fg) .family-loc-why-label { font-weight: 700; white-space: nowrap; }
.fg-ui:not(#fg) .family-loc-reason { margin: 0; color: var(--fg-amber); }
.fg-ui:not(#fg) .family-loc-check { padding: 12px 14px; border-radius: 12px; background: var(--fg-sub); font-size: 13.5px; }
.fg-ui:not(#fg) .family-loc-check-summary { margin: 0 0 6px; font-weight: 700; }
.fg-ui:not(#fg) .family-loc-check-items { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 4px; color: var(--fg-text-2); }
.fg-ui:not(#fg) .family-loc-check-items li[data-ok="false"] { color: var(--fg-red-text); }
.fg-ui:not(#fg) .family-loc-member > .family-loc-wide { width: auto; justify-self: start; }
.fg-ui:not(#fg) .family-loc-tools { display: flex; flex-wrap: wrap; gap: 8px; }
.fg-ui:not(#fg) .family-loc-tool {
  display: inline-flex; flex-direction: row; align-items: center; justify-content: center; gap: 6px; min-height: 48px; padding: 0 14px; border: 1px solid var(--fg-line-strong);
  border-radius: 10px; background: var(--fg-surface); color: var(--fg-text); font: inherit; font-size: 14px; font-weight: 700; text-decoration: none; cursor: pointer;
}
.fg-ui:not(#fg) .family-loc-tool .family-loc-icon { width: 16px; height: 16px; }
.fg-ui:not(#fg) .family-loc-member > .family-loc-quiet { justify-self: end; }
.fg-ui:not(#fg) .family-loc-sos { border: 1px solid var(--fg-red-line); }
.fg-ui:not(#fg) .family-loc-sos-title { display: flex; align-items: center; gap: 8px; font-size: 17px; color: var(--fg-red-text); }
.fg-ui:not(#fg) .family-loc-sos-primary { background: var(--fg-red); border-color: var(--fg-red); color: #fff; }
.fg-ui:not(#fg) .family-loc-sharing { border-color: var(--fg-green-line); }
.fg-ui:not(#fg) .family-loc-sharing[data-sharing-state="PAUSED"] { border-color: var(--fg-line-strong); }
.fg-ui:not(#fg) .family-loc-sharing-head { display: flex; align-items: center; gap: 10px; }
.fg-ui:not(#fg) .family-loc-live-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--fg-green-dot); box-shadow: 0 0 0 4px var(--fg-green-soft); flex: 0 0 auto; }
.fg-ui:not(#fg) .family-loc-sharing[data-sharing-state="PAUSED"] .family-loc-live-dot { background: var(--fg-text-3); box-shadow: 0 0 0 4px var(--fg-sub); }
.fg-ui:not(#fg) .family-loc-sharing[data-sharing-state="STOPPED"] .family-loc-live-dot { background: #D97706; box-shadow: 0 0 0 4px rgb(217 119 6 / .16); }
.fg-ui:not(#fg) .family-loc-me[data-sharing-state="STOPPED"] .family-loc-state { color: #B45309; background: rgb(217 119 6 / .12); }
.fg-ui:not(#fg) .family-loc-indicator { font-size: 18px; font-weight: 700; color: var(--fg-text); }
.fg-ui:not(#fg) .family-loc-sos-button { width: 100%; min-height: 64px; font-size: 19px; border-radius: 16px; }
.fg-ui:not(#fg) .family-loc-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.fg-ui:not(#fg) .family-loc-sharing .family-loc-actions .family-loc-button:not(.family-loc-primary) { min-height: 48px; padding: 0 16px; font-size: 14.5px; }
.fg-ui:not(#fg) .family-loc-sharing .family-loc-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.fg-ui:not(#fg) .family-loc-sharing [data-family-action^="pause-"] {
  flex: 0 0 auto; width: auto; min-height: 48px; padding: 0 16px; border-radius: 999px; font-size: 14.5px; font-weight: 600;
}
.fg-ui:not(#fg) .family-loc-sharing [data-family-action="send-once"],
.fg-ui:not(#fg) .family-loc-sharing [data-family-action="resume"] { flex: 1 1 100%; width: 100%; }
.fg-ui:not(#fg) .family-loc-family-row { display: flex; flex-direction: column; gap: 10px; padding: 14px; border-radius: 12px; background: var(--fg-sub); }
.fg-ui:not(#fg) .family-loc-family-row > span { font-size: 15px; font-weight: 700; }
.fg-ui:not(#fg) .family-loc-places-for-me { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border-radius: 12px; background: var(--fg-sub); }
.fg-ui:not(#fg) .family-loc-nav { display: flex; flex-direction: column; gap: 10px; }
.fg-ui:not(#fg) .family-loc-nav-tile {
  display: grid; grid-template-columns: 42px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 14px; align-items: center; text-align: left;
  min-height: 72px; padding: 14px 18px; border: 1px solid var(--fg-line); border-radius: 14px; background: var(--fg-surface); color: var(--fg-text); font: inherit; cursor: pointer;
}
.fg-ui:not(#fg) .family-loc-nav-tile > .family-loc-icon { grid-row: 1 / span 2; width: 42px; height: 42px; padding: 10px; box-sizing: border-box; border-radius: 12px; background: var(--fg-blue-soft); color: var(--fg-blue); }
.fg-ui:not(#fg) .family-loc-nav-tile > strong { font-size: 15.5px; font-weight: 700; }
.fg-ui:not(#fg) .family-loc-nav-tile > span { font-size: 13px; color: var(--fg-text-3); }
.fg-ui:not(#fg) .family-loc-empty { padding: 36px 24px; }
.fg-ui:not(#fg) .family-loc-empty > p { color: var(--fg-text-2); }
.fg-ui:not(#fg) .family-loc-view { display: flex; flex-direction: column; gap: 16px; }
.fg-ui:not(#fg) .family-loc-view-head { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.fg-ui:not(#fg) .family-loc-view-head > .family-loc-button { min-height: 48px; padding: 0 14px; border: 1px solid var(--fg-line-strong); color: var(--fg-text); font-size: 14px; border-radius: 10px; background: var(--fg-surface); }
.fg-ui:not(#fg) .family-loc-view-title { font-size: 26px; line-height: 34px; }
.fg-ui:not(#fg) .family-loc-form { display: flex; flex-direction: column; gap: 14px; }
.fg-ui:not(#fg) .family-loc-form-title { display: flex; align-items: center; gap: 8px; font-size: 17px; font-weight: 700; color: var(--fg-text); }
.fg-ui:not(#fg) .family-loc-pair, .fg-ui:not(#fg) .family-loc-quiet-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; align-items: center; }
.fg-ui:not(#fg) .family-loc-quiet-row { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
.fg-ui:not(#fg) .family-loc-switches { display: flex; gap: 8px; flex-wrap: wrap; }
.fg-ui:not(#fg) .family-loc-check-label { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border: 1px solid var(--fg-line-strong); border-radius: 12px; background: var(--fg-surface); font-size: 14.5px; font-weight: 600; cursor: pointer; }
.fg-ui:not(#fg) .family-loc-check-label:has(input:checked) { border-color: var(--fg-blue); background: var(--fg-blue-soft); color: var(--fg-blue-text); }
.fg-ui:not(#fg) .family-loc-consent { display: flex; }
.fg-ui:not(#fg) .family-loc-consent-text { margin: 0; padding: 14px 16px; border-radius: 12px; background: var(--fg-sub); color: var(--fg-text-2); font-size: 14px; line-height: 1.6; }
.fg-ui:not(#fg) .family-loc-created { gap: 16px; }
.fg-ui:not(#fg) .family-loc-created .family-loc-form-title { font-size: 19px; }
.fg-ui:not(#fg) .family-loc-created .family-loc-form-title .family-loc-icon { width: 36px; height: 36px; padding: 8px; box-sizing: border-box; border-radius: 50%; background: var(--fg-green-soft); color: var(--fg-green); stroke-width: 2.6; }
.fg-ui:not(#fg) .family-loc-code { display: flex; gap: 8px; margin: 0; font-size: 30px; font-weight: 700; letter-spacing: 0; color: var(--fg-text); }
.fg-ui:not(#fg) .family-loc-code > b { width: 52px; height: 64px; border-radius: 12px; background: var(--fg-sub); display: grid; place-items: center; font-variant-numeric: tabular-nums; }
.fg-ui:not(#fg) .family-loc-created .family-loc-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fg-ui:not(#fg) .family-loc-created .family-loc-actions > * { width: 100%; }
.fg-ui:not(#fg) .family-loc-created .family-loc-actions > .family-loc-kakao { grid-column: 1 / -1; min-height: 52px; font-size: 16px; }
.fg-ui:not(#fg) .family-loc-created .family-loc-actions > .family-loc-quiet { min-height: 48px; border: 1px solid var(--fg-line-strong); color: var(--fg-text); background: var(--fg-surface); border-radius: 12px; }
.fg-ui:not(#fg) .family-loc-pending { flex-direction: row; align-items: center; flex-wrap: wrap; gap: 12px; padding: 14px 18px; }
.fg-ui:not(#fg) .family-loc-pending > span { flex: 1 1 220px; font-size: 14.5px; font-weight: 600; }
.fg-ui:not(#fg) .family-loc-pending [data-family-action="revoke"] { min-height: 48px; padding: 0 14px; border: 1px solid var(--fg-red-line); border-radius: 10px; color: var(--fg-red-text); background: var(--fg-surface); }
.fg-ui:not(#fg) .family-loc-settings-person { display: flex; flex-direction: column; gap: 8px; padding: 14px; border-radius: 12px; background: var(--fg-sub); }
.fg-ui:not(#fg) .family-loc-place-row { gap: 12px; }
.fg-ui:not(#fg) .family-loc-place-row > .family-loc-quiet { align-self: flex-start; padding: 0 4px; }
.fg-ui:not(#fg) .family-loc-steps { display: flex; padding: 18px 8px 14px; border: 1px solid var(--fg-line); border-radius: 16px; background: var(--fg-surface); }
.fg-ui:not(#fg) .family-loc-wide { width: 100%; }
.fg-ui:not(#fg) .family-loc-footer { margin-top: 4px; }

/* ── Phones and narrow screens ─────────────────────────────────────────────── */
@media (max-width: 900px) {
  .fg-ui:not(#fg) :is(.person-list, .person-group, .pet-card-grid) { grid-template-columns: minmax(0, 1fr); }
  .fg-ui:not(#fg) .fg-photo-head { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .consumer-section-panel:has([data-consumer-surface="care"]):not(#fg) .site-modal-header h2 { font-size: 22px; line-height: 30px; }
  .fg-tabs:not(#fg) { gap: 0; margin-bottom: 16px; }
  .fg-tabs:not(#fg) > button { flex: 1 1 0; justify-content: center; padding: 0 6px; font-size: 14.5px; gap: 6px; }
  .fg-tabs:not(#fg) > button .fg-icon { width: 16px; height: 16px; }
  .fg-ui:not(#fg) :is(.person-form, .pet-draft-body) { padding: 18px; gap: 18px; }
  .fg-ui:not(#fg) :is(.person-card, .pet-card, .family-loc-card) { padding: 16px; }
  .fg-ui:not(#fg) :is(.person-form-title, .pet-draft-title) { font-size: 22px; line-height: 30px; }
  .fg-ui:not(#fg) .family-loc-view-title { font-size: 22px; line-height: 30px; }
  .fg-ui:not(#fg) .safecare-step-number { width: 28px; height: 28px; font-size: 13px; }
  .fg-ui:not(#fg) .safecare-step::before { top: 13px; left: calc(-50% + 18px); right: calc(50% + 18px); }
  .fg-ui:not(#fg) .safecare-step-name { font-size: 12px; }
  .fg-ui:not(#fg) :is(.safecare-slot-grid, .pet-slot-grid) {
    display: flex; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; gap: 10px;
    width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; scrollbar-width: none;
    contain: inline-size; /* the strip scrolls; it never widens the screen around it */
  }
  .fg-ui:not(#fg) :is(.safecare-slot-grid, .pet-slot-grid) > * { flex: 0 0 min(36vw, 132px); scroll-snap-align: start; }
  .fg-ui:not(#fg) .pet-slot-grid > * { flex-basis: min(42vw, 150px); }
  .fg-ui:not(#fg) .safecare-found-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: visible; margin-right: 0; padding-right: 0; }
  .fg-ui:not(#fg) .safecare-found-grid > * { flex: none; }
  .fg-ui:not(#fg) .fg-counts { gap: 8px; }
  .fg-ui:not(#fg) .fg-count { flex-direction: column; align-items: flex-start; gap: 6px; padding: 12px 10px; }
  .fg-ui:not(#fg) .fg-count-icon { width: 30px; height: 30px; border-radius: 8px; }
  .fg-ui:not(#fg) .fg-count-icon .fg-icon { width: 17px; height: 17px; }
  .fg-ui:not(#fg) .fg-count-value { font-size: 18px; }
  .fg-ui:not(#fg) .fg-count-label { font-size: 12px; }
  .fg-ui:not(#fg) .person-card-facts { grid-auto-flow: row; grid-template-rows: none; grid-template-columns: minmax(72px, max-content) minmax(0, 1fr); gap: 6px 12px; }
  .fg-ui:not(#fg) :is(.person-card-identity, .pet-card-identity) { flex-basis: 100%; }
  .fg-ui:not(#fg) :is(.person-card-head, .pet-card-head) > .safecare-badge,
  .fg-ui:not(#fg) .pet-card-head > .pet-card-species { margin-left: 78px; }
  .fg-ui:not(#fg) .pet-card-head > .pet-card-species + .safecare-badge { margin-left: 0; }
  .fg-ui:not(#fg) .person-section-heading > .site-button, .fg-ui:not(#fg) .pet-section-header > .site-button { min-height: 40px; padding: 0 14px; font-size: 14px; flex: 0 0 auto; }
  .fg-ui:not(#fg) .person-field-pair, .fg-ui:not(#fg) .person-sos-fields { grid-template-columns: minmax(0, 1fr); }
  .fg-ui:not(#fg) :is(.person-review-photo-grid, .pet-draft-review-photos) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fg-ui:not(#fg) :is(.person-form-actions, .safecare-wizard-actions, .pet-draft-actions) {
    position: sticky; bottom: 0; z-index: 2; margin: 0 -18px -18px; padding: 12px 18px calc(16px + env(safe-area-inset-bottom));
    background: var(--fg-surface); border-top: 1px solid var(--fg-line); border-radius: 0 0 16px 16px; box-shadow: 0 -6px 16px rgb(25 31 40 / 6%);
  }
  .fg-ui:not(#fg) :is(.person-form-actions, .safecare-wizard-actions, .pet-draft-actions) > :is(.site-button, button) { flex: 1 1 0; min-height: 52px; font-size: 16px; }
  .fg-ui:not(#fg) :is(.person-form-actions, .safecare-wizard-actions, .pet-draft-actions) > .person-field-hint { order: -1; text-align: center; }
  .fg-ui:not(#fg) .person-cancel-sheet .person-form-actions, .fg-ui:not(#fg) :is(.safecare-done, .pet-draft-done) .person-form-actions { position: static; margin: 0; padding: 0; box-shadow: none; border: 0; }
  .fg-ui:not(#fg) :is(.person-card-actions, .pet-card-actions) > .site-button { flex: 1 1 calc(50% - 4px); }
  .fg-ui:not(#fg) .safecare-found-cta > .site-button { flex: 1 1 100%; }
  .fg-ui:not(#fg) .family-loc-tools > * { flex: 1 1 calc(50% - 4px); }
  .fg-ui:not(#fg) .family-loc-member > .family-loc-wide { width: 100%; }
  .fg-ui:not(#fg) .family-loc-code > b { width: 44px; height: 56px; font-size: 26px; }
  .fg-ui:not(#fg) .family-loc-pending > .family-loc-actions, .fg-ui:not(#fg) .family-loc-pending > .family-loc-button { flex: 1 1 100%; }
  .fg-ui:not(#fg) .safecare-emergency-actions { width: 100%; }
  .fg-ui:not(#fg) .safecare-emergency-actions > * { flex: 1 1 0; }
}

/* ══ FAMILY-GUARDIAN-DESIGN-02 (owner approved 2026-10-16) ══════════════════════════════════════
   The owner's review of 01: "less like a kindergarten app". Real photos only, fewer sentences,
   smaller radii, one accent, the urgent button small at the top right, the family location tab
   rebuilt around finding the family. These rules sit after 01 on purpose (same scope, later wins). */
.fg-ui:not(#fg) :is(.person-card, .pet-card, .family-loc-card, .person-form, .pet-form, .pet-draft-body, .person-empty-panel, .pet-empty, .family-loc-empty, .pet-detail-section, .person-danger-zone, .family-guardian-welcome) { border-radius: 12px; }
.fg-ui:not(#fg) :is(.site-button, .family-loc-button) { border-radius: 10px; font-weight: 600; }
.fg-ui:not(#fg) :is(.person-form, .pet-draft-body) { padding: 24px 28px; gap: 18px; }
.fg-ui:not(#fg) .safecare-badge { min-height: 22px; padding: 0 8px; border-radius: 6px; font-size: 12px; font-weight: 600; gap: 4px; }
.fg-ui:not(#fg) .safecare-badge::before { display: none; }
.fg-ui:not(#fg) .safecare-badge .fg-icon { width: 13px; height: 13px; stroke-width: 2.6; }
.fg-ui:not(#fg) :is(.safecare-badge-ok, .safecare-badge-success) { background: var(--fg-sub); color: var(--fg-text-2); }

/* Header: no subtitle, the urgent box at the top right */
.consumer-section-panel:has([data-consumer-surface="care"]):not(#fg) .site-modal-header { display: flex; align-items: center; gap: 8px; }
.consumer-section-panel .fg-head-action:not(#fg) { margin-left: auto; display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.consumer-section-panel .fg-head-action:not(#fg):empty { display: none; }
/* 마스터·소유자 10-27 (운영 1440 내 위치 공유): the SOS sat alone at the far right of the title row; on wide screens it
   sits right after the title. Phones and folds keep it at the right edge. */
@media (min-width: 1024px) {
  .consumer-section-panel .fg-head-action:not(#fg):has(.fg-head-sos) { margin-left: 16px; }
}
.consumer-section-panel .fg-head-action:not(#fg) .safecare-found-cta { display: contents; }
.consumer-section-panel .fg-head-action:not(#fg) [hidden] { display: none !important; }
:is(.consumer-section-panel .fg-head-action, .fg-ui):not(#fg) .fg-head-urgent {
  display: inline-flex; align-items: center; justify-content: center; gap: 5px; box-sizing: border-box; width: auto;
  min-height: 44px; height: 44px; padding: 0 13px; margin: 0; border: 1px solid var(--fg-red-line); border-radius: 8px;
  background: var(--fg-surface); color: var(--fg-red-text); font: inherit; font-size: 14px; font-weight: 700; white-space: nowrap; cursor: pointer; box-shadow: none;
}
:is(.consumer-section-panel .fg-head-action, .fg-ui):not(#fg) .fg-head-urgent .fg-icon { width: 16px; height: 16px; stroke-width: 2.2; }
:is(.consumer-section-panel .fg-head-action, .fg-ui):not(#fg) .fg-head-urgent:disabled { opacity: .5; cursor: not-allowed; }
:is(.consumer-section-panel .fg-head-action, .fg-ui):not(#fg) .fg-head-sos { background: var(--fg-red); border-color: var(--fg-red); color: #fff; letter-spacing: .04em; min-width: 64px; }
.fg-ui:not(#fg) .family-loc-local-head:empty { display: none; }
.fg-ui:not(#fg) .family-loc-local-head { display: flex; justify-content: flex-end; }
.fg-ui:not(#fg) :is(.person-section-heading, .pet-section-header) > .safecare-found-cta { display: contents; }

/* Tabs: the open one in dark text with a dark line, counts as plain numbers */
.fg-tabs:not(#fg) > button[aria-selected="true"] { color: var(--fg-text); border-bottom-color: var(--fg-text); }
.fg-tabs:not(#fg) .fg-tab-count { min-width: 0; height: auto; padding: 0; background: transparent; color: var(--fg-text-3); font-size: 13px; }
.fg-tabs:not(#fg) > button[aria-selected="true"] .fg-tab-count { background: transparent; color: var(--fg-blue-text); }

/* Lists: title with its count, one primary button */
.fg-ui:not(#fg) :is(.person-section-heading, .pet-section-header) { align-items: center; flex-wrap: wrap; row-gap: 8px; margin: 0 0 4px; }
.fg-ui:not(#fg) :is(.person-section-heading .person-title, .pet-section-title) { font-size: 18px; line-height: 26px; }
.fg-ui:not(#fg) :is(.person-title-count, .pet-section-count) { color: var(--fg-blue-text); }
.fg-ui:not(#fg) :is(.person-section-heading, .pet-section-header) > .site-button:not(.fg-head-urgent) { min-height: 40px; padding: 0 14px; font-size: 14px; background: var(--fg-blue); border-color: var(--fg-blue); color: #fff; margin-left: auto; }
.fg-ui:not(#fg) :is(.person-section-heading, .pet-section-header) > .site-button .fg-icon { width: 16px; height: 16px; }
.fg-ui:not(#fg) .person-group-title { font-size: 14px; color: var(--fg-text-3); font-weight: 700; }

/* Person / pet card: photo · name with badge · meta · three facts · two actions */
.fg-ui:not(#fg) :is(.person-card, .pet-card) { padding: 18px 20px; gap: 14px; }
.fg-ui:not(#fg) .person-card[data-person-registration="unfinished"] { border-style: solid; border-color: var(--fg-line); }
.fg-ui:not(#fg) :is(.person-card[data-person-card] > .person-card-head, .pet-card[data-pet-card] > .pet-card-head) { flex-wrap: nowrap; align-items: center; }
.fg-ui:not(#fg) :is(.person-card-identity, .pet-card-identity) { gap: 12px; }
.fg-ui:not(#fg) :is(.person-card-thumbnail, .pet-profile-thumbnail) { width: 56px; height: 56px; border-radius: 10px; }
.fg-ui:not(#fg) .person-card-initial { font-size: 20px; font-weight: 700; color: var(--fg-text-2); }
.fg-ui:not(#fg) :is(.person-card-nameline, .pet-card-nameline) { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.fg-ui:not(#fg) :is(.person-card-name, .pet-card-name) { font-size: 16.5px; }
.fg-ui:not(#fg) :is(.person-card-meta, .pet-card-meta) { margin: 2px 0 0; font-size: 13px; color: var(--fg-text-3); }
.fg-ui:not(#fg) .pet-card-titlebox { display: flex; flex-direction: column; min-width: 0; }
.fg-ui:not(#fg) .fg-primary-chip { margin-left: 0; }
.fg-ui:not(#fg) .person-card-head > .person-card-more { margin: 0 0 0 auto; width: 36px; min-height: 36px; height: 36px; padding: 0; border-radius: 9px; color: var(--fg-text-2); display: grid; place-items: center; flex: 0 0 auto; align-self: flex-start; }
.fg-ui:not(#fg) .person-card-facts { padding: 12px 0 0; border-radius: 0; background: transparent; border-top: 1px solid var(--fg-line); }
.fg-ui:not(#fg) .person-card-facts dt { font-size: 12px; padding: 0 0 0 12px; }
.fg-ui:not(#fg) .person-card-facts dd { padding: 0 0 0 12px; white-space: normal; overflow-wrap: anywhere; }
.fg-ui:not(#fg) .person-card-facts :is(dt, dd):nth-of-type(1) { padding-left: 0; }
.fg-ui:not(#fg) .person-card-facts :is(dt:nth-of-type(n+2), dd:nth-of-type(n+2)) { border-left: 1px solid var(--fg-line); }
.fg-ui:not(#fg) .person-card-progress { display: flex; flex-direction: column; gap: 8px; }
.fg-ui:not(#fg) .person-card-progress-line { display: flex; align-items: baseline; gap: 8px; font-size: 14px; }
.fg-ui:not(#fg) .person-card-progress-line span { margin-left: auto; font-size: 12.5px; color: var(--fg-text-3); }
.fg-ui:not(#fg) :is(.person-card-actions, .pet-card-actions) .site-button { min-height: 40px; font-size: 14px; }
.fg-ui:not(#fg) .person-card-actions [data-person-resume] { flex: 1 1 100%; min-height: 48px; font-size: 15px; }
.fg-ui:not(#fg) .pet-card :is(.pet-card-species, .pet-profile-renewal, .pet-profile-age, .pet-profile-family, .pet-profile-identity, .pet-photo-kind-summary, .pet-progress, .pet-card-consent) { display: none; }
.fg-ui:not(#fg) .pet-card > .pet-number-value { display: none; }
.fg-ui:not(#fg) :is(.safecare-progress, .pet-progress-bar) { height: 6px; }
.fg-ui:not(#fg) .safecare-progress[data-fg-done] .safecare-progress-fill { background: var(--fg-green-dot); }

/* Photo step: one big gallery button, real example tiles, one progress line */
.fg-ui:not(#fg) :is(.person-bulk-title, .person-bulk-warning, .person-bulk-help, .person-photo-reference-head, .safecare-slot-examples, .pet-slot-examples, .pet-bulk > .person-bulk-angles) { display: none; }
.fg-ui:not(#fg) .person-bulk-pick { min-height: 54px; font-size: 16px; }
.fg-ui:not(#fg) .person-bulk-result, .fg-ui:not(#fg) .pet-bulk > .person-bulk-list:not([hidden]) { padding: 12px 14px; }
.fg-ui:not(#fg) .person-bulk-result:not(:has(.person-bulk-list)) { padding: 0; border: 0; background: transparent; }
.fg-ui:not(#fg) :is(.person-bulk-summary.is-ok, .pet-bulk .person-bulk-status.is-ok) { display: flex; align-items: center; gap: 8px; color: var(--fg-green); font-size: 14px; font-weight: 600; }
.fg-ui:not(#fg) :is(.person-bulk-summary.is-ok, .pet-bulk .person-bulk-status.is-ok)::before {
  content: ""; width: 18px; height: 18px; background: currentColor; flex: 0 0 auto;
  -webkit-mask: var(--fg-mask-check) center / contain no-repeat; mask: var(--fg-mask-check) center / contain no-repeat;
}
.fg-ui:not(#fg) .person-bulk-summary.is-error { color: var(--fg-red-text); }
.fg-ui:not(#fg) .person-screen-subtitle { font-size: 14.5px; }
.fg-ui:not(#fg) :is(.person-form-title, .pet-draft-title) { font-size: 24px; line-height: 32px; }
.fg-ui:not(#fg) .fg-tile-group-label { display: none; margin: 0; font-size: 13px; font-weight: 700; color: var(--fg-text-2); }
.fg-ui:not(#fg) :is(.safecare-slot-media, .pet-slot-media) { border-radius: 10px; }
.fg-ui:not(#fg) .pet-slot-media { aspect-ratio: 1 / 1; }
.fg-ui:not(#fg) :is(.safecare-slot[data-safecare-slot-filled="true"], .pet-slot[data-pet-slot-filled="true"]) :is(.safecare-slot-media, .pet-slot-media) { border: 1px solid var(--fg-line); }
.fg-ui:not(#fg) .safecare-slot-index { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fg-ui:not(#fg) :is(.safecare-slot-label, .pet-slot-label) { font-size: 13px; font-weight: 600; }
.fg-ui:not(#fg) :is(.safecare-slot-caption, .pet-slot-caption) { align-items: flex-start; text-align: left; }
.fg-ui:not(#fg) .fg-tile-tag { left: 6px; top: 6px; height: 20px; padding: 0 7px; border-radius: 5px; font-size: 12px; font-weight: 600; background: rgb(20 24 31 / 72%); }
.fg-ui:not(#fg) .fg-tile-tag-filled {
  top: auto; bottom: 6px; left: 6px; width: 22px; height: 22px; padding: 0; border-radius: 50%; background: #15803D; font-size: 0; justify-content: center;
}
.fg-ui:not(#fg) .fg-tile-tag-filled::before {
  content: ""; width: 13px; height: 13px; background: #fff;
  -webkit-mask: var(--fg-mask-check) center / contain no-repeat; mask: var(--fg-mask-check) center / contain no-repeat;
}
.fg-ui:not(#fg) .safecare-slot-x {
  position: absolute; top: 6px; right: 6px; z-index: 2; width: 28px; height: 28px; min-height: 28px; padding: 0; margin: 0;
  border: 0; border-radius: 50%; background: rgb(20 24 31 / 62%); color: #fff; display: grid; place-items: center; cursor: pointer; box-shadow: none;
}
.fg-ui:not(#fg) .safecare-slot-x .fg-icon { width: 15px; height: 15px; stroke-width: 2.4; }
.fg-ui:not(#fg) .pet-slot-actions:empty { display: none; }
.fg-ui:not(#fg) .pet-draft-photo-state-accepted { display: none; }
.fg-ui:not(#fg) .fg-progress-line { display: flex; align-items: baseline; gap: 8px; font-size: 13.5px; color: var(--fg-text-2); margin-bottom: -4px; }
.fg-ui:not(#fg) .fg-progress-line b { font-size: 14px; color: var(--fg-text); }
.fg-ui:not(#fg) .fg-progress-line span { margin-left: auto; font-size: 12.5px; color: var(--fg-text-3); }
.fg-ui:not(#fg) :is(.safecare-photo-set-note, [data-pet-draft-photo-note]) { padding: 0; background: transparent; color: var(--fg-text-3); font-size: 13px; }
.fg-ui:not(#fg) :is(.person-photo-optional, .pet-photo-optional, .pet-draft-extra) { border-radius: 10px; }
.fg-ui:not(#fg) :is(.person-photo-optional, .pet-photo-optional, .pet-draft-extra) > summary { min-height: 52px; padding: 10px 16px; gap: 10px; font-size: 14.5px; font-weight: 600; flex-wrap: wrap; }
.fg-ui:not(#fg) :is(.person-photo-optional, .pet-photo-optional, .pet-draft-extra) > summary::before { width: 20px; height: 20px; border-radius: 0; background: linear-gradient(var(--fg-text-2), var(--fg-text-2)) center / 14px 2px no-repeat, linear-gradient(var(--fg-text-2), var(--fg-text-2)) center / 2px 14px no-repeat; }
.fg-ui:not(#fg) .fg-summary-sub { font-size: 12.5px; font-weight: 400; color: var(--fg-text-3); }
.fg-ui:not(#fg) .fg-lockline { font-size: 12.5px; color: var(--fg-text-3); }
.fg-ui:not(#fg) .fg-lockline::before { width: 14px; height: 14px; }

/* Final check: full-width facts, thumbnails, one ready line */
.fg-ui:not(#fg) :is(.person-review, .pet-facts) { max-width: none; width: 100%; box-sizing: border-box; grid-template-columns: 92px minmax(0, 1fr); padding: 14px 16px; border-radius: 10px; }
.fg-ui:not(#fg) .person-review-section-head h5 { font-size: 15.5px; }
.fg-ui:not(#fg) .person-review-section-head .person-text-button { min-height: 36px; padding: 0 6px; border: 0; background: transparent; color: var(--fg-blue-text); font-size: 14px; }
.fg-ui:not(#fg) .person-review-photo-media { border: 0; border-radius: 8px; }
.fg-ui:not(#fg) .person-review-photo figcaption { font-size: 12px; color: var(--fg-text-3); }
.fg-ui:not(#fg) .person-review-ready { display: flex; align-items: center; gap: 8px; font-weight: 600; }
.fg-ui:not(#fg) .person-review-ready .fg-icon { width: 18px; height: 18px; }
.fg-ui:not(#fg) .pet-draft-review-figure { margin: 0; display: flex; flex-direction: column; gap: 4px; }
.fg-ui:not(#fg) .pet-draft-review-figure figcaption { font-size: 12px; text-align: center; color: var(--fg-text-3); }
.fg-ui:not(#fg) .pet-draft-review-photo { border-radius: 8px; }

/* Done: the face that was registered */
.fg-ui:not(#fg) .fg-done-hero { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.fg-ui:not(#fg) .fg-done-face { position: relative; width: 104px; height: 104px; display: grid; place-items: center; }
.fg-ui:not(#fg) .fg-done-photo { width: 104px; height: 104px; border-radius: 50%; object-fit: cover; display: block; border: 3px solid var(--fg-surface); box-shadow: 0 0 0 1px var(--fg-line); box-sizing: border-box; }
.fg-ui:not(#fg) .fg-done-face:has(.fg-done-photo) .fg-done-mark { position: absolute; right: 0; bottom: 2px; width: 30px; height: 30px; background: #15803D; color: #fff; border: 3px solid var(--fg-surface); box-sizing: border-box; }
.fg-ui:not(#fg) .fg-done-face:has(.fg-done-photo) .fg-done-mark .fg-icon { width: 15px; height: 15px; stroke-width: 3; }
.fg-ui:not(#fg) .fg-done-hero :is(.person-form-title, .pet-draft-title) { font-size: 21px; line-height: 30px; }
.fg-ui:not(#fg) .fg-bell-line { display: flex; align-items: center; gap: 6px; padding: 0; background: transparent; color: var(--fg-text-3); font-size: 12.5px; }
.fg-ui:not(#fg) .fg-bell-line::before { display: none; }
.fg-ui:not(#fg) .fg-bell-line .fg-icon { width: 14px; height: 14px; }
.fg-ui:not(#fg) .fg-done-actions > .site-button { min-width: 240px; min-height: 52px; font-size: 16px; }

/* ── 가족 위치 (rebuilt: find the family) ── */
.fg-ui:not(#fg).family-loc-surface { gap: 14px; }
.fg-ui:not(#fg) .family-loc-icon { width: 18px; height: 18px; }
.fg-ui:not(#fg) .family-loc-home { display: grid; grid-template-columns: minmax(0, 1fr) 440px; gap: 20px; align-items: start; }
.fg-ui:not(#fg) .family-loc-side-col { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.fg-ui:not(#fg) .family-loc-map { position: relative; border-radius: 12px; overflow: hidden; border: 1px solid var(--fg-line); background: #E9ECE6; height: 560px; min-height: 0; }
.fg-ui:not(#fg) .family-loc-map.is-single { height: 420px; }
.fg-ui:not(#fg) .family-loc-map-canvas { position: absolute; inset: 0; }
.fg-ui:not(#fg) .family-loc-map-tools { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.fg-ui:not(#fg) .family-loc-map > .family-loc-map-tools { position: absolute; right: 10px; bottom: 10px; z-index: 2; }
.fg-ui:not(#fg) .family-loc-map-tools .family-loc-tool { min-height: 36px; height: 36px; padding: 0 12px; border-radius: 8px; font-size: 13.5px; font-weight: 600; background: var(--fg-surface); border: 1px solid var(--fg-line); box-shadow: 0 1px 4px rgb(0 0 0 / 16%); }
.family-map-pin { position: relative; display: flex; flex-direction: column; align-items: center; font-family: "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif; }
.family-map-pin-face { width: 40px; height: 40px; border-radius: 50%; border: 3px solid #fff; box-shadow: 0 2px 6px rgb(0 0 0 / 25%); background: #4A5568; color: #fff; display: grid; place-items: center; font-size: 15px; font-weight: 700; box-sizing: border-box; }
.family-map-pin-tail { width: 10px; height: 10px; background: #fff; transform: rotate(45deg); margin-top: -7px; }
.family-map-pin-label { margin-top: 3px; padding: 1px 6px; border-radius: 6px; background: #fff; color: #14181F; font-size: 12px; font-weight: 700; white-space: nowrap; box-shadow: 0 1px 3px rgb(0 0 0 / 18%); }
.family-map-pin.is-stale .family-map-pin-face { background: #8A929D; }
.fg-ui:not(#fg) .family-loc-sec { display: flex; align-items: center; gap: 10px; }
.fg-ui:not(#fg) .family-loc-sec .family-loc-heading { font-size: 18px; line-height: 26px; }
.fg-ui:not(#fg) .family-loc-count { margin-left: 4px; color: var(--fg-blue-text); }
.fg-ui:not(#fg) .family-loc-sec-note { margin-left: auto; font-size: 13px; color: var(--fg-text-3); }
.fg-ui:not(#fg) .family-loc-sec-title { margin: 0; font-size: 13px; font-weight: 700; color: var(--fg-text-3); }
.fg-ui:not(#fg) .family-loc-family { gap: 10px; }
.fg-ui:not(#fg) .family-loc-list { display: flex; flex-direction: column; background: var(--fg-surface); border: 1px solid var(--fg-line); border-radius: 12px; overflow: hidden; }
.fg-ui:not(#fg) .family-loc-list > * + * { border-top: 1px solid var(--fg-line); }
.fg-ui:not(#fg) .family-loc-list-empty { padding: 16px; }
.fg-ui:not(#fg) .family-loc-row { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; margin: 0; border-radius: 0; background: transparent; }
.fg-ui:not(#fg) .family-loc-row.family-loc-member { display: flex; grid-template-columns: none; }
.fg-ui:not(#fg) .family-loc-row-body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.fg-ui:not(#fg) .family-loc-avatar { width: 44px; height: 44px; font-size: 16px; background: #4A5568; color: #fff; }
.fg-ui:not(#fg) .family-loc-avatar::after { display: none; }
.fg-ui:not(#fg) .family-loc-avatar.is-me { background: #8B5A7A; }
.fg-ui:not(#fg) .family-loc-avatar.is-small { width: 28px; height: 28px; font-size: 12px; }
.fg-ui:not(#fg) .family-loc-member:is([data-presence="STALE"], [data-presence="PAUSED"]) .family-loc-avatar { background: #8A929D; color: #fff; }
.fg-ui:not(#fg) .family-loc-open { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; width: 100%; min-height: 0; padding: 0; margin: 0; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.fg-ui:not(#fg) .family-loc-who { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0; }
.fg-ui:not(#fg) .family-loc-name { font-size: 15.5px; font-weight: 700; }
.fg-ui:not(#fg) .family-loc-relation { font-size: 12.5px; color: var(--fg-text-3); }
.fg-ui:not(#fg) .family-loc-relation:empty { display: none; }
.fg-ui:not(#fg) .family-loc-state { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--fg-text-3); }
.fg-ui:not(#fg) .family-loc-state::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.fg-ui:not(#fg) .family-loc-state[data-state="LIVE"] { color: var(--fg-green); }
.fg-ui:not(#fg) .family-loc-state[data-state="LIVE"]::before { background: var(--fg-green-dot); }
.fg-ui:not(#fg) .family-loc-state:is([data-state="STALE"], [data-state="PAUSED"]) { color: var(--fg-amber); }
.fg-ui:not(#fg) .family-loc-state:is([data-state="STALE"], [data-state="PAUSED"])::before { background: var(--fg-amber-dot); }
.fg-ui:not(#fg) .family-loc-place { display: block; font-size: 14px; color: var(--fg-text); margin: 0; font-weight: 500; }
.fg-ui:not(#fg) .family-loc-meta { display: flex; flex-wrap: wrap; gap: 4px 8px; margin: 4px 0 0; font-size: 12px; color: var(--fg-text-3); }
.fg-ui:not(#fg) .family-loc-meta-item { display: inline-flex; align-items: center; gap: 4px; }
.fg-ui:not(#fg) .family-loc-meta-item .family-loc-icon { width: 14px; height: 14px; }
.fg-ui:not(#fg) .family-loc-meta-item[data-low] { color: var(--fg-red-text); }
.fg-ui:not(#fg) .family-loc-why { display: flex; align-items: center; gap: 5px; margin: 6px 0 0; padding: 0; background: transparent; color: var(--fg-amber); font-size: 13px; font-weight: 600; }
.fg-ui:not(#fg) .family-loc-why .family-loc-icon { width: 14px; height: 14px; margin: 0; }
.fg-ui:not(#fg) .family-loc-reason { color: inherit; }
/* 6번 운영 걷기 10-29: the reason ran off the right edge of the row (「…상대 폰 LOTBI '」) — it wraps between words. */
.fg-ui:not(#fg) .family-loc-why { align-items: flex-start; min-width: 0; }
.fg-ui:not(#fg) .family-loc-why .family-loc-reason { min-width: 0; white-space: normal; word-break: keep-all; overflow-wrap: anywhere; }
.fg-my-child-scope[data-workspace="life"]:not(#ri):not(#ri-03):not(#mc3):not(#fg) .lotbi-mychild-tile-label { word-break: keep-all; }
.fg-ui:not(#fg) .family-loc-request { display: block; margin: 6px 0 0; padding: 0; background: transparent; color: var(--fg-blue-text); font-size: 13px; font-weight: 600; }
.fg-ui:not(#fg) .family-loc-request:is([data-family-request-status="FAILED"], [data-family-request-status="EXPIRED"]) { color: var(--fg-red-text); }
.fg-ui:not(#fg) .family-loc-row-button { flex: 0 0 auto; align-self: center; min-height: 44px; height: 44px; padding: 0 11px; font-size: 13px; gap: 5px; border-radius: 9px; }
.fg-ui:not(#fg) .family-loc-row-button .family-loc-icon { width: 14px; height: 14px; }
.fg-ui:not(#fg) .family-loc-viewers { font-size: 12.5px; color: var(--fg-text-3); margin: 0; }
.fg-ui:not(#fg) .family-loc-me { display: flex; align-items: center; gap: 12px; width: 100%; padding: 14px 16px; border: 1px solid var(--fg-line); border-radius: 12px; background: var(--fg-surface); color: var(--fg-text); font: inherit; text-align: left; cursor: pointer; box-sizing: border-box; }
.fg-ui:not(#fg) .family-loc-me .family-loc-note { font-size: 13px; color: var(--fg-text-3); }
.fg-ui:not(#fg) .family-loc-chevron { color: var(--fg-text-3); margin-left: auto; }
.fg-ui:not(#fg) .family-loc-sub-menu { display: flex; justify-content: center; flex-wrap: wrap; gap: 2px; }
.fg-ui:not(#fg) .family-loc-sub-item { position: relative; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 12px; border: 0; border-radius: 9px; background: transparent; color: var(--fg-text-2); font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.fg-ui:not(#fg) .family-loc-sub-item + .family-loc-sub-item::before { content: ""; position: absolute; left: -1px; top: 14px; bottom: 14px; width: 1px; background: var(--fg-line-strong); }
/* one person */
.fg-ui:not(#fg) .family-loc-view-head { flex-direction: row; align-items: center; gap: 8px; flex-wrap: wrap; }
.fg-ui:not(#fg) .family-loc-view-head > .family-loc-button { min-height: 40px; padding: 0 10px 0 4px; border: 0; background: transparent; color: var(--fg-blue-text); font-size: 14px; }
.fg-ui:not(#fg) .family-loc-view-title { flex: 1 1 100%; font-size: 22px; line-height: 30px; }
.fg-ui:not(#fg) .family-loc-detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 20px; align-items: start; }
.fg-ui:not(#fg) :is(.family-loc-detail-main, .family-loc-detail-side) { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.fg-ui:not(#fg) .family-loc-place-card { gap: 8px; }
.fg-ui:not(#fg) .family-loc-place-title { margin: 0; font-size: 19px; font-weight: 700; }
.fg-ui:not(#fg) .family-loc-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.fg-ui:not(#fg) .family-loc-chips > * { display: inline-flex; align-items: center; gap: 5px; height: 30px; padding: 0 10px; border-radius: 8px; background: var(--fg-sub); font-size: 13px; font-weight: 600; color: var(--fg-text-2); }
.fg-ui:not(#fg) .family-loc-chips > .family-loc-state[data-state="LIVE"] { color: var(--fg-green); }
.fg-ui:not(#fg) .family-loc-place-card .family-loc-why { margin-top: 2px; }
.fg-ui:not(#fg) .family-loc-detail-actions { display: flex; gap: 8px; }
.fg-ui:not(#fg) .family-loc-detail-actions > .family-loc-primary { flex: 1 1 auto; }
.fg-ui:not(#fg) .family-loc-wait { align-items: center; text-align: center; gap: 8px; padding: 22px 16px; }
.fg-ui:not(#fg) .family-loc-wait strong { font-size: 16.5px; }
.fg-ui:not(#fg) .family-loc-spin { width: 34px; height: 34px; border-radius: 50%; border: 3px solid var(--fg-blue-soft); border-top-color: var(--fg-blue); box-sizing: border-box; animation: fg-spin 1s linear infinite; }
@keyframes fg-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .fg-ui:not(#fg) .family-loc-spin { animation: none; } }
.fg-ui:not(#fg) .family-loc-wait .family-loc-cancel { min-height: 44px; margin-top: 4px; padding: 0 20px; }
/* 위치 요청 받는 쪽 (시안 02 L4): mobile bottom sheet, PC centred dialog */
.fg-ui:not(#fg) .family-loc-ask { display: flex; flex-direction: column; gap: 12px; }
.fg-ui:not(#fg) .family-loc-ask-head { display: flex; align-items: center; gap: 14px; margin-bottom: 4px; }
.fg-ui:not(#fg) .family-loc-ask-avatar { width: 52px; height: 52px; flex: 0 0 auto; font-size: 20px; background: #8B5A7A; }
.fg-ui:not(#fg) .family-loc-ask-words { min-width: 0; }
.fg-ui:not(#fg) .family-loc-ask-title { margin: 0; font-size: 18px; line-height: 1.4; font-weight: 700; color: var(--fg-text); }
.fg-ui:not(#fg) .family-loc-ask-sub { margin: 2px 0 0; font-size: 14px; line-height: 1.5; color: var(--fg-text-2); }
.fg-ui:not(#fg) .family-loc-ask .family-loc-wide { width: 100%; min-height: 52px; justify-content: center; }
.fg-ui:not(#fg) .family-loc-ask-always { display: flex; align-items: center; gap: 10px; min-height: 44px; font-size: 14.5px; color: var(--fg-text-2); cursor: pointer; }
.fg-ui:not(#fg) .family-loc-ask-always input { flex: 0 0 auto; width: 22px; height: 22px; margin: 0; accent-color: var(--fg-blue); }
.lotbi-sheet.family-loc-ask-sheet.fg-ui:not(#fg) > .lotbi-sheet-dismiss { display: none; }
.lotbi-sheet.family-loc-ask-sheet.person-cancel-dialog.fg-ui:not(#fg) { padding: 24px; }
/* 가족 위치 기록 (시안 02 L2) */
.fg-ui:not(#fg) .family-loc-record { display: flex; flex-direction: column; gap: 8px; }
.fg-ui:not(#fg) .family-loc-record-list { display: flex; flex-direction: column; padding: 8px 18px 12px; }
.fg-ui:not(#fg) .family-loc-record-list > * + * { border-top: 0; }
.fg-ui:not(#fg) .family-loc-record-list > .family-loc-note { padding: 10px 0; }
.fg-ui:not(#fg) .family-loc-record-day { margin: 10px 0 2px; font-size: 13.5px; font-weight: 700; color: var(--fg-text-2); }
.fg-ui:not(#fg) .family-loc-record-row { display: grid; grid-template-columns: 52px 28px minmax(0, 1fr); align-items: start; column-gap: 12px; padding: 8px 0; }
.fg-ui:not(#fg) .family-loc-record-time { font-size: 14px; line-height: 28px; color: var(--fg-text-3); font-variant-numeric: tabular-nums; }
.fg-ui:not(#fg) .family-loc-record-icon { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: var(--fg-sub); color: var(--fg-text-2); }
.fg-ui:not(#fg) .family-loc-record-icon > svg { width: 15px; height: 15px; }
.fg-ui:not(#fg) .family-loc-record-icon[data-tone="green"] { background: var(--fg-green-soft); color: var(--fg-green); }
.fg-ui:not(#fg) .family-loc-record-icon[data-tone="blue"] { background: var(--fg-blue-soft); color: var(--fg-blue-text); }
.fg-ui:not(#fg) .family-loc-record-icon[data-tone="red"] { background: var(--fg-red-soft); color: var(--fg-red-text); }
.fg-ui:not(#fg) .family-loc-record-text { margin: 0; font-size: 15px; line-height: 28px; color: var(--fg-text); min-width: 0; }
.fg-ui:not(#fg) .family-loc-record-sub { display: block; font-size: 13.5px; line-height: 1.45; color: var(--fg-text-2); }
.fg-ui:not(#fg) .family-loc-auto-send { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.fg-ui:not(#fg) .family-loc-places { display: flex; flex-direction: column; gap: 8px; }
.fg-ui:not(#fg) .family-loc-place-row { align-items: flex-start; }
.fg-ui:not(#fg) .family-loc-place-icon { width: 20px; padding-top: 2px; color: var(--fg-text-2); }
.fg-ui:not(#fg) .family-loc-place-name { font-size: 15px; }
.fg-ui:not(#fg) .family-loc-place-toggles { display: flex; flex-direction: column; gap: 2px; margin-top: 6px; }
.fg-ui:not(#fg) .family-loc-toggle-line { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 40px; font-size: 13.5px; color: var(--fg-text-2); }
.fg-ui:not(#fg) .family-loc-place-row .family-loc-quiet { align-self: flex-start; min-height: 36px; padding: 0; font-size: 13px; }
.fg-ui:not(#fg) .family-loc-add-summary { display: flex; align-items: center; gap: 6px; min-height: 48px; padding: 0 16px; color: var(--fg-blue-text); font-size: 14px; font-weight: 600; cursor: pointer; list-style: none; }
.fg-ui:not(#fg) .family-loc-add-summary::-webkit-details-marker { display: none; }
.fg-ui:not(#fg) .family-loc-place-add[open] > .family-loc-form { padding: 0 16px 16px; }
.fg-ui:not(#fg) .family-loc-choices { display: flex; flex-wrap: wrap; gap: 8px; }
.fg-ui:not(#fg) .family-loc-choice { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 12px; border: 1px solid var(--fg-line-strong); border-radius: 9px; background: var(--fg-surface); font-size: 14px; font-weight: 600; cursor: pointer; }
.fg-ui:not(#fg) .family-loc-choice:has(input:checked) { border-color: var(--fg-blue); background: var(--fg-blue-soft); color: var(--fg-blue-text); }
.fg-ui:not(#fg) .family-loc-unlink { align-self: center; min-height: 44px; color: var(--fg-red-text); font-size: 14px; }
.fg-ui:not(#fg) .family-loc-switch { position: relative; display: inline-flex; flex: 0 0 auto; cursor: pointer; }
.fg-ui:not(#fg) .family-loc-switch input { position: absolute; inset: 0; opacity: 0; margin: 0; width: 100%; height: 100%; cursor: pointer; }
.fg-ui:not(#fg) .family-loc-switch-track { width: 44px; height: 26px; border-radius: 13px; background: var(--fg-line-strong); position: relative; transition: background .15s ease; }
.fg-ui:not(#fg) .family-loc-switch-track::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgb(0 0 0 / 20%); transition: left .15s ease; }
.fg-ui:not(#fg) .family-loc-switch input:checked + .family-loc-switch-track { background: var(--fg-blue); }
.fg-ui:not(#fg) .family-loc-switch input:checked + .family-loc-switch-track::after { left: 21px; }
.fg-ui:not(#fg) .family-loc-switch input:disabled + .family-loc-switch-track { opacity: .55; }
.fg-ui:not(#fg) .family-loc-switch input:focus-visible + .family-loc-switch-track { outline: 2px solid var(--fg-blue); outline-offset: 2px; }
/* my sharing */
.fg-ui:not(#fg) .family-loc-me-view { max-width: 640px; }
.fg-ui:not(#fg) .family-loc-sharing { gap: 12px; border-color: var(--fg-line); }
.fg-ui:not(#fg) .family-loc-sharing-head { gap: 8px; }
.fg-ui:not(#fg) .family-loc-live-dot { width: 9px; height: 9px; box-shadow: none; }
.fg-ui:not(#fg) .family-loc-sharing[data-sharing-state="PAUSED"] .family-loc-live-dot { background: var(--fg-amber-dot); box-shadow: none; }
.fg-ui:not(#fg) .family-loc-indicator { font-size: 16px; }
.fg-ui:not(#fg) .family-loc-sharing[data-sharing-state="ON"] .family-loc-indicator { color: var(--fg-green); }
.fg-ui:not(#fg) .family-loc-sharing[data-sharing-state="PAUSED"] .family-loc-indicator { color: var(--fg-amber); }
.fg-ui:not(#fg) .family-loc-label { margin: 0; font-size: 13px; font-weight: 700; color: var(--fg-text-3); }
.fg-ui:not(#fg) .family-loc-pause { display: flex; flex-direction: column; gap: 8px; }
.fg-ui:not(#fg) .family-loc-chips-row { display: flex; flex-wrap: wrap; gap: 8px; }
.fg-ui:not(#fg) .family-loc-chip-button { min-height: 40px; padding: 0 14px; font-size: 14px; border-radius: 9px; gap: 6px; }
.fg-ui:not(#fg) .family-loc-chip-button .family-loc-icon { width: 15px; height: 15px; }
.fg-ui:not(#fg) .family-loc-group { display: flex; flex-direction: column; gap: 8px; }
.fg-ui:not(#fg) .family-loc-group > .family-loc-label { padding: 0 2px; }
.fg-ui:not(#fg) .family-loc-row-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 0; }
.fg-ui:not(#fg) .family-loc-row-actions .family-loc-quiet { min-height: 34px; font-size: 13px; padding: 0 4px; }
.fg-ui:not(#fg) .family-loc-row .family-loc-note { font-size: 12.5px; color: var(--fg-text-3); }
.fg-ui:not(#fg) .family-loc-privacy { font-size: 12.5px; color: var(--fg-text-3); }
.fg-ui:not(#fg) .family-loc-footer { padding: 0; background: transparent; font-size: 12.5px; color: var(--fg-text-3); }
.fg-ui:not(#fg) .family-loc-footer::before { display: none; }
/* invite / code */
.fg-ui:not(#fg) .family-loc-seg { display: grid; grid-template-columns: 1fr 1fr; padding: 3px; border-radius: 10px; background: var(--fg-sub); max-width: 560px; }
.fg-ui:not(#fg) .family-loc-seg > button { min-height: 40px; border: 0; border-radius: 8px; background: transparent; color: var(--fg-text-2); font: inherit; font-size: 14.5px; font-weight: 600; cursor: pointer; }
.fg-ui:not(#fg) .family-loc-seg > button[aria-selected="true"] { background: var(--fg-surface); color: var(--fg-text); box-shadow: 0 1px 3px rgb(0 0 0 / 10%); }
.fg-ui:not(#fg) :is(.family-loc-invite, .family-loc-created, .family-loc-accept) { max-width: 560px; box-sizing: border-box; }
.fg-ui:not(#fg) .family-loc-center { text-align: center; }
.fg-ui:not(#fg) .family-loc-code { justify-content: center; gap: 8px; font-size: 26px; }
.fg-ui:not(#fg) .family-loc-code > b { width: 44px; height: 56px; border-radius: 10px; background: var(--fg-surface); border: 1px solid var(--fg-line-strong); box-sizing: border-box; }
.fg-ui:not(#fg) .family-loc-code-gap { width: 4px; }
.fg-ui:not(#fg) .family-loc-link-box { display: flex; align-items: center; gap: 8px; min-height: 50px; padding: 0 6px 0 14px; border: 1px solid var(--fg-line-strong); border-radius: 10px; box-sizing: border-box; }
.fg-ui:not(#fg) .family-loc-link-text { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; color: var(--fg-text-2); }
.fg-ui:not(#fg) .family-loc-small { min-height: 38px; height: 38px; padding: 0 12px; font-size: 13.5px; gap: 5px; }
.fg-ui:not(#fg) .family-loc-created .family-loc-actions { display: flex; flex-direction: column; gap: 8px; }
.fg-ui:not(#fg) .family-loc-created .family-loc-actions > * { width: 100%; }
.fg-ui:not(#fg) .family-loc-invite-from { display: flex; align-items: center; gap: 12px; }
.fg-ui:not(#fg) .family-loc-two { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.fg-ui:not(#fg) .family-loc-code-input { text-align: center; font-size: 20px; letter-spacing: .2em; }
/* alerts */
.fg-ui:not(#fg) .family-loc-settings { display: flex; flex-direction: column; gap: 16px; max-width: 640px; }
.fg-ui:not(#fg) .family-loc-settings-person { padding: 0; background: transparent; gap: 8px; }
.fg-ui:not(#fg) .family-loc-settings-person > .family-loc-who { padding: 0 2px; }
.fg-ui:not(#fg) .family-loc-toggle-row { align-items: center; min-height: 52px; padding: 8px 16px; }
.fg-ui:not(#fg) .family-loc-toggle-row .family-loc-row-body { font-size: 14.5px; font-weight: 600; }
.fg-ui:not(#fg) .family-loc-toggle-row small { font-weight: 400; }
.fg-ui:not(#fg) .family-loc-quiet-row { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }

@media (max-width: 900px) {
  .fg-ui:not(#fg) :is(.family-loc-home, .family-loc-detail-grid) { grid-template-columns: minmax(0, 1fr); }
  .fg-ui:not(#fg) .family-loc-map { height: 240px; }
  .fg-ui:not(#fg) .family-loc-map.is-single { height: 260px; }
}
@media (max-width: 640px) {
  .consumer-section-panel .fg-head-action:not(#fg) .fg-head-urgent { min-height: 44px; height: 44px; padding: 0 12px; font-size: 14px; }
  .fg-ui:not(#fg) :is(.person-card, .pet-card) { padding: 16px; }
  .fg-ui:not(#fg) .person-card-facts { grid-auto-flow: column; grid-template-rows: auto auto; grid-template-columns: none; grid-auto-columns: minmax(0, 1fr); gap: 2px 0; }
  .fg-ui:not(#fg) :is(.person-card-head, .pet-card-head) > .safecare-badge { margin-left: 0; }
  .fg-ui:not(#fg) :is(.person-form, .pet-draft-body) { padding: 18px 16px; gap: 16px; }
  .fg-ui:not(#fg) :is(.person-form-title, .pet-draft-title) { font-size: 22px; line-height: 30px; }
  .fg-ui:not(#fg) :is(.safecare-slot-grid-required, .pet-slot-grid-required) {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-flow: row; grid-auto-columns: auto; gap: 10px; overflow: visible; contain: none; scroll-snap-type: none; padding-bottom: 0;
  }
  .fg-ui:not(#fg) :is(.safecare-slot-grid-required, .pet-slot-grid-required) > * { flex: none; }
  .fg-ui:not(#fg) .fg-tile-group-label { display: block; grid-column: 1 / -1; margin-top: 2px; }
  .fg-ui:not(#fg) .safecare-slot-label[data-fg-short] { font-size: 0; }
  .fg-ui:not(#fg) .safecare-slot-label[data-fg-short]::after { content: attr(data-fg-short); font-size: 13px; }
  .fg-ui:not(#fg) :is(.person-review-photo-grid, .pet-draft-review-photos) { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
  .fg-ui:not(#fg) .fg-done-actions > .site-button { min-width: 0; width: 100%; }
  .fg-ui:not(#fg) .family-loc-view-title { font-size: 20px; line-height: 28px; }
  .fg-ui:not(#fg) .family-loc-detail-actions > :not(.family-loc-primary) { flex: 0 0 auto; }
  .fg-ui:not(#fg) .family-loc-code > b { width: 42px; height: 54px; font-size: 24px; }
  .fg-ui:not(#fg) .family-loc-sub-item { padding: 0 9px; font-size: 13.5px; }
}
.fg-ui:not(#fg) .fg-photo-head .safecare-guide-compact { display: none; }
.fg-ui:not(#fg) :is(.person-section-heading .person-title, .pet-section-title) { white-space: nowrap; }
.fg-ui:not(#fg) .pet-slot-grid-required .pet-slot-hint, .fg-ui:not(#fg) .person-photo-form .safecare-wizard-actions > .person-field-hint { display: none; }

/* FAMILY-GUARDIAN-DESIGN-02 (owner review 2026-10-16): 기본정보 · 출생 연월 · 사진 등록 안내 as drawn */
.fg-ui:not(#fg) .fg-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.fg-ui:not(#fg) .fg-chip { min-height: 40px; padding: 0 14px; border: 1px solid var(--fg-line-strong); border-radius: 9px; background: var(--fg-surface); color: var(--fg-text-2); font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.fg-ui:not(#fg) .fg-chip[aria-checked="true"] { border-color: var(--fg-blue); background: var(--fg-blue-soft); color: var(--fg-blue-text); }
.fg-ui:not(#fg) .person-birth-picker-title { margin: 0; font-size: 18px; font-weight: 700; }
.fg-ui:not(#fg) .person-birth-wheel-label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fg-ui:not(#fg) .person-birth-wheels { gap: 12px; }
.fg-ui:not(#fg) .person-birth-wheel { border: 0; background: transparent; }
.fg-ui:not(#fg) .person-birth-wheel-option { border: 0; border-radius: 10px; color: var(--fg-text-3); font-size: 16px; }
.fg-ui:not(#fg) .person-birth-wheel-option.is-selected { background: var(--fg-sub); color: var(--fg-text); font-size: 18px; font-weight: 700; }
.lotbi-sheet.fg-ui:not(#fg):has([data-person-birth-picker]) .lotbi-sheet-dismiss { display: none; }
@media (min-width: 641px) { .lotbi-sheet.fg-ui:not(#fg):has([data-person-birth-picker]) .lotbi-sheet-dismiss { display: inline-flex; } }
.fg-ui:not(#fg) [data-safecare-renewal-dialog="person"] :is(.safecare-renewal-icon, .safecare-renewal-lead) { display: none; }
.fg-ui:not(#fg) [data-safecare-renewal-dialog="person"] .safecare-notice-section { border-radius: 10px; }
.fg-ui:not(#fg) [data-safecare-renewal-dialog="person"] .safecare-notice-toggle { min-height: 36px; padding: 0 6px; border: 0; background: transparent; color: var(--fg-blue-text); font-size: 14px; font-weight: 600; }
.fg-ui:not(#fg) .person-basic-fields .person-field-pair { grid-template-columns: minmax(0, 1fr); }
.fg-ui:not(#fg) .person-form[data-person-basic-form] .person-form-actions [data-person-registration-cancel] { min-height: 48px; padding: 0 18px; border: 1px solid var(--fg-line-strong); background: var(--fg-surface); color: var(--fg-text); font-size: 15px; border-radius: 10px; }

/* FAMILY-GUARDIAN-DESIGN-02 (owner review 2026-10-16): 가족 위치 as drawn */
.fg-ui:not(#fg) .family-loc-view-head { flex-direction: row; align-items: center; gap: 4px; flex-wrap: nowrap; }
.fg-ui:not(#fg) .family-loc-view-head > .family-loc-button.family-loc-back { width: 44px; min-width: 44px; height: 44px; min-height: 44px; padding: 0; justify-content: center; font-size: 0; gap: 0; color: var(--fg-text); margin-left: -10px; }
.fg-ui:not(#fg) .family-loc-view-head > .family-loc-back .family-loc-icon { width: 24px; height: 24px; }
.fg-ui:not(#fg) .family-loc-view-head .family-loc-view-title { font-size: 22px; }
.fg-ui:not(#fg) .family-loc-meta { flex-wrap: nowrap; white-space: nowrap; }
.fg-ui:not(#fg) .family-loc-meta .family-loc-meta-item { font: inherit; font-size: 12px; font-weight: 400; color: var(--fg-text-3); }
.fg-ui:not(#fg) .family-loc-meta .family-loc-meta-item[data-low], .fg-ui:not(#fg) .family-loc-meta .family-loc-meta-item[data-low] .family-loc-icon { color: var(--fg-text-3); }
.fg-ui:not(#fg) .family-loc-why { white-space: nowrap; }
.fg-ui:not(#fg) .family-loc-me .family-loc-who { justify-content: flex-start; }
.fg-ui:not(#fg) .family-loc-me .family-loc-state { margin-left: 0; }
.fg-ui:not(#fg) .family-loc-place-row { align-items: center; }
.fg-ui:not(#fg) .family-loc-place-open { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.fg-ui:not(#fg) .family-loc-place-row > .family-loc-place-switch { margin-left: auto; align-self: center; }
.fg-ui:not(#fg) .family-loc-sharing-head .family-loc-indicator { font-size: 18px; }
.fg-ui:not(#fg) .family-loc-pause > .family-loc-label { font-size: 14px; color: var(--fg-text); }
.fg-ui:not(#fg) .family-loc-chips-row { display: flex; flex-wrap: nowrap; gap: 8px; }
/* 마스터 10-29 걷기 ①: 7 day chips in one line pushed the whole page 30px to the left on S26; the row scrolls by itself. */
.fg-ui:not(#fg) .family-loc-timeline-days { min-width: 0; max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.fg-ui:not(#fg) .family-loc-timeline-days::-webkit-scrollbar { display: none; }
.fg-ui:not(#fg) .family-loc-timeline-days > .family-loc-button.family-loc-chip-button { flex: 0 0 auto; }
.fg-ui:not(#fg) .family-loc-chips-row > .family-loc-button.family-loc-chip-button { min-height: 38px; height: 38px; padding: 0 16px; border-radius: 9px; font-size: 14px; white-space: nowrap; }
.fg-ui:not(#fg) .family-loc-family-row { flex-direction: row; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 0; background: transparent; }
.fg-ui:not(#fg) .family-loc-family-row > .family-loc-button { margin-left: auto; min-height: 40px; font-size: 14px; }
.fg-ui:not(#fg) .family-loc-reports { display: flex; flex-wrap: wrap; justify-content: flex-end; }
.fg-ui:not(#fg) .family-loc-reports > .family-loc-button { min-height: 36px; font-size: 12.5px; color: var(--fg-text-3); }
.fg-ui:not(#fg) .family-loc-seg { background: color-mix(in srgb, var(--fg-text) 7%, var(--fg-sub)); }
.fg-ui:not(#fg) .family-loc-accept-wrap { display: flex; flex-direction: column; gap: 14px; }
.fg-ui:not(#fg) .family-loc-accept .family-loc-form-title { text-align: center; font-size: 14px; }
.fg-ui:not(#fg) .family-loc-code-field { position: relative; display: block; }
.fg-ui:not(#fg) .family-loc-code-boxes { display: flex; justify-content: center; gap: 8px; }
.fg-ui:not(#fg) .family-loc-code-boxes > b { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 56px; border: 1px solid var(--fg-line-strong); border-radius: 10px; background: var(--fg-surface); font-size: 24px; font-weight: 700; color: var(--fg-text); box-sizing: border-box; }
.fg-ui:not(#fg) .family-loc-code-boxes > b.is-active { border-color: var(--fg-blue); box-shadow: 0 0 0 3px var(--fg-blue-soft); }
.fg-ui:not(#fg) .family-loc-code-boxes > .family-loc-code-gap { width: 6px; }
.fg-ui:not(#fg) .family-loc-code-field > .family-loc-code-input { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; opacity: 0; font-size: 16px; }
.fg-ui:not(#fg) .family-loc-code-field.is-link > .family-loc-code-boxes { visibility: hidden; }
.fg-ui:not(#fg) .family-loc-code-field.is-link > .family-loc-code-input { opacity: 1; letter-spacing: 0; font-size: 14px; text-align: left; padding: 0 12px; border: 1px solid var(--fg-line-strong); border-radius: 10px; background: var(--fg-surface); color: var(--fg-text); box-sizing: border-box; }
.fg-ui:not(#fg) .family-loc-settings-who { display: flex; align-items: center; gap: 10px; padding: 0 2px; }
.fg-ui:not(#fg) .family-loc-settings-who .family-loc-name { font-size: 16px; }
.fg-ui:not(#fg) .family-loc-settings-other { display: flex; align-items: center; gap: 12px; width: 100%; border: 0; background: transparent; color: var(--fg-text); font: inherit; text-align: left; cursor: pointer; }
.fg-ui:not(#fg) .family-loc-settings-other .family-loc-chevron { margin-left: auto; color: var(--fg-text-3); }
.fg-ui:not(#fg) .family-loc-toggle-row .family-loc-row-body { display: flex; flex-direction: column; gap: 2px; }
.fg-ui:not(#fg) .family-loc-toggle-row .family-loc-row-body small { font-size: 13px; font-weight: 400; color: var(--fg-text-3); }
.fg-ui:not(#fg) .family-loc-time-row { align-items: center; }
.fg-ui:not(#fg) .family-loc-time-button { margin-left: auto; min-height: 40px; padding: 0; border: 0; background: transparent; color: var(--fg-blue-text); font: inherit; font-size: 16px; font-weight: 600; cursor: pointer; }
.fg-ui:not(#fg) .family-loc-quiet-row { display: flex; align-items: center; gap: 8px; }
.fg-ui:not(#fg) .family-loc-wait .family-loc-small { align-self: center; min-height: 40px; }
.fg-dialog:not(#fg) .fg-confirm-alert { align-items: center; text-align: center; }
.fg-dialog:not(#fg) .fg-confirm-alert .fg-confirm-icon { display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; border-radius: 50%; background: var(--fg-red-soft); color: var(--fg-red-text); }
.fg-dialog:not(#fg) .fg-confirm-alert .fg-confirm-icon .fg-icon { width: 32px; height: 32px; }
.fg-dialog:not(#fg) .fg-confirm-alert .fg-confirm-actions { flex-direction: column-reverse; width: 100%; }
@media (max-width: 640px) {
  .lotbi-sheet.fg-dialog:not(#fg):has(.fg-confirm-alert) { top: auto; bottom: 0; left: 0; right: 0; width: 100%; max-width: none; transform: none; margin: 0; border-radius: 20px 20px 0 0; }
}
.fg-ui:not(#fg) .family-loc-settings { display: flex; flex-direction: column; gap: 20px; }
.fg-ui:not(#fg) .family-loc-settings .family-loc-group { border: 0; }
.fg-ui:not(#fg) .family-loc-list > .family-loc-settings-other + .family-loc-settings-other { border-top: 1px solid var(--fg-line); }
.fg-ui:not(#fg) .family-loc-place-open .family-loc-place-name { font-size: 16px; font-weight: 700; color: var(--fg-text); }
.fg-ui:not(#fg) .family-loc-time-row > strong { font-size: 16px; font-weight: 700; }
.fg-dialog:not(#fg) .fg-confirm-alert .fg-confirm-actions > .site-button { flex: none; width: 100%; min-height: 52px; }
.fg-ui:not(#fg) .family-loc-accept .family-loc-form-title { justify-content: center; }
.fg-ui:not(#fg) .family-loc-created > .family-loc-label { font-size: 14px; color: var(--fg-text); }
/* NAVER Maps sets its host to position:relative; keep the canvas filling the box. */
.fg-ui:not(#fg) .family-loc-map > .family-loc-map-canvas { position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; }
@media (min-width: 641px) {
  .fg-ui:not(#fg) .family-loc-view-head > .family-loc-button.family-loc-back { width: 28px; min-width: 28px; height: 32px; min-height: 32px; margin-left: -6px; color: var(--fg-blue-text); }
  .fg-ui:not(#fg) .family-loc-view-head > .family-loc-back .family-loc-icon { width: 16px; height: 16px; }
  .fg-ui:not(#fg) .family-loc-view-head .family-loc-view-title { font-size: 14.5px; font-weight: 600; color: var(--fg-blue-text); }
  .fg-ui:not(#fg) .family-loc-view-head .family-loc-view-title::before { content: "가족 위치 · "; }
}

/* FAMILY-GUARDIAN-DESIGN-02 P3: 식별 사진 등록 안내 as drawn — two explanation rows, then the consents under 모두 동의 */
.fg-ui:not(#fg) [data-safecare-renewal-dialog="person"] { gap: 14px; }
.fg-ui:not(#fg) [data-safecare-renewal-dialog="person"] .safecare-renewal-title { display: block; margin: 0; font-size: 19px; font-weight: 700; color: var(--fg-text); }
.fg-ui:not(#fg) [data-safecare-renewal-dialog="person"] .safecare-notice-sections { display: flex; flex-direction: column; gap: 0; border: 1px solid var(--fg-line); border-radius: 12px; overflow: hidden; background: var(--fg-surface); }
.fg-ui:not(#fg) [data-safecare-renewal-dialog="person"] .safecare-notice-section { border: 0; border-radius: 0; margin: 0; padding: 0; background: transparent; }
.fg-ui:not(#fg) [data-safecare-renewal-dialog="person"] .safecare-notice-section + .safecare-notice-section { border-top: 1px solid var(--fg-line); }
.fg-ui:not(#fg) [data-safecare-renewal-dialog="person"] .safecare-notice-section-header { padding: 14px 16px; border: 0; background: transparent; }
.fg-ui:not(#fg) [data-safecare-renewal-dialog="person"] .safecare-notice-section-copy strong { font-size: 15.5px; color: var(--fg-text); }
.fg-ui:not(#fg) [data-safecare-renewal-dialog="person"] .safecare-notice-section-copy span { font-size: 13px; color: var(--fg-text-3); }
.fg-ui:not(#fg) [data-safecare-renewal-dialog="person"] .safecare-notice-detail { padding: 0 16px 14px; }
.fg-ui:not(#fg) [data-safecare-renewal-dialog="person"] .safecare-consent-group { display: flex; flex-direction: column; gap: 6px; }
.fg-ui:not(#fg) [data-safecare-renewal-dialog="person"] .safecare-consent-row { display: flex; align-items: flex-start; gap: 10px; min-height: 0; padding: 4px 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; font-size: 15px; font-weight: 500; color: var(--fg-text); }
.fg-ui:not(#fg) [data-safecare-renewal-dialog="person"] .safecare-consent-row.safecare-consent-all { font-size: 16px; font-weight: 700; }
.fg-ui:not(#fg) [data-safecare-renewal-dialog="person"] .safecare-notice-consents { display: flex; flex-direction: column; gap: 2px; padding-left: 28px; border: 0; background: transparent; }
.fg-ui:not(#fg) [data-safecare-renewal-dialog="person"] .safecare-consent-row input { flex: 0 0 auto; width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--fg-blue); }
.fg-ui:not(#fg) [data-safecare-renewal-dialog="person"] .safecare-consent-row.is-missing { outline: 2px solid var(--fg-red); outline-offset: 2px; border-radius: 6px; }
@media (max-width: 640px) { .lotbi-sheet.safecare-renewal-sheet.fg-ui:not(#fg):has([data-safecare-renewal-dialog="person"]) .lotbi-sheet-dismiss { display: none; } }
.fg-ui:not(#fg) .person-birth-wheel-option.is-selected { background: var(--fg-blue-soft); color: var(--fg-blue-text); }
.fg-ui:not(#fg) [data-safecare-renewal-dialog="person"] .safecare-consent-row, .fg-ui:not(#fg) [data-safecare-renewal-dialog="person"] .safecare-consent-row:has(input:checked) { background: transparent !important; border-color: transparent !important; }

/* ══ FAMILY-GUARDIAN-DESIGN-03 (owner confirmed 2026-10-17) ═════════════════════════════════════
   최종확정본/가족지킴이/가족지킴이_시안03_3차_최종확정본_20261017.zip — 1-01 … 3-15.
   Surfaces instead of outlines, one header per screen, a single integer type scale. Later wins,
   same scope as 01/02. Dark keeps its own tokens (the boards are light only). */
:root {
  --fg-bg: #F2F4F6; --fg-sub: #F4F6F8; --fg-line: #EAEDF0; --fg-line-strong: #D5DAE0;
  --fg-text-3: #636E7B; --fg-blue: #2459D8; --fg-blue-hover: #1E4FC2; --fg-blue-soft: #EDF3FE; --fg-blue-text: #1E4FC2;
  --fg-red: #D63B26; --fg-red-text: #C2321F; --fg-red-soft: #FDEEEB;
  --fg-green: #12804F; --fg-green-soft: #E8F6EE; --fg-green-dot: #1DB46A;
  --fg-amber: #A35F00; --fg-amber-soft: #FFF4E0; --fg-amber-dot: #F29A0F;
  --fg-shadow: 0 1px 2px rgb(25 31 40 / 4%), 0 1px 1px rgb(25 31 40 / 2%);
  --fg3-radius: 16px; --fg3-ctl: 12px;
}
.consumer-workspace[data-workspace="care"] .fg-ui:not(#fg), .fg-ui:not(#fg) { word-break: keep-all; overflow-wrap: anywhere; }

/* Header: "‹" back, 가족 지킴이 or the screen name, the urgent button at the right */
.consumer-section-panel:has([data-consumer-surface="care"]):not(#fg) .site-modal-header { min-height: 56px; }
.consumer-section-panel:has([data-consumer-surface="care"]):not(#fg) .site-modal-close {
  width: 40px; height: 40px; min-width: 40px; padding: 0; border: 0; background: transparent; color: var(--fg-text);
  /* GUARDIAN-BACK-CHEVRON-01 (안드로이드 앱 담당 S24 10-26): the button also holds an invisible 「←」; as a grid it took a second row
     and the drawn chevron sat in the upper one, above the title. One flex row keeps the chevron on the title's line. */
  font-size: 0; display: inline-flex; align-items: center; justify-content: center; margin-left: -10px; order: -1;
}
.consumer-section-panel:has([data-consumer-surface="care"]):not(#fg) .site-modal-close::before {
  content: ""; width: 11px; height: 11px; border-left: 2.4px solid currentColor; border-bottom: 2.4px solid currentColor; transform: translateX(2px) rotate(45deg); border-radius: 1px;
}
.consumer-section-panel:has([data-consumer-surface="care"]):not(#fg) .site-modal-close::after { content: none; }
/* A screen inside 가족 지킴이: one header, no tabs, no urgent button unless the screen keeps one */
.consumer-section-panel[data-fg-sub="true"]:not(#fg) .fg-tabs { display: none; }
.consumer-section-panel[data-fg-sub="true"][data-fg-keep-head-action="false"]:not(#fg) .fg-head-action { display: none; }
.consumer-section-panel .fg-head-action:not(#fg) .fg-head-alert,
.fg-ui:not(#fg) .fg-head-alert {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  min-width: 44px; min-height: 40px; padding: 0 12px;
  border: 1px solid var(--fg-line); border-radius: 10px;
  background: var(--fg-surface); color: var(--fg-text-2);
  font: inherit; font-size: 14px; font-weight: 600; cursor: pointer;
}
.consumer-section-panel .fg-head-action:not(#fg) .fg-head-alert .fg-icon,
.fg-ui:not(#fg) .fg-head-alert .fg-icon { width: 18px; height: 18px; }
@media (max-width: 640px) {
  .consumer-section-panel .fg-head-action:not(#fg) .fg-head-alert,
  .fg-ui:not(#fg) .fg-head-alert { width: 44px; height: 44px; padding: 0; border: 0; background: transparent; }
  .consumer-section-panel .fg-head-action:not(#fg) .fg-head-alert span,
  .fg-ui:not(#fg) .fg-head-alert span { display: none; }
}
html[data-subview-back-shell] .consumer-section-panel[data-fg-sub="true"]:not(#fg) .fg-ui .fg-inpanel-back { display: none; }
@media (min-width: 641px) {
  .consumer-section-panel[data-fg-sub="true"]:not(#fg) .site-modal-header { flex-wrap: wrap; row-gap: 0; padding-top: 4px; }
  .consumer-section-panel[data-fg-sub="true"]:not(#fg) .site-modal-header::before {
    content: attr(data-fg-crumb); flex: 0 0 100%; order: -2; font-size: 14px; font-weight: 500; color: var(--fg-text-3);
  }
}
.consumer-section-panel[data-fg-sub="true"]:not(#fg) .site-modal-header { --fg-crumb: ""; }

/* Tabs: icon + name + count; iOS-like segmented control is app only */
.fg-tabs:not(#fg) { margin: 0 0 16px; }
.fg-tabs:not(#fg) > button { font-size: 15px; color: var(--fg-text-3); }
.fg-tabs:not(#fg) > button[aria-selected="true"] { color: var(--fg-text); border-bottom-color: var(--fg-text); }
.fg-tabs:not(#fg) .fg-tab-count { font-size: 14px; font-weight: 600; color: var(--fg-text-3); }
.fg-tabs:not(#fg) > button[aria-selected="true"] .fg-tab-count { color: var(--fg-blue); }

/* Cards and panels: white surface, no outline */
.fg-ui:not(#fg) :is(.person-card, .pet-card, .family-loc-card, .person-form, .pet-form, .pet-draft-body, .person-empty-panel, .pet-empty, .family-loc-empty,
  .pet-detail-section, .person-danger-zone, .family-guardian-welcome, .family-loc-list, .family-loc-me, .safecare-found-details, .pet-profile-controls, .family-loc-steps, .fg3-card) {
  border-color: transparent; border-radius: var(--fg3-radius); box-shadow: var(--fg-shadow); background: var(--fg-surface);
}
.fg-ui:not(#fg) :is(.person-card, .pet-card) { padding: 20px; gap: 16px; }
.fg-ui:not(#fg) .family-loc-map { border: 0; border-radius: var(--fg3-radius); box-shadow: var(--fg-shadow); }

/* Buttons: primary blue, secondary grey surface, danger soft red, no outlines */
.fg-ui:not(#fg) :is(.site-button, .family-loc-button) { min-height: 52px; border-radius: var(--fg3-ctl); font-size: 16px; font-weight: 600; }
.fg-ui:not(#fg) :is(.site-button, .family-loc-button):not(.person-primary):not(.site-button-primary):not(.family-loc-primary):not(.fg-danger):not(.fg-head-urgent):not(.family-loc-quiet):not(.person-text-button) {
  background: #F2F4F6; border-color: transparent; color: #333D4B;
}
.fg-ui:not(#fg) :is(.person-danger, .family-loc-danger, .pet-delete-button, .fg-danger-line, .pet-case-cancel):not(.family-loc-quiet) {
  background: var(--fg-red-soft) !important; border-color: transparent !important; color: var(--fg-red-text) !important;
}
.fg-ui:not(#fg) :is(.person-card-actions, .pet-card-actions) > .site-button { min-height: 44px; font-size: 15px; }
.fg-ui:not(#fg) .site-button:disabled:not(.fg-head-urgent) { background: var(--fg-disabled-bg) !important; color: var(--fg-disabled-text) !important; border-color: transparent !important; }
:is(.consumer-section-panel .fg-head-action, .fg-ui):not(#fg) .fg-head-urgent {
  min-height: 44px; height: 44px; padding: 0 12px; border: 0; border-radius: 10px; background: var(--fg-red-soft); color: var(--fg-red-text); font-size: 14px; /* 애플 앱방 아이폰 실측: 44px touch target */
}
:is(.consumer-section-panel .fg-head-action, .fg-ui):not(#fg) .fg-head-sos { background: var(--fg-red); color: #fff; letter-spacing: .06em; padding: 0 14px; }
@media (min-width: 641px) {
  :is(.consumer-section-panel .fg-head-action, .fg-ui):not(#fg) .fg-head-urgent { min-height: 44px; height: 44px; padding: 0 16px; font-size: 15px; }
}

/* Chips, inputs, switches */
.fg-ui:not(#fg) .fg-chip { min-height: 40px; padding: 0 16px; border: 0; border-radius: 20px; background: var(--fg-sub); color: var(--fg-text-2); font-size: 15px; font-weight: 500; }
.fg-ui:not(#fg) .fg-chip[aria-checked="true"] { background: var(--fg-blue); color: #fff; font-weight: 600; }
.fg-ui:not(#fg) :is(input[type="text"], input[type="tel"], input[type="date"], input[type="datetime-local"], input:not([type]), textarea, select):not(.fg-my-child-scope *) {
  min-height: 52px; border: 0; border-radius: var(--fg3-ctl); background: var(--fg-sub); color: var(--fg-text); font-size: 16px; padding: 0 16px; box-shadow: none;
}
.fg-ui:not(#fg) textarea { padding: 15px 16px; min-height: 84px; line-height: 23px; }
.fg-ui:not(#fg) :is(input, textarea, select):focus:not(.fg-my-child-scope *) { outline: none; background: var(--fg-surface); box-shadow: inset 0 0 0 2px var(--fg-blue); }

/* Small text never below 13 px; secondary lines in the light grey */
.fg-ui:not(#fg) :is(.person-card-meta, .pet-card-meta, .family-loc-note, .person-field-hint) { font-size: 14px; }
.fg-ui:not(#fg) .fg3-lock { display: flex; gap: 6px; align-items: flex-start; font-size: 13px; line-height: 19px; color: var(--fg-text-3); padding: 0 4px; margin: 4px 0 0; }
.fg-ui:not(#fg) .fg3-lock .fg-icon { width: 14px; height: 14px; margin-top: 2px; }

/* 처음 화면 (nobody yet) */
.fg-ui:not(#fg) .fg3-empty { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; padding: 36px 24px 24px; }
.fg-ui:not(#fg) .fg3-empty-ill { width: 88px; height: 88px; border-radius: 50%; background: var(--fg-blue-soft); color: var(--fg-blue); display: grid; place-items: center; margin-bottom: 4px; }
.fg-ui:not(#fg) .fg3-empty-ill .fg-icon { width: 32px; height: 32px; stroke-width: 1.7; }
.fg-ui:not(#fg) .fg3-empty h3 { font-size: 21px; font-weight: 700; letter-spacing: -.03em; margin: 0; }
.fg-ui:not(#fg) .fg3-empty .fg3-empty-sub { font-size: 15px; line-height: 23px; color: var(--fg-text-2); margin: 0; }
.fg-ui:not(#fg) .fg3-steps { font-size: 14px; font-weight: 600; color: var(--fg-blue-text); background: var(--fg-blue-soft); border-radius: 20px; padding: 6px 14px; margin: 4px 0 8px; }
.fg-ui:not(#fg) .fg3-empty > .site-button { width: 100%; min-height: 56px; font-size: 17px; }
/* 마스터 10-26: 사람 0명일 때의 [가족 위치] — the quiet second button under 사람 등록하기. */
.fg-ui:not(#fg) .fg3-empty > .fg3-empty-family { min-height: 48px; font-size: 16px; margin-top: -4px; }
.fg-ui:not(#fg) .person-child-phone { display: flex; width: 100%; align-items: center; justify-content: center; gap: 8px; min-height: 48px; margin-top: 12px; font-size: 16px; }
.fg-ui:not(#fg) .fg3-feat { width: 100%; text-align: left; display: flex; flex-direction: column; gap: 14px; margin: 10px 0 0; padding: 18px 0 0; border-top: 1px solid var(--fg-line); list-style: none; }
.fg-ui:not(#fg) .fg3-feat li { display: flex; gap: 12px; align-items: center; font-size: 14px; color: var(--fg-text-3); }
.fg-ui:not(#fg) .fg3-feat li > i { width: 40px; height: 40px; border-radius: 12px; background: var(--fg-sub); color: var(--fg-text-2); display: grid; place-items: center; flex: 0 0 auto; font-style: normal; }
.fg-ui:not(#fg) .fg3-feat li b { display: block; font-size: 15px; color: var(--fg-text); font-weight: 600; margin-bottom: 1px; }

/* 등록 전 안내 (사전 고지) */
.fg-ui:not(#fg) .fg3-notice { display: flex; flex-direction: column; gap: 16px; }
.fg-ui:not(#fg) .fg3-notice h3 { font-size: 20px; font-weight: 700; letter-spacing: -.02em; margin: 0; }
.fg-ui:not(#fg) .fg3-notice-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.fg-ui:not(#fg) .fg3-notice-list li { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; line-height: 20px; color: var(--fg-text-3); }
.fg-ui:not(#fg) .fg3-notice-list li > i { width: 36px; height: 36px; border-radius: 10px; background: var(--fg-blue-soft); color: var(--fg-blue-text); display: grid; place-items: center; flex: 0 0 auto; font-style: normal; }
.fg-ui:not(#fg) .fg3-notice-list li > i .fg-icon { width: 18px; height: 18px; }
.fg-ui:not(#fg) .fg3-notice-list li b { display: block; font-size: 15px; color: var(--fg-text); font-weight: 600; }
.fg-ui:not(#fg) .fg3-check { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; line-height: 22px; font-weight: 700; color: var(--fg-text); }
.fg-ui:not(#fg) .fg3-check input { width: 22px; height: 22px; margin: 0; accent-color: var(--fg-blue); flex: 0 0 auto; }
.fg-ui:not(#fg) .fg3-minor { font-size: 13px; color: var(--fg-text-3); margin: -6px 0 0 32px; }

/* 실종 신고 · 발견 제보 */
.fg-ui:not(#fg) .fg3-emg { background: var(--fg-red-soft); border-radius: var(--fg3-ctl); padding: 14px 16px; display: flex; flex-direction: column; gap: 12px; }
.fg-ui:not(#fg) .fg3-emg p { margin: 0; color: var(--fg-red-text); font-size: 14px; line-height: 21px; font-weight: 600; display: flex; gap: 6px; }
.fg-ui:not(#fg) .fg3-emg .fg3-emg-actions { display: flex; gap: 8px; }
.fg-ui:not(#fg) .fg3-emg .fg3-emg-actions > a { flex: 1 1 0; min-height: 42px; border-radius: 10px; background: var(--fg-surface); color: var(--fg-red-text); font-size: 14px; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; gap: 5px; text-decoration: none; }
.fg-ui:not(#fg) .fg3-missing { border-radius: var(--fg3-radius); overflow: hidden; background: var(--fg-surface); box-shadow: 0 0 0 2px var(--fg-red), var(--fg-shadow); }
.fg-ui:not(#fg) .fg3-missing-head { background: var(--fg-red); color: #fff; padding: 12px 20px; font-size: 15px; font-weight: 700; display: flex; gap: 8px; align-items: center; }
.fg-ui:not(#fg) .fg3-missing-head small { margin-left: auto; font-size: 12px; font-weight: 500; }
.fg-ui:not(#fg) .fg3-missing-body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 14px; }
.fg-ui:not(#fg) .fg3-info { display: grid; grid-template-columns: 96px minmax(0, 1fr); row-gap: 12px; margin: 0; padding: 16px 18px; background: var(--fg-sub); border-radius: var(--fg3-ctl); font-size: 15px; }
.fg-ui:not(#fg) .fg3-info dt { color: var(--fg-text-3); }
.fg-ui:not(#fg) .fg3-info dd { margin: 0; font-weight: 600; }
.fg-ui:not(#fg) .fg3-done { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; padding: 12px 0 4px; }
.fg-ui:not(#fg) .fg3-done h3 { font-size: 22px; font-weight: 700; letter-spacing: -.03em; margin: 0; }
.fg-ui:not(#fg) .fg3-done p { font-size: 15px; color: var(--fg-text-2); margin: 0; }
.fg-ui:not(#fg) .fg3-done-ic { width: 72px; height: 72px; border-radius: 50%; display: grid; place-items: center; background: var(--fg-green-soft); color: var(--fg-green-dot); }
.fg-ui:not(#fg) .fg3-done-ic.is-search { background: var(--fg-blue-soft); color: var(--fg-blue); }
.fg-ui:not(#fg) .fg3-done-ic .fg-icon { width: 32px; height: 32px; stroke-width: 2.4; }
/* 마스터·소유자 10-27: the comparing overlay (실종 신고 · 발견 제보) with the shared spinner. */
.fg-ui:not(#fg) .fg-working { position: fixed; inset: 0; z-index: 60; display: grid; place-items: center; padding: 16px; background: rgb(15 23 42 / 45%); }
.fg-ui:not(#fg) .fg-working-card { display: grid; justify-items: center; gap: 8px; max-width: 320px; padding: 24px 20px; border-radius: 20px; background: var(--fg-surface, #fff); text-align: center; }
.fg-ui:not(#fg) .fg-working-card p { margin: 0; font-size: 16px; font-weight: 700; line-height: 1.5; color: var(--fg-text); }
.fg-ui:not(#fg) .fg3-preview { display: grid; gap: 10px; margin-top: 12px; padding: 16px; border: 1px solid var(--fg-line); border-radius: 16px; background: var(--fg-sub); }
.fg-ui:not(#fg) .fg3-preview-line { margin: 0; font-size: 17px; font-weight: 800; line-height: 1.5; }
.fg-ui:not(#fg) .fg3-preview-ask { margin: 0; font-weight: 700; }
.fg-ui:not(#fg) .fg3-nowrap { white-space: nowrap; }
.fg-ui:not(#fg) .fg3-preview .person-text-button { justify-self: center; min-height: 44px; }
.fg-ui:not(#fg) .fg3-found-consent { margin-top: 12px; }
.fg-ui:not(#fg) .fg3-preview .site-button { min-height: 48px; }
.fg-ui:not(#fg) .fg3-spin { width: 40px; height: 40px; border-radius: 50%; border: 4px solid var(--fg-blue-soft); border-top-color: var(--fg-blue); animation: fg3-spin 1s linear infinite; margin: 8px 0; }
@keyframes fg3-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .fg-ui:not(#fg) .fg3-spin { animation: none; } }
.fg-ui:not(#fg) .fg3-summary { display: flex; gap: 12px; align-items: center; padding: 14px 16px; background: var(--fg-sub); border-radius: 12px; }
.fg-ui:not(#fg) .fg3-summary-thumbs { display: flex; gap: 4px; }
.fg-ui:not(#fg) .fg3-summary-thumbs img { width: 44px; height: 44px; border-radius: 8px; object-fit: cover; display: block; }
.fg-ui:not(#fg) .fg3-donebar { display: flex; gap: 8px; align-items: center; background: var(--fg-green-soft); color: var(--fg-green); font-size: 14px; font-weight: 600; border-radius: 12px; padding: 12px 14px; }

/* Bottom action row on phones: stays at the bottom of the screen */
@media (max-width: 640px) {
  .fg-ui:not(#fg) .fg3-bottom { position: sticky; bottom: 0; z-index: 3; display: flex; gap: 8px; margin: 12px -16px -16px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: var(--fg-surface); box-shadow: 0 -1px 0 var(--fg-line); }
  .fg-ui:not(#fg) .fg3-bottom > .site-button { flex: 1 1 auto; }
  .fg-ui:not(#fg) .fg3-bottom > .site-button:not(.person-primary):not(.site-button-primary):not(.fg-danger) { flex: 0 0 104px; }
}
@media (min-width: 641px) {
  .fg-ui:not(#fg) .fg3-bottom { display: flex; gap: 10px; justify-content: flex-end; border-top: 1px solid var(--fg-line); padding-top: 20px; margin-top: 4px; }
}
/* DESIGN-03: 내 발견 제보 rows, the add tile, the remove button on a photo, results */
.fg-ui:not(#fg) .fg3-list-title { font-size: 14px; font-weight: 600; color: var(--fg-text-2); margin: 8px 4px 8px; }
.fg-ui:not(#fg) .fg3-rows { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.fg-ui:not(#fg) .fg3-row { display: flex; align-items: center; gap: 12px; padding: 16px 20px; position: relative; border: 0; border-radius: 0; box-shadow: none; background: transparent; }
.fg-ui:not(#fg) .fg3-row + .fg3-row::before { content: ""; position: absolute; top: 0; left: 20px; right: 20px; height: 1px; background: var(--fg-line); }
.fg-ui:not(#fg) .fg3-row-copy { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.fg-ui:not(#fg) .fg3-row-copy strong { font-size: 16px; font-weight: 600; }
.fg-ui:not(#fg) .fg3-row-copy span { font-size: 14px; color: var(--fg-text-3); }
.fg-ui:not(#fg) .fg3-found-photos { display: flex; flex-direction: column; gap: 10px; }
.fg-ui:not(#fg) .fg3-found-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
@media (min-width: 641px) { .fg-ui:not(#fg) .fg3-found-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; } }
.fg-ui:not(#fg) .fg3-add-tile { aspect-ratio: 1 / 1; border: 0; border-radius: 12px; background: var(--fg-sub); box-shadow: inset 0 0 0 1.5px var(--fg-line-strong); color: var(--fg-text-3); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.fg-ui:not(#fg) .fg3-add-tile .fg-icon { width: 24px; height: 24px; }
.fg-ui:not(#fg) .safecare-slot-media { position: relative; }
.fg-ui:not(#fg) .fg-tile-remove { position: absolute; top: 6px; right: 6px; width: 28px; height: 28px; min-height: 0; padding: 0; border: 0; border-radius: 50%; background: rgb(25 31 40 / 55%); color: #fff; display: grid; place-items: center; cursor: pointer; }
.fg-ui:not(#fg) .fg-tile-remove .fg-icon { width: 15px; height: 15px; stroke-width: 2.4; }
.fg-ui:not(#fg) .fg3-result { display: flex; flex-direction: column; gap: 16px; padding: 24px 20px; }
.fg-ui:not(#fg) .fg-done-sub { font-size: 15px; color: var(--fg-text-2); margin: 0; }
.fg-ui:not(#fg) .person-card-identity { display: flex; align-items: center; gap: 14px; }
.fg-ui:not(#fg) .fg3-missing .person-card-thumbnail { width: 56px; height: 56px; border-radius: 14px; }
.fg-ui:not(#fg) .fg3-missing > .fg3-missing-head > .fg-icon { width: 18px; height: 18px; }
.fg-ui:not(#fg) .fg3-notice-list li > i { font-size: 13px; font-weight: 700; }
/* DESIGN-03 phones: header and tabs on one white band (1-01 …), the body below on grey */
@media (max-width: 640px) {
  body.chat-home-page .consumer-workspace[data-workspace="care"]:not(#fg) { padding: 0 0 24px; }
  body.chat-home-page .consumer-workspace[data-workspace="care"]:not(#fg) > .site-modal { border-radius: 0; }
  .consumer-section-panel:has([data-consumer-surface="care"]):not(#fg) .site-modal-header { background: var(--fg-surface); margin: 0; padding: 6px 16px 6px 6px; min-height: 56px; }
  body.chat-home-page .consumer-workspace[data-workspace="care"]:not(#fg) .site-modal-header h2,
  .consumer-section-panel:has([data-consumer-surface="care"]):not(#fg) .site-modal-header h2 { font-size: 19px; line-height: 28px; font-weight: 700; }
  .consumer-section-panel:has([data-consumer-surface="care"]):not(#fg) .site-modal-close { margin-left: 0; }
  .fg-tabs:not(#fg) { background: var(--fg-surface); margin: 0; padding: 0 8px; }
  .fg-tabs:not(#fg) > button { flex: 1 1 0; justify-content: center; padding: 0 4px; }
  .consumer-section-panel:has([data-consumer-surface="care"]):not(#fg) .consumer-care-body { padding: 12px 16px 0; }
  .lotbi-sheet.fg3-notice-sheet:not(#fg) .lotbi-sheet-dismiss { display: none; }
}
/* DESIGN-03 forms: grey fields, no outlines; the step line without a rule under it */
.fg-ui:not(#fg):not(#fg2) :is(.person-form, .safecare-found, .pet-form, .pet-draft-body, .fg3-card) :is(input[type="text"], input[type="tel"], input:not([type]), input[type="datetime-local"], input[type="date"], select, textarea) {
  border: 0; background: var(--fg-sub); border-radius: 12px; min-height: 52px; padding: 0 16px; font-size: 16px; color: var(--fg-text); box-shadow: none;
}
.fg-ui:not(#fg):not(#fg2) :is(.person-form, .safecare-found, .pet-form, .pet-draft-body, .fg3-card) textarea { padding: 15px 16px; min-height: 84px; line-height: 23px; }
.fg-ui:not(#fg):not(#fg2) :is(.person-form, .safecare-found, .pet-form, .pet-draft-body, .fg3-card) :is(input, select, textarea):focus { outline: none; background: var(--fg-surface); box-shadow: inset 0 0 0 2px var(--fg-blue); }
.fg-ui:not(#fg):not(#fg2) :is(.person-form, .safecare-found, .pet-form, .pet-draft-body) ::placeholder { color: #A1AAB5; }
.fg-ui:not(#fg):not(#fg2) .person-birth-trigger { border: 0; background: var(--fg-sub); display: flex; align-items: center; justify-content: space-between; }
.fg-ui:not(#fg):not(#fg2) .person-birth-trigger::after { content: ""; width: 8px; height: 8px; border-right: 2px solid var(--fg-text-3); border-bottom: 2px solid var(--fg-text-3); transform: translateY(-2px) rotate(45deg); flex: 0 0 auto; }
.fg-ui:not(#fg):not(#fg2) .person-birth-trigger[aria-expanded="true"] { background: var(--fg-surface); box-shadow: inset 0 0 0 2px var(--fg-blue); }
.fg-ui:not(#fg):not(#fg2) .person-birth-trigger[data-has-value="false"] { color: var(--fg-text-3); }
.fg-ui:not(#fg) .fg-stepper-card { border-bottom: 0; padding-bottom: 4px; }
.fg-ui:not(#fg) .person-form[data-person-basic-form] .person-form-actions [data-person-registration-cancel] { border: 0; background: #F2F4F6; color: #333D4B; min-height: 52px; font-size: 16px; }
.fg-ui:not(#fg) :is(.safecare-badge-ok, .safecare-badge-success) { background: var(--fg-green-soft); color: var(--fg-green); }
.fg-ui:not(#fg) .person-card-facts { border: 0; background: var(--fg-sub); border-radius: 12px; padding: 12px 4px; margin: 0; }
.fg-ui:not(#fg) .person-card-head + .person-card-facts { border-top: 0; }
@media (min-width: 641px) {
  .fg-ui:not(#fg):not(#fg2) .fg3-bottom { position: static; display: flex; gap: 10px; justify-content: flex-end; margin: 4px 0 0; padding: 20px 0 0; border: 0; border-top: 1px solid var(--fg-line); border-radius: 0; box-shadow: none; background: transparent; }
  .fg-ui:not(#fg):not(#fg2) .fg3-bottom > :is(.site-button, button) { flex: 0 0 auto; min-width: 120px; }
}
@media (max-width: 640px) {
  .fg-ui:not(#fg):not(#fg2) .fg3-bottom {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; display: flex; flex-wrap: nowrap; gap: 8px; margin: 0;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); border: 0; border-radius: 0; background: var(--fg-surface); box-shadow: 0 -1px 0 var(--fg-line);
  }
  .fg-ui:not(#fg):not(#fg2) .fg3-bottom > :is(.site-button, button) { flex: 1 1 auto; min-height: 52px; }
  .fg-ui:not(#fg):not(#fg2) .fg3-bottom > .site-button:not(.person-primary):not(.site-button-primary):not(.fg-danger) { flex: 0 0 104px; }
  .fg-ui:not(#fg):not(#fg2) .fg3-bottom > :is(.person-field-hint, .safecare-submit-hint) { display: none; }
  .fg-ui:not(#fg):is(.person-care-surface, .pet-family-surface):has(.fg3-bottom) { padding-bottom: 92px; }
  /* 마스터·소유자 10-27: the last line (얼굴 사진과 얼굴 모양 정보는 암호화해…) was cut under the fixed bar in the app
     (52px buttons + 24px padding + the phone's bottom inset > 92px). */
  /* 소유자 10-28 iPhone 가족 초대: with 만 14세 미만 ticked the consent words open and 초대하는 사람의 역할 sat under the fixed
     [초대 만들기] with no room to scroll to it — 가족 위치 screens get the same room under their last line. */
  .fg-ui:not(#fg):not(#fg2):is(.person-care-surface, .pet-family-surface, .family-loc-surface):has(.fg3-bottom) { padding-bottom: calc(112px + env(safe-area-inset-bottom)); }
}
.fg-ui:not(#fg):not(#fg2) .site-button.fg3-waiting { background: var(--fg-disabled-bg) !important; color: var(--fg-disabled-text) !important; border-color: transparent !important; }
/* DESIGN-03 photo step: one green line, the 더 추가 row on grey, filled step circles */
.fg-ui:not(#fg) .person-bulk-summary { text-align: left; }
.fg-ui:not(#fg) .person-bulk-summary.is-ok { color: var(--fg-green); display: flex; align-items: center; gap: 8px; }
.fg-ui:not(#fg) :is(.person-photo-optional, .pet-photo-optional, .pet-draft-extra) { border: 0; border-radius: 12px; background: var(--fg-sub); }
.fg-ui:not(#fg) :is(.person-photo-optional, .pet-photo-optional, .pet-draft-extra) > summary { display: grid; grid-template-columns: 22px minmax(0, 1fr) 20px; column-gap: 12px; min-height: 0; padding: 16px; font-size: 15px; font-weight: 600; }
.fg-ui:not(#fg) :is(.person-photo-optional, .pet-photo-optional, .pet-draft-extra) > summary::before { width: 22px; height: 22px; border-radius: 0; background: linear-gradient(var(--fg-text-2), var(--fg-text-2)) center / 14px 2px no-repeat, linear-gradient(var(--fg-text-2), var(--fg-text-2)) center / 2px 14px no-repeat; grid-row: 1 / span 2; align-self: center; }
.fg-ui:not(#fg) :is(.person-photo-optional, .pet-photo-optional, .pet-draft-extra) > summary::after { grid-column: 3; grid-row: 1 / span 2; align-self: center; margin: 0; }
.fg-ui:not(#fg) :is(.person-photo-optional, .pet-photo-optional, .pet-draft-extra) > summary .fg-summary-sub { grid-column: 2; display: block; font-size: 13px; font-weight: 400; color: var(--fg-text-3); }
.fg-ui:not(#fg) .safecare-step[data-safecare-step-state="done"] .safecare-step-number { background: var(--fg-blue); color: #fff; }
.fg-ui:not(#fg) .safecare-slot-x { position: absolute; top: 6px; right: 6px; width: 28px; height: 28px; min-height: 0; padding: 0; border: 0; border-radius: 50%; background: rgb(25 31 40 / 55%); color: #fff; display: grid; place-items: center; z-index: 2; cursor: pointer; }
.fg-ui:not(#fg) .safecare-slot-x .fg-icon { width: 15px; height: 15px; stroke-width: 2.4; }
/* DESIGN-03: 1-07 a photo of someone else (blurred, red frame), the red line; 1-13 the green line */
.fg-ui:not(#fg) .fg3-alert-bad { display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 14px 16px; border-radius: 12px; background: var(--fg-red-soft); color: var(--fg-red-text); font-size: 15px; line-height: 22px; font-weight: 600; }
.fg-ui:not(#fg) .fg3-alert-bad .fg-icon { margin-top: 1px; }
.fg-ui:not(#fg) .fg3-misfit .safecare-slot-media { overflow: hidden; box-shadow: inset 0 0 0 2px var(--fg-red); border-radius: 12px; }
.fg-ui:not(#fg) .fg3-misfit .safecare-slot-photo { filter: blur(6px) brightness(.7); transform: scale(1.1); }
.fg-ui:not(#fg) .fg3-misfit-why { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; color: #fff; font-size: 13px; font-weight: 700; z-index: 1; }
.fg-ui:not(#fg) .fg3-misfit-why .fg-icon { width: 24px; height: 24px; }
.fg-ui:not(#fg) .fg3-misfit .safecare-slot-label { color: var(--fg-red-text); }
.fg-ui:not(#fg) .person-status[data-tone="ok"]:not(:empty) { display: flex; gap: 8px; align-items: center; margin: 0 0 12px; padding: 12px 14px; border-radius: 12px; background: var(--fg-green-soft); color: var(--fg-green); font-size: 14px; font-weight: 600; }
/* DESIGN-03: 1-06 the green line starts at the left with one check; the lock line has only the lock */
.fg-ui:not(#fg) .person-bulk-summary.is-ok { align-self: stretch; justify-content: flex-start; width: 100%; }
.fg-ui:not(#fg) .fg3-lock { background: none; border-radius: 0; }
.fg-ui:not(#fg) .fg3-lock::before { content: none; }
.fg-ui:not(#fg) .person-status[data-tone="ok"]:not(:empty)::before {
  content: ""; width: 18px; height: 18px; background: currentColor; flex: 0 0 auto;
  -webkit-mask: var(--fg-mask-check) center / contain no-repeat; mask: var(--fg-mask-check) center / contain no-repeat;
}
/* 1-13: 「신고 내용 수정」 and 「찾았어요」 side by side */
.fg-ui:not(#fg) .fg3-missing-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.fg-ui:not(#fg) .fg3-missing-actions { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
.fg-ui:not(#fg) .fg3-missing-actions .site-button { width: 100%; min-height: 46px; padding-block: 0; }
.fg-ui:not(#fg) .person-bulk > .person-bulk-result { align-self: stretch; }
/* DESIGN-03 1-04: one blue band across both wheels, two equal columns, the far rows fade */
.fg-ui:not(#fg) .person-birth-wheels { position: relative; gap: 0; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.fg-ui:not(#fg) .person-birth-wheels::before { content: ""; position: absolute; left: 0; right: 0; top: 88px; height: 44px; border-radius: 12px; background: var(--fg-blue-soft); pointer-events: none; }
.fg-ui:not(#fg) .person-birth-wheel { z-index: 1; border: 0; background: transparent; scrollbar-width: none;
  -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .35), #000 40%, #000 60%, rgba(0, 0, 0, .35));
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .35), #000 40%, #000 60%, rgba(0, 0, 0, .35)); }
.fg-ui:not(#fg) .person-birth-wheel::-webkit-scrollbar { display: none; }
.fg-ui:not(#fg) .person-birth-wheel-option { background: transparent; color: var(--fg-text-2); font-size: 17px; font-weight: 500; }
.fg-ui:not(#fg) .person-birth-wheel-option.is-selected { background: transparent; color: var(--fg-blue-text); font-size: 22px; font-weight: 700; }
/* DESIGN-03 1-08/1-09: flat sections in the review, a plain round face, a drawn check in done steps */
.fg-ui:not(#fg) .person-review-form .person-review-section { padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
.fg-ui:not(#fg) .person-review-form .person-review-section + .person-review-section { margin-top: 10px; }
.fg-ui:not(#fg) .person-review-form .person-review-photo-grid { gap: 8px; }
.fg-ui:not(#fg) .fg-done-photo { border: 0; box-shadow: none; }
.fg-ui:not(#fg) .safecare-step-number .fg-icon { width: 15px; height: 15px; stroke-width: 3; }
/* DESIGN-03 1-11: gray labels, an icon at the right of a field, "오늘 오후 2:20" over the native time field */
.fg-ui:not(#fg):not(#fg2) .person-sos-form .person-field-label { color: var(--fg-text-2); font-size: 14px; font-weight: 600; }
.fg-ui:not(#fg) .fg3-optional { color: var(--fg-text-3); font-weight: 500; }
.fg-ui:not(#fg) .fg3-input-icon { position: relative; display: block; }
.fg-ui:not(#fg):not(#fg2) .fg3-input-icon.fg3-input-icon > input:not([type="checkbox"]) { width: 100%; padding-right: 48px; box-sizing: border-box; }
.fg-ui:not(#fg) .fg3-input-icon > .fg-icon { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); width: 22px; height: 22px; color: var(--fg-text); pointer-events: none; }
/* 소유자 10-27 「누가 요즘 타이핑을 쳐」: the place pin is a 44px button that fills the current place. */
.fg-ui:not(#fg) .fg3-input-icon > .fg3-locate { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 12px; background: transparent; color: var(--fg-blue-text, #1d4ed8); cursor: pointer; }
.fg-ui:not(#fg) .fg3-input-icon > .fg3-locate:disabled { opacity: .5; }
.fg-ui:not(#fg) .fg3-input-icon > .fg3-locate .fg-icon { width: 22px; height: 22px; }
.fg-ui:not(#fg) .fg3-locate-note { margin: 6px 0 0; }
.fg-ui:not(#fg) .fg3-locate-note[data-tone="error"] { color: var(--fg-red-text, #b42318); }
.fg-ui:not(#fg):not(#fg2) .fg3-time.fg3-time > input:not([type="checkbox"]) { color: transparent; }
.fg-ui:not(#fg) .fg3-time > input::-webkit-datetime-edit { color: transparent; }
.fg-ui:not(#fg) .fg3-time > input::-webkit-calendar-picker-indicator { position: absolute; inset: 0; width: auto; height: auto; opacity: 0; cursor: pointer; }
.fg-ui:not(#fg) .fg3-time-face { position: absolute; left: 16px; right: 48px; top: 50%; transform: translateY(-50%); pointer-events: none; font-size: 16px; color: var(--fg-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fg-ui:not(#fg):not(#fg2) .fg3-time.fg3-time > input:not([type="checkbox"]):focus-visible, .fg-ui:not(#fg) .fg3-time > input:focus-visible::-webkit-datetime-edit { color: var(--fg-text); }
.fg-ui:not(#fg) .fg3-time > input:focus-visible ~ .fg3-time-face { visibility: hidden; }
.fg-ui:not(#fg):not(#fg2) .person-sos-form .person-sos-fields textarea:not([type]) { min-height: 100px; padding: 16px; resize: none; box-sizing: border-box; }
/* 1-12: the three steps in one gray box, white number circles, 「자세히」 at the right */
.fg-ui:not(#fg) .fg3-steps-box { gap: 0; padding: 4px 20px; border-radius: 16px; background: var(--fg-sub); }
.fg-ui:not(#fg) .fg3-steps-box li { align-items: center; padding: 16px 0; }
.fg-ui:not(#fg) .fg3-steps-box li + li { border-top: 1px solid var(--fg-line); }
.fg-ui:not(#fg) .fg3-steps-box li > i { width: 28px; height: 28px; border-radius: 50%; background: var(--fg-surface); color: var(--fg-text-2); font-size: 13px; }
.fg-ui:not(#fg) .fg3-steps-box li > span { flex: 1 1 auto; min-width: 0; }
.fg-ui:not(#fg) .fg3-more { flex: 0 0 auto; margin-left: 8px; padding: 6px 0 6px 8px; border: 0; background: none; color: var(--fg-blue-text); font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; }
.fg-ui:not(#fg) .fg3-more-detail { display: block; margin-top: 6px; color: var(--fg-text-2); font-size: 13px; line-height: 19px; }
.fg-ui:not(#fg) .fg3-more-detail[hidden] { display: none; }
/* DESIGN-03 1-14/1-15: no 5-photo tick on the bar, the add tile as big as a photo, labels and fields
   like 1-11, 「임시 저장」 on one line, the summary in two lines, a small 「내 발견 제보」 title */
.fg-ui:not(#fg) .safecare-progress-found::before, .fg-ui:not(#fg) .safecare-progress-found::after { content: none; display: none; }
.fg-ui:not(#fg):not(#fg2) .fg3-found-grid > .fg3-add-tile { width: 100%; height: auto; min-height: 0; padding: 0; aspect-ratio: 1 / 1; align-self: start; }
.fg-ui:not(#fg):not(#fg2) .safecare-found .person-field-label { color: var(--fg-text-2); font-size: 14px; font-weight: 600; }
.fg-ui:not(#fg):not(#fg2) .safecare-found .safecare-found-fields textarea:not([type]) { min-height: 100px; padding: 16px; resize: none; box-sizing: border-box; }
.fg-ui:not(#fg):not(#fg2) .fg3-bottom > .site-button { white-space: nowrap; }
.fg-ui:not(#fg) .fg3-summary-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fg-ui:not(#fg) .fg3-summary-copy strong { font-size: 16px; font-weight: 700; }
.fg-ui:not(#fg) .fg3-summary-copy .person-card-meta { font-size: 13px; color: var(--fg-text-3); }
.fg-ui:not(#fg):not(#fg2) .safecare-report-list > .fg3-list-title { font-size: 14px; font-weight: 600; color: var(--fg-text-2); margin: 20px 4px 8px; }
/* DESIGN-03 1-14/1-16: the secondary bottom button grows with its words (임시 저장 · 요청하지 않기) */
@media (max-width: 640px) {
  .fg-ui:not(#fg):not(#fg2) .fg3-bottom > .site-button:not(.person-primary):not(.site-button-primary):not(.fg-danger) { flex: 0 0 auto; width: auto; min-width: 104px; padding-inline: 18px; }
  .fg-ui:not(#fg):not(#fg2) .fg3-bottom > :is(.person-primary, .site-button-primary, .fg-danger) { flex: 1 1 0; min-width: 0; }
}
/* DESIGN-03 1-05~1-07: 「인식을 돕는 사진 더 추가」 over 「선택 · 최대 10장」, tight */
.fg-ui:not(#fg) :is(.person-photo-optional, .pet-photo-optional, .pet-draft-extra) > summary:has(.fg-summary-copy) { flex-wrap: nowrap; }
.fg-ui:not(#fg) .fg-summary-copy { display: flex; flex-direction: column; gap: 2px; flex: 1 1 auto; min-width: 0; font-size: 15px; font-weight: 600; color: var(--fg-text); }
.fg-ui:not(#fg) .fg-summary-copy .fg-summary-sub { margin: 0; font-size: 13px; font-weight: 400; color: var(--fg-text-3); }
.fg-ui:not(#fg):not(#fg2) .fg3-found-photos .safecare-progress-found { margin-top: 10px; }
/* DESIGN-03 1-13: the missing card keeps its own height; its facts box is full width */
.fg-ui:not(#fg) .fg3-missing-body > * { flex: 0 0 auto; }
.fg-ui:not(#fg) .fg3-missing .fg3-info { max-width: none; }
.fg-ui:not(#fg) .fg3-missing-layout { display: flex; flex-direction: column; gap: 16px; }
.fg-ui:not(#fg) .fg3-missing-col { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
/* DESIGN-03 PC (confirmed boards pc-*): a 1080px panel, the title lower (the top-level ← stays: WEB-BACK-NAV-01),
   the empty card and the 기본정보 form narrower, the missing card beside the list */
@media (min-width: 641px) {
  .consumer-section-panel.fg-care-panel:not(#fg) .site-modal-header { padding-top: 14px; }
  /* WEB-BACK-NAV-01 (소유자 10-20): the top level keeps its ← like every other screen — hidden here,
     a folded-open phone or tablet (641–900px, no sidebar) had no way back. */
  .fg-ui:not(#fg):not(#fg2) .fg3-empty { width: 100%; max-width: 560px; margin-inline: auto; box-sizing: border-box; }
  .fg-ui:not(#fg):not(#fg2) .fg3-empty + .fg3-lock { width: 100%; max-width: 560px; margin-inline: auto; box-sizing: border-box; }
  .fg-ui:not(#fg):not(#fg2) .person-form[data-person-basic-form] { width: 100%; max-width: 720px; margin-left: 0; margin-right: auto; align-self: flex-start; justify-self: start; box-sizing: border-box; }
  .fg-ui:not(#fg) .fg3-missing-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
  .fg-ui:not(#fg):not(#fg2) .fg3-missing-layout .person-list { grid-template-columns: minmax(0, 1fr); }
}
/* DESIGN-03 PC dialogs (pc-1-02, 1-04, 1-12): a 480px window in the middle, no grabber;
   「취소」 a gray button; the birth picker closes by its 확인 or outside */
.fg-ui:not(#fg) .fg3-bottom > .fg3-bottom-lock { display: none; }
@media (min-width: 641px) {
  .lotbi-sheet[data-presentation="SHEET"].fg-ui.fg3-dialog:not(#fg) {
    top: 50%; right: auto; bottom: auto; left: 50%; width: min(480px, calc(100vw - 48px)); max-height: min(760px, calc(100vh - 48px));
    padding: 28px; border: 0; border-radius: 20px; transform: translate(-50%, -50%); box-shadow: 0 24px 72px rgba(15, 23, 42, .28);
  }
  .lotbi-sheet.fg-ui.fg3-dialog:not(#fg) .lotbi-sheet-grabber { display: none; }
  .lotbi-sheet.fg-ui.fg3-dialog:not(#fg):has([data-person-birth-picker]) .lotbi-sheet-dismiss { display: none; }
  .lotbi-sheet.fg-ui.fg3-notice-sheet.fg3-dialog:not(#fg) .lotbi-sheet-dismiss {
    display: block; width: 100%; min-height: 44px; margin-top: 10px; border: 0; border-radius: 12px; background: var(--fg-sub); color: var(--fg-text); font-size: 15px; font-weight: 600;
  }
  .fg-ui:not(#fg):not(#fg2) .fg3-bottom > .fg3-bottom-lock { display: flex; margin: 0 auto 0 0; align-self: center; padding: 0; }
  .fg-ui:not(#fg) .fg3-lock.fg3-lock-below { display: none; }
  .fg-ui:not(#fg) .person-photo-form .fg-stepper-card { border-bottom: 1px solid var(--fg-line); padding-bottom: 18px; margin-bottom: 8px; }
}
/* DESIGN-03 pc-1-06: the green all-in line under the title on a PC, under the button on a phone */
.fg-ui:not(#fg):not(#fg2) .fg3-ok-mirror.fg3-ok-mirror { display: none; }
@media (min-width: 641px) {
  .fg-ui:not(#fg):not(#fg2) .fg3-ok-mirror.fg3-ok-mirror { display: flex; margin-top: 12px; }
  .fg-ui:not(#fg):not(#fg2) .fg-photo-head:has(.fg3-ok-mirror) > .person-bulk .person-bulk-summary.is-ok { display: none; }
}
/* DESIGN-03 PC (pc-1-09, 1-11, 1-14~1-17): forms 720px at the left with one field per row, the done card
   640px in the middle, result cards 640px at the left with their buttons under them at the left */
@media (min-width: 641px) {
  .fg-ui:not(#fg):not(#fg2) :is(.person-sos-form, .safecare-found) { width: 100%; max-width: 720px; margin-left: 0; margin-right: auto; box-sizing: border-box; }
  .fg-ui:not(#fg):not(#fg2) :is(.person-sos-form, .safecare-found) .person-sos-fields { display: flex; flex-direction: column; gap: 16px; }
  .fg-ui:not(#fg):not(#fg2) .person-sos-form > .person-card-identity { flex: 0 0 auto; min-height: 0; align-self: stretch; }
  .fg-ui:not(#fg):not(#fg2) .safecare-done { width: 100%; max-width: 640px; margin-inline: auto; box-sizing: border-box; }
  .fg-ui:not(#fg):not(#fg2) .safecare-done .fg3-bottom { justify-content: center; border-top: 0; padding-top: 8px; }
  .fg-ui:not(#fg):not(#fg2) .safecare-done .fg3-bottom > .site-button { min-width: 260px; }
  .fg-ui:not(#fg):not(#fg2) :is(.fg3-result, .fg3-result ~ .safecare-report-list) { width: 100%; max-width: 640px; box-sizing: border-box; }
  .fg-ui:not(#fg):not(#fg2) .fg3-bottom.fg3-result-actions { justify-content: flex-start; border-top: 0; padding-top: 4px; }
  .fg-ui:not(#fg):not(#fg2) .fg3-bottom.fg3-result-actions > .site-button { min-width: 0; }
  .fg-ui:not(#fg):not(#fg2) .fg3-bottom.fg3-result-actions > .site-button:not(.person-primary) { background: transparent; border-color: transparent; }
}
/* DESIGN-03 2-05: Core accepted every photo — one green line instead of the batch tally */
.fg-ui:not(#fg) .pet-bulk:has(.pet-draft-all-ok) [data-pet-bulk-status] { display: none; }
/* 2-09/2-12: the animal-protection link box has one wide link */
.fg-ui:not(#fg) .fg3-emg-pet .fg3-emg-actions { grid-template-columns: minmax(0, 1fr); }
/* 2-01~2-15: the pet status line turns green like the person one */
.fg-ui:not(#fg) .pet-status[data-tone="ok"]:not(:empty) { display: flex; gap: 8px; align-items: center; margin: 0 0 12px; padding: 12px 14px; border-radius: 12px; background: var(--fg-green-soft); color: var(--fg-green); font-size: 14px; font-weight: 600; }
.fg-ui:not(#fg) .pet-status[data-tone="ok"]:not(:empty)::before { content: ""; width: 18px; height: 18px; background: currentColor; flex: 0 0 auto; -webkit-mask: var(--fg-mask-check) center / contain no-repeat; mask: var(--fg-mask-check) center / contain no-repeat; }
/* DESIGN-03 2-03: chips without radio circles (the 사람 관계 chips), selects with the drawn chevron */
.fg-ui:not(#fg):not(#fg2) .fg3-chip-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; border: 0; }
.fg-ui:not(#fg):not(#fg2) .fg3-chip-row .pet-choice { position: relative; display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border: 0; border-radius: 999px; background: var(--fg-sub); color: var(--fg-text-2); font-size: 15px; font-weight: 500; cursor: pointer; box-shadow: none; }
.fg-ui:not(#fg):not(#fg2) .fg3-chip-row .pet-choice input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.fg-ui:not(#fg):not(#fg2) .fg3-chip-row .pet-choice:has(input:checked) { background: var(--fg-blue); color: #fff; font-weight: 700; }
.fg-ui:not(#fg):not(#fg2) .fg3-chip-row .pet-choice:has(input:focus-visible) { outline: 2px solid var(--fg-blue); outline-offset: 2px; }
.fg-ui:not(#fg):not(#fg2) .fg3-chip-row .pet-choice:has(input:disabled) { opacity: .6; cursor: default; }
.fg-ui:not(#fg):not(#fg2) .pet-choice-field:has(.fg3-chip-row) { border: 0; padding: 0; margin: 0; }
.fg-ui:not(#fg):not(#fg2) .person-form select:not([multiple]):not([size]) { -webkit-appearance: none; appearance: none; padding-right: 44px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333D4B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 16px center; background-size: 20px 20px; }
/* DESIGN-03 2-08: the … stays on the name row however long the breed is */
.fg-ui:not(#fg):not(#fg2) .person-card-head.pet-card-head { flex-wrap: nowrap; align-items: flex-start; }
.fg-ui:not(#fg):not(#fg2) .person-card-head.pet-card-head > .person-card-identity { flex: 1 1 auto; min-width: 0; }
/* DESIGN-03 PC 2-03 / 2-07: the pet 기본정보 card 720px at the left, the done card 640px in the middle */
@media (min-width: 641px) {
  .fg-ui:not(#fg):not(#fg2) .pet-detail-section:has([data-pet-register-form]) { width: 100%; max-width: 720px; margin-left: 0; margin-right: auto; box-sizing: border-box; }
  .fg-ui:not(#fg):not(#fg2) .pet-detail-section:has([data-pet-register-done]) { width: 100%; max-width: 640px; margin-inline: auto; box-sizing: border-box; }
}
@media (min-width: 641px) { .fg-ui:not(#fg):not(#fg2) .fg3-missing-layout .pet-card-grid { grid-template-columns: minmax(0, 1fr); } }
/* DESIGN-03 가족 위치: one header line (the in-panel head only for the phone's back), the start card,
   the invite form, the code, the accept sheet, the quick tiles, the people who see me, the SOS card */
.consumer-section-panel[data-fg-sub="true"]:not(#fg) .family-loc-view-head { display: none; }
.fg-ui:not(#fg) .family-loc-start .family-loc-wide { width: 100%; }
.fg-ui:not(#fg) .family-loc-start .family-loc-button:not(.family-loc-primary) { background: var(--fg-sub); border: 0; }
.fg-ui:not(#fg) .family-loc-features { list-style: none; margin: 8px 0 0; padding: 16px 0 0; border-top: 1px solid var(--fg-line); display: flex; flex-direction: column; gap: 14px; text-align: left; width: 100%; }
.fg-ui:not(#fg) :is(.family-loc-features, .family-loc-accept-points) li { display: flex; gap: 12px; align-items: flex-start; }
.fg-ui:not(#fg) .family-loc-feature-icon { width: 36px; height: 36px; border-radius: 10px; background: var(--fg-sub); color: var(--fg-text-2); display: grid; place-items: center; flex: 0 0 auto; }
.fg-ui:not(#fg) .family-loc-feature-icon .fg-icon { width: 18px; height: 18px; }
.fg-ui:not(#fg) :is(.family-loc-features, .family-loc-accept-points) b { display: block; font-size: 15px; font-weight: 600; color: var(--fg-text); }
.fg-ui:not(#fg) :is(.family-loc-features, .family-loc-accept-points) small { display: block; font-size: 13px; color: var(--fg-text-3); }
.fg-ui:not(#fg) .family-loc-form-big { font-size: 20px; font-weight: 700; margin: 0 0 8px; }
.fg-ui:not(#fg) .family-loc-invite { display: flex; flex-direction: column; gap: 16px; }
.fg-ui:not(#fg) .family-loc-invite .person-field-label { color: var(--fg-text-2); font-size: 14px; font-weight: 600; }
.fg-ui:not(#fg):not(#fg2) .family-loc-invite input:not([type="checkbox"]):not([type="radio"]) { width: 100%; box-sizing: border-box; }
.fg-ui:not(#fg) .family-loc-under14 { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; }
.fg-ui:not(#fg) .family-loc-role { display: grid; grid-template-columns: 1fr 1fr; padding: 4px; border-radius: 12px; background: var(--fg-sub); gap: 4px; }
.fg-ui:not(#fg) .family-loc-role button { min-height: 44px; border: 0; border-radius: 10px; background: transparent; color: var(--fg-text-3); font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; }
.fg-ui:not(#fg) .family-loc-role button[aria-checked="true"] { background: var(--fg-surface); color: var(--fg-text); box-shadow: 0 1px 3px rgba(0, 0, 0, .08); }
.fg-ui:not(#fg) .family-loc-accept-preview { display: flex; flex-direction: column; gap: 16px; }
.fg-ui:not(#fg) .family-loc-accept-points { list-style: none; margin: 0; padding: 4px 16px; border-radius: 14px; background: var(--fg-sub); display: flex; flex-direction: column; }
.fg-ui:not(#fg) .family-loc-accept-points li { padding: 14px 0; }
.fg-ui:not(#fg) .family-loc-accept-points li + li { border-top: 1px solid var(--fg-line); }
.fg-ui:not(#fg) .family-loc-accept-points .family-loc-feature-icon { background: transparent; width: 24px; height: 36px; }
.fg-ui:not(#fg) .family-loc-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; padding: 14px 8px; border-radius: 16px; background: var(--fg-surface); box-shadow: var(--fg-shadow); }
.fg-ui:not(#fg) .family-loc-tiles .family-loc-sub-item { display: flex; flex-direction: column; align-items: center; gap: 8px; border: 0; background: transparent; font: inherit; font-size: 14px; color: var(--fg-text); cursor: pointer; padding: 6px 0; }
.fg-ui:not(#fg) .family-loc-tile-icon { width: 40px; height: 40px; border-radius: 12px; background: var(--fg-sub); display: grid; place-items: center; color: var(--fg-text-2); }
.fg-ui:not(#fg) .family-loc-tile-icon .fg-icon { width: 20px; height: 20px; }
.fg-ui:not(#fg) .family-loc-reports { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-start; padding: 0 4px; opacity: .85; }
.fg-ui:not(#fg) .family-loc-sos .fg3-missing-body { gap: 12px; }
.fg-ui:not(#fg) .family-loc-sos-actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
.fg-ui:not(#fg) .family-loc-sos-actions > * { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; border-radius: 12px; font-size: 15px; font-weight: 600; text-decoration: none; }
.fg-ui:not(#fg) .family-loc-sos-actions .family-loc-sos-map { background: var(--fg-blue); color: #fff; border: 0; }
.fg-ui:not(#fg) .family-loc-sos-actions .family-loc-sos-missing { background: var(--fg-red-soft); color: var(--fg-red-text); border: 0; }
.fg-ui:not(#fg) .family-loc-sos-end { align-self: flex-start; }
.fg-ui:not(#fg):not(#fg2) .family-loc-avatar.is-me { background: #8E5A7A1f; color: #8E5A7A; }
.fg-ui:not(#fg):not(#fg2) .family-loc-viewer-row .family-loc-button { font-size: 14px; font-weight: 600; min-height: 36px; padding: 0 4px; }
.fg-ui:not(#fg) .family-loc-sos-actions .family-loc-sos-missing { grid-column: 1 / -1; white-space: nowrap; }
.fg-ui:not(#fg):not(#fg2) .family-loc-sos-actions .family-loc-button.family-loc-sos-missing { background: var(--fg-red-soft); color: var(--fg-red-text); border: 0; }
@media (min-width: 641px) { .fg-ui:not(#fg):not(#fg2) .family-loc-invite-actions .family-loc-wide { width: auto; min-width: 120px; } .fg-ui:not(#fg):not(#fg2) .family-loc-invite { max-width: 620px; } }

/* FAMILY-GUARDIAN-DESIGN-03 · 2차 대조(2026-10-19) 3건
   1) 발견 제보·SOS 등 PC 하단 줄: 안내 문구가 길어도 [임시 저장][제보 보내기]가 한 줄에 남는다.
   2) 가족 초대 '만 14세 미만이에요' 줄: 위아래 여백을 줘서 글자가 테두리에 잘리지 않는다.
   (머리줄이 밀리던 것은 site-family-guardian-ui.js fgScrollTop이 고침.) */
.fg-ui:not(#fg):not(#fg2) .family-loc-under14 { align-items: center; padding: 10px 12px; min-height: 48px; line-height: 1.45; }
.fg-ui:not(#fg):not(#fg2) .family-loc-under14 > input { margin: 0; flex: 0 0 auto; }
@media (min-width: 641px) {
  .fg-ui:not(#fg):not(#fg2) .fg3-bottom { flex-wrap: nowrap; align-items: center; }
  .fg-ui:not(#fg):not(#fg2) .fg3-bottom > .fg3-bottom-lock { flex: 1 1 0; min-width: 0; margin: 0; }
  .fg-ui:not(#fg):not(#fg2) .fg3-bottom > :is(.site-button, button) { flex: 0 0 auto; }
}

/* GUARDIAN-DEV-01 ③안: "닮은 사람 제보" on the guardian's missing card, the reporter's
   112 link and the approved sighting photos. */
.fg-ui:not(#fg) .fg3-sighting-alert { display: grid; grid-template-columns: auto 1fr; gap: 4px 8px; align-items: start; margin: 10px 0; padding: 12px; border-radius: 12px; background: var(--fg-red-soft); border: 1px solid var(--fg-red-line); color: var(--fg-red-text); font-size: 14px; line-height: 20px; }
.fg-ui:not(#fg) .fg3-sighting-alert > span, .fg-ui:not(#fg) .fg3-sighting-alert > a { grid-column: 2; }
.fg-ui:not(#fg) .person-found-call { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 16px; border-radius: 999px; background: var(--fg-red); color: #fff; font-weight: 700; text-decoration: none; justify-self: start; margin-top: 6px; }
.fg-ui:not(#fg) .fg3-thumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.fg-ui:not(#fg) .fg3-thumbs img { width: 96px; height: 96px; object-fit: cover; border-radius: 10px; border: 1px solid var(--fg-line); }

/* GUARDIAN-DEV-01: 「주변 장소」 tab — nearest places to go when someone or a pet is missing. */
.fg-nearby { display: grid; gap: 12px; padding: 4px 0 8px; }
.fg-nearby h3 { margin: 0; font-size: 18px; line-height: 26px; color: var(--fg-text); }
.fg-nearby .fg-nearby-note { margin: 0; font-size: 14px; line-height: 21px; color: var(--fg-text-3, #6b7684); }
.fg-nearby .fg-nearby-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.fg-nearby .fg-nearby-button { min-height: 56px; padding: 10px 12px; border-radius: 14px; border: 1px solid var(--fg-line, #E5E8EB); background: var(--fg-surface, #fff); color: var(--fg-text); font-size: 16px; font-weight: 700; cursor: pointer; }
.fg-nearby .fg-nearby-button:focus-visible { outline: 2px solid var(--fg-red, #D92D20); outline-offset: 2px; }
.fg-nearby .fg-nearby-call { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; border-radius: 999px; background: var(--fg-red, #D92D20); color: #fff; font-weight: 800; text-decoration: none; }
@media (min-width: 720px) { .fg-nearby .fg-nearby-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* GUARDIAN-DEV-03: 실종 대비 정보 (shown only while Core's switch is on). */
.fg-ui:not(#fg) .person-care-needs { border: 1px solid var(--fg-line); border-radius: 12px; padding: 10px 12px; margin: 8px 0; display: grid; gap: 8px; }
.fg-ui:not(#fg) .person-care-needs legend { padding: 0 4px; font-weight: 700; color: var(--fg-text); }
.fg-ui:not(#fg):not(#fg2) label.person-care-need, .fg-ui:not(#fg):not(#fg2) label.person-care-consent { display: flex; flex-direction: row; gap: 10px; align-items: center; min-height: 44px; font-size: 15px; line-height: 22px; color: var(--fg-text); }
.fg-ui:not(#fg):not(#fg2) label.person-care-need input, .fg-ui:not(#fg):not(#fg2) label.person-care-consent input { order: 0; width: 22px; height: 22px; margin: 0; align-self: center; flex: none; }
.fg-ui:not(#fg):not(#fg2) label.person-care-consent[hidden] { display: none; }
/* 소유자 10-23: rescued animals and shelters near an open pet report (official data). */
.fg-ui:not(#fg) .fg3-nearby { display: flex; flex-direction: column; gap: 8px; }
.fg-ui:not(#fg) .fg3-nearby-row { align-items: flex-start; }
.fg-ui:not(#fg) .fg3-nearby-photo { width: 64px; height: 64px; flex: 0 0 64px; object-fit: cover; border-radius: var(--fg3-ctl); background: var(--fg-sub); }
.fg-ui:not(#fg) .fg3-nearby-source { margin: 0 4px; font-size: 12px; }

/* 소유자 10-24 가족 위치 (확정 시안): the line on a person card, the battery, the connect sheets,
   the person's day as a time line (no map), and the child's phone. */
.fg-ui:not(#fg) .fl2-loc { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 2px 0 10px; padding: 10px 12px; border-radius: 12px; background: var(--fg-green-soft); color: var(--fg-text); font-size: 14px; font-weight: 600; }
.fg-ui:not(#fg) .fl2-loc > i { width: 8px; height: 8px; border-radius: 50%; background: var(--fg-green); box-shadow: 0 0 0 4px color-mix(in srgb, var(--fg-green) 18%, transparent); flex: 0 0 auto; }
.fg-ui:not(#fg) .fl2-loc.is-child { background: var(--fg-blue-soft); }
.fg-ui:not(#fg) .fl2-loc.is-child > i { background: var(--fg-blue); box-shadow: none; }
.fg-ui:not(#fg) .fl2-loc.is-wait { background: var(--fg-amber-soft); }
.fg-ui:not(#fg) .fl2-loc.is-wait > i { background: var(--fg-amber); box-shadow: none; }
.fg-ui:not(#fg) .fl2-loc-text { flex: 1 1 auto; min-width: 0; }
.fg-ui:not(#fg) .fl2-loc .person-text-button { margin-left: auto; padding: 0; }
.fg-ui:not(#fg) .person-card-actions.person-card-actions-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.fg-ui:not(#fg) .person-card-actions.person-card-actions-3:has(> .site-button:nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fg-ui:not(#fg) .person-card-actions.person-card-actions-3 > .site-button { padding-inline: 6px; font-size: 14px; white-space: nowrap; width: auto; }
.fl2-battery { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--fg-text); margin-left: auto; white-space: nowrap; }
.fl2-battery-icon { position: relative; display: inline-flex; align-items: stretch; gap: 1.5px; width: 32px; height: 16px; padding: 1.5px; border: 1.8px solid var(--fg-text-3); border-radius: 4px; box-sizing: border-box; }
.fl2-battery-icon::after { content: ""; position: absolute; right: -4.5px; top: 4px; width: 2.5px; height: 5px; border-radius: 0 1.5px 1.5px 0; background: var(--fg-text-3); }
.fl2-battery-icon i { flex: 1; border-radius: 1.5px; background: transparent; }
.fl2-battery-icon i.is-on { background: #1F9D55; }
.fl2-battery[data-family-battery="low"] { color: var(--fg-red-text); }
.fl2-battery[data-family-battery="low"] .fl2-battery-icon { border-color: #D6293E; }
.fl2-battery[data-family-battery="low"] .fl2-battery-icon::after { background: #D6293E; }
.fl2-battery[data-family-battery="low"] .fl2-battery-icon i.is-on { background: #D6293E; }
.fl2-battery small { font-size: 12px; font-weight: 700; }
.fl2-battery-charging { color: #1F9D55; }
.fg-ui:not(#fg) .fl2-sub { margin-top: -6px; }
.fg-ui:not(#fg) .fl2-center { text-align: center; }
.fg-ui:not(#fg) .fl2-center-button { justify-self: center; align-self: center; }
.fg-ui:not(#fg) .fl2-choice { display: grid; gap: 10px; }
.fg-ui:not(#fg) .fl2-read { display: grid; gap: 10px; padding-bottom: 4px; }
.fg-ui:not(#fg) .fl2-read > .site-button { width: 100%; min-height: 52px; justify-content: center; }
.fg-ui:not(#fg) .fl2-opt { display: grid; grid-template-columns: 44px 1fr; gap: 12px; align-items: start; text-align: left; padding: 16px; border: 1px solid var(--fg-line); border-radius: 16px; background: var(--fg-surface); font: inherit; color: inherit; cursor: pointer; }
.fg-ui:not(#fg) .fl2-opt.is-on { border-color: var(--fg-blue); box-shadow: 0 0 0 1px var(--fg-blue) inset; }
.fg-ui:not(#fg) .fl2-opt > i { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--fg-blue-soft); color: var(--fg-blue-text); }
.fg-ui:not(#fg) .fl2-opt b { display: block; font-size: 16px; }
.fg-ui:not(#fg) .fl2-opt span { display: block; margin-top: 3px; font-size: 13px; color: var(--fg-text-2); line-height: 1.5; }
.fg-ui:not(#fg) .fl2-steps { display: grid; gap: 8px; margin: 2px 0; }
.fg-ui:not(#fg) .fl2-steps > div { display: grid; grid-template-columns: 24px 1fr; gap: 10px; font-size: 14px; align-items: start; }
.fg-ui:not(#fg) .fl2-steps em { font-style: normal; width: 24px; height: 24px; border-radius: 50%; background: var(--fg-text); color: var(--fg-surface); font-size: 12px; font-weight: 800; display: grid; place-items: center; }
.fg-ui:not(#fg) .fl2-qr { display: grid; place-items: center; padding: 14px; border: 1px solid var(--fg-line); border-radius: 16px; background: #fff; }
.fg-ui:not(#fg) .fl2-qr svg { width: 170px; height: 170px; }
.fg-ui:not(#fg) .fl2-qr .fg3-minor { margin: 8px 0 0; text-align: center; color: #4E5968; }
.fg-ui:not(#fg) .fl2-num { font-size: 30px; font-weight: 800; letter-spacing: .2em; text-align: center; padding: 14px; border-radius: 14px; background: var(--fg-sub); color: var(--fg-text); }
.fg-ui:not(#fg) .fl2-terms summary { cursor: pointer; font-size: 13px; color: var(--fg-text-2); }
.fg-ui:not(#fg) .fl2-tabs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; background: var(--fg-sub); padding: 4px; border-radius: 12px; }
.fg-ui:not(#fg) .fl2-tab { border: 0; background: transparent; padding: 8px 0; border-radius: 9px; font: inherit; font-size: 14px; font-weight: 650; color: var(--fg-text-2); cursor: pointer; }
.fg-ui:not(#fg) .fl2-tab[aria-selected="true"] { background: var(--fg-surface); color: var(--fg-text); box-shadow: 0 1px 3px rgb(0 0 0 / 8%); }
.fg-ui:not(#fg) .fl2-linkbox, .fg-ui:not(#fg) .fl2-codebox { display: grid; gap: 8px; }
.fg-ui:not(#fg) .fl2-link-field { width: 100%; min-height: 44px; padding: 0 12px; border: 1px solid var(--fg-line); border-radius: 12px; background: var(--fg-sub); color: var(--fg-text); font-size: 13px; box-sizing: border-box; }
.fl2-page { display: grid; gap: 14px; max-width: 760px; }
.fg-ui:not(#fg) .fl2-back { justify-self: start; padding: 0; }
.fl2-head { display: flex; align-items: center; gap: 12px; }
.fl2-avatar { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: #7A6552; color: #fff; font-weight: 800; font-size: 19px; flex: 0 0 auto; }
.fl2-head b { font-size: 20px; letter-spacing: -.02em; color: var(--fg-text); }
.fl2-head small { display: block; color: var(--fg-text-3); font-size: 13px; margin-top: 2px; }
.fl2-card { border: 1px solid var(--fg-line); border-radius: 16px; background: var(--fg-surface); padding: 16px; display: grid; gap: 10px; color: var(--fg-text); }
.fl2-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.fl2-actions > .site-button { flex: 1 1 0; }
.fl2-late { display: flex; gap: 8px; align-items: flex-start; margin: 10px 0 0; padding: 10px 12px; border-radius: 12px; background: var(--fg-red-soft, #fdecec); color: var(--fg-red-text, #a02645); font-size: 15px; line-height: 22px; font-weight: 600; word-break: keep-all; }
.fl2-late > svg { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 2px; }
.fl2-now b { font-size: 17px; }
.fl2-now p { margin: 4px 0 0; color: var(--fg-text-2); font-size: 14px; display: flex; align-items: center; flex-wrap: wrap; gap: 4px; }
.fl2-now .fl2-battery { margin-left: 0; }
.fl2-status:empty { display: none; }
.fl2-record-head b { font-size: 17px; }
.fl2-record-head span { margin: 0; font-size: 13px; color: var(--fg-text-3); }
.fl2-record[data-loading] { opacity: .6; }
.fl2-chips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
.fl2-chip { flex: 0 0 auto; padding: 8px 14px; border-radius: 999px; background: var(--fg-sub); font: inherit; font-size: 14px; font-weight: 650; color: var(--fg-text-2); border: 0; cursor: pointer; }
.fl2-chip.is-on { background: var(--fg-text); color: var(--fg-surface); }
.fl2-sum { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.fl2-sum > div { background: var(--fg-sub); border-radius: 12px; padding: 10px 12px; }
.fl2-sum b { display: block; font-size: 17px; }
.fl2-sum span { font-size: 12px; color: var(--fg-text-3); font-weight: 600; }
.fl2-tl { display: grid; }
.fl2-it { display: grid; grid-template-columns: 52px 28px 1fr; column-gap: 10px; }
.fl2-t { text-align: right; font-size: 14px; font-weight: 700; padding-top: 2px; line-height: 1.3; }
.fl2-t small { display: block; color: var(--fg-text-3); font-weight: 500; font-size: 12px; }
.fl2-r { position: relative; display: flex; justify-content: center; }
.fl2-r::before { content: ""; position: absolute; top: 0; bottom: 0; width: 2px; background: var(--fg-line); }
.fl2-it.is-move .fl2-r::before { background: repeating-linear-gradient(to bottom, var(--fg-line-strong) 0 4px, transparent 4px 8px); }
.fl2-it:first-child .fl2-r::before { top: 14px; }
.fl2-it:last-child .fl2-r::before { bottom: calc(100% - 14px); }
.fl2-n { position: relative; z-index: 1; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-size: 12px; font-weight: 800; background: #2457D6; }
.fl2-n.school { background: #6F4FD1; }
.fl2-n.academy { background: #C8601C; }
.fl2-n.other { background: #5B6577; }
.fl2-b { padding: 0 0 18px; }
.fl2-b b { font-size: 16px; letter-spacing: -.02em; }
.fl2-b p { margin: 3px 0 6px; font-size: 13px; color: var(--fg-text-2); }
.fl2-b a { font-size: 13px; font-weight: 650; color: var(--fg-blue-text); text-decoration: none; }
.fl2-it.is-move .fl2-b { padding: 2px 0 14px; font-size: 13px; color: var(--fg-text-3); font-weight: 600; }
.fl2-note { display: flex; gap: 8px; align-items: flex-start; padding: 12px 14px; border-radius: 12px; background: var(--fg-blue-soft); color: var(--fg-blue-text); font-size: 13px; line-height: 1.55; }
.fl2-note svg { flex: 0 0 auto; width: 18px; height: 18px; }
.fl2-empty { display: grid; gap: 10px; text-align: center; }
.fl2-empty > b { font-size: 18px; }
.fl2-empty .fg3-notice-list { text-align: left; }
.fl2-kid-shell { position: fixed; inset: 0; z-index: 2147483000; background: var(--fg-surface); color: var(--fg-text); overflow: auto; }
.fl2-kid-shell[hidden] { display: none; }
.fl2-kid-top { display: flex; align-items: center; height: 56px; padding: 0 18px; border-bottom: 1px solid var(--fg-line); }
.fl2-kid-brand { font-weight: 900; font-size: 19px; letter-spacing: .02em; }
.fg-ui:not(#fg) .fl2-kid { display: grid; gap: 14px; padding: 22px 18px 32px; max-width: 520px; margin: 0 auto; }
.fg-ui:not(#fg) .fl2-big { font-size: 22px; font-weight: 800; letter-spacing: -.03em; line-height: 1.35; margin: 0; white-space: pre-line; }
.fg-ui:not(#fg) .fl2-kid-sharing { font-size: 16px; padding: 14px; margin: 0; }
.fl2-kid-pill { position: fixed; left: 50%; bottom: 16px; transform: translateX(-50%); z-index: 2147483000; padding: 10px 16px; border: 0; border-radius: 999px; background: #15803D; color: #fff; font: inherit; font-size: 14px; font-weight: 700; box-shadow: 0 6px 20px rgb(0 0 0 / 18%); }
.fl2-kid-pill[hidden] { display: none; }
html[data-family-child-phone="true"] body { overflow: hidden; }
.fg-ui:not(#fg) :is(.fl2-page, .fl2-kid) .fg3-minor, .fl2-sheet.fg-ui:not(#fg) .fg3-minor { margin: 0; }
.fg-ui:not(#fg) :is(.fl2-page, .fl2-kid) .fg3-minor.fl2-sub, .fl2-sheet.fg-ui:not(#fg) .fg3-minor.fl2-sub { margin-top: -6px; }
.fg-ui:not(#fg) .fl2-sheet .fg3-check + .fl2-terms .fg3-minor { margin-top: 6px; }
.fg-ui:not(#fg) .fl2-kid .fl2-row > .site-button { flex: 0 0 auto; white-space: nowrap; }
/* 소유자 10-24 14세 미만 아이 계정 (site-child-account.js) */
.fg-ui:not(#fg) .fl2-head .fl2-child-account-link { margin-left: auto; padding: 0; white-space: nowrap; }
.fg-ui:not(#fg) .fl2-kid select.fl2-link-field { appearance: auto; }
.fg-ui:not(#fg) .fl2-end-link { justify-self: center; color: var(--fg-red-text); }

/* 6번 10-25 (소유자 23:34 장면): the refused field is marked, its reason sits right under it. */
.fg-ui:not(#fg) .pet-field-invalid :is(input, select, textarea), .fg-ui:not(#fg) .pet-field-invalid .pet-choice-row { border-color: #d92d20; box-shadow: 0 0 0 1px #d92d20; border-radius: 12px; }
.fg-ui:not(#fg) .pet-field-error { margin: 6px 0 0; font-size: 14px; line-height: 20px; }

/* 소유자 10-25 「다 카테고리로」: the field opens a list from the bottom; the chosen value sits in the field. */
.fg-ui:not(#fg) .pet-picker-field { position: relative; }
.fg-ui:not(#fg) .pet-picker-native { position: absolute !important; left: 0 !important; top: 0 !important; width: 1px !important; min-width: 0 !important; height: 1px !important; padding: 0 !important; margin: 0 !important; border: 0 !important; overflow: hidden !important; clip: rect(0 0 0 0); white-space: nowrap; }
.fg-ui:not(#fg):not(#fg2) .pet-picker { display: flex; align-items: center; justify-content: space-between; box-sizing: border-box; width: 100%; max-width: 100%; min-height: 52px; padding: 0 16px; border: 0; border-radius: 12px; background: var(--fg-sub); color: var(--fg-text); font: inherit; font-size: 16px; text-align: left; cursor: pointer; }
.fg-ui:not(#fg):not(#fg2) .pet-picker:disabled { background: #f2f4f7; color: #667085; cursor: not-allowed; }
.fg-ui:not(#fg) .pet-picker.pet-picker-empty .pet-picker-value { color: #A1AAB5; }
.fg-ui:not(#fg):not(#fg2) .pet-picker:focus-visible { outline: none; background: var(--fg-surface); box-shadow: inset 0 0 0 2px var(--fg-blue); }
.fg-ui:not(#fg) .pet-picker-caret { margin-left: 8px; color: #667085; }
.fg-ui:not(#fg):not(#fg2) .pet-field-invalid .pet-picker { border-color: #d92d20; box-shadow: 0 0 0 1px #d92d20; }
.pet-picker-sheet { display: grid; gap: 12px; }
.pet-picker-title { margin: 0; font-size: 18px; line-height: 26px; }
/* COMPLAINT-PET-PICKER-DARK-01 (회원 신고 10-30 아이폰 어두운 화면 「종류 고르기 글자가 너무 어두워 안 보여」): the list takes the
   가족 지킴이 colours, so the choices read on the dark sheet too. */
.pet-picker-search { width: 100%; min-height: 48px; padding: 0 14px; border: 1px solid var(--fg-line-strong, #d0d5dd); border-radius: 12px; background: var(--fg-surface, #fff); color: var(--fg-text, #101828); font-size: 16px; box-sizing: border-box; }
.pet-picker-list { margin: 0; padding: 0; list-style: none; }
.pet-picker-option { display: block; width: 100%; min-height: 48px; padding: 12px 14px; border: 0; border-bottom: 1px solid var(--fg-line, #f2f4f7); background: transparent; font: inherit; font-size: 16px; text-align: left; color: var(--fg-text, #101828); cursor: pointer; }
.pet-picker-option[aria-selected='true'] { color: var(--fg-blue-text, #1d4ed8); font-weight: 700; }
.pet-picker-option[aria-selected='true']::after { content: ' ✓'; }
.pet-picker-none { padding: 14px; color: var(--fg-text-3, #667085); }

/* 마스터 10-26: 앱에 있던 추가 정보(털색·무늬·특징·동물등록번호)를 접힘 칸으로. */
.fg-ui:not(#fg) .pet-extra-info { display: grid; gap: 20px; padding: 16px; border: 1px solid var(--fg-line, #e4e7ec); border-radius: 14px; }
.fg-ui:not(#fg) .pet-extra-summary { display: grid; gap: 2px; cursor: pointer; list-style: none; }
.fg-ui:not(#fg) .pet-extra-summary::-webkit-details-marker { display: none; }
.fg-ui:not(#fg) .pet-extra-summary::after { content: '＋'; position: absolute; right: 16px; color: var(--fg-text-2, #667085); }
.fg-ui:not(#fg) .pet-extra-info { position: relative; }
.fg-ui:not(#fg) .pet-extra-info[open] > .pet-extra-summary::after { content: '－'; }
.fg-ui:not(#fg) .pet-extra-hint { font-size: 14px; color: var(--fg-text-2, #667085); }
.fg-ui:not(#fg) .pet-extra-info[open] > .pet-extra-summary { margin-bottom: 16px; }
.fg-ui:not(#fg) .pet-extra-info > .person-field + .person-field { margin-top: 20px; }

/* 소유자 10-26 「70년대야?」: 가족 지킴이 date-time fields open the shared picker sheet (site-family-moment-picker.js). */
/* The native input stays the visible box (its value is what the screens save); taps go to the field, never to it. */
.fg-ui:not(#fg) .fg3-moment > .fg3-moment-native, .fg-ui:not(#fg) .fg3-moment > .fg3-moment-native::-webkit-calendar-picker-indicator { pointer-events: none; }
.fg-ui:not(#fg) .fg3-moment { position: relative; cursor: pointer; }
.fg-ui:not(#fg) .fg3-moment[aria-disabled='true'] { cursor: not-allowed; opacity: .6; }
.fg-ui:not(#fg) .fg3-moment:focus-visible { outline: 2px solid #1d4ed8; outline-offset: 2px; }
.fg3-moment-sheet { display: grid; gap: 10px; }
.fg3-moment-title { margin: 0; font-size: 18px; line-height: 26px; }
.fg3-moment-columns { display: grid; grid-template-columns: 1.6fr 1fr .8fr; gap: 8px; }
.fg3-moment-list { position: relative; margin: 0; padding: 0; list-style: none; max-height: min(260px, 32dvh); overflow-y: auto; overscroll-behavior: contain; border: 1px solid #eaecf0; border-radius: 12px; touch-action: pan-y; }
.fg3-moment-option { display: block; width: 100%; min-height: 44px; padding: 10px 12px; border: 0; border-bottom: 1px solid #f2f4f7; background: transparent; font: inherit; font-size: 16px; text-align: left; color: #101828; cursor: pointer; }
.fg3-moment-option:disabled { color: #98a2b3; cursor: not-allowed; }
.fg3-moment-option[aria-selected='true'] { color: #1d4ed8; font-weight: 700; background: #eff4ff; }

/* 소유자 10-26: the card picture is the owner's choice (site-family-cover-photo.js); a small camera mark says it can be changed. */
.fg-ui:not(#fg) .fg-cover-button { position: relative; display: inline-flex; flex: none; border-radius: 16px; cursor: pointer; }
.fg-ui:not(#fg) .fg-cover-button:focus-visible { outline: 2px solid #1d4ed8; outline-offset: 2px; }
.fg-ui:not(#fg) .fg-cover-badge { position: absolute; right: -4px; bottom: -4px; display: grid; place-items: center; width: 24px; height: 24px; border: 2px solid #fff; border-radius: 50%; background: #1d4ed8; color: #fff; box-shadow: 0 1px 3px rgba(15, 23, 42, .25); }
.fg-cover-sheet { display: grid; gap: 12px; }
.fg-cover-title { margin: 0; font-size: 18px; line-height: 26px; }
.fg-cover-copy { margin: 0; color: #475467; font-size: 15px; line-height: 22px; }
.fg-cover-actions { display: grid; gap: 8px; }
.fg-cover-actions .site-button { width: 100%; min-height: 48px; }
.fg-cover-status { margin: 0; color: #475467; font-size: 14px; }
/* 마스터·소유자 10-27: no empty band between the buttons and 닫기 (the status line takes room only when it speaks). */
.fg-cover-status:empty { display: none; }

/* 마스터·소유자 10-27: 접근경보 tab in a browser — the app-only screen with the official store badges (sizes per each guide:
   App Store badge 40px tall; the Google Play badge image carries its own clear space, so it is drawn taller to match). */
.fg-ui:not(#fg).fg-approach-app-only, .fg-ui:not(#fg).fg-approach-soon { display: grid; justify-items: center; gap: 10px; padding: 32px 16px; text-align: center; }
.fg-ui:not(#fg).fg-approach-app-only h3, .fg-ui:not(#fg).fg-approach-soon h3 { margin: 0; font-size: 19px; }
.fg-ui:not(#fg).fg-approach-app-only p, .fg-ui:not(#fg).fg-approach-soon p { margin: 0; color: var(--fg-text-2); font-size: 15px; line-height: 1.5; }
.fg-ui:not(#fg) .fg-store-badges { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; margin-top: 8px; }
.fg-ui:not(#fg) .fg-store-badge { display: inline-flex; min-height: 44px; align-items: center; }
.fg-ui:not(#fg) .fg-store-badge-play img { height: 60px; width: auto; }
.fg-ui:not(#fg) .fg-store-badge-apple img { height: 40px; width: auto; }
.fg-ui:not(#fg) .fg-store-note { font-size: 13px !important; }

/* 가족 위치 (no tab of its own): a title row with ← back to 사람 while it is open. */
.fg-family-head { display: flex; align-items: center; gap: 6px; padding: 8px 4px; border-bottom: 1px solid var(--fg-line, #e5e8eb); }
.fg-family-head[hidden] { display: none; }
.fg-family-back { display: inline-grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 12px; background: transparent; color: inherit; cursor: pointer; }
.fg-family-back svg { width: 22px; height: 22px; }
.fg-family-title { margin: 0; font-size: 18px; font-weight: 700; }
/* FAMILY-FACE-SET-01 (마스터·소유자 19:5x): one face cell (얼굴 입체 등록 → 대표 사진 + 「얼굴 인증 완료」) and one body cell (20:3x). */
.fg-ui:not(#fg) .fg-face-cells { display: grid; gap: 12px; margin-top: 4px; }
.fg-ui:not(#fg) .fg-face-cell { display: grid; justify-items: center; gap: 8px; padding: 18px 16px; border: 1px solid var(--fg-line); border-radius: 18px; text-align: center; }
.fg-ui:not(#fg) .fg-face-cell .person-card-thumbnail { width: 96px; height: 96px; border-radius: 22px; }
.fg-ui:not(#fg) .fg-face-done-title, .fg-ui:not(#fg) .fg-body-title { display: inline-flex; align-items: center; gap: 6px; font-size: 17px; }
.fg-ui:not(#fg) .fg-face-done-title { color: var(--fg-green); }
.fg-ui:not(#fg) .fg-face-done-title svg, .fg-ui:not(#fg) .fg-body-title svg { width: 20px; height: 20px; color: var(--fg-green); }
.fg-ui:not(#fg) .fg-face-start { display: grid; justify-items: center; gap: 6px; width: 100%; padding: 22px 16px; border: 1.5px dashed var(--fg-line); border-radius: 16px; background: var(--fg-sub); color: inherit; font: inherit; cursor: pointer; }
.fg-ui:not(#fg) .fg-face-start svg { width: 44px; height: 44px; }
.fg-ui:not(#fg) .fg-face-start strong { font-size: 18px; }
.fg-ui:not(#fg) .fg-face-start span { font-size: 14px; line-height: 1.5; opacity: .8; }
.fg-ui:not(#fg) .fg-face-app-only { cursor: default; }
.fg-ui:not(#fg) .fg-body-media { display: grid; place-items: center; width: 96px; height: 120px; overflow: hidden; border-radius: 16px; background: var(--fg-sub); }
.fg-ui:not(#fg) .fg-body-media img { width: 100%; height: 100%; object-fit: cover; }
.fg-ui:not(#fg) .fg-body-media svg { width: 32px; height: 32px; opacity: .6; }
.fg-ui:not(#fg) .fg-face-note { margin: 0; }
.fg-ui:not(#fg) .fg-face-body-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; width: 100%; }
/* 마스터·소유자 10-27: the two buttons are the same width and each label stays on one line — side by side when they fit,
   one under the other (still the same width) on narrow phones. */
.fg-ui:not(#fg) .fg-face-body-buttons > .site-button { width: 100%; min-width: 0; white-space: nowrap; padding-inline: 12px; gap: 6px; justify-content: center; }
@media (max-width: 400px) { .fg-ui:not(#fg) .fg-face-body-buttons:not(.pet-body-buttons) { grid-template-columns: 1fr; } }
.fg-ui:not(#fg) .fg-face-step .fg-face-again { justify-self: center; display: inline-flex; align-items: center; gap: 6px; width: auto; min-height: 44px; padding: 0 18px; margin-top: 4px; }
.fg-ui:not(#fg) .fg-face-step .fg-face-again svg { width: 18px; height: 18px; }
/* the approved examples (face; upper body · full body) on an empty cell, tagged 예시 */
.fg-ui:not(#fg) .fg-body-examples { display: grid; grid-template-columns: repeat(2, minmax(0, 112px)); justify-content: center; gap: 10px; }
.fg-ui:not(#fg) .fg-example { display: grid; gap: 4px; margin: 0; }
.fg-ui:not(#fg) .fg-example-media { position: relative; overflow: hidden; aspect-ratio: 3 / 4; border-radius: 14px; background: #fff; border: 1px solid var(--fg-line); }
.fg-ui:not(#fg) .fg-example-media > .person-slot-guide-image { position: absolute; inset: 0; }
/* 마스터 10-29 걷기 13: the face example is small and plainly an example, not the person's own photo. */
.fg-ui:not(#fg) .fg-face-example { width: 76px; }
.fg-ui:not(#fg) .fg-face-example .fg-example-caption { font-size: 12px; text-align: center; white-space: nowrap; }
.fg-ui:not(#fg) .fg-example-caption { font-size: 13px; color: var(--fg-text-2); }
.fg-ui:not(#fg) .fg-required-badge { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 999px; background: var(--fg-red-soft); color: var(--fg-red-text); font-size: 12px; font-weight: 700; }
.fg-ui:not(#fg) .fg-body-why { max-width: 32ch; }
/* 10-27 「사진으로 등록하기」: hint, thumbnails, the button and 「롯비가 사진을 인식 중이에요」 with the shared spinner. */
/* 10-27 12:4x: the upper- and full-body cells side by side inside the body card, each with its example. */
.fg-ui:not(#fg) .fg-body-slots { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; width: 100%; }
.fg-ui:not(#fg) .fg-body-slot { display: grid; justify-items: center; align-content: start; gap: 8px; min-width: 0; }
.fg-ui:not(#fg) .fg-body-slot .fg-example { width: min(112px, 100%); }
.fg-ui:not(#fg) .fg-body-slot .fg-body-media { width: min(112px, 100%); height: auto; aspect-ratio: 3 / 4; }
.fg-ui:not(#fg) .fg-body-slot-label { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; color: var(--fg-text-2); }
.fg-ui:not(#fg) .fg-body-slot-label svg { width: 16px; height: 16px; color: var(--fg-green); }
.fg-ui:not(#fg) .fg-body-slot .fg-face-body-buttons { grid-template-columns: 1fr; gap: 8px; }
.fg-ui:not(#fg) .fg-face-step .fg-body-slot .site-button { min-height: 44px; padding-inline: 8px; }
/* Wide screens (unfolded Fold, tablet, PC): the face card and the body card side by side, tighter, all on one screen. */
@media (min-width: 640px) {
  .fg-ui:not(#fg) .fg-face-step .fg-face-cells { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); align-items: start; }
  .fg-ui:not(#fg) .fg-face-step .fg-face-cell { padding: 14px 12px; gap: 6px; }
}
.fg-ui:not(#fg) .fg-photo-path { display: grid; justify-items: center; gap: 10px; width: 100%; margin-top: 4px; }
.fg-ui:not(#fg) .fg-photo-path-hint { max-width: 36ch; text-align: center; }
.fg-ui:not(#fg) .fg-photo-path-thumbs { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.fg-ui:not(#fg) .fg-photo-path-thumb { display: grid; place-items: center; width: 64px; height: 64px; overflow: hidden; border-radius: 14px; background: var(--fg-sub); }
.fg-ui:not(#fg) .fg-photo-path-thumb img { width: 100%; height: 100%; object-fit: cover; }
.fg-ui:not(#fg) .fg-photo-path-thumb svg { width: 24px; height: 24px; opacity: .6; }
.fg-ui:not(#fg) .fg-face-step .fg-photo-path-pick { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 48px; padding: 0 18px; white-space: nowrap; }
.fg-ui:not(#fg) .fg-photo-path-pick svg { width: 18px; height: 18px; }
.fg-ui:not(#fg) .fg-recognizing { display: inline-flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 600; color: var(--fg-text-2); }
.fg-ui:not(#fg) .fg-recognizing[hidden] { display: none; }
.fg-ui:not(#fg) .fg-recognizing-spin { width: 22px; height: 22px; border-radius: 50%; border: 3px solid var(--fg-blue-soft); border-top-color: var(--fg-blue); box-sizing: border-box; animation: fg-spin 1s linear infinite; }
@media (prefers-reduced-motion: reduce) { .fg-ui:not(#fg) .fg-recognizing-spin { animation: none; } }
.fg-ui:not(#fg) .pet-body-buttons { grid-template-columns: 1fr; }
.fg-ui:not(#fg) .fg-face-step .site-button { min-height: 52px; }
.fg-ui:not(#fg) .fg-face-status[data-tone="error"] { color: var(--fg-danger, #dc2626); }


/* FAMILY-PET-CHIP-01: 「동물등록(내장 칩) 했나요?」 in the pet registration and the number on a missing report. */
.fg-ui:not(#fg) .pet-chip-yes, .fg-ui:not(#fg) .pet-chip-no { display: grid; gap: 8px; margin-top: 10px; }
.fg-ui:not(#fg) .pet-chip-rules { margin: 0; padding: 12px 14px 12px 30px; border-radius: 14px; background: var(--fg-sub); font-size: 14px; line-height: 1.55; }
.fg-ui:not(#fg) .pet-chip-actions { display: grid; grid-template-columns: 1fr; gap: 8px; }
.fg-ui:not(#fg) .pet-chip-link { color: var(--fg-blue-text); font-size: 14px; }
.fg-ui:not(#fg) .pet-sos-chip { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 6px 10px; padding: 14px; border: 1px solid var(--fg-line); border-radius: 14px; }
.fg-ui:not(#fg) .pet-sos-chip strong, .fg-ui:not(#fg) .pet-sos-chip p { grid-column: 1 / -1; margin: 0; }
.fg-ui:not(#fg) .pet-sos-chip-value { font-size: 17px; letter-spacing: .04em; }
/* the tab row really steps aside while 가족 위치 is open (the base .consumer-tabs display:flex would win over [hidden]) */
.consumer-tabs.fg-tabs[hidden] { display: none; }
/* 가족 위치: the tab row stays hidden even where a :not(#fg) rule sets the tabs' display */
.consumer-section-panel:not(#fg) .consumer-tabs.fg-tabs[hidden], .consumer-section-panel[data-fg-sub="true"]:not(#fg) .consumer-tabs.fg-tabs { display: none; }

/* FAMILY-APP-NOTIFY-01: app notifications turned off — a quiet line and 「알림 설정 열기」. */
.fg-notify-note { display: grid; gap: 8px; margin: 8px 0; padding: 12px 14px; border-radius: 14px; background: var(--fg-sub, #f2f4f6); }
.fg-notify-note p { margin: 0; }

/* 마스터·소유자 10-27 「지금 이게 디자인이 맞아?」 (PC 1440, 내 위치 공유) and 「여백이 너무 많잖아」: on a PC every
   가족 지킴이 screen uses the panel's width — no narrow card with an empty right side, no width jumping from screen to
   screen. Forms put their fields in two columns; 내 위치 공유 is two columns (sharing · 잠시 멈추기 · 보내기 | who sees
   me · places); the 잠시 멈추기 choices are one size. Phones, folds and tablets keep their layout (min-width 1024px). */
@media (min-width: 1024px) {
  .fg-ui:not(#fg):not(#fg2) :is(.person-form[data-person-basic-form], .person-sos-form, .safecare-found, .pet-detail-section:has([data-pet-register-form])) { max-width: none; }
  .fg-ui:not(#fg):not(#fg2) :is(.person-sos-form, .safecare-found) .person-sos-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; align-items: start; }
  .fg-ui:not(#fg):not(#fg2) :is(.person-sos-form, .safecare-found) .person-sos-fields > :last-child { grid-column: auto; }
  .fg-ui:not(#fg):not(#fg2) .person-basic-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; align-items: start; }
  .fg-ui:not(#fg):not(#fg2) .person-basic-fields > :only-child { grid-column: 1 / -1; }
  .fg-ui:not(#fg) .pet-draft-body > .pet-form[data-pet-register-form] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 24px; align-items: start; }
  .fg-ui:not(#fg) .pet-draft-body > .pet-form[data-pet-register-form] > :not(.site-field) { grid-column: 1 / -1; }
  .fg-ui:not(#fg) .family-loc-me-view { max-width: none; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 24px; row-gap: 16px; align-items: start; }
  .fg-ui:not(#fg) .family-loc-me-view > .family-loc-view-head { grid-column: 1 / -1; }
  .fg-ui:not(#fg) .family-loc-me-view { grid-auto-rows: min-content; }
  .fg-ui:not(#fg) .family-loc-me-view > .family-loc-sharing { grid-column: 1; grid-row: span 6; align-self: start; margin: 0; }
  .fg-ui:not(#fg) .family-loc-me-view > :not(.family-loc-view-head):not(.family-loc-sharing) { margin-top: 0; }
  .fg-ui:not(#fg) .family-loc-me-view > :not(.family-loc-view-head):not(.family-loc-sharing) { grid-column: 2; }
  .fg-ui:not(#fg) .family-loc-me-view .family-loc-chips-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 8px; }
  .fg-ui:not(#fg) .family-loc-me-view .family-loc-chips-row > .family-loc-button.family-loc-chip-button { width: 100%; min-height: 44px; height: 44px; justify-content: center; }
  .fg-ui:not(#fg) :is(.family-loc-settings, .family-loc-seg) { max-width: none; }
  .fg-ui:not(#fg):not(#fg2) .family-loc-invite { max-width: none; }
}

/* P0 10-27 (2번 S24 3588329): the 「내 아이」 tab keeps 지역정보's scope for 2번's colours and chips, but not the
   full-screen workspace box (.consumer-workspace: inset·z-index·overflow-y:auto·padding) — the tab scrolls with the page.
   「아이 오늘 동선 보기」 sits under 2번's card at the card's width. */
body.chat-home-page .consumer-workspace.fg-my-child-scope,
.fg-ui .consumer-workspace.fg-my-child-scope {
  position: static; inset: auto; z-index: auto; display: block; height: auto; min-height: 0; max-height: none;
  overflow: visible; overscroll-behavior: auto; padding: 0; background: transparent;
}
.fg-ui .fg-my-child-route { display: flex; width: 100%; justify-content: center; margin: 12px 0 0; min-height: 48px; }
/* 소유자 10-28 S26 내 아이 빈 화면 「박스가 두 줄」: 지역정보's workspace rules (two ids) still laid their grey background and
   20px side padding inside the 가족 지킴이 card, a box inside a box and a narrow card. Out-ranked here; the empty card's
   title breaks between words and the three 급식·알레르기·학사일정 marks sit in one even row. */
body.chat-home-page .consumer-workspace.fg-my-child-scope[data-workspace="life"]:not(#ri):not(#ri-02):not(#fg),
.fg-ui .consumer-workspace.fg-my-child-scope[data-workspace="life"]:not(#ri):not(#ri-02):not(#fg) { padding: 0; background: transparent; }
.fg-my-child-scope[data-workspace="life"]:not(#ri):not(#ri-03):not(#mc3):not(#fg) .lotbi-mychild-empty h4 { word-break: keep-all; overflow-wrap: anywhere; text-wrap: balance; }
.fg-my-child-scope[data-workspace="life"]:not(#ri):not(#ri-03):not(#mc3):not(#fg) .lotbi-mychild-empty .lotbi-mychild-perks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; width: 100%; margin: 0; padding: 0; justify-content: stretch; }
.fg-my-child-scope[data-workspace="life"]:not(#ri):not(#ri-03):not(#mc3):not(#fg) .lotbi-mychild-empty .lotbi-mychild-perks li { flex-direction: column; justify-content: center; gap: 4px; min-width: 0; margin: 0; height: auto; min-height: 64px; padding: 10px 4px; font-size: 14px; line-height: 18px; text-align: center; word-break: keep-all; }
/* 2단계 10-28: 「내 아이」 → 「가족 지킴이에 등록돼 있어요」 marks that person's card for a moment. */
.fg-ui [data-person-card][data-person-focus] { outline: 2px solid var(--fg-blue, #2563eb); outline-offset: 2px; }

/* 마스터 10-29 걷기 5·6: the place search field takes the row, 찾기 stays its own size; the picked day is filled. */
.fg-ui:not(#fg) .family-loc-search-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.fg-ui:not(#fg) .family-loc-search-row > .family-loc-button { padding: 0 18px; white-space: nowrap; }
.fg-ui:not(#fg) .family-loc-place-finder-note { margin: 6px 2px 0; }
.fg-ui:not(#fg) .family-loc-chips-row > .family-loc-button.family-loc-chip-button[aria-pressed="true"] { background: var(--fg-text); color: var(--fg-surface); }

/* 마스터 10-29 걷기 10: 아이 오늘 동선 보기 belongs to the child screen, not to 아이 추가·고치기. */
.fg-my-child:has(.lotbi-mychild:not([data-my-child-view="home"])) > .fg-my-child-route { display: none; }
/* 애플 걷기 10-29: with no school saved yet the home view is the 학교 추가 screen itself -- no 동선 button there either. */
.fg-my-child:has(.lotbi-mychild-empty) > .fg-my-child-route { display: none; }

/* 애플 걷기 10-29: on an iPhone web view (759px) a sheet's main button sat 15px below the scroll window. It stays
   pinned to the bottom of the sheet's scroll area. */
.fl2-sheet .lotbi-sheet-body [data-family-connect-next],
.fl2-sheet .lotbi-sheet-body [data-family-child-foot],
.fl2-sheet .lotbi-sheet-body [data-family-child-approve] {
  position: sticky; bottom: 0; z-index: 1;
  box-shadow: 0 10px 0 0 var(--fg-surface), 0 -12px 16px -6px var(--fg-surface);
}

/* 6번 퀀텀2 10-30: with the keyboard up, the pinned [다음] and its white fade covered the lower half of the name field
   right above it. The field keeps clear of the button's fade, and scrolling to it leaves room for the button. */
.fl2-sheet .lotbi-sheet-body .fl2-make > .fl2-link-field { margin-bottom: 24px; scroll-margin-bottom: 88px; }

/* 소유자 기준 9 (10-29): 1·2·3 동그라미 그림은 유치해 보여 -- 단계 번호는 글자 「1.」로. */
.fg-ui:not(#fg) .fl2-steps em { display: block; width: auto; height: auto; border-radius: 0; background: none; color: var(--fg-text); font-size: 14px; font-weight: 700; }
.fg-ui:not(#fg) .fl2-steps em::after { content: '.'; }
.fg-ui:not(#fg) .fl2-steps > div { grid-template-columns: 18px 1fr; }

/* 소유자 10-29 「체크 칸을 위로 올리든 해야 알지」: the 아이 휴대폰 동의 check, its error line and [QR 만들기] are one
   block pinned to the sheet's bottom (above), so the check is always right over the button. */
.fl2-sheet .lotbi-sheet-body [data-family-child-foot] { display: grid; gap: 10px; padding-top: 8px; background: var(--fg-surface); }
.fl2-sheet .lotbi-sheet-body [data-family-child-foot] .safecare-renewal-error { margin: 0; }

/* 마스터 10-29 (S26 360폭): 사람 · 내 아이 · 반려동물 · 접근경보 with an icon beside each did not fit 82px a tab, and
   반려동물·접근경보 ran into the next icon. On a narrow phone the icon sits above its name. */
@media (max-width: 400px) {
  .fg-tabs:not(#fg) > button { flex-direction: column; gap: 2px; padding: 6px 2px; font-size: 13.5px; line-height: 18px; min-width: 0; white-space: nowrap; }
}

/* 소유자 S26 10-29: 장소 추가 = one tap on 집·학교·학원·기타 (saved at where the person is / was). */
.fg-ui:not(#fg) .family-loc-place-kinds { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.fg-ui:not(#fg) .family-loc-place-kinds > .family-loc-button.family-loc-chip-button { width: 100%; min-height: 48px; height: 48px; justify-content: center; font-size: 15px; font-weight: 700; }
.fg-ui:not(#fg) .family-loc-record-list > .family-loc-place-kinds { margin: 0 0 8px; }
.fg-ui:not(#fg) .family-loc-record-save { display: inline-flex; align-items: center; min-height: 36px; margin-top: 6px; padding: 0 12px; border: 1px solid var(--fg-line-strong); border-radius: 8px; background: var(--fg-surface); color: var(--fg-blue-text); font-size: 14px; font-weight: 700; }
.fg-ui:not(#fg) .family-loc-text-link { display: inline-flex; align-items: center; min-height: 40px; padding: 0; border: 0; background: none; color: var(--fg-blue-text); font-size: 14px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
/* 소유자 S26 10-29: the map's own NAVER logo rose over the sticky 「은율이」 header while scrolling -- the map is its own layer. */
.fg-ui:not(#fg) .family-loc-map { isolation: isolate; z-index: 0; }
.fg-ui:not(#fg) .family-loc-record-more { align-self: flex-start; display: inline-flex; align-items: center; min-height: 40px; margin: 4px 0; padding: 0 14px; border: 1px solid var(--fg-line-strong); border-radius: 9px; background: var(--fg-surface); color: var(--fg-text); font-size: 14px; font-weight: 600; }

/* 소유자 S26 10-29: the permission warning ran off the right edge in one line; [다음] floated over 「만 14세 미만 자녀」 --
   the warning wraps, and the sheet's pinned button is a full-width footer. */
.fg-ui:not(#fg) .family-loc-why { flex-wrap: wrap; min-width: 0; white-space: normal; overflow-wrap: anywhere; }
.fg-ui:not(#fg) .family-loc-why > * { min-width: 0; white-space: normal; }
.fl2-sheet .lotbi-sheet-body [data-family-connect-next] { width: 100%; justify-content: center; margin-top: 12px; }
.fg-ui:not(#fg) .family-loc-avatar[data-photo] { overflow: hidden; padding: 0; background: var(--fg-line) !important; }
.fg-ui:not(#fg) .family-loc-avatar-photo { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; display: block; }
.family-map-pin-face { overflow: hidden; }
.family-map-pin-photo { width: 100%; height: 100%; object-fit: cover; display: block; }
/* 소유자 S26 10-29: a phone linked with a name only gets its own small card on 사람. */
.person-card.person-card-linked { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 14px; align-items: start; }
.person-card-linked-body { display: grid; gap: 6px; min-width: 0; }
.person-card-linked-name { font-size: 18px; font-weight: 700; }
.person-card-linked-meta { font-size: 14px; color: var(--fg-text-2, #5B6472); }
/* 6번 S26 10-29: an opened place row lines up at the top (its 도착/출발 switches are inside). */
.fg-ui:not(#fg) .family-loc-place-row[data-open] { align-items: flex-start; }
