/* Family records are isolated from the published caregiver toolkit. */
.family-record-app{--family-ink:#19333c;--family-teal:#006b72;--family-line:#c9d9dc;--family-muted:#49616b;color:var(--family-ink);font:inherit;overflow-wrap:anywhere}
.family-record-app *, .family-print-preview *, .family-print-area *{box-sizing:border-box}
.family-record-app #family-record-main{max-width:940px;margin:0 auto;padding:20px 0 56px;min-width:0}
.family-record-app .family-record-nav{display:flex;flex-wrap:wrap;gap:4px 26px;padding:10px 0 18px;margin-bottom:24px;border-bottom:1px solid var(--family-line)}
.family-record-app .family-record-nav a{display:inline-flex;align-items:center;min-height:44px;font-size:17px;font-weight:600;text-underline-offset:4px}
.family-record-app .family-record-nav a[aria-current]{text-decoration-thickness:2px}
.family-record-app .family-record-heading h1{font:600 clamp(32px,4vw,46px)/1.17 'Source Sans 3',Arial,sans-serif;margin:12px 0 22px;color:var(--family-ink);letter-spacing:-.02em}
.family-record-app .family-record-heading>p{font-size:21px;line-height:1.55;margin-bottom:24px}
.family-record-app :is(.family-privacy,.family-notice){padding:18px 20px;margin:22px 0;border-left:3px solid var(--family-teal);background:#edf5f4;font-size:17px;line-height:1.65}
.family-record-app .family-small{font-size:15px;line-height:1.6;color:var(--family-muted)}
.family-record-app .family-tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 40px;margin-top:34px}
.family-record-app .family-tool-card{border-top:2px solid var(--family-teal);padding:22px 0 0;min-width:0}
.family-record-app .family-tool-card h2{font-size:27px;line-height:1.25;margin:0 0 16px}
.family-record-app .family-tool-card h2 a{text-decoration:none;color:var(--family-ink)}
.family-record-app .family-tool-card>p{font-size:18px;line-height:1.6}
.family-record-app :is(.family-form-panel,.family-history-panel){padding:26px 0;margin:28px 0;border-top:1px solid var(--family-line);min-width:0}
.family-record-app :is(.family-form-panel,.family-history-panel)>h2{font-size:30px;line-height:1.25;margin:0 0 18px}
.family-record-app .family-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px;margin:24px 0}
.family-record-app .family-field{min-width:0;margin:18px 0}
.family-record-app .family-meta-grid .family-field{margin:0}
.family-record-app label{display:block;font-size:17px;font-weight:600;line-height:1.5;margin-bottom:7px}
.family-record-app :is(input,select,textarea){display:block;width:100%;max-width:100%;min-width:0;min-height:46px;padding:11px;border:1px solid #7f969b;border-radius:5px;background:#fff;color:var(--family-ink);font:inherit;font-size:17px;line-height:1.5}
.family-record-app input[readonly]{background:#f0f5f5}
.family-record-app textarea{min-height:130px;resize:vertical;white-space:pre-wrap}
.family-record-app select{white-space:normal}
.family-record-app input[type=file]{overflow:hidden;padding:10px;font-size:15px}
.family-record-app .family-field-page{min-width:0;margin:28px 0;padding:18px 22px;border:1px solid var(--family-line);border-radius:6px}
.family-record-app .family-field-page legend{max-width:100%;font-size:23px;font-weight:600;line-height:1.3;padding:0 8px;color:var(--family-ink);white-space:normal}
.family-record-app .family-field-page>.family-small{margin-top:8px}
.family-record-app .family-character-count{font-size:14px;line-height:1.5;margin:6px 0 0;color:var(--family-muted)}
.family-record-app .family-character-count.over-limit{color:#8f251f;font-weight:600}
.family-record-app .family-buttons,.family-print-preview .family-buttons{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}
.family-record-app :is(button,.family-button),.family-print-preview button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;max-width:100%;padding:10px 16px;border:1px solid #006b72;border-radius:5px;background:#006b72;color:#fff;font:inherit;font-size:17px;line-height:1.4;text-align:center;text-decoration:none;white-space:normal;cursor:pointer}
.family-record-app :is(button.secondary,.family-button.secondary),.family-print-preview button.secondary{background:#fff;color:#006b72}
.family-record-app button.danger{background:#fff;color:#842d37;border-color:#842d37}
.family-record-app button:disabled{opacity:.55;cursor:default}
.family-record-app :is(a,button,input,select,textarea,summary):focus-visible,.family-print-preview :is(button,[tabindex]):focus-visible{outline:3px solid #b06b2b;outline-offset:3px}
.family-record-app .family-help{border-top:1px solid var(--family-line);border-bottom:1px solid var(--family-line);margin:24px 0;padding:12px 0}
.family-record-app .family-help summary{min-height:44px;padding:8px 0;cursor:pointer;font-weight:600}
.family-record-app .family-help p{margin:12px 0}
.family-record-app .family-filter-dates{display:flex;flex-wrap:wrap;gap:16px;align-items:end}
.family-record-app .family-filter-dates>div{flex:1;min-width:150px}
.family-record-app .family-saved-entry{padding:22px 0;margin:22px 0;border-top:1px solid var(--family-line);min-width:0}
.family-record-app .family-saved-entry h3{font-size:24px;line-height:1.3;margin:0 0 12px}
.family-record-app .family-saved-entry dl{display:grid;grid-template-columns:minmax(130px,1fr) 2fr;gap:10px 22px;font-size:17px;line-height:1.65}
.family-record-app .family-saved-entry dt{font-weight:600;min-width:0}
.family-record-app .family-saved-entry dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}
.family-record-app .family-saved-entry:focus{outline:2px solid var(--family-teal);outline-offset:4px}
.family-record-app .family-saved-list{padding-left:22px}
.family-record-app .family-saved-list li{margin:18px 0}
.family-record-app .family-saved-list span{display:block;font-size:15px;color:var(--family-muted);margin-top:5px}
.family-record-app .family-error:not(:empty){background:#fff0f1;color:#842d37;border-left:3px solid #92313e;padding:15px;margin:18px 0}
.family-record-app .family-error:empty{display:none}
.family-record-app .family-empty{background:#edf5f4;padding:20px}
.family-record-app [hidden]{display:none!important}
.family-record-app #toast{position:fixed;bottom:78px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 28px);width:max-content;background:#19333c;color:#fff;padding:14px 20px;border-radius:6px;z-index:90;font-size:16px;line-height:1.5}
.family-record-app #toast:empty{display:none}
/* Fixed A4 sheets are measured offscreen before showing the print preview. */
.family-print-area{display:none}
.family-print-area.preparing{display:block!important;position:absolute;left:-15000px;top:0;visibility:hidden}
.family-print-sheet{width:210mm;height:297mm;padding:12mm;position:relative;display:flex;flex-direction:column;background:#fff;color:#111;font:10.5pt/1.4 Arial,sans-serif;overflow:visible;box-sizing:border-box}
.family-sheet-header{flex:none;border-bottom:.3mm solid #888;padding-bottom:3mm;margin-bottom:4mm}
.family-print-sheet h1{font:700 18pt/1.18 Arial,sans-serif;margin:0 0 3mm;overflow-wrap:anywhere}
.family-sheet-header p{font:9pt/1.4 Arial,sans-serif;margin:0;overflow-wrap:anywhere}
.family-sheet-body{flex:1;min-height:0;overflow:visible}
.family-sheet-body h2{font:700 14pt/1.3 Arial,sans-serif;margin:4mm 0 2mm}
.family-sheet-body h3{font:700 11pt/1.3 Arial,sans-serif;margin:3mm 0 1.5mm;border-top:.3mm solid #777;padding-top:3mm}
.family-sheet-body p{font:10pt/1.4 Arial,sans-serif;margin:0 0 3mm;overflow-wrap:anywhere}
.family-sheet-body :is(.family-print-note,.family-print-meta,.family-print-continuation){font-size:9pt}
.family-print-field{display:grid;grid-template-columns:34% 66%;border-bottom:.2mm solid #bbb;padding:2mm 0;font:10pt/1.4 Arial,sans-serif;overflow-wrap:anywhere}
.family-print-field strong{padding-right:4mm;min-width:0}
.family-print-field span{white-space:pre-wrap;min-width:0}
.family-sheet-footer{flex:none;display:flex;align-items:end;justify-content:space-between;gap:2mm;border-top:.2mm solid #bbb;margin-top:4mm;padding-top:2mm;font:7pt/1.2 Arial,sans-serif;color:#333}
.family-print-preview{width:min(920px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:92vh;padding:0;border:1px solid #c9d9dc;border-radius:8px;background:#edf3f3;color:#19333c;overflow:hidden;font-family:'Source Sans 3',Arial,sans-serif}
.family-print-preview[open]{display:flex;flex-direction:column}
.family-print-preview::backdrop{background:rgba(12,31,40,.55)}
.family-print-controls{flex:none;padding:20px;background:#fff;border-bottom:1px solid #c9d9dc}
.family-print-controls h2{font-size:28px;line-height:1.2;margin:0 0 12px}
.family-print-controls p{font-size:17px;line-height:1.5;margin:0 0 12px}
.family-print-pages{min-height:0;flex:1;padding:18px;overflow:auto;max-height:58vh}
.family-preview-page{position:relative;margin:0 auto 20px}
.family-preview-page .family-print-sheet{position:absolute;left:0;top:0;margin:0;transform-origin:top left;box-shadow:0 2px 8px #bcc8cb}
@media(max-width:760px){
 .family-record-app #family-record-main{padding-top:8px}
 .family-record-app .family-record-nav{gap:3px 18px;margin-bottom:18px}
 .family-record-app .family-record-heading>p{font-size:20px}
 .family-record-app .family-tool-grid,.family-record-app .family-meta-grid{grid-template-columns:1fr}
 .family-record-app .family-tool-card h2{font-size:25px}
 .family-record-app .family-field-page{padding:15px 13px}
 .family-record-app .family-field-page legend{font-size:21px}
 .family-record-app .family-saved-entry dl{display:block}
 .family-record-app .family-saved-entry dt{margin-top:16px}
 .family-record-app .family-saved-entry dd{margin-top:4px}
 .family-record-app .family-buttons>*{width:100%}
 .family-record-app .family-filter-dates>div{min-width:120px}
 .family-record-app :is(.family-privacy,.family-notice){padding:16px}
 .family-print-controls{padding:16px}
 .family-print-preview .family-buttons{gap:8px}
 .family-print-preview button{width:100%}
 .family-print-pages{max-height:48vh;padding:12px}
}
@media(prefers-reduced-motion:reduce){.family-record-app *{scroll-behavior:auto!important}}
@media print{
 html,body.family-printing{margin:0!important;padding:0!important;background:#fff!important}
 body.family-printing>*{display:none!important}
 body.family-printing>.family-print-area{display:block!important;position:static!important;visibility:visible!important}
 .family-print-sheet{break-after:page;page-break-after:always}
 .family-print-sheet:last-child{break-after:auto;page-break-after:auto}
 .family-print-preview{display:none!important}
}
