/* Sleep Lens: the nightly report uses the whole workspace. */
.header-inner, .app-main { width: min(1680px, calc(100% - 80px)); }
.header-inner { min-height: 80px; gap: 38px; }
.app-main { padding-top: 30px; }
.brand strong { font-size: 1.15rem; letter-spacing: -.04em; }
.brand small { font-size: .7rem; }
.brand-mark { background: transparent; }
.brand-mark svg { width: 29px; height: 29px; }
.main-nav { gap: 8px; }
.nav-item { font-size: .86rem; }
.lens-data-nav { min-height: 44px; font-weight: 500; }
.sleep-heading { align-items: end; margin-bottom: 20px; }
.sleep-heading h1 { font-size: clamp(1.5rem, 2.2vw, 2rem); }
.sleep-date-controls { align-items: end; justify-content: end; }
.sleep-date-controls > label { display: grid; gap: 6px; color: var(--muted); font-size: .7rem; }
.sleep-date-controls .button { font-size: .76rem; padding-inline: 13px; }
.sleep-session-row { margin-bottom: 22px; }
.lens-night-summary { display: grid; grid-template-columns: minmax(220px, 1.2fr) minmax(0, 3fr); gap: 28px; padding: 24px 0 30px; border-top: 1px solid var(--border); }
.lens-night-summary dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin: 0; }
.lens-night-summary dt, .lens-measurements dt { color: var(--muted); font-size: .78rem; }
.lens-night-summary dd { margin: 8px 0; font-size: clamp(1.4rem, 2.3vw, 2.25rem); letter-spacing: -.045em; font-variant-numeric: tabular-nums; }
.lens-night-summary dl > div:first-child dd { color: var(--accent); }
.lens-night-summary small, .lens-measurements small { display: block; color: var(--faint); font-size: .7rem; line-height: 1.5; }
.lens-night-assessment .sleep-assessment-title { margin: 0 0 8px; font-size: 1.05rem; line-height: 1.5; }
.lens-night-assessment .sleep-findings { gap: 4px 12px; }
.lens-night-assessment .sleep-findings a { padding: 4px 0; min-height: 32px !important; }
.lens-night-assessment .sleep-data-note { margin-bottom: 0; }
.sleep-timeline { padding: 24px 28px 10px; }
.sleep-timeline h2 { font-size: 1.2rem; }
.sleep-cursor-readout { background: transparent; border-width: 1px 0 0; border-radius: 0; padding: 16px 0 0; }
.sleep-cursor-readout strong { font-size: .9rem; }
.lens-measurements { padding: 26px 0; }
.lens-measurements h2 { margin: 0; font-size: 1rem; }
.lens-measurements .sleep-section-heading { align-items: baseline; margin-bottom: 20px; }
.lens-measurements dl { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; margin: 0; }
.lens-measurements dd { margin: 8px 0; font-size: 1.4rem; letter-spacing: -.025em; font-variant-numeric: tabular-nums; }
.lens-checkin { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 0 24px; scroll-margin-top: 110px; }
#sleepWorkspace .lens-checkin > summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 19px 0; }
.lens-checkin summary strong { display: block; font-size: .9rem; font-weight: 550; }
.lens-checkin summary small { display: block; margin-top: 6px; color: var(--muted); font-size: .76rem; }
.lens-checkin-action { color: var(--accent); font-size: .8rem; flex-shrink: 0; }
.lens-checkin-action::after { content: ' +'; }
.lens-checkin[open] .lens-checkin-action::after { content: ' −'; }
.lens-checkin [data-sleep-check-in-container] { padding-bottom: 20px; }
.lens-checkin form { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 36px; padding-top: 10px; border-top: 1px solid var(--border); }
.lens-checkin form > p, .lens-checkin .sleep-form-actions { grid-column: 1 / -1; margin: 0; }
.lens-checkin fieldset { min-width: 0; border: 0; padding: 0; margin: 0; }
.lens-checkin legend { margin-bottom: 12px; font-size: .8rem; }
.lens-checkin textarea { width: 100%; min-height: 100px; }
.lens-night-tools { display: flex; gap: 12px 32px; flex-wrap: wrap; margin: 10px 0; }
.lens-night-tools > details { margin: 0; flex: 1 1 280px; font-size: .78rem; }
.lens-night-tools > details[open] { flex-basis: 100%; }
.lens-evidence { border-top: 1px solid var(--border); color: var(--muted); font-size: .8rem; }
.lens-evidence .sleep-indicators { border-top: 0; }
.lens-evidence .sleep-indicator-detail { padding: 4px 0; }
[data-sleep-panel="trends"] { display: grid; gap: 24px; }
[data-sleep-trends] .sleep-trend-chart { height: 270px; margin: 40px 0 50px 65px; gap: 8px; }
[data-sleep-trends] .sleep-trend-column { justify-content: center; }
[data-sleep-trends] .sleep-trend-bar { max-width: 44px; width: 75%; }
[data-sleep-trends] .sleep-trend-bar { background: var(--accent); opacity: .8; }
[data-sleep-trends] .sleep-trend-bar.is-missing { background: transparent; }
.lens-trend-grid { position: absolute; inset-inline: 0; border-top: 1px solid var(--border); pointer-events: none; }
.lens-trend-grid span { position: absolute; right: calc(100% + 10px); transform: translateY(-50%); width: 60px; text-align: right; color: var(--muted); font-size: .65rem; }
.sleep-trend-tick { white-space: nowrap; }
.sleep-trend-controls { flex-wrap: wrap; }
.lens-periods .sleep-table-scroll { max-height: none; }
.sleep-comparison-table td, .sleep-comparison-table th { white-space: normal; padding: 15px 16px; vertical-align: top; }
.sleep-comparison-table td small, .sleep-comparison-table th small { color: var(--muted); font-weight: 400; }
#sleepWorkspace .sleep-comparison-table summary { min-height: 0; padding: 8px 0 0; font-size: .72rem; color: var(--muted); }
.lens-periods > .sleep-meta { margin-block: 16px; }
[data-sleep-panel="patterns"] h2 { font-size: 1.15rem; }
.lens-pattern-intro { max-width: 90ch; color: var(--muted); font-size: .88rem; line-height: 1.8; margin: 12px 0 24px; }
.lens-pattern-intro strong { color: var(--text); font-weight: 500; }
.lens-factor-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 26px; }
.lens-factor-cards button { display: grid; align-content: start; gap: 12px; text-align: left; border: 1px solid var(--border); border-radius: 12px; padding: 22px; background: var(--surface); color: var(--text); cursor: pointer; }
.lens-factor-cards strong { font-size: .85rem; font-weight: 500; color: var(--muted); }
.lens-factor-cards span { font-size: 1.4rem; letter-spacing: -.035em; }
.lens-factor-cards small { font-size: .75rem; color: var(--muted); }
.lens-factor-cards [aria-pressed="true"], .lens-factor-picker [aria-pressed="true"] { border-color: var(--accent); }
.lens-factor-picker { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.lens-factor-picker [aria-pressed="true"] { color: var(--accent); }
.lens-factor-detail { padding: 26px; background: var(--surface); border: 1px solid var(--border); border-radius: 12px; }
.lens-factor-detail h3 { margin: 0 0 8px; font-weight: 550; font-size: 1rem; }
.lens-status { color: var(--accent); font-size: .76rem; white-space: nowrap; padding-top: 5px; }
.lens-comparison-row { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(0, 2fr) 110px; align-items: center; gap: 24px; margin: 26px 0; font-size: .83rem; }
.lens-comparison-row small { display: block; color: var(--muted); margin-top: 8px; font-size: .73rem; }
.lens-comparison-row svg { width: 100%; height: 24px; }
.lens-comparison-row strong { text-align: right; font-weight: 500; font-variant-numeric: tabular-nums; }
.lens-report-tools, .lens-private-counts, .sleep-pattern-availability, .lens-factor-evidence { color: var(--muted); font-size: .78rem; line-height: 1.7; border-top: 1px solid var(--border); }
.lens-report-tools { margin-top: 20px; }
.lens-empty { padding-block: 50px; color: var(--muted); }
.lens-empty h2 { color: var(--text); }
.lens-journal-checkins { margin: 0 0 30px; }
.lens-journal-checkins h2 { font-size: 1rem; margin-bottom: 8px; }
#journalCheckIns { max-height: 410px; overflow: auto; margin-top: 16px; border-block: 1px solid var(--border); }
.lens-journal-checkin { display: grid; grid-template-columns: 140px 1fr auto; align-items: center; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--border); font-size: .83rem; }
.lens-journal-checkin:last-child { border-bottom: 0; }
.lens-journal-checkin time { color: var(--muted); }
.lens-journal-checkin strong, .lens-journal-checkin span { display: block; }
.lens-journal-checkin span { color: var(--muted); margin-top: 6px; font-size: .76rem; }
.lens-journal-notes-title { margin: 0 0 16px; font-size: 1rem; }
.lens-journal-checkin p { color: var(--muted); font-size: .8rem; line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; margin-top: 7px; }
.login-shell { width: min(1120px, 100%); grid-template-columns: 1.4fr 1fr; gap: 100px; }
.login-intro h1 { font-size: clamp(2.75rem, 5vw, 4.6rem); font-weight: 550; line-height: 1.05; letter-spacing: -.055em; margin-block: 22px; }
.login-intro h1 span { color: var(--accent); }
.login-intro > p:not(.eyebrow) { font-size: 1rem; max-width: 45ch; }
.login-privacy { font-size: .76rem; line-height: 1.6; }
.login-privacy svg { flex-shrink: 0; }
.lens-welcome-points { margin-top: 35px; border-top: 1px solid var(--border); padding-top: 10px; }
.lens-welcome-points p { color: var(--muted); font-size: .83rem; line-height: 1.7; margin: 18px 0 0; }
.lens-welcome-points strong { color: var(--text); font-weight: 500; }
.login-card { padding: 32px; }
.login-card h2 { font-size: 1.25rem; letter-spacing: -.025em; }
.login-card > div > p:not(.eyebrow), .login-form label { font-size: .8rem; }
.login-form input { margin-bottom: 16px; }
@media (max-width: 1200px) {
  .header-inner { gap: 20px; flex-wrap: wrap; padding-block: 12px; }
  .header-actions { gap: 5px; }
  .header-actions .sync-status { display: none; }
  .sleep-heading { align-items: start; flex-direction: column; }
  .lens-night-summary { grid-template-columns: 1fr; gap: 18px; }
  .lens-night-assessment { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 20px; }
  .lens-night-assessment .sleep-data-note { flex-basis: 100%; }
}
@media (max-width: 800px) {
  .header-inner, .app-main { width: calc(100% - 40px); }
  .header-inner { gap: 12px; }
  .header-actions { flex: 1; }
  .main-nav { order: 3; flex-basis: 100%; min-height: 48px; }
  .lens-measurements dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .lens-measurements .sleep-section-heading { display: block; }
  .lens-measurements .sleep-section-heading p { margin-top: 8px; }
  .lens-comparison-row { grid-template-columns: minmax(120px, 1fr) minmax(0, 1.5fr) 90px; gap: 12px; }
  .login-shell { grid-template-columns: 1fr; gap: 32px; max-width: 600px; }
}
@media (max-width: 680px) {
  .header-inner, .app-main { width: calc(100% - 32px); }
  .header-inner { gap: 6px; }
  .brand strong { font-size: 1rem; }
  .brand small { display: none; }
  .brand { gap: 4px; }
  .brand-mark { width: 26px; }
  .brand-mark svg { width: 24px; height: 24px; }
  .lens-data-nav { font-size: .7rem; padding-inline: 5px; }
  .header-actions { flex: 0 1 auto; flex-wrap: nowrap; gap: 3px; }
  .header-actions .button-primary { font-size: .7rem; padding-inline: 8px; }
  .header-actions .icon-button { width: 32px; }
  .app-main { padding-top: 22px; }
  .sleep-date-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .sleep-date-controls label { grid-column: 1 / -1; grid-row: 1; }
  .sleep-date-controls [data-sleep-latest] { grid-column: 1 / -1; }
  .sleep-session-row { gap: 10px; }
  .lens-night-summary { padding-top: 20px; }
  .lens-night-summary dl { grid-template-columns: 1fr 1fr; gap: 24px; }
  .lens-night-summary dd { font-size: 1.9rem; }
  .sleep-timeline { padding: 18px 12px 8px; }
  .sleep-timeline .view-kicker { font-size: .65rem; }
  .sleep-timeline h2 { font-size: 1.05rem; }
  .sleep-timeline .sleep-section-heading > .sleep-meta { font-size: .65rem; padding-top: 7px; }
  .sleep-cursor-readout { grid-template-columns: 1fr 1fr; gap: 16px; }
  .lens-measurements dl { grid-template-columns: 1fr 1fr; gap: 20px; }
  .lens-measurements dd { font-size: 1.2rem; }
  .lens-checkin { padding-inline: 16px; }
  .lens-checkin form { grid-template-columns: 1fr; }
  .lens-checkin summary small { line-height: 1.5; }
  .lens-checkin-action { font-size: .73rem; }
  .lens-night-tools { gap: 0; }
  .sleep-section-heading { flex-wrap: wrap; }
  [data-sleep-trends] .sleep-trend-chart { height: 220px; gap: 2px; }
  .sleep-trend-chart[style*="30"] .sleep-trend-column:nth-of-type(2n) .sleep-trend-tick { visibility: visible; }
  .sleep-trend-tick { font-size: .55rem; }
  .sleep-comparison-table { min-width: 540px; }
  .lens-factor-cards { grid-template-columns: 1fr; gap: 10px; }
  .lens-factor-cards button { gap: 8px; padding: 18px; }
  .lens-factor-cards span { font-size: 1.25rem; }
  .lens-factor-detail { padding: 18px; }
  .lens-comparison-row { grid-template-columns: 1fr auto; gap: 12px; }
  .lens-comparison-row svg { grid-row: 2; grid-column: 1 / -1; }
  .lens-comparison-row strong { grid-column: 2; grid-row: 1; }
  .lens-journal-checkin { grid-template-columns: 1fr auto; gap: 10px; }
  .lens-journal-checkin time { grid-column: 1 / -1; }
  .login-card { padding: 24px; }
  .lens-welcome-points { margin-top: 24px; }
}
