:root {
  color-scheme: light;
  --forest: #173f35;
  --forest-deep: #11342c;
  --forest-soft: #245747;
  --mint: #d9e8dc;
  --sage: #ebf1e8;
  --cream: #f7f5ec;
  --paper: #fffefa;
  --ink: #17231e;
  --muted: #758079;
  --line: #e5e8df;
  --gold: #d4a64e;
  --clay: #bc6e4b;
  --shadow: 0 16px 48px rgba(28, 55, 44, .08);
  font-family: "DM Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-synthesis: none;
}
* { box-sizing: border-box; }
html { min-width: 320px; background: var(--cream); }
body { margin: 0; color: var(--ink); background: var(--cream); font-size: 14px; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, a:focus-visible { outline: 3px solid rgba(212,166,78,.55); outline-offset: 2px; }
[hidden] { display: none !important; }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--forest); font-weight: 800; font-size: 20px; letter-spacing: -.8px; text-decoration: none; }
.brand-accent { color: var(--clay); }
.brand-mark { position: relative; display: inline-flex; align-items: flex-end; gap: 2px; width: 24px; height: 24px; padding: 4px; border-radius: 8px 8px 8px 3px; background: var(--forest); overflow: hidden; }
.brand-mark span { display: block; width: 4px; border-radius: 3px 3px 0 0; background: #e9c475; }
.brand-mark span:nth-child(1) { height: 7px; }
.brand-mark span:nth-child(2) { height: 12px; }
.brand-mark span:nth-child(3) { height: 9px; }
.eyebrow { display: block; color: #698076; font-size: 10px; font-weight: 800; letter-spacing: 1.5px; line-height: 1.5; text-transform: uppercase; }
.eyebrow-light { color: #bdcfc0; }
.muted, .helper { color: var(--muted); line-height: 1.6; }
.helper { font-size: 12px; }
.optional { display: inline; color: #989f99; font-size: 11px; font-weight: 400; }
.button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: 9px; border: 1px solid transparent; border-radius: 10px; padding: 0 17px; font-weight: 700; font-size: 13px; transition: background .18s ease, transform .18s ease, box-shadow .18s ease; }
.button:hover { transform: translateY(-1px); }
.button-primary { color: white; background: var(--forest); box-shadow: 0 6px 16px rgba(23,63,53,.16); }
.button-primary:hover { background: #205244; box-shadow: 0 8px 18px rgba(23,63,53,.22); }
.button-secondary { color: var(--forest); background: #e4eee4; border-color: #dae6da; }
.button-outline { color: var(--forest); background: transparent; border-color: #cbd8cf; }
.button-cream { color: var(--forest-deep); background: var(--cream); }
.button-quiet { color: #6b7770; background: transparent; border-color: var(--line); }
.button-wide { width: 100%; }
.button-small { min-height: 36px; padding: 0 12px; font-size: 12px; }
.button-icon { font-size: 18px; }
.text-button { padding: 7px 0; border: 0; background: transparent; color: var(--forest-soft); font-size: 12px; font-weight: 700; }
.text-button:hover { color: var(--clay); }
.icon-button { display: inline-grid; width: 36px; height: 36px; place-items: center; border: 0; border-radius: 10px; color: #728078; background: transparent; font-size: 16px; }
.icon-button:hover { background: #f0f3ed; color: var(--forest); }

/* First connection */
.auth-screen { min-height: 100vh; display: grid; grid-template-columns: minmax(380px, .95fr) minmax(460px, 1.05fr); background: var(--paper); }
.auth-story { position: relative; display: flex; min-height: 100vh; flex-direction: column; justify-content: space-between; padding: 38px clamp(30px, 6vw, 86px) 28px; color: white; background: var(--forest); overflow: hidden; }
.auth-story::before { position: absolute; content: ""; width: 680px; height: 680px; right: -280px; bottom: -215px; border: 1px solid rgba(227,211,166,.22); border-radius: 50%; box-shadow: 0 0 0 60px rgba(227,211,166,.035), 0 0 0 120px rgba(227,211,166,.028); }
.brand-light { position: relative; z-index: 1; color: white; }
.brand-light .brand-mark { background: rgba(255,255,255,.11); border: 1px solid rgba(255,255,255,.2); }
.brand-light .brand-accent { color: #eac575; }
.auth-story-copy { position: relative; z-index: 1; max-width: 515px; margin-top: -40px; }
.auth-story-copy h1 { max-width: 480px; margin: 15px 0 18px; font-family: "Manrope", "DM Sans", sans-serif; font-size: clamp(38px, 5vw, 65px); line-height: 1.07; letter-spacing: -2.5px; font-weight: 700; }
.auth-story-copy > p { max-width: 430px; margin: 0; color: #d5e1d6; font-size: 16px; line-height: 1.75; }
.auth-quote { display: flex; align-items: flex-start; gap: 13px; max-width: 435px; margin-top: 34px; padding: 18px 19px; border: 1px solid rgba(255,255,255,.14); border-radius: 13px; background: rgba(255,255,255,.07); color: #dce7dd; font-size: 12px; line-height: 1.6; }
.quote-mark { color: #e8c56f; font-family: Georgia, serif; font-size: 35px; line-height: .8; }
.auth-story-foot { position: relative; z-index: 1; display: flex; justify-content: space-between; gap: 16px; color: #adbfaf; font-size: 10px; letter-spacing: .4px; }
.auth-story-foot span:first-child::before { content: "✳"; margin-right: 7px; color: #eac575; }
.story-orbit { position: absolute; border: 1px solid rgba(233,202,132,.17); border-radius: 50%; }
.orbit-one { width: 360px; height: 360px; top: 13%; right: -120px; }
.orbit-two { width: 240px; height: 240px; top: 19%; right: -58px; }
.auth-panel { display: flex; min-height: 100vh; flex-direction: column; justify-content: center; align-items: center; padding: 36px 48px 24px; }
.auth-card { width: min(100%, 430px); }
.auth-mobile-brand { display: none; margin-bottom: 48px; }
.auth-card h2 { margin: 13px 0 7px; font-family: "Manrope", sans-serif; font-size: 29px; letter-spacing: -1.2px; }
.auth-card > .muted { margin: 0 0 27px; font-size: 13px; }
.stack-form { display: grid; gap: 16px; }
.stack-form label, .modal-content label, .profile-form label { display: grid; gap: 7px; color: #3d4b43; font-size: 12px; font-weight: 700; }
input, select, textarea { width: 100%; min-height: 44px; border: 1px solid #dfe4dc; border-radius: 9px; padding: 11px 12px; color: var(--ink); background: white; font-size: 13px; font-weight: 400; transition: border .15s ease, box-shadow .15s ease; }
input::placeholder, textarea::placeholder { color: #a6ada6; }
input:focus, select:focus, textarea:focus { outline: none; border-color: #83a58d; box-shadow: 0 0 0 3px rgba(105,145,118,.13); }
input[readonly] { background: #f6f7f3; color: #77827b; }
textarea { min-height: 78px; resize: vertical; line-height: 1.55; }
.auth-switch { display: flex; justify-content: center; gap: 5px; margin-top: 21px; color: #737e76; font-size: 12px; }
.auth-switch .text-button { padding: 0; font-size: 12px; }
.privacy-note { display: flex; gap: 10px; margin-top: 28px; padding-top: 17px; border-top: 1px solid #ebeee8; color: #758077; font-size: 10px; line-height: 1.55; }
.lock-icon { color: var(--forest-soft); font-size: 18px; }
.auth-panel-foot { position: absolute; bottom: 21px; color: #9ba59d; font-size: 10px; }

/* Main app frame */
.application { min-height: 100vh; }
.sidebar { position: fixed; z-index: 20; inset: 0 auto 0 0; display: flex; width: 246px; flex-direction: column; justify-content: space-between; padding: 25px 16px 15px; color: #d4e1d5; background: var(--forest-deep); }
.sidebar .brand { margin: 0 0 24px 8px; color: white; }
.sidebar .brand-mark { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.18); }
.sidebar .brand-accent { color: #e5bd69; }
.workspace-tag { display: flex; width: calc(100% - 6px); align-items: center; gap: 8px; margin: 0 3px 25px; padding: 9px 10px; border: 1px solid rgba(255,255,255,.1); border-radius: 8px; color: #aabeb0; background: rgba(255,255,255,.055); font-size: 11px; }
.workspace-dot { width: 7px; height: 7px; border-radius: 50%; background: #c7a75b; box-shadow: 0 0 0 3px rgba(199,167,91,.13); }
.main-nav { display: grid; gap: 5px; }
.nav-caption { margin: 0 10px 7px; color: #799589; font-size: 9px; font-weight: 800; letter-spacing: 1.4px; }
.nav-caption-spaced { margin-top: 28px; }
.nav-item { position: relative; display: flex; width: 100%; min-height: 43px; align-items: center; gap: 11px; padding: 0 10px; border: 0; border-radius: 8px; color: #adc2b3; background: transparent; text-align: left; font-size: 12px; font-weight: 600; transition: color .15s ease, background .15s ease; }
.nav-item:hover { color: #f4f1e5; background: rgba(255,255,255,.07); }
.nav-item.active { color: white; background: rgba(242,244,230,.13); }
.nav-item.active::before { position: absolute; content: ""; top: 10px; bottom: 10px; left: -16px; width: 3px; border-radius: 0 3px 3px 0; background: #dfbc6b; }
.nav-icon { width: 19px; color: #d5bf82; font-size: 17px; text-align: center; }
.nav-count { display: inline-grid; min-width: 19px; height: 19px; place-items: center; margin-left: auto; border-radius: 50%; color: #d8e0d6; background: rgba(255,255,255,.12); font-size: 10px; }
.nav-pulse { width: 6px; height: 6px; margin-left: auto; border-radius: 50%; background: #e4be68; }
.sidebar-bottom { display: grid; gap: 14px; }
.sidebar-callout { position: relative; padding: 14px 13px 12px; border: 1px solid rgba(228,204,145,.17); border-radius: 11px; background: rgba(245,239,217,.055); }
.callout-flower { position: absolute; top: 11px; right: 12px; color: #dabb6c; font-size: 18px; }
.sidebar-callout strong { display: block; margin: 0 22px 5px 0; color: #f2eee1; font-size: 11px; }
.sidebar-callout p { margin: 0 0 11px; color: #9eb2a2; font-size: 10px; line-height: 1.5; }
.sidebar-callout button { display: flex; width: 100%; justify-content: space-between; border: 0; padding: 9px 10px; border-radius: 7px; color: #26473b; background: #e6d6aa; font-size: 10px; font-weight: 800; }
.sidebar-callout button:hover { background: #eedfaf; }
.sidebar-user { display: flex; align-items: center; gap: 9px; padding: 10px 4px 4px; border-top: 1px solid rgba(255,255,255,.09); }
.avatar, .top-avatar { display: inline-grid; width: 33px; height: 33px; flex: 0 0 auto; place-items: center; border-radius: 50%; color: #304f41; background: #d9c998; font-size: 12px; font-weight: 800; }
.sidebar-user-copy { display: grid; min-width: 0; gap: 2px; margin-right: auto; }
.sidebar-user-copy strong { overflow: hidden; max-width: 125px; color: #f3f2e9; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-user-copy small { overflow: hidden; max-width: 125px; color: #91a796; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-user .icon-button { color: #9bb09f; }
.independence-note { display: flex; justify-content: center; gap: 6px; color: #748f7e; font-size: 8px; }
.main-content { min-height: 100vh; margin-left: 246px; background: var(--cream); }
.topbar { position: sticky; z-index: 12; top: 0; display: flex; height: 62px; align-items: center; justify-content: space-between; padding: 0 clamp(23px, 4vw, 56px); border-bottom: 1px solid rgba(222,226,216,.8); background: rgba(255,254,250,.94); backdrop-filter: blur(12px); }
.breadcrumb { display: flex; align-items: center; gap: 10px; color: #929c94; font-size: 11px; }
.breadcrumb strong { color: #314238; font-weight: 700; }
.breadcrumb-slash { color: #ccd1ca; }
.topbar-right { display: flex; align-items: center; gap: 18px; }
.privacy-pill { display: flex; align-items: center; gap: 6px; padding: 7px 9px; border: 1px solid #e3e9df; border-radius: 20px; color: #66766b; background: #fafbf7; font-size: 10px; }
.privacy-pill span { color: #6b9a73; font-size: 8px; }
.top-avatar { width: 30px; height: 30px; border: 0; cursor: pointer; }
.mobile-menu { display: none; }
.page-wrap { max-width: 1230px; margin: 0 auto; padding: 34px clamp(23px, 4vw, 56px) 56px; }
.page-section { display: none; animation: appear .28s ease both; }
.page-section:not(.active) { display: none !important; }
.page-section.active { display: block; }
@keyframes appear { from { opacity: .3; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
.welcome-row, .page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 25px; margin-bottom: 23px; }
.welcome-row h1, .page-heading h1 { margin: 8px 0 7px; color: #26352b; font-family: "Manrope", sans-serif; font-size: clamp(29px, 3vw, 39px); line-height: 1.13; letter-spacing: -1.5px; }
.welcome-period { color: var(--clay); }
.page-intro { max-width: 670px; margin: 0; color: #7b857d; font-size: 13px; line-height: 1.6; }
.welcome-row .page-intro { font-size: 13px; }

/* Home */
.home-hero { position: relative; display: flex; min-height: 279px; align-items: center; overflow: hidden; border-radius: 17px; color: white; background: linear-gradient(113deg, #204e40 0%, #1c483b 49%, #345b48 100%); box-shadow: 0 12px 32px rgba(31,74,59,.14); }
.home-hero::before { position: absolute; content: ""; inset: 0; opacity: .24; background-image: radial-gradient(rgba(242,221,165,.46) .65px, transparent .65px); background-size: 18px 18px; mask-image: linear-gradient(90deg, black, transparent 75%); }
.hero-copy { position: relative; z-index: 2; width: 57%; padding: 31px 34px; }
.hero-kicker { display: flex; align-items: center; gap: 8px; color: #c3d1bd; font-size: 9px; font-weight: 800; letter-spacing: 1.5px; }
.kicker-star { color: #e6c370; font-size: 14px; }
.hero-copy h2 { margin: 15px 0 10px; color: #fbf8eb; font-family: "Manrope", sans-serif; font-size: clamp(29px, 3.2vw, 41px); line-height: 1.11; letter-spacing: -1.7px; }
.hero-copy p { max-width: 420px; margin: 0 0 18px; color: #c5d2c5; font-size: 12px; line-height: 1.65; }
.hero-copy .button { min-height: 38px; padding: 0 13px; font-size: 11px; }
.hero-art { position: absolute; top: 0; right: 0; width: 47%; height: 100%; overflow: hidden; }
.hero-sun { position: absolute; width: 172px; height: 172px; top: 28px; right: 96px; border-radius: 50%; background: linear-gradient(145deg, rgba(231,203,133,.94), rgba(184,132,74,.88)); box-shadow: 0 0 0 14px rgba(232,206,148,.08), 0 0 0 31px rgba(232,206,148,.045); }
.hero-ring { position: absolute; border: 1px solid rgba(238,221,171,.38); border-radius: 50%; }
.ring-a { width: 262px; height: 262px; top: 47px; right: 52px; }
.ring-b { width: 340px; height: 340px; top: 7px; right: 13px; border-style: dashed; opacity: .65; }
.hero-person { position: absolute; z-index: 1; bottom: 30px; width: 60px; height: 109px; border-radius: 30px 30px 10px 10px; background: #e6dfc6; box-shadow: 0 10px 28px rgba(14,35,28,.25); }
.hero-person::before { position: absolute; content: ""; width: 35px; height: 35px; top: -18px; left: 12px; border: 4px solid #3c604c; border-radius: 50%; background: #b16e4c; }
.person-a { right: 263px; height: 100px; background: #cc8254; transform: rotate(-5deg); }
.person-b { right: 182px; bottom: 20px; width: 74px; height: 130px; background: #f1e9d0; }
.person-b::before { left: 19px; border-color: #e5bd69; background: #6f4836; }
.person-c { right: 111px; bottom: 30px; height: 95px; background: #688d6b; transform: rotate(5deg); }
.person-c::before { border-color: #a9c79e; background: #8a5d43; }
.hero-path { position: absolute; bottom: 19px; left: 0; right: 5px; height: 2px; background: linear-gradient(90deg, transparent, rgba(229,199,128,.9), transparent); }
.hero-label { position: absolute; z-index: 2; padding: 5px 8px; border: 1px solid rgba(255,255,255,.2); border-radius: 20px; color: #f3eedc; background: rgba(22,57,46,.48); font-size: 9px; }
.label-one { top: 37px; right: 254px; }
.label-two { top: 86px; right: 32px; }
.label-three { bottom: 18px; right: 22px; }
.hero-index { position: absolute; z-index: 3; right: 22px; top: 17px; color: rgba(236,227,195,.7); font-size: 9px; letter-spacing: 1px; }
.hero-index span { padding: 0 4px; color: rgba(236,227,195,.4); }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 15px; margin: 31px 0 14px; }
.section-heading h2, .mini-panel h3, .content-card h2 { margin: 5px 0 0; font-family: "Manrope", sans-serif; font-size: 20px; letter-spacing: -.6px; }
.section-heading-home { margin-top: 32px; }
.suggestion-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; }
.suggestion-card { position: relative; display: flex; min-height: 145px; flex-direction: column; align-items: flex-start; justify-content: space-between; padding: 16px; border: 1px solid #e7e9e0; border-radius: 12px; background: var(--paper); text-align: left; transition: transform .16s ease, box-shadow .16s ease; }
.suggestion-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.suggestion-top { display: flex; width: 100%; align-items: center; justify-content: space-between; }
.suggestion-icon { display: inline-grid; width: 31px; height: 31px; place-items: center; border-radius: 9px; color: #496a54; background: #edf3e9; font-size: 17px; }
.suggestion-number { color: #b2b9b1; font-size: 9px; font-weight: 800; letter-spacing: 1px; }
.suggestion-card strong { max-width: 260px; color: #324338; font-family: "Manrope", sans-serif; font-size: 13px; line-height: 1.45; }
.suggestion-action { color: #9b7750; font-size: 10px; font-weight: 700; }
.dashboard-bottom { display: grid; grid-template-columns: 1.15fr .85fr; gap: 13px; margin-top: 18px; }
.mini-panel, .content-card { border: 1px solid #e7e9e1; border-radius: 13px; background: var(--paper); }
.mini-panel { min-height: 172px; padding: 16px 18px; }
.mini-panel-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.mini-panel h3 { font-size: 16px; }
.mini-panel-head .text-button { font-size: 10px; }
.memory-preview { display: flex; align-items: center; gap: 12px; min-height: 85px; margin-top: 9px; }
.memory-preview-icon { display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; border-radius: 12px; color: #8c6940; background: #f6f0df; font-size: 18px; }
.memory-preview-copy strong { display: block; color: #44564a; font-size: 12px; }
.memory-preview-copy p { margin: 4px 0 0; color: #848e86; font-size: 10px; line-height: 1.4; }
.progress-panel h3 { margin-top: 5px; font-family: "Manrope",sans-serif; font-size: 16px; letter-spacing: -.5px; }
.progress-panel > p { margin: 5px 0 11px; color: #7c887e; font-size: 10px; line-height: 1.5; }
.progress-track { width: 100%; height: 5px; overflow: hidden; border-radius: 8px; background: #ebefe8; }
.progress-track span { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg,#6b8e6b,#d1ae62); transition: width .4s ease; }
.progress-meta { display: flex; justify-content: space-between; margin: 6px 0 10px; color: #89928b; font-size: 9px; }
.progress-meta strong { color: #607768; }
.progress-next { display: flex; width: 100%; align-items: center; gap: 9px; border: 0; padding: 9px 0 0; border-top: 1px solid #eff0ea; background: transparent; text-align: left; }
.progress-next > span:nth-child(2) { display: grid; gap: 2px; margin-right: auto; }
.progress-next strong { color: #4c5f51; font-size: 10px; }
.progress-next small { color: #929a93; font-size: 9px; }
.progress-next-icon { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 8px; color: #6f896d; background: #eff4e9; font-size: 16px; }
.choice-arrow { color: #9ca69c; }

/* Family and origins */
.stat-strip { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin: 5px 0 17px; }
.stat-box { display: flex; align-items: center; gap: 11px; padding: 12px 14px; border: 1px solid #e5e9df; border-radius: 11px; background: var(--paper); }
.stat-icon { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 9px; color: #536e58; background: #edf2e8; font-size: 16px; }
.stat-copy { display: grid; gap: 2px; }
.stat-copy strong { color: #2d4034; font-family: "Manrope",sans-serif; font-size: 17px; }
.stat-copy small { color: #89928b; font-size: 10px; }
.family-card { padding: 19px; }
.card-title-row { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.family-grid { display: grid; gap: 17px; margin-top: 17px; }
.family-anchor { padding: 13px; border: 1px solid #e2e7dc; border-radius: 12px; background: linear-gradient(145deg,#f5f7ef,#fffefa); }
.family-anchor > .eyebrow { display: block; margin: 0 0 9px; }
.family-anchor .person-card { max-width: 430px; border-color: #cfdbc9; }
.family-group { padding-top: 15px; border-top: 1px solid #edf0e8; }
.family-group-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 11px; }
.family-group-heading h3 { margin: 4px 0 3px; color: #35483a; font-family: "Manrope",sans-serif; font-size: 15px; letter-spacing: -.3px; }
.family-group-heading p { margin: 0; color: #859087; font-size: 10px; line-height: 1.5; }
.family-group-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.family-empty-hint { display: grid; gap: 4px; padding: 14px; border: 1px dashed #dce3d7; border-radius: 10px; color: #728174; background: #fafbf6; font-size: 10px; }
.family-empty-hint strong { color: #506552; font-family: "Manrope",sans-serif; font-size: 12px; }
.family-unlinked { padding: 14px; border: 1px solid #ece9dc; border-radius: 11px; background: #fffdf7; }
.family-relation-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 10px; }
.family-relation-tag { padding: 4px 7px; border: 1px solid #e5eadf; border-radius: 14px; color: #60745f; background: #f2f5ec; font-size: 9px; font-weight: 700; }
.relationship-explanations { display: grid; gap: 4px; margin-top: 8px; }
.relationship-explanation { margin: 0; color: #7a8175; font-size: 10px; line-height: 1.45; }
.relationship-explanation strong { color: #5c6e5d; }
.person-card { position: relative; min-height: 111px; padding: 13px; border: 1px solid #e8eae3; border-radius: 11px; background: #fff; }
.person-card.is-self { border-color: #cddac9; background: linear-gradient(145deg,#f4f7ee,#fffefa); }
.person-card-top { display: flex; align-items: flex-start; gap: 9px; }
.person-avatar { display: inline-grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; border-radius: 50%; color: #405d4c; background: #e2eadc; font-family: "Manrope",sans-serif; font-weight: 800; }
.person-card h3 { overflow: hidden; margin: 2px 0 3px; color: #374a3c; font-family: "Manrope",sans-serif; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.person-card small { display: block; color: #8b968c; font-size: 9px; }
.person-self-tag { margin-left: auto; color: #6d8968; font-size: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .5px; }
.person-card-detail { margin: 9px 0 0; padding-top: 8px; border-top: 1px solid #edf0e9; color: #78867b; font-size: 9px; line-height: 1.45; }
.person-card-actions { display: flex; gap: 7px; margin-top: 9px; }
.mini-action { border: 0; padding: 4px 7px; border-radius: 6px; color: #55715b; background: #eff4ec; font-size: 9px; font-weight: 700; }
.mini-action:hover { background: #e2eddf; }
.empty-state { display: grid; justify-items: center; padding: 32px 16px; border: 1px dashed #d7ddd3; border-radius: 12px; color: #829087; text-align: center; }
.empty-state-mark { display: grid; width: 42px; height: 42px; place-items: center; margin-bottom: 10px; border-radius: 50%; color: #759071; background: #edf3e8; font-size: 18px; }
.empty-state strong { margin-bottom: 4px; color: #475c4c; font-family: "Manrope",sans-serif; font-size: 13px; }
.empty-state p { max-width: 370px; margin: 0 0 14px; color: #89948b; font-size: 11px; line-height: 1.5; }
.gentle-note { display: flex; align-items: flex-start; gap: 10px; margin-top: 13px; padding: 12px 14px; border-radius: 9px; color: #66776b; background: #eff3e8; font-size: 10px; line-height: 1.5; }
.note-star { flex: 0 0 auto; color: #b8954d; font-size: 15px; }
.gentle-note strong { color: #425748; }
.origins-banner { position: relative; display: flex; align-items: center; gap: 14px; overflow: hidden; margin: 0 0 20px; padding: 17px 20px; border: 1px solid #e4eadd; border-radius: 12px; background: linear-gradient(105deg,#eef3e8,#f8f4e9); }
.origin-map-icon { display: grid; width: 43px; height: 43px; flex: 0 0 auto; place-items: center; border-radius: 12px; color: #55715b; background: #e0e9dc; font-size: 22px; }
.origins-banner strong { color: #3d5945; font-size: 12px; }
.origins-banner p { margin: 4px 0 0; color: #748278; font-size: 10px; line-height: 1.5; }
.banner-decoration { position: absolute; right: 16px; color: rgba(117,146,106,.15); font-size: 55px; }
.origin-tabs { display: flex; gap: 8px; border-bottom: 1px solid #e1e6de; }
.origin-tab { position: relative; display: flex; align-items: center; gap: 8px; border: 0; padding: 10px 13px; color: #829087; background: transparent; font-size: 12px; font-weight: 700; }
.origin-tab.active { color: #355441; }
.origin-tab.active::after { position: absolute; content: ""; height: 2px; right: 10px; bottom: -1px; left: 10px; border-radius: 2px; background: #66866a; }
.origin-tab span { display: inline-grid; min-width: 19px; height: 19px; place-items: center; border-radius: 50%; color: #7d8e80; background: #edf1e9; font-size: 9px; }
.entity-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-top: 15px; }
.entity-card { position: relative; overflow: hidden; padding: 17px; border: 1px solid #e4e9df; border-radius: 12px; background: var(--paper); }
.entity-card::after { position: absolute; content: ""; top: -25px; right: -20px; width: 94px; height: 94px; border: 1px solid rgba(151,174,139,.17); border-radius: 50%; box-shadow: 0 0 0 13px rgba(151,174,139,.05),0 0 0 26px rgba(151,174,139,.03); }
.entity-card-top { position: relative; z-index: 1; display: flex; align-items: flex-start; gap: 10px; }
.entity-symbol { display: grid; width: 37px; height: 37px; flex: 0 0 auto; place-items: center; border-radius: 10px; color: #58745d; background: #edf2e7; font-size: 17px; }
.entity-card-name { min-width: 0; }
.entity-card h3 { margin: 2px 0 4px; color: #34493a; font-family: "Manrope",sans-serif; font-size: 15px; }
.entity-place { margin: 0; color: #879288; font-size: 10px; }
.entity-coordinates,.entity-note { position: relative; z-index: 1; margin: 7px 0 0 47px; color: #7f8e83; font-size: 9px; line-height: 1.45; }
.entity-edit { position: relative; z-index: 2; width: 29px; height: 29px; margin-left: auto; color: #718272; }
.entity-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 13px; padding-top: 10px; border-top: 1px solid #edf0e9; }
.entity-people { color: #7c887e; font-size: 10px; }
.proposal-section { margin-top: 24px; }
.proposal-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 9px; padding: 13px; border: 1px solid #e7e9e2; border-radius: 10px; background: #fffefa; }
.proposal-card p { margin: 3px 0 0; color: #839087; font-size: 10px; }
.proposal-state { color: #8d805e; font-size: 9px; font-weight: 700; }

/* Questions */
.question-feature { position: relative; display: flex; min-height: 176px; align-items: center; justify-content: space-between; gap: 25px; overflow: hidden; padding: 24px 28px; border-radius: 14px; color: #f5f4e7; background: linear-gradient(114deg,#234e3e,#416148); }
.question-feature::after { position: absolute; content: "✳"; top: -18px; right: 34%; color: rgba(229,207,146,.08); font-size: 195px; line-height: 1; }
.question-feature > div:first-child { position: relative; z-index: 1; max-width: 390px; }
.question-feature h2 { margin: 7px 0; font-family: "Manrope",sans-serif; font-size: 25px; line-height: 1.16; letter-spacing: -1px; }
.question-feature p { max-width: 400px; margin: 0; color: #c7d4c8; font-size: 11px; line-height: 1.55; }
.feature-choices { position: relative; z-index: 2; display: grid; width: min(42%,360px); gap: 7px; }
.feature-choices button { display: flex; align-items: center; gap: 10px; border: 1px solid rgba(255,255,255,.16); padding: 11px 12px; border-radius: 8px; color: #e9ecdf; background: rgba(255,255,255,.07); text-align: left; }
.feature-choices button:hover { background: rgba(255,255,255,.14); }
.feature-choices button span:first-child { color: #e0c77d; font-size: 9px; }
.feature-choices button span:last-child { margin-left: auto; color: #e4cf91; }
.feature-choices strong { font-size: 10px; }
.filter-chip { padding: 7px 10px; border: 1px solid #e3e9df; border-radius: 18px; color: #65756a; background: #fffefa; font-size: 10px; }
.question-list { display: grid; gap: 9px; }
.question-row { display: flex; align-items: center; gap: 13px; padding: 14px 15px; border: 1px solid #e6e9e1; border-radius: 11px; background: var(--paper); }
.question-row-icon { display: grid; width: 37px; height: 37px; flex: 0 0 auto; place-items: center; border-radius: 10px; color: #57715c; background: #edf2e7; font-size: 17px; }
.question-row-copy { min-width: 0; margin-right: auto; }
.question-row-copy small { color: #819084; font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .7px; }
.question-row-copy strong { display: block; margin-top: 3px; color: #37493b; font-family: "Manrope",sans-serif; font-size: 12px; line-height: 1.4; }
.question-row-copy p { margin: 3px 0 0; color: #89948b; font-size: 9px; }
.question-status { padding: 5px 8px; border-radius: 14px; color: #9a8156; background: #f7f1e3; font-size: 9px; white-space: nowrap; }
.question-status.answered { color: #627c64; background: #edf4ea; }
.question-row .mini-action { flex: 0 0 auto; }

/* Memory */
.memory-principle { display: flex; align-items: flex-start; gap: 13px; margin: 0 0 20px; padding: 17px 19px; border: 1px solid #eadfbe; border-radius: 11px; background: #f8f3e4; }
.principle-emblem { flex: 0 0 auto; color: #b1904b; font-family: Georgia,serif; font-size: 31px; line-height: 1; }
.memory-principle strong { color: #655334; font-family: "Manrope",sans-serif; font-size: 12px; }
.memory-principle p { margin: 4px 0 0; color: #867854; font-size: 10px; line-height: 1.5; }
.testimony-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
.testimony-card { padding: 16px; border: 1px solid #e7e9e1; border-radius: 12px; background: var(--paper); }
.testimony-card-head { display: flex; justify-content: space-between; gap: 10px; }
.testimony-tag { display: inline-flex; align-items: center; gap: 5px; padding: 5px 8px; border-radius: 16px; color: #6c816d; background: #eef3e8; font-size: 9px; font-weight: 700; }
.testimony-date { color: #98a199; font-size: 9px; }
.testimony-card h3 { margin: 12px 0 6px; color: #394a3e; font-family: "Manrope",sans-serif; font-size: 13px; line-height: 1.45; }
.testimony-quote { margin: 0; padding-left: 10px; border-left: 2px solid #dcc686; color: #728077; font-size: 11px; line-height: 1.55; }
.testimony-author { margin: 9px 0 0; color: #859087; font-size: 9px; }
.testimony-audio { width: 100%; height: 35px; margin-top: 9px; }
.testimony-assess { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; padding-top: 10px; border-top: 1px solid #edf0e9; }
.stance-button { border: 1px solid #e5e9e2; padding: 5px 7px; border-radius: 15px; color: #738077; background: #fff; font-size: 9px; }
.stance-button.active { border-color: #adc2a7; color: #3d684b; background: #edf4e9; }
.stance-button.contradiction.active { border-color: #dfb7a6; color: #9a5942; background: #fbefea; }
.stance-hint { width: 100%; color: #929a93; font-size: 9px; }
.assessment-context { display: flex; gap: 6px; margin-top: 8px; }
.assessment-context input { min-height: 33px; font-size: 10px; }
.assessment-context button { flex: 0 0 auto; border: 0; padding: 0 9px; border-radius: 7px; color: white; background: var(--forest-soft); font-size: 9px; font-weight: 700; }
.testimony-variation { margin-top: 8px; padding: 7px 8px; border-radius: 7px; color: #7b725b; background: #f7f3e9; font-size: 9px; line-height: 1.45; }

/* Profile, invite and modals */
.profile-layout { display: grid; grid-template-columns: 1.03fr .97fr; gap: 13px; }
.profile-card { overflow: hidden; }
.profile-cover { position: relative; height: 111px; background: linear-gradient(115deg,#23503f,#78936a); }
.profile-cover::before { position: absolute; content: ""; inset: 0; opacity: .3; background-image: radial-gradient(#f0e2b0 .7px,transparent .7px); background-size: 14px 14px; }
.cover-glyph { position: absolute; top: 2px; right: 22px; color: rgba(244,227,183,.2); font-size: 111px; line-height: 1; }
.profile-avatar-large { position: absolute; left: 20px; bottom: -24px; display: grid; width: 62px; height: 62px; place-items: center; border: 4px solid #fffefa; border-radius: 50%; color: #36523f; background: #d9c998; font-family: "Manrope",sans-serif; font-size: 21px; font-weight: 800; }
.profile-form { display: grid; gap: 14px; padding: 36px 20px 20px; }
.profile-form .button { justify-self: start; }
.family-link-fields { display: grid; gap: 12px; padding: 12px; border: 1px solid #e5e9df; border-radius: 10px; background: #fafbf7; }
.family-link-fields .optional { display: block; margin: 3px 0 5px; }
.privacy-card { padding: 20px; }
.privacy-emblem { display: grid; width: 39px; height: 39px; place-items: center; margin-bottom: 13px; border-radius: 11px; color: #55775a; background: #eff3e8; font-size: 21px; }
.privacy-card h2 { max-width: 330px; margin: 7px 0; font-size: 20px; line-height: 1.22; }
.privacy-card > p { margin: 0 0 14px; color: #7c887f; font-size: 10px; line-height: 1.55; }
.privacy-level { display: flex; align-items: center; gap: 9px; padding: 9px 0; border-top: 1px solid #eff0e9; }
.level-dot { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; }
.level-private { background: #6b9170; }
.level-family { background: #cea853; }
.level-community { background: #ba8163; }
.privacy-level > span:nth-child(2) { display: grid; gap: 2px; }
.privacy-level strong { color: #526453; font-size: 10px; }
.privacy-level small { color: #929a93; font-size: 9px; }
.level-default { margin-left: auto; color: #68836b; font-size: 8px; font-weight: 800; letter-spacing: .8px; }
.invitations-card { margin-top: 13px; padding: 18px 20px; }
.invitation-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; border-top: 1px solid #eff0ea; }
.invitation-row:first-of-type { margin-top: 12px; }
.invitation-row strong { display: block; color: #445649; font-size: 11px; }
.invitation-row small { display: block; margin-top: 3px; color: #909a91; font-size: 9px; }
.invitation-row.expired { opacity: .55; }
.secure-label { display: flex; align-items: center; gap: 6px; color: #6c8171; font-size: 10px; }
.secure-dot { width: 6px; height: 6px; border-radius: 50%; background: #67a276; }
.invite-screen { min-height: 100vh; padding: 24px; background: radial-gradient(ellipse at 50% 30%,#f3f2e6 0%,#f7f5ec 60%,#f2f2e8 100%); }
.invite-header { display: flex; max-width: 1080px; align-items: center; justify-content: space-between; margin: 0 auto 24px; }
.invite-card { width: min(100%,610px); margin: 0 auto; padding: 29px clamp(20px,5vw,47px); border: 1px solid #e6e9df; border-radius: 18px; background: #fffefa; box-shadow: 0 20px 65px rgba(33,62,48,.09); }
.invite-icon { display: grid; width: 43px; height: 43px; place-items: center; margin-bottom: 18px; border-radius: 14px; color: #b3924d; background: #f5f0df; font-size: 21px; }
.invite-card h1 { margin: 8px 0 6px; color: #263a2e; font-family: "Manrope",sans-serif; font-size: 31px; letter-spacing: -1px; }
.invite-card > .muted { margin: 0 0 18px; font-size: 12px; }
.invite-question { margin-bottom: 17px; padding: 14px 15px; border-left: 3px solid #d0ad60; border-radius: 0 9px 9px 0; background: #f6f3e8; }
.invite-question .eyebrow { color: #7f8068; font-size: 9px; }
.invite-question .eyebrow strong { color: #526b53; }
.invite-question p { margin: 7px 0 0; color: #394a3d; font-family: "Manrope",sans-serif; font-size: 15px; font-weight: 700; line-height: 1.5; }
.invite-question small { display: block; margin-top: 5px; color: #8c9388; font-size: 9px; }
.answer-choice-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 7px; }
.choice-card-stack { display:grid; gap:12px; }
.choice-card { display: grid; grid-template-columns:34px minmax(0,1fr) 18px; width:100%; min-height: 76px; align-items: center; gap: 12px; border: 1px solid #e8ebe2; padding: 9px; border-radius: 10px; color: #3e5143; background: white; text-align: left; }
.choice-card:hover, .choice-card.selected { border-color: #94b094; background: #f3f7ef; }
.choice-symbol { display: grid; width: 30px; height: 30px; flex: 0 0 auto; place-items: center; border-radius: 9px; color: #57755c; background: #eff4eb; font-size: 16px; }
.choice-card > span:nth-child(2) { display: grid; gap: 3px; min-width: 0; }
.choice-card strong { font-size: 15px; line-height:1.35; }
.choice-card small { color: #55665e; font-size: 13px; line-height:1.45; }
.choice-arrow { margin-left: auto; color: #9ca69c; }
.consent-line { display: flex !important; grid-template-columns: 17px 1fr !important; align-items: flex-start; gap: 8px !important; margin: 3px 0; color: #7c877e !important; font-size: 10px !important; font-weight: 400 !important; line-height: 1.5; }
.consent-line input { width: 15px; min-height: 15px; height: 15px; margin: 1px 0 0; accent-color: var(--forest-soft); }
.invite-footnote { margin: 12px 0 0; color: #9aa19a; font-size: 9px; text-align: center; }
.invite-footer { margin: 17px auto; color: #8b968d; font-size: 9px; text-align: center; }
.result-panel { margin-top: 12px; padding: 12px; border-radius: 9px; color: #516c54; background: #eef4e9; font-size: 11px; line-height: 1.55; }
.result-panel a { color: #315f47; font-weight: 700; }
.record-panel { display: grid; justify-items: start; gap: 8px; }
.record-button { display: flex; min-height: 45px; align-items: center; gap: 10px; border: 1px solid #dedfd4; padding: 0 14px; border-radius: 10px; color: #45564a; background: #fbfaf4; font-weight: 700; font-size: 12px; }
.record-button.recording { border-color: #d89078; color: #9e5845; background: #fbefeb; }
.record-dot { width: 10px; height: 10px; border-radius: 50%; background: #be6d56; }
.recording .record-dot { animation: pulse 1s infinite; }
@keyframes pulse { 50% { box-shadow: 0 0 0 6px rgba(190,109,86,.16); } }
.file-audio { display: grid !important; align-items: center; gap: 8px !important; color: #6a7c6d !important; font-size: 10px !important; }
.file-audio input { min-height: unset; padding: 4px; border: 0; background: transparent; font-size: 10px; }

.modal-dialog { width: min(100% - 32px,590px); max-height: min(90vh,800px); overflow: auto; border: 1px solid #e2e7de; border-radius: 16px; padding: 0; color: var(--ink); background: var(--paper); box-shadow: 0 30px 100px rgba(15,42,31,.24); }
.modal-dialog::backdrop { background: rgba(14,34,27,.47); backdrop-filter: blur(3px); }
.modal-content { position: relative; display: grid; gap: 14px; padding: 27px; }
.modal-content h2 { margin: -6px 25px -5px 0; color: #293b30; font-family: "Manrope",sans-serif; font-size: 23px; line-height: 1.2; letter-spacing: -.8px; }
.modal-content > .muted { margin: -5px 0 2px; font-size: 11px; }
.modal-close { position: absolute; top: 13px; right: 13px; display: grid; width: 30px; height: 30px; place-items: center; border: 0; border-radius: 50%; color: #758178; background: #f0f2ec; font-size: 20px; }
.modal-close:hover { color: #263d2e; background: #e7ece3; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.full-field { grid-column: 1 / -1; }
.modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 2px; padding-top: 13px; border-top: 1px solid #edf0e9; }
.answer-dialog { width: min(100% - 32px,650px); }
.answer-dialog .modal-content { gap: 13px; }
.answer-prompt { color: #35523d !important; font-size: 19px !important; }
.answer-mode-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 7px; }
.answer-mode { display: grid; justify-items: start; gap: 4px; min-height: 75px; border: 1px solid #e8ebe4; padding: 9px; border-radius: 9px; color: #68766c; background: white; text-align: left; }
.answer-mode > span { color: #658267; font-size: 16px; }
.answer-mode strong { color: #536257; font-size: 14px; line-height:1.35; }
.answer-mode small { color: #55665e; font-size: 12px; line-height:1.45; }
.answer-mode.active { border-color: #91af8e; background: #f1f5ed; }
.answer-panel { display: none; gap: 11px; padding: 13px; border: 1px solid #ebeee7; border-radius: 10px; background: #fcfcf8; }
.answer-panel.active { display: grid; }
.privacy-select { display: grid; grid-template-columns: .8fr 1.2fr; align-items: end; gap: 10px; }
.privacy-select label:not(.consent-line) { display: grid; gap: 5px; color: #5b6d60; font-size: 10px; font-weight: 700; }
.privacy-select select { min-height: 36px; padding: 6px 8px; font-size: 10px; }
.consent-line.compact { align-self: center; font-size: 9px !important; }
.unknown-card { display: flex; align-items: flex-start; gap: 10px; padding: 12px; border-radius: 9px; color: #705f41; background: #f7f1e2; }
.unknown-card > span { color: #bb9950; font-size: 20px; }
.unknown-card strong { color: #655537; font-size: 11px; }
.unknown-card p { margin: 4px 0 0; color: #8d7f5f; font-size: 10px; line-height: 1.5; }
.invite-result { padding: 10px; border: 1px solid #dbe6d6; border-radius: 8px; background: #f1f6ee; }
.invite-result p { margin: 0 0 8px; color: #5b735d; font-size: 10px; line-height: 1.45; }
.share-link-row { display: flex; gap: 7px; }
.share-link-row input { min-width: 0; color: #65736a; background: #f9faf6; font-size: 11px; }

/* R6 — Soutien et médiation éthique */
.support-card,.discovery-card { display:flex; align-items:center; justify-content:space-between; gap:22px; margin-top:14px; padding:20px 22px; border-radius:14px; }
.support-card { border:1px solid #e4e7dd; background:#fbfcf8; }
.discovery-card { color:#fffdf4; background:linear-gradient(120deg,#194637,#315d47); }
.support-card h2,.discovery-card h2 { margin:6px 0; font-size:20px; line-height:1.2; }
.support-card h2 { color:#3d5142; }
.discovery-card h2 { color:#fffdf4; }
.support-card p,.discovery-card p { max-width:650px; margin:0; font-size:10px; line-height:1.55; }
.support-card p { color:#7d897e; }
.discovery-card p { color:rgba(255,253,244,.8); }
.ethical-list { display:grid; gap:8px; padding:12px; border-radius:10px; background:#f6f7f0; }
.ethical-list p { display:grid; gap:3px; margin:0; color:#788278; font-size:10px; line-height:1.45; }
.ethical-list strong { color:#44584a; font-size:11px; }
@media (max-width:820px) { .support-card,.discovery-card { align-items:flex-start; flex-direction:column; gap:13px; } }
/* R5 — Moi, parcours personnel */
.profile-journey { position:relative; display:grid; grid-template-columns:92px minmax(0,1fr) auto; align-items:center; gap:21px; overflow:hidden; margin:0 0 14px; padding:25px 28px; border-radius:17px; color:#fffdf5; background:linear-gradient(115deg,#173f35 0%,#255942 55%,#667a59 100%); box-shadow:0 16px 34px rgba(32,69,51,.16); }
.profile-journey-pattern { position:absolute; top:-40px; right:23%; color:rgba(245,225,174,.12); font-family:Georgia,serif; font-size:170px; line-height:1; }
.profile-journey-avatar { position:relative; z-index:1; display:grid; width:82px; height:82px; overflow:hidden; place-items:center; border:3px solid rgba(250,235,191,.8); border-radius:50%; color:#254b3a; background:#e4d29d; font-family:"Manrope",sans-serif; font-size:23px; font-weight:800; }
.profile-journey-avatar .portrait-image { width:100%; height:100%; object-fit:cover; }
.profile-journey-copy { position:relative; z-index:1; }
.profile-journey-copy h2 { margin:6px 0 8px; color:#fffdf5; font-size:27px; line-height:1.1; }
.profile-journey-copy p { max-width:530px; margin:0 0 15px; color:rgba(255,253,245,.83); font-size:11px; line-height:1.55; }
.profile-journey-steps { position:relative; z-index:1; display:grid; justify-items:end; gap:7px; color:rgba(255,250,230,.76); font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.7px; }
.profile-journey-steps i { width:48px; height:1px; background:#e7c872; }
.profile-utility-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:11px; margin-bottom:14px; }
.profile-utility-card { display:flex; align-items:center; gap:11px; min-height:79px; border:1px solid #e4e9de; padding:13px; border-radius:12px; color:#405549; background:#fffefa; text-align:left; box-shadow:0 5px 15px rgba(38,72,50,.04); }
.profile-utility-card:hover { border-color:#b9ceb7; background:#fbfcf6; }
.profile-utility-icon { display:grid; width:35px; height:35px; flex:0 0 auto; place-items:center; border-radius:10px; color:#52715a; background:#eaf1e7; font-size:17px; }
.profile-utility-icon.terracotta { color:#a45d43; background:#f8e9df; }
.profile-utility-icon.gold { color:#906c36; background:#f7f0df; }
.profile-utility-card > span:nth-child(2) { display:grid; min-width:0; gap:4px; margin-right:auto; }
.profile-utility-card strong { color:#405549; font-family:"Manrope",sans-serif; font-size:11px; }
.profile-utility-card small { color:#89948b; font-size:9px; line-height:1.35; }
.profile-utility-card b { color:#91a094; font-size:16px; font-weight:400; }
@media (max-width:820px) { .profile-journey { grid-template-columns:65px minmax(0,1fr); gap:14px; padding:21px; } .profile-journey-avatar { width:60px; height:60px; } .profile-journey-copy h2 { font-size:23px; } .profile-journey-steps { display:none; } .profile-utility-grid { grid-template-columns:1fr; } }
/* R4 — Patrimoine contextuel */
.heritage-heading { margin-bottom: 18px; }
.heritage-spotlight { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 145px auto; align-items:center; gap:20px; overflow:hidden; min-height:210px; margin:0 0 16px; padding:28px 30px; border-radius:18px; color:#fffdf3; background:linear-gradient(120deg,#143d32 0%,#205442 58%,#557158 100%); box-shadow:0 16px 32px rgba(30,68,51,.16); }
.heritage-spotlight::after { position:absolute; right:-45px; bottom:-65px; width:220px; height:220px; border:1px solid rgba(240,221,166,.27); border-radius:50%; content:""; }
.heritage-spotlight-copy,.heritage-spotlight-actions { position:relative; z-index:1; }
.heritage-spotlight h2 { max-width:430px; margin:7px 0 9px; color:#fffdf3; font-size:29px; line-height:1.1; }
.heritage-spotlight p { max-width:450px; margin:0; color:rgba(255,253,243,.82); font-size:12px; line-height:1.6; }
.heritage-spotlight p strong { color:#f5dca3; }
.heritage-spotlight-branch { position:relative; z-index:1; display:grid; place-items:center; width:128px; height:128px; border:1px solid rgba(246,222,163,.45); border-radius:50%; color:#f6dca2; background:rgba(10,46,36,.38); box-shadow:inset 0 0 0 8px rgba(255,255,255,.045); }
.heritage-spotlight-branch span { font-size:43px; }
.heritage-spotlight-branch i { position:absolute; width:38px; height:1px; background:#e5c371; transform-origin:left; }
.heritage-spotlight-branch i:nth-of-type(1) { top:45px; right:-29px; transform:rotate(35deg); }
.heritage-spotlight-branch i:nth-of-type(2) { bottom:40px; left:-29px; transform:rotate(145deg); }
.heritage-spotlight-branch b { position:absolute; width:10px; height:10px; border:2px solid #efd691; border-radius:50%; transform:translate(38px,-36px); }
.heritage-spotlight-actions { display:grid; justify-items:start; gap:11px; }
.heritage-spotlight-actions .button { white-space:nowrap; }
.light-text { color:#f8deb0; font-size:10px; }
.heritage-pillars { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.heritage-pillar { position:relative; min-height:212px; overflow:hidden; padding:19px; border:1px solid #e6e6d9; border-radius:15px; background:#fffefa; box-shadow:0 5px 16px rgba(44,70,50,.045); }
.heritage-pillar::after { position:absolute; right:-12px; bottom:-26px; color:rgba(62,95,67,.07); font-family:Georgia,serif; font-size:100px; content:"✳"; }
.heritage-pillar > * { position:relative; z-index:1; }
.heritage-pillar-icon { display:grid; width:35px; height:35px; place-items:center; margin-bottom:12px; border-radius:11px; color:#895338; background:#f4e7d7; font-size:18px; }
.heritage-places .heritage-pillar-icon { color:#3e6846; background:#e8f0e3; }
.heritage-archives .heritage-pillar-icon { color:#466a77; background:#e7eef0; }
.heritage-pillar h2 { margin:7px 0; color:#304337; font-size:18px; line-height:1.18; }
.heritage-pillar p { min-height:42px; margin:0 0 14px; color:#78857b; font-size:10px; line-height:1.55; }
.heritage-pillar .text-button { position:absolute; bottom:17px; color:#536f57; font-size:10px; }
.heritage-family-links { margin-top:24px; }
.heritage-family-link-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.heritage-family-link { display:flex; align-items:center; gap:10px; min-width:0; padding:13px; border:1px solid #e5e9df; border-radius:12px; background:#fffefa; }
.heritage-link-symbol { display:grid; width:38px; height:38px; flex:0 0 auto; place-items:center; border-radius:11px; color:#8f6d39; background:#f6f0df; font-size:18px; }
.heritage-family-link > div { display:grid; min-width:0; gap:3px; margin-right:auto; }
.heritage-family-link .eyebrow { font-size:8px; }
.heritage-family-link strong { overflow:hidden; color:#415548; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.heritage-family-link p { margin:0; color:#879188; font-size:9px; line-height:1.4; }
.heritage-family-link .text-button { flex:0 0 auto; font-size:9px; }
.heritage-empty-link { display:flex; align-items:center; gap:12px; padding:16px; border:1px dashed #d8ddd1; border-radius:12px; color:#5a6c5e; background:#fafbf7; }
.heritage-empty-link > span { display:grid; width:39px; height:39px; flex:0 0 auto; place-items:center; border-radius:50%; color:#8b713f; background:#f3eedf; font-size:19px; }
.heritage-empty-link > div { margin-right:auto; }
.heritage-empty-link strong { display:block; color:#4a5d4e; font-size:11px; }
.heritage-empty-link p { margin:4px 0 0; color:#89938a; font-size:9px; line-height:1.45; }
@media (max-width: 820px) { .heritage-spotlight { grid-template-columns:1fr 84px; gap:14px; min-height:0; padding:22px; } .heritage-spotlight h2 { font-size:25px; } .heritage-spotlight-actions { grid-column:1 / -1; } .heritage-spotlight-branch { width:78px; height:78px; } .heritage-spotlight-branch span { font-size:30px; } .heritage-spotlight-branch i,.heritage-spotlight-branch b { display:none; } .heritage-pillars { grid-template-columns:1fr; } .heritage-pillar { min-height:155px; } .heritage-pillar p { min-height:auto; margin-right:60px; } .heritage-family-link-list { grid-template-columns:1fr; } }
/* Mobile navigation and alerts */
.mobile-nav { display: none; }
.toast-region { position: fixed; z-index: 100; top: 16px; right: 16px; display: grid; width: min(350px,calc(100vw - 32px)); gap: 7px; }
.toast { display: flex; align-items: flex-start; gap: 9px; padding: 12px 14px; border: 1px solid #dce7db; border-radius: 10px; color: #425c48; background: #fcfdf8; box-shadow: 0 10px 30px rgba(20,49,33,.15); font-size: 11px; line-height: 1.45; animation: appear .16s ease both; }
.toast.error { border-color: #eed4c9; color: #9b5946; background: #fff9f5; }
.toast-icon { font-weight: 800; }

/* Components used by the live V1 screens */
.empty-symbol { display:grid; width:42px; height:42px; place-items:center; margin-bottom:10px; border-radius:50%; color:#648165; background:#edf3e8; font-size:20px; }
.empty-state .button { margin-top:4px; }
.stat-card { display:grid; gap:4px; padding:12px 14px; border:1px solid #e5e9df; border-radius:11px; background:var(--paper); }
.stat-card span { color:#89948b; font-size:9px; font-weight:800; letter-spacing:.8px; }
.stat-card strong { color:#2d4034; font-family:"Manrope",sans-serif; font-size:19px; }
.person-card-head { display:flex; align-items:center; gap:9px; }
.person-card-head > div:nth-child(2) { display:grid; min-width:0; gap:3px; }
.person-card-head strong { overflow:hidden; color:#374a3c; font-family:"Manrope",sans-serif; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.person-card-head small { color:#8b968c; font-size:9px; }
.visibility-mark { margin-left:auto; color:#8c9d8b; }
.person-note { margin:9px 0 0; color:#738077; font-size:10px; line-height:1.5; }
.person-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:9px; }
.person-tag { padding:4px 7px; border-radius:12px; color:#59715c; background:#eef3e9; font-size:9px; }
.person-links { display:grid; gap:5px; margin:10px 0 0; padding:9px 0 0; border-top:1px solid #edf0e9; list-style:none; }
.person-links li { display:flex; flex-wrap:wrap; gap:4px; color:#879188; font-size:9px; }
.person-links li strong { color:#526253; }
.person-links li small { width:100%; color:#8d7962; line-height:1.45; }
.person-no-links { margin:10px 0 0; color:#929a93; font-size:9px; }
.progress-track span.progress-0 { width:0; }
.progress-track span.progress-25 { width:25%; }
.progress-track span.progress-50 { width:50%; }
.progress-track span.progress-75 { width:75%; }
.progress-track span.progress-100 { width:100%; }
.memory-preview { display:grid; align-content:center; gap:8px; }
.memory-preview-item { display:flex; align-items:center; gap:9px; min-width:0; }
.memory-type { display:grid; width:30px; height:30px; flex:0 0 auto; place-items:center; border-radius:9px; color:#8c6940; background:#f6f0df; font-size:15px; }
.memory-preview-item > div { display:grid; min-width:0; gap:3px; margin-right:auto; }
.memory-preview-item strong { color:#44564a; font-size:10px; }
.memory-preview-item small { overflow:hidden; max-width:190px; color:#848e86; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.memory-preview-item > .muted { flex:0 0 auto; font-size:8px; }
.origin-heading-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.alias-list { position:relative; z-index:1; display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:13px; }
.alias-list > .alias-caption { width:100%; color:#8d988e; font-size:8px; font-weight:800; letter-spacing:.8px; }
.alias-chip-wrap { display:inline-flex; align-items:stretch; max-width:100%; overflow:hidden; border:1px solid #e3e8df; border-radius:12px; color:#637568; background:#fafbf7; }
.alias-list i { display:block; padding:5px 8px; color:#637568; font-size:9px; font-style:normal; }
.alias-list i small { display:block; margin-top:2px; color:#94a095; font-size:8px; }
.alias-chip-wrap button,.remove-relation,.remove-appellation-row { display:grid; width:24px; flex:0 0 auto; place-items:center; border:0; color:#849087; background:transparent; font-size:14px; }
.alias-list.alias-empty i { color:#9ba39c; border-style:dashed; }
.entity-card > .eyebrow { position:relative; z-index:1; margin-top:10px; font-size:8px; }
.entity-card h3,.entity-place,.entity-card-foot,.entity-propose { position:relative; z-index:1; }
.entity-card-foot > span { color:#7c887e; font-size:9px; }
.entity-card-foot .text-button { font-size:9px; }
.entity-propose { margin-top:10px; border:0; padding:4px 0; color:#72836f; background:transparent; font-size:9px; text-decoration:underline; text-decoration-color:#c7d2c1; }
.entity-relations { position:relative; z-index:1; display:grid; gap:5px; margin:12px 0 0; padding:0; list-style:none; }
.entity-relations li { display:flex; align-items:flex-start; justify-content:space-between; gap:7px; padding:7px 8px; border-radius:8px; color:#647468; background:#f4f6f0; font-size:9px; }
.entity-relations li > span { line-height:1.5; }
.entity-relations strong { color:#415649; }
.entity-relations small { display:block; margin-top:3px; color:#879389; }
.origins-banner + .origin-tabs + .entity-grid { margin-bottom:16px; }
.entity-match-suggestions { margin:11px 0; padding:12px; border:1px solid #e5e9dc; border-radius:10px; background:#f8f8f1; }
.entity-match-suggestions > p { margin:4px 0 9px; color:#7d897f; font-size:10px; line-height:1.45; }
.entity-match-suggestions > small { display:block; margin-top:8px; color:#89948a; font-size:9px; }
.entity-match-card { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:7px; padding:9px; border:1px solid #e7eadf; border-radius:8px; background:#fffefa; }
.entity-match-card > div { display:grid; gap:3px; }
.entity-match-card strong { color:#425749; font-size:11px; }
.entity-match-card small,.entity-match-card span { color:#879188; font-size:9px; }
.entity-match-card .button { flex:0 0 auto; }
.match-known { color:#66806a !important; }
.appellation-editor,.entity-location-fields { display:grid; gap:9px; margin:10px 0; padding:11px; border:1px solid #e7eadf; border-radius:10px; background:#fbfcf8; }
.appellation-editor-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.appellation-editor-heading > div { display:grid; gap:3px; }
.appellation-editor-heading > div > small { color:#89948b; font-size:9px; }
.appellation-row { display:grid; grid-template-columns:1fr 1fr 1fr 24px; align-items:end; gap:7px; margin-top:8px; }
.appellation-row label { min-width:0; }
.appellation-row input { min-width:0; }
.coordinate-fields { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.entity-location-fields > .helper { margin:0; }
.relation-hint { margin:-3px 0 0; padding:9px 11px; border-radius:8px; color:#6f7f72; background:#f1f4ec; font-size:10px; line-height:1.45; }
.entity-relations .remove-relation { width:22px; min-height:22px; border-radius:6px; }
.proposal-card small { display:block; margin-top:5px; color:#8d988e; font-size:9px; }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:23px 0 12px; }
.section-heading h2 { margin:4px 0 0; color:#304337; font-family:"Manrope",sans-serif; font-size:19px; }
.question-index { display:grid; width:34px; height:34px; flex:0 0 auto; place-items:center; border-radius:10px; color:#66806a; background:#edf2e8; font-size:10px; font-weight:800; }
.question-row-copy h3 { margin:3px 0; color:#37493b; font-family:"Manrope",sans-serif; font-size:12px; line-height:1.45; }
.question-row-copy p { margin:3px 0; color:#89948b; font-size:9px; }
.question-row-copy > small { color:#95a096; font-size:8px; }
.status-pill { flex:0 0 auto; padding:5px 8px; border-radius:14px; color:#9a8156; background:#f7f1e3; font-size:8px; white-space:nowrap; }
.status-pill.answered { color:#627c64; background:#edf4ea; }
.question-actions { display:flex; align-items:center; gap:5px; }
.button-small { min-height:32px; padding:0 10px; border-radius:7px; font-size:9px; }
.subtle-icon { width:31px; height:31px; color:#738477; background:#f3f5ef; }
.testimony-card { display:flex; align-items:flex-start; gap:11px; }
.testimony-mark { display:grid; width:31px; height:31px; flex:0 0 auto; place-items:center; border-radius:10px; color:#8a6d42; background:#f6f0df; font-size:17px; }
.testimony-body { min-width:0; flex:1; }
.testimony-meta { display:flex; flex-wrap:wrap; align-items:center; gap:7px; color:#89948b; font-size:8px; }
.testimony-meta strong { color:#526253; font-size:10px; }
.private-tag { padding:3px 6px; border-radius:10px; color:#697b6c; background:#eef3e9; }
.testimony-question { margin:10px 0 6px; color:#435747; font-family:"Manrope",sans-serif; font-size:11px; font-weight:700; line-height:1.45; }
.testimony-quote { margin:7px 0; }
.testimony-body audio { display:block; width:100%; height:36px; margin:8px 0; }
.testimony-evidence { display:flex; flex-wrap:wrap; justify-content:space-between; gap:7px; margin-top:10px; padding-top:9px; border-top:1px solid #edf0e9; color:#8b948b; font-size:8px; }
.reflection { margin-top:9px; color:#65796a; font-size:9px; }
.reflection summary { cursor:pointer; font-weight:700; }
.reflection-form { display:grid; gap:9px; margin-top:9px; }
.reflection-form small { color:#8c968d; font-size:8px; line-height:1.4; }
.danger-text { color:#a05d49; }
.invitation-row > span:nth-child(2) { display:grid; min-width:0; flex:1; gap:3px; }
.invite-link-icon { display:grid; width:30px; height:30px; flex:0 0 auto; place-items:center; border-radius:9px; color:#66806a; background:#edf2e8; }
.invite-expiry { flex:0 0 auto; color:#8b948c; font-size:8px; }
.auth-card label > small { color:#909990; font-size:9px; }
.button:disabled { cursor:not-allowed; opacity:.52; transform:none; box-shadow:none; }
.record-button { cursor:pointer; }

@media (max-width: 640px) {
  .sidebar.open { display:flex; width:min(84vw,300px); align-items:stretch; padding:20px 15px; box-shadow:20px 0 45px rgba(14,34,27,.22); }
  .sidebar.open .brand { justify-content:flex-start; margin-left:8px; }
  .sidebar.open .brand > span:last-child,.sidebar.open .workspace-tag,.sidebar.open .nav-caption,.sidebar.open .nav-item > span:not(.nav-icon),.sidebar.open .sidebar-callout,.sidebar.open .sidebar-user-copy,.sidebar.open .sidebar-user .icon-button,.sidebar.open .independence-note { display:flex; }
  .sidebar.open .brand > span:last-child { display:inline; }
  .sidebar.open .nav-caption { display:block; }
  .sidebar.open .nav-item > span:not(.nav-icon) { display:inline; }
  .sidebar.open .nav-item > .nav-count,.sidebar.open .nav-item > .nav-pulse { display:inline-grid; }
  .sidebar.open .sidebar-bottom { width:auto; justify-items:stretch; }
  .sidebar.open .sidebar-user { justify-content:flex-start; padding:10px 4px 4px; }
  .sidebar.open .sidebar-callout { display:block; }
  .sidebar.open .sidebar-user-copy { display:grid; }
  .sidebar.open .sidebar-user .icon-button { display:inline-grid; }
  .question-row { flex-wrap:wrap; }
  .question-actions { width:100%; justify-content:flex-end; }
  .invitation-row { flex-wrap:wrap; }
  .invite-expiry { margin-left:39px; }
}

@media (min-width: 1500px) {
  .page-wrap { padding-top: 42px; }
  .home-hero { min-height: 310px; }
}
@media (max-width: 1150px) {
  .sidebar { width: 220px; padding-right: 13px; padding-left: 13px; }
  .main-content { margin-left: 220px; }
  .hero-art { width: 43%; transform: scale(.9); transform-origin: right center; }
  .hero-copy { width: 62%; }
  .family-group-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 900px) {
  .auth-screen { grid-template-columns: minmax(300px,.8fr) minmax(400px,1.2fr); }
  .auth-story { padding: 30px; }
  .auth-story-copy h1 { font-size: 47px; }
  .auth-panel { padding-right: 30px; padding-left: 30px; }
  .sidebar { width: 75px; align-items: center; padding: 23px 9px 13px; }
  .sidebar .brand { justify-content: center; margin: 0 0 22px; }
  .sidebar .brand > span:last-child, .workspace-tag, .nav-caption, .nav-item > span:not(.nav-icon), .sidebar-callout, .sidebar-user-copy, .sidebar-user .icon-button, .independence-note { display: none; }
  .main-nav { width: 100%; }
  .nav-item { justify-content: center; padding: 0; }
  .nav-item.active::before { left: -9px; }
  .nav-icon { width: auto; font-size: 20px; }
  .sidebar-bottom { width: 100%; justify-items: center; }
  .sidebar-user { justify-content: center; width: 100%; padding: 10px 0 0; }
  .main-content { margin-left: 75px; }
  .topbar { padding: 0 24px; }
  .page-wrap { padding-right: 24px; padding-left: 24px; }
  .hero-art { width: 46%; transform: scale(.78); }
  .hero-copy { width: 65%; padding-left: 25px; }
  .dashboard-bottom { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .auth-screen { min-height: 100svh; display: flex; flex-direction: column; }
  .auth-story { display: none; }
  .auth-panel { min-height: 100svh; justify-content: flex-start; padding: 25px 22px 48px; }
  .auth-mobile-brand { display: inline-flex; margin-bottom: 47px; }
  .auth-card { margin: auto 0; }
  .auth-card h2 { font-size: 27px; }
  .auth-panel-foot { bottom: 14px; }
  .sidebar { display: none; }
  .main-content { margin-left: 0; padding-bottom: 67px; }
  .topbar { height: 55px; padding: 0 15px; }
  .mobile-menu { display: inline-grid; margin-left: -6px; }
  .breadcrumb { margin-right: auto; margin-left: 7px; font-size: 10px; }
  .topbar-right { gap: 7px; }
  .privacy-pill { padding: 6px 7px; font-size: 9px; }
  .top-avatar { width: 28px; height: 28px; }
  .page-wrap { padding: 23px 16px 27px; }
  .welcome-row, .page-heading { align-items: flex-start; flex-direction: column; gap: 12px; margin-bottom: 18px; }
  .welcome-row h1, .page-heading h1 { font-size: 30px; }
  .page-heading .button, .welcome-row .button { min-height: 39px; }
  .hide-mobile { display: none; }
  .home-hero { min-height: 332px; align-items: flex-start; }
  .hero-copy { width: 100%; padding: 22px 21px; }
  .hero-copy h2 { max-width: 290px; font-size: 31px; }
  .hero-copy p { max-width: 300px; font-size: 11px; }
  .hero-art { top: auto; right: -14px; bottom: -64px; width: 100%; height: 195px; transform: scale(.68); transform-origin: right bottom; opacity: .96; }
  .hero-sun { top: -30px; }
  .hero-ring.ring-a { top: -12px; }
  .hero-ring.ring-b { top: -52px; }
  .hero-person { bottom: 25px; }
  .person-a { right: 244px; }
  .person-b { right: 174px; }
  .person-c { right: 105px; }
  .hero-index { top: 13px; right: 14px; }
  .section-heading { align-items: flex-start; flex-direction: column; margin-top: 25px; }
  .section-heading h2 { font-size: 18px; }
  .section-heading-home { margin-top: 24px; }
  .section-heading > .text-button { padding-top: 0; }
  .suggestion-grid { grid-template-columns: 1fr; gap: 8px; }
  .suggestion-card { min-height: 105px; padding: 12px; }
  .suggestion-card strong { max-width: none; margin: 8px 0; }
  .suggestion-top { align-items: center; }
  .dashboard-bottom { gap: 9px; margin-top: 11px; }
  .mini-panel { min-height: unset; padding: 14px; }
  .mini-panel-head { align-items: flex-start; }
  .mini-panel h3 { font-size: 15px; }
  .mini-panel-head .text-button { font-size: 9px; }
  .memory-preview { min-height: 65px; }
  .stat-strip { gap: 6px; }
  .stat-box { align-items: flex-start; flex-direction: column; gap: 5px; padding: 9px; }
  .stat-icon { width: 26px; height: 26px; font-size: 14px; }
  .stat-copy strong { font-size: 15px; }
  .stat-copy small { font-size: 8px; }
  .family-card { padding: 13px; }
  .card-title-row { align-items: flex-start; flex-direction: column; }
  .family-grid { gap: 12px; margin-top: 13px; }
  .family-group-grid { grid-template-columns: 1fr; gap: 8px; }
  .family-group-heading { align-items: flex-start; flex-direction: column; }
  .family-anchor { padding: 10px; }
  .person-card { min-height: unset; padding: 11px; }
  .origins-banner { align-items: flex-start; padding: 13px; }
  .origin-map-icon { width: 36px; height: 36px; }
  .origins-banner p { padding-right: 4px; }
  .origin-heading-actions { width:100%; justify-content:flex-start; }
  .origin-heading-actions .button { min-height:37px; padding:8px 10px; font-size:9px; }
  .entity-grid { grid-template-columns: 1fr; gap: 8px; }
  .entity-card { padding: 14px; }
  .entity-match-card { align-items:flex-start; flex-direction:column; }
  .appellation-editor-heading { align-items:flex-start; flex-direction:column; }
  .appellation-row { grid-template-columns:1fr 1fr 24px; }
  .appellation-row label:first-child { grid-column:1 / 3; }
  .appellation-row .remove-appellation-row { grid-column:3; grid-row:1; }
  .appellation-row label:nth-child(2) { grid-column:1; }
  .appellation-row label:nth-child(3) { grid-column:2; }
  .coordinate-fields { grid-template-columns:1fr 1fr; }
  .question-feature { min-height: unset; align-items: flex-start; flex-direction: column; gap: 16px; padding: 18px; }
  .question-feature h2 { font-size: 22px; }
  .feature-choices { width: 100%; }
  .feature-choices button { min-height: 40px; }
  .question-row { align-items: flex-start; gap: 8px; padding: 11px 9px; }
  .question-row-icon { width: 31px; height: 31px; }
  .question-row-copy strong { font-size: 10px; }
  .question-row-copy small, .question-row-copy p { font-size: 8px; }
  .question-row .mini-action { padding: 5px; font-size: 8px; }
  .question-status { display: none; }
  .memory-principle { padding: 13px; }
  .testimony-list { grid-template-columns: 1fr; }
  .profile-layout { grid-template-columns: 1fr; }
  .invitations-card { padding: 14px; }
  .invitations-card .card-title-row { gap: 7px; }
  .card-title-row .muted { font-size: 9px; }
  .mobile-nav { position: fixed; z-index: 30; inset: auto 0 0; display: flex; height: 64px; justify-content: space-around; border-top: 1px solid #e5e9e0; background: rgba(255,254,250,.97); backdrop-filter: blur(10px); }
  .mobile-nav button { display: grid; min-width: 55px; justify-items: center; align-content: center; gap: 3px; border: 0; color: #87928a; background: transparent; }
  .mobile-nav button > span { font-size: 18px; }
  .mobile-nav button small { font-size: 8px; font-weight: 600; }
  .mobile-nav button.active { color: #315942; }
  .mobile-nav button.active > span { color: #47754d; }
  .answer-choice-grid { grid-template-columns: 1fr; }
  .choice-card { min-height: 55px; }
  .invite-screen { padding: 14px; }
  .invite-header { margin-bottom: 13px; }
  .invite-header .brand { font-size: 17px; }
  .invite-card { padding: 21px 16px; border-radius: 14px; }
  .invite-card h1 { font-size: 25px; }
  .invite-card > .muted { font-size: 11px; }
  .form-grid { grid-template-columns: 1fr; }
  .full-field { grid-column: auto; }
  .modal-content { padding: 23px 17px 17px; }
  .modal-content h2 { font-size: 20px; }
  .answer-mode-grid { grid-template-columns: repeat(2,1fr); }
  .answer-mode { min-height: 60px; grid-template-columns: 22px 1fr; grid-template-rows: 1fr 1fr; align-items: center; column-gap: 7px; }
  .answer-mode > span { grid-row: 1/3; font-size: 19px; }
  .privacy-select { grid-template-columns: 1fr; }
  .modal-actions { flex-direction: column-reverse; }
  .modal-actions .button { width: 100%; }
  .share-link-row { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* A small question notebook, with room for a voice and its context. */
.question-filters { display:flex; flex-wrap:wrap; gap:7px; margin:0 0 15px; }
.question-filters button { display:flex; align-items:center; gap:8px; min-height:37px; padding:0 12px; border:1px solid #e1e6db; border-radius:9px; color:#627465; background:#fffef9; font:600 11px "Manrope",sans-serif; cursor:pointer; }
.question-filters button.active { color:#fffbed; border-color:#305b43; background:#305b43; }
.question-filters button span { display:grid; min-width:19px; height:19px; place-items:center; border-radius:50%; background:rgba(135,161,128,.17); font-size:10px; }
.question-filters button.active span { background:rgba(255,255,255,.15); }
.question-list .question-row { align-items:flex-start; padding:19px 17px; gap:13px; }
.question-list .question-row-copy { flex:1; }
.question-list .question-row-copy h3 { margin:7px 0 6px; font-size:14px; line-height:1.5; }
.question-list .question-row-copy .question-context { color:#697b6b; font-size:11px; line-height:1.6; white-space:pre-wrap; }
.question-list .question-row-copy > small { display:block; margin-top:7px; color:#768674; font-size:10px; font-weight:500; text-transform:none; letter-spacing:0; }
.question-list .question-actions { margin-top:14px; flex-wrap:wrap; justify-content:flex-start; gap:7px; }
.question-list .question-actions .button { min-height:35px; font-size:10px; }
.question-row-side { display:flex; align-items:flex-end; flex-direction:column; gap:14px; }
.question-row-side .status-pill { font-size:9px; }
.archive-question { font-size:10px; color:#7b8777; }
.status-pill.archived { color:#7c8177; background:#eff0e9; }
.answer-context { margin:0; padding:10px 12px; color:#68765f; background:#f2f3e9; border-radius:8px; font-size:12px; line-height:1.6; white-space:pre-wrap; }
.contributor-panel { padding:14px; border:1px solid #e0e6d9; border-radius:12px; background:#f7f8f0; }
.contributor-choices { display:flex; flex-wrap:wrap; gap:10px 22px; margin:10px 0 0; }
.contributor-choices label { display:flex; align-items:center; gap:7px; font-size:12px; cursor:pointer; }
.contributor-choices input { width:16px; height:16px; margin:0; accent-color:#305b43; }
#present-contributor-fields { margin-top:13px; }
#present-contributor-fields > label + label { margin-top:10px; }
.contributor-panel .helper { margin:8px 0 0; }
.audio-preview { display:grid; width:100%; gap:9px; justify-items:start; padding:12px; border:1px solid #dce5d6; border-radius:10px; background:#f1f5eb; }
.audio-preview audio { width:100%; height:42px; }
.audio-preview .text-button { font-size:11px; }
.record-button:disabled { cursor:not-allowed; opacity:.55; }
.testimony-source { margin:5px 0; color:#7a826f; font-size:10px; line-height:1.5; }
.testimony-context { margin:5px 0 10px; padding-left:9px; border-left:2px solid #d3dec8; color:#718065; font-size:11px; line-height:1.6; white-space:pre-wrap; }
.testimony-quote { white-space:pre-wrap; overflow-wrap:anywhere; }
.research-step-note { color:#7a866e; font-size:11px; line-height:1.6; }
.reflection summary { padding:5px 0; }
.suggestion-rest { grid-column:1/-1; display:grid; justify-items:start; gap:9px; padding:24px; border:1px solid #e4e8da; border-radius:12px; background:#fbfcf5; color:#557044; }
.suggestion-rest > span { font-size:30px; color:#a18b57; }
.suggestion-rest p { margin:0; color:#7a856c; font-size:12px; line-height:1.6; }
@media (max-width:640px) {
  .question-list .question-row { position:relative; gap:9px; padding:15px 12px; }
  .question-list .question-row-copy { width:calc(100% - 43px); }
  .question-list .question-row-copy h3 { font-size:13px; }
  .question-row-side { width:100%; margin-left:43px; flex-direction:row; align-items:center; justify-content:space-between; }
  .question-list .question-actions .button { min-height:40px; }
  .question-filters button { flex:1; justify-content:center; gap:5px; padding:0 8px; font-size:10px; }
  .contributor-choices { gap:12px; }
}

/* Questions that travel, one person at a time */
.received-requests { margin-bottom:28px; }
.received-request-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr)); gap:14px; }
.received-request-card { min-width:0; padding:20px; border:1px solid #d9e4d5; border-radius:14px; background:#f4f7ef; }
.request-from { display:flex; align-items:center; gap:10px; }
.request-from .person-avatar { width:36px; height:36px; flex:0 0 auto; font-size:12px; }
.request-from > div { display:grid; gap:3px; }
.request-from strong { color:#2f5039; font-size:12px; }
.request-from small { color:#788374; font-size:10px; }
.received-request-card h3 { margin:17px 0 8px; font-family:"Manrope",sans-serif; font-size:17px; line-height:1.5; color:#294834; overflow-wrap:anywhere; }
.received-request-card > p { color:#71806f; font-size:11px; }
.request-card-footer { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; margin-top:18px; }
.request-card-footer > span { font-size:9px; color:#7d897a; }
.request-card-footer a { text-decoration:none; }
.transmission-button { display:inline-flex; align-items:center; gap:6px; }
.transmission-button span { display:inline-grid; min-width:19px; min-height:19px; place-items:center; border-radius:50%; background:#edf1e8; color:#648067; font-size:9px; }
.contacts-card { margin-top:22px; padding:24px; }
.contacts-card > .helper { max-width:660px; line-height:1.65; }
.contacts-card > label { display:grid; gap:7px; max-width:500px; color:#526a55; font-size:11px; font-weight:700; }
#member-code { font-family:monospace; letter-spacing:.05em; }
.contact-form { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; max-width:700px; margin-top:20px; }
.contact-form label { display:grid; flex:1 1 200px; gap:7px; color:#526a55; font-size:11px; font-weight:700; }
.contact-list { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.contact-chip { display:grid; grid-template-columns:auto 1fr; column-gap:9px; align-items:center; padding:10px 13px; border:1px solid #e1e7da; border-radius:10px; background:#fafbf6; }
.contact-initials { display:grid; grid-row:span 2; width:32px; height:32px; place-items:center; border-radius:50%; background:#e6eddd; color:#547153; font-size:11px; }
.contact-chip strong { color:#4b6350; font-size:11px; }
.contact-chip > span:last-child { color:#8b9587; font-size:9px; }
.contact-empty { color:#869080; font-size:11px; }
.ask-paths { display:grid; gap:13px; }
.ask-path { display:grid; gap:10px; padding:16px; border:1px solid #e4e8dc; border-radius:12px; background:#fcfdf8; }
.ask-path-heading { display:flex; gap:12px; align-items:flex-start; }
.ask-path-heading > span { display:grid; width:26px; height:26px; flex:0 0 auto; place-items:center; border-radius:8px; background:#edf0e2; color:#7a875e; font-size:10px; }
.ask-path h3 { margin:2px 0 5px; font-family:"Manrope",sans-serif; font-size:13px; color:#3c5842; }
.ask-path-heading p { margin:0; color:#84907f; font-size:11px; line-height:1.55; }
.ask-path .helper { margin:0; }
.ask-path > button { justify-self:start; }
.ask-member-actions { display:flex; flex-wrap:wrap; align-items:center; gap:15px; }
.member-back-link { display:block; margin:20px auto 0; text-align:center; }
.transmission-dialog { width:min(660px,calc(100% - 32px)); }
.transmission-prompt { margin:0; padding:13px 15px; border-radius:9px; background:#f0f3e7; color:#486149; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.transmission-chain { display:grid; gap:0; margin:15px 0 0; padding:0; list-style:none; }
.transmission-step { position:relative; display:flex; align-items:flex-start; gap:12px; padding:0 0 22px; }
.transmission-step:not(:last-child)::before { content:""; position:absolute; top:28px; bottom:0; left:13px; width:1px; background:#dce5d5; }
.transmission-dot { position:relative; z-index:1; display:grid; width:27px; height:27px; flex:0 0 auto; place-items:center; border:1px solid #dce5d5; border-radius:50%; background:#f5f7ed; color:#698160; font-size:14px; }
.transmission-detail { flex:1; min-width:0; padding:12px 14px; border:1px solid #e5e9df; border-radius:10px; }
.transmission-step.is-relay .transmission-detail { border-left:3px solid #c7d7bb; }
.transmission-topline { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; }
.transmission-topline strong { font-size:12px; color:#436049; overflow-wrap:anywhere; }
.transmission-state { padding:4px 7px; border-radius:6px; background:#eff3e7; color:#6e805e; font-size:9px; }
.transmission-state.state-answered { background:#e5efe1; color:#486c43; }
.transmission-state.state-revoked,.transmission-state.state-expired { background:#f4ede5; color:#967858; }
.transmission-state.state-suspended,.transmission-state.state-unknown { background:#f5f0de; color:#9c8547; }
.transmission-detail > p { margin:8px 0; color:#6c7c67; font-size:10px; line-height:1.5; }
.transmission-dates { display:grid; gap:4px; color:#8d9787; font-size:9px; line-height:1.5; }
.transmission-detail > button { margin-top:10px; font-size:10px; }
@media (max-width:640px) {
  .contacts-card { padding:18px; }
  .contact-form > button { width:100%; }
  .contacts-card .card-title-row { align-items:flex-start; gap:10px; }
  .ask-path { padding:13px; }
  .ask-path > button,.ask-member-actions .button { width:100%; }
  .transmission-dialog { width:calc(100% - 20px); }
  .transmission-step { gap:8px; }
  .transmission-detail { padding:10px; }
  .transmission-topline { align-items:flex-start; flex-direction:column; }
  .request-card-footer a { width:100%; }
}

.contact-chip .remove-contact { grid-column:2; margin-top:5px; justify-self:start; font-size:9px; }
.contact-chip > span:not(.contact-initials) { color:#8b9587; font-size:9px; }

/* Personal stories: a calm, readable family album. */
.person-avatar img,.avatar img,.top-avatar img,.profile-avatar-large img,.story-portrait img { display:block; width:100%; height:100%; border-radius:inherit; object-fit:cover; }
.story-person-card { cursor:pointer; transition:border-color .16s,box-shadow .16s,transform .16s; }
.story-person-card:hover { border-color:#aebfa2; box-shadow:0 7px 18px #29472c0c; transform:translateY(-2px); }
.story-person-card:focus-visible { outline:3px solid #b79b54; outline-offset:3px; }
.person-story-link { display:flex; align-items:center; justify-content:space-between; margin-top:14px; padding-top:10px; border-top:1px solid #e9ede4; color:#617955; font-size:10px; font-weight:600; }
.person-story-link > span { font-size:16px; }
.profile-story-actions { display:flex; justify-content:space-between; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:8px; }
.story-back { margin:0 0 22px; font-size:11px; }
.story-loading { padding:80px 20px; text-align:center; color:#72816a; }
.person-story-hero { position:relative; display:grid; grid-template-columns:112px minmax(0,1fr); gap:20px 27px; overflow:hidden; min-height:243px; padding:38px; border-radius:19px; background:#234d3c; color:#f9f8ec; }
.story-hero-pattern { position:absolute; right:-8px; top:-94px; color:#a6b785; opacity:.1; font-size:345px; line-height:1; pointer-events:none; }
.story-portrait { position:relative; display:grid; width:112px; height:112px; grid-row:1 / 3; place-items:center; border:5px solid #ffffff24; border-radius:50%; background:#cfc398; color:#325542; font:700 34px "Manrope",sans-serif; box-shadow:0 12px 20px #0e30282c; }
.story-identity { position:relative; max-width:90%; }
.story-identity .eyebrow { color:#c7d6b4; font-size:9px; }
.story-identity h1 { margin:10px 0; color:#fffbee; font:500 clamp(28px,3.4vw,42px)/1.13 Georgia,serif; letter-spacing:-1.1px; overflow-wrap:anywhere; }
.story-identity > p { margin:0; color:#d1dbc2; font-size:12px; line-height:1.7; }
.story-origin-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.story-origin-tags span { padding:4px 9px; border:1px solid #a8c29340; border-radius:30px; color:#d8e2c5; font-size:9px; }
.story-private { position:absolute; right:24px; top:20px; color:#bbc9ad; font-size:9px; }
.story-hero-actions { position:relative; display:flex; align-items:center; flex-wrap:wrap; gap:10px; grid-column:2; }
.story-hero-actions .button { min-height:36px; font-size:10px; }
.story-photo-button { color:#edf1dd; background:#416653; border:1px solid #728873; }
.story-remove-photo { color:#c2d3b5; font-size:10px; }
.story-layout { display:grid; grid-template-columns:minmax(0,1.75fr) minmax(230px,1fr); gap:24px; align-items:start; margin-top:24px; }
.story-main,.story-side { display:grid; gap:24px; min-width:0; }
.story-section { min-width:0; padding:27px; border:1px solid #e4e8dc; border-radius:15px; background:#fffef9; }
.story-section-head { display:flex; justify-content:space-between; align-items:center; gap:18px; margin-bottom:24px; }
.story-section-head h2 { margin:6px 0 0; color:#314d3b; font:500 26px/1.2 Georgia,serif; letter-spacing:-.5px; }
.story-section-head .eyebrow { color:#8d9578; font-size:8px; }
.story-section-head > .button { flex-shrink:0; }
.story-section-head .text-button { font-size:10px; }
.biography-text { margin:0; color:#596756; font-size:13px; line-height:1.95; white-space:pre-wrap; overflow-wrap:anywhere; }
.story-empty { display:grid; gap:10px; justify-items:start; padding:14px 0; color:#8b947f; }
.story-empty > span { font:50px/.9 Georgia,serif; color:#b2ae82; }
.story-empty p { margin:0; color:#839079; font-size:12px; line-height:1.8; }
.story-empty .text-button { padding-left:0; font-size:11px; }
.story-facts { padding:25px; border:1px solid #e3e8d9; border-radius:14px; background:#f1f4e9; }
.story-facts dl { display:grid; gap:19px; margin:21px 0; }
.story-facts dt { margin-bottom:5px; color:#8a947e; font-size:10px; }
.story-facts dd { margin:0; color:#476043; font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
.story-facts .text-button { font-size:10px; }
.story-contribute { padding:25px; border:1px solid #e4e8dc; border-radius:14px; background:#fbfcf6; }
.story-contribute h3 { margin:10px 0 21px; color:#59704c; font:500 22px/1.25 Georgia,serif; }
.story-contribute-choice { display:flex; gap:11px; align-items:center; width:100%; padding:15px 0; border:0; border-top:1px solid #e5e9dc; background:transparent; text-align:left; cursor:pointer; }
.story-contribute-choice > span:first-child { width:33px; font-size:23px; color:#8a9666; }
.story-contribute-choice > span:nth-child(2) { display:grid; flex:1; gap:5px; }
.story-contribute-choice strong { color:#4e6848; font-size:11px; font-weight:600; }
.story-contribute-choice small { color:#919b83; font-size:9px; }
.story-contribute-choice b { color:#98a282; font-size:14px; font-weight:400; }
.story-private-note { display:flex; gap:12px; padding:0 10px; color:#9aa38b; }
.story-private-note > span { font-size:23px; }
.story-private-note p { margin:0; font-size:10px; line-height:1.7; }
.story-side > .text-button { justify-self:start; font-size:10px; }
.life-timeline { display:grid; gap:25px; margin:0; padding:0; list-style:none; }
.life-event { position:relative; display:grid; grid-template-columns:98px minmax(0,1fr); gap:18px; }
.life-event::before { position:absolute; content:""; top:5px; bottom:-30px; left:105px; width:1px; background:#e1e6d9; }
.life-event:last-child::before { bottom:0; }
.life-event::after { position:absolute; content:""; top:5px; left:101px; width:9px; height:9px; border:2px solid #fffefa; border-radius:50%; background:#b1b883; }
.life-event-date { display:grid; gap:5px; align-content:start; padding-right:5px; }
.life-event-date > span { color:#74825d; font-size:11px; line-height:1.5; font-weight:600; }
.life-event-date > small { color:#a0a88d; font-size:9px; }
.life-event-card { min-width:0; padding-left:7px; }
.life-event-card h3 { margin:0 0 8px; color:#45603e; font-size:14px; font-weight:600; overflow-wrap:anywhere; }
.life-event-place { color:#8f977d; font-size:10px; }
.life-event-card > p { margin:9px 0 10px; color:#78846d; font-size:12px; line-height:1.8; white-space:pre-wrap; overflow-wrap:anywhere; }
.source-link { color:#778c65; font-size:9px; line-height:1.5; text-decoration:none; }
.life-event-actions { display:flex; gap:14px; margin-top:7px; }
.life-event-actions .text-button { color:#9aa28e; font-size:9px; }
.story-collection { margin-top:24px; }
.story-asset-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.story-asset { min-width:0; overflow:hidden; border:1px solid #e3e7d9; border-radius:11px; background:#fffefa; }
.story-asset-preview { display:grid; min-height:142px; aspect-ratio:16/10; justify-items:center; align-content:center; gap:10px; background:#edf1e5; }
.story-asset-preview > span { color:#aab293; font-size:40px; }
.story-asset-preview > small { color:#939f81; font-size:10px; }
.story-asset-preview video { width:100%; height:100%; max-height:220px; background:#263b2c; }
.story-asset-copy { padding:16px; }
.story-asset-copy .eyebrow { font-size:7px; color:#99a087; }
.story-asset h3 { margin:8px 0; color:#45613e; font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.story-asset-copy > p { color:#9da58e; font-size:9px; }
.story-asset-actions { display:flex; flex-wrap:wrap; gap:11px; margin-top:15px; align-items:center; }
.story-asset-actions .button { width:100%; font-size:9px; }
.story-asset-actions .text-button { font-size:9px; text-decoration:none; }
.story-empty-wide { justify-items:center; text-align:center; padding:28px 0; gap:18px; }
.story-testimonies { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:14px; }
.story-testimonies article { padding:18px; border-left:2px solid #c2c998; background:#f6f7ee; }
.story-testimonies strong { color:#738360; font-size:11px; }
.story-testimonies p { font-size:12px; line-height:1.7; white-space:pre-wrap; overflow-wrap:anywhere; }
.story-testimonies .text-button { font-size:10px; }
.story-details { padding:14px; border:1px solid #e4e8dc; border-radius:9px; color:#708060; background:#f8f9f1; }
.story-details summary { cursor:pointer; color:#687b55; font-size:12px; }
.story-details .form-grid { margin-top:13px; }
.asset-picker { display:grid; justify-items:center; padding:22px; border:1px dashed #b9c8a5; border-radius:12px; background:#f5f7ed; text-align:center; }
.asset-picker-symbol { color:#8a9a6e; font-size:36px; }
.asset-picker > strong { margin-top:8px; color:#536d45; font-size:13px; }
.asset-picker > p { margin:9px 0 14px; font-size:11px; color:#909c7f; }
.asset-picker .text-button { margin-top:10px; font-size:11px; }
.file-control { position:relative; overflow:hidden; cursor:pointer; }
.file-control input { position:absolute; inset:0; opacity:0; width:100%; height:100%; cursor:pointer; padding:0; }
.file-control:focus-within { outline:2px solid #8b9f70; outline-offset:3px; }
.asset-preview-wrap { display:grid; justify-items:center; gap:12px; padding:12px; border-radius:10px; background:#edf2e6; }
.asset-preview-wrap img,.asset-preview-wrap video { max-height:300px; max-width:100%; border-radius:8px; object-fit:contain; }
.asset-preview-wrap .text-button { font-size:11px; }
.video-record-panel { display:grid; gap:4px; justify-items:start; }
.asset-progress { padding:13px; border-radius:9px; background:#edf3e5; color:#688052; font-size:12px; }
.civil-family-review{display:grid;gap:14px}.civil-family-intro{padding:16px;border-radius:12px;background:#f3f6ee}.civil-family-intro h3{margin:5px 0 6px;color:#284b3d;font-size:18px}.civil-family-intro p{margin:0;color:#73806f;font-size:11px;line-height:1.7}.civil-family-card{display:grid;gap:13px;padding:17px;border:1px solid #dfe6d8;border-radius:13px;background:#fffef9}.civil-family-heading{display:flex;gap:11px;align-items:center}.civil-family-heading>div{min-width:0;flex:1}.civil-family-heading strong,.civil-family-heading small{display:block}.civil-family-heading strong{color:#294b3d;font-size:14px}.civil-family-heading small{margin-top:2px;color:#879487;font-size:9px;line-height:1.5}.civil-family-role{display:grid;width:31px;height:31px;place-items:center;border-radius:9px;background:#edf2e8;color:#6b7f5d;font-size:9px}.civil-family-toggle{display:flex;gap:6px;align-items:center;color:#758570;font-size:9px}.civil-family-toggle input{width:16px;height:16px;margin:0;accent-color:#426a59}.civil-family-evidence{margin:0;padding:10px 12px;border-left:2px solid #d7c88b;background:#faf6e9;color:#7d775f;font-size:10px;line-height:1.6}.civil-family-card[aria-disabled="true"]{opacity:.55}.civil-family-card[aria-disabled="true"] #civil-father-fields,.civil-family-card[aria-disabled="true"] #civil-mother-fields{pointer-events:none}.civil-subject-card{border-color:#cbd9c7;background:#fbfdf7}.extraction-warning-inline{margin:0;padding:10px 12px;border-left:3px solid #c6a94e;background:#faf5e5;color:#766a47;font-size:10px;line-height:1.6}
@media(max-width:640px){.civil-family-card{padding:14px}.civil-family-heading{align-items:flex-start}.civil-family-toggle{margin-top:5px}.civil-family-intro h3{font-size:16px}}
.extraction-dialog { width:min(790px,calc(100% - 32px)); }
.extraction-state { margin:0; padding:14px; border-radius:9px; background:#edf3e6; color:#637d4f; font-size:12px; line-height:1.7; }
.extraction-warnings p { margin:0 0 7px; padding:9px 12px; border-left:2px solid #c5b778; color:#8d825b; background:#f8f4e5; font-size:11px; line-height:1.6; }
#extraction-review { display:grid; gap:15px; }
.extraction-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.extraction-field { min-width:0; padding:15px; border:1px solid #e0e7d5; border-radius:10px; background:#fafbf5; }
.extraction-field-choice { display:flex; gap:9px; align-items:center; margin-bottom:12px; color:#617c4d; font-size:12px; font-weight:600; }
.extraction-field-choice input { flex:0 0 auto; width:17px; height:17px; margin:0; accent-color:#617b4f; }
.extraction-proposal-label { display:grid; gap:6px; color:#879878; font-size:9px; }
.extraction-current { color:#8e9b81; font-size:10px; line-height:1.6; }
.extraction-current strong { font-weight:500; color:#6b805b; }
.extraction-field blockquote { margin:13px 0 8px; padding-left:10px; border-left:2px solid #d5dfc6; color:#7c8b6c; font-size:10px; line-height:1.6; white-space:pre-wrap; overflow-wrap:anywhere; }
.extraction-field > small { font-size:9px; color:#a0ab93; }
.extraction-text { max-height:240px; overflow:auto; margin:14px 0 0; color:#687a5b; font:11px/1.8 ui-monospace,monospace; white-space:pre-wrap; overflow-wrap:anywhere; }
.extraction-mentions { padding:0 3px; }
.extraction-mentions h3 { font-size:13px; font-weight:600; color:#71815e; }
.extraction-mentions dl { display:grid; gap:8px; }
.extraction-mentions dl > div { display:grid; grid-template-columns:140px minmax(0,1fr); gap:13px; font-size:11px; }
.extraction-mentions dt { color:#98a187; }
.extraction-mentions dd { margin:0; color:#718263; overflow-wrap:anywhere; }
@media(max-width:1150px) { .story-layout { gap:16px; grid-template-columns:minmax(0,1.6fr) minmax(215px,1fr); } .story-section { padding:22px; } .story-facts,.story-contribute { padding:19px; } .story-asset-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .life-event { grid-template-columns:76px minmax(0,1fr); gap:16px; } .life-event::before { left:82px; } .life-event::after { left:78px; } }
@media(max-width:760px) { .story-layout { grid-template-columns:1fr; } .story-side { grid-template-columns:1fr 1fr; gap:16px; } .story-private-note,.story-side > .text-button { grid-column:1/-1; } }
@media(max-width:640px) {
  .story-back { margin-bottom:16px; } .person-story-hero { grid-template-columns:70px minmax(0,1fr); gap:15px; min-height:220px; padding:31px 20px 23px; border-radius:14px; } .story-portrait { width:70px; height:70px; border-width:3px; font-size:24px; grid-row:1; } .story-identity { max-width:100%; } .story-identity h1 { font-size:28px; margin:8px 0; } .story-identity > p { font-size:11px; } .story-identity .eyebrow { font-size:7px; } .story-hero-actions { grid-column:1/-1; margin-top:7px; } .story-private { top:12px; right:15px; font-size:8px; } .story-hero-pattern { font-size:260px; } .story-layout { margin-top:16px; } .story-main { gap:16px; } .story-section { padding:20px 17px; border-radius:12px; } .story-section-head { gap:10px; margin-bottom:19px; } .story-section-head h2 { font-size:24px; } .story-section-head .eyebrow { font-size:7px; } .story-section-head .button { font-size:9px; padding:8px; } .story-side { grid-template-columns:1fr; } .story-facts dl { grid-template-columns:1fr 1fr; gap:16px; } .story-collection { margin-top:16px; } .story-asset-grid { grid-template-columns:1fr; } .story-asset { display:grid; grid-template-columns:100px minmax(0,1fr); } .story-asset-preview { height:100%; aspect-ratio:auto; min-height:150px; } .story-asset-preview video { height:auto; min-height:150px; } .story-asset-preview > small { max-width:80px; text-align:center; line-height:1.5; } .story-asset-copy { padding:14px; } .story-asset-actions { gap:9px; } .story-asset-actions .button { min-height:38px; } .life-event { grid-template-columns:68px minmax(0,1fr); gap:17px; } .life-event::before { left:74px; } .life-event::after { left:70px; } .life-event-date > span { font-size:10px; } .life-event-card h3 { font-size:13px; } .life-event-card > p { font-size:11px; } .extraction-fields { grid-template-columns:1fr; } .extraction-dialog .modal-actions { flex-direction:column; } .extraction-dialog .modal-actions > * { width:100%; } .asset-picker { padding:20px 13px; } .extraction-mentions dl > div { grid-template-columns:110px minmax(0,1fr); }
}
.story-archives { margin-top:16px; }
.story-archive-row { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:12px 0; border-bottom:1px solid #e8ebdf; color:#859275; font-size:11px; }
.story-archive-row span { overflow-wrap:anywhere; }
.story-archive-row .text-button { font-size:10px; }
.assistant-suggestion-card { cursor:default; text-align:left; }
.assistant-suggestion-card .suggestion-number { min-width:28px; }
.assistant-card-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:16px; }
.assistant-card-actions .text-button { font-size:10px; }
@media(max-width:640px) { .assistant-card-actions { flex-direction:column; align-items:stretch; } .assistant-card-actions .button { width:100%; } }
.transcription-inline { display:grid; gap:8px; margin:12px 0 4px; padding:12px 13px; border:1px solid #dde6d8; border-radius:10px; background:#f6f8f2; }
.transcription-inline p { margin:0; color:#647467; font-size:11px; line-height:1.7; white-space:pre-wrap; overflow-wrap:anywhere; }
.transcription-inline small { color:#879283; font-size:9px; line-height:1.6; }
.transcription-inline .text-button,.transcription-inline .button { justify-self:start; }
.transcription-pending { background:#f6f3e8; border-color:#e6dcc1; }
.transcription-review-needed { background:#fff8e8; border-color:#ead8ac; }
.transcription-validated { background:#eef6ec; border-color:#d3e4cf; }
#transcription-player audio,#transcription-player video { width:100%; max-height:320px; border-radius:10px; background:#111; }
#transcription-reviewed { min-height:220px; line-height:1.7; }
@media(max-width:640px) { #transcription-review .modal-actions { flex-direction:column; } #transcription-review .modal-actions > * { width:100%; } }
.restitution-dialog { width:min(980px,calc(100% - 24px)); max-height:94vh; }
.restitution-content { padding:0; overflow:hidden; }
.restitution-toolbar { position:sticky; top:0; z-index:3; display:grid; grid-template-columns:minmax(0,1fr) minmax(220px,320px); gap:18px; align-items:end; padding:24px 26px 18px; border-bottom:1px solid #e4e8df; background:#fffef9; }
.restitution-toolbar h2 { margin:5px 0 0; color:var(--forest); font-family:Manrope,sans-serif; font-size:25px; }
.restitution-toolbar label { display:grid; gap:6px; color:#71806f; font-size:10px; }
.restitution-person-results { position:sticky; top:86px; z-index:4; display:grid; max-height:260px; overflow:auto; padding:8px 18px 14px; border-bottom:1px solid #e4e8df; background:#fffef9; }
.restitution-person-results button { display:flex; gap:11px; align-items:center; padding:10px; border:0; border-bottom:1px solid #edf0e8; background:transparent; text-align:left; cursor:pointer; }
.restitution-person-results button:hover { background:#f4f7f0; }
.restitution-person-results strong,.restitution-person-results small { display:block; }
.restitution-person-results small { color:#94a08f; font-size:9px; }
#restitution-content { display:grid; gap:16px; max-height:calc(94vh - 96px); overflow:auto; padding:20px 26px 32px; background:#f5f6f0; }
.restitution-hero { display:grid; grid-template-columns:92px minmax(0,1fr) auto; gap:18px; align-items:center; padding:24px; border-radius:16px; background:var(--forest); color:#fff; }
.restitution-hero h3 { margin:5px 0 7px; font-family:Manrope,sans-serif; font-size:28px; }
.restitution-hero p { margin:0; color:#d2ded4; font-size:11px; }
.restitution-portrait { width:92px; height:92px; overflow:hidden; border:3px solid #ffffff26; border-radius:50%; background:#6e856f; display:grid; place-items:center; font-size:27px; font-weight:700; }
.restitution-portrait img,.restitution-mini-avatar img { width:100%; height:100%; object-fit:cover; }
.restitution-origin-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:11px; }
.restitution-origin-tags span { padding:5px 8px; border-radius:12px; background:#ffffff14; color:#e6eee5; font-size:9px; }
.restitution-section { padding:22px; border:1px solid #e0e5da; border-radius:14px; background:#fff; }
.restitution-heading { display:flex; justify-content:space-between; gap:14px; align-items:start; margin-bottom:17px; }
.restitution-heading h3 { margin:5px 0 0; color:var(--forest); font-family:Manrope,sans-serif; font-size:21px; }
.restitution-heading > span { color:#80917a; font-size:10px; }
.restitution-biography { margin:9px 0 0; color:#5f7161; font-size:13px; line-height:1.9; white-space:pre-wrap; }
.restitution-timeline { display:grid; gap:0; margin:0; padding:0; list-style:none; }
.restitution-timeline li { display:grid; grid-template-columns:105px minmax(0,1fr); gap:18px; position:relative; padding:0 0 22px; }
.restitution-timeline li:not(:last-child)::after { content:""; position:absolute; left:111px; top:18px; bottom:-1px; width:1px; background:#dfe6d9; }
.restitution-timeline li::before { content:""; position:absolute; left:107px; top:10px; width:9px; height:9px; border-radius:50%; background:#80976b; box-shadow:0 0 0 4px #eef3e9; }
.restitution-time strong,.restitution-time small { display:block; text-align:right; }
.restitution-time strong { color:#65795f; font-size:10px; }
.restitution-time small { margin-top:4px; color:#a0aa98; font-size:8px; }
.restitution-event { padding-left:12px; min-width:0; }
.restitution-event h4 { margin:0; color:#49604d; font-size:13px; }
.restitution-event p { margin:7px 0 0; color:#768476; font-size:11px; line-height:1.7; white-space:pre-wrap; }
.restitution-evidence { display:flex; flex-wrap:wrap; gap:5px; margin-top:8px; }
.restitution-evidence span { padding:4px 6px; border-radius:7px; background:#f0f3eb; color:#81917b; font-size:8px; }
.restitution-tree,.restitution-tree ul { list-style:none; margin:0; padding:0; }
.restitution-tree ul { margin-left:24px; padding-left:15px; border-left:1px solid #dbe3d5; }
.restitution-descendant { margin:8px 0; }
.restitution-descendant > button { display:flex; gap:10px; align-items:center; width:100%; padding:9px 10px; border:1px solid #e5e9df; border-radius:10px; background:#fafbf7; text-align:left; cursor:pointer; }
.restitution-descendant strong,.restitution-descendant small,.restitution-descendant em { display:block; }
.restitution-descendant small { color:#93a08d; font-size:9px; }
.restitution-descendant em { margin-top:2px; color:#748273; font-size:9px; font-style:normal; }
.restitution-mini-avatar { flex:0 0 34px; width:34px; height:34px; overflow:hidden; display:grid; place-items:center; border-radius:50%; background:#e7ede1; color:#6e8068; font-size:10px; font-weight:700; }
.restitution-memory-list,.restitution-memorial-list { display:grid; gap:12px; }
.restitution-memory-list article,.restitution-memorial-list article { padding:15px; border:1px solid #e3e8de; border-radius:11px; background:#fafbf7; }
.restitution-memory-meta { display:flex; justify-content:space-between; gap:12px; color:#879585; font-size:9px; }
.restitution-memory-meta strong { color:#5f755f; font-size:10px; }
.restitution-memory-question { color:#5f7161; font-size:10px; font-weight:600; }
.restitution-memory-list audio { width:100%; margin:8px 0; }
.restitution-memory-list blockquote { margin:9px 0 0; padding-left:11px; border-left:2px solid #c7d2bb; color:#617060; font-size:11px; line-height:1.7; white-space:pre-wrap; }
.restitution-memorial-list article { display:grid; grid-template-columns:minmax(0,160px) minmax(0,1fr); gap:15px; }
.restitution-memorial-list img { width:100%; height:130px; object-fit:cover; border-radius:9px; }
.restitution-memorial-list h4 { margin:5px 0 9px; color:var(--forest); font-size:15px; }
.restitution-memorial-list p { margin:5px 0; color:#6c7a6d; font-size:10px; line-height:1.6; }
.restitution-memorial-list small { color:#8d9989; font-size:9px; }
.restitution-empty { padding:18px; border:1px dashed #d7dfd1; border-radius:10px; background:#fafbf7; color:#83907f; font-size:11px; line-height:1.6; }
.restitution-empty strong,.restitution-empty span { display:block; }
.restitution-warning { margin:11px 0 0; padding:9px 11px; border-left:3px solid #c3aa67; background:#faf6e8; color:#847754; font-size:9px; line-height:1.6; }
.restitution-private-note { margin:0; color:#879386; font-size:9px; line-height:1.7; text-align:center; }
@media(max-width:640px) {
  .restitution-dialog { width:100vw; height:100dvh; max-width:none; max-height:none; margin:0; border-radius:0; }
  .restitution-content { min-height:100dvh; }
  .restitution-toolbar { grid-template-columns:1fr; gap:10px; padding:18px 16px 13px; }
  .restitution-toolbar h2 { font-size:22px; }
  .restitution-person-results { top:113px; padding:6px 10px 12px; }
  #restitution-content { max-height:calc(100dvh - 118px); padding:13px 12px 28px; }
  .restitution-hero { grid-template-columns:64px minmax(0,1fr); gap:12px; padding:18px 14px; }
  .restitution-hero .private-tag { grid-column:1/-1; justify-self:start; }
  .restitution-portrait { width:64px; height:64px; font-size:20px; }
  .restitution-hero h3 { font-size:22px; }
  .restitution-section { padding:16px 13px; }
  .restitution-heading { align-items:flex-start; }
  .restitution-heading h3 { font-size:18px; }
  .restitution-timeline li { grid-template-columns:76px minmax(0,1fr); gap:13px; padding-bottom:18px; }
  .restitution-timeline li::before { left:80px; }
  .restitution-timeline li:not(:last-child)::after { left:84px; }
  .restitution-tree ul { margin-left:13px; padding-left:10px; }
  .restitution-memorial-list article { grid-template-columns:1fr; }
  .restitution-memorial-list img { height:180px; }
}
.memorial-section .story-testimonies { display:grid; gap:14px; }
.memorial-card { display:grid; gap:10px; }
.memorial-card .story-section-head { margin-bottom:2px; }
.memorial-card p { margin:0; color:#68786d; font-size:11px; line-height:1.7; white-space:pre-wrap; overflow-wrap:anywhere; }
.memorial-photo { width:100%; max-height:280px; border-radius:10px; object-fit:cover; background:#edf2e8; }
@media(max-width:640px) { .memorial-photo { max-height:220px; } }

/* Lot 6 · Les chemins de parenté */
.kinship-entry { position:relative; display:flex; align-items:center; justify-content:space-between; gap:28px; overflow:hidden; margin-bottom:24px; padding:29px 31px; border-radius:18px; color:white; background:var(--forest); }
.kinship-entry::after { content:""; position:absolute; width:220px; height:220px; right:125px; top:-148px; border:1px solid #d4a64e45; border-radius:50%; box-shadow:0 0 0 32px #e9d9a90c,0 0 0 66px #e9d9a907; pointer-events:none; }
.kinship-entry > * { position:relative; z-index:1; }
.kinship-entry h2 { margin:7px 0 9px; font-family:Manrope,sans-serif; font-size:clamp(20px,2vw,27px); letter-spacing:-.8px; line-height:1.3; }
.kinship-entry p { max-width:560px; margin:0; color:#cbdcd0; font-size:13px; line-height:1.65; }
.kinship-entry .button { flex-shrink:0; }
.union-entry { display:flex; align-items:center; justify-content:space-between; gap:28px; margin:-4px 0 24px; padding:27px 31px; border:1px solid #d7e4d7; border-radius:18px; background:linear-gradient(120deg,#f1f5ed,#e4eee3); }
.union-entry h2 { margin:7px 0 9px; color:var(--forest); font-family:Manrope,sans-serif; font-size:clamp(20px,2vw,27px); letter-spacing:-.8px; line-height:1.3; }
.union-entry p { max-width:610px; margin:0; color:#607369; font-size:13px; line-height:1.65; }
.union-entry .button { flex-shrink:0; }
#page-union .page-heading h1 { max-width:680px; }
.union-intro { display:flex; gap:12px; align-items:flex-start; margin:0 0 20px; padding:14px 16px; border-left:3px solid var(--gold); background:#fbf8ea; color:#6d725f; font-size:12px; line-height:1.65; }
.union-intro > span { color:#a88332; font-size:20px; }
.union-intro p { margin:0; }
.union-layout { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(250px,.8fr); gap:18px; }
.union-layout .content-card,.union-requests,.union-rules { padding:25px; }
.union-layout h2,.union-requests h2,.union-rules h2 { margin:7px 0 8px; color:var(--forest); font-family:Manrope,sans-serif; font-size:21px; letter-spacing:-.5px; }
.union-create .stack-form { margin-top:18px; }
.union-code { position:relative; overflow:hidden; background:var(--forest); color:white; }
.union-code::after { position:absolute; content:"↔"; right:18px; bottom:-32px; color:rgba(232,199,111,.17); font-family:Georgia,serif; font-size:160px; line-height:1; }
.union-code > * { position:relative; z-index:1; }
.union-code .eyebrow,.union-code .helper { color:#c8d7c9; }
.union-code h2 { color:white; }
.union-code .button-outline { border-color:#9cbb9e; color:#f7f5ec; }
.union-code-value { margin:21px 0 12px; padding:16px; border:1px dashed rgba(255,255,255,.35); border-radius:10px; color:#f3d589; background:rgba(255,255,255,.08); font:700 16px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:.7px; overflow-wrap:anywhere; }
.union-code .text-button { color:#eed18a; }
.union-requests,.union-rules { margin-top:18px; }
.union-request-list { display:grid; gap:10px; margin-top:18px; }
.union-request { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:6px 15px; padding:16px; border:1px solid #e2e8df; border-radius:12px; background:#fbfcf8; }
.union-request-top { display:flex; align-items:center; gap:9px; min-width:0; }
.union-request-top strong { overflow:hidden; color:#344f40; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
.union-request > p,.union-request > small { grid-column:1; margin:0; color:#738177; font-size:11px; }
.union-request > .button { grid-column:2; grid-row:1/4; }
.union-request > div { grid-column:1/-1; }
.union-status,.union-rule-stance { display:inline-flex; width:max-content; max-width:100%; align-items:center; min-height:22px; padding:4px 7px; border-radius:20px; font-size:9px; font-weight:800; white-space:nowrap; }
.union-status-pending { color:#826b35; background:#fbf3d9; }.union-status-accepted { color:#3d7051; background:#e1efe1; }.union-status-declined,.union-status-expired { color:#8e6a63; background:#f5e9e7; }
.union-empty { display:flex; gap:13px; padding:22px 0 4px; color:#748078; }.union-empty > span { color:#b59850; font-size:27px; }.union-empty strong { display:block; margin-bottom:4px; color:#4b6656; }.union-empty p { margin:0; font-size:12px; line-height:1.6; }
.family-match-list { display:grid; gap:13px; margin-top:18px; }
.family-match-card { padding:18px; border:1px solid #dce4d7; border-radius:13px; background:#fbfcf8; }
.family-match-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.family-match-head h3 { margin:6px 0 0; color:var(--forest); font-family:Manrope,sans-serif; font-size:17px; line-height:1.45; }
.family-match-score { flex-shrink:0; padding:6px 9px; border-radius:20px; background:#e7eee2; color:#536d55; font-size:10px; font-weight:800; }
.family-match-card > p,.family-match-cross > p { color:#6b786c; font-size:11px; line-height:1.7; }
.family-match-signals { display:flex; flex-wrap:wrap; gap:7px; margin:12px 0; padding:0; list-style:none; }
.family-match-signals li { display:flex; gap:5px; align-items:center; padding:6px 8px; border-radius:8px; background:#eef2e8; color:#667566; font-size:9px; }
.family-match-signals strong { color:#4f6653; }
.family-match-actions { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin-top:14px; }
.family-match-cross { margin-top:16px; padding:18px; border:1px solid #dce4d7; border-radius:13px; background:#f6f8f2; }
.family-match-cross h3 { margin:7px 0 9px; color:var(--forest); font-size:17px; }
.family-match-cross > article { margin-top:10px; padding:12px; border:1px solid #e1e6dc; border-radius:10px; background:white; }
.family-match-cross > article > strong,.family-match-cross > article > span { display:block; }
.family-match-cross > article > span { margin-top:4px; color:#7a8679; font-size:10px; }
@media(max-width:640px) { .family-match-head { flex-direction:column; } .family-match-actions { flex-direction:column; align-items:stretch; } .family-match-actions .button { width:100%; } }
.union-result { margin-top:12px; padding:18px; border-radius:11px; }.union-result h3 { margin:6px 0; font-family:Manrope,sans-serif; font-size:18px; }.union-result > p { margin:0; line-height:1.65; font-size:12px; }.union-result > small { display:block; margin-top:13px; color:#6e796e; font-size:10px; line-height:1.6; }.union-result-caution { border:1px solid #edd8b8; background:#fff7ea; color:#775e34; }.union-result-review { border:1px solid #d9e2cd; background:#f4f7ef; color:#526848; }.union-result-clear { border:1px solid #d5e6d8; background:#eff8f0; color:#3d674c; }.union-result-wait { border:1px solid #e2e5df; background:#f8f9f5; color:#657268; }
.union-findings { display:grid; gap:7px; margin:14px 0 0; padding:0; list-style:none; }.union-findings li { display:grid; gap:3px; padding:10px; border-radius:8px; background:rgba(255,255,255,.56); font-size:11px; line-height:1.55; }.union-findings strong { font-size:10px; }.union-shared { margin-top:8px; }
.union-rules { margin-bottom:24px; }.union-rule-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; margin-top:17px; }.union-rule-form label { display:grid; gap:7px; color:#3d4b43; font-size:12px; font-weight:700; }.union-rule-form label:nth-of-type(4),.union-rule-form .button { grid-column:1/-1; }.union-rule-form .button { justify-self:start; }
.union-rule-list { display:grid; gap:9px; margin-top:18px; }.union-rule-list article { position:relative; padding:15px 15px 12px; border:1px solid #e3e7de; border-radius:11px; background:#fcfdf9; }.union-rule-list strong { display:block; margin:8px 0 5px; color:#425a4b; font-size:13px; }.union-rule-list p { margin:0; color:#69776e; font-size:11px; line-height:1.6; white-space:pre-wrap; }.union-rule-list .text-button { margin-top:6px; }.union-rule-prohibited { color:#8a5b42; background:#fae9dd; }.union-rule-permitted { color:#3c6d4d; background:#e4f0e2; }.union-rule-ask { color:#826b35; background:#fbf2d9; }
#union-scanner-video { width:100%; max-height:360px; margin:15px 0 4px; border-radius:12px; background:#101c17; object-fit:cover; }
@media(max-width:760px) { .union-entry { flex-direction:column; align-items:flex-start; padding:24px 21px; }.union-entry .button { width:100%; }.union-layout { grid-template-columns:1fr; }.union-rule-form { grid-template-columns:1fr; }.union-rule-form label:nth-of-type(4),.union-rule-form .button { grid-column:auto; }.union-rule-form .button { width:100%; }.union-request { grid-template-columns:1fr; }.union-request > .button { grid-column:1; grid-row:auto; width:100%; }.union-layout .content-card,.union-requests,.union-rules { padding:20px 17px; } }
.story-kinship-entry { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:-5px 0 23px; padding:19px 23px; background:#eaf0e7; border:1px solid #d9e4d7; border-radius:14px; }
.story-kinship-entry strong { display:block; margin-top:5px; font-size:17px; color:var(--forest); }
#page-kinship .page-heading h1 { max-width:690px; }
#page-kinship .page-heading .private-tag { flex-shrink:0; }
.kinship-picker { display:grid; grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr) auto; align-items:end; gap:15px; padding:24px; border:1px solid var(--line); border-radius:17px; background:var(--paper); box-shadow:0 6px 24px #173f3504; }
.kinship-person-field { min-width:0; }
.kinship-person-field label { display:block; margin-bottom:9px; font-size:12px; font-weight:700; color:#45574c; }
.kinship-person-field select { min-width:0; max-width:100%; text-overflow:ellipsis; padding-right:25px; }
.kinship-swap { width:40px; height:44px; border:1px solid var(--line); border-radius:10px; background:var(--sage); color:var(--forest); font-size:23px; }
.kinship-swap:hover { border-color:var(--forest-soft); }
.kinship-picker > .helper { grid-column:1/-1; margin:0; }
.kinship-status { min-height:38px; padding:13px 2px 7px; color:#5a7063; font-size:12px; line-height:1.5; }
.kinship-result-heading { display:flex; justify-content:space-between; align-items:center; gap:18px; margin:20px 0; }
.kinship-result-heading h2 { margin:8px 0 0; max-width:770px; font-family:Manrope,sans-serif; font-size:23px; font-weight:700; letter-spacing:-.7px; overflow-wrap:anywhere; line-height:1.45; }
.kinship-result-heading h2 > span { padding:0 7px; color:var(--clay); font-family:inherit; }
.kinship-result-heading .filter-chip { flex-shrink:0; }
.kinship-path { margin:0 0 19px; padding:25px 27px 0; border:1px solid #dce5d8; border-radius:17px; background:var(--paper); overflow:hidden; }
.kinship-path-heading { display:flex; align-items:flex-start; gap:16px; }
.kinship-path-heading > div { min-width:0; }
.kinship-path-number { display:grid; place-items:center; flex-shrink:0; width:39px; height:39px; border:1px solid #dae5d7; border-radius:50%; color:var(--forest); background:var(--sage); font-size:13px; font-weight:800; }
.kinship-category { display:inline-block; color:#59735d; font-size:10px; font-weight:800; letter-spacing:1px; text-transform:uppercase; }
.kinship-path-heading h3 { margin:6px 0; color:var(--forest-deep); font-family:Manrope,sans-serif; font-size:21px; line-height:1.4; letter-spacing:-.5px; overflow-wrap:anywhere; }
.kinship-path-heading p { margin:0; max-width:800px; color:#697b6d; font-size:12px; line-height:1.7; }
.kinship-route { display:grid; grid-template-columns:minmax(0,1fr); gap:19px; list-style:none; margin:25px 0 19px; padding:0; }
.kinship-route-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.kinship-route-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.kinship-route > li { min-width:0; position:relative; }
.kinship-person { display:flex; align-items:center; gap:11px; min-width:0; width:100%; min-height:100px; text-align:left; padding:15px; border:1px solid #dbe6d7; border-radius:13px; background:#f2f5ed; color:var(--ink); }
.kinship-person > span:last-child { min-width:0; }
.kinship-person strong { display:block; font-size:14px; line-height:1.4; overflow-wrap:anywhere; }
.kinship-person small { display:block; margin-bottom:4px; color:#6c7e6e; font-size:10px; }
.kinship-person:hover { background:#e8efdf; border-color:#afc8ac; }
.kinship-person-avatar { flex-shrink:0; display:grid; place-items:center; width:43px; height:43px; overflow:hidden; border-radius:50%; background:var(--forest); color:#e9d3a0; font-size:13px; font-weight:700; }
.kinship-person-avatar img { width:100%; height:100%; object-fit:cover; }
.kinship-person-visit { display:block; margin-top:7px; color:var(--forest-soft); font-size:10px; font-weight:700; }
.kinship-edge { position:relative; display:flex; gap:9px; padding:16px 4px 0; line-height:1.55; }
.kinship-edge-arrow { display:grid; place-items:center; flex-shrink:0; width:22px; height:22px; border-radius:50%; color:var(--forest); background:#e5ecdF; font-size:0; }
.kinship-edge-arrow::after { content:"→"; font-size:15px; }
.kinship-edge > div { min-width:0; }
.kinship-edge strong { display:block; color:var(--forest); font-size:11px; overflow-wrap:anywhere; }
.kinship-edge p { margin:7px 0; color:#667368; white-space:pre-wrap; overflow-wrap:anywhere; font-size:12px; }
.kinship-edge small { display:block; color:#697d6e; font-size:10px; }
.kinship-route > li:not(:last-child)::after { position:absolute; content:"→"; top:40px; right:-16px; width:13px; color:#80a480; font-size:17px; }
.kinship-path-note { margin:0 -27px; padding:13px 27px; border-top:1px solid #e5ebdf; background:#f8f9f3; color:#6c7a69; font-size:11px; line-height:1.65; }
.kinship-path-declared { border-color:#e7dac9; }
.kinship-path-declared .kinship-category { color:#936b39; }
.kinship-path-declared .kinship-path-number { color:#8a602c; background:#f6f0e3; border-color:#e7dbc2; }
.kinship-path-alliance_mixed { border-color:#dbdfea; }
.kinship-path-alliance_mixed .kinship-category { color:#667091; }
.kinship-path-alliance_mixed .kinship-path-number { color:#606d91; background:#f0f1f6; border-color:#dadfea; }
.kinship-route-long { display:flex; flex-direction:column; gap:0; max-width:850px; margin-left:54px; }
.kinship-route-long > li { display:grid; grid-template-columns:minmax(170px,.9fr) minmax(0,1.5fr); gap:20px; padding-bottom:20px; }
.kinship-route-long .kinship-person { align-self:start; }
.kinship-route-long .kinship-edge { padding:13px 0 0; }
.kinship-route-long .kinship-edge-arrow::after { content:"↓"; }
.kinship-route-long > li:not(:last-child)::after { content:""; width:1px; height:calc(100% - 97px); top:99px; left:36px; right:auto; background:#b4c9b2; }
.kinship-no-path { display:flex; gap:23px; padding:30px; border:1px dashed #c2d2bd; border-radius:17px; background:#f0f4e9; }
.kinship-no-path-symbol { color:#73966f; font-size:45px; }
.kinship-no-path h3 { margin:7px 0 11px; color:var(--forest); font-family:Manrope,sans-serif; font-size:23px; letter-spacing:-.5px; }
.kinship-no-path p { max-width:660px; color:#667965; font-size:13px; line-height:1.8; }
.kinship-contexts { margin:32px 0 22px; }
.kinship-contexts .section-heading { margin-bottom:17px; }
.kinship-contexts .section-heading h2 { margin:7px 0; }
.kinship-context-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.kinship-context-card { min-width:0; position:relative; padding:23px; border:1px solid #e4e5d7; border-radius:15px; background:#fffef7; }
.kinship-context-icon { display:block; margin-bottom:14px; color:#b58b44; font-size:23px; }
.kinship-context-card h3 { margin:7px 0 13px; color:#3d4e3d; font-size:19px; line-height:1.45; overflow-wrap:anywhere; }
.kinship-context-card p { color:#7c7a64; font-size:12px; line-height:1.7; white-space:pre-wrap; overflow-wrap:anywhere; }
.kinship-context-card .kinship-context-relation { color:#626b51; font-weight:700; }
.kinship-context-card ul { list-style:none; padding:0; margin:16px 0 9px; border-top:1px solid #ebeadd; }
.kinship-context-card li { padding:12px 0 0; font-size:12px; line-height:1.6; }
.kinship-context-card li strong { display:block; color:#5a6953; overflow-wrap:anywhere; }
.kinship-context-card li span { color:#7e846d; white-space:pre-wrap; overflow-wrap:anywhere; }
.kinship-limits { display:flex; gap:14px; margin:22px 0 27px; padding:20px 23px; background:#eaf0e7; border-radius:13px; color:#60735f; }
.kinship-limits > span { color:var(--forest); font-size:23px; }
.kinship-limits strong { font-size:12px; color:#475e46; }
.kinship-limits p,.kinship-limits li { margin:7px 0 0; font-size:11px; line-height:1.7; overflow-wrap:anywhere; }
.kinship-limits ul { padding-left:18px; margin:8px 0; }
.kinship-next { margin-top:26px; padding:26px; border:1px solid var(--line); border-radius:17px; background:var(--paper); }
.kinship-next h2 { margin:8px 0; color:var(--forest); font-family:Manrope,sans-serif; font-size:21px; line-height:1.4; letter-spacing:-.5px; }
.kinship-next p { margin:0; color:#738171; font-size:12px; line-height:1.7; }
.kinship-next-choices { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; margin-top:20px; }
.kinship-choice { display:flex; flex-direction:column; align-items:flex-start; padding:18px; text-align:left; border:1px solid #dce5d7; border-radius:12px; color:var(--forest); background:#f4f6ef; }
.kinship-choice > span { margin-bottom:13px; font-size:20px; color:#9a843f; }
.kinship-choice strong { font-size:13px; }
.kinship-choice small { margin-top:5px; font-size:10px; color:#6d7d68; line-height:1.6; }
.kinship-choice:hover { background:#e8efdf; border-color:#a5bea0; }
@media(max-width:1150px) { .kinship-picker { grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr); } .kinship-picker > .button { grid-column:1/-1; justify-self:end; } .kinship-person { flex-direction:column; align-items:flex-start; } .kinship-route-long .kinship-person { flex-direction:row; align-items:center; } .kinship-entry { gap:20px; padding:25px; } }
@media(max-width:760px) { .kinship-entry,.story-kinship-entry { flex-direction:column; align-items:flex-start; } .kinship-route { display:flex; flex-direction:column; gap:0; margin-left:0; } .kinship-route > li { display:block; padding-bottom:17px; } .kinship-person,.kinship-route-long .kinship-person { flex-direction:row; align-items:center; min-height:87px; } .kinship-route > li:not(:last-child)::after { display:none; } .kinship-edge,.kinship-route-long .kinship-edge { padding:16px 12px 0; } .kinship-edge-arrow::after { content:"↓"; } .kinship-context-grid { grid-template-columns:1fr; } }
@media(max-width:640px) { .kinship-entry { border-radius:14px; padding:24px 21px; } .kinship-entry .button { width:100%; } .story-kinship-entry { padding:19px; } .story-kinship-entry .button { width:100%; font-size:12px; } .kinship-picker { grid-template-columns:1fr; padding:20px; gap:10px; } .kinship-person-field { width:100%; } .kinship-swap { justify-self:center; height:36px; min-height:36px; transform:rotate(90deg); margin:2px 0; } .kinship-picker > .button { width:100%; margin-top:8px; } .kinship-picker > .helper { margin-top:3px; } #page-kinship .page-heading .private-tag { align-self:flex-start; } .kinship-result-heading { gap:12px; align-items:flex-start; } .kinship-result-heading h2 { font-size:20px; } .kinship-result-heading .filter-chip { margin-top:5px; padding:6px 9px; font-size:10px; } .kinship-path { padding:21px 18px 0; } .kinship-path-heading { gap:11px; } .kinship-path-heading h3 { font-size:19px; } .kinship-path-number { width:31px; height:31px; font-size:11px; } .kinship-path-note { margin:0 -18px; padding:13px 18px; } .kinship-no-path { padding:22px 20px; gap:13px; } .kinship-no-path-symbol { font-size:29px; } .kinship-no-path h3 { font-size:21px; } .kinship-next { padding:23px 19px; } .kinship-next-choices { grid-template-columns:1fr; gap:10px; } .kinship-choice { display:grid; grid-template-columns:25px 1fr; column-gap:13px; row-gap:3px; padding:16px; } .kinship-choice > span { grid-row:1/3; margin:0; align-self:center; } .kinship-choice small { margin:0; } .kinship-limits { padding:19px 17px; } }

/* Lot 7 — a quiet workspace for contextual memory, never a vote. */
.knowledge-entry { display:flex; align-items:center; justify-content:space-between; gap:30px; margin:24px 0 31px; padding:29px 32px; border-radius:18px; background:var(--forest-deep); color:var(--cream); }
.knowledge-entry h2 { margin:8px 0 10px; font-family:Georgia,serif; font-size:31px; font-weight:400; letter-spacing:-.6px; }
.knowledge-entry p { max-width:575px; margin:0; color:#bfcec1; font-size:13px; line-height:1.8; }
.knowledge-entry .button { flex-shrink:0; }
.knowledge-back { margin:0 0 16px; }
.knowledge-tabs { display:flex; flex-wrap:wrap; gap:8px; padding:6px; margin:10px 0 27px; border:1px solid var(--line); border-radius:13px; background:#ecf0e6; width:fit-content; }
.knowledge-tabs button { padding:12px 19px; border:0; border-radius:9px; background:transparent; color:#698071; font-size:12px; font-weight:700; }
.knowledge-tabs button.active { color:var(--forest); background:var(--paper); box-shadow:0 3px 9px #173f350b; }
.knowledge-list-toolbar { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:0 0 21px; }
.knowledge-filters { display:flex; gap:6px; }
.knowledge-filters button { border:1px solid transparent; border-radius:20px; padding:9px 16px; background:transparent; color:#778276; font-size:12px; font-weight:700; }
.knowledge-filters button.active { background:#e5eddf; border-color:#d5e0cc; color:var(--forest); }
.knowledge-principle { display:flex; align-items:flex-start; gap:17px; margin:0 0 23px; padding:21px 24px; border:1px solid #e4e4d2; border-radius:14px; background:#f0f1e5; color:#69715e; }
.knowledge-principle > span { flex-shrink:0; color:#9b8649; font-size:25px; }
.knowledge-principle p { margin:0; max-width:900px; font-size:12px; line-height:1.85; }
.knowledge-principle strong { color:#4c624a; }
.knowledge-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:19px; }
.dossier-card { display:flex; flex-direction:column; min-width:0; padding:27px 26px 19px; border:1px solid #dce4d6; border-radius:17px; background:var(--paper); }
.knowledge-badge { display:inline-flex; align-self:flex-start; width:fit-content; padding:7px 11px; border-radius:7px; background:#edf1e7; color:#68775d; font-size:10px; font-weight:800; line-height:1.5; }
.knowledge-badge.hypothesis { color:#607450; background:#e7efdf; }
.knowledge-badge.variants { color:#8f6c2b; background:#f6ecd4; }
.knowledge-badge.controversy { color:#9a6248; background:#f5e8de; }
.knowledge-badge.confirmed_as_variant { color:#3e6951; background:#e6eee4; }
.knowledge-badge.rejected { color:#817975; background:#efece8; }
.dossier-card h2 { margin:18px 0 11px; font-size:24px; font-family:Georgia,serif; font-weight:400; color:var(--forest); line-height:1.35; overflow-wrap:anywhere; }
.dossier-card > p { margin:0 0 18px; color:#788072; font-size:12px; line-height:1.8; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere; }
.dossier-scope { display:flex; gap:8px; margin:2px 0 21px; font-size:11px; line-height:1.7; color:#8f885c; overflow-wrap:anywhere; }
.dossier-card-foot { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-top:auto; padding-top:15px; border-top:1px solid var(--line); }
.dossier-card-foot > span { color:#97a08e; font-size:10px; }
.knowledge-loading { padding:55px 20px; text-align:center; color:#778671; }
.knowledge-loading > span { font-size:30px; color:#b49d5e; }
.knowledge-loading p { font-size:12px; }
.knowledge-paging { display:flex; align-items:center; justify-content:center; gap:19px; margin:25px 0; }
.knowledge-paging > span { color:#7c8775; font-size:11px; }
.knowledge-paging button:disabled { opacity:.4; cursor:default; transform:none; }
.dossier-hero { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:21px 28px; padding:33px 35px 27px; margin-bottom:24px; border-radius:18px; background:var(--forest-deep); color:var(--cream); }
.dossier-hero h2 { font-family:Georgia,serif; font-weight:400; font-size:36px; line-height:1.3; letter-spacing:-.7px; margin:10px 0 14px; overflow-wrap:anywhere; }
.dossier-hero p { max-width:800px; margin:0; color:#ccd7c9; font-size:13px; line-height:1.9; white-space:pre-wrap; overflow-wrap:anywhere; }
.dossier-hero .dossier-hero-scope { margin-top:17px; font-size:11px; color:#d6c698; }
.dossier-hero .knowledge-badge { background:#365447; color:#d7dfc9; }
.dossier-hero-actions { grid-column:1/-1; display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding-top:4px; }
.dossier-hero-secondary { background:transparent; border-color:#668070; color:#e3e8d7; }
.dossier-hero-actions > .text-button { margin-left:auto; color:#beccba; }
.knowledge-section-heading { display:flex; justify-content:space-between; align-items:center; gap:18px; margin-bottom:18px; }
.knowledge-section-heading h2 { margin:8px 0 0; font-family:Georgia,serif; font-weight:400; font-size:27px; color:var(--forest); line-height:1.35; }
.knowledge-diagnostic { padding:27px 29px; margin-bottom:31px; background:#edf1e5; border:1px solid #dce4d1; border-radius:16px; }
.knowledge-diagnostic > p { font-size:12px; line-height:1.85; color:#66785d; margin:10px 0; overflow-wrap:anywhere; }
.knowledge-diagnostic-icon { color:#8b9e6d; font-size:30px; }
.knowledge-context-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:21px 0; }
.knowledge-context-grid article { min-width:0; padding:17px; border-radius:10px; border:1px solid #dee5d4; background:#f9faf1; }
.knowledge-context-grid strong { color:#52654c; font-size:12px; overflow-wrap:anywhere; }
.knowledge-context-grid p { margin:8px 0 0; color:#869076; font-size:11px; line-height:1.6; }
.knowledge-diagnostic > .knowledge-diagnostic-limit { margin-top:18px; padding-top:17px; border-top:1px solid #d8e1cd; color:#89917b; font-size:11px; }
.knowledge-detail-grid { display:grid; grid-template-columns:minmax(0,1fr) 290px; align-items:start; gap:25px; }
.knowledge-detail-grid > div { min-width:0; }
.knowledge-evidence-list { display:grid; gap:15px; }
.knowledge-evidence { padding:24px; border:1px solid #e0e6d9; border-radius:15px; background:var(--paper); min-width:0; }
.knowledge-evidence-head { display:flex; gap:15px; justify-content:space-between; margin-bottom:20px; font-size:11px; }
.knowledge-stance { color:#839074; font-size:10px; font-weight:800; }
.knowledge-stance.supports { color:#4f7655; }
.knowledge-stance.qualifies { color:#a18647; }
.knowledge-stance.contradicts { color:#a27156; }
.knowledge-source-meta { display:flex; gap:12px; align-items:center; }
.knowledge-source-meta > div { min-width:0; }
.knowledge-source-meta strong { display:block; color:#42583e; font-size:12px; overflow-wrap:anywhere; }
.knowledge-source-meta small { display:block; margin-top:5px; color:#929b88; font-size:10px; line-height:1.6; }
.knowledge-voice { flex-shrink:0; width:33px; height:33px; display:grid; place-items:center; background:#eaf0e3; color:#7a925d; border-radius:50%; font-family:Georgia,serif; font-size:27px; }
.knowledge-source-question { margin:17px 0 10px; color:#8a927f; font-size:11px; line-height:1.8; overflow-wrap:anywhere; }
.knowledge-quote { border:0; margin:15px 0 20px; padding:0; color:#43513d; font-size:13px; line-height:1.9; white-space:pre-wrap; overflow-wrap:anywhere; }
.knowledge-context-tags { display:flex; flex-wrap:wrap; gap:7px; margin:15px 0 8px; }
.knowledge-context-tags span { border:1px solid #e5e7d8; border-radius:6px; padding:6px 9px; color:#8e8a65; background:#fbfaf0; font-size:10px; line-height:1.5; overflow-wrap:anywhere; }
.knowledge-reading-note { display:block; padding:13px 15px; margin:16px 0; border-left:2px solid #c9d3b8; background:#f5f6ed; font-size:11px; line-height:1.8; color:#7c836e; white-space:pre-wrap; overflow-wrap:anywhere; }
.knowledge-reading-note strong { display:block; margin-bottom:5px; color:#637254; font-size:10px; }
.knowledge-evidence-actions { display:flex; flex-wrap:wrap; gap:13px; justify-content:space-between; padding-top:10px; margin-top:13px; border-top:1px solid #ecede4; }
.knowledge-evidence-actions .text-button { font-size:10px; }
.knowledge-review-panel { padding:25px 23px; border:1px solid #dedfcb; border-radius:15px; background:#f3f1e4; }
.knowledge-review-panel h2 { margin:10px 0 17px; color:#59624a; font-size:24px; font-family:Georgia,serif; font-weight:400; }
.knowledge-review-panel > p { font-size:12px; line-height:1.9; color:#7a8068; white-space:pre-wrap; overflow-wrap:anywhere; }
.knowledge-review-panel > small { display:block; margin-bottom:17px; color:#93977e; font-size:10px; }
.knowledge-review-panel > .button { margin-top:8px; }
.knowledge-review-panel > p.helper { margin:17px 0 0; font-size:10px; }
.knowledge-history-details { padding-top:17px; margin-top:19px; border-top:1px solid #e1e2ce; }
.knowledge-history-details > summary,.knowledge-archived > summary { cursor:pointer; color:#6d795b; font-size:11px; font-weight:700; line-height:1.7; }
.knowledge-history { list-style:none; margin:18px 0 0; padding:0; }
.knowledge-history li { padding:0 0 18px 13px; margin:0 0 0 3px; border-left:1px solid #cdd6bd; position:relative; }
.knowledge-history li::before { content:""; position:absolute; left:-3px; top:3px; width:5px; height:5px; border-radius:50%; background:#9eb180; }
.knowledge-history li > div { display:flex; flex-wrap:wrap; justify-content:space-between; gap:5px; }
.knowledge-history strong { font-size:10px; color:#637356; }
.knowledge-history time { font-size:9px; color:#9b9e8b; }
.knowledge-history p { margin:6px 0 0; font-size:10px; color:#858a74; line-height:1.75; white-space:pre-wrap; overflow-wrap:anywhere; }
.knowledge-history small { display:block; margin-top:8px; color:#9c9471; font-size:9px; }
.knowledge-archived { margin-top:22px; }
.knowledge-archived > .knowledge-evidence-list { margin-top:17px; }
.knowledge-evidence-archived { background:#f3f4ec; }
.knowledge-next { padding:28px; margin:29px 0 10px; border:1px solid #dce4d3; border-radius:16px; background:var(--paper); }
.knowledge-next h2 { margin:9px 0; color:var(--forest); font-family:Georgia,serif; font-size:28px; font-weight:400; }
.knowledge-next > p { margin:0; color:#7e8b75; font-size:12px; line-height:1.8; }
.knowledge-wide-dialog { width:min(730px,calc(100vw - 32px)); max-width:730px; }
.knowledge-search { display:flex; align-items:end; gap:12px; margin:25px 0; }
.knowledge-search > label { flex:1; }
.knowledge-search .button { flex-shrink:0; min-height:45px; }
.knowledge-source-picker { display:grid; gap:14px; }
.knowledge-source-picker > article { border:1px solid #dce4d3; padding:20px; border-radius:13px; background:#f9faf2; }
.knowledge-source-pick-foot { display:flex; justify-content:flex-end; }
.knowledge-reading-original { max-height:260px; overflow-y:auto; padding:18px; margin:17px 0 22px; background:#f4f6ec; border:1px solid #e2e8d7; border-radius:12px; }
.knowledge-reading-original .knowledge-quote { font-size:12px; margin-bottom:5px; }
.knowledge-evidence audio,.knowledge-source-picker audio,.knowledge-reading-original audio { max-width:100%; width:100%; height:38px; margin:10px 0; }
.knowledge-filter-label { display:flex; flex-direction:column; gap:8px; color:#718266; font-size:11px; }
.knowledge-filter-label select { min-height:42px; border:1px solid #d8e1cf; border-radius:9px; padding:0 35px 0 13px; color:var(--forest); background:var(--paper); font-size:12px; }
.knowledge-proposals { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.knowledge-proposal { min-width:0; padding:25px; border:1px solid #dde4d5; border-radius:15px; background:var(--paper); }
.knowledge-proposal h2 { font-family:Georgia,serif; font-size:24px; line-height:1.5; font-weight:400; margin:18px 0 14px; color:var(--forest); overflow-wrap:anywhere; }
.knowledge-proposal h2 span { color:#b3a876; padding:0 6px; }
.knowledge-proposal > p { color:#7c8771; font-size:12px; line-height:1.8; overflow-wrap:anywhere; }
.knowledge-proposal > .button { margin-top:10px; }
.knowledge-identity-pair { display:flex; align-items:center; gap:20px; justify-content:center; padding:22px 15px; margin:18px 0; border:1px solid #dfe5d4; border-radius:12px; background:#f0f4e7; color:var(--forest); text-align:center; line-height:1.6; }
.knowledge-identity-pair strong { flex:1; overflow-wrap:anywhere; }
.knowledge-identity-pair > span { color:#ad9c68; }
#identity-review-context > p { font-size:12px; color:#818a74; line-height:1.8; overflow-wrap:anywhere; }
#identity-review-context { margin-bottom:24px; }
@media(max-width:1150px) { .knowledge-entry { align-items:flex-start; flex-direction:column; gap:22px; } .knowledge-detail-grid { grid-template-columns:minmax(0,1fr) 250px; gap:18px; } .knowledge-review-panel { padding:22px 18px; } }
@media(max-width:880px) { .knowledge-detail-grid { grid-template-columns:1fr; } .knowledge-review-panel { padding:25px; } .knowledge-grid,.knowledge-proposals { grid-template-columns:1fr; } }
@media(max-width:640px) { .knowledge-entry { padding:25px 21px; border-radius:14px; } .knowledge-entry h2 { font-size:29px; } .knowledge-entry .button { width:100%; font-size:11px; } .knowledge-tabs { width:100%; gap:3px; } .knowledge-tabs button { flex:1; padding:11px 8px; font-size:10px; } .knowledge-list-toolbar { flex-wrap:wrap; gap:15px; } .knowledge-list-toolbar > .button { width:100%; } .knowledge-principle { padding:19px 18px; gap:12px; } .knowledge-principle p { font-size:11px; } .dossier-card { padding:23px 21px 17px; } .dossier-hero { display:flex; flex-direction:column; padding:26px 22px; gap:16px; } .dossier-hero h2 { font-size:29px; } .dossier-hero p { font-size:12px; } .dossier-hero-actions { width:100%; display:grid; grid-template-columns:1fr; } .dossier-hero-actions .text-button { margin:0; } .knowledge-diagnostic { padding:22px 19px; } .knowledge-section-heading h2 { font-size:24px; } .knowledge-context-grid { grid-template-columns:1fr; } .knowledge-evidence { padding:21px 18px; } .knowledge-evidence-actions { gap:3px; } .knowledge-next { padding:24px 19px; } .knowledge-next h2 { font-size:25px; } .knowledge-search { flex-direction:column; align-items:stretch; gap:12px; } .knowledge-search .button { width:100%; } .knowledge-source-picker > article { padding:18px 16px; } .knowledge-source-meta small { font-size:9px; } .knowledge-paging { gap:10px; } .knowledge-paging .button { font-size:10px; padding:0 10px; } .knowledge-identity-pair { gap:10px; padding:18px 12px; font-size:12px; } }
.knowledge-history-change { margin-top:9px; }
.knowledge-history-change summary { cursor:pointer; font-size:9px; color:#7b8d68; }
.knowledge-history-change dl { margin:12px 0; }
.knowledge-history-change dt { color:#6c7b5d; font-weight:700; font-size:9px; margin-top:12px; }
.knowledge-history-change dd { margin:4px 0 0; }
.knowledge-history-change dd span { display:block; font-size:9px; line-height:1.7; color:#979e88; overflow-wrap:anywhere; white-space:pre-wrap; }

/* V1.1 — nnaedou, un compagnon de mémoire vivant. */
:root { --listening:#486f8c; --listening-soft:#e8f1f7; --coral:#dc795d; --sun:#f0c96a; }
body { background:
  radial-gradient(circle at 92% 4%, rgba(240,201,106,.14), transparent 23rem),
  radial-gradient(circle at 58% 94%, rgba(72,111,140,.08), transparent 30rem),
  var(--cream); }
.page-section.active { animation: companion-enter .48s cubic-bezier(.2,.75,.25,1) both; }
@keyframes companion-enter { from { opacity:0; transform:translateY(14px) scale(.992); } to { opacity:1; transform:none; } }
.home-hero { isolation:isolate; background:linear-gradient(120deg,#123f35 0%,#1d6a57 54%,#486f8c 125%); }
.home-hero::after { position:absolute; z-index:1; content:""; width:260px; height:260px; right:14%; bottom:-155px; border-radius:50%; background:radial-gradient(circle,rgba(240,201,106,.85) 0 3px,transparent 4px); background-size:23px 23px; opacity:.3; animation: companion-drift 12s ease-in-out infinite alternate; }
@keyframes companion-drift { from { transform:translate3d(-8px,8px,0) rotate(0deg); } to { transform:translate3d(18px,-15px,0) rotate(12deg); } }
.hero-sun { animation: companion-glow 4.4s ease-in-out infinite alternate; }
@keyframes companion-glow { from { transform:scale(.96); box-shadow:0 0 0 14px rgba(232,206,148,.08),0 0 0 31px rgba(232,206,148,.045); } to { transform:scale(1.05); box-shadow:0 0 0 19px rgba(232,206,148,.1),0 0 0 42px rgba(232,206,148,.04); } }
.hero-person { animation: companion-person 6s ease-in-out infinite alternate; }
.person-a { animation-delay:-1.7s; }.person-b { animation-delay:-3.2s; }.person-c { animation-delay:-4.6s; }
@keyframes companion-person { from { translate:0 0; } to { translate:0 -8px; } }
.suggestion-card,.person-card,.entity-card,.content-card,.mini-panel { transition:transform .28s cubic-bezier(.2,.75,.25,1), box-shadow .28s ease,border-color .28s ease,background .28s ease; }
.suggestion-card:nth-child(3n+1) { border-top:3px solid var(--sun); }
.suggestion-card:nth-child(3n+2) { border-top:3px solid #91b59a; }
.suggestion-card:nth-child(3n+3) { border-top:3px solid #86abc4; }
.suggestion-card:hover,.person-card:hover,.entity-card:hover { transform:translateY(-5px) rotate(-.15deg); box-shadow:0 17px 35px rgba(25,65,51,.13); }
.suggestion-icon { background:linear-gradient(135deg,#f8ebc8,#dcebdc); box-shadow:inset 0 1px #fff,0 5px 10px rgba(35,78,62,.08); }
.button-primary { position:relative; overflow:hidden; background:linear-gradient(135deg,var(--forest),#276853); }
.button-primary::after { position:absolute; content:""; width:58px; height:160%; top:-30%; left:-85px; transform:rotate(24deg); background:rgba(255,255,255,.23); transition:left .55s ease; }
.button-primary:hover::after { left:120%; }
.privacy-pill { border-color:#c8ded1; background:linear-gradient(135deg,#fdfdf8,#edf6ed); }
.sidebar-callout { border-color:rgba(240,201,106,.35); background:linear-gradient(145deg,rgba(245,239,217,.11),rgba(72,111,140,.13)); }
.sidebar-callout button { background:linear-gradient(135deg,#f1d488,#e7ba60); }
.nav-pulse { animation: companion-pulse 2.2s ease-out infinite; }
@keyframes companion-pulse { 0% { box-shadow:0 0 0 0 rgba(240,201,106,.6); } 70% { box-shadow:0 0 0 7px rgba(240,201,106,0); } 100% { box-shadow:0 0 0 0 rgba(240,201,106,0); } }
.mobile-nav button[data-action="add-person"] { position:relative; width:64px; height:64px; margin-top:-24px; border:4px solid var(--cream); border-radius:50%; color:#fff; background:linear-gradient(135deg,var(--coral),#eab860); box-shadow:0 10px 20px rgba(145,79,53,.27); }
.mobile-nav button[data-action="add-person"] > span { font-size:23px; }
.mobile-nav button[data-action="add-person"] small { color:#fff; }
.mobile-nav button[data-action="add-person"]::after { content:""; position:absolute; inset:-6px; border:1px solid rgba(220,121,93,.4); border-radius:50%; animation: companion-ring 2.8s ease-out infinite; }
@keyframes companion-ring { from { transform:scale(.78); opacity:.85; } to { transform:scale(1.23); opacity:0; } }
@media (max-width:640px) {
  .mobile-nav { height:72px; padding:0 5px; background:rgba(255,254,250,.96); }
  .main-content { padding-bottom:82px; }
  .mobile-nav button { min-width:52px; min-height:48px; }
  .mobile-nav button small { font-size:8px; }
  .page-heading .button,.welcome-row .button,.profile-story-actions .button { min-height:44px; }
  .home-hero { border-radius:20px; box-shadow:0 18px 36px rgba(22,73,57,.18); }
  .suggestion-card { min-height:116px; border-radius:15px; }
}
@media (prefers-reduced-motion:reduce) { .home-hero::after,.hero-sun,.hero-person,.nav-pulse,.mobile-nav button[data-action="new-question"]::after { animation:none; } }
.companion-moment { position:relative; display:grid; grid-template-columns:auto minmax(0,1fr) minmax(360px,.9fr); align-items:center; gap:20px; margin:22px 0 6px; padding:20px 22px; overflow:hidden; border:1px solid #d8e7df; border-radius:17px; background:linear-gradient(115deg,#f7fbf6 0%,#f3f5e8 48%,#edf5f8 100%); box-shadow:0 12px 28px rgba(27,67,52,.06); }
.companion-moment::after { position:absolute; content:""; right:-45px; top:-58px; width:170px; height:170px; border:1px dashed rgba(72,111,140,.22); border-radius:50%; animation:companion-turn 18s linear infinite; }
@keyframes companion-turn { to { rotate:360deg; } }
.companion-moment-orb { display:grid; place-items:center; width:58px; height:58px; border-radius:20px 20px 20px 5px; color:#fff8e7; background:linear-gradient(145deg,#486f8c,#255c61); box-shadow:0 10px 18px rgba(43,93,103,.18); font-size:27px; }
.companion-moment h2 { margin:5px 0 6px; color:var(--forest); font:600 20px/1.25 Manrope,sans-serif; letter-spacing:-.5px; }
.companion-moment p { max-width:470px; margin:0; color:#6c7d72; font-size:11px; line-height:1.65; }
.companion-actions { position:relative; z-index:1; display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.companion-action { display:grid; grid-template-columns:26px 1fr; grid-template-rows:auto auto; gap:2px 7px; min-height:68px; padding:11px 9px; border:1px solid #d9e5dc; border-radius:12px; color:#476052; background:#fffefa; text-align:left; transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease; }
.companion-action > span { grid-row:1/3; align-self:center; color:#798d73; font-size:19px; }
.companion-action strong { font-size:10px; }.companion-action small { color:#8a968e; font-size:8px; }
.companion-action:hover { transform:translateY(-3px); border-color:#9bbcab; box-shadow:0 11px 17px rgba(24,66,50,.1); }
.companion-action.is-voice { color:#fffefa; border-color:#486f8c; background:linear-gradient(145deg,#486f8c,#276a61); }
.companion-action.is-voice > span,.companion-action.is-voice small { color:#dcebf1; }
@media(max-width:900px) { .companion-moment { grid-template-columns:auto 1fr; } .companion-actions { grid-column:1/-1; } }
@media(max-width:640px) { .companion-moment { grid-template-columns:auto 1fr; gap:13px; margin-top:16px; padding:16px; border-radius:15px; } .companion-moment-orb { width:46px; height:46px; border-radius:16px 16px 16px 4px; font-size:21px; } .companion-moment h2 { font-size:17px; } .companion-moment p { font-size:10px; } .companion-actions { grid-template-columns:1fr; } .companion-action { min-height:52px; grid-template-columns:25px 1fr auto; grid-template-rows:1fr; align-items:center; } .companion-action > span { grid-row:auto; } .companion-action small { display:none; } }
@media(prefers-reduced-motion:reduce) { .companion-moment::after { animation:none; } }
/* Lecture progressive : l’essentiel apparaît avant les détails. */
.family-group-disclosure { padding:0; overflow:hidden; }
.family-group-disclosure > summary { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:19px 21px; cursor:pointer; list-style:none; background:linear-gradient(100deg,#fffefa,#f2f6ee); }
.family-group-disclosure > summary::-webkit-details-marker { display:none; }
.family-group-disclosure summary > span { display:grid; gap:4px; }
.family-group-disclosure summary strong { color:#385143; font:600 17px/1.35 Manrope,sans-serif; }
.family-group-disclosure summary small { color:#7c887d; font-size:10px; line-height:1.5; }
.family-group-disclosure summary b { display:grid; min-width:52px; min-height:34px; place-items:center; border:1px solid #d6e1d5; border-radius:20px; color:#47704f; background:#fffefa; font-size:10px; }
.family-group-disclosure[open] > summary { border-bottom:1px solid #e4e9df; background:#edf5ed; }
.family-group-disclosure[open] > summary b { font-size:0; }.family-group-disclosure[open] > summary b::after { content:"Réduire"; font-size:10px; }
.family-group-disclosure .family-group-grid { padding:15px 18px 18px; }
.entity-details { margin-top:13px; border-top:1px solid #e9eee5; }
.entity-details > summary { display:flex; align-items:center; justify-content:space-between; padding:12px 0 2px; cursor:pointer; color:#547257; font-size:10px; font-weight:700; list-style:none; }
.entity-details > summary::-webkit-details-marker { display:none; }
.entity-details > summary span { display:grid; width:22px; height:22px; place-items:center; border-radius:50%; background:#eaf1e7; font-size:15px; transition:transform .2s ease; }
.entity-details[open] > summary span { transform:rotate(45deg); background:#dcebdc; }
.entity-details .entity-card-foot { margin-top:13px; }
@media(max-width:640px) { .family-group-disclosure > summary { padding:16px 14px; } .family-group-disclosure summary strong { font-size:15px; } .family-group-disclosure .family-group-grid { padding:10px; } .entity-details > summary { min-height:44px; font-size:11px; } }

/* R2 — l’arbre devient un espace navigable, sans effacer les fiches détaillées. */
.family-tree { display:grid; gap:12px; }
.tree-toolbar { display:flex; gap:9px; align-items:center; justify-content:space-between; }
.tree-search { display:flex; align-items:center; gap:8px; min-width:0; flex:1; padding:0 12px; border:1px solid #dbe6da; border-radius:12px; background:#fffefa; color:#52735b; }
.tree-search input { width:100%; min-height:41px; border:0; outline:0; color:#365340; background:transparent; font:600 12px Manrope,sans-serif; }
.tree-search input::placeholder { color:#9ca89e; font-weight:500; }
.tree-filter { position:relative; }
.tree-filter > button { min-height:41px; border:1px solid #dbe6da; border-radius:12px; padding:0 12px; color:#415e4a; background:#fffefa; font:700 10px Manrope,sans-serif; white-space:nowrap; }
.tree-filter-menu { position:absolute; z-index:8; top:47px; right:0; display:grid; min-width:150px; overflow:hidden; border:1px solid #dce7db; border-radius:11px; background:#fffefa; box-shadow:0 14px 28px rgba(20,60,45,.16); }
.tree-filter-menu button { border:0; padding:10px 12px; color:#506653; background:transparent; text-align:left; font:600 10px Manrope,sans-serif; }
.tree-filter-menu button:hover { background:#eef5ec; }
.tree-guidance { display:flex; align-items:center; justify-content:space-between; gap:12px; color:#829187; font-size:9px; }
.tree-guidance b { color:#56725e; }
.tree-legend { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.tree-legend i { display:inline-block; width:8px; height:8px; border-radius:50%; }
.legend-confirmed { background:#56836a; }.legend-missing { border:1px dashed #bd8a48; background:#fff7e8; }
.parent-date { border:0; padding:0; margin:0; min-width:0; grid-column:1/-1; }
.parent-date legend { font-weight:600; margin-bottom:8px; }
.parent-date-parts { display:grid; grid-template-columns:1fr 1.3fr 1fr; gap:8px; }
.parent-date-parts label { min-width:0; font-size:13px; }
.parent-date-parts input,.parent-date-parts select { min-width:0; width:100%; }
.question-subject-link { font:inherit; color:inherit; background:none; border:0; padding:0; text-align:inherit; cursor:pointer; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:.15em; }
.question-subject-link:focus-visible,.question-attention:focus-visible { outline:3px solid #bc895b; outline-offset:5px; }
.question-attention { cursor:pointer; animation:question-attention 3.8s ease-in-out infinite; }
@keyframes question-attention { 0%,100% { scale:1; box-shadow:0 0 0 3px rgba(188,137,91,.15); } 50% { scale:1.07; box-shadow:0 0 0 12px rgba(188,137,91,.38),0 0 22px rgba(188,137,91,.4); } }
@media(prefers-reduced-motion:reduce) { .question-attention { animation:none; box-shadow:0 0 0 4px rgba(188,137,91,.4); } }
.family-tools { margin:0 0 16px; border:1px solid #dce6d9; border-radius:14px; padding:0 16px; }
.family-tools > summary { cursor:pointer; padding:16px 0; font-weight:600; color:#224d40; }
.family-tools > section { margin:0 0 12px; }
@media(max-width:640px) { .family-tools > summary { font-size:14px; line-height:1.5; } #page-family .page-heading { gap:12px; } #page-family .family-card { padding:14px; } #family-graph > .modal-actions { margin-top:0; } .tree-zoom button { min-width:44px; min-height:44px; } }
.tree-viewport { position:relative; height:560px; overflow:hidden; border:1px solid #dce6d9; border-radius:18px; background:radial-gradient(circle at 70% 10%,rgba(240,201,106,.23),transparent 25%),linear-gradient(145deg,#f6f7ef,#eef4eb); touch-action:none; cursor:grab; }
.tree-viewport.is-panning { cursor:grabbing; }
.tree-world { position:absolute; width:1040px; height:720px; transform-origin:0 0; transition:transform .18s ease-out; }
.tree-field { position:absolute; inset:0; opacity:.43; background-image:radial-gradient(#a9c1aa 1px,transparent 1.1px); background-size:28px 28px; }
#family-share-dialog { width:min(760px,calc(100vw - 24px)); }
#family-share-content .modal-actions { flex-wrap:wrap; gap:10px; }
#family-share-content .story-section { padding:16px 0; border-top:1px solid #d6ddd5; }
#family-share-content label:not(.consent-line):not(.family-field-review) { display:block; margin:14px 0; }
#family-share-content input:not([type=checkbox]),#family-share-content select,#family-share-content textarea { width:100%; box-sizing:border-box; }
.family-field-review { display:flex; align-items:flex-start; gap:12px; padding:14px 0; border-bottom:1px solid #d6ddd5; }
.family-field-review span { min-width:0; overflow-wrap:anywhere; }
.family-field-review small { display:block; margin-top:6px; white-space:pre-wrap; }
.family-shared-portrait { width:110px; height:110px; object-fit:cover; border-radius:50%; }
@media(max-width:600px) { #family-share-dialog .modal-content { padding:24px 18px; } #family-share-content .button { max-width:100%; white-space:normal; } }
.tree-link { position:absolute; z-index:1; height:2px; transform-origin:0 50%; background:linear-gradient(90deg,#9eb79f,#cfb070); opacity:.9; }
.tree-link.is-uncertain { height:1px; background:repeating-linear-gradient(90deg,#d2a25f 0 6px,transparent 6px 11px); }
.tree-node { position:absolute; z-index:2; display:grid; justify-items:center; width:126px; min-height:136px; border:0; padding:8px 4px; color:#385441; background:transparent; transform:translate(-50%,-50%); text-align:center; transition:opacity .2s ease,filter .2s ease,transform .2s ease; }
.tree-node:hover { transform:translate(-50%,-52%); }
.tree-node.is-filtered { opacity:.12; pointer-events:none; filter:grayscale(1); }
.tree-avatar { display:grid; width:69px; height:69px; place-items:center; overflow:hidden; border:3px solid #fffefa; border-radius:50%; color:#315b48; background:linear-gradient(145deg,#d6ead9,#f1e3c3); box-shadow:0 7px 17px rgba(35,77,55,.17),0 0 0 1px #c7dac7; font:700 21px Manrope,sans-serif; }
.tree-node.is-self .tree-avatar { width:82px; height:82px; border-color:#f5d380; color:#fffefa; background:radial-gradient(circle at 38% 24%,#4f8970,#123f35 70%); box-shadow:0 9px 24px rgba(21,76,54,.31),0 0 0 3px rgba(227,177,80,.37); }
.tree-node.is-missing .tree-avatar { border-style:dashed; border-color:#ca9a58; background:#fff8ed; }
.tree-name { max-width:122px; margin-top:6px; overflow:hidden; color:#304c39; font:700 10px/1.25 Manrope,sans-serif; text-overflow:ellipsis; white-space:nowrap; }
.tree-status { margin-top:3px; padding:3px 7px; border-radius:9px; color:#6f806e; background:rgba(255,254,250,.85); font:700 8px Manrope,sans-serif; }
.tree-node.is-missing .tree-status { color:#a46f2f; background:#fff1db; }
.tree-zoom { position:absolute; z-index:6; right:13px; bottom:13px; display:grid; gap:5px; }
.tree-zoom button { display:grid; width:36px; height:36px; place-items:center; border:1px solid #d7e3d5; border-radius:11px; color:#386048; background:rgba(255,254,250,.94); box-shadow:0 6px 13px rgba(39,72,49,.1); font-size:18px; }
.tree-minimap { position:absolute; z-index:5; bottom:13px; left:13px; width:112px; height:78px; overflow:hidden; border:1px solid #d6e0d3; border-radius:11px; background:rgba(255,254,250,.92); }
.tree-minimap::before,.mini-branch { position:absolute; display:block; height:1px; background:#b4c9b5; transform-origin:0 50%; }
.tree-minimap::before { content:""; top:38px; left:55px; width:37px; transform:rotate(-35deg); }
.mini-self,.mini-branch { position:absolute; display:block; border-radius:50%; }
.mini-self { top:33px; left:49px; width:14px; height:14px; background:#25614d; box-shadow:0 0 0 4px rgba(240,201,106,.45); }
.mini-branch { width:8px; height:8px; background:#b7cbb7; }.b-one { top:16px; left:83px; }.b-two { top:57px; left:23px; }.b-three { top:59px; left:88px; }
.tree-missing-note { display:flex; align-items:center; gap:10px; padding:11px 12px; border:1px solid #f0dfbf; border-radius:12px; color:#7e735e; background:#fffaf1; }
.tree-missing-note > span { color:#bd8442; font-size:16px; }.tree-missing-note p { margin:0 auto 0 0; font-size:10px; line-height:1.45; }.tree-missing-note strong { color:#7b633e; }.tree-missing-note .text-button { font-size:9px; white-space:nowrap; }
.family-details { margin-top:16px; border-top:1px solid #e6ece3; }
.family-details > summary { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:15px 2px 0; cursor:pointer; list-style:none; }.family-details > summary::-webkit-details-marker { display:none; }.family-details summary span { display:grid; gap:3px; }.family-details summary strong { color:#45604a; font:600 13px Manrope,sans-serif; }.family-details summary b { color:#5b795e; font-size:10px; }.family-details[open] summary b { font-size:0; }.family-details[open] summary b::after { content:"Réduire"; font-size:10px; }.family-details-content { display:grid; gap:17px; margin-top:15px; }
.proactive-questions { margin:22px 0 4px; padding:18px; border:1px solid #dce8dc; border-radius:15px; background:linear-gradient(120deg,#f8fbf5,#f2f7f1); }
.proactive-questions .section-heading { margin:0 0 12px; }
.proactive-question-list { display:grid; gap:9px; }
.proactive-question-card { display:grid; grid-template-columns:36px minmax(0,1fr) auto; align-items:center; gap:11px; padding:12px; border:1px solid #deeadc; border-radius:12px; background:#fffefa; }
.proactive-question-icon { display:grid; width:36px; height:36px; place-items:center; border-radius:10px; color:#527b5a; background:#eaf2e6; font-size:17px; }
.proactive-question-card h3 { margin:3px 0; color:#395641; font:600 13px/1.35 Manrope,sans-serif; }
.proactive-question-card p,.proactive-question-rest p { margin:0; color:#7b8b7e; font-size:10px; line-height:1.5; }
.proactive-question-rest { display:flex; align-items:center; gap:9px; padding:10px; color:#719077; background:#fffefa; border-radius:10px; }.proactive-question-rest > span { color:#c79a51; font-size:18px; }
@media(max-width:640px) { .proactive-questions { padding:14px; }.proactive-question-card { grid-template-columns:32px 1fr; align-items:start; }.proactive-question-card .button { grid-column:1 / -1; width:100%; }.proactive-question-card h3 { font-size:12px; } }
@media(max-width:640px) { .tree-toolbar { align-items:stretch; flex-direction:column; }.tree-filter > button { width:100%; }.tree-filter-menu { right:auto; left:0; width:100%; }.tree-guidance { align-items:flex-start; flex-direction:column; gap:5px; }.tree-viewport { height:470px; border-radius:15px; }.tree-world { width:1000px; height:680px; }.tree-node { width:112px; }.tree-avatar { width:60px; height:60px; }.tree-node.is-self .tree-avatar { width:74px; height:74px; }.tree-name { font-size:9px; }.tree-minimap { width:94px; height:66px; }.tree-missing-note { align-items:flex-start; flex-wrap:wrap; }.tree-missing-note .text-button { width:100%; text-align:left; } }


/* Lot 1 — reconnaissance et missions de mémoire */
.recognition-card{position:relative;overflow:hidden;margin:18px 0;padding:26px;border-radius:24px;background:linear-gradient(135deg,#244c3d 0%,#315f4d 58%,#6f8d72 100%);color:#fff;box-shadow:0 18px 44px rgba(37,65,51,.16)}
.recognition-card::after{content:"";position:absolute;right:-90px;bottom:-120px;width:280px;height:280px;border:1px solid rgba(255,255,255,.18);border-radius:50%;box-shadow:0 0 0 38px rgba(255,255,255,.035),0 0 0 76px rgba(255,255,255,.025)}
.recognition-head{position:relative;z-index:1;display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.recognition-head h2{margin:5px 0 7px;font-size:clamp(25px,3vw,36px);color:#fff}.recognition-head p{margin:0;max-width:700px;color:rgba(255,255,255,.78)}
.recognition-mark{font-size:38px;color:#f1ddaa}.recognition-stats{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.recognition-stats>span{display:flex;align-items:baseline;gap:7px;padding:9px 13px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.08)}.recognition-stats strong{font-size:18px}.recognition-stats small{color:rgba(255,255,255,.75)}
.recognition-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:14px}.recognition-grid>div{padding:17px;border-radius:18px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13)}.recognition-label{display:block;margin-bottom:11px;font-size:10px;font-weight:800;letter-spacing:.14em;color:#f1ddaa}
.recognition-mission strong,.recognition-discovery strong{display:block;color:#fff;line-height:1.35}.recognition-mission p,.recognition-discovery p{margin:6px 0 9px;color:rgba(255,255,255,.76);font-size:13px;line-height:1.5}.recognition-state,.recognition-discovery>span{display:inline-flex;margin-bottom:9px;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.12);font-size:11px;font-weight:700;color:#fff}.recognition-mission .button{margin-top:6px}
.recognition-discoveries{display:grid;gap:9px}.recognition-discovery{padding:11px 0;border-bottom:1px solid rgba(255,255,255,.12)}.recognition-discovery:last-child{border-bottom:0;padding-bottom:0}.recognition-discovery small{display:block;color:rgba(255,255,255,.68);font-size:11px;margin-top:3px}.recognition-empty{margin:0;color:rgba(255,255,255,.7);font-size:13px;line-height:1.5}
@media(max-width:760px){.recognition-card{padding:20px 17px;border-radius:20px}.recognition-grid{grid-template-columns:1fr}.recognition-mark{font-size:30px}.recognition-stats{gap:7px}.recognition-stats>span{padding:7px 10px}}


/* Lot 2 — missions collectives, rapprochements et célébrations */
.recognition-collective{margin:9px 0;color:rgba(255,255,255,.76);font-size:12px}.recognition-collective strong{display:inline;color:#fff}
.recognition-helpers{display:grid;gap:7px;margin-top:12px}.recognition-helpers>small{font-size:9px;letter-spacing:.13em;color:#f1ddaa;font-weight:800}
.recognition-helper{appearance:none;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff;border-radius:12px;padding:9px 11px;text-align:left;font:inherit;font-size:12px;cursor:pointer}.recognition-helper:hover{background:rgba(255,255,255,.14)}.recognition-helper.is-invited{cursor:default;color:rgba(255,255,255,.68)}
.recognition-hints{position:relative;z-index:1;margin-top:14px;padding:17px;border-radius:18px;background:rgba(21,46,37,.34);border:1px solid rgba(255,255,255,.13);display:grid;grid-template-columns:minmax(180px,.7fr) 1.3fr;gap:15px}.recognition-hints[hidden]{display:none}.recognition-hints p{margin:4px 0;color:rgba(255,255,255,.7);font-size:12px}
.recognition-hint-list{display:grid;gap:7px}.recognition-hint-list button{display:grid;grid-template-columns:1fr auto;gap:3px 12px;border:0;border-radius:12px;padding:10px 12px;background:rgba(255,255,255,.08);color:#fff;text-align:left;cursor:pointer}.recognition-hint-list strong{grid-column:1}.recognition-hint-list small{grid-column:1;color:rgba(255,255,255,.68)}.recognition-hint-list span{grid-column:2;grid-row:1/3;align-self:center;color:#f1ddaa;font-size:11px}
.recognition-celebration{position:fixed;z-index:5000;right:22px;bottom:22px;width:min(430px,calc(100vw - 28px));display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:start;padding:18px;border-radius:22px;background:linear-gradient(135deg,#f6edd5,#fffdf6);color:#263f34;box-shadow:0 24px 60px rgba(26,51,40,.25);border:1px solid rgba(74,92,72,.16);transform:translateY(26px);opacity:0;transition:.25s ease}.recognition-celebration.is-visible{transform:none;opacity:1}.recognition-celebration-star{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#315f4d;color:#f3dfaa;font-size:20px}.recognition-celebration small{display:block;font-size:9px;font-weight:800;letter-spacing:.13em;color:#886f42}.recognition-celebration strong{display:block;margin:4px 0;font-size:17px}.recognition-celebration p{margin:0;font-size:12px;line-height:1.45;color:#5e6c64}.recognition-celebration em{display:block;margin-top:7px;font-style:normal;font-size:11px;color:#6b725e}.recognition-celebration button{border:0;background:transparent;font-size:21px;color:#6a736d;cursor:pointer}
@media(max-width:760px){.recognition-hints{grid-template-columns:1fr}.recognition-celebration{right:14px;bottom:82px}.recognition-hint-list button{grid-template-columns:1fr}.recognition-hint-list span{grid-column:1;grid-row:auto}}


/* Lot 3 — reconnaissance par branche, chronique familiale et gratitude */
.recognition-branches{position:relative;z-index:1;margin-top:14px;padding:17px;border-radius:18px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.13)}
.recognition-branches[hidden]{display:none}.recognition-branch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px}.recognition-branch-grid article{display:grid;gap:4px;padding:12px;border-radius:13px;background:rgba(255,255,255,.08)}.recognition-branch-grid small{color:#f1ddaa;font-size:10px}.recognition-branch-grid strong{color:#fff;font-size:15px}.recognition-branch-grid span{color:rgba(255,255,255,.68);font-size:10px}
.memory-journal-card{margin:18px 0;padding:24px;border:1px solid #e0e6dc;border-radius:22px;background:#fffdf8}.memory-journal-card .section-heading{margin-bottom:13px}.memory-journal-card .page-intro{margin-top:5px;font-size:12px}
.recognition-journal{display:grid}.journal-entry{display:grid;grid-template-columns:120px 1fr;gap:18px;padding:17px 0;border-top:1px solid #e6e9e1}.journal-entry:first-child{border-top:0}.journal-date{color:#8a927f;font-size:10px;padding-top:3px}.journal-kind{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eef3e9;color:#5f755e;font-size:9px;font-weight:800}.journal-entry h3{margin:7px 0 5px;font-size:16px;color:#334f3e}.journal-entry p{margin:0;color:#6f7a71;font-size:11px;line-height:1.6}.journal-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}.journal-meta span{padding:4px 7px;border-radius:7px;background:#f4f3eb;color:#81775e;font-size:9px}.journal-thanks-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.journal-thank{border:1px solid #d7e2d2;background:#f7faf4;color:#4f6f52;border-radius:999px;padding:6px 9px;font:700 9px "Manrope",sans-serif;cursor:pointer}.journal-thank.is-thanked{opacity:.65;cursor:default}.journal-empty{padding:18px;color:#879083;font-size:11px;text-align:center}
.recognition-thanks{margin-top:18px;padding-top:16px;border-top:1px solid #e6e9e1}.recognition-thanks[hidden]{display:none}.recognition-thanks>button{display:flex;width:100%;gap:7px;align-items:baseline;border:0;border-radius:10px;padding:9px 10px;background:#f7f9f4;color:#5d6e61;text-align:left;cursor:pointer}.recognition-thanks>button+button{margin-top:6px}.recognition-thanks>button.is-seen{opacity:.6}.recognition-thanks strong{font-size:11px;color:#3f5d48}.recognition-thanks span{font-size:10px}
.title-celebration .recognition-celebration-star{background:#8a7446}
@media(max-width:760px){.memory-journal-card{padding:18px 15px}.journal-entry{grid-template-columns:1fr;gap:5px}.journal-date{padding:0}.recognition-branch-grid{grid-template-columns:1fr}}


/* Lot 4 — chantiers collectifs de mémoire */
.memory-chantiers-card{margin:18px 0;padding:24px;border:1px solid #dfe6dc;border-radius:22px;background:linear-gradient(180deg,#f8faf4,#fffdf8)}
.memory-chantiers-card .section-heading{margin-bottom:14px}.memory-chantiers-card .page-intro{margin-top:5px;font-size:12px;max-width:780px}
.recognition-chantiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:13px}.chantier-card{display:grid;align-content:start;padding:17px;border:1px solid #dfe5da;border-radius:17px;background:#fff;box-shadow:0 8px 22px rgba(44,66,52,.05)}.chantier-card.is-complete{background:#f6f8f0;border-color:#cedbc8}
.chantier-head{display:grid;grid-template-columns:1fr auto;gap:12px}.chantier-head>div>span{font-size:9px;font-weight:800;letter-spacing:.08em;color:#7d8e76;text-transform:uppercase}.chantier-head h3{margin:4px 0 4px;font-size:16px;color:#365141}.chantier-head p{margin:0;color:#78837a;font-size:10px;line-height:1.5}.chantier-head>strong{display:grid;place-items:center;min-width:50px;height:34px;border-radius:999px;background:#eef3e9;color:#557051;font-size:11px}
.chantier-progress{height:7px;margin:14px 0 7px;overflow:hidden;border-radius:999px;background:#edf0e9}.chantier-progress i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#708a66,#b59b5e)}.chantier-progress i[class*="progress-"]{width:0}.chantier-progress .progress-0{width:0}.chantier-progress .progress-10{width:10%}.chantier-progress .progress-20{width:20%}.chantier-progress .progress-25{width:25%}.chantier-progress .progress-30{width:30%}.chantier-progress .progress-33{width:33%}.chantier-progress .progress-40{width:40%}.chantier-progress .progress-50{width:50%}.chantier-progress .progress-60{width:60%}.chantier-progress .progress-67{width:67%}.chantier-progress .progress-70{width:70%}.chantier-progress .progress-75{width:75%}.chantier-progress .progress-80{width:80%}.chantier-progress .progress-90{width:90%}.chantier-progress .progress-100{width:100%}
.chantier-progress-native{display:block;width:100%;height:7px;margin:14px 0 7px;border:0;border-radius:999px;overflow:hidden;background:#edf0e9}.chantier-progress-native::-webkit-progress-bar{background:#edf0e9;border-radius:999px}.chantier-progress-native::-webkit-progress-value{background:linear-gradient(90deg,#708a66,#b59b5e);border-radius:999px}.chantier-progress-native::-moz-progress-bar{background:linear-gradient(90deg,#708a66,#b59b5e);border-radius:999px}.chantier-meta{display:flex;justify-content:space-between;gap:10px;color:#8b9488;font-size:9px}.chantier-steps{display:grid;gap:7px;margin-top:13px}.chantier-steps button{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:2px 8px;padding:9px 10px;border:1px solid #e5e9e1;border-radius:11px;background:#fbfcf8;color:#526a57;text-align:left;cursor:pointer}.chantier-steps button>span{grid-row:1/3;align-self:center;color:#8d7a4c}.chantier-steps strong{font-size:10px;line-height:1.4}.chantier-steps small{font-size:8px;color:#8a9487}.chantier-steps button:hover{border-color:#cfdac9;background:#f5f8f1}.chantier-complete-copy{margin-top:13px;padding:11px;border-radius:11px;background:#eaf1e5;color:#52704d;font-size:10px;line-height:1.5}
.chantier-celebration .recognition-celebration-star{background:#52704d}
@media(max-width:760px){.memory-chantiers-card{padding:18px 14px}.recognition-chantiers{grid-template-columns:1fr}.chantier-card{padding:14px}}


/* Lot 5 — retour d'impact privé pour les contributeurs */
.impact-card{margin:18px 0;padding:24px;border:1px solid #e2e6dc;border-radius:22px;background:#fffdf8}.impact-card .section-heading{margin-bottom:14px}.impact-card .page-intro{margin-top:5px;font-size:12px;max-width:760px}
.recognition-impact{display:grid;gap:14px}.impact-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.impact-stats>span{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:9px;padding:13px;border:1px solid #e3e8df;border-radius:14px;background:#f8faf5}.impact-stats i{grid-row:1/3;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e9f0e5;color:#5d775b;font-style:normal}.impact-stats strong{font-size:17px;color:#365141}.impact-stats small{font-size:9px;color:#7e897f}
.impact-feed{display:grid;gap:7px}.impact-feed button{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;width:100%;padding:11px;border:1px solid #e4e8e0;border-radius:12px;background:#fff;color:#506258;text-align:left;cursor:pointer}.impact-feed button>span{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;background:#f1f3ea;color:#866f43}.impact-feed button div{display:grid;gap:2px}.impact-feed button strong{font-size:10px;color:#3c5746}.impact-feed button small{font-size:9px;color:#7d8880;line-height:1.45}.impact-feed button time{font-size:8px;color:#969d94}.impact-feed button.is-seen{opacity:.58}.impact-celebration .recognition-celebration-star{background:#866f43}
@media(max-width:760px){.impact-card{padding:18px 14px}.impact-stats{grid-template-columns:repeat(2,1fr)}.impact-feed button{grid-template-columns:auto 1fr}.impact-feed button time{grid-column:2}}


/* Lot 6 — bilan privé de transmission */
.legacy-card{display:grid;grid-template-columns:minmax(260px,1.05fr) minmax(300px,1fr);gap:18px;margin:18px 0;padding:26px;border-radius:24px;background:linear-gradient(135deg,#efe5c9,#fbf7e9 48%,#edf3e8);border:1px solid #ded8c6;box-shadow:0 14px 36px rgba(67,74,55,.08)}
.legacy-copy{display:grid;align-content:start;justify-items:start}.legacy-copy h2{margin:5px 0 8px;max-width:560px;font-size:clamp(22px,3vw,32px);color:#394f40}.legacy-copy p{margin:0 0 16px;max-width:610px;color:#657267;font-size:12px;line-height:1.65}.legacy-copy small{display:block;margin-top:9px;max-width:520px;color:#898879;font-size:9px;line-height:1.5}
.legacy-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;align-content:start}.legacy-metrics span{display:grid;gap:2px;padding:13px;border-radius:14px;background:rgba(255,255,255,.66);border:1px solid rgba(115,119,98,.13)}.legacy-metrics strong{font-size:20px;color:#405a47}.legacy-metrics small{font-size:9px;color:#7e877d}
.legacy-history{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding-top:14px;border-top:1px solid rgba(113,116,96,.16)}.legacy-last{display:grid;gap:2px}.legacy-last span{font-size:9px;color:#898878}.legacy-last strong{font-size:11px;color:#526653}.legacy-history p{margin:0;color:#6e795f;font-size:10px}
@media(max-width:760px){.legacy-card{grid-template-columns:1fr;padding:20px 15px}.legacy-metrics{grid-template-columns:repeat(2,1fr)}.legacy-history{grid-column:1}}


/* Lot 7 — passage de témoin volontaire */
.relay-card{margin:18px 0;padding:24px;border:1px solid #dfe5dc;border-radius:22px;background:#f8faf6}.relay-card .section-heading{margin-bottom:14px}.relay-card .page-intro{max-width:800px;margin-top:5px;font-size:12px}
.recognition-relays{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:12px}.relay-column{display:grid;align-content:start;gap:8px;padding:14px;border:1px solid #e1e7dd;border-radius:16px;background:#fff}.relay-item{padding:12px;border:1px solid #e8ebe4;border-radius:12px;background:#fbfcf8}.relay-item>strong{display:block;font-size:11px;color:#4b6751}.relay-item h3{margin:4px 0 6px;font-size:14px;color:#344e3d}.relay-item p{margin:0 0 7px;color:#7b867c;font-size:10px;line-height:1.5}.relay-item>span{display:inline-flex;padding:4px 7px;border-radius:999px;background:#eef3e9;color:#647a62;font-size:9px}.relay-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.relay-item>small{display:block;margin-top:6px;color:#849087;font-size:8px}.chantier-step-assigned{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:9px 10px;border:1px solid #d7e3d4;border-radius:11px;background:#f3f8f0;color:#526a57}.chantier-step-assigned>span{color:#5f795c}.chantier-step-assigned>div{display:grid;gap:2px}.chantier-step-assigned strong{font-size:10px;line-height:1.4}.chantier-step-assigned small{font-size:8px;color:#788a77}.chantier-step-assigned button{border:0;background:transparent;color:#9a654f;font:700 8px "Manrope",sans-serif;cursor:pointer}
.chantier-relay{display:grid;gap:6px;margin-top:13px;padding-top:11px;border-top:1px dashed #dfe5db}.chantier-relay>small{font-size:8px;font-weight:800;letter-spacing:.12em;color:#897848}.chantier-relay>span,.chantier-relay>em{font-style:normal;font-size:9px;color:#7c877e}.chantier-relay>button{justify-self:start;border:0;background:transparent;color:#4e7053;padding:2px 0;font:700 9px "Manrope",sans-serif;cursor:pointer}.relay-celebration .recognition-celebration-star{background:#4e7053}
@media(max-width:760px){.relay-card{padding:18px 14px}.recognition-relays{grid-template-columns:1fr}.relay-actions .button{width:auto}}

/* Cohérence mobile : la navigation reste dans le vert profond de l’accueil sur tous les onglets. */
@media(max-width:640px){
  .mobile-nav{
    height:72px!important;
    border-top:1px solid rgba(244,224,169,.16)!important;
    background:linear-gradient(104deg,#082d30 0%,#0d423b 52%,#082d30 100%)!important;
    box-shadow:0 -10px 24px rgba(10,37,32,.12)!important;
  }
  .mobile-nav button{color:rgba(240,244,235,.62)!important}
  .mobile-nav button>span{color:rgba(235,242,232,.76)!important}
  .mobile-nav button small{color:inherit!important}
  .mobile-nav button.active{color:#f1cf87!important}
  .mobile-nav button.active>span{color:#f1cf87!important}
  .mobile-nav button[data-action="add-person"]{
    border-color:#f8f1e5!important;
    background:linear-gradient(135deg,#c86a49,#e7ad55)!important;
    box-shadow:0 10px 20px rgba(4,29,27,.4)!important;
  }
}

/* Espace Moi : un tableau de bord bref, puis un écran dédié par sujet. */
.profile-hub{margin:18px 0 4px}
.profile-hub-heading{margin:0 0 13px;padding:0 2px}
.profile-hub-heading h2{margin:6px 0;color:#2f4538;font:600 25px/1.15 Manrope,sans-serif;letter-spacing:-.7px}
.profile-hub-heading p{margin:0;color:#7b887d;font-size:13px;line-height:1.55}
.profile-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.profile-hub-card{display:grid;grid-template-columns:38px minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;gap:4px 11px;min-height:92px;border:1px solid #e0e7de;border-radius:17px;padding:14px;color:#385345;background:#fffefa;text-align:left;box-shadow:0 7px 18px rgba(28,59,44,.045)}
.profile-hub-card>span{grid-row:1/3;display:grid;width:38px;height:38px;place-items:center;border-radius:12px;color:#507059;background:#edf3e9;font-size:18px}
.profile-hub-card strong{font:700 13px/1.3 Manrope,sans-serif}.profile-hub-card small{color:#859086;font-size:10px;line-height:1.35}.profile-hub-card b{grid-column:3;grid-row:1/3;color:#8a9a8a;font-size:15px;font-weight:400}
.profile-hub-card-feature{grid-column:1/-1;color:#fffdf4;border-color:transparent;background:linear-gradient(125deg,#123e35,#28614e)}
.profile-hub-card-feature>span{color:#f4d88d;background:rgba(255,255,255,.11)}.profile-hub-card-feature small,.profile-hub-card-feature b{color:rgba(255,253,244,.76)}
.profile-area-back{margin:0 0 14px}
#page-profile[data-profile-view="hub"] .profile-area,#page-profile[data-profile-view="hub"] .profile-utility-grid{display:none!important}
#page-profile[data-profile-view="hub"] .profile-journey{margin-bottom:14px}
#page-profile[data-profile-view]:not([data-profile-view="hub"]) .profile-journey,#page-profile[data-profile-view]:not([data-profile-view="hub"]) .profile-hub{display:none!important}
#page-profile[data-profile-view="parcours"] .profile-area:not([data-profile-area="parcours"]),
#page-profile[data-profile-view="identite"] .profile-area:not([data-profile-area="identite"]),
#page-profile[data-profile-view="transmission"] .profile-area:not([data-profile-area="transmission"]),
#page-profile[data-profile-view="contacts"] .profile-area:not([data-profile-area="contacts"]),
#page-profile[data-profile-view="options"] .profile-area:not([data-profile-area="options"]){display:none!important}
@media(max-width:640px){.profile-hub-grid{grid-template-columns:1fr}.profile-hub-card{min-height:78px;border-radius:15px}.profile-hub-heading h2{font-size:22px}}
/* Moi — direction artistique mobile : paysage, carte ivoire et frise de vie */
#page-profile{background:#f8f1e4}
#page-profile>.page-heading{position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(4,40,35,.08),rgba(4,40,35,.76)),url('/mygablink-home-moonlagoon-v1.webp') center/cover;color:#fff}
#page-profile>.page-heading:before{content:"nnaedou";position:absolute;top:22px;left:24px;color:#fff8eb;font:700 28px/1 Georgia,'Times New Roman',serif;letter-spacing:-1px;text-shadow:0 1px 12px rgba(0,0,0,.28)}
#page-profile>.page-heading>*{position:relative;z-index:1}
#page-profile .profile-journey{position:relative;isolation:isolate;display:grid!important;grid-template-columns:106px minmax(0,1fr);gap:18px;align-items:center;overflow:hidden;padding:24px 22px!important;border-radius:30px!important;background:#fffaf0!important;color:#123f36!important;box-shadow:0 18px 38px rgba(14,52,44,.18)!important}
#page-profile .profile-journey:before,#page-profile .profile-journey:after{content:"";position:absolute;z-index:-1;border:1px solid rgba(151,108,69,.13);border-radius:60% 40% 57% 43%;transform:rotate(30deg)}
#page-profile .profile-journey:before{right:-40px;bottom:-40px;width:166px;height:166px}#page-profile .profile-journey:after{right:4px;bottom:-8px;width:96px;height:96px}
#page-profile .profile-journey-pattern{right:10px!important;bottom:-90px!important;top:auto!important;color:rgba(177,104,64,.08)!important;font-size:220px!important}
#page-profile .profile-journey-avatar{width:100px!important;height:100px!important;border:4px solid #fff!important;box-shadow:0 5px 0 #e4d4bc,0 12px 24px rgba(23,61,48,.18)!important}
#page-profile .profile-journey-copy h2{margin:0 0 8px!important;color:#153f36!important;font:700 31px/1.03 Georgia,'Times New Roman',serif!important}
#page-profile .profile-journey-copy p{margin:9px 0 0!important;color:#63736a!important;font-size:12px!important;line-height:1.5!important}
.profile-private-label{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#edf0e6;color:#456052;font:600 12px/1 Manrope,sans-serif}.profile-private-label:before{content:"⌑";font-size:14px}
#page-profile .profile-journey .button{display:none!important}
#page-profile[data-profile-view="hub"] .profile-timeline-preview.profile-area{display:block!important}
#page-profile .profile-timeline-preview{position:relative;overflow:hidden;margin:0!important;padding:21px 16px 17px!important;border:0!important;border-radius:0 0 30px 30px!important;background:#fffaf0!important;box-shadow:0 16px 30px rgba(58,63,45,.08)!important}
#page-profile .profile-timeline-preview .section-heading{position:relative;z-index:1;margin-bottom:16px}#page-profile .profile-timeline-preview h2{margin:3px 0 0;color:#173f35;font:700 31px/1 Georgia,'Times New Roman',serif}
#page-profile .profile-timeline-preview .button{border:0;background:#174d3f;color:#fffaf0;border-radius:16px;box-shadow:0 8px 15px rgba(22,62,48,.17)}
.profile-timeline-list{position:relative;z-index:1;display:grid;gap:13px}.profile-timeline-item{display:grid;grid-template-columns:58px 22px minmax(0,1fr);align-items:stretch;border:0;padding:0;background:transparent;text-align:left;color:inherit}.profile-timeline-year{padding-top:23px;color:#173f35;font:700 20px/1 Georgia,'Times New Roman',serif}.profile-timeline-rail{position:relative;display:flex;justify-content:center}.profile-timeline-rail:before{content:"";position:absolute;top:0;bottom:-13px;width:2px;background:#bc6544}.profile-timeline-item:last-child .profile-timeline-rail:before{bottom:25px}.profile-timeline-rail i{position:relative;z-index:1;width:12px;height:12px;margin-top:24px;border:3px solid #b85d3d;border-radius:50%;background:#fff9ed;box-shadow:0 0 0 4px rgba(184,93,61,.08)}.profile-timeline-card{display:grid;grid-template-columns:87px minmax(0,1fr);gap:11px;align-items:center;min-height:95px;padding:10px;border:1px solid #eee2cf;border-radius:18px;background:#fffdf7;box-shadow:0 7px 16px rgba(54,68,48,.06)}.profile-timeline-visual{display:block;width:87px;height:73px;border-radius:12px;background:linear-gradient(145deg,rgba(22,63,54,.10),rgba(22,63,54,.55)),url('/profile-timeline-triptych.jpg') 0 50%/300% 100%}.profile-timeline-visual.visual-1{background-position:center,50% 50%}.profile-timeline-visual.visual-2{background-position:center,100% 50%}.profile-timeline-copy{position:relative;display:grid;gap:4px;padding-right:17px}.profile-timeline-copy small{color:#a56344;font:700 9px/1 Manrope,sans-serif;letter-spacing:.06em;text-transform:uppercase}.profile-timeline-copy strong{color:#183d34;font:700 17px/1.08 Georgia,'Times New Roman',serif}.profile-timeline-copy>span{color:#6d7a71;font-size:10px}.profile-timeline-copy b{position:absolute;right:0;top:50%;color:#7c8b80;font-size:21px;font-weight:400;transform:translateY(-50%)}
@media(max-width:760px){#page-profile{display:flex;flex-direction:column;gap:0;padding:0 0 102px!important}#page-profile>.page-heading{order:0;min-height:238px;margin:0!important;padding:76px 24px 28px!important;border-radius:0 0 38px 38px!important}#page-profile>.page-heading .eyebrow{display:none}#page-profile>.page-heading h1{font-size:0!important;margin:0!important}#page-profile>.page-heading .page-intro{max-width:250px;margin-top:60px!important;color:#fff3df!important;font-size:13px!important}#page-profile>.profile-journey{order:1;margin:-72px 14px 0!important}#page-profile>.profile-timeline-preview{order:2;margin:0 14px!important}#page-profile>.profile-hub{order:3;margin:18px 14px 0!important}#page-profile>.profile-utility-grid{order:4;margin:14px!important}#page-profile>.recognition-card,#page-profile>.relay-card,#page-profile>.legacy-card,#page-profile>.impact-card,#page-profile>.memory-chantiers-card,#page-profile>.memory-journal-card,#page-profile>.profile-layout,#page-profile>.support-card,#page-profile>.discovery-card,#page-profile>.contacts-card,#page-profile>.invitations-card{order:9;margin-left:14px!important;margin-right:14px!important}.profile-journey-copy h2{font-size:26px!important}.profile-journey-avatar{width:88px!important;height:88px!important}.profile-timeline-card{grid-template-columns:76px minmax(0,1fr)}.profile-timeline-visual{width:76px;height:68px}.profile-timeline-copy strong{font-size:15px}}
/* Composition fidèle à la maquette Moi sur téléphone */
@media(max-width:760px){
  #page-profile>.page-heading{min-height:210px!important;padding:73px 24px 82px!important;background-position:center top!important}
  #page-profile>.page-heading:before{top:27px!important;left:24px!important;font-size:31px!important}
  #page-profile>.page-heading .page-intro{display:none!important}
  #page-profile>.profile-journey{position:relative!important;display:block!important;min-height:142px!important;margin:-47px 12px 0!important;padding:29px 19px 17px 138px!important;border-radius:34px 34px 0 0!important;box-shadow:0 15px 25px rgba(20,53,42,.13)!important}
  #page-profile .profile-journey-avatar{position:absolute!important;top:25px!important;left:20px!important;width:100px!important;height:100px!important;border-width:4px!important}
  #page-profile .profile-journey-copy h2{font-size:28px!important;line-height:1!important}
  #page-profile .profile-journey-copy p{display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:8px!important;font-size:11px!important}
  #page-profile>.profile-timeline-preview{margin:0 12px!important;padding:18px 15px 20px!important;border-radius:0 0 34px 34px!important;box-shadow:0 14px 26px rgba(20,53,42,.10)!important}
  #page-profile .profile-timeline-preview h2{font-size:31px!important}
  #page-profile .profile-timeline-preview .section-heading{align-items:flex-end!important}
  #page-profile .profile-timeline-preview .button{min-height:48px!important;padding:0 15px!important;border-radius:15px!important;font-size:11px!important}
  #page-profile>.profile-hub{margin:18px 12px 0!important}
  #page-profile>.profile-hub .profile-hub-heading{display:none!important}
  #page-profile>.profile-hub .profile-hub-grid{grid-template-columns:1fr 1fr!important;gap:11px!important}
  #page-profile>.profile-hub .profile-hub-card{min-height:128px!important;display:grid!important;grid-template-columns:1fr!important;grid-template-rows:auto auto auto!important;align-content:center;gap:7px!important;padding:15px!important;border-radius:20px!important}
  #page-profile>.profile-hub .profile-hub-card-feature{display:none!important}
  #page-profile>.profile-hub .profile-hub-card>span{grid-row:auto!important;width:42px!important;height:42px!important;border-radius:50%!important}
  #page-profile>.profile-hub .profile-hub-card b{position:absolute;right:14px;bottom:12px;grid-column:auto!important;grid-row:auto!important}
  #page-profile>.profile-hub .profile-hub-card strong{font:700 16px/1.08 Georgia,'Times New Roman',serif!important;color:#173f35!important}
  #page-profile>.profile-hub .profile-hub-card small{font-size:10px!important;line-height:1.35!important}
  #page-profile>.profile-hub .profile-hub-card:nth-child(4),#page-profile>.profile-hub .profile-hub-card:nth-child(5){grid-column:1/-1!important;min-height:74px!important;grid-template-columns:44px minmax(0,1fr) auto!important;grid-template-rows:auto auto!important;align-items:center}
  #page-profile>.profile-hub .profile-hub-card:nth-child(4)>span,#page-profile>.profile-hub .profile-hub-card:nth-child(5)>span{grid-row:1/3!important}
  #page-profile>.profile-hub .profile-hub-card:nth-child(4) b,#page-profile>.profile-hub .profile-hub-card:nth-child(5) b{position:static!important;grid-column:3!important;grid-row:1/3!important}
}

/* Panneau ivoire ondulé — profil Moi */
#page-profile .profile-journey-avatar img{display:block;width:100%!important;height:100%!important;object-fit:cover!important}
@media(max-width:760px){#page-profile{background:#0b302a!important}#page-profile>.page-heading{min-height:216px!important;padding:0!important;border-radius:0!important;background-position:center top!important}#page-profile>.page-heading:before{top:40px!important;left:27px!important;font-size:37px!important;z-index:2}#page-profile>.page-heading .page-intro,#page-profile>.page-heading .eyebrow,#page-profile>.page-heading h1{display:none!important}#page-profile>.profile-journey{position:relative!important;z-index:2;min-height:202px!important;margin:-36px 0 0!important;padding:48px 25px 20px 172px!important;border-radius:46px 46px 0 0!important;background:#fffaf0!important;box-shadow:none!important}#page-profile>.profile-journey:before{content:"";position:absolute;z-index:-1;right:-68px;top:-34px;width:260px;height:116px;background:#fffaf0;border-radius:58% 0 0 54%;border:0;transform:rotate(-5deg)}#page-profile>.profile-journey:after{display:none!important}#page-profile .profile-journey-avatar{top:28px!important;left:37px!important;width:122px!important;height:122px!important;border:5px solid #fff!important;border-radius:50%!important;box-shadow:0 2px 0 #e5d7bc,0 9px 20px rgba(20,53,42,.16)!important}#page-profile .profile-journey-copy h2{font-size:30px!important;line-height:1.02!important}#page-profile .profile-journey-copy p{margin-top:10px!important;font-size:11px!important}#page-profile .profile-private-label{margin-top:1px!important;padding:7px 11px!important;font-size:13px!important}#page-profile>.profile-timeline-preview{z-index:2;margin:0!important;padding:0 22px 22px!important;border-radius:0!important;background:#fffaf0!important;box-shadow:none!important}#page-profile .profile-timeline-preview .section-heading{padding-top:0!important;margin:0 0 17px!important}#page-profile .profile-timeline-preview h2{font-size:34px!important}#page-profile .profile-timeline-preview h2:after{content:"";display:block;width:58px;height:3px;margin-top:12px;border-radius:2px;background:#b85d3d}#page-profile>.profile-hub{z-index:2;margin:0!important;padding:19px 20px 28px!important;border-radius:0 0 36px 36px!important;background:#fffaf0!important;box-shadow:0 16px 30px rgba(4,27,23,.26)!important}#page-profile>.profile-hub .profile-hub-card{background:#fffdf7!important;border-color:#ece1d0!important;box-shadow:0 7px 14px rgba(51,59,43,.06)!important}#page-profile>.profile-hub .profile-hub-card:nth-child(2)>span{color:#456c5b!important;background:#e7efe7!important}#page-profile>.profile-hub .profile-hub-card:nth-child(3)>span{color:#b45b3d!important;background:#f3e3d8!important}#page-profile>.profile-hub .profile-hub-card:nth-child(4)>span{color:#fff!important;background:#164d3f!important}#page-profile>.profile-hub .profile-hub-card:nth-child(5)>span{color:#fff!important;background:#b45d3e!important}}

/* Courbe organique du panneau Moi — reproduction de la vague de référence. */
@media(max-width:760px){
  #page-profile>.profile-journey{
    isolation:isolate!important;
    overflow:visible!important;
    min-height:206px!important;
    margin:-10px 0 0!important;
    padding:47px 25px 22px 172px!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  #page-profile>.profile-journey::after{
    display:block!important;
    content:""!important;
    position:absolute!important;
    z-index:-2!important;
    inset:0!important;
    border:0!important;
    border-radius:0!important;
    transform:none!important;
    background:#fffaf0!important;
  }
  #page-profile>.profile-journey::before{
    display:block!important;
    content:""!important;
    position:absolute!important;
    z-index:-1!important;
    top:-88px!important;
    left:0!important;
    width:100%!important;
    height:110px!important;
    border:0!important;
    border-radius:0!important;
    transform:none!important;
    background:center bottom/100% 100% no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 390 110' preserveAspectRatio='none'%3E%3Cpath fill='%23fffaf0' d='M0 76 C8 38 37 17 76 19 C113 20 127 52 159 63 C203 78 252 70 293 60 C331 51 365 51 390 67 L390 110 L0 110 Z'/%3E%3C/svg%3E")!important;
  }
  #page-profile .profile-journey-copy,#page-profile .profile-journey-avatar{z-index:1!important}
  #page-profile .profile-journey-avatar{top:-38px!important;left:37px!important}
  #page-profile>.profile-timeline-preview{position:relative!important;z-index:1!important}
}



/* One contextual memory action, without interrupting the current task. */
.memory-initiative { display:grid; gap:14px; padding:18px; margin-block:12px; border:1px solid #d6e3d4; border-radius:16px; background:#fffefa; overflow-wrap:anywhere; }
.memory-initiative h3 { margin:6px 0; font-size:18px; color:#395641; }
.memory-initiative p { margin:0; font-size:14px; line-height:1.5; color:#536759; }
.memory-initiative-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.memory-initiative-actions button { min-height:44px; white-space:normal; }
@media(max-width:640px){ .memory-initiative-actions { flex-direction:column; align-items:stretch; } }
