/* style.css */
:root{--ink:#20251f;--paper:#f4f0e6;--card:#fffdf7;--sage:#76866c;--tomato:#d55a3a;--line:#d9d3c5}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,sans-serif}main{width:min(920px,calc(100% - 32px));margin:0 auto;padding:64px 0 100px}header{max-width:680px;margin-bottom:42px}.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.18em;color:var(--tomato)}h1{font-family:Georgia,serif;font-size:clamp(3rem,8vw,6.5rem);line-height:.88;letter-spacing:-.05em;margin:14px 0 20px}h1 em{color:var(--sage);font-weight:400}header p{color:#64685f;font-size:1.05rem}h2{font-family:Georgia,serif;font-size:1.7rem}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 10px 35px #433b2810}.import{margin-bottom:56px}.import form{display:flex;gap:10px}input[type=url]{flex:1;border:1px solid var(--line);border-radius:10px;padding:14px;font-size:1rem;background:white}button{border:0;border-radius:10px;padding:14px 20px;background:var(--ink);color:white;font-weight:700;cursor:pointer}.import small{display:block;margin-top:12px;color:#777}.section-title{display:flex;align-items:center;justify-content:space-between}.section-title span{color:#777}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.recipe{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);padding:20px;border-radius:14px;cursor:pointer}.recipe input{position:absolute;opacity:0}.check{width:25px;height:25px;border:2px solid var(--line);border-radius:7px;color:transparent;display:grid;place-items:center}.recipe:has(input:checked){border-color:var(--sage);background:#edf0e8}.recipe input:checked+.check{background:var(--sage);border-color:var(--sage);color:white}.recipe h3{margin:0 0 5px;font-family:Georgia,serif}.recipe p{margin:0;color:#777;font-size:.85rem}.primary{margin-top:22px;background:var(--tomato)}.alert{background:#fff0eb;color:#8d321c;padding:15px;border-radius:10px;margin-bottom:20px}.empty{padding:30px;color:#777}.back{color:var(--ink);text-decoration:none}.shopping{list-style:none;padding:0;margin:0}.shopping li{padding:15px 0;border-bottom:1px solid var(--line)}.shopping li:last-child{border:0}.shopping label{display:flex;gap:14px}.shopping input{width:20px;height:20px}.shopping strong{font-size:1.05rem}.shopping small{display:block;color:#777;margin-top:4px}.shopping .swap{color:var(--sage)}@media(max-width:650px){main{padding-top:38px}.grid{grid-template-columns:1fr}.import form{display:block}.import button,.import input{width:100%}.import button{margin-top:8px}}

.recipe-history{display:flex;flex-wrap:wrap;gap:14px;margin:10px 0;color:#777;font-size:.78rem}.recipe-history span{padding-right:6px;border-right:1px solid var(--line)}.recipe-history span:last-child{border-right:0;padding-right:0}

/* detail.css */
.recipe .pick{display:flex;align-items:center}.recipe h3 a{color:var(--ink);text-decoration:none}.recipe h3 a:hover{text-decoration:underline}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.tags span{background:#e7eadf;color:#526048;border-radius:999px;padding:4px 9px;font-size:.72rem;font-weight:700}.detail-head h1{font-size:clamp(2.6rem,7vw,5.5rem);margin-bottom:24px}.source{display:inline-block;color:var(--tomato);font-weight:800;text-decoration:none}.success{background:#e7efe2;color:#40543a;padding:14px;border-radius:10px;margin-bottom:20px}.edit-form{display:grid;gap:38px}.fields{display:grid;grid-template-columns:2fr 1fr;gap:18px}.fields label{font-weight:800}.fields input,.ingredient-row input{display:block;width:100%;margin-top:7px;border:1px solid var(--line);border-radius:8px;background:white;padding:11px;font:inherit}.fields .wide{grid-column:1/-1}.fields small,.hint{color:#777;font-weight:400}.ingredient-table{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--card)}.ingredient-row{display:grid;grid-template-columns:90px 110px minmax(170px,1fr) minmax(240px,1.5fr);gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);min-width:700px}.ingredient-row:last-child{border:0}.ingredient-row input{margin:0}.ingredient-row.headings{font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#777;background:#ebe7dc}.tag-note{display:flex;align-items:center;gap:16px}.tag-note .tags{margin:0}.muted{opacity:.65}@media(max-width:650px){.fields{grid-template-columns:1fr}.fields .wide{grid-column:auto}.tag-note{align-items:flex-start;flex-direction:column}}

/* share.css */
.fields textarea{display:block;width:100%;margin-top:7px;border:1px solid var(--line);border-radius:8px;background:white;padding:12px;font:inherit;line-height:1.55;resize:vertical}.share-actions{display:flex;align-items:center;gap:12px;margin-top:22px}.share-actions form{margin:0}.email-button{display:inline-block;border-radius:10px;padding:14px 20px;background:var(--tomato);color:white;text-decoration:none;font-weight:700}@media(max-width:480px){.share-actions{align-items:stretch;flex-direction:column}.share-actions button,.email-button{text-align:center;width:100%}}

/* settings.css */
.top-nav{width:min(920px,calc(100% - 32px));margin:0 auto;padding-top:22px;display:flex;justify-content:flex-end;gap:18px}.top-nav a{color:var(--ink);font-size:.85rem;font-weight:800;text-decoration:none}.top-nav a:hover{color:var(--tomato)}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.setting{display:flex;flex-direction:column;align-items:flex-start}.setting h2{margin-top:0}.setting p{color:#666;min-height:70px}.setting form{width:100%;border-top:1px solid var(--line);margin-top:22px;padding-top:20px;display:grid;gap:12px}.setting label{font-size:.84rem;font-weight:800}.setting input[type=file]{display:block;width:100%;margin-top:8px;padding:10px;border:1px dashed var(--line);border-radius:8px;background:white}.setting .confirm{display:flex;align-items:flex-start;gap:8px;font-weight:500}.setting .confirm input{margin-top:3px}.action-link{display:inline-block;border-radius:10px;padding:13px 17px;background:var(--sage);color:white;text-decoration:none;font-weight:800}.danger{background:#9e3825}.setting>small{color:#777;margin-top:12px}.storage-setting{grid-column:1/-1}.storage-setting p{min-height:0}.storage-choice{display:grid!important;grid-template-columns:auto 1fr;column-gap:9px;align-items:start}.storage-choice input{grid-row:1/3;margin-top:3px}.storage-choice small{font-weight:500;color:#666}.storage-setting input[type=text],.storage-setting input[type=password]{display:block;box-sizing:border-box;width:100%;margin-top:8px;padding:11px;border:1px solid var(--line);border-radius:8px;background:#fff}.sync-choice{box-sizing:border-box;width:100%;padding:18px;border:1px solid var(--sage);border-radius:10px;background:#f4f8f2}.sync-choice h3{margin:0}.sync-choice p{min-height:0;margin-bottom:8px}.sync-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sync-choice .sync-actions form{box-sizing:border-box;margin:0;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fff}.sync-choice form small{color:#666;font-weight:500}.sync-choice .cancel-sync{display:block;width:auto;margin:10px 0 0;padding:0;border:0}.secondary{background:#777}@media(max-width:680px){.settings-grid,.sync-actions{grid-template-columns:1fr}.setting p{min-height:0}}
.connection-lock-note{color:#64685f}.database-unlock-form{display:flex;align-items:end;gap:10px}.database-unlock-form label{flex:1}.database-unlock-form input{display:block;width:100%;margin-top:7px;border:1px solid var(--line);border-radius:8px;background:white;padding:11px;font:inherit}.database-lock-form{display:flex;justify-content:flex-end;margin-bottom:12px}@media(max-width:650px){.database-unlock-form{align-items:stretch;flex-direction:column}}
.top-nav{align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:9px}.brand img{width:52px;height:52px;flex:0 0 52px;object-fit:contain}.brand span{font-family:Georgia,serif;font-size:1rem!important}.nav-links{display:flex;align-items:center;gap:18px}.nav-links a{font-size:.85rem!important}@media(max-width:680px){.top-nav{align-items:flex-start;gap:12px}.brand span{display:none}.nav-links{flex-wrap:wrap;justify-content:flex-end;gap:10px}}
.cook-link{display:inline-block;border-radius:10px;padding:13px 17px;background:var(--tomato);color:white;text-decoration:none;font-weight:800}.cook-meta{display:flex;gap:18px;color:#777;font-weight:700}.cook-shell{--cook-progress:0%;max-width:760px;margin:0 auto}.cook-head{margin:28px 0 24px}.cook-head h1{font-size:clamp(2.7rem,8vw,5.8rem);max-width:760px}.cook-toolbar{position:sticky;top:0;z-index:2;display:flex;gap:10px;padding:12px 0;background:linear-gradient(var(--paper) 75%,transparent);margin-bottom:12px}.cook-toolbar button{margin:0}.secondary{background:var(--sage)}.cook-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:28px;margin:18px 0;box-shadow:0 10px 35px #433b2810}.cook-card h2{margin-top:0}.cook-section+ .cook-section{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}.cook-section h3{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--tomato);margin:0 0 5px}.cook-card ul,.cook-card ol{padding:0;margin:0;list-style:none}.cook-card li{border-bottom:1px solid var(--line);padding:14px 0}.cook-card li:last-child{border-bottom:0}.cook-card label{display:flex;align-items:flex-start;gap:14px;cursor:pointer;line-height:1.45}.cook-check{width:22px;height:22px;flex:0 0 auto;margin:1px 0 0;accent-color:var(--sage)}.cook-quantity{min-width:94px;font-weight:800;color:var(--tomato)}.cook-card label:has(input:checked)>span:not(.cook-quantity){color:#8b9185;text-decoration:line-through}.cook-steps li{font-size:1.08rem}.cook-steps ol{counter-reset:cook-step}.cook-steps li{counter-increment:cook-step}.cook-steps li label:before{content:counter(cook-step);display:grid;place-items:center;width:30px;height:30px;flex:0 0 auto;border-radius:50%;background:#e7eadf;color:#526048;font-weight:900}.cook-empty{color:#777}.cook-card small{color:#777}@media(max-width:680px){.top-nav{width:calc(100% - 24px);padding-top:12px}.nav-links{gap:8px}.nav-links a{font-size:.76rem!important}.brand img{width:42px;height:42px;flex-basis:42px}main{width:calc(100% - 24px);padding-top:28px}.card,.cook-card{padding:20px;border-radius:14px}.cook-head{margin-top:22px}.cook-toolbar{margin-left:-6px;margin-right:-6px;padding-left:6px;padding-right:6px}.cook-toolbar button{flex:1;padding:12px 10px;font-size:.82rem}.cook-quantity{min-width:72px}.detail-head h1{font-size:clamp(2.5rem,15vw,4.5rem)}.recipe-actions{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.fields{gap:14px}.ingredient-table{margin-left:-10px;margin-right:-10px;border-radius:10px}.cook-steps li{font-size:1rem}}
.fields textarea{display:block;width:100%;max-width:100%;resize:vertical}
@media(max-width:680px){
  .edit-form,.fields,.fields label,.fields textarea{min-width:0;max-width:100%}
  .ingredient-table{overflow:visible;margin-left:0;margin-right:0}
  .ingredient-row{min-width:0;grid-template-columns:24px minmax(0,1fr) minmax(0,1fr);gap:8px;padding:12px 10px}
  .ingredient-row.headings{display:none}
  .ingredient-row>[name="ingredient_id"],.ingredient-row>[name="section_token"]{display:none}
  .ingredient-row>[name="quantity"]{grid-column:2}
  .ingredient-row>[name="quantity_max"]{grid-column:3}
  .ingredient-row>[name="unit"]{grid-column:2}
  .ingredient-row>div{grid-column:2 / -1;min-width:0}
  .ingredient-row>.optional-toggle{grid-column:2}
  .ingredient-row>.delete-row{grid-column:3;justify-self:end}
  .ingredient-row input{min-width:0}
  .ingredient-section header{gap:8px}
  .ingredient-section .section-name{min-width:0;flex:1}
}

/* quality.css */
.recipe-info{flex:1;min-width:0}.quality-compact{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.score,.review-count,.issue-list span{border-radius:999px;padding:4px 9px;font-size:.72rem;font-weight:800}.score-good{background:#dfeadb;color:#3f6339}.score-fair{background:#f3e8c8;color:#725919}.score-low,.review-count{background:#f6dcd4;color:#8b3824}.quality-panel{display:flex;align-items:center;gap:22px;margin-bottom:28px}.quality-panel h2,.quality-panel p{margin:0 0 6px}.quality-number{font-family:Georgia,serif;font-size:2.2rem;font-weight:800;border-radius:14px;padding:18px}.issue-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.issue-list span{background:#f6dcd4;color:#8b3824}.ingredient-row{grid-template-columns:90px 110px minmax(170px,1fr) minmax(240px,1.5fr) 38px}.ingredient-row.needs-review{background:#fff5ed;box-shadow:inset 4px 0 var(--tomato)}.row-issues{display:block;color:#a2442d;margin-top:5px;font-size:.72rem}.delete-row{align-self:start;background:transparent;color:#8b3824;padding:8px;font-size:1.3rem;line-height:1}.add-row{margin-top:12px;background:var(--sage)}@media(max-width:520px){.quality-panel{align-items:flex-start}.quality-number{font-size:1.6rem;padding:12px}}

/* search.css */
.recipe-search{display:grid;grid-template-columns:repeat(3,1fr) auto;align-items:end;gap:10px;margin:0 0 20px}.recipe-search label{font-size:.75rem;font-weight:800}.recipe-search input{display:block;width:100%;margin-top:6px;border:1px solid var(--line);border-radius:10px;background:white;padding:13px 14px;font:inherit}.search-actions{display:flex;align-items:center;gap:9px}.recipe-search a{color:var(--tomato);font-size:.85rem;font-weight:800;text-decoration:none}@media(max-width:760px){.recipe-search{grid-template-columns:1fr 1fr}.search-actions{align-self:end}}@media(max-width:520px){.recipe-search{grid-template-columns:1fr}}

/* recipe-export.css */
.recipe-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px}.json-export{display:inline-block;color:var(--sage);font-weight:800;text-decoration:none}.json-export:hover,.source:hover{text-decoration:underline}

/* duplicate.css */
.duplicate-card{width:min(580px,calc(100% - 32px));border:1px solid var(--line);border-radius:18px;background:var(--card);color:var(--ink);padding:30px;box-shadow:0 25px 80px #201b1470}.duplicate-card::backdrop{background:#20251fa8;backdrop-filter:blur(3px)}.duplicate-card h2{font-family:Georgia,serif;font-size:2rem;margin:12px 0}.duplicate-card p{color:#666;line-height:1.5}.duplicate-actions{display:flex;align-items:center;gap:18px;margin-top:25px}.duplicate-actions form{margin:0}.duplicate-actions a{color:var(--ink);font-weight:800;text-decoration:none;padding:12px}

/* optional-delete.css */
.ingredient-row{grid-template-columns:90px 110px minmax(170px,1fr) minmax(240px,1.5fr) 86px 38px}.optional-toggle{display:flex;align-items:center;gap:6px;font-size:.75rem;font-weight:700}.optional-toggle input[type=checkbox]{width:18px;height:18px;margin:0}.optional-label{display:inline-block;background:#e7eadf;color:#526048;border-radius:999px;padding:2px 7px;font-size:.7rem;font-style:normal}.recipe-save-actions{display:flex;align-items:center;gap:12px}.delete-recipe{margin-top:22px;background:transparent;color:#8b3824;border:1px solid #cda99f}.delete-dialog{width:min(480px,calc(100% - 32px));border:1px solid var(--line);border-radius:18px;background:var(--card);color:var(--ink);padding:28px;box-shadow:0 25px 80px #201b1470}.delete-dialog::backdrop{background:#20251fa8;backdrop-filter:blur(3px)}.delete-dialog h2{font-family:Georgia,serif;font-size:2rem;margin:0 0 10px}.delete-dialog>div{display:flex;gap:12px;margin-top:22px}.delete-dialog form{margin:0}.delete-dialog button{min-width:72px}@media(max-width:520px){.recipe-save-actions{align-items:stretch;flex-direction:column}.recipe-save-actions button{width:100%;margin-top:0}}

/* shopping-groups.css */
.shopping-group{margin-bottom:16px}.shopping-group h2{margin:0 0 8px}.copy-button{background:var(--tomato)}.copy-status{color:var(--sage);font-size:.85rem;font-weight:800}

/* history-reviews.css */
.planned-date{display:block;width:max-content;margin-bottom:20px;font-size:.78rem;font-weight:800}.planned-date input{display:block;margin-top:6px;border:1px solid var(--line);border-radius:9px;padding:11px;background:white;font:inherit}.history-link{display:inline-block;color:var(--tomato);font-weight:800;text-decoration:none;margin-top:8px}.history-list{display:grid;gap:12px}.history-item{display:flex;align-items:center;justify-content:space-between;color:var(--ink);text-decoration:none}.history-item strong,.history-item span{display:block}.history-item strong{font-family:Georgia,serif;font-size:1.35rem}.history-item div span{color:#777;margin-top:4px}.review-form{border-top:1px solid var(--line);margin-top:18px;padding-top:18px;display:grid;grid-template-columns:auto 1fr auto;align-items:end;gap:14px}.review-form fieldset{border:0;padding:0;margin:0}.review-form legend,.review-form>label{font-size:.75rem;font-weight:800}.review-form textarea{display:block;width:100%;margin-top:6px;border:1px solid var(--line);border-radius:8px;padding:9px;font:inherit;resize:vertical}.stars{display:flex;flex-direction:row;justify-content:flex-start}.stars input{position:absolute;opacity:0}.stars span{font-size:1.55rem;color:#cbc5b7;cursor:pointer}.stars label.active span,.stars label:hover span{color:#d69527}.download-button{display:inline-block;border-radius:10px;padding:14px 20px;background:var(--ink);color:white;text-decoration:none;font-weight:700}.total-needed{color:var(--tomato);font-size:.82rem}.recipe-reviews{margin-top:55px}.direct-review{margin-top:28px}.review{margin-bottom:10px}.review-meta{display:flex;justify-content:space-between}.review-stars{color:#d69527;letter-spacing:.06em}.review time{color:#777}.review p{margin-bottom:0}@media(max-width:650px){.review-form{grid-template-columns:1fr}.review-form button{width:100%}}
.review-edit-heading{margin-top:18px}.review-edit-heading h3{margin:0;font-family:Georgia,serif;font-size:1.1rem}

/* tag-manager.css */
.tag-manager{margin-bottom:20px}.tag-manager h2{margin:0}.tag-chip-list{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.tag-chip{position:relative;display:inline-flex;align-items:center;gap:5px;background:#e7eadf;color:#526048;border-radius:999px;padding:7px 8px 7px 12px;font-size:.82rem;font-weight:800}.tag-chip .remove-tag{display:grid;place-items:center;width:20px;height:20px;padding:0;border-radius:50%;background:#526048;color:white;font-size:.9rem;line-height:1}.no-tags{color:#777;font-size:.85rem}.tag-add-row{display:flex;align-items:end;gap:10px}.tag-add-row label{flex:1;font-size:.75rem;font-weight:800}.tag-add-row input{display:block;width:100%;margin-top:6px;border:1px solid var(--line);border-radius:9px;padding:11px;font:inherit}@media(max-width:480px){.tag-add-row{align-items:stretch;flex-direction:column}}

/* macros.css */
.macro-fields{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:16px;border-radius:12px;background:#f2eee4}.macro-fields label{font-size:.75rem}@media(max-width:650px){.macro-fields{grid-template-columns:1fr 1fr}}

/* ingredient-sections.css */
.ingredient-section{margin-bottom:18px;border:1px solid var(--line);border-radius:14px;background:var(--card);overflow:hidden}.ingredient-section>header{display:flex;align-items:center;gap:9px;padding:12px 14px;background:#e9e5d9}.drag-handle{color:#8b887f}.section-name{flex:1;border:0;border-bottom:1px solid transparent;background:transparent;padding:5px;font-family:Georgia,serif;font-size:1.15rem;font-weight:800}.section-name:focus{outline:0;border-color:var(--sage);background:#fff}.ingredient-section .ingredient-table{border:0;border-radius:0}.ingredient-row{grid-template-columns:28px 78px 78px 90px minmax(160px,1fr) minmax(220px,1.4fr) 86px 38px;min-width:930px}.section-items{min-height:18px}.section-items.drag-over{background:#e8efe2;box-shadow:inset 0 0 0 2px var(--sage)}.ingredient-row.dragging{opacity:.4}.ingredient-actions{display:flex;gap:10px}.add-section{margin-top:12px;background:var(--ink)}.shopping-section{margin:18px 0 4px;padding-bottom:5px;border-bottom:1px solid var(--line);color:var(--sage);font-family:Georgia,serif;font-size:1rem}.shopping-section:first-child{margin-top:6px}
.delete-section{border:0;background:transparent;color:#9d332b;padding:6px 8px;font:inherit;font-size:.78rem;font-weight:800;cursor:pointer}.delete-section:hover{text-decoration:underline}
.ingredient-drag-handle{align-self:center;color:#8b887f;cursor:grab;font-size:1rem;text-align:center}.ingredient-drag-handle:active{cursor:grabbing}

/* list-macros.css */
.macro-total{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.macro-total div{display:grid;gap:4px}.macro-total span{color:#777;font-size:.75rem;font-weight:800;text-transform:uppercase}.macro-total strong{font-family:Georgia,serif;font-size:1.45rem}.macro-total small{grid-column:1/-1;color:#777}.delete-list-button{background:transparent;color:#8b3824;border:1px solid #cda99f}@media(max-width:580px){.macro-total{grid-template-columns:1fr 1fr}}

/* quality-flags.css */
.quality-flag{display:inline-block;border-radius:999px;padding:4px 9px;background:#f6dcd4;color:#8b3824;font-size:.72rem;font-weight:800}.quality-clear{display:inline-block;border-radius:999px;padding:5px 10px;background:#dfeadb;color:#3f6339;font-size:.78rem;font-weight:800}.recipe-flags{display:flex;flex-wrap:wrap;gap:7px;margin:-12px 0 24px}

/* homepage.css */
.home-hero {
  max-width: 820px;
}

.hero-title {
  display: flex;
  align-items: center;
  gap: 24px;
}

.hero-title img {
  width: clamp(90px, 16vw, 150px);
  height: auto;
  flex: 0 0 auto;
}

.hero-title h1 {
  margin-right: 0;
  font-size: clamp(2rem, 7vw, 5.5rem);
}

.hero-line {
  white-space: nowrap;
}

.shopping-page-title,
.settings-page-title {
  white-space: nowrap;
  font-size: clamp(2rem, 7vw, 5.5rem);
}

.settings-page-head {
  max-width: 920px;
}

.settings-page-description {
  white-space: nowrap;
  font-size: clamp(.45rem, 1.55vw, 1.05rem);
}

.import-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.import-heading a {
  color: var(--tomato);
  font-weight: 800;
  text-decoration: none;
}

.import-heading a:hover {
  text-decoration: underline;
}

@media (max-width: 650px) {
  .hero-title {
    gap: 14px;
  }

  .hero-title img {
    width: 72px;
  }

  .import-heading {
    align-items: flex-start;
    flex-direction: column;
    margin-bottom: 16px;
  }
}

/* recipe-new.css */
.new-recipe-head {
  margin-top: 34px;
}

.manual-recipe-form {
  display: grid;
  gap: 18px;
}

.manual-fields {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 18px;
}

.manual-fields label {
  font-weight: 800;
}

.manual-fields input,
.manual-fields textarea {
  display: block;
  width: 100%;
  margin-top: 7px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  padding: 11px;
  font: inherit;
}

.manual-fields textarea {
  resize: vertical;
}

.manual-fields small {
  color: #777;
  font-weight: 400;
}

.manual-fields .wide {
  grid-column: 1 / -1;
}

.nutrition-fields {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

.manual-recipe-form .primary {
  justify-self: start;
  margin-top: 0;
}

@media (max-width: 650px) {
  .manual-fields,
  .nutrition-fields {
    grid-template-columns: 1fr;
  }

  .manual-fields .wide {
    grid-column: auto;
  }
}

/* calendar.css */
.calendar-head{max-width:820px}.calendar-head h1{font-size:clamp(2.5rem,7vw,5.5rem);white-space:nowrap}.calendar-toolbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;margin-bottom:24px}.calendar-views{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}.calendar-views a,.calendar-today,.calendar-period a{color:var(--ink);text-decoration:none;font-weight:800}.calendar-views a{padding:9px 12px;background:var(--card)}.calendar-views a.active{background:var(--ink);color:white}.calendar-period{display:flex;align-items:center;justify-content:center;gap:18px;text-align:center}.calendar-period a{font-size:1.35rem}.calendar-today{justify-self:end;color:var(--tomato)}.day-schedule{display:grid;gap:12px}.meal-slot-card{display:grid;grid-template-columns:minmax(180px,1fr) minmax(300px,2fr) auto;align-items:end;gap:16px}.meal-slot-card>div span,.meal-slot-card>div a{display:block}.meal-slot-name{color:var(--tomato);font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.meal-slot-card>div a{margin-top:6px;color:var(--ink);font-family:Georgia,serif;font-size:1.25rem;font-weight:800;text-decoration:none}.empty-slot{margin-top:6px;color:#777}.meal-slot-card>form:not(.remove-meal){display:flex;gap:8px}.meal-slot-card select{flex:1;border:1px solid var(--line);border-radius:9px;padding:11px;background:white;font:inherit}.remove-meal button{padding:11px;background:transparent;color:#9d332b}.week-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.calendar-day{min-height:220px;padding:16px;color:var(--ink);text-decoration:none}.calendar-day>span,.calendar-day>strong{display:block}.calendar-day>span{color:#777;font-size:.72rem;font-weight:900;text-transform:uppercase}.calendar-day>strong{margin:5px 0 14px;font-family:Georgia,serif;font-size:2rem}.calendar-day small{display:block;margin:7px 0;overflow:hidden;font-size:.72rem}.calendar-day small b{display:block;color:var(--tomato)}.calendar-day.today,.month-day.today{border-color:var(--tomato);box-shadow:inset 0 0 0 1px var(--tomato)}.month-calendar{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--card)}.month-weekdays,.month-week{display:grid;grid-template-columns:repeat(7,1fr)}.month-weekdays span{padding:10px;color:#777;font-size:.7rem;font-weight:900;text-align:center;text-transform:uppercase}.month-day{min-height:120px;padding:9px;border-top:1px solid var(--line);border-right:1px solid var(--line);color:var(--ink);text-decoration:none}.month-day:last-child{border-right:0}.month-day strong,.month-day small{display:block}.month-day small{margin-top:5px;overflow:hidden;font-size:.65rem;white-space:nowrap;text-overflow:ellipsis}.month-day.outside{opacity:.4}@media(max-width:760px){.calendar-toolbar{grid-template-columns:1fr auto}.calendar-period{grid-column:1/-1;grid-row:2}.week-calendar{grid-template-columns:1fr}.calendar-day{min-height:0}.meal-slot-card{grid-template-columns:1fr}.meal-slot-card>form:not(.remove-meal){flex-direction:column}.month-calendar{overflow-x:auto}.month-weekdays,.month-week{min-width:700px}}
.calendar-filter{display:flex;align-items:end;gap:12px;margin-bottom:24px}.calendar-filter label{display:grid;gap:6px;color:#777;font-size:.72rem;font-weight:900;text-transform:uppercase}.calendar-filter select,.recipe-picker-search{border:1px solid var(--line);border-radius:9px;padding:10px;background:white;font:inherit;text-transform:none}.calendar-filter-note{padding-bottom:11px;color:#777;font-size:.82rem}.recipe-picker-search{min-width:130px;flex:0 1 180px}@media(max-width:650px){.calendar-filter{align-items:stretch;flex-direction:column}.calendar-filter-note{padding:0}.meal-slot-card>form:not(.remove-meal) .recipe-picker-search{max-width:none}}
.auth-required-dialog { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 1rem; background: rgba(35, 28, 22, .48); }
.auth-required-content { position: relative; padding: 2rem; text-align: center; }
.auth-required-dialog .auth-required-content { width: min(92vw, 430px); border-radius: 18px; background: var(--paper, #fffaf4); box-shadow: 0 24px 80px rgba(30, 24, 18, .28); }
.auth-required-content h2 { margin: 0 0 .5rem; }
.auth-required-content p { margin: 0 0 1.25rem; }
.auth-required-close { position: absolute; top: .5rem; right: .75rem; border: 0; background: transparent; font-size: 1.6rem; cursor: pointer; }
.auth-required-close { width: 28px; height: 28px; padding: 0; border-radius: 50%; color: var(--ink); font-size: 1.25rem; line-height: 1; }
.auth-required-close:hover { background: var(--line); }
.auth-required-signin { display: inline-block; color: var(--tomato); font-weight: 700; text-decoration: underline; }
.recipe { position: relative; }
.favorite-form { position: absolute; top: 12px; right: 12px; z-index: 3; }
.favorite-button { border: 0; background: transparent; color: #c99a2e; font-size: 1.45rem; line-height: 1; padding: 2px; cursor: pointer; }
.favorite-button:hover, .favorite-button.is-favorite { color: #d29b20; }
.favorite-recipes-section { margin-bottom: 42px; }
.private-toggle { display: flex; align-items: center; gap: 8px; grid-column: 1 / -1; font-weight: 700; }
.visibility-list { width: 100%; display: grid; gap: 8px; }
.visibility-row { box-sizing: border-box !important; display: flex !important; align-items: center; justify-content: space-between; gap: 12px; width: 100%; margin: 0 !important; padding: 10px 0 !important; border-top: 1px solid var(--line); font-weight: 600; }
.visibility-row label { display: flex; align-items: center; gap: 6px; white-space: nowrap; font-weight: 500; }
.visibility-row > label { margin-left: auto; }
.recipe-share-controls { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.share-user-form { display: flex !important; align-items: center; gap: 6px; width: auto !important; margin: 0 !important; padding: 0 !important; border: 0 !important; }
.share-user-form input { width: 170px; padding: 8px; border: 1px solid var(--line); border-radius: 7px; }
.share-user-form button, .share-link-button { padding: 8px 10px; font-size: .78rem; }
.visibility-setting { grid-column: 1 / -1; order: 10; }
.make-all-public-form { width: auto !important; margin: 0 0 14px !important; padding: 0 !important; border: 0 !important; }
.default-recipe-setting { order: -1; }
.default-setting-row { display: flex; align-items: center; gap: 8px; }
.default-recipe-setting textarea { display: block; width: 100%; margin-top: 8px; padding: 10px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.reviewer-name { font-weight: 700; margin-right: 8px; }

/* Keep the recipe editor usable in tablet-sized device emulation as well as on phones. */
@media (max-width: 900px) {
  html, body { max-width: 100%; overflow-x: hidden; }
  main, .top-nav { width: min(calc(100% - 24px), 920px); }
  .top-nav { align-items: flex-start; gap: 12px; }
  .brand span { display: none; }
  .nav-links { flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
  .nav-links a { font-size: .76rem !important; }
  .grid { grid-template-columns: 1fr; }
  .fields { grid-template-columns: 1fr; min-width: 0; }
  .fields .wide { grid-column: auto; }
  .fields textarea { width: 100%; max-width: 100%; }
  .card, .cook-card { padding: 20px; border-radius: 14px; }
  .recipe-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
  .ingredient-table { overflow: visible; margin-left: 0; margin-right: 0; }
  .ingredient-row { min-width: 0; grid-template-columns: 24px minmax(0, 1fr) minmax(0, 1fr); gap: 8px; padding: 12px 10px; }
  .ingredient-row.headings { display: none; }
  .ingredient-row > [name="ingredient_id"], .ingredient-row > [name="section_token"] { display: none; }
  .ingredient-row > [name="quantity"] { grid-column: 2; }
  .ingredient-row > [name="quantity_max"] { grid-column: 3; }
  .ingredient-row > [name="unit"] { grid-column: 2; }
  .ingredient-row > div { grid-column: 2 / -1; min-width: 0; }
  .ingredient-row > .optional-toggle { grid-column: 2; }
  .ingredient-row > .delete-row { grid-column: 3; justify-self: end; }
  .ingredient-row input { min-width: 0; }
  .ingredient-section .section-name { min-width: 0; }
  .macro-fields { grid-template-columns: 1fr 1fr; }
  .review-form { grid-template-columns: 1fr; }
  .review-form button { width: 100%; }
}

@media (max-width: 1024px) {
  html, body { width: 100%; max-width: 100%; overflow-x: hidden; }
  main, .top-nav { width: calc(100% - 24px); max-width: 100%; }
  main, header, section, article, form, .card, .cook-card, .edit-form,
  .fields, .ingredient-section, .ingredient-table { min-width: 0; max-width: 100%; }
  input, textarea, select, button { max-width: 100%; }
  h1, h2, h3, p, a, label, span { overflow-wrap: anywhere; }
}
