/* Bold, image-free comic-book theme. */
:root { --ink:#252044; --muted:#686282; --paper:#f9f1d5; --line:#252044; --card:#fffdf7; --tomato:#ff705d; --yellow:#ffc94d; --green:#78d69a; --lavender:#a99afb; --navy:#252044; }
* { -webkit-tap-highlight-color:transparent; }
body { color:var(--ink); background:radial-gradient(#e8d98f 1.5px, transparent 1.5px) 0 0/13px 13px, var(--paper); font-family:Nunito,Arial,sans-serif; font-weight:700; }
button,a,input,select { font-family:inherit; }
.app-shell { background:transparent; }
.sidebar { border-right:3px solid var(--ink); background:#a99afb; box-shadow:5px 0 0 #252044; }
.brand { color:#fffdf7; font-family:Bangers,Impact,sans-serif; font-size:34px; letter-spacing:1px; text-shadow:3px 3px 0 var(--ink); }
.brand-mark { width:31px; height:31px; border:2px solid var(--ink); border-radius:8px; color:var(--ink); background:#ffc94d; box-shadow:3px 3px 0 var(--ink); font:700 20px Bangers,sans-serif; letter-spacing:0; }
.nav-list { gap:9px; }.nav-item { border:2px solid transparent; border-radius:6px; color:#342d5d; font-weight:900; }.nav-item:hover { border-color:#342d5d; background:#ffffff55; }.nav-item.active { border-color:var(--ink); color:var(--ink); background:#fffdf7; box-shadow:3px 3px 0 var(--ink); }.nav-item b { color:var(--ink); background:#ffc94d; border:1px solid var(--ink); font-family:Nunito,sans-serif; font-weight:900; }.tiny-link { color:#3c3568; font-weight:800; }.profile { border-top:2px dashed #4f467b; color:var(--ink); }.profile small,.profile>i { color:#4f467b; }.avatar,.mini-avatars i { color:var(--ink); border:2px solid var(--ink); background:#ffc94d; }
main { background:transparent; }.topbar { border-bottom:3px solid var(--ink); background:#fffdf7; box-shadow:0 4px 0 #252044; }.crumb { color:#6f6887; font-weight:800; }.crumb strong { color:var(--ink); }.icon-button { color:var(--ink); font-weight:900; }.icon-button:hover { color:#fff; border-radius:6px; background:var(--ink); }.new-button { border:2px solid var(--ink); border-radius:6px; padding:10px 14px; color:var(--ink); background:#ffc94d; box-shadow:3px 3px 0 var(--ink); font-weight:900; }.new-button:hover { background:#ffdc73; transform:translate(1px,1px); box-shadow:1px 1px 0 var(--ink); }
.eyebrow,.card-label { color:#dd4e54; font-family:'DM Mono',monospace; font-weight:700; }.intro h1,.section-heading h2,.today-content h2,.meal-modal h2 { color:var(--ink); font-family:Bangers,Impact,sans-serif; letter-spacing:1px; text-shadow:2px 2px 0 #ffc94d; }.intro h1 { font-size:50px; }.section-heading h2 { font-size:31px; }.week-controls button,.outline-button { border:2px solid var(--ink); border-radius:5px; color:var(--ink); background:#fffdf7; box-shadow:2px 2px 0 var(--ink); font-weight:900; }.week-controls button:hover,.outline-button:hover { background:#a99afb; transform:translate(1px,1px); box-shadow:1px 1px 0 var(--ink); }
.card { border:3px solid var(--ink); border-radius:8px; background:#fffdf7; box-shadow:5px 5px 0 var(--ink); }.today-content h2 { font-size:25px; }.today-content p,.progress-card p { color:#625c7b; font-weight:700; }.meal-icon { border:2px solid var(--ink); background:#ffc94d; }.progress-track { border:2px solid var(--ink); background:#fffdf7; }.progress-track span { background:#78d69a; }
.day-column { position:relative; min-height:218px; padding:12px 9px; border:3px solid var(--ink); border-radius:7px; background:#fffdf7; box-shadow:4px 4px 0 var(--ink); }.day-column::before { content:none; }.day-column.today { border-color:var(--ink); background:#fff6b7; box-shadow:4px 4px 0 var(--ink); }.day-column.drop-target { outline:3px dashed #ff705d; outline-offset:4px; background:#fff1ea; }.day-label b { color:var(--ink); font-family:Nunito,sans-serif; font-weight:900; }.day-label span { color:#655f7a; font-family:'DM Mono',monospace; font-weight:700; }
.meal-block { border:2px solid var(--ink); border-radius:5px; box-shadow:2px 2px 0 var(--ink); color:var(--ink); transform:none; }.meal-block::before { content:none; }.meal-block:hover { filter:none; transform:translate(1px,1px); box-shadow:1px 1px 0 var(--ink); }.meal-block .meal-time { font-family:'DM Mono',monospace; font-weight:700; }.meal-block .meal-name { font-family:Nunito,sans-serif; font-weight:900; letter-spacing:0; }.tone-coral { background:#ffb7ac; }.tone-yellow { background:#ffe28c; }.tone-green { background:#b9ecc9; }.tone-lavender { background:#d7d0ff; }.attached-recipe { color:#514a6f; font-family:'DM Mono',monospace; font-weight:700; }.add-slot { color:#40395d; font-family:Nunito,sans-serif; font-weight:900; text-shadow:none; }.add-slot:hover { color:#dd4e54; }
.recipe-card { border:3px solid var(--ink); border-radius:7px; background:#fffdf7; box-shadow:4px 4px 0 var(--ink); }.recipe-card:hover { transform:translate(1px,1px); box-shadow:2px 2px 0 var(--ink); }.recipe-info h3 { color:var(--ink); font-family:Nunito,sans-serif; font-weight:900; }.recipe-info p { color:#635c7c; font-weight:700; }.recipe-remove { border:2px solid var(--ink); color:var(--ink); background:#fffdf7; box-shadow:2px 2px 0 var(--ink); }.recipe-remove:hover { color:var(--ink); background:#ff705d; }
.member-rack { display:flex; align-items:center; flex-wrap:wrap; gap:9px; margin:17px 0 -5px; padding:10px 12px; border:2px solid var(--ink); border-radius:7px; background:#fff6b7; box-shadow:3px 3px 0 var(--ink); }.member-rack > span { font-size:12px; font-weight:900; }.member-rack small { color:#655f7a; font-size:10px; }.member-badges { display:flex; flex-wrap:wrap; gap:7px; }.member-badge { display:flex; align-items:center; gap:5px; padding:3px 7px 3px 3px; border:2px solid var(--ink); border-radius:999px; color:var(--ink); background:#fffdf7; font-weight:900; }.member-badge > span,.member-avatar,.meal-assignee { display:grid; place-items:center; width:24px; height:24px; border:2px solid var(--ink); border-radius:50%; color:var(--ink); background:#ffc94d; font-size:11px; font-weight:900; }.member-badge small { color:var(--ink); font-size:10px; }.member-coral { background:#ffb7ac!important; }.member-yellow { background:#ffe28c!important; }.member-green { background:#b9ecc9!important; }.member-lavender { background:#d7d0ff!important; }.meal-card-wrap { position:relative; }.meal-import { display:block; width:calc(100% - 8px); margin:5px 0 1px 4px; padding:4px 6px; border:2px solid var(--ink); border-radius:4px; color:var(--ink); background:#fffdf7; box-shadow:2px 2px 0 var(--ink); font-size:10px; font-weight:900; line-height:1; }.meal-import:hover { background:#78d69a; transform:translate(1px,1px); box-shadow:1px 1px 0 var(--ink); }.meal-assignee { position:absolute; top:6px; right:6px; width:22px; height:22px; padding:0; }.recipe-remove { display:flex; align-items:center; justify-content:center; padding:0 0 1px; line-height:1; text-indent:0; }
.grocery-tabs { border:2px solid var(--ink); border-radius:6px; background:#d7d0ff; }.grocery-tab { color:#4e476d; font-weight:900; }.grocery-tab.active { color:var(--ink); background:#fffdf7; box-shadow:2px 2px 0 var(--ink); }.grocery-list li { border-bottom:2px dashed #c9c3b4; }.grocery-list input { border:2px solid var(--ink); border-radius:3px; }.grocery-list input:checked { border-color:var(--ink); background:#78d69a; }.grocery-progress { height:6px; border:1px solid var(--ink); background:#fffdf7; }.grocery-progress i { background:#78d69a; }
.plan-grocery { display:inline-block; margin-left:6px; padding:1px 4px; border:1px solid var(--ink); border-radius:3px; color:#514a6f; background:#d7d0ff; font-size:8px; font-style:normal; font-weight:900; vertical-align:middle; }.grocery-member-badge { display:grid; place-items:center; width:23px; height:23px; flex:0 0 23px; border:2px solid var(--ink); border-radius:50%; color:var(--ink); font-size:10px; font-weight:900; line-height:1; }.grocery-list li.done .grocery-member-badge { color:var(--ink); text-decoration:none; }.grocery-list [data-grocery-item].grocery-assignment-target { outline:3px dashed #dd4e54; outline-offset:3px; background:#fff1ea; }
.ideas-only { grid-template-columns:1fr; }.grocery-page { min-height:calc(100vh - 72px); }.grocery-intro { align-items:flex-end; }.grocery-intro > div > p:last-child { max-width:360px; margin:15px 0 0; color:#625c7b; font-size:15px; line-height:1.45; }.grocery-workspace { max-width:760px; margin:42px auto 0; padding:25px; border:3px solid var(--ink); border-radius:9px; background:#fffdf7; box-shadow:7px 7px 0 var(--ink); }.grocery-list-controls { display:flex; align-items:center; justify-content:space-between; gap:14px; }.grocery-workspace .grocery-tabs { flex:1; max-width:410px; }.grocery-bulk-actions { display:flex; align-items:center; gap:8px; }.check-all { color:#27623b; border-color:#27623b; white-space:nowrap; }.check-all:hover { color:var(--ink); background:#b9ecc9; }.clear-completed { color:#c4434d; border-color:#c4434d; white-space:nowrap; }.clear-completed:hover { color:var(--ink); background:#ffb7ac; }.grocery-workspace .grocery-summary { margin:23px 0 14px; font-size:12px; }.grocery-workspace .grocery-progress { width:90px; height:7px; }.grocery-member-rack { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 13px; padding:8px 10px; border:2px dashed var(--ink); border-radius:6px; background:#fff6b7; }.grocery-member-rack strong,.grocery-member-rack small { display:block; }.grocery-member-rack strong { font-size:11px; }.grocery-member-rack small { margin-top:2px; color:#655f7a; font-size:9px; font-weight:700; }.grocery-member-badges { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }.grocery-member-badges .member-badge { padding:2px 5px 2px 2px; font-size:10px; }.grocery-member-badges .member-badge > span { width:20px; height:20px; font-size:9px; }.grocery-member-badges .member-badge small { margin:0; color:var(--ink); font-size:9px; }.grocery-workspace .grocery-list li { min-height:48px; font-size:15px; }.grocery-workspace .grocery-list small { font-size:12px; font-weight:700; }
.household-page { min-height:calc(100vh - 72px); }.household-intro > div > p:last-child { max-width:420px; margin:15px 0 0; color:#625c7b; font-size:15px; line-height:1.45; }.household-workspace { max-width:760px; margin:42px auto 0; padding:25px; border:3px solid var(--ink); border-radius:9px; background:#fffdf7; box-shadow:7px 7px 0 var(--ink); }.member-count { padding:5px 9px; border:2px solid var(--ink); border-radius:999px; background:#d7d0ff; font-size:11px; font-weight:900; }.member-adder { margin:25px 0 20px; }.member-adder > label { display:block; margin-bottom:7px; font-size:12px; font-weight:900; }.member-adder > div { display:flex; gap:10px; }.member-adder input { flex:1; min-width:0; padding:10px 11px; border:2px solid var(--ink); border-radius:5px; color:var(--ink); background:#fffdf7; font-weight:700; }.member-adder select { width:112px; padding:10px 8px; border:2px solid var(--ink); border-radius:5px; color:var(--ink); background:#fffdf7; font-weight:800; }.member-adder input:focus,.member-adder select:focus { outline:0; border-color:#dd4e54; box-shadow:3px 3px 0 #ffb7ac; }.household-members { display:grid; gap:10px; }.household-member { display:flex; align-items:center; gap:12px; padding:12px; border:2px solid var(--ink); border-radius:6px; background:#fff6b7; box-shadow:3px 3px 0 var(--ink); }.member-avatar { width:37px; height:37px; font-size:15px; }.household-member strong { display:block; font-size:15px; }.household-member small { display:block; margin-top:3px; color:#655f7a; font-size:11px; }.member-remove { display:grid; place-items:center; width:29px; height:29px; margin-left:auto; border:2px solid var(--ink); border-radius:5px; color:var(--ink); background:#fffdf7; box-shadow:2px 2px 0 var(--ink); font-size:19px; line-height:1; }.member-remove:hover { background:#ff705d; }.empty-household { color:#655f7a; font-size:13px; }
.recipes-page { min-height:calc(100vh - 72px); }.recipes-intro > div > p:last-child { max-width:430px; margin:15px 0 0; color:#625c7b; font-size:15px; line-height:1.45; }.recipe-library { margin-top:42px; }.recipe-filter-bar { display:flex; flex-wrap:wrap; gap:11px; padding:15px; border:3px solid var(--ink); border-radius:8px; background:#fffdf7; box-shadow:5px 5px 0 var(--ink); }.recipe-filter-bar label { display:grid; gap:5px; min-width:150px; color:#514a6f; font-size:11px; font-weight:900; }.recipe-filter-bar select { padding:9px; border:2px solid var(--ink); border-radius:5px; color:var(--ink); background:#fffdf7; font-weight:800; }.recipe-result-count { margin:21px 0 10px; color:#625c7b; font-size:12px; font-weight:900; }.recipe-library-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px; }.recipe-library-item { position:relative; min-height:161px; border:3px solid var(--ink); border-radius:8px; box-shadow:4px 4px 0 var(--ink); }.recipe-library-item.tone-coral,.recipe-library-item.tone-coral .recipe-library-card { background:#ffb7ac; }.recipe-library-item.tone-yellow,.recipe-library-item.tone-yellow .recipe-library-card { background:#ffe28c; }.recipe-library-item.tone-green,.recipe-library-item.tone-green .recipe-library-card { background:#b9ecc9; }.recipe-library-item.tone-lavender,.recipe-library-item.tone-lavender .recipe-library-card { background:#d7d0ff; }.recipe-library-card { display:flex; align-items:stretch; width:100%; min-height:122px; padding:12px 13px; border:0; border-radius:5px; color:var(--ink); text-align:left; }.recipe-library-card:hover { filter:brightness(1.04); }.recipe-library-copy { display:flex; flex:1; flex-direction:column; min-width:0; padding-right:10px; }.recipe-library-copy strong { font-size:15px; line-height:1.1; }.recipe-library-copy small { margin-top:4px; color:#514a6f; font-size:10px; font-weight:700; line-height:1.25; }.recipe-library-ingredients { display:block; margin-top:5px; color:#302a4f; font-size:9px; font-weight:800; line-height:1.25; }.recipe-library-copy em { margin-top:auto; padding-top:6px; color:#40395d; font-size:9px; font-style:normal; font-weight:900; }.recipe-library-facts { display:flex; flex-direction:column; align-items:center; justify-content:center; width:59px; flex:0 0 59px; border-left:2px dashed var(--ink); color:var(--ink); text-align:center; }.recipe-library-facts b { font-family:Bangers,Impact,sans-serif; font-size:16px; letter-spacing:.5px; line-height:.9; }.recipe-library-facts small { display:block; margin-top:5px; padding:2px 3px; border:1px solid var(--ink); border-radius:3px; background:#fffdf7; font-size:8px; font-weight:900; line-height:1; white-space:nowrap; }.recipe-grocery-import { width:calc(100% - 24px); margin:1px 12px 10px; padding:5px 8px; border:2px solid var(--ink); border-radius:4px; color:var(--ink); background:#fffdf7; box-shadow:2px 2px 0 var(--ink); font-size:10px; font-weight:900; }.recipe-grocery-import:hover { background:#b9ecc9; transform:translate(1px,1px); box-shadow:1px 1px 0 var(--ink); }.recipe-library-item:hover .recipe-remove,.recipe-library-item .recipe-remove:focus { opacity:1; }.empty-recipes { grid-column:1/-1; margin:0; padding:24px; border:2px dashed var(--ink); border-radius:7px; color:#625c7b; text-align:center; }
@media (max-width:650px) { .grocery-list-controls { align-items:stretch; flex-direction:column; }.grocery-workspace .grocery-tabs { width:100%; max-width:none; }.grocery-bulk-actions { justify-content:flex-end; }.member-rack { align-items:flex-start; flex-direction:column; }.member-adder > div { align-items:stretch; flex-direction:column; }.member-adder .new-button { align-self:flex-end; }.recipe-filter-bar { display:grid; grid-template-columns:1fr; }.recipe-library-grid { grid-template-columns:1fr; } }
.modal-backdrop { background:#252044b8; }.meal-modal { border:3px solid var(--ink); border-radius:9px; background:#fffdf7; box-shadow:8px 8px 0 #ffc94d; }.meal-modal h2 { font-size:32px; }.meal-modal input,.meal-modal select,.date-picker-toggle { border:2px solid var(--ink); border-radius:5px; color:var(--ink); background:#fffdf7; font-weight:700; }.meal-modal input:focus,.meal-modal select:focus { border-color:#dd4e54; box-shadow:3px 3px 0 #ffb7ac; }.modal-close { color:var(--ink); font-weight:900; }.text-button { color:#514a6f; font-weight:900; }.text-button:hover { color:#dd4e54; }
.recipe-modes { border:2px solid var(--ink); border-radius:6px; background:#d7d0ff; }.recipe-mode { color:#514a6f; font-weight:900; }.recipe-mode.active { color:var(--ink); background:#fffdf7; box-shadow:2px 2px 0 var(--ink); }.ingredient-adder button { border:2px solid var(--ink); border-radius:5px; color:var(--ink); background:#ffc94d; box-shadow:2px 2px 0 var(--ink); }.ingredient-editor li,.method-editor li,.meal-recipe-details { border:2px solid var(--ink); border-radius:5px; background:#fff6b7; color:var(--ink); }.method-editor li::before { color:var(--ink); background:#ffc94d; }.meal-recipe-card { border:2px solid var(--ink); border-radius:5px; color:var(--ink); background:#fffdf7; box-shadow:2px 2px 0 var(--ink); }.meal-recipe-card:hover { border-color:var(--ink); background:#fff1ae; }.meal-recipe-card.selected { border-color:var(--ink); background:#b9ecc9; box-shadow:3px 3px 0 var(--ink); }.mini-calendar { border:2px solid var(--ink); border-radius:6px; background:#fffdf7; }.calendar-title { color:var(--ink); font-family:Nunito,sans-serif; font-weight:900; }.calendar-date.available { color:var(--ink); font-weight:900; }.calendar-date.available:hover { background:#d7d0ff; }.calendar-date.selected { background:#ff705d; color:var(--ink); box-shadow:2px 2px 0 var(--ink); }
.toast { border:2px solid #fffdf7; border-radius:6px; color:#fffdf7; background:var(--ink); box-shadow:4px 4px 0 #ff705d; font-weight:900; }.drag-ghost { border:3px solid var(--ink); box-shadow:6px 6px 0 #ffc94d; transform:translate(-50%,-50%) rotate(2deg) scale(1.04); }
@media (max-width:650px) { main { background:transparent; }.topbar { background:#fffdf7; }.intro h1 { font-size:40px; }.day-column { box-shadow:3px 3px 0 var(--ink); } }
@media (max-width:650px) { .sidebar { z-index:20; display:flex; width:min(84vw,310px); transform:translateX(-110%); transition:transform .2s ease; box-shadow:5px 0 0 var(--ink); }.sidebar.mobile-open { transform:translateX(0); }.mobile-nav-backdrop { position:fixed; z-index:19; inset:0; display:block; border:0; background:#25204488; }.mobile-nav-backdrop.hidden { display:none; }.mobile-menu { display:grid; place-items:center; width:34px; height:34px; padding:0; border:2px solid var(--ink); border-radius:5px; color:var(--ink); background:#ffc94d; box-shadow:2px 2px 0 var(--ink); font-size:18px; font-weight:900; } }
.recipe-library-item { min-height:128px; }.recipe-library-item.has-grocery-import { min-height:161px; }
.recipe-library-facts small { border:0; border-radius:0; background:transparent; padding:0; font-family:Bangers,Impact,sans-serif; font-size:11px; font-weight:400; letter-spacing:.5px; line-height:.9; }
.recipe-library-facts { align-items:flex-start; justify-content:space-evenly; padding-left:8px; text-align:left; }.recipe-library-facts b,.recipe-library-facts small { width:100%; margin-top:0; text-align:left; }
.grocery-item-actions { display:flex; gap:5px; margin-left:auto; }.grocery-item-actions button { padding:4px 6px; border:2px solid var(--ink); border-radius:4px; color:var(--ink); background:#fffdf7; box-shadow:1px 1px 0 var(--ink); font-size:9px; font-weight:900; }.grocery-item-actions button:hover { background:#d7d0ff; transform:translate(1px,1px); box-shadow:0 0 0 var(--ink); }.grocery-item-actions .grocery-delete:hover { background:#ffb7ac; }
.badge-select { min-width:0; padding:0; border:2px solid var(--ink); border-radius:50%; color:var(--ink); font-size:11px; font-weight:900; line-height:1; text-align:center; text-align-last:center; cursor:pointer; -webkit-appearance:none; appearance:none; }.badge-select.member-empty { background:#fffdf7; border-style:dashed; }.meal-badge-select { position:absolute; top:6px; right:6px; display:block; width:29px; height:29px; margin:0; }.grocery-badge-select { width:25px; height:25px; flex:0 0 25px; }.badge-select:focus { outline:0; border-color:#dd4e54; }.grocery-item-actions { align-items:center; }

/* Shared comic components */
.member-sky { background:#a8d8ff!important; }
.member-pink { background:#ffb6d3!important; }
.member-orange { background:#ffc47a!important; }
.member-mint { background:#a7ead0!important; }
.member-slate { background:#b9c2d0!important; }

select:not(.badge-select), input:not([type="checkbox"]), textarea {
  border:2px solid var(--ink)!important;
  border-radius:6px!important;
  color:var(--ink)!important;
  background:#fffdf7!important;
  font-family:Nunito,Arial,sans-serif!important;
  font-weight:800!important;
}
select:not(.badge-select) {
  min-height:40px;
  padding:8px 43px 8px 10px!important;
  cursor:pointer;
  -webkit-appearance:none;
  appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%),linear-gradient(to left,#ffc94d 37px,transparent 37px)!important;
  background-position:calc(100% - 17px) 16px,calc(100% - 12px) 16px,100% 0!important;
  background-size:6px 6px,6px 6px,100% 100%!important;
  background-repeat:no-repeat!important;
}
select:not(.badge-select):hover { background-color:#fff6b7!important; }
select:not(.badge-select) option { color:var(--ink); background:#fffdf7; font-weight:800; }
select:not(.badge-select):focus, input:not([type="checkbox"]):focus, textarea:focus {
  outline:3px solid #ffb7ac!important;
  outline-offset:1px;
  box-shadow:none!important;
}
.recipe-filter-bar {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(145px,1fr));
  align-items:end;
  gap:10px;
  padding:16px;
  border:3px solid var(--ink);
  border-radius:9px;
  background:#fffdf7;
  box-shadow:4px 4px 0 var(--ink);
}
.recipe-filter-bar label { min-width:0; color:var(--ink); font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.3px; }
.recipe-filter-bar input,.recipe-filter-bar select { width:100%; min-height:38px; padding:8px 9px; }
.recipe-filter-bar .recipe-search { grid-column:span 2; }
.meal-block,.recipe-library-item,.meal-recipe-card,.household-member {
  border:2px solid var(--ink)!important;
  border-radius:7px!important;
  box-shadow:3px 3px 0 var(--ink)!important;
}
.meal-block { padding:10px!important; }
.recipe-library-item { overflow:hidden; }
.recipe-library-card { min-height:132px; }
.recipe-library-copy strong,.meal-block .meal-name,.household-member strong {
  font-family:Bangers,Impact,sans-serif;
  font-weight:400;
  letter-spacing:.45px;
}
.recipe-library-copy em { font-family:'DM Mono',monospace; text-transform:uppercase; letter-spacing:.25px; }
.recipe-library-facts { border-left:2px dashed var(--ink); }
.recipe-library-facts b,.recipe-library-facts small { font-family:'DM Mono',monospace!important; font-weight:900!important; letter-spacing:0!important; }
.badge-select,.member-avatar {
  box-shadow:none!important;
  border-width:2px!important;
}
.badge-select:hover { filter:brightness(1.04); }
.overview-grid { grid-template-columns:minmax(0,.82fr) 350px; align-items:stretch; }
.today-card { max-width:none; }
.recipe-meta-fields { gap:10px; }
.recipe-meta-fields label { min-width:0; }
@media (max-width:650px) {
  .recipe-filter-bar .recipe-search { grid-column:span 1; }
  .today-card { max-width:none; }
}

/* Planner calendar and weekly-line navigation */
.planner-intro { align-items:flex-start; }
.planner-month-preview {
  width:auto;
  height:100%;
  box-sizing:border-box;
  padding:12px;
  border:3px solid var(--ink);
  border-radius:9px;
  background:#fffdf7;
  box-shadow:4px 4px 0 var(--ink);
}
.planner-month-title {
  margin-bottom:8px;
  font-family:Bangers,Impact,sans-serif;
  font-size:18px;
  letter-spacing:.8px;
  text-align:center;
}
.planner-month-weekdays,.planner-month-days {
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:3px;
  text-align:center;
}
.planner-month-weekdays { margin-bottom:4px; color:#655f7a; font:700 8px 'DM Mono',monospace; }
.planner-month-day,.planner-month-blank {
  display:grid;
  place-items:center;
  min-height:22px;
  border-radius:50%;
  font:800 9px Nunito,Arial,sans-serif;
}
.planner-month-day {
  padding:0;
  border:0;
  color:var(--ink);
  background:transparent;
  cursor:pointer;
}
.planner-month-day:hover { background:#fff6b7; }
.planner-month-day.has-meal::after {
  content:"";
  width:4px;
  height:4px;
  margin-top:-2px;
  border-radius:50%;
  background:#dd4e54;
}
.planner-month-day.is-today {
  border:2px solid var(--ink);
  border-radius:4px;
  background:#ffc94d;
  box-shadow:2px 2px 0 var(--ink);
  transform:rotate(-2deg);
}
.planner-month-day.is-selected {
  border:2px solid var(--ink);
  border-radius:4px;
  background:#d7d0ff;
  box-shadow:2px 2px 0 var(--ink);
}
.planner-month-day.is-today.is-selected { background:#ffc94d; }

/* Household badges use the same softly squared card language. */
.badge-select,.member-avatar { border-radius:6px!important; }

/* Shared-household setup */
.cloud-sync-button { margin:0 18px 10px; text-align:left; }
.cloud-modal { max-width:460px; }
.cloud-modal label { display:grid; gap:6px; margin:13px 0; color:var(--ink); font-size:12px; font-weight:900; }
.cloud-modal label input { width:100%; box-sizing:border-box; }
.cloud-helper { margin:4px 0 16px; color:#625c7b; font-size:13px; line-height:1.45; }
.cloud-modal .new-button,.cloud-modal .outline-button { width:100%; margin-top:3px; }
.cloud-divider { display:flex; align-items:center; gap:8px; margin:20px 0 8px; color:#655f7a; font:700 10px 'DM Mono',monospace; text-transform:uppercase; }
.cloud-divider::before,.cloud-divider::after { content:""; height:1px; flex:1; background:#655f7a; }
.cloud-modal .text-button { display:block; width:100%; margin-top:15px; text-align:center; }
.weekly-line-navigation {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:16px 0 -7px;
  padding:8px 10px;
  border:2px solid var(--ink);
  border-radius:7px;
  background:#fff6b7;
}
.weekly-line-navigation .eyebrow { margin:0; color:var(--ink); }
.weekly-line-navigation .week-controls { flex:0 0 auto; }
@media (max-width:650px) {
  .planner-intro { gap:18px; flex-direction:column; }
  .overview-grid { grid-template-columns:1fr; }
  .planner-month-preview { width:100%; box-sizing:border-box; }
  .weekly-line-navigation { margin-top:14px; }
}
.ingredient-paste { display:grid; grid-template-columns:1fr auto; gap:7px; margin:7px 0 10px; }.ingredient-paste textarea { min-height:58px; padding:8px; border:2px solid var(--ink); border-radius:5px; color:var(--ink); background:#fffdf7; font:700 11px/1.3 Nunito,sans-serif; resize:vertical; }.ingredient-paste textarea:focus { outline:0; border-color:#dd4e54; box-shadow:3px 3px 0 #ffb7ac; }.ingredient-paste button { align-self:end; padding:8px; border:2px solid var(--ink); border-radius:5px; color:var(--ink); background:#b9ecc9; box-shadow:2px 2px 0 var(--ink); font-size:10px; font-weight:900; }.ingredient-paste button:hover { transform:translate(1px,1px); box-shadow:1px 1px 0 var(--ink); }
