:root {
 color-scheme: light dark;
 --nut-bg: #faf4e8; --nut-card: #fffdf7; --nut-ink: #402b20; --nut-muted: #705747;
 --nut-line: #947b60; --nut-gold: #78530a; --nut-soft: #f2e3c1; --nut-focus: #805900;
 --nut-danger: #9a283b; --nut-danger-ink: #ffffff;
 --nut-pine: #24573d; --nut-pine-bg: #e5efe5;
 --acorn-accent: #24573d; --acorn-accent-ink: #ffffff;
 --acorn-festive: #962d42;
 font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
 background: var(--nut-bg); color: var(--nut-ink); line-height: 1.5;
}
@media (prefers-color-scheme: dark) { :root {
 --nut-bg: #1c130f; --nut-card: #2c1f18; --nut-ink: #fff0db; --nut-muted: #d3bda6;
 --nut-line: #957b63; --nut-gold: #f0c66e; --nut-soft: #49361d; --nut-focus: #ffd37a;
 --nut-danger: #b7475e; --nut-danger-ink: #ffffff;
 --nut-pine: #b4dfbd; --nut-pine-bg: #203b2c;
 --acorn-accent: #b4cfb3; --acorn-accent-ink: #1c130f;
 --acorn-festive: #d88b9a;
} }
* { box-sizing: border-box; }
body { margin: 0; }
main, .topbar { max-width: 34rem; margin: 0 auto; padding: 1rem; }
main { display: grid; gap: 1rem; padding-bottom: 3rem; }
main, section, form, details { min-width: 0; }
.topbar { border-bottom: 2px solid var(--acorn-festive); }
.brand { display: flex; align-items: center; gap: .6rem; font-weight: 700; text-decoration: none; color: var(--nut-ink); min-height: 44px; }
a { color: var(--acorn-festive); text-underline-offset: .2em; }
.back { display: flex; align-items: center; min-height: 44px; }
.card { background: var(--nut-card); border: 1px solid var(--nut-line); border-radius: 1rem; padding: 1.25rem; overflow-wrap: anywhere; }
h1 { font-size: 1.65rem; line-height: 1.2; margin: 0 0 1rem; }
h2 { font-size: 1.2rem; margin: 0 0 1rem; }
p { margin: .75rem 0; }
.login-card { margin-top: 8vh; }
.login-card > img { display: block; margin: 0 auto 1rem; }
label { display: block; font-weight: 600; }
input, select, button, .button { font: inherit; font-size: 16px; min-height: 44px; width: 100%; max-width: 100%; border-radius: .6rem; padding: .75rem; }
input, select { margin: .4rem 0 1rem; background: var(--nut-bg); color: var(--nut-ink); border: 1px solid var(--nut-line); min-width: 0; }
button, .button { display: block; border: 2px solid var(--acorn-accent); background: var(--acorn-accent); color: var(--acorn-accent-ink); font-weight: 650; cursor: pointer; text-decoration: none; text-align: center; margin: .75rem 0 0; }
.secondary { background: transparent; color: var(--acorn-accent); }
.danger { background: var(--nut-danger); border-color: var(--nut-danger); color: var(--nut-danger-ink); }
:focus-visible { outline: 3px solid var(--nut-focus); outline-offset: 3px; }
.check { display: flex; align-items: center; gap: .75rem; min-height: 44px; margin-bottom: .5rem; cursor: pointer; }
.check input { flex: 0 0 24px; width: 24px; min-height: 24px; height: 24px; margin: 0; accent-color: var(--acorn-accent); }
.chip { display: inline-block; padding: .2rem .65rem; border: 1px solid var(--acorn-festive); border-radius: 2rem; font-size: .875rem; font-weight: 650; color: var(--nut-gold); background: var(--nut-soft); }
.chip.drawn { color: var(--nut-pine); background: var(--nut-pine-bg); }
.chip.closed { color: var(--nut-muted); background: var(--nut-bg); }
.exchange-card { display: flex; justify-content: space-between; align-items: center; gap: .75rem; padding: 1rem; border: 1px solid var(--nut-line); border-radius: .65rem; margin-top: .75rem; color: var(--nut-ink); text-decoration: none; }
.exchange-card > span:first-child { min-width: 0; }
.chip { flex-shrink: 0; }
[role="alert"] { border: 2px solid var(--nut-danger); border-left-width: 6px; padding: 1rem; border-radius: .6rem; color: var(--nut-ink); background: var(--nut-bg); }
.drawn-notice { border: 1px solid var(--nut-pine); border-radius: .6rem; padding: .75rem; color: var(--nut-pine); background: var(--nut-pine-bg); margin: 1rem 0; }
.exclusion-row { display: flex; align-items: center; gap: .5rem; padding: .75rem 0; border-bottom: 1px solid var(--nut-line); }
.exclusion-row > span { flex: 1; min-width: 0; }
.exclusion-row small { display: block; color: var(--nut-muted); }
.exclusion-row form { flex: 0 0 auto; }
.compact { width: auto; padding: .5rem .65rem; margin: 0; }
.person-row { padding: .75rem 0; border-top: 1px solid var(--nut-line); }
summary { min-height: 44px; padding: .65rem 0; cursor: pointer; color: var(--acorn-accent); font-weight: 600; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (min-width: 40rem) { main { padding-top: 1.5rem; } .card { padding: 1.5rem; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

/* The neutral Nuthouse shell; seasonal tokens and rules remain independent. */
body:not(.acorn-santa) {
 --home-bg:#faf7f2; --home-card:#ffffff; --home-ink:#402b20; --home-muted:#705747;
 --home-accent:#92500d; --home-on-accent:#ffffff; --home-line:#947b60; --home-danger:#9a283b;
 --nut-bg:var(--home-bg); --nut-card:var(--home-card); --nut-ink:var(--home-ink); --nut-muted:var(--home-muted);
 --nut-line:var(--home-line); --nut-focus:var(--home-accent); --nut-danger:var(--home-danger);
 --acorn-accent:var(--home-accent); --acorn-accent-ink:var(--home-on-accent); --acorn-festive:var(--home-accent);
 min-height:100vh; background:var(--home-bg); color:var(--home-ink);
 font-family:ui-rounded,"SF Pro Rounded",system-ui,sans-serif;
}
body:not(.acorn-santa) .topbar {border:0; padding-top:1.5rem;}
body:not(.acorn-santa) .card, .acorn-tile {border:0; border-radius:1.25rem; background:var(--home-card); box-shadow:0 5px 24px #402b2010;}
body:not(.acorn-santa) .login-card {text-align:center;}
body:not(.acorn-santa) .login-card form {text-align:left;}
.home-greeting {padding:.5rem 0;}
.home-greeting p {color:var(--home-muted); margin:0 0 .35rem;}
.home-greeting h1 {font-size:2rem;}
.acorn-grid {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem;}
.acorn-tile {display:flex; flex-direction:column; align-items:flex-start; padding:1.25rem 1rem; color:var(--home-ink); text-decoration:none; overflow-wrap:anywhere; min-height:13rem;}
.acorn-tile h2 {margin:.75rem 0 .25rem;}
.acorn-tile p {margin:0; color:var(--home-muted);}
.santa-tile {box-shadow:inset 0 4px #8b2035,0 5px 24px #402b2010;}
.avatar {display:inline-flex; flex:0 0 auto; align-items:center; justify-content:center; width:2.5rem; height:2.5rem; border-radius:50%; font-size:.875rem; font-weight:700; color:#402b20;}
.avatar-0 {background:#f7d5a5;} .avatar-1 {background:#bfe4d4;} .avatar-2 {background:#cddcf7;} .avatar-3 {background:#edcce3;}
.avatar-4 {background:#e2dbb5;} .avatar-5 {background:#d7cff0;} .avatar-6 {background:#f6cfc3;} .avatar-7 {background:#c6e3e7;}
.avatar-more {background:var(--home-bg); color:var(--home-ink); width:auto; min-width:2.5rem; padding:0 .35rem;}
.avatar-stack {display:flex; flex-wrap:wrap; gap:.25rem; margin-top:auto; padding-top:1rem;}
.person-heading {display:flex; align-items:center; gap:.75rem; overflow-wrap:anywhere; min-height:44px; padding-right:4.5rem;}
body:not(.acorn-santa) .person-row {position:relative;}
.person-row > details > summary {position:absolute; top:1rem; right:0; min-width:44px; text-align:right;}
body:not(.acorn-santa) .person-row {border:0; padding:1rem 0;}
.quiet {background:transparent; border-color:transparent; color:var(--home-muted); font-weight:500;}
.acorn-santa .topbar-row {display:flex; align-items:center; justify-content:space-between; gap:.75rem; max-width:32rem; margin:auto;}
.acorn-santa .home-link {display:flex; align-items:center; justify-content:flex-end; min-height:44px; min-width:44px; flex-shrink:0; font-size:.875rem; color:var(--santa-cream);}
@media (min-width:60rem) {.home-main {max-width:60rem;} .acorn-grid {grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));}}
@media (prefers-color-scheme:dark) {
 body:not(.acorn-santa) {--home-bg:#211a16; --home-card:#302620; --home-ink:#fff0db; --home-muted:#d3bda6; --home-accent:#f0bd7b; --home-on-accent:#302620; --home-line:#b19a83; --home-danger:#ffa6b4; --nut-danger-ink:#302620;}
}

/* Seasonal rules belong only to the Secret Santa Acorn. */
.acorn-santa {
 --santa-bg:#f7f3e7; --santa-card:#fffdf7; --santa-ink:#243c32; --santa-muted:#526359; --santa-line:#718176;
 --santa-red:#8b2035; --santa-cream:#fff4df; --santa-pine:#20543c; --santa-on-pine:#ffffff;
 --santa-gold:#806016; --santa-soft:#f3e6c7; --santa-danger:#99243c; --santa-danger-fill:#99243c; --santa-danger-border:#99243c; --santa-green-soft:#e5efe5; --santa-link:#8b2035;
 --nut-bg:var(--santa-bg); --nut-card:var(--santa-card); --nut-ink:var(--santa-ink); --nut-muted:var(--santa-muted); --nut-line:var(--santa-line);
 --nut-gold:var(--santa-gold); --nut-soft:var(--santa-soft); --nut-focus:var(--santa-gold); --nut-danger:var(--santa-danger);
 --nut-pine:var(--santa-pine); --nut-pine-bg:var(--santa-green-soft); --acorn-accent:var(--santa-pine); --acorn-accent-ink:var(--santa-on-pine); --acorn-festive:var(--santa-link);
 min-height:100vh; color:var(--santa-ink); background:var(--santa-bg);
 position:relative; isolation:isolate;
}
/* Keep both fixed snow layers below every piece of page content. */
.acorn-santa::before, .acorn-santa::after {
 content:""; position:fixed; inset:-192px 0 0; z-index:0; pointer-events:none;
 background:url(/static/snow.svg) repeat; background-size:192px 192px;
 animation:santa-snow-fall 48s linear infinite;
}
.acorn-santa::after {
 inset:-144px 0 0; background-size:144px 144px; background-position:48px 0;
 animation-name:santa-snow-fall-near; animation-duration:32s;
}
.acorn-santa > * {position:relative; z-index:1;}
@keyframes santa-snow-fall {from {transform:translateY(0);} to {transform:translateY(192px);}}
@keyframes santa-snow-fall-near {from {transform:translateY(0);} to {transform:translateY(144px);}}
@media (prefers-reduced-motion:reduce) {
 .acorn-santa::before, .acorn-santa::after {animation:none; transform:none;}
}
.acorn-santa .topbar {max-width:none; position:relative; background:var(--santa-red); border:0; padding-bottom:1.35rem;}
.acorn-santa .topbar::after {content:""; position:absolute; inset:auto 0 0; height:.35rem; background:repeating-linear-gradient(135deg,#8b2035 0 12px,#d6b661 12px 24px,#20543c 24px 36px);}
.acorn-santa .brand {min-width:0; color:var(--santa-cream);}
.acorn-santa .topbar :focus-visible {outline-color:var(--santa-cream);}
.acorn-santa h1 {font-family:Georgia,"Times New Roman",serif;}
.acorn-santa main > .card:first-of-type {position:relative;}
.acorn-santa main > .card:first-of-type::before {content:""; position:absolute; top:.5rem; right:.5rem; width:2.5rem; height:2rem; background:url(/static/holly.svg) center / contain no-repeat; pointer-events:none;}
.acorn-santa main > .card:first-of-type h1 {padding-right:2rem;}
.acorn-santa button, .acorn-santa .button {box-shadow:inset 0 2px #d6b661;}
.acorn-santa .secondary, .acorn-santa .danger {box-shadow:none;}
.acorn-santa .danger {background:var(--santa-danger-fill); color:var(--santa-cream); border:2px solid var(--santa-danger-border);}
.acorn-santa .chip.drawn {border-color:var(--santa-pine);}
.acorn-santa .chip.drawn::before {content:"\2605"; margin-right:.3em;}
.acorn-santa .drawn-notice {position:relative; border:2px solid var(--santa-gold); border-radius:.2rem .9rem .9rem .2rem; background:var(--santa-soft); color:var(--santa-ink); padding-right:2rem;}
.acorn-santa .drawn-notice::after {content:""; position:absolute; right:.6rem; top:.6rem; width:.65rem; height:.65rem; border:2px solid var(--santa-gold); border-radius:50%; box-shadow:0 .8rem 0 -.15rem var(--santa-gold);}
@media (prefers-color-scheme:dark) {
 .acorn-santa {--santa-bg:#091d1b; --santa-card:#142e28; --santa-ink:#fff4df; --santa-muted:#c0cfc5; --santa-line:#8da497; --santa-pine:#b8dfc3; --santa-on-pine:#10281e; --santa-gold:#edce83; --santa-soft:#3c341e; --santa-danger:#ffa6b4; --santa-danger-border:var(--santa-cream); --santa-green-soft:#193c2b; --santa-link:#ffb4c0;}
}
/* Personal homes keep Christmas contained within each exchange card. */
body:not(.acorn-santa) .santa-section {min-height:0; background:var(--santa-card); color:var(--santa-ink); border-top:5px solid var(--santa-red); overflow:hidden;}
.santa-section::before, .santa-section::after {display:none;}
.santa-section h2, .santa-section h3 {font-family:Georgia,"Times New Roman",serif;}
.santa-section a {color:var(--santa-link);}
.santa-section input, .santa-section textarea, .santa-section select {background:var(--santa-card); color:var(--santa-ink); border-color:var(--santa-line);}
.allergy-notice {padding:1rem; border:2px solid var(--santa-gold, var(--nut-gold)); border-radius:.75rem; background:var(--santa-soft, var(--nut-soft));}
.preserve-lines {white-space:pre-wrap; overflow-wrap:anywhere;}
.profile-section {margin:.75rem 0; padding:0 .75rem; border:1px solid var(--nut-line); border-radius:.6rem;}
.profile-section summary {color:var(--nut-ink);}
.profile-section summary h3 {display:inline; font-size:1rem; margin:0;}
.profile-count {display:block; color:var(--nut-muted); font-size:.875rem; font-weight:400;}
.profile-section[open] summary {margin-bottom:.5rem;}
.link-edit {margin:.75rem 0;}
.link-actions {display:flex; flex-wrap:wrap; gap:.5rem;}
dt {font-weight:700; margin-top:1rem;}
dd {margin:.25rem 0 1rem;}
.person-heading {flex-wrap:wrap;}
.person-heading small {flex-basis:100%;}
textarea {font:inherit; font-size:16px; width:100%; max-width:100%; min-height:7rem; padding:.75rem; margin:.4rem 0 1rem; border:1px solid var(--nut-line); border-radius:.6rem; background:var(--nut-bg); color:var(--nut-ink); resize:vertical;}

.family-list { list-style: none; padding: 0; }
.family-list li { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .5rem 0; }
.family-list a { display: inline-flex; align-items: center; min-height: 44px; }
.family-list li > span:last-child { flex-basis: 100%; }
.family-profile a { display: inline-flex; align-items: center; min-height: 44px; }

.person-status {display:flex; flex-wrap:wrap; gap:.25rem 1rem; color:var(--home-muted);}
.share-actions {display:flex; flex-wrap:wrap; gap:.75rem;}
.share-actions[hidden] {display:none;}
.share-actions button {flex:1; min-width:44px; min-height:44px;}
.qa-section {margin-top:1.5rem; padding-top:1rem; border-top:1px solid var(--santa-line);}
.ready-questions {list-style:none; padding:0;}
.ready-questions a {display:flex; align-items:center; min-height:44px; padding:.5rem 0;}
.qa-turn h4 {margin:.5rem 0; font-size:1rem;}
.qa-turn {margin:1rem 0; padding:.75rem; border:1px solid var(--santa-line); border-radius:.6rem; overflow-wrap:anywhere;}

/* Family directory and birthdays */
.card-head {display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.5rem .75rem; margin-bottom:.5rem;}
.card-head h2 {margin:0;}
.quiet-link {display:inline-flex; align-items:center; min-height:44px; min-width:44px; color:var(--nut-muted); font-size:.9375rem; font-weight:500; text-decoration:underline; text-underline-offset:.2em;}
.card:has(> h2 + .birthday-list) {display:grid; grid-template-columns:1fr auto; align-items:center; column-gap:.75rem;}
.card:has(> h2 + .birthday-list) > h2 {grid-column:1; grid-row:1; margin:0;}
.card:has(> h2 + .birthday-list) > a {grid-column:2; grid-row:1; display:inline-flex; align-items:center; width:auto; min-height:44px; min-width:44px; margin:0; padding:0; border:0; background:transparent; box-shadow:none; color:var(--nut-muted); font-size:.9375rem; font-weight:500; text-decoration:underline; text-underline-offset:.2em;}
.card:has(> h2 + .birthday-list) > .birthday-list {grid-column:1 / -1; grid-row:2;}
.family-list {margin:0;}
.family-list li.family-row {display:flex; flex-wrap:nowrap; align-items:center; gap:.75rem; padding:.5rem 0; border-top:1px solid var(--nut-line);}
.family-list li.family-row:first-child {border-top:0; padding-top:0;}
.family-list li.family-row:last-child {padding-bottom:0;}
.family-row-body {flex:1; min-width:0;}
.family-row-top {display:flex; align-items:center; justify-content:space-between; gap:.75rem; min-width:0;}
.family-row-top a {flex:1; min-width:44px; min-height:44px; display:inline-flex; align-items:center; font-weight:600; overflow-wrap:anywhere;}
.family-date {flex:0 0 auto; white-space:nowrap; color:var(--nut-ink); font-size:.9375rem; font-weight:500;}
.family-meta {display:block; margin-top:-.35rem; padding-bottom:.2rem; color:var(--nut-muted); font-size:.875rem; line-height:1.3;}
.family-list li.family-empty {padding:.25rem 0; color:var(--nut-muted);}

.tile-banner{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:12px;margin-bottom:.75rem}
.exchange-picture{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius, 12px);margin-bottom:1rem}.exchange-thumbnail{width:80px;max-width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:8px;flex-shrink:0}
.muted {color:var(--nut-muted); font-size:.9375rem;}

@media (display-mode: standalone) { .install-card { display: none; } }
#push-toggle[hidden] { display: none; }

/* events */
.events-cancelled {text-decoration:line-through;}
.events-text {white-space:pre-wrap;overflow-wrap:anywhere;}
.events-grid {display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.2rem;margin-bottom:1rem;text-align:center;}
.events-grid > div {min-height:2.8rem;border:1px solid var(--nut-line);border-radius:.3rem;padding:.3rem;}
.events-grid b {font-size:.8rem;}

/* photos */
.photos-grid {display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.75rem;}
.photos-grid img {display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;}
.photos-full {display:block;max-width:100%;height:auto;margin:auto;}
.photos-nav {display:flex;flex-wrap:wrap;gap:1rem;}
.photos-caption {white-space:pre-wrap;overflow-wrap:anywhere;}

/* ideas */
.ideas-entry {border-top:1px solid var(--nut-line); margin-top:1rem; padding-top:1rem; overflow-wrap:anywhere;}
.ideas-entry form {display:flex; flex-wrap:wrap; gap:.5rem; align-items:center;}
.ideas-actions {display:flex; flex-wrap:wrap; gap:.5rem; align-items:center;}

/* board */
.board-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; }
.board-item { background: var(--nut-card); border: 1px solid var(--nut-line); border-radius: 1rem; padding: 1.25rem; overflow-wrap: anywhere; }
body:not(.acorn-santa) .board-item { border: 0; border-radius: 1.25rem; box-shadow: 0 5px 24px #402b2010; }
.board-item-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .75rem; }
.board-item-head h3 { margin: 0 0 .25rem; font-size: 1.15rem; }
.board-meta { display: flex; align-items: center; gap: .5rem; font-size: .875rem; color: var(--nut-muted); flex-wrap: wrap; }
.board-actions { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-top: .75rem; }
.board-actions form { margin: 0; }
.board-actions button, .board-actions .button { margin: 0; }
.item-row { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .75rem 0; border-top: 1px solid var(--nut-line); }
.item-row:first-child { border-top: 0; }
.item-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .25rem; }
.item-done { text-decoration: line-through; color: var(--nut-muted); }
.item-actions { display: flex; align-items: center; gap: .5rem; flex-shrink: 0; }
.item-actions form { margin: 0; }
.item-actions button { margin: 0; }
.notice-pinned { border-left: 4px solid var(--acorn-accent); }
.toggle-btn { background: transparent; border: 0; padding: 0; margin: 0; color: inherit; cursor: pointer; text-align: left; display: flex; align-items: center; gap: .75rem; width: 100%; min-height: 44px; }
.toggle-btn input { flex: 0 0 24px; width: 24px; min-height: 24px; height: 24px; margin: 0; accent-color: var(--acorn-accent); }


/* dashboard home */
.home-label {display:block; margin:0 0 .25rem; font-size:.8125rem; font-weight:600; letter-spacing:.02em; color:var(--home-muted);}
a.card {display:block; color:var(--home-ink); text-decoration:none;}
body:not(.acorn-santa) .home-notice {border-left:4px solid var(--home-danger);}
.home-notice-text {display:block; overflow-wrap:anywhere;}
body:not(.acorn-santa) .home-santa {display:flex; flex-direction:column; gap:.15rem; background:#2f5d46; color:#fff;}
.home-santa .home-label, .home-santa span {color:#d7e9dd;}
.home-santa strong {font-size:1.125rem;}
.home-list {list-style:none; margin:0; padding:0;}
.home-list li + li {border-top:1px solid #e6dcc8;}
.home-list a {display:flex; flex-direction:column; padding:.6rem 0; color:var(--home-ink); text-decoration:none; overflow-wrap:anywhere;}
.home-list small {color:var(--home-muted);}
.home-tiles {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.6rem; margin:0 0 1rem;}
.home-tile {display:flex; flex-direction:column; align-items:center; gap:.35rem; padding:.85rem .25rem; border-radius:1rem; background:var(--home-card); box-shadow:0 5px 24px #402b2010; color:var(--home-ink); text-decoration:none; font-size:.875rem; text-align:center; overflow-wrap:anywhere;}
.tile-icon {width:1.75rem; height:1.75rem; fill:none; stroke:#2f5d46; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
a.card:focus-visible, .home-tile:focus-visible, .home-list a:focus-visible {outline:3px solid var(--home-accent); outline-offset:2px;}

/* reminders */
.reminders-list {list-style:none;padding:0;overflow-wrap:anywhere;}
.reminders-list li {padding:.75rem 0;border-bottom:1px solid var(--nut-line);}
.reminders-details {white-space:pre-wrap;overflow-wrap:anywhere;}
.reminders-choice {display:flex;align-items:center;gap:.5rem;min-height:44px;}
.reminders-choice input {width:24px;min-height:24px;margin:0;}


/* recipes */
.recipe-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1rem; }
.recipe-grid img { width:100%; height:180px; object-fit:cover; border-radius:.5rem; }
.recipe-photo { max-width:100%; max-height:500px; object-fit:contain; }
.recipe-tags { display:flex; flex-wrap:wrap; gap:.5rem; margin:1rem 0; }
.recipe-tags a { padding:.25rem .75rem; border:1px solid var(--nut-line); border-radius:2rem; }
.recipe-notes { white-space:pre-wrap; }
.recipe-detail li { margin-bottom:.5rem; }
@media print {
 body:has(.recipes), .recipes .card { background:white; color:black; box-shadow:none; border:0; }
 body:has(.recipes) .topbar, .recipes .recipe-chrome, .recipes .recipe-tags { display:none; }
 body:has(.recipes) .dash-main { max-width:none; margin:0; padding:0; }
 .recipes a { color:black; text-decoration:none; }
 .recipe-photo { max-height:200px; }
 .recipe-detail li { break-inside:avoid; }
}
