/* Small behavioral layout additions shared by the connected and preview kitchens. */
.icon { width:20px; height:20px; flex-shrink:0; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.form-error { border-radius:6px; padding:10px 13px; margin:15px 0; font-size:12px; }
.loading-state { padding:90px 25px; text-align:center; color:#898378; }
.button.full { width:100%; justify-content:center; }
.recipe-placeholder { display:grid; place-items:center; height:100%; color:#7a8267; gap:10px; padding:30px; background:#e8e5d8; }
.recipe-placeholder .icon { width:58px; height:58px; }
.recipe-placeholder span { font:italic 14px Georgia,serif; }
.recipe-paper .recipe-title { overflow-wrap:anywhere; }
#photo-file { position:absolute; width:1px; height:1px; opacity:0; padding:0; }
.photo-upload { position:relative; cursor:pointer; }
.photo-upload:focus-within { outline:3px solid #bc8f65; outline-offset:4px; }
.inline-form .form-error { flex-basis:100%; }
.reply-toggle { margin-top:10px; }
.reply strong { font-size:12px; }
.form-grid .wide { grid-column:1/-1; }
.ingredient-calories { grid-column:1/-1; font-size:10px; }
.ingredient-calories .form-field { max-width:180px; margin-top:8px; }
.ingredient-calories summary { cursor:pointer; }
.form-field small { font-size:10px; font-weight:400; }
.recipe-summary label { display:flex; align-items:center; gap:8px; }
.recipe-summary input { width:57px; padding:6px 8px; }
.auth-tabs button { cursor:pointer; }
@media print { .app-sidebar,.topbar,.demo-banner,.app-footer,.breadcrumb,.paper-actions,.reviews-section,.meal-plan,.planner-select,.toast { display:none!important; } .page-body { padding:0; } .shopping-row.checked { display:none; } }
.mobile-brand,.mobile-user { display:none; }
.profile-actions { display:flex; justify-content:center; gap:10px; flex-wrap:wrap; }
@media(max-width:720px) {
  .topbar { display:grid; grid-template-columns:1fr auto auto; gap:10px; padding:13px 18px 8px; height:auto; }
  .mobile-brand { display:block; grid-column:1; grid-row:1; border:0; padding:0; background:none; font:19px Georgia,serif; text-align:left; }
  .mobile-user { display:block; grid-column:3; grid-row:1; border:0; background:none; padding:0; }
  .mobile-user .avatar { width:28px; height:28px; font-size:10px; }
  .topbar>.button { grid-column:2; grid-row:1; padding:8px 10px; font-size:10px; }
  .topbar .global-search { grid-column:1/-1; grid-row:2; max-width:none; width:100%; }
  .topbar .global-search input { font-size:11px; padding-top:8px; padding-bottom:8px; }
}

.trial-source { margin:8px 0 5px; color:var(--muted); font-size:11px; line-height:1.5; }
.trial-save { display:inline-flex; align-items:center; gap:6px; font-size:11px; margin-bottom:12px; }
.trial-save .icon { width:14px; height:14px; }
.paper-actions { flex-wrap:wrap; }
.planned-meal > .trial-save { font:11px var(--sans); }

/* Safety: reporting, account deletion and the legal links. */
.report-button { font-size:12px; color:var(--muted); text-decoration-color:var(--line); }
.review-card > .report-button, .reply > .report-button { display:inline-flex; margin-top:6px; }
.recipe-credit { color:var(--muted); }
.account-danger { margin-top:18px; font-size:13px; }
.danger-text { color:var(--tomato, #a04b42); text-decoration-color:currentColor; }
.delete-account-list { margin:12px 0 16px; padding-left:20px; display:grid; gap:6px; line-height:1.55; }
.app-dialog .form-field + .form-field { margin-top:14px; }
.legal-links { display:inline-flex; gap:14px; }
.legal-links a, .legal-consent a { color:inherit; text-decoration:underline; text-underline-offset:3px; }
.legal-consent { font-size:13px; color:var(--muted); margin:12px 0; line-height:1.5; }
.auth-card > .legal-links { margin-top:18px; font-size:13px; color:var(--muted); }
