/* V2 hours workspace. Scoped to this screen; the app shell and navigation keep their theme. */
.hours-page {
  /* Reuse the app's selected theme without changing the hours layout or status meaning. */
  --dh-ink:var(--text); --dh-muted:var(--text-muted); --dh-label:var(--text-label); --dh-line:var(--line);
  --dh-accent:var(--accent); --dh-red:var(--status-danger); --dh-warn:var(--status-warn);
  --dh-ground:var(--bg); --dh-paper:var(--bg-raised); --dh-alt:var(--bg-sunken);
  --dh-soft:var(--brand-soft); --dh-soft-ink:var(--brand-soft-ink); --dh-hover:var(--surface-hover);
  --dh-shadow:var(--surface-shadow);
  color-scheme:inherit; background:var(--dh-ground); color:var(--dh-ink); border-radius:20px;
  padding:24px 17px 17px; font-size:14px; line-height:1.5; isolation:isolate;
  font-family:Inter,"Segoe UI",Arial,sans-serif; overflow-wrap:anywhere;
}
.hours-page * { box-sizing:border-box; }
.hours-page :where(h1,h2,h3,p,dl,dd) { margin:0; }
.hours-page :where(button,summary) { -webkit-tap-highlight-color:transparent; }
.hours-page :where(button,summary):focus-visible { outline:3px solid var(--dh-accent); outline-offset:4px; }
.hours-page svg { display:block; width:20px; height:20px; flex:none; }
.hours-page .dh-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.hours-page .dh-heading { display:flex; align-items:center; justify-content:space-between; gap:13px; margin-bottom:20px; }
.hours-page .dh-eyebrow { font-size:9px; font-weight:750; letter-spacing:.11em; text-transform:uppercase; color:var(--dh-muted); line-height:1.6; }
.hours-page h1 { font-size:29px; font-weight:750; letter-spacing:-1px; margin-top:4px; line-height:1.2; }
.hours-page .dh-company { color:var(--dh-muted); font-size:11px; margin-top:5px; }
.hours-page .dh-refresh { border:1px solid var(--dh-line); border-radius:10px; background:var(--dh-paper); color:var(--dh-ink); display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:10px 12px; min-height:44px; flex:none; font:inherit; font-size:11px; font-weight:650; cursor:pointer; }
.hours-page .dh-refresh svg { width:17px; height:17px; }
.hours-page .dh-refresh:hover { color:var(--dh-accent); border-color:var(--dh-accent); }
.hours-page .dh-refresh:disabled { opacity:.6; cursor:wait; }
.hours-page .dh-refresh[aria-busy=true] svg { animation:dh-spin 1.4s linear infinite; }
.hours-page .dh-capability-note { display:flex; align-items:flex-start; gap:8px; background:var(--dh-soft); color:var(--dh-label); border-radius:10px; padding:11px 12px; font-size:10px; margin-bottom:15px; line-height:1.6; }
.hours-page .dh-capability-note svg { width:15px; height:15px; margin-top:2px; }
.hours-page .dh-overview { display:grid; gap:15px; }
.hours-page .dh-primary,.hours-page .dh-outlook { display:contents; }
.hours-page .dh-section { min-width:0; border:1px solid var(--dh-line); background:var(--dh-paper); border-radius:15px; padding:18px; box-shadow:var(--dh-shadow); }
.hours-page .dh-section-head { display:flex; justify-content:space-between; align-items:center; gap:9px; margin-bottom:17px; }
.hours-page .dh-section-head h2 { display:flex; align-items:center; gap:7px; font-size:14px; font-weight:750; letter-spacing:-.25px; line-height:1.4; }
.hours-page .dh-section-head h2 svg { width:18px; height:18px; color:var(--dh-muted); }
.hours-page .dh-section-tag { flex:none; border-radius:6px; color:var(--dh-muted); background:var(--dh-alt); padding:4px 6px; font-size:8px; font-weight:700; letter-spacing:.015em; line-height:1.4; }
.hours-page .dh-duty { order:1; border-top:3px solid var(--dh-accent); }
.hours-page .dh-duty .dh-section-head { margin-bottom:22px; }
.hours-page .dh-duty .dh-footnote+.dh-section-head { border-top:1px solid var(--dh-line); padding-top:17px; margin-top:18px; }
.hours-page .dh-current-status { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.hours-page .dh-current-status dt { color:var(--dh-muted); font-size:10px; }
.hours-page .dh-current-status dd { font-size:23px; font-weight:750; letter-spacing:-.6px; line-height:1.3; margin-top:7px; }
.hours-page .dh-snapshot { order:2; }
.hours-page .dh-snapshot>summary { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:10px; list-style:none; cursor:pointer; }
.hours-page .dh-snapshot>summary::-webkit-details-marker { display:none; }
.hours-page .dh-snapshot-heading strong { display:block; font-size:14px; font-weight:750; }
.hours-page .dh-snapshot-heading>span { display:block; font-size:10px; color:var(--dh-muted); margin-top:4px; }
.hours-page .dh-snapshot>summary>svg { width:18px; height:18px; color:var(--dh-muted); }
.hours-page .dh-snapshot[open]>summary>svg { transform:rotate(180deg); }
.hours-page .dh-snapshot>summary .dh-analysis { grid-column:1/-1; margin-top:2px; padding-top:12px; }
.hours-page .dh-snapshot-values { border-top:1px solid var(--dh-line); padding-top:3px; margin-top:15px; }
.hours-page .dh-snapshot-values>.dh-section { border:0; border-top:1px solid var(--dh-line); padding:17px 0 0; margin-top:18px; border-radius:0; box-shadow:none; }
.hours-page .dh-snapshot-work { border-top:1px solid var(--dh-line); margin-top:18px; padding-top:16px; }
.hours-page .dh-snapshot-work dt { color:var(--dh-muted); font-size:10px; }
.hours-page .dh-snapshot-work dd { font-size:18px; font-weight:650; margin-top:6px; font-variant-numeric:tabular-nums; }
.hours-page .dh-duty-amounts { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:start; gap:10px; }
.hours-page .dh-duty-amounts>div { min-width:0; }
.hours-page .dh-duty-amounts strong { font-size:21px; font-weight:750; letter-spacing:-.65px; line-height:1.25; display:block; color:var(--dh-label); }
.hours-page .dh-duty-amounts>div:last-child strong { color:var(--dh-muted); }
.hours-page .dh-duty-amounts div>span { font-size:10px; color:var(--dh-muted); margin-top:7px; display:block; }
.hours-page .dh-duty-slash { color:var(--dh-muted); font-size:25px; line-height:1.2; font-weight:400; }
.hours-page .dh-footnote { font-size:10px; color:var(--dh-muted); line-height:1.6; margin-top:15px; }
.hours-page .dh-driving { display:flex; justify-content:space-between; align-items:center; gap:12px; border-top:1px solid var(--dh-line); padding-top:17px; margin-top:19px; }
.hours-page .dh-driving>div { min-width:0; }
.hours-page .dh-driving h3 { display:flex; align-items:center; gap:7px; font-size:11px; font-weight:650; line-height:1.55; }
.hours-page .dh-driving h3 svg { width:17px; height:17px; color:var(--dh-muted); }
.hours-page .dh-driving p { font-size:9px; color:var(--dh-muted); margin-top:4px; }
.hours-page .dh-today-value { flex:none; }
.hours-page .dh-duration { display:inline-flex; align-items:baseline; gap:5px; font-size:30px; font-weight:750; line-height:1.1; letter-spacing:-1px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.hours-page .dh-duration small { font-size:.4em; font-weight:550; margin-left:2px; letter-spacing:0; }
.hours-page .dh-missing { color:var(--dh-muted); font-weight:550; }
.hours-page .dh-today-value>.dh-missing { display:block; font-size:14px; max-width:90px; }
.hours-page .dh-driving-caption { font-size:10px; color:var(--dh-muted); margin-top:11px; }
.hours-page .dh-analysis { display:flex; align-items:flex-start; gap:8px; margin-top:16px; padding-top:14px; border-top:1px solid var(--dh-line); color:var(--dh-muted); font-size:10px; line-height:1.55; }
.hours-page .dh-stamp-icon svg { width:14px; height:14px; margin-top:2px; color:var(--dh-muted); }
.hours-page .dh-analysis strong { color:var(--dh-label); font-size:10px; font-weight:650; }
.hours-page .dh-analysis p { margin-top:2px; }
.hours-page .dh-analysis .dh-stamp-note { font-size:9px; }
.hours-page .dh-analysis-older strong,.hours-page .dh-analysis-older .dh-stamp-icon svg { color:var(--dh-warn); }
.hours-page .dh-analysis-unknown strong,.hours-page .dh-analysis-unknown .dh-stamp-icon svg { color:var(--dh-muted); }
.hours-page .dh-daily-rest { order:3; background:linear-gradient(125deg,var(--dh-paper),var(--dh-hover)); }
.hours-page .dh-weekly-rest { order:4; }
.hours-page .dh-rest-estimate { display:flex; align-items:flex-start; gap:11px; }
.hours-page .dh-rest-symbol { display:grid; place-items:center; width:40px; height:40px; border:1px solid var(--dh-line); background:var(--dh-soft); color:var(--dh-soft-ink); border-radius:12px; flex:none; }
.hours-page .dh-rest-symbol svg { width:21px; height:21px; }
.hours-page .dh-rest-estimate p { font-size:10px; color:var(--dh-muted); }
.hours-page .dh-rest-estimate strong { display:block; font-size:24px; font-weight:750; letter-spacing:-.65px; margin-top:4px; color:var(--dh-label); line-height:1.2; }
.hours-page .dh-rest-estimate div>span { display:block; font-size:10px; color:var(--dh-muted); margin-top:6px; }
.hours-page .dh-rest-condition { display:flex; gap:6px; font-size:10px; color:var(--dh-muted); line-height:1.6; margin-top:16px; }
.hours-page .dh-rest-condition svg { width:14px; height:14px; margin-top:2px; }

/* ---- the day's window, and the figures that move (0468) -------------------------------------
   This section read Not supplied from the day it was designed, because the saved analysis does
   not carry the moment a driver's day began. The provider's live endpoint does, and only while
   his card is in, so the section has two states and no third: their live figures with a window
   worked out from them, or nothing at all.

   The live tag is green because it describes the source, and the driver has to be able to tell
   at a glance which of the two states he is looking at. It is not a judgement on the number. */

.hours-page .dh-section-tag.dh-live { color:var(--ok); background:color-mix(in srgb, var(--ok) 14%, transparent); }

/* Half an hour from a mandatory stop is not a muted fact, and this is the one a driver reads at
   arm's length in a cab. */
.hours-page .dh-break-due { color:var(--danger); font-weight:700; }

/* The window itself, on the section. `over` is a driver who should already have parked. */
.hours-page .dh-duty[data-duty-state="tight"] { border-color:color-mix(in srgb, var(--warn) 55%, var(--dh-line)); }
.hours-page .dh-duty[data-duty-state="tight"] [data-value="rest-by"] strong { color:var(--warn); }
.hours-page .dh-duty[data-duty-state="over"] { border-color:var(--danger);
  background:color-mix(in srgb, var(--danger) 10%, transparent); }
.hours-page .dh-duty[data-duty-state="over"] [data-value="rest-by"] strong { color:var(--danger); }
.hours-page .dh-duty [data-value="rest-by"] strong { font-size:15px; font-variant-numeric:tabular-nums; }
/* Which rest that deadline assumes. It sits under the hour rather than beside it, because the
   hour is what he reads at arm's length and the condition is what he checks after. */
.hours-page .dh-duty .dh-sub-note { display:block; font-size:9px; color:var(--dh-muted); margin-top:2px; }

/* The rest section now knows the hour the rest must begin, so it is no longer a panel of blanks.
   Past that hour it is the loudest thing on the screen, because he should already have parked. */
.hours-page .dh-daily-rest[data-daily-rest-state="known"] .dh-rest-symbol { color:var(--ok); }
.hours-page .dh-daily-rest[data-daily-rest-state="over"] { border-color:var(--danger); }
.hours-page .dh-daily-rest[data-daily-rest-state="over"] [data-value="rest-eta"] { color:var(--danger); }

/* The weekly rest, which is theirs and comes from a report read once a day. A deadline days out
   is calm; one inside a day is not; one that has passed is the loudest thing on the screen,
   because a weekly rest missed is not something he can make up by driving less tomorrow. */
.hours-page .dh-weekly-rest[data-weekly-rest-state="known"] .dh-rest-symbol { color:var(--ok); }
.hours-page .dh-weekly-rest[data-weekly-rest-state="soon"] { border-color:color-mix(in srgb, var(--warn) 55%, var(--dh-line)); }
.hours-page .dh-weekly-rest[data-weekly-rest-state="soon"] [data-value="weekly-rest-by"] { color:var(--warn); }
.hours-page .dh-weekly-rest[data-weekly-rest-state="over"] { border-color:var(--danger); }
.hours-page .dh-weekly-rest[data-weekly-rest-state="over"] [data-value="weekly-rest-by"] { color:var(--danger); }
.hours-page .dh-weekly-rest [data-value="weekly-rest-by"] { font-size:15px; font-variant-numeric:tabular-nums; }



.hours-page .dh-rest-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; border-top:1px solid var(--dh-line); margin-top:17px; padding-top:14px; }
.hours-page .dh-rest-fields dt { font-size:10px; color:var(--dh-muted); }
.hours-page .dh-rest-fields dd { font-size:13px; font-weight:650; color:var(--dh-label); margin-top:5px; }
.hours-page .dh-weekly-rest .dh-rest-fields { margin-top:0; padding-top:0; border:0; }
.hours-page .dh-allowances { order:4; }
.hours-page .dh-allowance { display:flex; justify-content:space-between; align-items:center; gap:13px; padding:14px 0; }
.hours-page .dh-allowance+.dh-allowance { border-top:1px solid var(--dh-line); }
.hours-page .dh-allowance:first-child { padding-top:0; }
.hours-page .dh-allowance:last-child { padding-bottom:0; }
.hours-page .dh-allowance h3 { font-size:12px; font-weight:650; }
.hours-page .dh-allowance p { color:var(--dh-muted); font-size:10px; margin-top:4px; line-height:1.6; }
.hours-page .dh-allowance-count { flex:none; text-align:right; }
.hours-page .dh-allowance-count strong { display:block; font-size:27px; line-height:1.2; font-weight:750; letter-spacing:-.8px; font-variant-numeric:tabular-nums; }
.hours-page .dh-allowance-count strong small { font-size:11px; font-weight:500; letter-spacing:0; color:var(--dh-muted); margin-left:4px; }
.hours-page .dh-allowance-count>span { display:block; font-size:9px; color:var(--dh-muted); margin-top:3px; }
.hours-page .dh-horizon { order:5; }
.hours-page .dh-ledger { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.hours-page .dh-ledger>div+div { border-left:1px solid var(--dh-line); padding-left:14px; }
.hours-page .dh-ledger dt { font-size:10px; color:var(--dh-muted); }
.hours-page .dh-ledger dd { margin-top:8px; font-size:19px; font-weight:750; font-variant-numeric:tabular-nums; letter-spacing:-.6px; }
.hours-page .dh-tomorrow { display:flex; justify-content:space-between; gap:12px; font-size:10px; color:var(--dh-muted); padding-top:14px; margin-top:16px; border-top:1px solid var(--dh-line); }
.hours-page .dh-tomorrow strong { color:var(--dh-label); font-size:12px; font-weight:650; font-variant-numeric:tabular-nums; }
.hours-page .dh-reference { order:6; }
.hours-page .dh-reference-symbol { border:1px solid var(--dh-line); border-radius:7px; padding:6px; font-size:9px; color:var(--dh-muted); font-weight:650; }
.hours-page .dh-average { display:flex; align-items:end; justify-content:space-between; gap:12px; }
.hours-page .dh-stat-label { display:block; font-size:10px; color:var(--dh-muted); margin-bottom:6px; }
.hours-page .dh-average strong { font-size:27px; font-weight:750; letter-spacing:-.8px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.hours-page .dh-average p { color:var(--dh-muted); font-size:10px; max-width:110px; text-align:right; padding-bottom:3px; }
.hours-page .dh-reference-meter { height:7px; background:var(--dh-alt); border-radius:8px; overflow:hidden; margin-top:17px; }
.hours-page .dh-reference-meter>span { display:block; height:100%; background:var(--dh-accent); border-radius:8px; }
.hours-page .dh-reference-comparison { font-size:10px; color:var(--dh-warn); margin-top:9px; }
.hours-page .dh-weeks { font-size:10px; color:var(--dh-muted); margin-top:9px; }
.hours-page .dh-reference-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 12px; margin-top:18px; padding-top:16px; border-top:1px solid var(--dh-line); }
.hours-page .dh-reference-stats dt { font-size:10px; color:var(--dh-muted); }
.hours-page .dh-reference-stats dd { font-size:15px; font-weight:650; margin-top:5px; font-variant-numeric:tabular-nums; }
.hours-page .dh-reference-age { display:flex; gap:6px; align-items:flex-start; color:var(--dh-muted); font-size:9px; line-height:1.6; border-top:1px solid var(--dh-line); padding-top:12px; margin-top:17px; }
.hours-page .dh-reference-age svg { width:13px; height:13px; margin-top:2px; color:var(--dh-muted); }
.hours-page .dh-reference-age p>span { display:block; color:var(--dh-warn); margin-top:3px; }
.hours-page .dh-reference .dh-reference-age { margin-top:0; margin-bottom:17px; padding-top:0; border-top:0; }
.hours-page .dh-history { margin-top:15px; padding-bottom:0; }
.hours-page .dh-history .dh-section-head { margin-bottom:8px; }
.hours-page .dh-shift { border-top:1px solid var(--dh-line); }
.hours-page .dh-shift:first-child { border-top:0; }
.hours-page .dh-shift>summary { display:flex; align-items:center; gap:10px; min-height:67px; padding:11px 0; cursor:pointer; list-style:none; }
.hours-page .dh-shift>summary::-webkit-details-marker,.hours-page .dh-history-more>summary::-webkit-details-marker { display:none; }
.hours-page .dh-shift-icon { display:grid; place-items:center; width:32px; height:37px; flex:none; border:1px solid var(--dh-line); background:var(--dh-alt); border-radius:8px; color:var(--dh-muted); }
.hours-page .dh-shift-icon svg { width:17px; height:17px; }
.hours-page .dh-shift-heading { flex:1; min-width:0; }
.hours-page .dh-shift-heading strong { display:block; font-size:12px; font-weight:650; }
.hours-page .dh-shift-heading>span { display:block; font-size:10px; color:var(--dh-muted); margin-top:2px; }
.hours-page .dh-shift-total { flex:none; text-align:right; }
.hours-page .dh-shift-total strong { display:block; font-size:13px; font-weight:700; font-variant-numeric:tabular-nums; }
.hours-page .dh-shift-total>span { display:block; font-size:9px; color:var(--dh-muted); }
.hours-page .dh-expand svg { width:15px; height:15px; color:var(--dh-muted); transition:transform .15s; }
.hours-page .dh-shift[open] .dh-expand svg { transform:rotate(180deg); }
.hours-page .dh-shift-detail { padding:2px 0 17px 42px; font-size:10px; color:var(--dh-muted); }
.hours-page .dh-shift-detail dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:13px; }
.hours-page .dh-shift-detail dd { font-size:12px; color:var(--dh-label); font-weight:650; margin-top:3px; font-variant-numeric:tabular-nums; }
.hours-page .dh-shift-vehicles { margin-top:14px; }
.hours-page .dh-shift-vehicles strong { color:var(--dh-label); font-weight:650; }
.hours-page .dh-history-more { border-top:1px solid var(--dh-line); }
.hours-page .dh-history-more>summary { display:flex; align-items:center; justify-content:center; gap:7px; min-height:46px; list-style:none; cursor:pointer; font-size:11px; font-weight:650; color:var(--dh-accent); }
.hours-page .dh-history-more>summary svg { width:15px; height:15px; }
.hours-page .dh-show-less,.hours-page .dh-history-more[open]>summary .dh-show-more { display:none; }
.hours-page .dh-history-more[open]>summary .dh-show-less { display:inline; }
.hours-page .dh-history-more[open]>summary svg { transform:rotate(180deg); }
.hours-page .dh-history-note { border-top:1px solid var(--dh-line); padding:13px 0; font-size:9px; color:var(--dh-muted); line-height:1.6; }
.hours-page .dh-empty-note { font-size:11px; color:var(--dh-muted); padding:12px 0 20px; }
.hours-page .dh-provenance { display:flex; align-items:flex-start; gap:7px; font-size:9px; color:var(--dh-muted); margin-top:17px; line-height:1.7; }
.hours-page .dh-provenance svg { width:14px; height:14px; margin-top:2px; }
.hours-page .dh-refresh-status { font-size:11px; color:var(--dh-label); margin-top:12px; line-height:1.6; }
.hours-page .dh-refresh-status:empty { display:none; }
.hours-page .dh-empty { background:var(--dh-paper); border:1px solid var(--dh-line); border-radius:15px; padding:30px 20px; text-align:center; }
.hours-page .dh-empty-icon { display:grid; place-items:center; width:43px; height:43px; border-radius:13px; color:var(--dh-soft-ink); background:var(--dh-soft); margin:0 auto 15px; }
.hours-page .dh-empty h2 { font-size:18px; font-weight:700; letter-spacing:-.4px; }
.hours-page .dh-empty p { color:var(--dh-muted); font-size:12px; margin-top:10px; }
@media(min-width:680px) {
  .hours-page { padding:25px 20px 18px; }
  .hours-page .dh-overview { grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; align-items:start; }
  .hours-page .dh-primary,.hours-page .dh-outlook { display:grid; gap:15px; min-width:0; }
  .hours-page .dh-section { padding:17px; }
  .hours-page .dh-duty,.hours-page .dh-snapshot,.hours-page .dh-allowances,.hours-page .dh-horizon,.hours-page .dh-daily-rest,.hours-page .dh-weekly-rest,.hours-page .dh-reference { order:initial; }
  .hours-page .dh-history { padding:18px 20px 0; }
  .hours-page .dh-average { display:block; }
  .hours-page .dh-average p { max-width:none; text-align:left; margin-top:7px; }
  .hours-page .dh-duty-amounts strong { font-size:20px; }
  .hours-page .dh-driving { flex-wrap:wrap; }
}
@media(max-width:370px) {
  .hours-page { padding:21px 12px 14px; border-radius:17px; }
  .hours-page h1 { font-size:26px; }
  .hours-page .dh-refresh { padding:10px; }
  .hours-page .dh-refresh>span { display:none; }
  .hours-page .dh-section { padding:16px; }
  .hours-page .dh-duty-amounts { gap:7px; }
  .hours-page .dh-duty-amounts strong { font-size:19px; }
  .hours-page .dh-current-status { grid-template-columns:1fr; gap:14px; }
  .hours-page .dh-driving { flex-wrap:wrap; }
  .hours-page .dh-section-head h2 { font-size:13px; }
  .hours-page .dh-section-head h2 svg { width:16px; height:16px; }
  .hours-page .dh-section-tag { font-size:7px; padding:4px 5px; }
  .hours-page .dh-average { display:block; }
  .hours-page .dh-average p { max-width:none; text-align:left; margin-top:7px; }
  .hours-page .dh-ledger dd { font-size:17px; }
  .hours-page .dh-shift>summary { gap:7px; }
  .hours-page .dh-shift-icon { width:26px; height:32px; }
  .hours-page .dh-shift-heading strong { font-size:11px; }
  .hours-page .dh-shift-total strong { font-size:12px; }
  .hours-page .dh-shift-detail { padding-left:33px; }
}
@keyframes dh-spin { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { .hours-page * { animation:none!important; transition:none!important; } }

/* Keep hours legible when the driver prints from a dark screen. */
@media print {
  .hours-page {
    color-scheme:light;
    --dh-ink:#000; --dh-muted:#333; --dh-label:#222; --dh-line:#bbb;
    --dh-accent:#642b3a; --dh-red:#8f1d17; --dh-warn:#7a4700;
    --dh-ground:#fff; --dh-paper:#fff; --dh-alt:#fff;
    --dh-soft:#fff; --dh-soft-ink:#642b3a; --dh-hover:#fff; --dh-shadow:none;
  }
}
