/* Compass Buddy uses the existing cream, navy, pink and mint publication palette. */
.buddy-launcher{position:fixed;right:20px;bottom:max(18px,env(safe-area-inset-bottom));z-index:800;display:flex;align-items:center;gap:9px;min-height:52px;padding:5px 16px 5px 6px;border:1px solid #d7ddd6;border-radius:30px;background:#fffdf9;color:#23364b;box-shadow:0 4px 18px #23364b18;text-decoration:none;font-size:14px;font-weight:600}
.buddy-launcher img{width:48px;height:48px;object-fit:contain}
.buddy-launcher:hover{border-color:#23364b;box-shadow:0 6px 20px #23364b25}
.buddy-label{display:block;font-size:14px;line-height:1.5;font-weight:600;color:#566573}
html.buddy-is-open{overflow:hidden}
.buddy-dialog{width:min(440px,calc(100vw - 28px));max-height:calc(100dvh - 40px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:hidden;padding:0;border:1px solid #d7ddd6;border-radius:20px;background:#fffdf9;color:#23364b;box-shadow:0 18px 60px #23364b35}
.buddy-dialog[open]{display:flex;flex-direction:column}
.buddy-dialog-content{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:20px;scroll-padding:16px}
.buddy-dialog::backdrop{background:#23364b55}
.buddy-dialog-top{display:flex;align-items:center;gap:12px;flex-shrink:0;padding:14px;border-bottom:1px solid #23364b25}
.buddy-dialog-top>img{width:72px;height:72px;object-fit:contain}
.buddy-dialog-top>div{flex:1;min-width:0}
.buddy-dialog h2{font:500 28px/1.15 Georgia,serif;letter-spacing:-.02em;margin:4px 0}
.buddy-dialog p{font-size:16px;line-height:1.6}
.buddy-close,.buddy-secondary,.buddy-examples button{font:inherit;min-height:44px;border:1px solid #d4ddd7;border-radius:9px;padding:10px 14px;background:white;color:#23364b;cursor:pointer;line-height:1.4}
.buddy-close{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex-shrink:0;min-width:84px;min-height:48px;font-size:14px;font-weight:650;padding:10px;touch-action:manipulation;white-space:nowrap}
.buddy-close>span{font-size:25px;line-height:1;font-weight:400}
.buddy-dialog-actions,.buddy-plan-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px;margin:16px 0 22px}
.buddy-dialog-actions>a{font-size:15px;min-height:44px;display:flex;align-items:center}
.buddy-search-field{display:flex;gap:8px;margin-top:8px}
.buddy-search-field input,.buddy-form input,.buddy-form select{font:inherit;font-size:16px;min-height:48px;border:1px solid #c8d3cc;border-radius:8px;padding:11px 12px;background:#fff;color:#23364b;min-width:0;width:100%}
.buddy-search-field button,.buddy-build{font:inherit;font-size:16px;font-weight:600;min-height:48px;line-height:1.4;padding:12px 18px;border:1px solid #23364b;background:#23364b;color:white;border-radius:9px;cursor:pointer;white-space:nowrap}
.buddy-search-field input{flex:1;width:0}
.buddy-search-field button:disabled,.buddy-build:disabled{opacity:.6;cursor:wait}
.buddy-dialog label,.buddy-form label{display:block;font-size:14px;font-weight:600;line-height:1.4;margin:0 0 7px}
.buddy-examples{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.buddy-examples button{font-size:14px;padding:9px 11px;background:#edf4ef}
.buddy-search-status{font-size:14px!important;color:#566573;line-height:1.6}
.compass-elevated .buddy-note,.buddy-note{font-size:14px!important;color:#566573;line-height:1.6;margin:12px 0}
.buddy-dialog-results{display:grid;gap:12px}
.buddy-resource{border:1px solid #d8dfd9;border-radius:13px;background:#fff;overflow:hidden;min-width:0}
.buddy-resource>a{display:flex;flex-direction:column;color:inherit;text-decoration:none;height:100%}
.buddy-resource img{display:block;width:100%;height:150px;object-fit:cover;background:#edf4ef}
.buddy-resource img.buddy-paper{object-fit:contain;padding:12px;background:#f5e7ed}
.buddy-resource-copy{padding:17px}
.buddy-resource .buddy-photo-credit{font-size:14px!important;line-height:1.5;margin:0;padding:0 17px 14px;color:#566573}
.buddy-photo-credit>a{display:inline;color:inherit;text-decoration:underline}
.compass-elevated .buddy-resource h3,.compass-elevated .buddy-resource h4,.buddy-resource h3,.buddy-resource h4{font:500 24px/1.2 Georgia,serif;letter-spacing:-.02em;margin:8px 0 10px;color:#23364b}
.buddy-resource p{font-size:16px;line-height:1.6;margin:0;color:#566573}
.buddy-resource:hover h3,.buddy-resource:hover h4{text-decoration:underline;text-underline-offset:4px}
.buddy-resource-compact>a{display:grid;grid-template-columns:84px minmax(0,1fr)}
.buddy-resource-compact:not(:has(img))>a{grid-template-columns:1fr}
.buddy-resource-compact img{height:100%;min-height:90px}
.buddy-resource-compact .buddy-resource-copy{padding:12px}
.buddy-resource-compact h3,.buddy-resource-compact h4{font-size:20px!important}.buddy-resource-compact p{font-size:14px}
.buddy-dialog-results>a{display:block;min-height:44px;padding:12px}
.compass-elevated .article.buddy-page{max-width:1060px}
.buddy-welcome{display:flex;align-items:center;gap:24px;margin:0 0 24px}
.buddy-welcome>img{width:122px;height:122px;object-fit:contain;flex-shrink:0}
.compass-elevated .buddy-welcome h1{font-size:clamp(34px,4vw,48px);line-height:1.1;margin:9px 0 12px}
.buddy-welcome p{font-size:17px;line-height:1.6;margin:0;color:#566573}
.buddy-form{padding:25px;border:1px solid #d4e1d9;border-radius:18px;background:#edf4ef}
.buddy-form-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 20px}
.buddy-form label>input,.buddy-form label>select{margin-top:7px}
.buddy-form-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:21px}
.buddy-build{background:#23364b}
.buddy-form-actions p{margin:0;font-size:14px!important;max-width:58ch;line-height:1.55;color:#566573}
.buddy-plan-status{font-size:16px;line-height:1.6;min-height:1.6em;margin:18px 0;color:#566573}
.buddy-plan{margin:26px 0 38px;scroll-margin-top:22px}
.buddy-plan[hidden]{display:none!important}
.buddy-plan-heading{background:#f4d5df;border-radius:14px;padding:23px;margin-bottom:22px}
.compass-elevated .buddy-plan-heading h2{font-size:34px;margin:7px 0 12px}
.buddy-plan-heading p{margin:0;font-size:16px;line-height:1.6}
.buddy-plan-step{position:relative;border:1px solid #e0e3de;border-radius:14px;padding:24px 24px 24px 82px;background:white;margin:0 0 20px}
.buddy-step-number{position:absolute;left:23px;top:25px;font:500 26px/1 Georgia,serif;color:#7a5667}
.compass-elevated .buddy-plan-step>h3{font-size:29px;line-height:1.2;margin:0 0 17px}
.buddy-plan-step h4{font-size:21px;line-height:1.3;margin:0 0 12px;color:#23364b}
.buddy-plan-step p{font-size:16px;line-height:1.65;margin:12px 0}
.buddy-plan-facts{font-weight:600}
.buddy-plan-step .buddy-resource{max-width:550px}
.buddy-plan-step .buddy-resource>a{display:grid;grid-template-columns:145px minmax(0,1fr)}
.buddy-plan-step .buddy-resource img{height:100%;min-height:175px}
.buddy-reading{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:30px 0}
.buddy-reading>h3,.buddy-reading>p{grid-column:1/-1;margin:0!important}
.buddy-reading>a{min-height:44px}
.buddy-save{border-top:1px solid #d8dfd9;padding:22px 0;display:flex;gap:12px;flex-wrap:wrap}
.buddy-save>p{flex-basis:100%;font-size:16px;line-height:1.6;margin:0 0 6px}
.buddy-copy-link{font:inherit;flex-basis:100%;width:100%;min-height:48px;padding:10px;border:1px solid #c8d3cc;border-radius:8px}
.buddy-copy-link[hidden]{display:none!important}
.buddy-find{padding:28px 0;margin-top:20px;border-top:1px solid #e0e3de}
.compass-elevated .buddy-find h2{font-size:32px;margin:0 0 12px}
.buddy-find label{font-size:16px;display:block;margin:12px 0 0}
.buddy-full-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.buddy-full-results>.buddy-note{grid-column:1/-1}
.buddy-promo{display:flex;align-items:center;gap:18px;padding:20px 24px;border:1px solid #ebc7d3;border-radius:14px;background:#f9e8ee;margin:26px 0}
.buddy-promo>img{width:80px;height:80px;object-fit:contain;flex-shrink:0}
.buddy-promo>div{flex:1;min-width:0}
.compass-elevated .buddy-promo h2{font-size:27px;line-height:1.2;margin:0 0 8px}
.buddy-promo p{font-size:16px;line-height:1.6;margin:0}
.buddy-promo .button{flex-shrink:0}
.buddy-page~footer{margin-bottom:80px}
.buddy-page a:focus-visible,.buddy-page button:focus-visible,.buddy-page input:focus-visible,.buddy-page select:focus-visible,.buddy-dialog :is(a,button,input):focus-visible,.buddy-launcher:focus-visible{outline:3px solid #23364b;outline-offset:4px}
.buddy-dialog select:focus-visible,.buddy-extra-options summary:focus-visible{outline:3px solid #23364b;outline-offset:4px}
@media(max-width:760px){.buddy-form-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.buddy-welcome{gap:15px}.buddy-welcome>img{width:90px;height:90px}.buddy-form{padding:20px}.buddy-full-results{grid-template-columns:repeat(2,minmax(0,1fr))}.buddy-promo{flex-wrap:wrap;padding:18px}.buddy-promo .button{margin:0 0 0 98px}.buddy-launcher{right:12px;bottom:max(12px,env(safe-area-inset-bottom));padding-right:13px}}
@media(max-width:480px){.buddy-welcome{align-items:flex-start;gap:12px}.buddy-welcome>img{width:70px;height:70px}.compass-elevated .buddy-welcome h1{font-size:33px}.buddy-form-fields{grid-template-columns:1fr}.buddy-build{width:100%}.buddy-form-actions{gap:12px}.buddy-plan-step{padding:20px}.buddy-step-number{position:static;display:block;margin-bottom:12px}.buddy-plan-step .buddy-resource>a{grid-template-columns:1fr}.buddy-plan-step .buddy-resource img{height:200px}.buddy-reading,.buddy-full-results{grid-template-columns:1fr}.buddy-dialog-content{padding:17px}.buddy-dialog-top>img{width:60px;height:60px}.buddy-dialog h2{font-size:25px}.buddy-promo{gap:12px}.buddy-promo>img{width:65px;height:65px}.buddy-promo .button{margin:0;width:100%}.buddy-launcher span{max-width:80px;line-height:1.3}.compass-elevated .buddy-plan-heading h2{font-size:29px}}
@media print{.site-header,.top,.skip,footer,.buddy-launcher,.buddy-dialog,.buddy-welcome,.buddy-form,.buddy-plan-status,.buddy-find,.buddy-save,.buddy-plan-actions button{display:none!important}.buddy-page,.buddy-plan{padding:0!important;max-width:none!important;margin:0!important}.buddy-plan-step,.buddy-resource{break-inside:avoid;box-shadow:none}.buddy-plan-heading{background:white;border-bottom:1px solid #23364b}.buddy-plan-step{padding:15px 15px 15px 65px}.buddy-plan img{max-height:120px}.buddy-plan a{color:#23364b;text-decoration:underline}}

/* The useful planner comes first; Buddy offers choices rather than chat. */
.compass-scrapbook .buddy-page .buddy-welcome{padding:18px 22px;margin:0 0 22px;gap:20px}
.compass-scrapbook .buddy-page .buddy-welcome>img{width:92px;height:92px}
.compass-scrapbook .buddy-page .buddy-welcome h1{font-size:clamp(32px,3.5vw,44px);letter-spacing:-.04em;margin:5px 0 10px}
.buddy-form-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.buddy-extra-options{margin-top:14px;border-top:1px solid #23364b25;padding-top:8px}
.buddy-extra-options summary{font:inherit;font-size:15px;font-weight:600;cursor:pointer;min-height:44px;padding:10px 0;line-height:1.6;color:#23364b}
.buddy-extra-options .buddy-form-fields{margin-top:12px}
.buddy-quick-plan{margin:20px 0 0}
.buddy-quick-fields{display:grid;grid-template-columns:1fr;gap:10px}
.buddy-quick-plan label{font-size:14px;margin:0}
.buddy-quick-plan :is(input,select){display:block;margin-top:6px;width:100%;min-width:0;font:inherit;font-size:16px;min-height:48px;padding:10px 12px;border:1px solid #c8d3cc;border-radius:10px;color:#23364b;background:#fff}
.buddy-quick-plan .buddy-build{width:100%;margin-top:18px;white-space:normal}
.buddy-quick-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:18px;padding-top:18px;border-top:1px solid #23364b25}
.buddy-quick-links a{display:flex;align-items:center;justify-content:center;min-height:48px;padding:10px;border:1px solid #23364b45;border-radius:12px;color:#23364b;background:#deeff0;text-decoration:none;font-size:15px;font-weight:600;line-height:1.4;text-align:center}
.buddy-quick-links a:nth-child(3n+2){background:#fce2ea}
.buddy-quick-links a:nth-child(3n){background:#e9efda}
.buddy-quick-links a:hover{border-color:#23364b;text-decoration:underline;text-underline-offset:3px}

/* Multiple ages and comparison cards stay roomy at narrow widths. */
.buddy-form-fields .buddy-ages{grid-column:1/-1}
.buddy-ages{display:flex;flex-wrap:wrap;gap:10px 18px;border:0;padding:0;margin:0 0 4px;min-width:0}
.buddy-ages legend{font-size:15px;font-weight:650;line-height:1.6;margin-bottom:10px;padding:0}
.buddy-form .buddy-ages label,.buddy-quick-plan .buddy-ages label{display:flex;align-items:center;gap:9px;font-size:15px;min-height:44px;margin:0;font-weight:500}
.buddy-form .buddy-ages input,.buddy-quick-plan .buddy-ages input{width:20px;height:20px;min-height:20px;flex-shrink:0;padding:0;margin:0;accent-color:#23364b}
.buddy-presets{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}
.buddy-presets :is(button,a){font:inherit;font-size:15px;font-weight:600;min-height:44px;padding:10px 15px;border:1px solid #23364b60;border-radius:24px;color:#23364b;background:#deeff0;cursor:pointer;text-decoration:none;line-height:1.5;white-space:normal}
.buddy-presets :nth-child(2){background:#fce2ea}.buddy-presets :nth-child(3){background:#e9efda}
.buddy-option-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:18px 0 28px}
.buddy-option{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:20px;border:1px solid #23364b55;border-radius:15px;background:#fffdf9;min-width:0;box-shadow:3px 3px 0 #deeff0}
.buddy-option h4{font-size:23px;line-height:1.25;margin:0;overflow-wrap:break-word}.buddy-option p{font-size:16px;line-height:1.65;margin:0}.buddy-option .buddy-match{font-size:14px;color:#536473}
.buddy-option>button{margin-top:auto}.buddy-option>button+button{margin-top:0}
.buddy-option .buddy-secondary[aria-pressed=true]{background:#23364b;color:#fff}
.buddy-options>h3{font-size:28px!important;line-height:1.2}.buddy-option>a{font-size:15px;line-height:1.6;min-height:44px;display:flex;align-items:center}
.buddy-empty{padding:24px;background:#e9efda;border:1px solid #23364b55;border-radius:15px;margin-bottom:24px}.buddy-empty>button,.buddy-empty>a{display:inline-flex;margin:6px 12px 6px 0;min-height:44px;align-items:center}
.buddy-resource>.compass-save{margin:0 18px 18px}.buddy-plan .buddy-resource-copy{min-width:0}.buddy-plan .buddy-resource h4{overflow-wrap:break-word}
.buddy-page :is(button,a,input,select,summary):focus-visible,.buddy-dialog :is(button,a,input,select):focus-visible{outline:3px solid #23364b;outline-offset:4px}
.buddy-build{white-space:normal}.buddy-dialog .buddy-presets{gap:8px}.buddy-dialog .buddy-presets>*{flex:1 1 40%;text-align:center;font-size:14px;padding:9px}
@media(max-width:760px){.buddy-option-grid{grid-template-columns:1fr}.buddy-ages{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}.buddy-ages legend{grid-column:1/-1}.buddy-option{gap:12px}.buddy-option h4{font-size:25px}.buddy-empty{padding:20px}}
@media(max-width:380px){.buddy-ages{grid-template-columns:1fr}.buddy-dialog .buddy-ages{grid-template-columns:1fr}.buddy-quick-links{grid-template-columns:1fr}}
@media print{.buddy-presets,.buddy-options,.buddy-empty button,.buddy-shortcuts{display:none!important}}
.buddy-shortcuts{margin:35px 0}
.compass-elevated .buddy-shortcuts h2{font-size:30px;line-height:1.2;margin:0 0 20px}
.buddy-shortcut-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.buddy-shortcut-grid a{display:flex;flex-direction:column;gap:9px;padding:22px;border:1px solid #23364b50;border-radius:15px;box-shadow:3px 3px 0 #23364b12;background:#deeff0;color:#23364b;text-decoration:none;min-width:0}
.buddy-shortcut-grid a:nth-child(3n+2){background:#fce2ea}
.buddy-shortcut-grid a:nth-child(3n){background:#e9efda}
.buddy-shortcut-grid strong{font-size:21px;line-height:1.25}
.buddy-shortcut-grid span{font-size:16px;line-height:1.55;color:#536473}
.buddy-shortcut-grid a:hover strong{text-decoration:underline;text-underline-offset:4px}
@media(max-width:760px){.compass-scrapbook .buddy-page .buddy-welcome{padding:17px;gap:14px}.compass-scrapbook .buddy-page .buddy-welcome>img{width:72px;height:72px}.buddy-shortcut-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.buddy-form-fields{grid-template-columns:1fr}.buddy-shortcut-grid{grid-template-columns:1fr}.compass-scrapbook .buddy-page .buddy-welcome h1{font-size:31px}.compass-scrapbook .buddy-page .buddy-welcome>img{width:64px;height:64px}.buddy-welcome .buddy-label{font-size:14px}.buddy-dialog .buddy-label{font-size:14px}.buddy-quick-links a{font-size:14px}.buddy-shortcut-grid a{padding:18px}}
@media print{.buddy-shortcuts,.buddy-extra-options,.buddy-page .buddy-note,.buddy-page .guide-credits{display:none!important}.buddy-plan .buddy-note{display:block!important}}
