/* Household journal: shared product and public-page visual system. */
:root {
  --c-bg:#F5F2E9; --c-surface:#FFFEFA; --c-surface-warm:#E5EBE2; --c-linen:#E5EBE2;
  --c-primary:#F29A72; --c-primary-h:#EE8758; --c-primary-tint:#FBE7DA; --c-primary-rgb:242,154,114;
  --c-sage:#23776C; --c-sage-h:#22594F; --c-sage-tint:#D3E4DA;
  --c-ink:#173E3B; --c-ink-2:#46645E; --c-muted:#46645E; --c-border:#D6DED5;
  --c-border-focus:#23776C; --c-green:#22594F; --c-green-tint:#D3E4DA;
  --font-body:'Instrument Sans',sans-serif; --font-display:'Instrument Serif',serif;
  --r-sm:8px; --r-md:12px; --r-lg:14px; --r-xl:16px;
  --shadow-sm:none; --shadow-md:none; --shadow-lg:0 12px 32px #173e3b18;
}
body.is-authenticated{padding-right:0} body{font-family:var(--font-body)}
a{color:var(--c-sage-h);text-underline-offset:4px} ::selection{background:var(--c-primary-tint);color:var(--c-ink)}
:focus-visible{outline:3px solid var(--c-sage);outline-offset:4px} input,textarea{caret-color:var(--c-sage)}
body.is-authenticated .site-header,.site-header{display:block;background:var(--c-ink);border:0;box-shadow:none}
.header-inner{max-width:1240px;min-height:64px;padding:10px 32px}
.logo{font-family:var(--font-body);font-size:20px;font-weight:600;color:var(--c-bg)} .logo:hover{color:var(--c-primary)}
.nav-desktop .nav-link{color:var(--c-bg);font-weight:400}.nav-desktop .nav-link:hover{background:#ffffff12;color:var(--c-bg)}
.nav-desktop [aria-current=page]{text-decoration:underline;text-decoration-color:var(--c-primary);text-underline-offset:9px}
.nav-toggle{display:flex!important}.nav-toggle span{background:var(--c-bg)}.nav-toggle:hover{background:#ffffff15}
.nav-drawer .logo{color:var(--c-ink)}.nav-drawer-panel{background:var(--c-bg)}
.container{max-width:1164px;padding-left:32px;padding-right:32px}.main-content{padding-top:28px;padding-bottom:40px}
.page-title{font-family:var(--font-display);font-weight:400;font-size:42px;letter-spacing:-.02em;line-height:1.1}
.page-header,.dashboard-header{margin-bottom:20px;gap:16px}.journal-date{color:var(--c-muted);margin-top:4px}
.dashboard-context{margin-top:8px;gap:16px}.dashboard-context-pill{padding:0;background:none;border:0;font-size:13px;color:var(--c-muted)}
.dashboard-context-pill--primary{background:none;color:var(--c-ink)}
.card{background:var(--c-surface);border:0;box-shadow:none;padding:20px 24px;border-radius:var(--r-md)}
.card-title{font-family:var(--font-body);font-size:17px;font-weight:600;letter-spacing:0;text-transform:none}
.stat-row strong{font-family:var(--font-body);font-weight:500;font-variant-numeric:tabular-nums}
.btn{font-family:var(--font-body);font-weight:600;border-radius:8px;min-height:44px;box-shadow:none}
.btn:hover{transform:none}.btn-primary,.btn-primary:hover{color:var(--c-ink);box-shadow:none}
.btn-secondary{background:var(--c-surface);color:var(--c-ink);border:1px solid var(--c-border)}
.btn-sm{min-height:36px}.btn-danger{background:#A63131;color:white}.btn-ghost{color:var(--c-ink)}
.card-highlight{background:var(--c-ink)}.card-highlight .card-title,.card-highlight .stat-row strong{color:var(--c-bg)}
.form-input,input,select,textarea{font-family:var(--font-body)}.form-input:focus{box-shadow:none;border-color:var(--c-sage)}
.shift-card{background:var(--c-linen);border:0;box-shadow:none;margin-top:0!important;border-radius:14px}
.shift-card-main{padding:24px 28px;gap:24px}.shift-headline{font-family:var(--font-body);font-size:22px;font-weight:400;line-height:1.35;letter-spacing:-.01em}
.shift-status{font-size:12px;text-transform:none;letter-spacing:0;font-weight:500;min-height:24px}
.shift-action-panel{border:0;background:none;padding:0}.shift-total-label{font-size:12px;letter-spacing:0;text-transform:none;font-weight:400}
.shift-total strong,.shift-total .js-shift-elapsed{font-family:var(--font-body);font-size:32px;font-weight:400;font-variant-numeric:tabular-nums;white-space:normal;line-height:1.25}
.shift-button{min-height:48px;font-weight:600}.shift-total{gap:8px}
.journal-review{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,6fr);gap:48px;margin-top:28px}
.journal-summary .card{padding:0;background:none;border-radius:0}.journal-summary .card+.card{margin-top:16px;border-top:1px solid var(--c-border);padding-top:16px}
.journal-summary .stat-row{padding:8px 0}.journal-summary .card-title{margin-bottom:4px}
.journal-recent{min-width:0}.dashboard-recent-item{border:0;border-bottom:1px solid var(--c-border);border-radius:0;background:none;padding:12px 0}
.journal-entry-date{display:flex;justify-content:space-between;font-weight:500;margin-bottom:4px}.journal-entry-date a{font-size:13px;font-weight:400}
.dashboard-recent-times{font-variant-numeric:tabular-nums}.quick-add-card{margin-top:24px!important;background:var(--c-linen)}
.table th{background:none;text-transform:none;letter-spacing:0;font-weight:500;color:var(--c-muted);font-size:13px}
.table td{font-variant-numeric:tabular-nums}.table tbody tr:hover td{background:var(--c-bg)}
.table td[data-label=Hours],.table td[data-label=Pay],.table td[data-label=Earned],.table td[data-label=Amount]{text-align:right}
.mobile-entry-card{box-shadow:none;border:0;background:var(--c-surface);border-radius:12px}
.auth-header h1,.auth-header .page-title{font-family:var(--font-display);font-weight:400}.auth-card{max-width:540px;padding:28px 32px}
.site-footer{background:none;border-top:1px solid var(--c-border);color:var(--c-muted)}
.journal-bottom-nav{display:none}.skip-link{position:fixed;left:16px;top:-100px;z-index:999;background:var(--c-surface);padding:12px}.skip-link:focus{top:12px}
.landing-hero{display:grid;grid-template-columns:1fr 1fr;min-height:540px;background:var(--c-bg);max-width:1440px;margin:auto;overflow:hidden}
.landing-hero-image{position:static;grid-column:2;grid-row:1;width:100%;height:100%;object-fit:cover;opacity:1}
.landing-hero-shade{display:none}.landing-hero-content{position:static;grid-column:1;grid-row:1;padding:56px 48px;align-self:center;max-width:none;color:var(--c-ink)}
.landing-hero h1{font-family:var(--font-display);font-size:clamp(48px,5vw,76px);font-weight:400;letter-spacing:-.025em;color:var(--c-ink);line-height:1.03;white-space:pre-line}
.landing-lede{color:var(--c-ink-2);font-size:17px;line-height:1.7;max-width:40ch}.landing-container{max-width:1164px;padding-left:32px;padding-right:32px}
.landing-band,.landing-workflow,.landing-cta{padding:56px 0;background:none}.landing-band{border-bottom:1px solid var(--c-border)}
.landing-section-head h2,.landing-workflow h2,.landing-cta h2{font-family:var(--font-display);font-weight:400;font-size:44px;line-height:1.12;letter-spacing:-.02em;color:var(--c-ink)}
.landing-section-head{max-width:650px;margin-bottom:28px}.landing-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 64px}
.landing-feature{padding:0;background:none;border:0;border-radius:0;box-shadow:none;min-height:0}.landing-feature h3{font-family:var(--font-body);font-size:18px;font-weight:600}
.landing-feature p{max-width:48ch}.landing-workflow-grid{gap:64px}.landing-step{background:none;border-radius:0;border:0;border-bottom:1px solid var(--c-border);padding:16px 0}
.landing-step strong{background:var(--c-linen);color:var(--c-ink);font-weight:500}.landing-cta{background:var(--c-linen)}
@media(min-width:1440px){body.is-authenticated .main-content,body.is-authenticated .site-footer{margin-right:auto;margin-left:auto;width:100%}}
@media(max-width:767px){.header-inner{min-height:56px;padding:8px 20px}.container{padding-left:20px;padding-right:20px}.main-content{padding-top:20px;padding-bottom:28px}.page-title{font-size:34px}.page-header{align-items:center;flex-wrap:wrap}.journal-review{grid-template-columns:1fr;gap:20px;margin-top:20px}.journal-summary .card+.card{display:block}.shift-card-main{padding:20px;gap:16px}.shift-action-panel{grid-template-columns:1fr 1fr;align-items:center}.shift-total{text-align:left;justify-items:start}.shift-total strong{font-size:28px}.journal-bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:190;justify-content:space-around;background:var(--c-ink);padding:12px 8px calc(12px + env(safe-area-inset-bottom))}.journal-bottom-nav a{color:var(--c-bg);font-size:13px;padding:8px}.journal-bottom-nav [aria-current=page]{text-decoration:underline;text-decoration-color:var(--c-primary);text-underline-offset:6px}body.is-authenticated{padding-bottom:76px}.landing-hero{grid-template-columns:1fr;min-height:0}.landing-hero-content{grid-column:1;grid-row:1;padding:36px 24px}.landing-hero-image{grid-column:1;grid-row:2;height:320px}.landing-hero h1{font-size:52px}.landing-band,.landing-workflow,.landing-cta{padding:40px 0}.landing-container{padding:0 24px}.landing-feature-grid{grid-template-columns:1fr}.landing-section-head h2,.landing-workflow h2,.landing-cta h2{font-size:36px}.auth-card{padding:20px}.table td[data-label=Hours],.table td[data-label=Pay],.table td[data-label=Earned],.table td[data-label=Amount]{text-align:left}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* Keep identity contextual, leaving the current shift as the first work area. */
.dashboard-header>div{width:100%;text-align:left}.dashboard-header .page-title{text-align:left}
.dashboard-context{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;padding:0;border:0;background:none;border-radius:0;box-shadow:none}
.dashboard-context-pill--primary strong{font-size:14px;font-weight:500}.dashboard-context-label{font-size:12px;text-transform:none;letter-spacing:0}.dashboard-context-pill strong{font-weight:500}
.quick-add-summary .card-title,.quick-add-summary::after{color:var(--c-ink)}
.landing-hero{padding-top:0}.landing-hero-content{margin:0;width:auto}.landing-hero h1{max-width:13ch}
@media(min-width:768px){body:not(.is-authenticated) .nav-toggle{display:none!important}}
body.is-authenticated .nav-drawer{display:block!important}
.dashboard-context{flex-direction:row;gap:20px;justify-content:flex-start}
.action-link,.action-link:hover,.pagination-link:hover,.household-menu-option.is-current,.household-menu-option:hover,.nav-drawer .nav-link:hover,.period-title a:hover,.card-highlight .btn-white,.shift-status-ready{color:var(--c-sage-h)}
.action-link.danger,.action-link.danger:hover{color:#A63131}
a:hover{color:var(--c-sage-h)}.site-header .logo:hover{color:var(--c-primary)}
@media(max-width:767px){.shift-total .js-shift-elapsed{font-size:24px}.shift-action-panel{grid-template-columns:minmax(0,1fr) auto}.shift-button{min-width:120px}}
.period-actions .btn,.period-actions .btn:hover{color:var(--c-sage-h)}
.period-actions .btn-danger,.period-actions .btn-danger:hover{color:#A63131}
/* Denser vertical rhythm for records: tighter rows, table cells and card headers. */
.table th{padding-top:8px;padding-bottom:8px}.table td{padding-top:10px;padding-bottom:10px}
.table-meta{padding-bottom:4px}.card-header-row{margin-bottom:12px}.stat-row{padding:8px 0}
.form-group{margin-bottom:16px}.entries-filter-card{margin-bottom:16px}.card+.card.mt-4,.mt-4{margin-top:12px}
.site-footer{padding:16px 0}.footer-links{margin-top:8px}
@media(max-width:640px){.table td{padding-top:8px;padding-bottom:8px}.table tr{margin-bottom:10px}}
.landing-steps{gap:0}

/* Dashboard: separate the summary and recent-entries sections into distinct cards. */
.journal-review .journal-summary{display:flex;flex-direction:column;gap:16px}
.journal-review .journal-summary .card,.journal-review .journal-summary .card+.card,.journal-review .journal-recent{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:20px 24px;margin-top:0}
.journal-review .journal-summary .card-title,.journal-review .journal-recent>.card-header-row .card-title{font-size:20px;font-weight:700;color:var(--c-ink)}
.journal-review .journal-summary .card-title{margin-bottom:2px}
.journal-review .journal-summary .card-sub{margin-bottom:8px}
.journal-review .journal-recent>.card-header-row{padding-bottom:12px;margin-bottom:4px;border-bottom:2px solid var(--c-sage-tint)}
.journal-review .journal-summary .card:first-child{border-top:3px solid var(--c-primary)}
.journal-review .journal-summary .card+.card{border-top:3px solid var(--c-sage)}
.journal-review .journal-recent{border-top:3px solid var(--c-ink)}
.journal-review .dashboard-recent-item:last-child{border-bottom:0;padding-bottom:0}
@media(max-width:767px){.journal-review .journal-summary .card,.journal-review .journal-recent{padding:16px 18px}}
/* Hero shows the product itself: a framed Today screen on a linen panel. */
.landing-hero .landing-hero-visual{grid-column:2;grid-row:1;display:grid;place-items:center;background:var(--c-linen);padding:48px}
.landing-hero .landing-hero-image{width:100%;max-width:560px;height:auto;object-fit:initial;border-radius:16px;border:1px solid var(--c-border);box-shadow:var(--shadow-lg)}
.landing-note{margin:20px 0 0;font-size:14px;color:var(--c-muted)}
@media(max-width:767px){.landing-hero .landing-hero-visual{grid-column:1;grid-row:2;padding:24px 20px}.landing-hero .landing-hero-image{height:auto}}
/* Plain content section: heading left, short lines right, thin rules between. */
.landing-plain{padding:40px 0 56px}
.landing-block{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:32px;padding:32px 0}
.landing-block+.landing-block{border-top:1px solid var(--c-border)}
.landing-plain h2{font-family:var(--font-display);font-weight:400;font-size:40px;line-height:1.1;letter-spacing:-.015em;color:var(--c-ink);margin:0;scroll-margin-top:80px}
.landing-list{list-style:none;margin:0;padding:0}
.landing-list li{display:flex;align-items:center;gap:16px;font-size:22px;line-height:1.3;color:var(--c-ink);padding:14px 0;border-bottom:1px solid var(--c-border)}
.landing-list li:first-child{padding-top:0}
.landing-list li:last-child{border-bottom:0;padding-bottom:0}
.landing-list li::before{content:"";flex:0 0 8px;height:8px;border-radius:50%;background:var(--c-primary)}
@media(max-width:767px){.landing-plain{padding:24px 0 32px}.landing-block{grid-template-columns:1fr;gap:16px;padding:24px 0}.landing-plain h2{font-size:32px}.landing-list li{font-size:19px;padding:12px 0}}
