:root{color-scheme:light dark;--bg:#f7f6f2;--paper:#fffefa;--ink:#283c33;--muted:#6d776e;--green:#47694f;--pale:#eaf0e6;--line:#e1e5dc;--error:#944d43;--on:#fff;--clay:#a7775e;--sage:#64826a;--sand:#9d884e;--slate:#6c8293;--rose:#a47e86;--olive:#818657;font:15px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--green);outline-offset:4px}a{color:var(--green);text-decoration:none}h1,h2,h3,p{margin:0}h1{font-size:32px;letter-spacing:-.7px;line-height:1.35;font-weight:600}h2{font-size:19px;font-weight:600}h3{font-size:16px;font-weight:600}.muted,.meta{color:var(--muted)}.meta{font-size:12px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--muted);text-transform:uppercase}.startup{padding:15vh 10vw}.skip{position:fixed;top:-100px;z-index:20;background:var(--paper);padding:12px}.skip:focus{top:0}.shell{min-height:100vh;padding-left:224px}.sidebar{position:fixed;left:0;top:0;bottom:0;width:224px;padding:34px 24px;border-right:1px solid var(--line);display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;font-weight:600;font-size:20px}.brand img{width:34px;height:34px}.brand-caption{font-size:12px;color:var(--muted);margin:18px 0 36px;max-width:154px}.nav{display:grid;gap:9px}.nav button{border:0;text-align:left;background:transparent;padding:12px 15px;border-radius:12px;color:var(--muted);display:flex;align-items:center;gap:13px}.nav button.active{background:var(--pale);color:var(--green);font-weight:600}.ico{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}.sidebar-foot{margin-top:auto;padding-top:35px}.sidebar-foot button{width:100%;text-align:left}.main{max-width:1140px;margin:0 auto;padding:48px 56px 80px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:36px}.page-head p{margin-top:8px}.head-actions{display:flex;gap:8px;align-items:center}.btn{border:1px solid var(--line);padding:10px 17px;min-height:44px;border-radius:11px;background:var(--paper);font-size:14px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-align:center}.btn.primary{background:var(--green);color:var(--on);border-color:var(--green)}.btn.quiet{border-color:transparent;background:transparent;color:var(--muted)}.btn.small{padding:7px 12px;font-size:12px}.btn.danger{color:var(--error)}.btn.wide{width:100%}.hero{padding:30px 32px;border-radius:20px;background:var(--pale);margin-bottom:32px}.hero h2{font-size:27px;line-height:1.6;font-weight:500;max-width:430px}.hero p{margin-top:10px}.hero .actions{margin-top:24px}.two-col{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(230px,1fr);gap:28px}.section{margin-top:32px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:23px}.panel+.panel{margin-top:14px}.focus-row{padding:20px 0;border-bottom:1px solid var(--line);display:flex;gap:14px;align-items:flex-start}.focus-row:first-child{padding-top:0}.focus-row:last-child{border:0;padding-bottom:0}.focus-dot{width:7px;height:7px;border-radius:50%;background:var(--green);margin-top:11px;flex:none}.grow{flex:1;min-width:0}.focus-title{border:0;background:transparent;padding:0;text-align:left;font-size:17px;line-height:1.6;overflow-wrap:anywhere}.focus-row p{margin-top:6px;font-size:13px;color:var(--muted)}.entry{display:flex;gap:15px;padding:23px 0;border-bottom:1px solid var(--line);cursor:pointer}.entry:focus-visible{outline:2px solid var(--green)}.entry-emoji{font-size:25px;line-height:1.4}.entry p{white-space:pre-wrap;overflow-wrap:anywhere}.entry-cover{width:74px;height:74px;border-radius:10px;object-fit:cover}.excerpt{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.date-head{font-size:12px;letter-spacing:.4px;margin:27px 0 1px;color:var(--muted)}.tag{display:inline-block;font-size:11px;color:var(--muted);padding:2px 7px;border-radius:5px;background:var(--pale);margin:6px 5px 0 0}.quiet-card{padding:24px 0;border-top:1px solid var(--line);font-size:15px;line-height:1.9;color:var(--muted)}.empty{padding:34px 8px;text-align:center;color:var(--muted)}.empty p{font-size:13px;margin-top:8px}.empty .btn{margin-top:20px}.filter-row,.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.filter-row{margin-bottom:20px}.filter-row input{flex:1;min-width:150px}.segments{display:inline-flex;background:var(--pale);padding:4px;border-radius:10px;gap:3px}.segments button{border:0;background:transparent;color:var(--muted);padding:7px 13px;min-height:36px;border-radius:7px;font-size:13px}.segments button.active{background:var(--paper);color:var(--green);box-shadow:0 1px 3px #00000009}.areas-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.area-card{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:16px;background:var(--paper);padding:23px;transition:transform .15s}.area-card:hover{transform:translateY(-2px);border-color:var(--green)}.area-top{display:flex;align-items:center;gap:10px;margin-bottom:12px}.swatch{width:10px;height:10px;border-radius:50%;background:var(--sage);flex:none}.clay{background:var(--clay)}.sand{background:var(--sand)}.slate{background:var(--slate)}.rose{background:var(--rose)}.olive{background:var(--olive)}.area-card p{font-size:13px;min-height:22px}.area-card .meta{margin-top:12px}meter{display:block;height:7px;width:100%;margin:15px 0 8px;border:0;background:var(--pale);border-radius:5px}meter::-webkit-meter-bar{background:var(--pale);border:0;border-radius:5px}meter::-webkit-meter-optimum-value{background:var(--sage);border-radius:5px}meter::-moz-meter-bar{background:var(--sage)}.stats-strip{display:flex;gap:32px;margin:22px 0 30px;flex-wrap:wrap}.stat b{display:block;font-size:24px;line-height:1.4;font-weight:500}.stat span{font-size:12px;color:var(--muted)}.note{font-size:12px;color:var(--muted);padding:16px 0}.week-grid{display:grid;grid-template-columns:repeat(13,1fr);gap:8px;margin:28px 0}.week-cell{border:1px solid transparent;background:var(--pale);border-radius:7px;aspect-ratio:1;min-height:36px;color:var(--muted);font-size:12px;position:relative}.week-cell.recorded{background:#dce7d6;color:var(--green)}.week-cell.current{border-color:var(--green);font-weight:700}.week-cell.future{opacity:.5}.life-grid{display:grid;grid-template-columns:repeat(80,1fr);gap:2px;max-width:680px;margin:24px 0}.life-grid i{aspect-ratio:1;background:var(--line)}.life-grid i.past{background:#9bae98}.life-grid i.current{background:var(--green);outline:1px solid var(--green)}.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.legend span{display:flex;gap:6px;align-items:center}.legend i{width:8px;height:8px;background:var(--pale)}label{display:block;font-size:13px;color:var(--muted);margin:20px 0 8px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:9px;background:var(--paper);padding:11px 13px;font-size:15px;min-height:44px}textarea{resize:vertical;min-height:110px;line-height:1.85}.write-field{border:0;padding:16px 0;min-height:230px;font-size:17px;background:transparent}.check{display:flex;align-items:center;gap:10px}.check input{width:18px;min-height:18px;accent-color:var(--green)}.error{padding:14px 16px;background:#f5e9e5;color:var(--error);border-radius:10px;margin:14px 0;font-size:13px;white-space:pre-wrap}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.dialog-head h2{font-size:22px}.dialog-footer{display:flex;justify-content:flex-end;gap:9px;margin-top:27px;padding-top:18px;border-top:1px solid var(--line);flex-wrap:wrap}.dialog-body{margin-top:18px}dialog{color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:20px;width:min(630px,calc(100% - 32px));max-height:90dvh;overflow:auto;padding:27px;box-shadow:0 22px 100px #17201920}dialog::backdrop{background:#202b2940;backdrop-filter:blur(3px)}.pair-code{font-size:30px;letter-spacing:4px;font-weight:600;margin:25px 0;user-select:all}.login-page{max-width:600px;margin:8vh auto;padding:30px}.login-page h1{font-size:37px;margin:32px 0 15px}.login-page .panel{margin-top:36px}.steps{padding-left:22px;line-height:2.2;color:var(--muted);font-size:14px}.photos{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.photo-item{position:relative}.photo-item img{width:100px;height:100px;border-radius:10px;object-fit:cover}.photo-item button{position:absolute;top:3px;right:3px;min-height:28px;padding:2px 8px}.entry-detail{font-size:17px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.95;margin:24px 0}.full-photo{width:100%;max-height:600px;object-fit:contain;border-radius:12px;margin-bottom:12px}.editor-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px}.emoji-list{display:flex;gap:7px;flex-wrap:wrap;margin:18px 0 4px}.emoji-list .btn{font-size:22px;border-color:transparent}.emoji-list .selected{background:var(--pale);border-color:var(--green)}.quiet-divider{margin:28px 0;border:0;border-top:1px solid var(--line)}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);padding:12px 20px;border-radius:12px;background:var(--ink);color:var(--bg);box-shadow:0 10px 40px #0002;font-size:14px;z-index:30;display:none;max-width:90vw}#toast.visible{display:block}.wrap{overflow-wrap:anywhere}.mobile-settings{display:none}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.danger-zone{margin-top:40px;border-top:1px solid var(--line);padding-top:24px}.period-note{max-width:600px}.archive-row{opacity:.7}.review-bars{display:flex;gap:4px;margin:15px 0}.review-bars i{height:8px;flex:1;background:var(--pale);border-radius:2px}.review-bars i.marked{background:var(--sage)}
@media(max-width:900px){.sidebar{width:188px;padding:28px 18px}.shell{padding-left:188px}.main{padding:36px 28px 70px}.two-col{grid-template-columns:1fr}.brand-caption{margin-bottom:24px}.page-head{margin-bottom:25px}}
@media(max-width:620px){.shell{padding-left:0}.sidebar{width:auto;top:auto;right:0;bottom:0;height:calc(68px + env(safe-area-inset-bottom));padding:4px 10px env(safe-area-inset-bottom);background:var(--paper);border-right:0;border-top:1px solid var(--line);z-index:10}.sidebar>.brand,.brand-caption,.sidebar-foot{display:none}.nav{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}.nav button{display:flex;flex-direction:column;gap:2px;padding:9px 2px 6px;font-size:10px;line-height:1.4;border-radius:10px}.nav button.active{background:transparent}.nav button.active .ico{stroke-width:2}.main{padding:28px 22px 110px}.page-head{align-items:flex-start;gap:8px;margin-bottom:25px}.page-head h1{font-size:28px}.page-head p{font-size:12px}.head-actions{gap:3px}.head-actions .btn{padding:9px 12px;font-size:12px}.mobile-settings{display:inline-flex}.hero{padding:24px;border-radius:16px}.hero h2{font-size:24px}.two-col{gap:25px}.areas-grid{gap:12px}.area-card{padding:17px 15px}.area-card h3{font-size:15px}.area-card .meta,.area-card p{font-size:11px}.stats-strip{gap:23px}.stat b{font-size:22px}.week-grid{grid-template-columns:repeat(7,1fr);gap:8px}.life-grid{gap:1px}.btn{min-height:44px}.panel{padding:20px}.form-grid{grid-template-columns:1fr}.login-page{margin:3vh auto;padding:24px}.login-page h1{font-size:31px}.pair-code{font-size:26px;letter-spacing:2px}dialog{max-height:91dvh;border-radius:18px;padding:22px}#toast{bottom:95px}.hero .actions .btn{flex:1}.filter-row{gap:8px}.entry-cover{width:65px;height:65px}.page-head .head-actions .label-desktop{display:none}}
@media(prefers-color-scheme:dark){:root{--bg:#171f1b;--paper:#202b23;--ink:#e3eae1;--muted:#a6b4a7;--green:#a5c59f;--pale:#29382d;--line:#3a483e;--on:#17251b;--error:#f0afa0;--sage:#89a285}.week-cell.recorded{background:#354e37}.error{background:#3c2b28}.area-card:hover{border-color:var(--muted)}.life-grid i.past{background:#748c71}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.entry-select{width:20px;min-height:20px;flex:0 0 20px;align-self:center;accent-color:var(--green)}

/* PWA controls stay clear of the journal and the mobile tab bar. */
[hidden]{display:none!important}.pwa-banner{position:fixed;z-index:8;right:24px;bottom:24px;max-width:min(460px,calc(100vw - 32px));display:flex;align-items:center;gap:16px;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:var(--paper);box-shadow:0 6px 28px #0001;font-size:13px}.pwa-banner .btn{flex:none}#pwa-help{max-width:480px}#pwa-help p{overflow-wrap:anywhere}
@media(max-width:720px){.pwa-banner{left:16px;right:16px;bottom:calc(84px + env(safe-area-inset-bottom));max-width:none;gap:12px}.main{padding-top:calc(28px + env(safe-area-inset-top))}.login-page{padding-top:calc(24px + env(safe-area-inset-top))}}
@media(display-mode:standalone){body{overscroll-behavior-y:contain}.sidebar{padding-top:calc(34px + env(safe-area-inset-top))}}

.auth-card{margin-top:28px}.auth-tabs{display:flex;width:100%}.auth-tabs>button{flex:1}.auth-tabs [aria-current=true]{background:var(--paper);color:var(--green);box-shadow:0 1px 4px #0001}.qr-panel{text-align:center;min-height:180px;margin:22px 0}.login-qr{display:block;width:240px;max-width:100%;aspect-ratio:1;margin:0 auto 14px;border-radius:14px;background:white}.email-code-row{display:flex;gap:10px;align-items:flex-end}.email-code-row>div{flex:1;min-width:0}.email-code-row>.btn{flex:none;margin-bottom:0}.auth-card input{width:100%}.auth-card .check input{width:auto}.auth-error[hidden]{display:none}.auth-note{margin-top:12px}.auth-card label{margin-top:16px}

.field-wrap{min-width:0}.field-wrap input{width:100%}.auth-note:empty{display:none}.auth-card form>.btn.section{margin-top:24px}

.device-fingerprint{display:block;margin-top:1rem;font-size:1.1rem;letter-spacing:.05em;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}

/* 0.5: quiet editorial layout, matched to the public reading room. */
:root{--bg:#f5f2eb;--paper:#fffdf7;--ink:#2e3c32;--green:#41634a;--line:#dedfd4;--pale:#e7eddf} .sidebar{background:var(--paper)}.main{max-width:1180px}.hero{position:relative;overflow:hidden;background:linear-gradient(115deg,var(--pale),var(--paper));border:1px solid var(--line);padding:38px;border-radius:22px}.hero:after{content:"";position:absolute;right:-40px;top:-50px;width:220px;height:220px;border:1px solid var(--line);border-radius:50%;pointer-events:none}.hero h2{font-family:Georgia,"Songti SC",serif;font-size:clamp(25px,3vw,38px);line-height:1.55;font-weight:500;position:relative;z-index:1}.hero .actions{position:relative;z-index:1}.panel{box-shadow:0 3px 20px #263a2d03}.focus-row{padding:20px 0}.focus-dot{width:9px;height:9px;background:var(--green)}.focus-title{font-size:16px}.public-reading{font-size:13px;display:block;padding:12px 0}.review-links{margin-top:14px;border-top:1px solid var(--line);padding-top:8px}.period-note{font-size:14px}.stats-strip{opacity:.85}.stats-strip b{font-size:25px}.area-card meter{opacity:.5}.mobile-settings{display:none!important}.nav button{min-height:48px}.login-page h1{font-family:Georgia,"Songti SC",serif}.week-cell.current{outline:2px solid var(--green);outline-offset:3px}
@media(max-width:620px){.hero{padding:25px 22px}.sidebar .nav{grid-template-columns:repeat(4,1fr)}.nav button{padding:8px 3px;min-width:0}.nav button span{font-size:11px}.main{padding-bottom:110px}.page-head{margin-bottom:24px}.sidebar-foot{display:none}.hero:after{width:145px;height:145px;right:-60px}.actions{flex-wrap:wrap}}
@media(prefers-color-scheme:dark){:root{--bg:#1c251f;--paper:#222e26;--ink:#e4e8df;--green:#aac6a3;--line:#3b493d;--pale:#2e4032}.hero{background:linear-gradient(115deg,var(--pale),var(--paper))}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Weekly commitments lead; reflection and records remain quieter secondary paths. */
.week-intro{max-width:700px;font-size:15px;color:var(--muted);margin:-12px 0 28px}.commitments.section{margin-top:0}.commitments .eyebrow,.week-bottom .eyebrow{margin-bottom:6px}.commitment-count{font:15px Georgia,serif;color:var(--muted)}.commitments>.panel{margin-bottom:0}.people-invitation{display:flex;align-items:center;gap:28px;padding:22px 0;border-bottom:1px solid var(--line)}.people-invitation>div{flex:1}.people-invitation h3{margin-bottom:6px}.people-invitation .btn{flex-shrink:0}.choice-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0}.week-bottom{border-top:1px solid var(--line);padding-top:30px;margin-top:12px}.last-reflection{font-size:14px;line-height:1.8;margin-top:18px;padding-left:15px;border-left:2px solid var(--line)}.choice-group{padding:20px 0;border-bottom:1px solid var(--line)}.choice-group:first-child{padding-top:6px}.choice-group .note{margin-top:7px}
@media(max-width:620px){.week-intro{font-size:13px;margin-top:-8px}.people-invitation{display:block;padding:18px 0}.people-invitation .btn{margin-top:12px}.choice-strip{align-items:flex-start;flex-direction:column;gap:4px}.week-bottom{padding-top:24px}.commitments .panel{padding:18px}.commitments .actions{gap:6px}.commitments .actions .btn{padding:9px 12px}.commitments .section-head h2{font-size:18px}}

/* 0.8.0: one experience across choices, actions, dates and reflection. */
.week-bottom{grid-template-columns:minmax(0,1.4fr) minmax(250px,1fr);gap:38px}.week-side{border-left:1px solid var(--line);padding-left:28px}.important-date{padding:20px 0;border-bottom:1px solid var(--line)}.important-date:last-child{border-bottom:0}.date-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.date-heading>div{min-width:0}.date-heading .focus-title{display:block;margin-top:6px}.date-distance{color:var(--green);font-size:13px;white-space:nowrap}.important-date .note{padding:8px 0}.important-date>.btn{margin-top:8px;margin-left:-12px}.date-invitation,.reflection-invitation{padding:20px;border-radius:14px;background:var(--pale)}.week-side .reflection-invitation .note{padding:12px 0 20px}.week-moments .entry{padding:20px 0}.investment .section-head{align-items:flex-start}.distribution-layout.has-ring{display:grid;grid-template-columns:210px minmax(0,1fr);align-items:center;gap:40px;margin:16px 0 24px}.investment-ring{width:210px;height:210px;border-radius:50%;padding:22px}.investment-ring>div{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--paper);border-radius:50%}.investment-ring b{font:38px/1.3 Georgia,serif}.investment-ring span{font-size:12px;color:var(--muted);margin-top:8px}.investment-bucket{display:block;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);padding:15px 0;min-height:48px;width:100%;font-size:14px}.investment-bucket:last-child{border:0}.bucket-line{display:flex;align-items:center;justify-content:space-between;gap:16px}.bucket-line>span:first-child{min-width:0;overflow-wrap:anywhere}.bucket-line>span:last-child{flex-shrink:0;color:var(--muted);font-size:12px}.bucket-line i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:10px}.investment-track{display:block;height:7px;background:var(--pale);border-radius:7px;margin-top:12px;overflow:hidden}.investment-track i{display:block;height:100%;border-radius:7px}.investment-summary{padding:18px 20px;background:var(--pale);border-radius:14px}.investment-summary b{font-weight:500}.investment-summary .note{padding:6px 0 0}.focus-step{margin-top:18px;white-space:pre-wrap;line-height:1.9}.quick-minutes{margin-top:12px}.important-marker{position:absolute;right:5px;top:0;font-size:20px;color:var(--green)}.week-cell.future{opacity:.8}.investment .meta{margin-top:6px}.area-card .tag{margin-top:16px}.notice{padding:16px 18px;border-radius:12px;background:var(--pale);font-size:14px}.head-actions{flex-wrap:wrap}.dialog-head{position:sticky;top:-27px;background:var(--paper);z-index:2;padding:12px 0}.dialog-head h2{overflow-wrap:anywhere}.date-heading .focus-title:hover,.investment-bucket:hover{color:var(--green)}
@media(max-width:1000px){.week-bottom{grid-template-columns:1fr}.week-side{border-left:0;border-top:1px solid var(--line);padding:28px 0 0}.distribution-layout.has-ring{gap:26px;grid-template-columns:180px minmax(0,1fr)}.investment-ring{width:180px;height:180px}}
@media(max-width:620px){.page-head{align-items:flex-start;flex-wrap:wrap}.head-actions{width:100%}.head-actions .btn.primary{width:100%}.week-intro{margin-top:0}.distribution-layout.has-ring{display:flex;flex-direction:column;gap:20px}.distribution-legend{width:100%}.investment-ring{width:200px;height:200px}.investment .section-head{flex-direction:column;gap:16px}.investment{padding:20px 18px}.date-heading{gap:12px}.date-distance{font-size:12px}.investment-bucket{font-size:13px}.bucket-line{gap:10px}.week-side{padding-top:22px}.week-bottom{gap:28px}.form-grid,.editor-meta{grid-template-columns:1fr}.date-invitation,.reflection-invitation{padding:20px}.dialog-head{top:-22px}.segments button{min-height:44px}.investment .note{font-size:13px}.date-heading .focus-title{font-size:16px}.areas-grid{grid-template-columns:1fr}}
