@charset "UTF-8";
:root{color-scheme:light;--bg:#f5f2eb;--paper:#fffcf6;--ink:#302f2b;--muted:#65665b;--line:#dedbd1;--accent:#455e50;--accent-text:#fffdf7;--soft:#e6ece2;--rose:#805348;--shadow:0 8px 40px #302f2b09;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.65}
:root[data-theme=dark]{color-scheme:dark;--bg:#1d211f;--paper:#252b27;--ink:#eeeae0;--muted:#b7bcae;--line:#434b43;--accent:#b3c8ab;--accent-text:#19221c;--soft:#344237;--rose:#e3b5a4;--shadow:0 8px 40px #0002}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#1d211f;--paper:#252b27;--ink:#eeeae0;--muted:#b7bcae;--line:#434b43;--accent:#b3c8ab;--accent-text:#19221c;--soft:#344237;--rose:#e3b5a4;--shadow:0 8px 40px #0002}}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}[hidden]{display:none!important}button,input,textarea,select{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;padding:.55rem .95rem;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:var(--paper);text-decoration:none;cursor:pointer;line-height:1.35;transition:background .15s,transform .15s}button:hover,.button:hover{background:var(--soft)}button:disabled{opacity:.5;cursor:not-allowed}button.primary,.button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}button.primary:hover,.button.primary:hover{filter:brightness(1.08)}input,textarea,select{width:100%;min-height:46px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);padding:.7rem .8rem}textarea{min-height:105px;resize:vertical;line-height:1.7}input[type=checkbox]{width:20px;min-height:20px;height:20px;accent-color:var(--accent);flex:none}input[type=file]{padding:.5rem}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.85}label{display:block;font-size:.9rem;font-weight:550;margin:1rem 0 .6rem}label input,label textarea,label select{display:block;margin-top:.4rem;font-weight:400}label.check{display:flex;gap:.7rem;align-items:center;font-weight:400;padding:.3rem 0;margin:.4rem 0}label.check input{margin:0}:focus-visible{outline:3px solid var(--rose);outline-offset:4px}h1,h2,h3{line-height:1.2;font-weight:450;margin:.4em 0 .55em}h1,h2{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.035em}h1{font-size:clamp(2.2rem,4.6vw,3.75rem)}h2{font-size:1.85rem}h3{font-size:1.18rem;font-weight:550}p{margin:.7rem 0 1.1rem}p,.hint{overflow-wrap:anywhere}a{color:var(--accent)}.hint,small{color:var(--muted);font-size:.84rem}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:650;color:var(--muted);font-family:system-ui,sans-serif}.error{color:var(--rose)}.skip{position:fixed;top:-100px;left:1rem;background:var(--paper);padding:1rem;z-index:100}.skip:focus{top:1rem}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.site-header{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:1.1rem 3vw;border-bottom:1px solid var(--line);background:var(--bg)}.wordmark{font-family:Georgia,serif;font-size:1.4rem;border:0;background:none;padding:0;white-space:nowrap}.mark{font-size:2.5rem;line-height:1;color:var(--accent);margin-right:.3rem}.site-header nav{display:flex;gap:.2rem;flex-wrap:wrap}.site-header nav button{border:0;background:none;color:var(--muted)}.site-header nav button[aria-current=page]{background:var(--soft);color:var(--ink)}#main{max-width:1180px;min-height:75vh;margin:auto;padding:3.5rem 2rem 6rem}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:2.4rem}.page-head h1{max-width:720px}.page-head p:not(.eyebrow){color:var(--muted)}.page-head>.actions{flex-shrink:0}.card{background:var(--paper);padding:1.7rem;border-radius:20px;box-shadow:var(--shadow)}.filters{background:var(--paper);border-radius:18px;padding:1rem 1.5rem;margin-bottom:1.5rem}.filters label{margin:.4rem 0}.filter-row{display:flex;gap:1rem;flex-wrap:wrap;align-items:end}.filter-row>label{flex:1;min-width:125px}.search-label input{border:0;background:var(--bg)}details{margin:1rem 0}summary{cursor:pointer;color:var(--accent);padding:.6rem 0;font-weight:550;min-height:44px}.selection-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:1.2rem 0;font-size:.82rem;color:var(--muted)}.selection-bar button{font-size:.82rem;min-height:40px;background:none}.year-marker{font-size:1.6rem;color:var(--muted);padding:2rem 0 .75rem 2.6rem;margin:0;position:relative}.year-marker:before{content:'';position:absolute;left:1rem;top:2.5rem;width:.5rem;height:.5rem;border-radius:50%;background:var(--accent)}.memory-card{display:flex;align-items:flex-start;gap:.5rem;background:var(--paper);border-radius:18px;margin:0 0 1rem 2.6rem;padding:.6rem 1rem;box-shadow:var(--shadow);position:relative}.memory-card:before{position:absolute;content:'';left:-1.45rem;top:-1rem;bottom:-1rem;width:1px;background:var(--line)}.memory-card.covered{background:var(--soft);box-shadow:none}.select-memory{padding:.7rem 0;margin:0}.memory-open{flex:1;display:block;text-align:left;border:0;background:none;padding:.7rem .6rem;min-width:0}.memory-open:hover{background:none}.memory-open h3{font-family:Georgia,serif;font-size:1.65rem;font-weight:400;letter-spacing:-.02em;margin:.35rem 0 .6rem}.memory-open p{font-size:.96rem;line-height:1.7;color:var(--muted);margin:.3rem 0 .7rem;white-space:pre-wrap}.chips{display:flex;gap:.45rem;flex-wrap:wrap}.chips span{background:var(--bg);color:var(--muted);font-size:.72rem;border-radius:6px;padding:.12rem .5rem}.empty{text-align:center;max-width:700px;margin:3rem auto;padding:3rem 1rem}.empty h2{font-size:2.2rem}.empty p{color:var(--muted)}.empty-mark{display:block;color:var(--accent);font-family:Georgia,serif;font-size:5rem;line-height:1;margin-bottom:1.5rem}.empty .hint{margin-top:2rem}.overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.2rem}.overview-grid>.card{text-align:left}.overview-grid p{color:var(--muted)}.year-tile{display:block;min-height:150px}.section-title{margin-top:3rem}.editor{max-width:820px;margin:auto;padding:2rem 2.5rem}.editor>label:first-child input{font-size:1.15rem}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:0 1.4rem}fieldset{border:0;border-top:1px solid var(--line);padding:1.5rem 0;margin:1.5rem 0}legend{padding-right:1rem;font-family:Georgia,serif;font-size:1.4rem}.reflection-fields{margin:2rem 0}.editor-footer{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--line)}#save-status{font-size:.8rem;color:var(--muted)}.photo-edit{padding:1rem 0;border-bottom:1px solid var(--line)}.photo-edit img{height:130px;max-width:100%;object-fit:contain;border-radius:10px}.site-footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem 4vw;color:var(--muted);font-size:.85rem}.site-footer button{border:0;background:none}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.settings-grid .card{padding:2rem}.settings-grid p{font-size:.93rem}.session-picker{max-height:45vh;overflow:auto;padding:1rem 0;margin-bottom:1rem}.session-picker .check{padding:.7rem;border-bottom:1px solid var(--line)}dialog{color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:2rem;width:min(760px,92vw);max-height:90vh;box-shadow:0 30px 100px #0003}dialog::backdrop{background:#151b1788;backdrop-filter:blur(3px)}.modal-head{display:flex;gap:1rem;justify-content:space-between;align-items:center;margin-bottom:1rem}.modal-head h2{font-size:1.6rem}.modal-head button{border:0}.focused{padding:1rem 0 2rem}.focused h1{font-size:2.5rem}.reflection{margin:1.75rem 0}.reflection h3{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.reflection p{white-space:pre-wrap}figure{margin:2rem 0}figure img{max-width:100%;max-height:60vh;display:block;object-fit:contain;border-radius:14px}figcaption{font-size:.88rem;color:var(--muted);margin-top:.75rem}#toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);max-width:min(700px,92vw);padding:.8rem 1.4rem;border-radius:14px;background:var(--ink);color:var(--bg);box-shadow:var(--shadow);z-index:20;font-size:.9rem}#toast:empty{display:none}#toast.error{background:var(--rose);color:var(--paper)}.login-layout{max-width:1250px!important;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:5rem;padding-top:7vh!important}.login-intro h1{font-size:clamp(3rem,5.7vw,5rem);line-height:1.1}.login-intro p:not(.eyebrow){color:var(--muted);margin-top:2rem}.leaf-mark{font-size:7rem;line-height:1;color:var(--accent)}.login-card{padding:2.5rem}.login-card .primary{width:100%;margin-top:1rem}.welcome{max-width:600px!important;text-align:center;padding-top:15vh!important}.presentation-bar{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;gap:1rem;border-bottom:1px solid var(--line)}.brand{font-family:Georgia,serif;font-size:1.2rem}.presentation-content{max-width:980px;margin:auto;padding:3rem 2rem 10rem;outline:none}.slide{max-width:770px;margin:2.5rem auto;font-size:1.22rem;line-height:1.85}.slide h1{font-size:clamp(2.6rem,5vw,4.2rem);line-height:1.15}.slide .reflection{margin:2.3rem 0}.placeholder{text-align:center;margin:8vh 0 2rem;padding:4rem 2rem;background:var(--soft);border-radius:24px}.placeholder h2{font-size:2.4rem}.placeholder p{color:var(--muted)}.slide:has(.placeholder)>button{display:block;margin:auto}.presentation-footer{position:fixed;bottom:0;left:0;right:0;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 2rem;background:var(--bg);border-top:1px solid var(--line)}.presentation-footer [role=status]{padding:0 .7rem;color:var(--muted);font-size:.85rem}.current{outline:2px solid var(--accent)}kbd{font-size:.7rem;opacity:.7;border:1px solid var(--line);padding:0 .25rem;border-radius:4px}#curtain{position:fixed;inset:0;z-index:100;background:var(--bg);display:grid;place-items:center;padding:2rem;text-align:center}#curtain h1{font-size:3.5rem}#curtain p{color:var(--muted)}.screen-hidden #app,.screen-hidden #presentation,.screen-hidden #toast{visibility:hidden}.print-document{max-width:850px;margin:auto;padding:3rem 2rem}.print-event{background:var(--paper);border-radius:16px;margin:2rem 0;padding:2.5rem}.print-event h1{font-size:2.2rem}
@media(max-width:1050px){.site-header{flex-wrap:wrap}.site-header nav{order:3;width:100%;justify-content:center}.page-head{align-items:flex-start;flex-direction:column;gap:.8rem}.login-layout{gap:2rem}.login-card{padding:1.8rem}}
@media(max-width:650px){#main{padding:2rem 1rem 4rem}.site-header{padding:.8rem 1rem;gap:.65rem}.wordmark{font-size:1.2rem}.site-header>.actions{gap:.35rem}.site-header>.actions button{font-size:.82rem;padding:.5rem .65rem}.site-header nav{overflow:auto;justify-content:space-between;flex-wrap:nowrap}.site-header nav button{font-size:.86rem;padding:.5rem .7rem}.filters{padding:.8rem 1rem}.filter-row{gap:.5rem}.filter-row label{min-width:115px}.selection-bar{flex-direction:column;align-items:flex-start}.selection-bar .actions{gap:.3rem}.selection-bar button{font-size:.77rem;padding:.5rem .6rem}.memory-card{margin-left:1.4rem;padding:.5rem .7rem}.memory-card:before{left:-.85rem}.memory-open h3{font-size:1.4rem}.year-marker{padding-left:1.4rem}.year-marker:before{left:.35rem}.editor{padding:1rem 1.15rem}.two-col,.settings-grid{grid-template-columns:1fr}.settings-grid .card{padding:1.5rem}.login-layout{display:block;padding-top:3vh!important}.login-intro h1{font-size:2.8rem}.login-intro{margin-bottom:2rem}.login-intro p:not(.eyebrow){margin-top:1rem}.leaf-mark{display:none}.login-card{padding:1.4rem}.presentation-bar{padding:.75rem 1rem;flex-wrap:wrap}.presentation-bar button{font-size:.85rem}.presentation-content{padding:2rem 1.25rem 12rem}.slide{font-size:1.1rem}.presentation-footer{padding:.8rem 1rem}.presentation-footer>.actions{justify-content:center;width:100%}.presentation-footer button{font-size:.85rem}.placeholder{padding:2rem 1rem}.site-footer{font-size:.78rem}.site-footer span{max-width:55%}dialog{padding:1.2rem}.print-event{padding:1.4rem}.print-document{padding:1.5rem 1rem}.empty{padding:2rem .5rem;margin-top:1rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important;animation:none!important}}
@media print{@page{margin:18mm}body{background:white!important;color:#222!important;font-size:11pt}body:not(.print-preview)>*{display:none!important}body:not(.print-preview)::after{content:'Use Life Chapters presentation → Print / PDF preview to choose what to print.'}body.print-preview #app,body.print-preview #toast,body.print-preview dialog,body.print-preview #curtain,.no-print,.presentation-bar,.presentation-footer,.skip{display:none!important}body.print-preview #presentation{display:block!important}.print-document{padding:0;max-width:none}.print-event{background:white;color:#222;border-radius:0;padding:0;margin:0;break-after:page;box-shadow:none}.print-event h1{font-size:26pt}.print-event h3,.print-event .eyebrow,.print-event figcaption{color:#555}.reflection,figure{break-inside:avoid}.print-event img{max-height:140mm}.placeholder{background:#f1f1ed;color:#222}.screen-hidden>*{display:none!important}.screen-hidden::after{content:'Life Chapters — screen hidden.'!important}}

/* Isolated clinician portal and owner sharing dialog. */
.clinician-auth{max-width:620px;margin:0 auto}.clinician-auth h1{font-size:2.5rem}
.clinician-memory{margin:1.5rem 0;overflow-wrap:anywhere}.clinician-memory .reflection p{white-space:pre-wrap}
.clinician-memory img{display:block;max-width:100%;max-height:70vh;object-fit:contain;border-radius:12px}
.clinician-memory figure{margin:1.5rem 0}.clinician-memory figcaption{white-space:pre-wrap;overflow-wrap:anywhere}
.clinician-manager{width:min(900px,94vw)}.clinician-manager fieldset{border:1px solid var(--line);border-radius:12px;margin:1.5rem 0;padding:1rem}
.clinician-picker{max-height:45vh;overflow:auto}.clinician-picker details{margin:0 0 .8rem 2rem}
.clinician-accounts{display:grid;gap:1rem;margin-top:1rem}.clinician-manager input[readonly]{font-family:ui-monospace,monospace}
.clinician-manager[aria-busy=true] #clinician-body button,.clinician-manager[aria-busy=true] #clinician-body input{pointer-events:none}
@media(max-width:600px){.clinician-portal .page-head{display:block}.clinician-manager{padding:1rem}.clinician-memory{padding:1.2rem}}

/* Expanded owner navigation remains readable without a horizontal-only menu. */
.site-header{flex-wrap:wrap}.site-header>*{min-width:0}.site-header nav{flex-wrap:wrap}
@media(max-width:650px){.site-header nav{overflow:visible;justify-content:flex-start;flex-wrap:wrap}.site-header>.actions{width:100%}}


.comparison-wrap { overflow-x:auto; }
.comparison { width:100%; border-collapse:collapse; }
.comparison th,.comparison td { padding:.75rem; text-align:left; vertical-align:top; border-bottom:1px solid var(--line,#bbb); }
.comparison pre { white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; margin:0; max-width:32rem; }
.datetime-fields { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:1rem; }
.photo-quality-preview { display:block; max-width:100%; max-height:55vh; object-fit:contain; margin:1rem auto; }
.session-tabs { display:flex; flex-wrap:wrap; gap:.75rem; margin-block:1rem; }
.session-tabs [aria-current=page] { font-weight:bold; text-decoration:underline; text-underline-offset:.3em; }
.session-sharing { margin-block:1rem; padding:1rem; border:1px solid var(--line,#bbb); border-radius:1rem; }
meter { width:100%; height:1.5rem; }
[hidden] { display:none !important; }

/* Independent optional memory check-ins, shared by owner and approved views. */
.memory-ratings{margin:28px 0;padding:26px;border:1px solid var(--line);border-radius:18px;background:var(--paper);color:var(--ink)}
.memory-ratings h2{font-size:1.7rem;margin:8px 0 14px}.memory-ratings p{line-height:1.65}.rating-current{border-bottom:1px solid var(--line);padding-bottom:8px}.rating-current time{font-size:.8rem;color:var(--muted)}
.rating-controls{border:0;margin:22px 0 0;padding:0;min-width:0}.rating-controls legend{font-weight:600;margin-bottom:14px}.rating-scale{padding:20px 18px;margin:14px 0 22px;border:1px solid var(--line);border-radius:14px;background:var(--bg);--rating-color:var(--accent)}.rating-distress{--rating-color:#946844}.rating-scale-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.rating-scale-head label{margin:0;font-weight:600}.rating-scale output{white-space:nowrap;font-size:1.1rem;font-weight:700;color:var(--muted)}.rating-scale[data-rated=true] output{color:var(--rating-color)}
.memory-ratings input[type=range]{appearance:none;-webkit-appearance:none;width:100%;height:44px;padding:0;margin:16px 0 6px;cursor:pointer;border:0;background:transparent;accent-color:var(--rating-color)}.memory-ratings input[type=range]::-webkit-slider-runnable-track{height:12px;border-radius:12px;background:linear-gradient(90deg,var(--soft),var(--rating-color))}.memory-ratings input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:30px;height:30px;margin-top:-9px;border:3px solid var(--rating-color);border-radius:50%;background:var(--paper);box-shadow:0 2px 6px #0002}.memory-ratings input[type=range]::-moz-range-track{height:12px;border-radius:12px;background:linear-gradient(90deg,var(--soft),var(--rating-color))}.memory-ratings input[type=range]::-moz-range-thumb{width:24px;height:24px;border:3px solid var(--rating-color);border-radius:50%;background:var(--paper)}.memory-ratings input[type=range]:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.rating-endpoints{display:flex;justify-content:space-between;gap:24px;font-size:.78rem;color:var(--muted)}.rating-endpoints span{max-width:48%}.rating-endpoints span:last-child{text-align:right}.rating-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}.rating-actions button{font-size:.75rem;padding:8px 12px}.rating-history{margin:16px 0}.rating-history summary{cursor:pointer;min-height:44px;padding:10px 0}.rating-table{overflow-x:auto}.rating-table table{width:100%;border-collapse:collapse;font-size:.8rem}.rating-table caption{text-align:left;color:var(--muted);padding:10px 0}.rating-table td,.rating-table th{text-align:left;padding:12px 8px;border-bottom:1px solid var(--line)}.rating-chip{font-variant-numeric:tabular-nums}.rating-readonly{box-shadow:none}.memory-ratings [data-rating-status]{overflow-wrap:anywhere}
@media(max-width:600px){.memory-ratings{padding:18px 14px}.rating-scale{padding:16px 12px}.rating-scale-head{align-items:flex-start}.rating-scale-head label{max-width:65%}.memory-ratings h2{font-size:1.45rem}}
.rating-scale:not([data-rated=true]) input[type=range]{opacity:.55}
