/* Saved sources use the same page rhythm, symbols and detail sheets as the catalogue. */
.page-intro.plan-hero { position:relative; isolation:isolate; min-height:184px; margin-bottom:22px; padding-bottom:18px; }
.plan-hero::after { content:""; position:absolute; z-index:-1; pointer-events:none; right:-20px; top:-30px; width:340px; height:245px; background:url('family-archive-hero.png') center / contain no-repeat; opacity:.75; }
.plan-hero h1 { max-width:calc(100% - 280px); }
.plan-hero > p { max-width:780px; font-size:.95rem; line-height:1.65; margin:12px 0 0; }
.plan-hero-motto { max-width:240px; margin-top:14px; padding-left:14px; border-left:1px solid var(--border); color:var(--accent); font:italic .94rem/1.35 Georgia,serif; }
.plan-hero-motto small { display:block; margin-top:7px; font:.52rem/1.4 'Segoe UI',sans-serif; letter-spacing:.2em; }
.source-plan.plan-workspace { grid-template-columns:minmax(0,1fr) 340px; gap:22px; margin-bottom:36px; }
.plan-workspace .panel { border-radius:11px; box-shadow:0 5px 22px #203c2404; }
.plan-workspace .plan-query { grid-template-columns:minmax(0,1fr) 235px; gap:18px 22px; padding:22px; }
.plan-section-heading { display:flex; align-items:center; gap:17px; min-width:0; }
.plan-section-icon { display:grid; place-items:center; flex-shrink:0; width:52px; height:52px; color:var(--accent); background:var(--accent-weak); border-radius:50%; }
.plan-section-heading > div { min-width:0; }
.plan-section-heading h2 { font:500 1.5rem/1.15 Georgia,serif; letter-spacing:-.03em; margin:0 0 5px; }
.plan-section-heading p { margin:0; color:var(--muted); font-size:.74rem; line-height:1.5; }
.plan-query > .plan-section-heading { grid-column:1 / -1; margin-bottom:2px; }
.plan-query .person-name-fields,.plan-query .person-detail-fields { gap:16px; }
.plan-query .person-field label { margin-bottom:6px; font-size:.74rem; }
.plan-query .person-field input { height:40px; padding:8px 12px; font-size:.8rem; border-radius:5px; }
.plan-query .person-name-hint { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.plan-query .person-search-details { margin:16px 0 0; border-top:1px solid var(--border); }
.plan-query .person-search-details > summary { padding:12px 0 0; background:none; min-height:44px; font-size:.75rem; }
.plan-query .person-search-details > summary small { font-size:.69rem; line-height:1.5; font-weight:400; }
.plan-query .person-detail-fields { padding:14px 0 0; background:none; margin-bottom:0; }
.plan-query .person-field .search-hint { margin:7px 0 0; font-size:.67rem; }
.plan-query-action { align-self:stretch; border-left:1px solid var(--border); padding-left:22px; padding-top:23px; }
.plan-query-action .btn { display:flex; width:100%; padding:10px 12px; min-height:44px; gap:10px; font-size:.78rem; }
.plan-query-action p { margin:15px 0 0; color:var(--muted); font-size:.68rem; line-height:1.55; }
.plan-list-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; margin:26px 0 15px; }
.plan-list-heading .plan-section-icon { width:44px; height:44px; }
.plan-list-heading h2 { font-size:1.4rem; }
.plan-list-heading #plan-status { min-height:1.5em; margin:0; font-size:.72rem; }
.plan-sort { display:flex; align-items:center; gap:9px; font-size:.7rem; color:var(--muted); }
.plan-sort select { font:inherit; color:var(--text); height:36px; max-width:195px; padding:5px 25px 5px 10px; border-radius:5px; }
.plan-workspace .plan-item { position:relative; padding:18px 18px 18px 20px; margin-bottom:9px; }
.plan-row-head { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,1fr) 134px 34px; gap:18px; align-items:center; }
.plan-row-identity { display:grid; grid-template-columns:54px minmax(0,1fr); align-items:center; gap:16px; min-width:0; }
.plan-row-emblem { display:grid; place-items:center; width:54px; height:58px; border-radius:8px; background:var(--accent-weak); color:var(--accent); }
.plan-row-emblem svg { width:29px; height:29px; }
.plan-workspace .plan-item .plan-category { font-size:.54rem; line-height:1.5; letter-spacing:.12em; margin:0 0 6px; }
.plan-workspace .plan-item h3 { font:600 .98rem/1.25 Georgia,serif; margin:0 0 8px; overflow-wrap:anywhere; }
.plan-row-identity .country-badge { font-size:.69rem; }
.plan-workspace .plan-row-description { font-size:.7rem; line-height:1.5; margin:0 0 7px; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
.plan-row-tags { display:flex; flex-wrap:wrap; gap:5px; }
.plan-row-tags > span { border-radius:20px; background:var(--accent-weak); color:var(--muted); font-size:.61rem; line-height:1.4; padding:3px 8px; }
.plan-row-actions { border-left:1px solid var(--border); padding-left:16px; display:grid; gap:8px; }
.plan-detail-toggle { display:flex; align-items:center; justify-content:flex-start; gap:7px; min-height:28px; padding:2px 0; background:none; border:0; font-size:.7rem; color:var(--accent); text-align:left; cursor:pointer; }
.plan-detail-toggle svg { width:15px; height:15px; }
.plan-detail-toggle[aria-expanded=true] svg { transform:rotate(180deg); }
.plan-row-actions .btn { font-size:.68rem; min-height:38px; padding:7px 9px; gap:8px; white-space:nowrap; }
.plan-workspace .plan-remove { min-width:34px; min-height:36px; width:34px; padding:0; border:1px solid var(--border); border-radius:5px; font-size:1.2rem; color:var(--text); align-self:end; }
.plan-remove:hover { color:#a32922; border-color:currentColor; }
.plan-detail-body { margin:18px -18px -18px -20px; border-top:1px solid var(--border); }
.plan-detail-feedback { padding:20px; }
.plan-detail-feedback .btn { margin-top:12px; }
.plan-item .portal-sheet { border-top:0; margin:0; padding:0; }
.plan-workspace .plan-export { padding:22px; top:98px; background:linear-gradient(150deg,var(--card),color-mix(in srgb,var(--accent-weak) 62%,var(--card))); overflow:hidden; }
.plan-export-status { display:flex; align-items:center; gap:12px; margin-bottom:15px; }
.plan-export-status > span { display:grid; place-items:center; width:27px; height:27px; flex-shrink:0; color:var(--accent); background:var(--accent-weak); border-radius:50%; }
.plan-export-status.is-ready > span { background:var(--accent); color:var(--card); }
.plan-export-status p { font-size:.56rem; letter-spacing:.18em; color:var(--accent); line-height:1.5; margin:0; }
.plan-workspace .plan-export h2 { font:500 1.7rem/1.13 Georgia,serif; letter-spacing:-.04em; margin:0 0 4px; }
.plan-workspace .plan-total { display:flex; align-items:center; gap:12px; padding-bottom:8px; margin:0 0 11px; border-bottom:1px solid var(--border); }
.plan-workspace .plan-total strong { font:500 3.6rem/1.15 Georgia,serif; letter-spacing:-.04em; margin:0; }
.plan-total > span { font-size:.75rem; }
.plan-workspace .plan-export > .btn { justify-content:center; min-height:42px; margin-bottom:9px; padding:9px 8px; gap:10px; font-size:.75rem; }
.plan-workspace .plan-export #plan-json { margin-bottom:20px; }
.plan-file-note { display:grid; grid-template-columns:42px minmax(0,1fr); gap:13px; margin-bottom:17px; }
.plan-file-note .plan-section-icon { width:42px; height:42px; }
.plan-file-note h3 { margin:0 0 4px; font:600 .74rem/1.3 'Segoe UI',sans-serif; }
.plan-file-note p { margin:0; font-size:.71rem; line-height:1.55; color:var(--muted); }
.plan-workspace .plan-help { border:1px solid var(--border); border-radius:6px; padding:0; margin:22px 0 12px; }
.plan-help summary { display:flex; align-items:center; list-style:none; gap:10px; padding:12px; font-size:.73rem; min-height:44px; }
.plan-help summary::-webkit-details-marker { display:none; }
.plan-help summary > svg { flex-shrink:0; color:var(--accent); }
.plan-help summary > svg:last-child { margin-left:auto; }
.plan-help[open] summary > svg:last-child { transform:rotate(180deg); }
.plan-workspace .plan-help ol { padding:0 18px 0 30px; }
.plan-help > p { padding:0 14px 14px; margin:0; color:var(--muted); font-size:.7rem; line-height:1.6; }
.plan-workspace .plan-export > .text-button { display:flex; align-items:center; gap:10px; min-height:36px; font-size:.73rem; text-underline-offset:3px; }
.plan-export #plan-clear { color:#ac3434; }
.plan-workspace .plan-export > .text-button[hidden] { display:none; }
.plan-quote { position:relative; isolation:isolate; margin:18px -22px -22px; padding:25px 62px 25px 22px; min-height:118px; color:var(--muted); font:italic .85rem/1.6 Georgia,serif; }
.plan-quote::before { content:""; position:absolute; z-index:-1; pointer-events:none; width:135px; height:145px; right:-15px; bottom:-25px; opacity:.26; background:url('ancestry-branch.svg') center / contain no-repeat; }
.plan-quote::after { content:""; display:block; height:1px; width:34px; background:var(--accent); opacity:.45; margin-top:13px; }
.plan-workspace :is(button,a,summary,select):focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.plan-workspace [hidden] { display:none; }
:root[data-theme=dark] .plan-hero::after { opacity:.45; }
:root[data-theme=dark] .plan-export #plan-clear { color:#ffb2aa; }
@media (min-width:1350px) {
  .plan-hero-motto { position:absolute; right:290px; bottom:28px; max-width:175px; }
  .plan-hero > p { max-width:740px; }
}
@media (max-width:1200px) {
  .source-plan.plan-workspace { grid-template-columns:minmax(0,1fr) 290px; gap:18px; }
  .plan-workspace .plan-query { grid-template-columns:minmax(0,1fr); }
  .plan-query-action { display:flex; align-items:center; gap:20px; border-left:0; border-top:1px solid var(--border); padding:16px 0 0; }
  .plan-query-action .btn { width:auto; flex-shrink:0; }
  .plan-query-action p { margin:0; }
  .plan-row-head { grid-template-columns:minmax(0,1fr) 126px 34px; gap:12px; }
  .plan-row-copy { grid-column:1; grid-row:2; }
  .plan-row-actions { grid-column:2; grid-row:1 / 3; }
  .plan-remove { grid-column:3; grid-row:1 / 3; }
  .plan-hero h1 { max-width:calc(100% - 210px); }
  .plan-hero::after { width:230px; right:0; }
  .plan-hero > p { max-width:calc(100% - 170px); }
  .plan-hero-motto { display:none; }
}
@media (max-width:900px) {
  .source-plan.plan-workspace { grid-template-columns:minmax(0,1fr); }
  .plan-workspace .plan-export { position:static; max-width:none; }
  .plan-hero h1 { max-width:calc(100% - 150px); }
  .plan-hero::after { width:180px; height:200px; opacity:.55; }
  .plan-row-head { grid-template-columns:minmax(0,1fr) minmax(0,1fr) 130px 34px; }
  .plan-row-copy { grid-column:auto; grid-row:auto; }
  .plan-row-actions { grid-column:3; grid-row:1; }
  .plan-remove { grid-column:4; grid-row:1; }
  .plan-workspace .plan-export > .btn { max-width:430px; }
  .plan-quote { min-height:90px; }
}
@media (max-width:600px) {
  .page-intro.plan-hero { min-height:0; margin-bottom:20px; padding-bottom:0; }
  .plan-hero::after { display:none; }
  .plan-hero h1,.plan-hero > p { max-width:none; }
  .plan-hero > p { font-size:.84rem; }
  .plan-workspace .plan-query { padding:18px 16px; gap:16px; }
  .plan-section-heading { gap:12px; align-items:flex-start; }
  .plan-section-icon { width:42px; height:42px; }
  .plan-section-heading h2 { font-size:1.35rem; }
  .plan-section-heading p { font-size:.72rem; }
  .plan-query .person-name-fields { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .plan-query .person-field input { font-size:16px; }
  .plan-query .person-search-details > summary { font-size:.78rem; }
  .plan-query-action { display:grid; gap:10px; padding-top:14px; }
  .plan-query-action .btn { width:100%; }
  .plan-list-heading { margin:24px 0 15px; }
  .plan-sort { width:100%; justify-content:flex-end; }
  .plan-sort select { max-width:none; flex:1; }
  .plan-workspace .plan-item { padding:17px 15px; }
  .plan-row-head { grid-template-columns:minmax(0,1fr) 36px; gap:12px; }
  .plan-row-identity { grid-column:1; grid-row:1; grid-template-columns:42px minmax(0,1fr); gap:12px; }
  .plan-row-emblem { width:42px; height:48px; }
  .plan-workspace .plan-item .plan-category { font-size:.55rem; }
  .plan-workspace .plan-item h3 { font-size:1.05rem; }
  .plan-workspace .plan-remove { grid-column:2; grid-row:1; align-self:start; }
  .plan-row-copy { grid-column:1 / -1; grid-row:2; }
  .plan-workspace .plan-row-description { font-size:.77rem; }
  .plan-row-tags > span { font-size:.65rem; }
  .plan-row-actions { grid-column:1 / -1; grid-row:3; display:flex; justify-content:space-between; border-left:0; border-top:1px solid var(--border); padding:11px 0 0; }
  .plan-detail-toggle { min-height:40px; font-size:.76rem; }
  .plan-row-actions .btn { min-height:40px; font-size:.73rem; padding:9px 12px; }
  .plan-detail-body { margin:17px -15px -17px; }
  .plan-workspace .plan-export { padding:22px; }
  .plan-workspace .plan-empty { padding:26px 18px; }
  .plan-empty h2 { font-size:1.6rem; }
}
@media (prefers-reduced-motion:reduce) { .plan-workspace * { scroll-behavior:auto; transition:none; } }
