/* App-only foundation. Original assessment pages and shared site chrome are untouched. */
#app{--lgw-bg:var(--bg,#0b0d12);--lgw-surface:var(--bg-raised,#10131a);--lgw-control:var(--bg-surface,#1a1e28);--lgw-hover:var(--bg-surface-hover,#1f2430);--lgw-text:var(--text,#f4f2ed);--lgw-muted:var(--gray-200,#b4bac8);--lgw-line:var(--border-hover,rgba(255,255,255,.14));--lgw-accent:var(--life,#56b86c);--lgw-soft:var(--life-soft,rgba(86,184,108,.12));--lgw-on-accent:var(--gray-950,#0b0d12);--lgw-serif:var(--font-display,'Fraunces',Georgia,serif);--lgw-sans:var(--font-body,'Plus Jakarta Sans',system-ui,sans-serif);color:var(--lgw-text);font:400 16px/1.55 var(--lgw-sans);color-scheme:dark}
#app.wrap.lg-wide{max-width:1040px;padding:24px 24px 48px}
#app [hidden]{display:none!important}
#app .top{gap:16px;margin-bottom:18px;align-items:center}
#app .brand{font:500 19px/1.3 var(--lgw-sans);text-transform:none;letter-spacing:-.03em}
#app .chiprow{gap:4px 12px;flex-wrap:wrap;justify-content:flex-end}
#app .linkbtn{min-height:44px;padding:8px 0;color:var(--lgw-muted);font-size:16px}
#app .linkbtn:hover{color:var(--lgw-text)}
#app .lg-workspace-head{margin:0 0 16px}
#app .lg-workspace-head .greet{font:400 25px/1.2 var(--lgw-serif);margin:0;letter-spacing:-.025em}
#app .lg-workspace-head .greet-sub{margin:6px 0 0;font:400 16px/1.5 var(--lgw-sans);color:var(--lgw-muted)}
#app #tabs.lg-workspace-nav{display:flex;gap:4px;flex-wrap:wrap;padding:4px;margin:0 0 24px;background:var(--lgw-surface);border:1px solid var(--lgw-line);border-radius:12px}
#app .lg-workspace-nav .tab{flex:1 1 auto;min-height:44px;padding:10px 14px;font:500 16px/1.3 var(--lgw-sans);color:var(--lgw-muted);border-radius:8px;transition:background .15s ease,color .15s ease}
#app .lg-workspace-nav .tab.on,#app .lg-workspace-nav .tab[aria-selected=true]{background:var(--lgw-control);box-shadow:none;color:var(--lgw-text)}
#app .lg-workspace-nav .tab svg{color:currentColor}
#app .lg-workspace-nav .tab-dot{background:var(--lgw-accent)}
#app .lg-workspace-view{min-width:0}
#app :is(#viewToday,#viewPlan){max-width:760px;margin:0 auto}
#app .lg-workspace-title{margin:0 0 16px;font:400 28px/1.2 var(--lgw-serif);letter-spacing:-.025em}
#app .lg-workspace-tools{display:flex;gap:8px 18px;flex-wrap:wrap;align-items:center;margin:0 0 18px}
#app .lg-workspace-tools button{min-height:44px;padding:8px 0;background:transparent;border:0;color:var(--lgw-muted);font:500 16px/1.4 var(--lgw-sans);text-underline-offset:5px}
#app .lg-workspace-tools button[aria-pressed=true],#app .lg-workspace-tools button[aria-current]{color:var(--lgw-text);text-decoration:underline;text-decoration-color:var(--lgw-accent)}
#app :is(.lg-surface,.lg-reading,.lg-plan,.lg-today,.lg-progress,.lg-history){--lg-bg:var(--lgw-surface);--lg-card:var(--lgw-control);--lg-ink:var(--lgw-text);--lg-muted:var(--lgw-muted);--lg-line:var(--lgw-line);--lg-accent:var(--lgw-accent);--today-line:var(--lgw-line);--plan-line:var(--lgw-line);color:var(--lgw-text);background:var(--lgw-surface);border:1px solid var(--lgw-line);border-radius:16px;padding:24px;margin:0 0 20px;box-shadow:none;font:400 16px/1.55 var(--lgw-sans)}
#app :is(.lg-surface,.lg-reading,.lg-plan,.lg-today,.lg-progress,.lg-history) h2{font:400 28px/1.2 var(--lgw-serif);color:var(--lgw-text);margin:0 0 12px;letter-spacing:-.025em}
#app :is(.lg-surface,.lg-reading,.lg-plan,.lg-progress,.lg-history) h3{font:400 25px/1.25 var(--lgw-serif);color:var(--lgw-text);margin:0 0 12px}
#app :is(.lg-surface,.lg-reading,.lg-plan,.lg-progress,.lg-history) h4{color:var(--lgw-text);font:500 17px/1.45 var(--lgw-sans)}
#app :is(.lg-kicker,.lg-plan-kicker,.lgp-eyebrow){font:500 16px/1.45 var(--lgw-sans);color:var(--lgw-accent);letter-spacing:.06em;margin:0 0 8px}
#app :is(.lg-caption,.lg-reading-meta,.lg-plan-note,.lg-today-meta,.lg-node-state,.lgp-meta,.lg-plan-meta){color:var(--lgw-muted);font:400 16px/1.5 var(--lgw-sans)}
#app :is(.lg-surface,.lg-reading,.lg-plan,.lg-today,.lg-progress,.lg-history) :is(button,input,select,textarea){font-family:var(--lgw-sans);box-shadow:none}
#app :is(.lg-surface,.lg-reading,.lg-plan,.lg-today,.lg-progress,.lg-history) :is(button,select,textarea,input[type=number],input[type=text],input[type=date]){max-width:100%;min-height:44px;border:1px solid var(--lgw-line);border-radius:10px;background:var(--lgw-control);color:var(--lgw-text);padding:10px 14px;font-size:16px;line-height:1.4;transform:none}
#app :is(.lg-surface,.lg-reading,.lg-plan,.lg-today,.lg-progress,.lg-history) button:hover:not(:disabled){background:var(--lgw-hover);box-shadow:none;transform:none}
#app :is(.lg-surface,.lg-reading,.lg-plan,.lg-today,.lg-progress,.lg-history) :is(input[type=checkbox],input[type=radio]){accent-color:var(--lgw-accent)}
#app :is(.lg-reading,.lg-plan,.lg-today) button[type=submit],#app .lg-today-primary{background:var(--lgw-accent);border-color:var(--lgw-accent);color:var(--lgw-on-accent);font-weight:500}
#app :is(.lg-reading,.lg-plan,.lg-today) button[type=submit]:hover:not(:disabled),#app .lg-today-primary:hover:not(:disabled){background:var(--lgw-accent);color:var(--lgw-on-accent)}
#app :is(.lg-surface,.lg-reading,.lg-plan,.lg-today,.lg-progress,.lg-history) :focus-visible{outline:2px solid var(--lgw-accent);outline-offset:4px}
#app :is(.lg-surface,.lg-reading,.lg-plan,.lg-today,.lg-progress,.lg-history) summary{min-height:44px;padding:11px 0;color:var(--lgw-text);font:500 16px/1.5 var(--lgw-sans);cursor:pointer}
#app :is(.lg-surface,.lg-reading,.lg-plan,.lg-today,.lg-progress,.lg-history) a{color:var(--lgw-accent);text-underline-offset:4px}
#app :is(.lg-plan-archive,.lg-reading-shell){border-color:var(--lgw-line);background:transparent;margin:20px 0}
#app .lg-reading-shell{border:0;border-radius:0}
#app .lg-reading-shell>summary{padding:12px 0;font:500 16px/1.5 var(--lgw-sans)}
#app .lg-reading-shell>summary>span{font:inherit;margin-right:8px}
#app .lg-rhythm-shell{max-width:760px;margin:20px auto;border-block:1px solid var(--lgw-line);overflow-wrap:anywhere}
#app .lg-rhythm-shell>summary{padding:12px 0;color:var(--lgw-text);font:500 16px/1.5 var(--lgw-sans)}
#app .lg-rhythm-shell[open]{border-bottom:0}
#app .lg-rhythm-shell .lg-rhythm{margin:0 0 20px}
#app .lg-reading{max-width:760px;margin:0 auto 20px}
#app .lg-reading header{max-width:none}
#app .lg-reading-header{margin-bottom:18px}
#app .lg-reading-header p{color:var(--lgw-muted);margin:8px 0}
#app .lg-reading-form fieldset{margin:0}
#app .lg-reading .lg-reading-question{font-size:16px;margin:0 0 16px}
#app .lg-reading textarea{margin-top:8px;font:400 16px/1.55 var(--lgw-sans)}
#app .lg-reading-source-options{margin:16px 0;border-block:1px solid var(--lgw-line)}
#app .lg-reading-sources{display:block;margin:0 0 16px}
#app .lg-reading-sources>div{padding:12px 0;border:0;border-radius:0;border-top:1px solid var(--lgw-line);background:transparent}
#app .lg-reading-sources label{font-size:16px;margin:0}
#app .lg-reading-sources small{color:var(--lgw-muted);font-size:16px;margin-top:3px}
#app .lg-reading-sources details{padding-left:32px}
#app .lg-reading-sources :is(li,summary){font-size:16px}
#app .lg-reading-provider{border-top:1px solid var(--lgw-line);padding-top:0;margin-top:16px}
#app .lg-reading-result{margin:0;padding:0;border:0}
#app .lg-reading-result>h3{font-size:28px;line-height:1.2;margin:0 0 12px}
#app .lg-reading-summary{margin:0 0 16px;max-width:65ch}
#app .lg-reading-source-key{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:16px 0}
#app .lg-reading-source-key li{padding:7px 10px;margin:0;border-radius:8px;background:var(--lgw-control);color:var(--lgw-muted);font-size:16px;line-height:1.45}
#app .lg-reading-qualifier{font-size:16px;color:var(--lgw-muted);margin:12px 0}
#app .lg-reading :is(.lg-reading-evidence,.lg-reading-themes,.lg-reading-next,.lg-reading-edit){border-top:1px solid var(--lgw-line);padding-top:0;margin-top:16px}
#app .lg-reading-result section{padding:16px 0;border-color:var(--lgw-line)}
#app .lg-reading-result section h4{margin:0 0 8px}
#app .lg-reading-result h5{margin:16px 0 6px;font:500 16px/1.5 var(--lgw-sans)}
#app .lg-reading-evidence ul{list-style:none;padding:0}
#app .lg-reading-evidence li{padding:12px 0;margin:0;border-bottom:1px solid var(--lgw-line);font-size:16px}
#app .lg-reading-prompt{border-color:var(--lgw-accent);margin:16px 0;padding-left:14px}
#app .lg-reading-message{color:var(--lgw-text);background:var(--lgw-control);border-color:var(--decision,#e4a24b);margin:12px 0;padding:12px 14px}
#app .lg-reading-save-actions{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;margin:16px 0 8px}
#app .lg-reading-save-actions:empty{display:none}
#app .lg-reading-save-actions p{margin:0;font-size:16px;color:var(--lgw-muted)}
#app .lg-insights{max-width:760px;margin:0 auto 24px;overflow-wrap:anywhere}
#app .lg-insights :is(button,summary),#app .lg-insights-return button{min-height:44px;font:500 16px/1.45 var(--lgw-sans);color:var(--lgw-text)}
#app .lg-insights button{padding:10px 14px;border:1px solid var(--lgw-line);border-radius:10px;background:var(--lgw-control);cursor:pointer}
#app .lg-insights button:hover:not(:disabled){background:var(--lgw-hover)}
#app .lg-insights button:disabled{opacity:.6;cursor:wait}
#app .lg-insights :is(button,summary):focus-visible,#app .lg-insights-return button:focus-visible{outline:2px solid var(--lgw-accent);outline-offset:4px}
#app .lg-insights-list{border-block:1px solid var(--lgw-line);padding:0;margin:0}
#app .lg-insights-list summary,#app .lg-insights-manage summary{padding:12px 0;cursor:pointer}
#app .lg-insights-list ul{list-style:none;padding:0;margin:0 0 8px}
#app .lg-insights-list li{margin:0;border-top:1px solid var(--lgw-line)}
#app .lg-insights-list li button,#app .lg-insights-return button{display:flex;align-items:center;justify-content:space-between;gap:8px 20px;text-align:left;width:100%;padding:14px 0;border:0;border-radius:0;background:transparent;cursor:pointer}
#app .lg-insights-list li button span,#app .lg-insights-return button span{min-width:0;font-weight:500}
#app .lg-insights-list small,#app .lg-insights-return small{flex-shrink:0;font:400 16px/1.5 var(--lgw-sans);color:var(--lgw-muted)}
#app .lg-insights-list>button{margin:0 0 16px}
#app .lg-insights-back{margin:0 0 16px}
#app .lg-insights .lg-reading{margin-bottom:16px}
#app .lg-insights [data-insight-action="start-plan"]{background:var(--lgw-accent);border-color:var(--lgw-accent);color:var(--lgw-on-accent);margin:0 0 16px}
#app .lg-insights [data-insight-action="start-plan"]:hover:not(:disabled){background:var(--lgw-accent);color:var(--lgw-on-accent)}
#app .lg-insights-manage{border-top:1px solid var(--lgw-line);padding:0;margin:0}
#app .lg-insights-manage p,#app .lg-insights-status{font:400 16px/1.5 var(--lgw-sans);color:var(--lgw-muted)}
#app .lg-insights-manage button{margin:0 8px 12px 0}
#app .lg-insights-return{border-block:1px solid var(--lgw-line);margin:0 0 20px;padding:12px 0 0;overflow-wrap:anywhere}
#app .lg-insights-return .lg-kicker{margin:0;font-size:16px}
#app .lg-insights-return button:hover span{color:var(--lgw-accent)}
#app .lg-plan--today{padding:24px;margin:0 0 16px}
#app .lg-plan--today h2{max-width:32ch;font-size:28px;margin:0 0 12px}
#app .lg-plan--today .lg-plan-link{display:inline-flex;align-items:center;background:var(--lgw-accent);color:var(--lgw-on-accent);border-color:var(--lgw-accent);text-decoration:none;margin-top:12px}
#app .lg-plan--today p{max-width:65ch}
#app .lg-plan-step{background:var(--lgw-control);border-color:var(--lgw-accent);padding:16px 18px}
#app :is(.lg-plan-week-review,.lg-plan-review-receipt,.lgp-signal,.lgp-prompt){background:var(--lgw-control);padding:18px}
#app .lg-today{padding:20px 24px}
#app .lg-today h2{font:500 17px/1.4 var(--lgw-sans);margin:0;letter-spacing:0}
#app .lg-today-head{gap:8px 16px}
#app .lg-today-head time{color:var(--lgw-muted);font-size:16px}
#app .lg-today-entry{margin-top:12px}
#app .lg-today-entry>summary{padding:12px 0}
#app .lg-today-entry>summary small{color:var(--lgw-muted);font-weight:400;font-size:16px;margin-left:12px}
#app .lg-today-entry[open]>summary{margin-bottom:16px}
#app .lg-today-signals{gap:24px}
#app .lg-today-choices span{background:var(--lgw-control);border-color:var(--lgw-line);color:var(--lgw-text)}
#app .lg-today-choices input:checked+span{background:var(--lgw-accent);border-color:var(--lgw-accent);color:var(--lgw-on-accent)}
#app :is(.lg-today-ends,.lg-today-empty,.lg-today-sleep small,.lg-today-context summary span,.lg-today-gap,.lg-today-week>p){color:var(--lgw-muted);font-size:16px}
#app .lg-today-context{border-color:var(--lgw-line);margin-top:20px}
#app .lg-today-factors{gap:4px 16px}
#app .lg-today-actions{gap:8px;margin-top:16px}
#app .lg-today-receipt{margin:14px 0 0}
#app .lg-today-receipt dl{gap:16px;margin:12px 0 16px}
#app .lg-today-receipt dt{color:var(--lgw-muted);font-size:16px}
#app .lg-today-receipt dd{font-size:17px;margin:4px 0;font-variant-numeric:tabular-nums}
#app .lg-today-saved{font-size:16px}
#app .lg-today-week{margin-top:16px;padding-top:0;border-color:var(--lgw-line)}
#app .lg-today table{font-size:16px;table-layout:fixed}
#app .lg-today :is(th,td){border-color:var(--lgw-line);overflow-wrap:anywhere;padding:10px 4px}
#app .lg-today :is(caption,th){color:var(--lgw-muted)}
#app .lg-today .is-today{background:var(--lgw-soft)}
#app .lgp-signals{gap:16px}
#app .lgp-events ol{max-height:none;overflow:visible}
#app .lgp-events li{background:var(--lgw-control)}
#app .lgp-table{border-color:var(--lgw-line)}
#app :is(.lgp-next,.lgp-observations,.lgp-events){border-color:var(--lgw-line);margin-top:24px;padding-top:24px}
#app .lg-heading{padding-bottom:16px}
#app .lg-heading .lg-count{font-size:16px;padding:5px 9px}
#app .lg-cross-layout{max-width:620px;margin:16px auto}
#app .lg-cross-selector .lg-cross-source{padding:0;border:0;min-height:44px;height:44px;width:44px;border-radius:50%}
#app .lg-themes{margin:16px 0;gap:12px}
#app .lg-themes .lg-theme{min-height:0;padding:16px;background:var(--lgw-control);border-color:var(--lgw-line)}
#app .lg-theme strong{font:400 22px/1.25 var(--lgw-serif);color:var(--lgw-text)}
#app .lg-theme span{font-size:16px;color:var(--lgw-muted)}
#app .lg-theme small{font-size:16px;color:var(--lgw-accent)}
#app .lg-surface .lg-insight-title{font-size:28px;max-width:30ch}
#app .lg-interpretation{font-size:16px;line-height:1.55}
#app :is(.lg-context-memory,.lg-next-step){background:var(--lgw-control);color:var(--lgw-text)}
#app .lg-source-measure{background:var(--lgw-control)}
#app .lg-source-measure>p,#app .lg-scale-endpoints{color:var(--lgw-muted)}
#app .lg-source-measure .lg-source-value{color:var(--lgw-text)}
#app .foot2{margin-top:32px;gap:12px 20px}
#app .foot2 :is(a,button){min-height:44px;display:inline-flex;align-items:center;color:var(--lgw-muted)}
/* Native disclosures keep their keyboard behavior; empty bars are decorative. */
#app.wrap details>summary,#app :is(#subscriptionSettings,#emailSettingsToggle){position:relative;min-height:44px;padding-inline-end:28px;cursor:pointer}
#app.wrap details>summary{list-style:none}
#app.wrap details>summary::marker{content:""}
#app.wrap details>summary::-webkit-details-marker{display:none}
#app.wrap details>summary::before,#app.wrap details>summary::after,#app :is(#subscriptionSettings,#emailSettingsToggle)::before,#app :is(#subscriptionSettings,#emailSettingsToggle)::after{content:"";position:absolute;inset-inline-end:4px;top:50%;width:12px;height:2px;border-top:2px solid currentColor;transform:translateY(-50%);pointer-events:none}
#app.wrap details>summary::after,#app :is(#subscriptionSettings,#emailSettingsToggle)::after{transform:translateY(-50%) rotate(90deg)}
#app.wrap details[open]>summary::after,#app :is(#subscriptionSettings,#emailSettingsToggle)[aria-expanded=true]::after{display:none}
#app.wrap details>summary:focus-visible,#app :is(#subscriptionSettings,#emailSettingsToggle):focus-visible{outline:2px solid var(--lgw-accent);outline-offset:4px}
@media(max-width:680px){
  #app.wrap.lg-wide{padding:18px 16px 32px}
  #app .top{align-items:flex-start;flex-wrap:wrap;margin-bottom:12px;gap:4px 16px}
  #app .top>.brand{min-height:44px;display:flex;align-items:center}
  #app .chiprow{gap:0 14px}
  #app #tabs.lg-workspace-nav{margin-bottom:18px;gap:2px}
  #app .lg-workspace-nav .tab{padding:10px 8px;font-size:16px}
  #app :is(.lg-surface,.lg-reading,.lg-plan,.lg-today,.lg-progress,.lg-history){padding:18px;border-radius:14px;margin-bottom:16px}
  #app :is(.lg-workspace-title,.lg-plan--today h2,.lg-reading-result>h3,.lg-surface .lg-insight-title){font-size:25px}
  #app .lg-workspace-tools{gap:4px 16px;margin-bottom:12px}
  #app .lg-reading button{width:auto}
  #app .lg-reading-sources details{padding-left:0}
  #app .lg-insights-list li button,#app .lg-insights-return button{align-items:flex-start;flex-direction:column;gap:4px}
  #app .lg-today-signals{grid-template-columns:1fr}
  #app .lg-today-entry>summary small{display:block;margin:3px 0 0}
  #app .lg-today-actions button{flex:0 1 auto}
  #app .lg-today-receipt dl{grid-template-columns:repeat(2,minmax(0,1fr))}
  #app .lg-themes{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){#app .lg-workspace-nav .tab{transition:none}}
@media(forced-colors:active){#app :is(.lg-surface,.lg-reading,.lg-plan,.lg-today,.lg-progress,.lg-history),#app #tabs.lg-workspace-nav{border-color:CanvasText}#app .lg-workspace-nav .tab[aria-selected=true]{outline:1px solid Highlight}}

/* First use starts with a useful question or an existing explanation. */
#app .lg-first-value{max-width:760px;margin:0 auto;overflow-wrap:anywhere}
#app .lg-first-value .lg-heading{display:block;margin-bottom:20px}
#app .lg-first-value .lg-heading p:not(.lg-kicker){max-width:58ch;color:var(--lgw-muted);margin:0}
#app .lg-first-choices{display:grid;gap:12px}
#app .lg-first-choices .lg-first-choice{display:grid;gap:5px;padding:18px 20px;border:1px solid var(--lgw-line);border-radius:12px;background:var(--lgw-control);color:var(--lgw-text);text-decoration:none;min-width:0}
#app .lg-first-choices .lg-first-choice:hover{border-color:var(--lgw-accent);background:var(--lgw-hover)}
#app .lg-first-choice strong{font-size:18px;line-height:1.4;font-weight:600}
#app .lg-first-choice span{font-size:16px;color:var(--lgw-muted)}
#app .lg-first-choice small{font-size:16px;color:var(--lgw-accent);margin-top:4px}
#app .lg-first-directory{margin-top:16px;border-top:1px solid var(--lgw-line)}
#app .lg-first-directory>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;padding-bottom:8px}
#app .lg-first-directory a{display:flex;align-items:center;min-height:44px;padding:8px 0;font-size:16px}
#app .lg-first-value .lg-detail{padding:0;border:0;background:transparent;min-width:0}
#app .lg-first-value .lgr-card{background:transparent;border:0;padding:0;margin:0}
#app .lg-first-value .lgr-reading{margin-top:18px}
#app .lg-first-next{border-top:1px solid var(--lgw-line);margin-top:20px;padding-top:20px}
#app .lg-first-next h3{max-width:40ch;font:500 19px/1.45 var(--lgw-sans);margin:0 0 14px}
#app .lg-first-value .lg-first-action{display:inline-flex;align-items:center;min-height:44px;padding:11px 16px;background:var(--lgw-accent);color:var(--lgw-on-accent);font-size:16px;font-weight:600;border:1px solid var(--lgw-accent);border-radius:10px;text-decoration:none}
#app .lg-first-results{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
#app .lg-first-results button[aria-pressed=true]{border-color:var(--lgw-accent);color:var(--lgw-accent)}
@media(max-width:600px){#app .lg-first-directory>div{grid-template-columns:1fr}#app .lg-first-choices .lg-first-choice{padding:16px}#app .lg-first-action{justify-content:center;width:100%}}
