/* Daily dashboard and calendar. Deliberately scoped to their own surfaces. */
.dy-page,.dy-calendar,#dailyEntryForm{
  --dy-paper:var(--card,#fff);
  --dy-ink:var(--text,#23332e);
  --dy-muted:var(--muted,#627068);
  --dy-line:var(--line,#dde3dd);
  --dy-accent:var(--green,#245b49);
  --dy-button:#245b49;
  --dy-button-hover:#194936;
  --dy-sage:#edf3ed;
  --dy-sage-border:#a6b9ac;
  --dy-day-border:#82948a;
  --dy-estimated-border:#77887d;
  --dy-consumed:#f2eee8;
  --dy-consumed-ink:#65594a;
  --dy-focus-ring:#8a5c15;
  min-width:0;
  color:var(--dy-ink);
}
:where(body.dark,[data-theme="dark"]) :is(.dy-page,.dy-calendar,#dailyEntryForm){
  --dy-paper:var(--card,#1c2b24);
  --dy-ink:var(--text,#eef2ec);
  --dy-muted:var(--muted,#b5c1b8);
  --dy-line:var(--line,#3a4b40);
  --dy-accent:var(--green,#a6d5ba);
  --dy-button:#346e55;
  --dy-button-hover:#3c7b60;
  --dy-sage:#293d31;
  --dy-sage-border:#6c937b;
  --dy-day-border:#7d9586;
  --dy-estimated-border:#8c9f91;
  --dy-consumed:#383229;
  --dy-consumed-ink:#e0cdb5;
  --dy-focus-ring:#e6bb8e;
}
.dy-page{display:grid;gap:22px;margin:28px 0 8px}
.dy-page *,.dy-calendar *,#dailyEntryForm *{box-sizing:border-box}
.dy-page :is(h1,h2,h3,p),.dy-calendar :is(h2,h3,p){margin:0}
.dy-page :is(h1,h2,h3),.dy-calendar :is(h2,h3){color:var(--dy-ink);letter-spacing:-.035em;text-wrap:balance}
.dy-page h2,.dy-calendar h2{font-size:clamp(22px,2.4vw,28px);line-height:1.2;font-weight:650}
.dy-page p,.dy-calendar p{font-size:14px;line-height:1.65;color:var(--dy-muted)}
.dy-page .eyebrow,.dy-calendar .eyebrow{font-size:10px;font-weight:700;line-height:1.5;letter-spacing:.09em;margin:0 0 10px;color:var(--dy-muted)}
.dy-page svg,.dy-calendar svg{display:block;width:21px;height:21px;flex:0 0 auto}
.dy-page button,.dy-calendar button{min-width:0;min-height:44px;max-width:100%;font-family:inherit;line-height:1.4;white-space:normal;transition:background-color .15s,border-color .15s;color:var(--dy-ink)}
.dy-page :is(button,a,summary):focus-visible,.dy-calendar :is(button,a):focus-visible,#dailyEntryForm :is(input,select,button,a):focus-visible{outline:3px solid var(--dy-focus-ring);outline-offset:3px}
.dy-page .primary,.dy-calendar .primary,#dailyEntryForm .primary{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:13px 18px;background:var(--dy-button);border:1px solid var(--dy-button);color:#fff;border-radius:11px;font-size:14px;box-shadow:none}
.dy-page .secondary,.dy-calendar .secondary{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:11px 16px;background:var(--dy-paper);border:1px solid var(--dy-line);color:var(--dy-accent);border-radius:10px;font-size:13px}
.dy-page .text,.dy-calendar .text{display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;padding:8px 1px;color:var(--dy-accent);font-size:12px;text-decoration:underline;text-underline-offset:4px}
.dy-page .text svg,.dy-calendar .text svg{width:17px;height:17px}
.dy-heading{display:flex;align-items:center;justify-content:space-between;gap:22px}
.dy-heading>div{min-width:0}
.dy-heading .eyebrow{text-transform:uppercase;margin-bottom:9px}
.dy-heading h1{font-size:clamp(30px,3.6vw,42px);line-height:1.12;font-weight:650;margin:0 0 11px;letter-spacing:-.045em}
.dy-heading p{font-size:14px}
.dy-goal{display:flex;align-items:center;gap:12px;flex:0 1 240px;padding:12px 15px;border:1px solid var(--dy-line);background:var(--dy-paper);border-radius:12px;text-align:left}
.dy-goal>svg:first-child{color:var(--dy-accent)}
.dy-goal>svg:last-child{width:16px;height:16px;margin-left:auto;color:var(--dy-muted)}
.dy-goal>span{display:grid;gap:2px;font-size:11px;font-weight:400;line-height:1.45;color:var(--dy-muted)}
.dy-goal strong{display:block;font-size:14px;font-weight:650;color:var(--dy-ink)}
.dy-primary-grid,.dy-secondary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:18px;min-width:0}
.dy-primary-grid>section,.dy-secondary-grid>section{min-width:0;border:1px solid var(--dy-line);border-radius:18px;padding:26px}
.dy-focus{display:flex;flex-direction:column;align-items:stretch;gap:0;background:var(--dy-sage)}
.dy-focus-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.dy-focus-top>.eyebrow{margin-bottom:0}
.dy-earned{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border:1px solid var(--dy-sage-border);border-radius:6px;color:var(--dy-accent);font-size:10px;font-weight:600;line-height:1.4}
.dy-earned svg{width:13px;height:13px}
.dy-counter{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 15px;margin:22px 0 8px}
.dy-counter>strong{display:block;max-width:100%;font-size:clamp(68px,7.5vw,96px);font-weight:650;line-height:1;letter-spacing:-.065em;font-variant-numeric:tabular-nums;color:var(--dy-accent);overflow-wrap:anywhere}
.dy-counter>span{font-size:20px;font-weight:500;line-height:1.3;letter-spacing:-.025em;color:var(--dy-ink)}
.dy-counter-denominator{font-size:.42em;letter-spacing:-.04em;font-weight:500;color:var(--dy-muted);margin-left:3px}
.dy-page .dy-clock-detail{font-size:12px;line-height:1.6;color:var(--dy-muted)}
.dy-next-cap{margin-top:23px;padding-top:18px;border-top:1px solid var(--dy-sage-border)}
.dy-next-cap-top{display:grid;gap:4px}
.dy-next-cap-top>strong{font-size:13px;font-weight:650;line-height:1.5}
.dy-next-cap-top>span{font-size:11px;line-height:1.55;color:var(--dy-muted)}
.dy-cap-track{height:6px;background:var(--dy-sage-border);border-radius:999px;overflow:hidden;margin:12px 0 8px}
.dy-cap-fill{display:block;height:100%;max-width:100%;background:var(--dy-accent);border-radius:inherit;transition:width .25s ease}
.dy-next-cap>small{display:block;font-size:10px;line-height:1.6;color:var(--dy-muted)}
.dy-page .dy-start-edit{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:44px;margin-top:10px;padding:9px 0 0;border:0;border-radius:5px;background:transparent;color:var(--dy-muted);font-size:11px;font-weight:400;text-align:left}
.dy-start-edit>span{flex:0 0 auto;color:var(--dy-accent);font-weight:600;text-decoration:underline;text-underline-offset:4px}
.dy-focus>h2{max-width:16em;margin:4px 0 14px}
.dy-focus>p:not(.dy-clock-detail){margin-bottom:20px}
.dy-focus>.primary{align-self:flex-start;margin-bottom:14px}
.dy-focus-observe .dy-counter{margin-top:auto;padding-top:6px}
.dy-focus-observe>.text{align-self:flex-start;margin-top:8px}
.dy-today{display:flex;flex-direction:column;align-items:flex-start;background:var(--dy-paper)}
.dy-today h2{max-width:16em;margin:2px 0 14px}
.dy-today>p{max-width:36em;margin-bottom:22px}
.dy-today .dy-main-action{display:grid;grid-template-columns:21px minmax(0,1fr) 18px;gap:11px;width:100%;min-height:54px;margin-top:auto;text-align:left;font-size:15px}
.dy-main-action>svg:last-child{width:18px;height:18px;justify-self:end}
.dy-completion{display:block;margin-top:11px;font-size:11px;line-height:1.5;color:var(--dy-muted)}
.dy-today.is-complete .dy-completion{color:var(--dy-accent)}
.dy-today>.text{margin-top:10px;font-size:12px}
/* Essential home: elapsed time, one sourced benefit, three direct destinations. */
.dy-benefit{display:flex;flex-direction:column;align-items:flex-start;background:var(--dy-paper)}
.dy-benefit .eyebrow{margin-bottom:11px}
.dy-benefit h2{font-size:clamp(25px,2.7vw,31px);line-height:1.17;max-width:17em;margin:0 0 13px}
.dy-benefit-scope{display:block;font-size:11px;font-weight:600;line-height:1.5;color:var(--dy-accent)}
.dy-benefit-list{display:grid;gap:11px;list-style:none;margin:19px 0 17px;padding:0;width:100%}
.dy-benefit-list>li{display:grid;grid-template-columns:21px minmax(0,1fr);align-items:start;gap:11px;min-width:0}
.dy-benefit-list svg{color:var(--dy-accent);margin-top:2px}
.dy-benefit-list strong{font-size:15px;font-weight:650;line-height:1.5;color:var(--dy-ink)}
.dy-benefit .dy-benefit-context{font-size:12px;line-height:1.7;margin-bottom:20px;max-width:44ch}
.dy-benefit>.dy-main-action{justify-content:space-between;width:100%;min-height:50px;margin-top:auto;font-size:14px}
.dy-benefit .dy-benefit-source{font-size:11px;line-height:1.5;color:var(--dy-muted);margin:5px 0 -7px}
.dy-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;min-width:0}
.dy-page .dy-shortcut{display:grid;grid-template-columns:22px minmax(0,1fr) 17px;align-items:center;gap:11px;min-height:86px;width:100%;padding:17px 16px;background:var(--dy-paper);border:1px solid var(--dy-line);border-radius:13px;text-align:left;color:var(--dy-accent)}
.dy-shortcut>span{min-width:0;display:grid;gap:4px}
.dy-shortcut strong{font-size:13px;font-weight:650;line-height:1.4;color:var(--dy-ink)}
.dy-shortcut>span>span{font-size:11px;font-weight:400;line-height:1.5;color:var(--dy-muted)}
.dy-shortcut>svg:last-child{width:17px;height:17px;justify-self:end}
.dy-week,.dy-calendar{border:1px solid var(--dy-line);border-radius:18px;background:var(--dy-paper);padding:24px;min-width:0}
.dy-section-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:19px;min-width:0}
.dy-section-heading>div{min-width:0}
.dy-section-heading .eyebrow{margin-bottom:5px}
.dy-section-heading h2{font-size:23px;margin-bottom:6px}
.dy-section-heading p{font-size:12px}
.dy-section-heading>.text{flex:0 1 auto;justify-content:flex-end;text-align:right}
.dy-week-days,.dy-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;min-width:0}
.dy-page .dy-day-button,.dy-calendar .dy-day-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-width:0;width:100%;min-height:108px;padding:12px 3px;border:1px solid var(--dy-day-border);border-radius:11px;background:var(--dy-paper);color:var(--dy-ink);font-weight:500;line-height:1.2;text-align:center;position:relative;box-shadow:none;transform:none}
.dy-day-button .dy-weekday{font-size:10px;font-weight:600;line-height:1.25;color:var(--dy-muted)}
.dy-day-button .dy-day-number{font-size:23px;font-weight:650;line-height:1.1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.dy-day-button .dy-day-mark{display:grid;place-items:center;width:23px;height:23px;font-size:23px;font-weight:500;line-height:1}
.dy-day-mark svg{width:19px;height:19px}
.dy-day-button .dy-day-status{font-size:10px;line-height:1.25;font-weight:500;max-width:100%;overflow-wrap:normal;word-break:normal}
.dy-page .dy-day-button[data-state="abstinent"],.dy-calendar .dy-day-button[data-state="abstinent"]{background:var(--dy-sage);border-color:var(--dy-sage-border);color:var(--dy-accent)}
.dy-page .dy-day-button[data-state="drinking"],.dy-calendar .dy-day-button[data-state="drinking"]{background:var(--dy-consumed);border-color:var(--dy-day-border);color:var(--dy-consumed-ink)}
.dy-page .dy-day-button[data-provenance="estimated"],.dy-calendar .dy-day-button[data-provenance="estimated"]{border-width:2px;border-style:dashed;border-color:var(--dy-estimated-border)}
.dy-page .dy-day-button[data-state="unknown"],.dy-calendar .dy-day-button[data-state="unknown"]{background:var(--dy-paper);color:var(--dy-muted)}
.dy-page .dy-day-button.is-today,.dy-calendar .dy-day-button.is-today{box-shadow:inset 0 0 0 2px var(--dy-accent)}
.dy-page .dy-day-button.is-today .dy-weekday,.dy-calendar .dy-day-button.is-today .dy-day-number{color:var(--dy-accent);font-weight:750}
.dy-page .dy-day-button:disabled,.dy-calendar .dy-day-button:disabled{cursor:default;opacity:1;background:var(--bg,#f5f6f3);border-color:var(--dy-line);color:var(--dy-muted);box-shadow:none}
.dy-page .dy-day-button[data-state="future"],.dy-calendar .dy-day-button[data-state="future"]{background:var(--bg,#f5f6f3);border-color:var(--dy-line);color:var(--dy-muted)}
.dy-week-footer{display:grid;gap:13px;margin-top:17px}
.dy-week-footer>p{font-size:12px;line-height:1.6}
.dy-week-footer>p>strong{font-weight:600;color:var(--dy-ink)}
.dy-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;color:var(--dy-muted);font-size:10px;line-height:1.5}
.dy-legend>span{display:inline-flex;align-items:center;gap:6px;min-width:0}
.dy-legend i{display:block;width:13px;height:13px;border:1px solid var(--dy-day-border);border-radius:3px;flex:0 0 auto;background:var(--dy-paper)}
.dy-legend i[data-state="abstinent"]{background:var(--dy-sage);border-color:var(--dy-accent);position:relative}
.dy-legend i[data-state="abstinent"]:after{content:"";position:absolute;left:3px;top:2px;width:4px;height:6px;border:solid var(--dy-accent);border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}
.dy-legend i[data-state="drinking"]{background:var(--dy-consumed);position:relative}
.dy-legend i[data-state="drinking"]:after{content:"";position:absolute;width:4px;height:4px;left:3.5px;top:3.5px;border-radius:50%;background:var(--dy-consumed-ink)}
.dy-legend i[data-provenance="estimated"]{border:2px dashed var(--dy-estimated-border)}
.dy-secondary-grid>section{background:var(--dy-paper);padding:23px}
.dy-ritual .dy-section-heading{margin-bottom:10px}
.dy-secondary-grid h2{font-size:23px;line-height:1.25}
.dy-page .dy-task{display:grid;grid-template-columns:34px minmax(0,1fr) 18px;align-items:center;gap:12px;width:100%;padding:17px 0;border:0;border-top:1px solid var(--dy-line);border-radius:0;background:transparent;text-align:left}
.dy-task-icon{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--dy-line);border-radius:9px;background:var(--dy-sage);color:var(--dy-accent)}
.dy-task-icon svg{width:19px;height:19px}
.dy-task-copy{display:grid;gap:4px;min-width:0}
.dy-task-copy>strong{font-size:13px;line-height:1.45;font-weight:650;color:var(--dy-ink)}
.dy-task-copy>span{font-size:11px;line-height:1.55;font-weight:400;color:var(--dy-muted)}
.dy-task-arrow{color:var(--dy-accent)}
.dy-task-arrow svg{width:17px;height:17px}
.dy-task.is-complete .dy-task-icon{background:var(--dy-button);border-color:var(--dy-button);color:#fff}
.dy-next-action{display:flex;flex-direction:column;align-items:flex-start}
.dy-next-action>h2{margin-bottom:12px}
.dy-next-action>p{font-size:13px;margin-bottom:16px}
.dy-next-action>.secondary{margin-top:auto}
.dy-page .dy-health-link{display:grid;grid-template-columns:20px minmax(0,1fr) 17px;gap:10px;align-items:center;width:100%;margin-top:21px;padding:16px 0 0;border:0;border-top:1px solid var(--dy-line);border-radius:0;background:transparent;text-align:left;color:var(--dy-accent)}
.dy-health-link>span{display:grid;gap:4px;min-width:0}
.dy-health-link strong{font-size:12px;font-weight:650;line-height:1.5;color:var(--dy-ink)}
.dy-health-link>span>span{font-size:11px;font-weight:400;line-height:1.5;color:var(--dy-muted)}
.dy-health-link>svg:last-child{width:17px;height:17px}
.dy-help-strip{display:flex;align-items:center;gap:16px;padding:20px 23px;border:1px solid var(--dy-line);border-radius:14px;background:var(--dy-sage)}
.dy-help-icon{display:grid;place-items:center;width:40px;height:40px;flex:0 0 auto;border:1px solid var(--dy-sage-border);border-radius:50%;color:var(--dy-accent)}
.dy-help-strip>div{min-width:0;flex:1}
.dy-help-strip strong{font-size:14px;font-weight:650;line-height:1.5}
.dy-help-strip p{font-size:12px;margin-top:4px}
.dy-help-strip>.secondary{flex:0 0 auto;font-size:12px}
.dy-safety{border-top:1px solid var(--dy-line);padding-top:2px;color:var(--dy-muted)}
.dy-safety>summary{padding:12px 0;min-height:44px;font-size:12px;font-weight:500;cursor:pointer;line-height:1.6}
.dy-safety>p{font-size:12px;line-height:1.75;max-width:78ch;margin:0 0 7px}
.dy-safety>.text{font-size:12px}
/* Monthly history uses the same date states as the compact dashboard. */
.dy-calendar{margin:22px 0;scroll-margin-top:90px}
.dy-calendar-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:21px}
.dy-calendar-header>div{min-width:0}
.dy-calendar-header .eyebrow{margin-bottom:6px}
.dy-calendar-header h2{font-size:26px;margin-bottom:8px}
.dy-calendar-header p{font-size:13px}
.dy-calendar-header>.secondary{flex:0 0 auto}
.dy-calendar-controls{display:grid;grid-template-columns:44px minmax(0,1fr) 44px auto;gap:9px;align-items:center;margin-bottom:18px}
.dy-calendar-controls>button:not(.text){display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--dy-line);background:var(--dy-paper);border-radius:9px;font-size:27px;line-height:1;color:var(--dy-accent)}
.dy-calendar-controls>h3{font-size:18px;font-weight:650;line-height:1.4;text-align:center;text-transform:capitalize}
.dy-calendar-controls>.text{margin-left:6px;padding-inline:8px;justify-content:center}
.dy-calendar-controls>button:disabled{cursor:default;opacity:1;color:var(--dy-muted);background:var(--bg,#f5f6f3)}
.dy-weekday-label{text-align:center;font-size:11px;font-weight:600;line-height:1.4;color:var(--dy-muted);padding:0 0 5px}
.dy-calendar .dy-day-button{min-height:91px;gap:7px;padding-block:12px}
.dy-calendar .dy-day-number{font-size:20px}
.dy-empty-day{min-width:0}
.dy-calendar>.dy-legend{margin-top:18px}
.dy-calendar-summary{display:flex;justify-content:space-between;flex-wrap:wrap;align-items:baseline;gap:6px 20px;margin-top:19px;padding-top:16px;border-top:1px solid var(--dy-line);font-size:12px;line-height:1.65}
.dy-calendar-summary>strong{font-weight:650}
.dy-calendar-summary>span{font-size:11px;color:var(--dy-muted)}
.dy-calendar .dy-calendar-note{margin-top:10px;font-size:11px;line-height:1.7;max-width:85ch}
.dy-calendar-note>.text{font-size:inherit;vertical-align:baseline}
.dy-calendar-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px 18px;margin-top:14px;padding-top:10px;border-top:1px solid var(--dy-line)}
/* Explicit daily declaration. Native radios remain visible and keyboard usable. */
#dailyEntryForm{display:flex;flex-direction:column;gap:0}
#dailyEntryForm>p:first-child{font-size:14px;line-height:1.65;margin:1px 0 19px;color:var(--dy-muted)}
#dailyEntryForm>label,#dailyEntryForm [data-daily-amounts]>label{font-size:13px;line-height:1.5;color:var(--dy-ink);margin:0 0 17px}
#dailyEntryForm :is(input:not([type="radio"]),select){width:100%;min-width:0;max-width:100%;min-height:48px;border:1px solid var(--dy-day-border);border-radius:10px;background:var(--dy-paper);color:var(--dy-ink);font-size:16px;padding:11px 12px;margin-top:7px}
#dailyEntryForm .daily-entry-status{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0;padding:0;border:0;margin:2px 0 20px}
#dailyEntryForm .daily-entry-status>legend{padding:0;margin-bottom:11px;max-width:100%;font-size:14px;font-weight:650;line-height:1.5;color:var(--dy-ink)}
#dailyEntryForm .daily-entry-status>label{display:flex;align-items:center;gap:10px;min-width:0;min-height:64px;padding:14px 12px;margin:0;border:1px solid var(--dy-day-border);border-radius:11px;background:var(--dy-paper);font-size:14px;font-weight:600;line-height:1.4;color:var(--dy-ink);cursor:pointer}
#dailyEntryForm .daily-entry-status input[type="radio"]{display:block;width:20px;height:20px;min-width:20px;min-height:20px;flex:0 0 20px;margin:0;padding:0;accent-color:var(--dy-button)}
#dailyEntryForm .daily-entry-status>label:has(input:checked){background:var(--dy-sage);border-color:var(--dy-accent);box-shadow:inset 0 0 0 1px var(--dy-accent)}
#dailyEntryForm .daily-entry-status>label:has(input:focus-visible){outline:3px solid var(--dy-focus-ring);outline-offset:3px}
#dailyEntryForm .daily-entry-status:disabled>label{cursor:default;color:var(--dy-muted)}
#dailyEntryForm .daily-entry-status:disabled>label:has(input:checked){color:var(--dy-ink)}
#dailyEntryForm [data-daily-amounts]{padding:16px 16px 0;margin:0 0 18px;border:1px solid var(--dy-line);border-radius:11px;background:var(--dy-sage)}
#dailyEntryForm [data-daily-amounts][hidden]{display:none}
#dailyEntryForm .small{font-size:12px;line-height:1.65;color:var(--dy-muted);margin:-8px 0 18px}
#dailyEntryForm a{color:var(--dy-accent);text-underline-offset:3px}
#dailyEntryForm>.safety{padding:15px 16px;border:1px solid var(--dy-line);border-radius:11px;background:var(--dy-sage);margin:0 0 18px;font-size:13px}
#dailyEntryForm>.safety>p{font-size:13px;line-height:1.65;margin:0 0 8px;color:var(--dy-ink)}
#dailyEntryForm>.primary{width:100%;min-height:52px;margin-top:4px;font-size:15px}
#dailyEntryError:not([hidden]){margin:0 0 15px;font-size:13px;line-height:1.6}
@media(hover:hover){
  .dy-page .primary:not(:disabled):hover,.dy-calendar .primary:not(:disabled):hover,#dailyEntryForm .primary:not(:disabled):hover{background:var(--dy-button-hover);border-color:var(--dy-button-hover)}
  .dy-page .secondary:not(:disabled):hover,.dy-calendar .secondary:not(:disabled):hover,.dy-goal:hover,.dy-page .dy-shortcut:hover{border-color:var(--dy-accent);background:var(--dy-sage)}
  .dy-page .dy-day-button:not(:disabled):hover,.dy-calendar .dy-day-button:not(:disabled):hover{border-color:var(--dy-accent);box-shadow:inset 0 0 0 1px var(--dy-accent)}
  .dy-page .dy-task:hover,.dy-page .dy-health-link:hover{background:var(--dy-sage)}
  .dy-page .text:hover,.dy-calendar .text:not(:disabled):hover,.dy-page .dy-start-edit:hover{color:var(--dy-ink)}
  #dailyEntryForm .daily-entry-status:not(:disabled)>label:hover{background:var(--dy-sage);border-color:var(--dy-accent)}
}
/* Components adapt to the usable content width, including a tablet sidebar. */
@media(max-width:800px){
  .dy-page{margin-top:23px;gap:18px}
  .dy-heading{gap:15px}
  .dy-heading h1{font-size:32px}
  .dy-goal{flex-basis:200px}
  .dy-primary-grid>section,.dy-secondary-grid>section{padding:22px}
  .dy-week,.dy-calendar{padding:20px}
  .dy-week-days,.dy-month-grid{gap:6px}
  .dy-page .dy-day-button{min-height:98px}
  .dy-calendar .dy-day-button{min-height:84px}
}
@media(max-width:580px){
  .dy-heading{display:block}
  .dy-heading h1{font-size:32px;max-width:14em}
  .dy-heading p{font-size:13px}
  .dy-goal{width:100%;margin-top:17px;padding:10px 13px;gap:10px}
  .dy-goal>span{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 9px;font-size:12px}
  .dy-goal strong{font-size:13px}
  .dy-primary-grid,.dy-secondary-grid{gap:14px;grid-template-columns:minmax(0,1fr)}
  .dy-primary-grid>section,.dy-secondary-grid>section{padding:21px;border-radius:15px}
  .dy-counter{margin-top:18px;gap:5px 12px}
  .dy-counter>strong{font-size:74px}
  .dy-counter>span{font-size:20px}
  .dy-next-cap{margin-top:18px;padding-top:15px}
  .dy-today h2{font-size:25px}
  .dy-today>p{font-size:13px;margin-bottom:18px}
  .dy-today .dy-main-action{font-size:14px}
  .dy-benefit h2{font-size:26px}
  .dy-benefit-list{gap:12px;margin-block:17px}
  .dy-benefit-list strong{font-size:14px}
  .dy-shortcuts{gap:8px}
  .dy-page .dy-shortcut{grid-template-columns:minmax(0,1fr);justify-items:center;gap:9px;padding:16px 8px;min-height:104px;text-align:center;border-radius:11px}
  .dy-shortcut strong{font-size:12px;line-height:1.4}
  .dy-shortcut>span>span,.dy-shortcut>svg:last-child{display:none}
  .dy-week,.dy-calendar{padding:18px 14px;border-radius:15px}
  .dy-section-heading{align-items:flex-start;gap:8px;flex-wrap:wrap;margin-bottom:16px}
  .dy-section-heading h2{font-size:22px}
  .dy-section-heading>.text{justify-content:flex-start;text-align:left;padding-block:6px}
  .dy-week-days,.dy-month-grid{gap:4px}
  .dy-page .dy-day-button,.dy-calendar .dy-day-button{min-height:78px;gap:6px;padding:10px 1px;border-radius:8px}
  .dy-day-button .dy-weekday{font-size:10px;letter-spacing:-.02em}
  .dy-day-button .dy-day-number{font-size:20px}
  .dy-day-button .dy-day-mark{width:20px;height:20px;font-size:21px}
  .dy-day-mark svg{width:17px;height:17px}
  .dy-day-button .dy-day-status{display:none}
  .dy-legend{gap:8px 11px;font-size:10px}
  .dy-week-footer{margin-top:14px;gap:12px}
  .dy-week-footer>p{font-size:11px}
  .dy-help-strip{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;padding:18px;border-radius:13px}
  .dy-help-icon{width:34px;height:34px}
  .dy-help-strip strong{font-size:13px}
  .dy-help-strip p{font-size:12px}
  .dy-help-strip>.secondary{grid-column:1/-1;width:100%;margin-top:2px}
  .dy-calendar-header{display:block;margin-bottom:16px}
  .dy-calendar-header h2{font-size:25px}
  .dy-calendar-header>.secondary{margin-top:14px;width:100%}
  .dy-calendar-controls{grid-template-columns:44px minmax(0,1fr) 44px;gap:6px;margin-bottom:14px}
  .dy-calendar-controls>h3{font-size:17px}
  .dy-calendar-controls>.text{grid-column:1/-1;justify-self:center;margin:0;min-height:44px;padding-inline:14px}
  .dy-calendar .dy-day-button{min-height:64px;gap:5px;padding-block:8px}
  .dy-weekday-label{font-size:10px}
  .dy-calendar-summary{display:grid;gap:4px;margin-top:16px}
  .dy-calendar-links{gap:3px 12px}
  .dy-calendar-links>.text{font-size:11px}
  #dailyEntryForm .daily-entry-status{gap:8px}
  #dailyEntryForm .daily-entry-status>label{padding:13px 10px;gap:8px;font-size:13px}
}
@media(max-width:360px){
  .dy-heading h1{font-size:29px}
  .dy-primary-grid>section,.dy-secondary-grid>section{padding:18px}
  .dy-counter>strong{font-size:68px}
  .dy-counter>span{font-size:18px}
  .dy-focus-top{gap:8px}
  .dy-focus-top>.eyebrow{font-size:9px}
  .dy-earned{font-size:9px;padding:4px 6px}
  .dy-week,.dy-calendar{padding-inline:11px}
  .dy-week-days,.dy-month-grid{gap:3px}
  .dy-page .dy-day-button{min-height:76px}
  .dy-calendar .dy-day-button{min-height:61px}
  .dy-day-button .dy-weekday,.dy-weekday-label{font-size:9px}
  .dy-day-button .dy-day-number{font-size:18px}
  .dy-legend{gap:7px 9px}
  .dy-today .dy-main-action{grid-template-columns:18px minmax(0,1fr) 16px;padding-inline:12px;gap:8px}
  .dy-main-action>svg{width:18px;height:18px}
  #dailyEntryForm .daily-entry-status{grid-template-columns:minmax(0,1fr)}
  #dailyEntryForm .daily-entry-status>label{min-height:54px;font-size:14px}
}
/* The existing reading preference scales labels as well as paragraph text. */
body.ux-large-text #content .dy-page .eyebrow,body.ux-large-text #content .dy-calendar .eyebrow{font-size:12px}
body.ux-large-text #content :is(.dy-completion,.dy-clock-detail,.dy-next-cap-top>span,.dy-next-cap>small,.dy-start-edit,.dy-legend,.dy-calendar-note,.dy-calendar-summary>span,.dy-task-copy>span,.dy-health-link>span>span){font-size:14px;line-height:1.65}
body.ux-large-text #content :is(.dy-task-copy>strong,.dy-health-link strong,.dy-next-cap-top>strong,.dy-help-strip strong){font-size:16px;line-height:1.5}
body.ux-large-text #content .dy-counter>span{font-size:24px}
body.ux-large-text #content .dy-earned{font-size:12px}
body.ux-large-text #content .dy-goal>span{font-size:14px}
body.ux-large-text #content .dy-goal strong{font-size:16px}
body.ux-large-text #content :is(.dy-weekday,.dy-weekday-label){font-size:12px}
body.ux-large-text #content .dy-day-number{font-size:24px}
body.ux-large-text #content .dy-day-status{font-size:12px}
body.ux-large-text #content .dy-task{grid-template-columns:34px minmax(0,1fr) 18px;gap:10px}
body.ux-large-text #content :is(.dy-benefit-scope,.dy-benefit-source,.dy-shortcut>span>span){font-size:14px;line-height:1.6}
body.ux-large-text #content :is(.dy-benefit-list strong,.dy-shortcut strong){font-size:17px;line-height:1.5}
body.ux-large-text #modalContent #dailyEntryForm .daily-entry-status>legend{font-size:17px}
body.ux-large-text #modalContent #dailyEntryForm .small{font-size:14px}
@media(max-width:580px){
  body.ux-large-text #content .dy-day-number{font-size:21px}
  body.ux-large-text #content :is(.dy-weekday,.dy-weekday-label){font-size:10px}
  body.ux-large-text #content .dy-page .dy-day-button{min-height:86px}
  body.ux-large-text #content .dy-calendar .dy-day-button{min-height:70px}
  body.ux-large-text #content .dy-shortcuts{grid-template-columns:minmax(0,1fr)}
  body.ux-large-text #content .dy-shortcut{grid-template-columns:22px minmax(0,1fr) 17px;justify-items:start;min-height:72px;text-align:left;padding:14px 16px}
  body.ux-large-text #content .dy-shortcut>svg:last-child{display:block}
  body.ux-large-text #modalContent #dailyEntryForm .daily-entry-status{grid-template-columns:minmax(0,1fr)}
}
@media(prefers-reduced-motion:reduce){
  .dy-page *,.dy-page *:before,.dy-page *:after,.dy-calendar *,#dailyEntryForm *{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
@media(forced-colors:active){
  .dy-page .dy-day-button,.dy-calendar .dy-day-button{border-color:ButtonText}
  .dy-page .dy-day-button.is-today,.dy-calendar .dy-day-button.is-today{outline:2px solid Highlight;outline-offset:-4px}
  .dy-cap-track{border:1px solid ButtonText}
  .dy-cap-fill{background:Highlight;forced-color-adjust:none}
  #dailyEntryForm .daily-entry-status>label:has(input:checked){outline:2px solid Highlight;outline-offset:-3px}
}
