:root { --brand: #963d1d; }
html { font-size: 16px; }
body { color: #292b25; background: #fffdf9; }
a { color: var(--brand); }
.navbar-brand img { max-height: 68px; object-fit: contain; }
.btn-primary { background: var(--brand); border-color: var(--brand); }
.btn-primary:hover, .btn-primary:focus { background: #743014; border-color: #743014; }
.hero { background: linear-gradient(90deg, rgba(255,250,240,.98) 10%, rgba(255,250,240,.8) 52%, rgba(255,250,240,.05)), url('../images/slider.png') center/cover; min-height: 400px; }
.hero-copy { max-width: 640px; }
.home-brand-illustration { display:block; width:100%; max-width:280px; height:auto; margin-inline:auto; }
h1 { font-size: clamp(2rem, 4vw, 3.25rem); margin-bottom: 1.25rem; }
h2 { font-size: 1.65rem; }
.card { border-color: #e7ddcc; }
.form-panel, .plan-card { max-width: 680px; }
.field-validation-error, .validation-summary-errors { color: #b3261e; }
.input-validation-error { border-color: #b3261e; }
.panel { padding: 1rem 0; border-bottom: 1px solid #e7ddcc; }
.panel-heading h5 { font-size: 1.1rem; }
.panel-collapse.in { display: block; }
footer { background: #f4efe6; }
.message-text { white-space: pre-wrap; overflow-wrap: anywhere; }
.admin-content .card h2, .admin-content .card h3, .admin-content .card p, .admin-content .form-check-label { overflow-wrap: anywhere; }

.account-settings .nav-pills { --bs-nav-link-color:var(--brand); --bs-nav-link-hover-color:#743014; --bs-nav-pills-link-active-bg:var(--brand); --bs-nav-pills-link-active-color:#fff; gap:.5rem; }
.account-settings .nav-pills .nav-link { padding:.8rem 1rem; border:1px solid #e7ddcc; border-radius:.6rem; background:#fffdf9; }
.account-settings .nav-pills .nav-link:hover { background:#f4efe6; border-color:#cda58b; }
.account-settings .nav-pills .nav-link.active { color:#fff; background:var(--brand); border-color:var(--brand); }
.account-settings .nav-pills .nav-link.active:hover { background:#743014; border-color:#743014; }
.account-settings .nav-pills .nav-link:focus-visible { outline:3px solid #963d1d; outline-offset:3px; box-shadow:none; }

.chef-heading { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:2rem; }
.eyebrow { color:#7a4e32; font-size:.8rem; font-weight:700; letter-spacing:.12em; }
.chef-card { border-radius:1rem; box-shadow:0 4px 20px rgba(60,40,20,.04); }
.chef-photo { width:100%; height:260px; object-fit:cover; }
.profile-copy { white-space:pre-wrap; }
.search-chef-card { overflow:hidden; border-radius:1.1rem; background:#fff; box-shadow:0 6px 24px rgba(60,40,20,.06); }
.search-chef-visual { position:relative; height:160px; min-width:0; overflow:hidden; background:#f1e9dc; }
.search-chef-visual img { display:block; width:100%; max-width:100%; height:160px; object-fit:cover; }
.search-chef-placeholder { display:flex; height:100%; flex-direction:column; align-items:center; justify-content:center; gap:12px; background:radial-gradient(ellipse at top left,#fff9ed,transparent 65%),linear-gradient(120deg,#f0e4d3,#e4e9da); color:#4d5b42; font-family:Georgia,serif; font-size:1rem; }
.search-chef-initials { display:grid; place-items:center; width:84px; height:84px; border:1px solid #b8b59c; border-radius:50%; background:rgba(255,253,249,.7); font-size:2rem; letter-spacing:.05em; }
.search-chef-placeholder { padding:0 16px 36px; gap:8px; font-size:.85rem; }
.search-chef-initials { width:64px; height:64px; flex-shrink:0; font-size:1.6rem; }
.search-chef-distance { position:absolute; right:16px; bottom:16px; padding:7px 12px; border-radius:30px; background:#fffdf9; color:#35432e; font-size:.8rem; font-weight:700; box-shadow:0 2px 8px rgba(0,0,0,.1); }
.search-chef-body { display:flex; flex-direction:column; padding:20px; min-width:0; }
.search-chef-body h2 { font-size:1.65rem; line-height:1.25; margin-bottom:8px; }
.search-chef-body h2 a { color:#292b25; text-decoration:none; }
.search-chef-body h2 a:hover { color:var(--brand); text-decoration:underline; }
.search-chef-body .eyebrow { font-size:.68rem; }
.search-chef-name { margin-bottom:8px; color:#655747; font-weight:600; }
.search-chef-location { color:#65675b; font-size:.83rem; margin-bottom:18px; }
.search-chef-intro { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; line-height:1.65; margin-bottom:20px; }
.search-chef-highlights { display:grid; gap:12px; padding:18px 0; margin:0 0 22px; border-top:1px solid #eee8dd; }
.search-chef-highlights dt { font-size:.72rem; color:#526046; margin-bottom:4px; }
.search-chef-highlights dd { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; font-size:.88rem; line-height:1.5; margin:0; }
.search-chef-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-top:auto; }
.search-chef-actions .btn { padding:10px 16px; border-radius:8px; font-size:.85rem; font-weight:600; }
.search-chef-phone { font-size:.83rem; }
.search-chef-body h2, .search-chef-body p, .search-chef-highlights dd, .search-chef-phone { overflow-wrap:anywhere; }
.search-chef-card a:focus-visible { outline:3px solid var(--brand); outline-offset:4px; }
.chef-form { max-width:1000px; }
.chef-dashboard { overflow-wrap:anywhere; }
.dashboard-nav { display:flex; flex-wrap:wrap; gap:.5rem; padding:.6rem; margin-bottom:1.5rem; border:1px solid #e7ddcc; border-radius:1rem; background:#fff; }
.dashboard-nav a { padding:.6rem .9rem; border-radius:.65rem; text-decoration:none; color:#414b3a; font-weight:600; }
.dashboard-nav a.active { background:#35452e; color:#fff; }
.dashboard-nav a:hover { background:#f4eddf; color:#292b25; }
.dashboard-hero { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:2rem; padding:2.5rem; margin-bottom:2rem; background:#f7efdf; border:1px solid #e7ddcc; border-radius:1.25rem; }
.dashboard-hero h1 { max-width:650px; font-size:clamp(2rem,3.4vw,3rem); }
.dashboard-hero .lead { font-size:1.08rem; line-height:1.7; }
.dashboard-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.5rem; }
.dashboard-business { border-left:1px solid #dfd1ba; padding-left:2rem; min-width:0; }
.dashboard-business img,.dashboard-monogram { width:96px; height:96px; border-radius:1rem; margin-bottom:1rem; }
.dashboard-business img { object-fit:cover; }
.dashboard-monogram { display:flex; align-items:center; justify-content:center; background:#35452e; color:#fff; font-size:1.8rem; font-weight:600; }
.dashboard-business p { font-size:.9rem; }
.dashboard-business .badge { white-space:normal; text-align:left; line-height:1.5; }
.dashboard-checklist { list-style:none; margin:1.5rem 0 0; padding:0; }
.dashboard-checklist li { display:flex; gap:1rem; padding:1.25rem 0; border-top:1px solid #e7ddcc; }
.dashboard-checklist li > div { min-width:0; flex:1; }
.dashboard-step { display:flex; align-items:center; justify-content:center; flex:0 0 38px; height:38px; border-radius:50%; background:#f4eddf; color:#7a4e32; font-weight:700; font-size:.8rem; }
.dashboard-checklist h3 { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; }
.dashboard-checklist p { margin-bottom:.5rem; }
.dashboard-state { font-size:.72rem; font-weight:600; color:#43513a; padding:.25rem .5rem; background:#edf1e8; border-radius:.4rem; }
.dashboard-guidance { padding:1.5rem; border-radius:1rem; background:#edf1e8; }
.chef-dashboard a:focus-visible { outline:3px solid var(--brand); outline-offset:3px; }
.chef-form [id] { scroll-margin-top:1.5rem; }
@media(max-width:991.98px) { .dashboard-hero { grid-template-columns:minmax(0,1fr); padding:1.5rem; } .dashboard-business { border-left:0; padding-left:0; border-top:1px solid #dfd1ba; padding-top:1.5rem; } }
@media(max-width:575.98px) { .dashboard-nav a { font-size:.85rem; padding:.5rem .65rem; } .dashboard-checklist li { gap:.65rem; } }
.chef-map-panel { margin:28px 0; padding:24px; border:1px solid #e7ddcc; border-radius:16px; background:#fff; }
.chef-map-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:10px; }
.chef-map-heading h2 { margin:0; font-size:1.4rem; }
.chef-map-heading > a { font-size:.78rem; flex-shrink:0; }
.chef-map-description { font-size:.88rem; color:#65675b; margin-bottom:18px; }
.chef-location-map { height:360px; border-radius:12px; background:#eee8dd; z-index:0; }
.chef-map-status { margin:12px 0 0; }
.chef-map-pin { display:grid; place-items:center; border:3px solid #fffdf9; border-radius:50%; background:#963d1d; color:#fff; box-shadow:0 2px 8px rgba(0,0,0,.3); font-weight:700; font-size:14px; }
.chef-map-popup { overflow-wrap:anywhere; }
.chef-map-popup .chef-map-popup-location { margin:0 0 12px; color:#65675b; font-size:.8rem; }
.chef-map-popup-chef { padding:12px 0; border-top:1px solid #e7ddcc; }
.chef-map-popup-chef strong { display:block; margin-bottom:8px; }
.chef-map-popup-chef > div { display:flex; flex-wrap:wrap; gap:8px 16px; }
.chef-map-popup-chef a { color:var(--brand); }
.chef-map-panel a:focus-visible, .chef-map-panel .leaflet-marker-icon:focus-visible { outline:3px solid #963d1d; outline-offset:3px; }
@media(max-width:575px) { .chef-map-panel { padding:18px 12px; } .chef-map-heading { align-items:flex-start; flex-direction:column; gap:8px; } .chef-location-map { height:300px; } }
.chef-profile { padding-bottom:1rem; }
.chef-profile p, .chef-profile h1, .chef-profile h2, .chef-profile dd, .chef-profile a, .chef-profile figcaption { overflow-wrap:anywhere; }
.profile-search-link { display:inline-block; margin:0 0 22px; font-size:.88rem; text-decoration:none; }
.profile-search-link:hover { text-decoration:underline; }
.profile-hero { display:grid; grid-template-columns:1.2fr 1fr; border:1px solid #e7ddcc; border-radius:22px; overflow:hidden; margin-bottom:32px; background:#f6f0e6; }
.profile-hero-copy { padding:clamp(28px,4vw,56px); align-self:center; min-width:0; }
.profile-hero h1 { font-family:Georgia,serif; font-size:clamp(2.2rem,4.5vw,4rem); line-height:1.1; letter-spacing:-.035em; margin-bottom:16px; }
.profile-person { font-size:1.25rem; color:#655747; margin-bottom:22px; }
.profile-location { font-weight:600; margin-bottom:5px; }
.profile-radius { font-size:.87rem; color:#65675b; margin-bottom:26px; }
.profile-hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:20px; }
.profile-hero-actions .btn, .profile-contact .btn { padding:12px 20px; border-radius:9px; font-weight:600; }
.profile-section-link { font-size:.88rem; text-underline-offset:4px; }
.profile-hero-visual { min-height:340px; background:#e5e9dc; }
.profile-hero-visual > img { width:100%; height:100%; max-height:520px; object-fit:cover; display:block; }
.profile-monogram { display:flex; height:100%; min-height:340px; padding:32px; flex-direction:column; align-items:center; justify-content:center; gap:22px; background:radial-gradient(ellipse at top left,#fff9ed,transparent 65%),linear-gradient(120deg,#f0e4d3,#e4e9da); color:#4d5b42; text-align:center; font-family:Georgia,serif; }
.profile-monogram > span { display:grid; place-items:center; width:116px; height:116px; border:1px solid #b8b59c; border-radius:50%; background:rgba(255,253,249,.65); font-size:2.8rem; }
.profile-monogram p { font-size:1.55rem; line-height:1.4; margin:0; }
.profile-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:28px; align-items:start; }
.profile-main, .profile-sidebar { display:grid; gap:24px; min-width:0; }
.profile-panel { padding:32px; border:1px solid #e7ddcc; border-radius:16px; background:white; }
.chef-profile .eyebrow { font-size:.68rem; margin-bottom:12px; }
.profile-panel h2 { font-size:1.65rem; margin-bottom:18px; }
.profile-panel .profile-copy { line-height:1.8; margin-bottom:0; }
.profile-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:24px 0 0; padding-top:24px; border-top:1px solid #eee8dd; }
.profile-detail-grid dt { color:#526046; margin-bottom:8px; font-size:.9rem; }
.profile-detail-grid dd { font-size:.94rem; }
.profile-contact { background:#293f34; color:#fffdf9; border-radius:16px; padding:28px; }
.profile-contact-eyebrow { color:#f2d5b4; font-size:.68rem; letter-spacing:.12em; font-weight:700; margin-bottom:12px; }
.profile-contact h2 { font-family:Georgia,serif; font-size:1.9rem; margin-bottom:14px; }
.profile-contact > p:not(.profile-contact-eyebrow) { color:#e0e7dd; font-size:.9rem; line-height:1.7; }
.profile-contact .btn { display:block; background:#f3d7b6; border-color:#f3d7b6; color:#293f34; margin:22px 0 12px; }
.profile-contact .btn:hover { background:#ffe6c8; border-color:#ffe6c8; }
.profile-contact-address, .profile-contact-link { display:block; color:#fffdf9; font-size:.88rem; padding:7px 0; text-underline-offset:4px; }
.profile-contact-address:hover, .profile-contact-link:hover { color:#f3d7b6; }
.profile-contact .profile-contact-note { border-top:1px solid #617164; padding-top:18px; margin:18px 0 0; font-size:.79rem; }
.profile-area { background:#f2f3eb; border:1px solid #e0e4d5; border-radius:16px; padding:28px; }
.profile-area h2 { font-size:1.15rem; margin-bottom:18px; }
.profile-area-place { font-weight:600; margin-bottom:6px; }
.profile-area p { font-size:.9rem; line-height:1.7; margin-bottom:0; }
.profile-area h3 { margin:22px 0 8px; font-size:.95rem; }
.profile-gallery { padding-top:40px; }
.profile-gallery h2 { font-family:Georgia,serif; font-size:2rem; margin-bottom:24px; }
.profile-gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.profile-gallery figure { min-width:0; margin:0; }
.profile-gallery a { display:block; border-radius:14px; overflow:hidden; background:#f1e9dc; }
.profile-gallery img { display:block; width:100%; height:260px; object-fit:cover; }
.profile-gallery figcaption { padding:12px 2px 0; color:#65675b; font-size:.87rem; }
.chef-profile a:focus-visible { outline:3px solid var(--brand); outline-offset:4px; }
.profile-contact a:focus-visible { outline-color:#f3d7b6; }
#profile-services { scroll-margin-top:24px; }
@media(max-width:991px) { .profile-layout { grid-template-columns:minmax(0,1fr) 290px; gap:20px; } .profile-panel { padding:24px; } .profile-contact, .profile-area { padding:22px; } .profile-detail-grid { grid-template-columns:1fr; } .profile-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:767px) { .profile-hero, .profile-layout { grid-template-columns:1fr; } .profile-hero-visual, .profile-monogram { min-height:240px; } .profile-hero-visual > img { height:260px; } .profile-monogram { gap:16px; } .profile-monogram > span { width:90px; height:90px; font-size:2.2rem; } .profile-monogram p { font-size:1.25rem; } .profile-panel { padding:24px 20px; } .profile-gallery-grid { gap:18px; } .profile-gallery img { height:220px; } }
@media(max-width:575px) { .profile-gallery-grid { grid-template-columns:1fr; } .profile-hero-copy { padding:28px 22px; } }
@media(max-width:600px) { .chef-heading { align-items:flex-start; flex-direction:column; } }

.admin-shell { display:grid; grid-template-columns:225px minmax(0,1fr); border:1px solid #e5e6df; border-radius:18px; overflow:hidden; background:#f6f7f3; box-shadow:0 12px 40px rgba(35,49,39,.06); }
.admin-sidebar { display:flex; flex-direction:column; padding:28px 18px; background:#243c32; color:#f8faf5; }
.admin-sidebar-brand { display:flex; gap:10px; align-items:center; margin-bottom:38px; }
.admin-brand-mark { display:grid; place-items:center; width:38px; height:38px; flex-shrink:0; border-radius:12px; background:#e8b789; color:#243c32; font-size:1.4rem; font-weight:800; }
.admin-sidebar-brand strong { display:block; font-size:.88rem; }
.admin-sidebar-brand span:not(.admin-brand-mark) { display:block; margin-top:3px; color:#bdcbbf; font-size:.76rem; }
.admin-nav-label { padding:0 12px; color:#b5c4b8; font-size:.66rem; font-weight:700; letter-spacing:.14em; }
.admin-nav { display:flex; flex-direction:column; gap:6px; }
.admin-nav a { display:flex; gap:12px; align-items:center; padding:12px; color:#dbe4da; border-radius:9px; text-decoration:none; font-size:.86rem; }
.admin-nav a:hover { background:#345045; color:white; }
.admin-nav a.is-active { background:#e6eddf; color:#243c32; font-weight:700; }
.admin-nav-dot { width:7px; height:7px; border:1px solid currentColor; border-radius:50%; flex-shrink:0; }
.is-active .admin-nav-dot { background:currentColor; }
.admin-sidebar-footer { margin-top:auto; padding:44px 12px 0; font-size:.78rem; color:#bdcbbf; }
.admin-sidebar-footer a { color:#f3d1af; text-decoration:none; }
.admin-workspace { min-width:0; }
.admin-topbar { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:18px 28px; background:#fff; border-bottom:1px solid #e5e6df; font-size:.68rem; letter-spacing:.09em; color:#626e61; font-weight:700; }
.admin-access-badge { background:#eef3e9; color:#355440; padding:6px 10px; border-radius:20px; font-size:.66rem; letter-spacing:0; }
.admin-content { padding:30px 28px; }
.admin-content h1 { font-size:clamp(1.75rem,3vw,2.2rem); margin-bottom:8px; letter-spacing:-.035em; }
.admin-content h2 { font-size:1.12rem; font-weight:700; }
.admin-page-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:28px; }
.admin-page-heading .eyebrow { font-size:.62rem; margin-bottom:8px; }
.admin-page-heading p:last-child { font-size:.85rem; color:#687366; margin:0; }
.admin-page-heading .btn { flex-shrink:0; font-size:.78rem; }
.admin-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:24px; }
.admin-stat { display:flex; flex-direction:column; gap:12px; padding:20px 16px; background:#fff; border:1px solid #e1e5dc; border-radius:12px; text-decoration:none; color:#293a30; transition:box-shadow .15s; }
.admin-stat:hover { color:#293a30; box-shadow:0 4px 16px rgba(35,49,39,.12); }
.admin-stat-label { font-size:.75rem; font-weight:600; }
.admin-stat strong { font-size:2rem; line-height:1; letter-spacing:-.04em; }
.admin-stat > span:last-child { font-size:.64rem; color:#687366; }
.admin-stat-featured { background:#e8eee0; border-color:#d9e2cc; }
.admin-dashboard-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:20px; }
.admin-panel { padding:24px; background:#fff; border:1px solid #e1e5dc; border-radius:12px; min-width:0; }
.admin-panel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:20px; }
.admin-panel-heading h2 { margin-bottom:6px; }
.admin-panel-heading p { font-size:.76rem; color:#687366; margin:0; }
.admin-panel-heading a { font-size:.76rem; white-space:nowrap; }
.admin-action { display:flex; gap:12px; align-items:center; padding:16px 0; border-top:1px solid #edf0e8; text-decoration:none; color:#293a30; }
.admin-action:hover { color:var(--brand); }
.admin-action > span:nth-child(2) { flex:1; min-width:0; }
.admin-action strong { display:block; font-size:.85rem; }
.admin-action small { display:block; margin-top:4px; font-size:.72rem; color:#687366; }
.admin-action-icon { display:grid; place-items:center; width:34px; height:34px; flex-shrink:0; border-radius:10px; background:#f4eee5; font-size:.7rem; font-weight:700; color:#89644b; }
.admin-small-tag { padding:5px 8px; border-radius:6px; background:#f4f5ef; font-size:.6rem; color:#687366; white-space:nowrap; }
.admin-dataset-count { font-size:2.2rem; font-weight:700; letter-spacing:-.04em; margin-bottom:10px; }
.admin-dataset-count span { font-size:.8rem; font-weight:400; color:#687366; letter-spacing:0; }
.admin-dataset-panel .eyebrow { font-size:.6rem; margin-bottom:8px; }
.admin-dataset-panel > p:not(.admin-dataset-count) { font-size:.8rem; color:#687366; overflow-wrap:anywhere; }
.admin-dataset-status { font-weight:600; }
.admin-dataset-panel .btn { margin-top:8px; font-size:.78rem; }
.admin-inbox-panel { grid-column:1/-1; }
.admin-empty-state { padding:28px 16px; text-align:center; background:#fafbf7; border:1px dashed #dce2d3; border-radius:10px; }
.admin-empty-symbol { display:block; color:#7c9275; font-size:2rem; margin-bottom:12px; }
.admin-empty-state h3 { font-size:.95rem; }
.admin-empty-state p { font-size:.8rem; color:#687366; margin:0; }
.admin-message { display:block; padding:16px 0; border-top:1px solid #edf0e8; text-decoration:none; color:#293a30; }
.admin-message:hover { color:var(--brand); }
.admin-message > div { display:flex; justify-content:space-between; gap:12px; font-size:.85rem; }
.admin-message time { color:#687366; font-size:.7rem; flex-shrink:0; }
.admin-message p { font-size:.8rem; color:#687366; margin:6px 0 0; overflow-wrap:anywhere; }
.admin-shell a:focus-visible { outline:3px solid #c77843; outline-offset:3px; }
.broadcast-preview { padding:20px; border:1px solid #e1e5dc; border-radius:10px; background:#fafbf7; white-space:pre-wrap; overflow-wrap:anywhere; }
@media(max-width:1199px) { .admin-stats { grid-template-columns:repeat(2,minmax(0,1fr)); } .admin-page-heading { align-items:flex-start; flex-direction:column; } .admin-dashboard-grid { grid-template-columns:1fr; } }
@media(max-width:767px) { .admin-shell { grid-template-columns:1fr; } .admin-sidebar { padding:18px; } .admin-sidebar-brand { margin-bottom:18px; } .admin-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); } .admin-sidebar-footer { display:none; } .admin-content { padding:24px 16px; } .admin-topbar { padding:16px; } .admin-panel { padding:20px 16px; } }
@media(max-width:380px) { .admin-stats { grid-template-columns:1fr; } .admin-nav a { padding:10px 8px; font-size:.8rem; } .admin-message > div { flex-direction:column; gap:4px; } }
