/* The restored Companion shell shares the site's task engine and saved progress. */
:root { color-scheme: light; --app-bg:#f5f5ee; --app-surface:#fffef9; --app-ink:#183e33; --app-muted:#607269; --app-line:#dce4da; --app-green:#235c44; --app-soft:#e9efdf; --app-focus:#9cd17a; --app-shadow:0 15px 45px #294b3510; font-family:Arial,Helvetica,sans-serif; }
* { box-sizing:border-box; }
body { margin:0; background:var(--app-bg); color:var(--app-ink); font-size:16px; line-height:1.6; }
[hidden] { display:none!important; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea,summary { -webkit-tap-highlight-color:transparent; }
button,a { touch-action:manipulation; }
a { color:inherit; text-decoration:none; }
button { cursor:pointer; }
button:disabled { cursor:default; opacity:.58; }
:focus-visible { outline:3px solid var(--app-focus); outline-offset:4px; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:Georgia,'Times New Roman',serif; font-weight:400; line-height:1.12; letter-spacing:-.035em; }
h1 { font-size:clamp(36px,5.2vw,58px); margin-bottom:20px; }
h2 { font-size:32px; margin-bottom:16px; }
h3 { font-size:19px; line-height:1.4; }
p { margin-bottom:16px; }
.eyebrow { font-size:10px; font-weight:800; letter-spacing:.17em; line-height:1.5; color:var(--app-muted); }
.app-skip { position:fixed; left:12px; top:-80px; padding:12px; background:var(--app-surface); z-index:100; }
.app-skip:focus { top:8px; }
.companion-app { max-width:1120px; margin:auto; padding:0 32px 126px; }
.app-topbar { height:100px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid var(--app-line); }
.app-brand { display:flex; align-items:center; gap:12px; }
.app-brand img { object-fit:contain; }
.app-brand b,.app-brand small { display:block; }
.app-brand b { font-size:18px; letter-spacing:-.03em; }
.app-brand small { font-size:11px; color:var(--app-muted); }
.app-top-actions { display:flex; align-items:center; gap:16px; }
.app-save-chip { font-size:11px; color:var(--app-muted); }
.app-save-chip::before { content:''; display:inline-block; width:6px; height:6px; border-radius:50%; background:#7d9c64; margin-right:7px; }
.app-icon-button { width:38px; height:38px; border:1px solid var(--app-line); border-radius:50%; background:var(--app-surface); color:var(--app-ink); }
.app-screen { padding-top:42px; }
.app-screen-heading { max-width:610px; margin-bottom:32px; }
.app-screen-heading>p:last-child { color:var(--app-muted); max-width:500px; font-size:15px; }
.app-screen-heading.compact h1 { font-size:clamp(34px,4.6vw,48px); }
.app-screen-heading.compact { margin-bottom:28px; }
.app-today-grid { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(0,1fr); gap:22px; }
.app-focus-card { background:#173f35; color:#f5f8ed; border-radius:22px; padding:32px 38px; position:relative; overflow:hidden; }
.app-focus-card::after { content:''; position:absolute; width:180px; height:180px; border:1px solid #ffffff0c; border-radius:50%; right:-75px; top:-70px; box-shadow:0 0 0 24px #ffffff03,0 0 0 50px #ffffff03; pointer-events:none; }
.app-focus-label { font-size:10px; font-weight:700; letter-spacing:.1em; display:flex; align-items:center; gap:9px; margin-bottom:32px; color:#c0d5be; }
.app-dot { width:7px; height:7px; border-radius:50%; background:#bcd994; }
.app-focus-card .eyebrow { color:#a8c1ad; margin-bottom:10px; }
.app-focus-card h2 { font-size:clamp(29px,3.6vw,39px); max-width:450px; }
.app-focus-card>p:not(.eyebrow) { color:#d2ded2; max-width:440px; font-size:15px; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:46px; padding:11px 20px; border:1px solid transparent; border-radius:10px; font-size:13px; font-weight:700; line-height:1.45; text-align:center; }
.btn-primary { background:var(--app-green); color:#fff; }
.btn-primary:hover { filter:brightness(1.12); }
.btn-secondary { background:var(--app-surface); border-color:var(--app-line); color:var(--app-ink); }
.btn-secondary:hover { background:var(--app-soft); }
.app-focus-card .btn { background:#d0e3aa; color:#173f35; margin-top:8px; }
.app-focus-foot { display:block; font-size:11px; color:#b5cbb9; margin-top:18px; }
.app-progress-card { border:1px solid var(--app-line); background:var(--app-surface); border-radius:22px; padding:28px 22px; display:flex; align-items:center; flex-direction:column; justify-content:center; }
.app-progress-ring { margin:5px 0 18px; width:142px; height:142px; border-radius:50%; background:conic-gradient(var(--app-green) var(--tracker-progress,0%),var(--app-soft) 0); position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.app-progress-ring::before { content:''; position:absolute; inset:8px; background:var(--app-surface); border-radius:50%; }
.app-progress-ring span,.app-progress-ring small { position:relative; }
.app-progress-ring span { font-family:Georgia,serif; font-size:36px; line-height:1.2; }
.app-progress-ring small { font-size:10px; color:var(--app-muted); }
.app-progress-card>p:not(.eyebrow) { font-size:12px; color:var(--app-muted); }
.app-text-link { font-size:13px; font-weight:700; text-decoration:underline; text-underline-offset:4px; background:none; color:var(--app-ink); border:0; padding:8px 0; }
.app-quick-links { display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:22px; }
.app-quick-links a { display:flex; align-items:center; gap:18px; padding:22px 4px; border-bottom:1px solid var(--app-line); }
.app-quick-links a>span:first-child { font-size:11px; color:var(--app-muted); }
.app-quick-links a>span:last-child { margin-left:auto; }
.app-quick-links b,.app-quick-links small { display:block; }
.app-quick-links b { font-size:14px; }
.app-quick-links small { font-size:11px; color:var(--app-muted); }
.app-status-line { display:flex; gap:16px; flex-wrap:wrap; color:var(--app-muted); font-size:11px; margin:28px 0 12px; }
.app-welcome-note { display:flex; gap:20px; justify-content:space-between; align-items:center; color:var(--app-muted); font-size:12px; padding:18px 20px; border-radius:12px; background:var(--app-soft); }
.app-welcome-note p { margin:0; max-width:670px; }
.app-welcome-note button { flex-shrink:0; }
.app-nav { position:fixed; z-index:40; bottom:max(18px,env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%); display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); width:min(650px,calc(100% - 32px)); background:var(--app-surface); border:1px solid var(--app-line); border-radius:18px; padding:8px; box-shadow:0 8px 40px #102a3520; }
.app-nav a { display:flex; flex-direction:column; align-items:center; gap:5px; min-height:54px; justify-content:center; border-radius:12px; font-size:10px; color:var(--app-muted); font-weight:700; }
.app-nav a[aria-current='page'] { color:var(--app-ink); background:var(--app-soft); }
.app-nav svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.55; stroke-linecap:round; stroke-linejoin:round; }
.app-section-picker { border:1px solid var(--app-line); border-radius:14px; background:var(--app-surface); padding:0 20px; margin-bottom:26px; }
.app-section-picker summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:17px 0; cursor:pointer; font-size:14px; font-weight:700; list-style:none; }
.app-change-label { font-size:11px; color:var(--app-muted); text-decoration:underline; flex-shrink:0; }
.tracker-focus-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:0 0 20px; }
.tracker-focus-options label { position:relative; display:block; cursor:pointer; }
.tracker-focus-options input { position:absolute; top:15px; left:12px; accent-color:var(--app-green); }
.tracker-focus-options label>span { display:block; padding:13px 12px 13px 36px; border:1px solid var(--app-line); border-radius:10px; height:100%; }
.tracker-focus-options input:checked+span { background:var(--app-soft); border-color:var(--app-green); }
.tracker-focus-options input:focus-visible+span { outline:3px solid var(--app-focus); outline-offset:3px; }
.tracker-focus-options b,.tracker-focus-options small,.tracker-focus-options i,.tracker-focus-options strong { display:block; }
.tracker-focus-options b { font-size:13px; }
.tracker-focus-options small,.tracker-focus-options i { font-size:11px; color:var(--app-muted); font-style:normal; }
.tracker-focus-options strong { font-size:9px; margin-top:5px; color:var(--app-green); text-transform:uppercase; }
.tracker-stage-intro .eyebrow { margin-bottom:8px; }
.tracker-stage-intro h2 { font-size:24px; }
.companion-app .tracker-stage-intro h2 { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.companion-app [data-screen=tasks] .app-screen-heading { margin-bottom:22px; }
.companion-app [data-screen=tasks] .app-screen-heading h1 { margin-bottom:12px; }
.companion-app .tracker-stage-strip { margin-top:12px; margin-bottom:22px; }
.tracker-stage-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:22px 0 30px; }
.tracker-stage-strip article { min-width:0; }
.tracker-stage-strip button { width:100%; height:100%; display:grid; grid-template-columns:24px minmax(0,1fr); gap:3px 10px; text-align:left; padding:16px 14px; border:1px solid var(--app-line); border-radius:12px; background:var(--app-surface); color:var(--app-ink); }
.tracker-stage-strip button>span { grid-row:1/3; border:1px solid var(--app-line); width:24px; height:24px; display:grid; place-items:center; border-radius:50%; font-size:11px; }
.tracker-stage-strip b { font-size:12px; line-height:1.5; }
.tracker-stage-strip small { font-size:10px; color:var(--app-muted); }
.tracker-stage-strip .is-current button { background:var(--app-soft); border-color:var(--app-green); box-shadow:inset 0 -3px var(--app-green); }
.tracker-stage-strip .is-complete button>span { background:var(--app-green); color:#fff; }
.app-task-title { font-size:26px; }
.app-muted,.app-notice { color:var(--app-muted); font-size:13px; }
.app-notice { padding:16px; background:var(--app-soft); border-radius:10px; }
.tracker-week-grid { display:grid; grid-template-columns:1fr; gap:12px; margin-top:22px; }
.tracker-action-card { position:relative; border:1px solid var(--app-line); background:var(--app-surface); border-radius:15px; padding:22px 25px; }
.tracker-action-head { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:8px; }
.tracker-task-kind { font-size:9px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; color:var(--app-muted); }
.tracker-task-toggle { border:1px solid var(--app-line); background:var(--app-surface); color:var(--app-ink); padding:9px 13px; border-radius:8px; font-size:11px; font-weight:700; min-width:92px; min-height:44px; }
.tracker-action-card h3 { margin:0 100px 8px 0; font-size:18px; }
.tracker-action-card p { color:var(--app-muted); font-size:14px; max-width:760px; margin-bottom:8px; }
.tracker-guide-link { font-size:12px; color:var(--app-green); text-decoration:underline; text-underline-offset:3px; display:inline-block; padding:8px 0; }
.tracker-action-card.is-complete { background:var(--app-soft); border-color:#a6bda1; }
.is-complete .tracker-task-toggle { background:var(--app-green); color:#fff; border-color:var(--app-green); }
.is-complete .tracker-task-toggle::before { content:'✓ '; }
.app-stage-finish { padding:26px 0; }
.app-stage-finish>[role=status] { font-size:14px; font-weight:700; }
.app-button-row { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin:12px 0; }
.app-path-legend { display:flex; flex-wrap:wrap; gap:20px; font-size:11px; color:var(--app-muted); margin-bottom:20px; }
.app-path-row { border-top:1px solid var(--app-line); padding:24px 0; display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:24px; align-items:center; }
.app-path-row h2 { font-size:25px; margin-bottom:8px; }
.app-path-row p { font-size:12px; color:var(--app-muted); margin:0; }
.app-path-stages { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.app-path-stages button { padding:12px 5px; border:1px solid var(--app-line); border-radius:10px; background:var(--app-surface); color:var(--app-ink); }
.app-path-stages button b,.app-path-stages button small { display:block; }
.app-path-stages button b { font-size:11px; }
.app-path-stages button small { font-size:10px; color:var(--app-muted); }
.app-path-stages button.is-complete { background:var(--app-soft); border-color:var(--app-green); }
.app-guide-sections { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px; }
.app-guide-sections button { border:1px solid var(--app-line); background:var(--app-surface); color:var(--app-ink); border-radius:10px; padding:10px 13px; min-height:44px; font-size:12px; }
.app-guide-sections button[aria-pressed=true] { border-color:var(--app-green); background:var(--app-soft); }
.app-reader-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.app-guide-reader { width:100%; height:70dvh; min-height:420px; border:1px solid var(--app-line); background:var(--app-surface); border-radius:12px; }
.app-notebook { padding:26px; background:var(--app-surface); border:1px solid var(--app-line); border-radius:16px; margin-bottom:20px; }
.app-notebook>label { display:block; font-size:12px; font-weight:700; margin-bottom:12px; }
textarea { width:100%; resize:vertical; min-height:290px; background:var(--app-surface); color:var(--app-ink); border:1px solid var(--app-line); border-radius:8px; padding:18px; line-height:1.9; font-size:15px; }
[data-save-status],[data-backup-status],[data-reminder-status],[data-cloud-status],[data-pwa-status],[data-pwa-offline] { font-size:12px; }
.app-settings-card { padding:28px; background:var(--app-surface); border:1px solid var(--app-line); border-radius:16px; margin-bottom:18px; }
.app-settings-card h2 { font-size:28px; }
.app-settings-card>p:not(.eyebrow) { color:var(--app-muted); font-size:14px; }
.app-select-row { display:flex; align-items:center; justify-content:space-between; max-width:420px; gap:16px; font-size:14px; }
select,input[type=time] { background:var(--app-bg); color:var(--app-ink); border:1px solid var(--app-line); padding:10px 12px; border-radius:8px; min-height:44px; max-width:100%; }
.app-file-label { cursor:pointer; position:relative; }
.app-file-label input { position:absolute; width:1px; height:1px; opacity:0; }
.app-file-label:focus-within { outline:3px solid var(--app-focus); outline-offset:3px; }
.tracker-reminder-grid { display:flex; flex-wrap:wrap; gap:16px; }
.tracker-reminder-grid label { display:flex; flex-direction:column; gap:6px; font-size:12px; min-width:160px; }
.app-reset-card { background:transparent; }
.app-reset-card .btn { color:#94453c; }
.app-footer { padding:20px 0; display:flex; flex-wrap:wrap; gap:24px; font-size:12px; color:var(--app-muted); }
.app-footer p { flex-basis:100%; font-size:10px; }
.app-dialog { width:min(560px,calc(100% - 32px)); max-height:calc(100dvh - 48px); overflow:auto; padding:36px; border:1px solid var(--app-line); background:var(--app-surface); color:var(--app-ink); border-radius:20px; box-shadow:var(--app-shadow); }
.app-dialog::backdrop { background:#08251ecc; backdrop-filter:blur(4px); }
.app-dialog h2 { font-size:34px; margin-right:16px; }
.app-dialog p,.app-dialog li { font-size:14px; }
.app-dialog-close { float:right; width:36px; height:36px; font-size:24px; color:var(--app-ink); background:var(--app-soft); border:0; border-radius:50%; }
.app-help-steps { padding-left:22px; }
.app-help-steps li { padding-left:5px; }
.app-help-steps p { color:var(--app-muted); margin:5px 0 18px; }
[data-app-account-reader] iframe { width:100%; min-height:580px; border:1px solid var(--app-line); border-radius:10px; }
.app-noscript { margin:20px; padding:20px; }
.companion-app-body .acc-analytics-consent { max-width:500px; bottom:100px; padding:18px 20px; font-size:12px; }
.companion-app-body .acc-analytics-consent h2 { font-size:17px; }
.companion-app-body .acc-analytics-actions { display:flex; gap:8px; }
.companion-app-body .acc-analytics-actions button { width:auto; flex:1; font-size:12px; padding:10px; }
.companion-app-body .acc-analytics-settings--fixed { bottom:100px; font-size:10px; }
[data-companion-print] { display:none; }
[data-theme=dark] { color-scheme:dark; --app-bg:#132c26; --app-surface:#1c382e; --app-ink:#edf2e6; --app-muted:#b0c1b2; --app-line:#365447; --app-green:#408467; --app-soft:#294d3c; --app-focus:#c5dfa4; }
[data-theme=dark] .app-focus-card { background:#244e3d; }
[data-theme=dark] .app-reset-card .btn { color:#edb9ac; }
@media(max-width:700px) {
  .companion-app { padding:0 20px 114px; }
  .app-topbar { height:82px; }
  .app-brand b { font-size:16px; }
  .app-brand small { display:none; }
  .app-brand img { width:38px; height:38px; }
  .app-top-actions { gap:10px; }
  .app-save-chip { max-width:100px; text-align:right; font-size:10px; line-height:1.3; }
  .app-screen { padding-top:30px; }
  .app-today-grid { grid-template-columns:1fr; gap:16px; }
  .app-focus-card { padding:26px; border-radius:18px; }
  .app-focus-label { margin-bottom:26px; }
  .app-progress-card { display:grid; grid-template-columns:90px 1fr; column-gap:20px; align-items:center; justify-content:start; padding:20px; }
  .app-progress-card>.eyebrow { grid-column:2; margin-bottom:0; }
  .app-progress-ring { width:84px; height:84px; grid-column:1; grid-row:1/4; margin:0; }
  .app-progress-ring::before { inset:5px; }
  .app-progress-ring span { font-size:26px; }
  .app-progress-card>p:not(.eyebrow) { margin:3px 0; grid-column:2; }
  .app-progress-card .app-text-link { grid-column:2; font-size:12px; padding:3px 0; }
  .app-quick-links { grid-template-columns:1fr; gap:0; margin-top:10px; }
  .app-quick-links a { padding:18px 2px; }
  .app-welcome-note { flex-direction:column; align-items:start; gap:6px; }
  .app-path-row { grid-template-columns:1fr; gap:12px; }
  .tracker-focus-options { grid-template-columns:1fr; }
  .app-section-picker { padding:0 14px; }
  .app-section-picker summary { align-items:start; font-size:12px; }
  .app-change-label { max-width:70px; text-align:right; font-size:10px; }
  .tracker-stage-strip { gap:6px; }
  .tracker-stage-strip button { grid-template-columns:1fr; justify-items:start; padding:12px 10px; gap:6px; }
  .tracker-stage-strip button>span { grid-row:auto; }
  .tracker-stage-strip b { font-size:11px; }
  .tracker-stage-strip small { font-size:9px; }
  .tracker-action-card { padding:18px; }
  .tracker-action-card h3 { margin-right:0; }
  .app-task-title { font-size:23px; }
  .app-settings-card,.app-notebook { padding:22px; }
  .app-nav { width:calc(100% - 20px); bottom:max(10px,env(safe-area-inset-bottom)); padding:6px 3px; border-radius:15px; }
  .app-nav a { font-size:9px; gap:4px; }
  .app-nav svg { width:18px; height:18px; }
  .app-dialog { padding:26px; }
  .app-dialog h2 { font-size:29px; }
}
@media(prefers-reduced-motion:no-preference) { .btn,.app-nav a,.tracker-task-toggle { transition:background .15s,border-color .15s; } }
/* v418: a focused app workspace, not a miniature website. */
@media screen {
  :root { --app-bg:#f4f5ef; --app-surface:#fffffc; --app-ink:#153e33; --app-muted:#5b7066; --app-line:#d9e2d8; --app-green:#225d46; --app-soft:#e8efdf; --app-shadow:0 8px 30px #1f44340b; font-family:'Segoe UI',Arial,Helvetica,sans-serif; }
  body { background:radial-gradient(ellipse at 95% 0%,#e7efdf 0,transparent 48%),var(--app-bg); }
  .app-screen { padding-top:32px; }
  .app-topbar { height:84px; }
  .app-brand b { font-weight:650; }
  .app-save-chip { border:1px solid var(--app-line); border-radius:30px; padding:7px 12px; background:var(--app-surface); font-size:10px; }
  .app-icon-button { width:40px; height:40px; box-shadow:0 2px 6px #1d423606; }
  .eyebrow { font-weight:700; letter-spacing:.16em; }
  .app-screen-heading h1 { letter-spacing:-.045em; }
  .app-screen-heading h1 em { color:#577c52; font-weight:400; }
  .app-screen-heading.compact { max-width:700px; margin-bottom:26px; }
  .app-screen-heading.compact h1 { font-size:clamp(32px,3.3vw,45px); margin-bottom:12px; }
  .app-screen-heading.compact>p:last-child { max-width:620px; font-size:14px; }
  .app-intro { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(200px,.8fr); gap:26px; align-items:center; margin:0 0 28px; }
  .app-intro .app-screen-heading { margin-bottom:0; }
  .app-intro h1 { font-size:clamp(36px,4.3vw,56px); }
  .app-intro .eyebrow { display:flex; align-items:center; gap:10px; }
  .app-eyebrow-line { width:25px; height:1px; background:#698d54; }
  .app-landscape { position:relative; height:224px; overflow:hidden; border-radius:90px 20px 20px 20px; isolation:isolate; box-shadow:0 14px 30px #203c2d14; }
  .app-landscape img { width:100%; height:100%; object-fit:cover; object-position:58% 50%; display:block; }
  .app-landscape::after { content:''; position:absolute; inset:0; background:linear-gradient(transparent 48%,#082b21b3); z-index:1; }
  .app-landscape-caption { position:absolute; bottom:19px; left:23px; color:#fff; z-index:2; font:italic 25px/1.1 Georgia,serif; }
  .app-today-grid { gap:20px; grid-template-columns:minmax(0,1.8fr) minmax(250px,1fr); }
  .app-focus-card { background:radial-gradient(ellipse at 96% 0%,#367459 0,transparent 68%),linear-gradient(125deg,#164536,#113c31); padding:28px 32px; border-radius:22px; border:1px solid #36634d; box-shadow:0 12px 24px #153e3314,inset 0 1px #ffffff12; }
  .app-focus-card::after { width:260px; height:260px; top:-80px; right:-155px; border-color:#bfdf9b1a; box-shadow:0 0 0 24px #bad79105,0 0 0 48px #bad79105,0 0 0 72px #bad79105; }
  .app-focus-label { margin-bottom:26px; font-size:9px; letter-spacing:.14em; }
  .app-focus-card h2 { font-size:clamp(29px,3vw,37px); max-width:400px; margin-bottom:13px; }
  .app-focus-card>p:not(.eyebrow) { color:#d5e3d5; font-size:14px; }
  .app-focus-card .btn { min-height:47px; padding:12px 19px; border:1px solid #d9ecb5; background:linear-gradient(#d8eabd,#c7dfa0); box-shadow:0 3px 8px #041f2022; }
  .app-focus-card .btn span[aria-hidden] { font-size:20px; font-weight:400; }
  .app-step-track { display:grid; grid-template-columns:repeat(5,1fr); gap:6px; margin-top:27px; max-width:310px; }
  .app-step-track span { height:3px; background:#e6f0d333; border-radius:3px; }
  .app-step-track .is-complete { background:#d0e5ab; }
  .app-focus-foot { margin-top:8px; font-size:10px; }
  .app-progress-card { box-shadow:var(--app-shadow); border-radius:22px; }
  .app-progress-ring { width:146px; height:146px; box-shadow:0 0 0 10px var(--app-surface),0 0 0 11px var(--app-line); margin:12px 0 23px; }
  .app-progress-ring::before { inset:7px; }
  .app-progress-ring span { font-size:40px; }
  .app-progress-card>.eyebrow { margin-bottom:10px; }
  .app-progress-card .app-text-link { color:var(--app-green); }
  .app-quick-links { gap:20px; margin-top:20px; }
  .app-quick-links a { border:1px solid var(--app-line); background:var(--app-surface); border-radius:16px; padding:18px; gap:13px; box-shadow:var(--app-shadow); }
  .app-quick-icon { display:grid; place-items:center; flex-shrink:0; width:40px; height:40px; background:var(--app-soft); border-radius:12px; }
  .app-quick-icon svg { width:20px; height:20px; fill:none; stroke:var(--app-green); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
  .app-quick-links b { font-size:13px; font-weight:650; }
  .app-quick-links small { font-size:11px; line-height:1.6; margin-top:3px; }
  .app-quick-links a>span:last-child { font-size:18px; color:var(--app-green); }
  .app-status-line { margin-top:20px; font-size:10px; }
  .app-welcome-note { background:transparent; border-top:1px solid var(--app-line); border-radius:0; padding:17px 0; font-size:11px; }
  .app-nav { background:#fffff4ed; backdrop-filter:blur(18px); padding:7px; box-shadow:0 10px 35px #143e3322; border-color:#d5dfd0; }
  .app-nav a { transition:box-shadow .18s; }
  .app-nav a[aria-current=page] { color:#f4f8eb; background:linear-gradient(135deg,#2c664a,#164736); box-shadow:0 3px 8px #173f3520; }
  .app-nav-intro,.app-nav .app-nav-site { display:none; }
  .btn { border-radius:11px; font-size:12px; font-weight:650; }
  .btn-primary:not(.app-focus-card .btn) { box-shadow:0 3px 8px #1c433814; }
  .app-section-picker { border-radius:15px; box-shadow:var(--app-shadow); margin-bottom:22px; }
  .app-section-picker summary { padding:16px 0; }
  .tracker-stage-strip .is-current button { background:var(--app-green); color:#f4f8eb; border-color:var(--app-green); box-shadow:0 5px 12px #1747321a; }
  .tracker-stage-strip .is-current small { color:#e1edce; }
  .tracker-stage-strip .is-current button>span { background:#ffffff1c; border-color:#ffffff33; }
  .app-task-title { font-size:25px; margin-bottom:8px; }
  .tracker-task-panel>.app-muted { font-size:13px; }
  .tracker-week-grid { counter-reset:app-task; gap:12px; margin-top:18px; }
  .tracker-action-card { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 18px; padding:22px 24px; border-radius:16px; box-shadow:var(--app-shadow); counter-increment:app-task; }
  .tracker-action-head { display:contents; }
  .tracker-task-kind { grid-column:1; grid-row:1; font-size:9px; line-height:1.5; }
  .tracker-task-kind::before { content:counter(app-task,decimal-leading-zero) ' / '; color:var(--app-green); font-weight:800; }
  .tracker-task-toggle { grid-column:2; grid-row:1/3; align-self:start; min-width:100px; border-radius:24px; background:var(--app-soft); border-color:transparent; }
  .tracker-action-card h3 { grid-column:1; grid-row:2; margin:0; font-size:17px; font-weight:650; letter-spacing:-.025em; }
  .tracker-action-card p { grid-column:1/-1; margin:0; font-size:13px; max-width:740px; }
  .tracker-guide-link { grid-column:1/-1; width:fit-content; padding:2px 0; font-size:11px; }
  .tracker-action-card.is-complete { border-left:4px solid #4e7f43; padding-left:21px; }
  .is-complete .tracker-task-toggle { color:#fff; background:var(--app-green); }
  .app-overview { padding:26px 28px; display:grid; grid-template-columns:1fr 1.6fr; gap:25px; align-items:center; background:linear-gradient(115deg,#173f35,#285d44); color:#f3f8e9; border-radius:20px; margin-bottom:30px; }
  .app-overview .eyebrow { color:#bcd3b6; font-size:8px; }
  .app-overview p { font:28px/1.18 Georgia,serif; margin:9px 0 0; }
  .app-overview p em { color:#c6dda5; }
  .app-overview dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:0; }
  .app-overview dl>div { display:flex; flex-direction:column-reverse; padding-left:18px; border-left:1px solid #bfd6b936; }
  .app-overview dt { font-size:10px; line-height:1.5; color:#c6d9c1; }
  .app-overview dd { font:38px/1.4 Georgia,serif; margin:0; white-space:nowrap; }
  .app-overview dd small { font:11px 'Segoe UI',sans-serif; margin-left:6px; color:#b4cbaa; }
  .app-path-legend { font-size:10px; padding:0 4px; }
  .app-path-row { position:relative; grid-template-columns:44px minmax(0,1fr) 285px; gap:18px; padding:21px; margin-bottom:13px; border:1px solid var(--app-line); border-radius:16px; background:var(--app-surface); box-shadow:var(--app-shadow); }
  .app-path-row[data-active=true] { border-color:#829f74; }
  .app-path-number { width:40px; height:40px; display:grid; place-items:center; border-radius:13px; color:var(--app-green); background:var(--app-soft); font:20px Georgia,serif; }
  .app-path-row h2 { font:650 15px/1.35 'Segoe UI',Arial,sans-serif; letter-spacing:-.02em; margin-bottom:6px; }
  .app-path-row p { font-size:10px; }
  .app-path-meter { appearance:none; width:100%; height:3px; display:block; margin-top:11px; border:none; background:var(--app-soft); border-radius:5px; accent-color:var(--app-green); }
  .app-path-meter::-webkit-progress-bar { background:var(--app-soft); border-radius:5px; }
  .app-path-meter::-webkit-progress-value { background:var(--app-green); border-radius:5px; }
  .app-path-meter::-moz-progress-bar { background:var(--app-green); border-radius:5px; }
  .app-path-stages button { position:relative; overflow:hidden; padding:12px 5px 16px; background:var(--app-bg); border:1px solid transparent; }
  .app-path-stages button::after { content:''; position:absolute; bottom:0; height:3px; width:var(--stage-fill,0%); left:0; background:var(--app-green); }
  .app-path-stages button[aria-current=true] { border-color:var(--app-green); }
  .app-path-stages button[aria-current=true] b { color:var(--app-green); }
  .app-guide-reader { border-radius:18px; box-shadow:var(--app-shadow); }
  .app-guide-sections button { border-radius:20px; font-size:11px; }
  .app-guide-sections button[aria-pressed=true] { color:#fff; background:var(--app-green); }
  .app-notebook { border-radius:20px; padding:28px; box-shadow:var(--app-shadow); border-top:4px solid #739666; }
  .app-notebook>label { font-size:10px; text-transform:uppercase; letter-spacing:.15em; }
  .app-notebook textarea { border:0; border-radius:0; background:repeating-linear-gradient(transparent,transparent calc(1.9em - 1px),var(--app-line) calc(1.9em - 1px),var(--app-line) 1.9em); padding:0 0 10px; line-height:1.9em; min-height:360px; }
  .app-settings-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:start; }
  .app-settings-grid .app-settings-card { margin:0; height:100%; }
  .app-settings-grid .app-settings-card:has([data-app-account-reader]:not([hidden])) { grid-column:1/-1; }
  .app-settings-card { border-radius:18px; padding:25px; box-shadow:var(--app-shadow); }
  .app-settings-card h2 { font-size:25px; margin-bottom:13px; }
  .app-settings-card>p:not(.eyebrow) { font-size:13px; }
  .app-settings-card .eyebrow { font-size:9px; margin-bottom:10px; }
  .app-settings-card.tracker-install-card { padding:30px; background:linear-gradient(120deg,#174536,#32684b); border-color:#32684b; color:#f7fbed; display:flex; align-items:center; gap:24px; justify-content:space-between; }
  .app-settings-card.tracker-install-card>div { max-width:600px; }
  .app-settings-card.tracker-install-card p { color:#d1e3c5; font-size:13px; }
  .app-settings-card.tracker-install-card .eyebrow { color:#bfd8a7; }
  .app-settings-card.tracker-install-card .btn { flex-shrink:0; background:#d7e8b6; color:#193f31; }
  .app-reset-card { box-shadow:none; grid-column:1/-1; background:transparent; border-color:transparent; padding:18px 0; }
  .app-reset-card h2 { font:650 15px/1.4 'Segoe UI',sans-serif; }
  .app-footer { margin-top:20px; border-top:1px solid var(--app-line); }
  .app-dialog { border-radius:22px; box-shadow:0 24px 80px #102d2b33; }
  [data-theme=dark] { --app-bg:#112b24; --app-surface:#1b382e; --app-ink:#edf4e5; --app-muted:#b4c5b8; --app-line:#365446; --app-green:#86b694; --app-soft:#294b3b; --app-focus:#d3e8ab; }
  [data-theme=dark] body { background:radial-gradient(ellipse at 95% 0%,#254331,transparent 48%),var(--app-bg); }
  [data-theme=dark] .app-screen-heading h1 em { color:#b7d498; }
  [data-theme=dark] .app-focus-card { background:radial-gradient(ellipse at 96% 0%,#3c6e4d,transparent 68%),#173f35; }
  [data-theme=dark] .app-nav { background:#1b382ef2; border-color:var(--app-line); }
  [data-theme=dark] .btn-primary:not(.app-focus-card .btn),[data-theme=dark] .is-complete .tracker-task-toggle { color:#102e22; }
  [data-theme=dark] .tracker-stage-strip .is-current button { background:#476f50; color:#fff; }
  [data-theme=dark] .app-guide-sections button[aria-pressed=true] { color:#102e22; }
}
@media screen and (min-width:1100px) {
  .companion-app { max-width:1440px; padding:0 42px 60px 272px; }
  .app-nav { position:fixed; top:24px; bottom:24px; left:max(24px,calc((100vw - 1440px)/2 + 24px)); width:204px; transform:none; display:flex; flex-direction:column; gap:8px; padding:28px 14px 20px; border-radius:24px; background:linear-gradient(165deg,#1d503c,#123b30); border:1px solid #40654a; color:#ecf4df; box-shadow:0 15px 50px #14392b16; }
  .app-nav-intro { display:block; padding:0 10px 22px; border-bottom:1px solid #d4e4be26; margin-bottom:14px; }
  .app-nav-intro>span { font:20px Georgia,serif; color:#d3e6b4; display:inline-block; border:1px solid #a8c68b60; padding:7px 10px; border-radius:11px; margin-bottom:22px; }
  .app-nav-intro strong { display:block; font:22px/1.22 Georgia,serif; letter-spacing:-.02em; }
  .app-nav-intro p { color:#b3c9a8; font-size:8px; letter-spacing:.11em; margin:15px 0 0; }
  .app-nav a { flex-direction:row; justify-content:start; gap:15px; min-height:49px; font-size:12px; color:#c8dbbf; padding:13px 17px; border-radius:13px; }
  .app-nav a[aria-current=page] { background:#e3eece; color:#173f31; box-shadow:0 4px 12px #08271b33; }
  .app-nav svg { width:19px; height:19px; }
  .app-nav .app-nav-site { display:flex; margin-top:auto; padding:18px 10px 0; font-size:10px; border-radius:0; border-top:1px solid #d4e4be26; min-height:38px; }
  .app-nav .app-nav-site span { margin-left:auto; }
  .companion-app-body .acc-analytics-consent { bottom:24px; }
  .companion-app-body .acc-analytics-settings--fixed { bottom:18px; right:20px; }
  [data-theme=dark] .app-nav { background:linear-gradient(165deg,#1e4938,#0d3026); }
}
@media screen and (max-width:1099px) and (min-width:701px) {
  .companion-app { padding:0 30px 115px; }
  .app-landscape { height:210px; }
  .app-intro h1 { font-size:42px; }
  .app-path-row { grid-template-columns:40px minmax(0,1fr) 250px; gap:14px; }
}
/* Keep the embedded Guide's own navigation clear of the mobile app menu. */
@media screen and (max-width:1099px) {
  .app-guide-reader {
    height:min(70dvh,calc(100dvh - 144px));
    min-height:min(420px,calc(100dvh - 144px));
  }
}
@media screen and (max-width:700px) {
  .companion-app { padding:0 20px 118px; }
  .app-topbar { height:77px; gap:10px; }
  .app-brand { gap:8px; }
  .app-brand b { font-size:15px; }
  .app-save-chip { padding:5px 8px; font-size:9px; max-width:96px; white-space:normal; }
  .app-top-actions { gap:7px; }
  .app-icon-button { height:34px; width:34px; flex-shrink:0; }
  .app-screen { padding-top:25px; }
  .app-intro { display:block; margin-bottom:24px; }
  .app-intro h1 { font-size:37px; line-height:1.06; margin-bottom:16px; }
  .app-intro .eyebrow { font-size:8px; }
  .app-intro .app-screen-heading>p:last-child { font-size:13px; margin-bottom:0; }
  .app-landscape { height:95px; margin-top:20px; border-radius:34px 14px 14px 14px; }
  .app-landscape img { object-position:50% 61%; }
  .app-landscape-caption { left:20px; bottom:16px; font-size:23px; }
  .app-today-grid { grid-template-columns:1fr; gap:16px; }
  .app-focus-card { padding:25px; border-radius:20px; }
  .app-focus-label { font-size:8px; margin-bottom:22px; }
  .app-focus-card h2 { font-size:30px; }
  .app-focus-card>p:not(.eyebrow) { font-size:13px; }
  .app-progress-card { grid-template-columns:84px 1fr; gap:4px 24px; padding:23px; }
  .app-progress-card .app-progress-ring { width:80px; height:80px; margin:0; box-shadow:0 0 0 6px var(--app-surface),0 0 0 7px var(--app-line); }
  .app-progress-ring span { font-size:28px; }
  .app-progress-ring::before { inset:5px; }
  .app-progress-card>.eyebrow { font-size:9px; margin:0; }
  .app-progress-card>p:not(.eyebrow) { font-size:11px; }
  .app-quick-links { gap:12px; margin-top:16px; }
  .app-quick-links a { padding:16px; }
  .app-screen-heading.compact h1 { font-size:33px; }
  .app-screen-heading.compact>p:last-child { font-size:13px; }
  .app-section-picker summary { font-size:11px; }
  .tracker-stage-strip button { padding:12px 10px; }
  .tracker-action-card { gap:7px 12px; padding:18px; }
  .tracker-action-card h3 { font-size:16px; }
  .tracker-task-toggle { min-width:85px; padding:8px 10px; font-size:10px; }
  .tracker-action-card p { font-size:13px; }
  .tracker-action-card.is-complete { padding-left:15px; }
  .app-overview { display:block; padding:24px; }
  .app-overview p { font-size:25px; }
  .app-overview dl { margin-top:24px; gap:13px; }
  .app-overview dl>div { padding-left:13px; }
  .app-overview dl>div:first-child { padding-left:0; border-left:0; }
  .app-overview dd { font-size:33px; }
  .app-overview dd small { font-size:9px; margin-left:4px; }
  .app-overview dt { font-size:9px; }
  .app-path-legend { gap:12px; font-size:8px; }
  .app-path-row { grid-template-columns:36px minmax(0,1fr); gap:15px 13px; padding:20px; }
  .app-path-number { width:36px; height:36px; font-size:18px; }
  .app-path-row h2 { font-size:14px; }
  .app-path-stages { grid-column:1/-1; }
  .app-path-stages button { padding:11px 5px 13px; }
  .app-notebook { padding:21px; }
  .app-notebook textarea { min-height:310px; font-size:15px; }
  .app-settings-grid { grid-template-columns:1fr; }
  .app-settings-card { padding:23px; }
  .app-settings-card.tracker-install-card { display:block; padding:25px; }
  .app-settings-card.tracker-install-card .btn { margin-top:5px; }
  .app-settings-card h2 { font-size:25px; }
  .app-settings-card>p:not(.eyebrow) { font-size:12px; }
  .app-nav { padding:6px; width:calc(100% - 20px); border-radius:19px; }
  .app-nav a { border-radius:13px; min-height:55px; font-size:9px; }
  .app-nav svg { width:18px; height:18px; }
}
@media screen and (prefers-reduced-motion:no-preference) {
  .app-quick-links a,.tracker-action-card,.app-path-stages button { transition:border-color .18s,box-shadow .18s,transform .18s; }
  .app-quick-links a:hover,.app-path-stages button:hover { border-color:#82a16e; box-shadow:0 6px 18px #244b3410; transform:translateY(-2px); }
  .tracker-action-card:hover { border-color:#a1b694; }
  .app-screen:not([hidden]) { animation:app-reveal .22s ease-out; }
  @keyframes app-reveal { from { transform:translateY(4px); } to { transform:none; } }
}
/* v420: readable type, tactile controls and clearly separated app surfaces.
   Existing Light / Dark / Match device choices remain intact. */
@media screen {
  :root { --app-muted:#52695e; --app-focus:#256d53; --app-shadow:0 2px 3px #16392c04,0 12px 32px #16392c09; font-family:'Segoe UI Variable','Segoe UI',Arial,sans-serif; }
  body { line-height:1.65; }
  html { scroll-padding-top:24px; scroll-padding-bottom:110px; }
  h1,h2,h3 { text-wrap:balance; overflow-wrap:anywhere; }
  button,a,summary { overflow-wrap:anywhere; }
  .app-screen-heading.compact h1,.app-focus-card h2,.app-settings-card h2,.app-task-title,.app-dialog h2 { font-family:inherit; font-weight:650; letter-spacing:-.035em; line-height:1.18; }
  .app-screen-heading.compact h1 { font-size:clamp(32px,3.1vw,44px); }
  .app-screen-heading>p:last-child,.app-screen-heading.compact>p:last-child { font-size:16px; line-height:1.7; }
  .eyebrow,.app-intro .eyebrow,.app-focus-label { font-size:11px; letter-spacing:.12em; }
  .app-topbar { min-height:88px; height:auto; padding-block:16px; }
  .app-brand b { font-size:19px; font-weight:700; }
  .app-brand small { font-size:12px; }
  .app-save-chip { font-size:12px; line-height:1.4; box-shadow:inset 0 1px 0 #ffffff50; }
  .app-icon-button,.app-dialog-close { width:max(44px,1.5em); height:max(44px,1.5em); line-height:1; flex-shrink:0; box-shadow:inset 0 1px 0 #ffffff40,0 2px 3px #102e2210; }
  .app-icon-button { font-size:17px; }
  .app-focus-card { background:radial-gradient(ellipse at 95% 0%,#316851,transparent 65%),linear-gradient(135deg,#194b3b,#103b30); box-shadow:inset 0 1px 0 #d5f9d72b,0 3px 4px #0d302418,0 18px 36px #0d302418; border-color:#4d826a; }
  .app-focus-card h2 { font-size:clamp(28px,2.8vw,37px); max-width:620px; }
  .app-focus-card>p:not(.eyebrow) { font-size:16px; color:#e0eee3; }
  .app-focus-card .eyebrow { font-size:12px; color:#bcdcbf; text-transform:none; letter-spacing:.02em; }
  .app-focus-label { color:#dcefd0; margin-bottom:20px; }
  .app-focus-foot { font-size:12px; color:#d0e4d4; }
  .app-step-track { gap:7px; margin-top:24px; }
  .app-step-track span { height:5px; background:#91b59e50; box-shadow:inset 0 1px 2px #092d2430; border-radius:4px; }
  .app-step-track span.is-complete { background:#cce7a4; box-shadow:0 0 8px #c9f1a321; }
  .btn { min-height:48px; font-size:14px; border-radius:12px; font-weight:650; padding:12px 18px; line-height:1.5; }
  .btn-primary { background:linear-gradient(160deg,#2d7054,#1c513d); color:#fff; border:1px solid #39765c; box-shadow:inset 0 1px 0 #ffffff26,0 3px 0 #143d2d,0 6px 12px #1b483b14; }
  .app-focus-card .btn-primary,.app-settings-card.tracker-install-card .btn { background:linear-gradient(155deg,#e2f1bf,#c7e49f); color:#163c2c; border:1px solid #e5f5c9; box-shadow:inset 0 1px 0 #ffffff90,0 3px 0 #80a66a,0 7px 15px #072e2630; }
  .btn-secondary,.tracker-task-toggle { box-shadow:inset 0 1px 0 #ffffff50,0 2px 2px #173e2f0a; }
  .btn:not(:disabled):active,.tracker-task-toggle:active,.app-icon-button:active,.app-dialog-close:active { transform:translateY(2px); box-shadow:inset 0 2px 4px #102f2420; }
  .app-text-link,.tracker-guide-link { font-size:13px; min-height:44px; display:inline-flex; align-items:center; line-height:1.5; text-underline-offset:4px; }
  .app-progress-ring { box-shadow:0 0 0 7px var(--app-surface),0 0 0 8px var(--app-line),0 10px 24px #173e2f12; }
  .app-progress-ring::before { box-shadow:inset 0 2px 8px #173e2f0a; }
  .app-progress-ring small { font-size:12px; }
  .app-progress-card>.eyebrow { font-size:11px; }
  .app-progress-card>p:not(.eyebrow) { font-size:14px; }
  .app-quick-links a { border-radius:16px; box-shadow:inset 0 1px 0 #ffffff30,var(--app-shadow); }
  .app-quick-links b { font-size:15px; }
  .app-quick-links small { font-size:13px; line-height:1.6; }
  .app-quick-icon { box-shadow:inset 0 1px 0 #ffffff50,0 2px 3px #173e2f08; }
  .app-status-line,.app-status-line span,.app-welcome-note p { font-size:12px; }
  .app-welcome-note { align-items:center; }
  .app-section-picker { box-shadow:var(--app-shadow); }
  .app-section-picker summary { font-size:14px; gap:16px; }
  .app-change-label { font-size:12px; min-width:65px; }
  .tracker-focus-options b { font-size:15px; }
  .tracker-focus-options small,.tracker-focus-options i { font-size:13px; }
  .tracker-focus-options strong { font-size:11px; }
  .tracker-stage-strip button { box-shadow:inset 0 1px 0 #ffffff40,0 2px 3px #173e2f08; }
  .tracker-stage-strip b { font-size:14px; line-height:1.4; }
  .tracker-stage-strip small { font-size:12px; }
  .tracker-stage-strip .is-current button { background:linear-gradient(140deg,#2c6950,#194d3b); box-shadow:inset 0 1px 0 #ffffff2b,0 3px 0 #10372a,0 7px 16px #173e2f16; border-color:#478163; }
  .tracker-stage-strip .is-current button small { color:#daeadc; }
  .tracker-task-panel { scroll-margin-top:24px; }
  .app-task-title { font-size:28px; scroll-margin-top:24px; }
  .app-muted,.app-notice { font-size:14px; }
  .tracker-action-card { border-radius:17px; padding:23px; gap:9px 18px; box-shadow:var(--app-shadow); }
  .tracker-task-kind { font-size:11px; letter-spacing:.08em; }
  .tracker-task-toggle { font-size:12px; min-width:104px; min-height:48px; border-radius:12px; }
  .tracker-action-card h3 { font-size:20px; font-weight:650; line-height:1.4; letter-spacing:-.02em; }
  .tracker-action-card p { font-size:15px; line-height:1.7; }
  .tracker-action-card.is-complete { padding-left:20px; }
  .tracker-action-card.is-complete h3 { color:var(--app-green); }
  .app-overview { box-shadow:inset 0 1px 0 #ffffff24,0 12px 32px #133e3014; }
  .app-overview .eyebrow,.app-overview dt,.app-overview dd small { font-size:12px; }
  .app-path-legend { font-size:14px; }
  .app-path-row { grid-template-columns:44px minmax(0,1fr) minmax(340px,1.25fr); }
  .app-path-row h2 { font-size:17px; }
  .app-path-row p { font-size:13px; }
  .app-path-meter { height:5px; }
  .app-path-stages button { text-align:left; display:flex; flex-direction:column; align-items:start; justify-content:space-between; gap:5px; padding:12px 10px 16px; border-color:var(--app-line); }
  .app-path-stages button b { font-size:13px; line-height:1.35; font-weight:650; }
  .app-path-stages button small { font-size:12px; }
  .app-stage-ordinal { font-size:11px; color:var(--app-muted); }
  .app-path-stages button[aria-current=true] { background:var(--app-soft); box-shadow:inset 0 0 0 1px var(--app-green); }
  .app-guide-sections button { font-size:13px; }
  .app-settings-card h2 { font-size:26px; }
  .app-settings-card>p:not(.eyebrow),.app-settings-card.tracker-install-card p { font-size:15px; }
  .app-settings-card .eyebrow { font-size:11px; }
  .app-notebook>label { font-size:12px; }
  .app-notebook textarea { font-size:16px; line-height:1.9em; }
  .app-notebook textarea::placeholder { color:var(--app-muted); opacity:1; }
  [data-save-status],[data-backup-status],[data-reminder-status],[data-cloud-status],[data-pwa-status],[data-pwa-offline] { font-size:13px; }
  .tracker-reminder-grid label { font-size:14px; }
  .tracker-backup-review { margin-block:18px; padding:20px; background:var(--app-soft); border:1px solid var(--app-green); border-radius:14px; }
  .tracker-backup-review .btn { margin:5px 8px 5px 0; }
  .app-save-attention { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:20px; padding:16px 20px; background:var(--app-soft); border:1px solid var(--app-green); border-radius:14px; }
  .app-save-attention p { margin:0; font-size:14px; }
  .app-save-attention .btn { flex-shrink:0; }
  .app-dialog p,.app-dialog li { font-size:16px; line-height:1.65; }
  .app-dialog h2 { font-size:30px; }
  .app-dialog-close { margin-left:12px; }
  .app-nav a { font-size:12px; }
  [data-theme=dark] { --app-bg:#102820; --app-surface:#1a382f; --app-ink:#f0f6ed; --app-muted:#bfd0c5; --app-line:#446457; --app-green:#acd9b6; --app-soft:#294f3e; --app-focus:#dcf2b5; --app-shadow:0 3px 5px #061b1816,0 14px 32px #061b1829; }
  [data-theme=dark] .app-focus-card { background:radial-gradient(ellipse at 96% 0%,#35674c,transparent 70%),linear-gradient(135deg,#1c4a3a,#123b30); }
  [data-theme=dark] .btn-primary:not(.app-focus-card .btn) { background:linear-gradient(155deg,#bce2bf,#98c9aa); color:#102e22; border-color:#c1e1c1; box-shadow:inset 0 1px 0 #ffffff50,0 3px 0 #5c8c73,0 7px 16px #081e2520; }
  [data-theme=dark] .app-settings-card.tracker-install-card .btn { background:linear-gradient(155deg,#e2f1bf,#c7e49f); border-color:#e5f5c9; }
  [data-theme=dark] .app-nav a[aria-current=page] { color:#102e22; background:linear-gradient(155deg,#d8ebbf,#b9d9a1); }
  [data-theme=dark] .tracker-stage-strip .is-current button { background:linear-gradient(140deg,#37684e,#234e3c); border-color:#9ac391; }
  [data-theme=dark] .tracker-stage-strip .is-complete button>span { color:#123527; }
  [data-theme=dark] .btn-secondary,[data-theme=dark] .tracker-task-toggle,[data-theme=dark] .app-icon-button,[data-theme=dark] .app-quick-icon { box-shadow:inset 0 1px 0 #ffffff10,0 2px 3px #051c2220; }
}
@media screen and (min-width:1100px) {
  .app-nav { overflow-y:auto; border-color:#50765d; box-shadow:inset 0 1px 0 #e5ffdb20,0 4px 6px #133c2b12,0 20px 40px #133c2b15; }
  .app-nav a { font-size:14px; flex-shrink:0; gap:10px; padding-inline:12px; }
  .app-nav svg { flex-shrink:0; }
  .app-nav a span { min-width:0; }
  .app-nav-intro p { font-size:10px; color:#c5dabb; }
  .app-nav .app-nav-site { font-size:12px; min-height:48px; }
}
@media screen and (max-width:1099px) {
  .app-nav { box-shadow:inset 0 1px 0 #ffffff30,0 5px 28px #0e342f24; }
  .app-nav a { min-height:58px; font-size:11px; }
  .app-path-row { grid-template-columns:40px minmax(0,1fr); }
  .app-path-stages { grid-column:1/-1; }
}
@media screen and (max-width:700px) {
  .companion-app { padding-inline:18px; }
  .app-topbar { gap:8px; min-height:82px; flex-wrap:wrap; }
  .app-top-actions { margin-left:auto; }
  .app-brand b { font-size:16px; }
  .app-save-chip { font-size:11px; max-width:87px; padding:5px 7px; }
  .app-screen-heading>p:last-child,.app-screen-heading.compact>p:last-child,.app-intro .app-screen-heading>p:last-child { font-size:15px; }
  .app-intro h1 { font-size:38px; line-height:1.1; }
  .app-intro .eyebrow { font-size:10px; }
  .app-landscape { height:112px; }
  .app-focus-card { padding:24px; }
  .app-focus-card h2 { font-size:29px; }
  .app-focus-card>p:not(.eyebrow) { font-size:15px; }
  .app-focus-label { font-size:10px; }
  .app-progress-card { padding:24px; gap:6px 24px; }
  .app-progress-card>p:not(.eyebrow) { font-size:13px; }
  .app-progress-card .app-text-link { padding-block:8px; min-height:44px; font-size:13px; }
  .app-quick-links a { padding:18px; }
  .app-welcome-note { align-items:start; }
  .app-section-picker summary { font-size:13px; }
  .tracker-stage-strip b { font-size:12px; }
  .tracker-stage-strip small { font-size:11px; }
  .tracker-stage-strip button { padding:13px 10px; }
  .tracker-action-card { padding:20px; gap:9px 12px; }
  .tracker-action-card h3 { font-size:18px; }
  .tracker-action-card h3 { grid-column:1/-1; grid-row:2; }
  .tracker-task-toggle { grid-row:1; }
  .tracker-action-card.is-complete { padding-left:17px; }
  .tracker-task-toggle { min-width:92px; padding-inline:10px; }
  .tracker-action-card p { font-size:15px; }
  .app-path-row { gap:14px 12px; padding:18px; }
  .app-path-stages { gap:7px; }
  .app-path-stages button { padding:11px 8px 15px; }
  .app-path-stages button b { font-size:12px; }
  .app-overview dt,.app-overview dd small { font-size:11px; }
  .app-save-attention { flex-direction:column; align-items:start; }
  .app-dialog { padding:24px; }
  .app-dialog h2 { font-size:27px; }
  .app-dialog p,.app-dialog li { font-size:15px; }
}
@media screen and (max-width:370px) {
  .app-topbar { flex-wrap:wrap; }
  .app-top-actions { margin-left:auto; }
  .app-brand img { width:32px; height:32px; }
  .app-intro h1 { font-size:33px; }
  .app-nav { width:calc(100% - 12px); padding:5px 2px; }
  .app-nav a { font-size:10px; padding-inline:2px; }
  .tracker-action-card { grid-template-columns:minmax(0,1fr); }
  .tracker-action-head { grid-column:1; }
  .tracker-task-toggle { grid-column:auto; }
  .tracker-action-card h3 { grid-column:1; }
  .app-select-row { flex-wrap:wrap; }
}
@media screen and (prefers-reduced-motion:no-preference) {
  .btn,.tracker-task-toggle,.app-icon-button { transition:background .16s,box-shadow .16s,transform .16s; }
}
@media screen and (prefers-reduced-motion:reduce) {
  .companion-app *,.app-dialog * { transition:none!important; animation:none!important; }
}
@media print { body>*:not([data-companion-print]) { display:none!important; } [data-companion-print] { display:block; font:11pt/1.5 Arial,sans-serif; color:#111; } [data-companion-print] h1 { font-size:26pt; } [data-companion-print] h2 { font-size:19pt; break-after:avoid; margin-top:25pt; } [data-companion-print] h3 { font-size:13pt; break-after:avoid; } [data-companion-print] li { margin-bottom:8pt; break-inside:avoid; } .print-notes { white-space:pre-wrap; overflow-wrap:anywhere; } body { background:white; color:black; } }
