/* Shared profile and photo-manager presentation. */
.profile-page {
	width:min(1120px, calc(100% - 32px));
	margin:32px auto 48px;
	color:#231f20;
}
.profile-page a { color:#9e2615; }
.profile-page a:hover { color:#6e180e; }
.profile-hero,
.photo-manager,
.profile-edit-panel,
.profile-dishes-section,
.profile-empty-state {
	box-sizing:border-box;
	background:#fff;
	border:1px solid #eadfda;
	border-radius:16px;
	box-shadow:0 8px 24px rgba(58, 33, 25, .08);
}
.profile-hero {
	display:grid;
	grid-template-columns:132px minmax(0, 1fr) auto;
	gap:24px;
	align-items:center;
	padding:28px;
}
.profile-avatar {
	width:132px;
	height:132px;
	border-radius:50%;
	object-fit:cover;
	background:#f6eee9;
	border:4px solid #fff;
	box-shadow:0 3px 10px rgba(58,33,25,.18);
}
.profile-eyebrow {
	margin:0 0 4px;
	color:#a1412c;
	font-weight:700;
	font-size:.78rem;
	letter-spacing:.08em;
	text-transform:uppercase;
}
.profile-hero h1,
.profile-section-heading h1,
.profile-section-heading h2,
.profile-empty-state h1 { margin:0; color:#2e1914; }
.profile-hero h1 { font-size:clamp(1.75rem, 4vw, 2.4rem); }
.profile-member-since { margin:6px 0 16px; color:#6a5d58; }
.profile-facts { display:grid; gap:8px; margin:0; font-size:.96rem; }
.profile-facts div { display:flex; gap:8px; }
.profile-facts dt { color:#715f58; font-weight:600; }
.profile-facts dd { margin:0; }
.profile-hero__actions { display:flex; flex-direction:column; align-items:stretch; gap:9px; min-width:150px; }
.profile-button,
.profile-text-button {
	box-sizing:border-box;
	border:1px solid #c9b6ae;
	border-radius:8px;
	padding:9px 13px;
	background:#fff;
	color:#6e1b10 !important;
	font:inherit;
	font-weight:700;
	line-height:1.2;
	text-align:center;
	text-decoration:none;
	cursor:pointer;
}
.profile-button:hover,
.profile-button:focus { border-color:#8e2113; background:#fff7f3; }
.profile-button--primary { background:#8e2113; border-color:#8e2113; color:#fff !important; }
.profile-button--primary:hover,
.profile-button--primary:focus { background:#6f190e; color:#fff !important; }
.profile-button:disabled { cursor:default; opacity:.62; }
.profile-text-button { border-color:transparent; padding:7px 5px; color:#a12d1b !important; background:transparent; }
.profile-text-button:hover { text-decoration:underline; background:transparent; }
.profile-edit-panel { margin-top:18px; padding:0 24px 18px; }
.profile-edit-panel summary { padding:17px 0; cursor:pointer; font-weight:700; color:#5e2b21; }
.profile-location-form { display:flex; flex-wrap:wrap; gap:14px; align-items:end; }
.profile-location-form label { display:grid; gap:5px; font-weight:700; color:#654b43; }
.profile-location-form input { height:auto; min-width:190px; padding:9px 10px; border:1px solid #cbbab3; border-radius:7px; font:inherit; }
.profile-form-status { flex-basis:100%; min-height:1.25em; margin:0; color:#5a463f; }
.profile-dishes-section { margin-top:18px; padding:28px; }
.profile-section-heading { display:flex; align-items:end; justify-content:space-between; gap:18px; margin-bottom:22px; }
.profile-section-heading h2 { font-size:clamp(1.35rem, 3vw, 1.85rem); }
.profile-section-heading--compact { align-items:start; margin-bottom:16px; }
.profile-result-count { margin:0; color:#705e57; white-space:nowrap; }
.profile-filter-row { display:grid; gap:7px; margin-bottom:22px; }
.profile-filter-label { color:#4b3832; font-weight:700; }
.profile-filter-control { display:flex; width:min(650px, 100%); border:1px solid #bea9a0; border-radius:9px; background:#fff; overflow:hidden; }
.profile-filter-control:focus-within { border-color:#8e2113; box-shadow:0 0 0 3px rgba(142,33,19,.12); }
.profile-filter-control input { min-width:0; flex:1; padding:11px 13px; border:0; outline:0; font:inherit; }
.profile-filter-control button { border:0; border-left:1px solid #eadfda; padding:0 14px; color:#7e2114; background:#fff8f5; font:inherit; font-weight:700; cursor:pointer; }
.profile-dish-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:18px; }
.profile-dish-card { overflow:hidden; border:1px solid #e7d9d3; border-radius:12px; background:#fff; box-shadow:0 2px 7px rgba(48,27,20,.06); }
.profile-dish-card:hover { border-color:#c29688; box-shadow:0 6px 16px rgba(48,27,20,.12); transform:translateY(-1px); }
.profile-dish-card__image { display:block; background:#f2eae6; }
.profile-dish-card__image img { display:block; width:100%; aspect-ratio:4 / 3; object-fit:cover; }
.profile-dish-card__content { padding:13px; }
.profile-dish-card h3 { margin:0 0 5px; font-size:1.08rem; line-height:1.25; }
.profile-dish-card h3 a { color:#351b15; text-decoration:none; }
.profile-dish-card h3 a:hover { color:#972919; text-decoration:underline; }
.profile-dish-card__restaurant,
.profile-dish-card__location { margin:0; color:#6c5a53; font-size:.92rem; }
.profile-dish-card__location { margin-top:8px; min-height:1.25em; }
.profile-dish-card__footer { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:12px; }
.profile-rating { color:#b64d21; font-size:.95rem; letter-spacing:.02em; }
.profile-rating__number { color:#6c5a53; font-size:.84rem; letter-spacing:0; }
.profile-empty-grid { grid-column:1 / -1; margin:0; padding:32px 18px; color:#6d5a53; text-align:center; border:1px dashed #d6c4bc; border-radius:10px; }
.profile-pagination { display:flex; flex-wrap:wrap; justify-content:center; gap:7px; margin-top:24px; }
.profile-pagination button { min-width:38px; }
.profile-pagination button[aria-current='page'] { background:#8e2113; border-color:#8e2113; color:#fff !important; }
.photo-manager { padding:28px; }
.photo-manager__intro { max-width:650px; margin:8px 0 0; color:#66544d; }
.profile-back-link { display:inline-block; margin-bottom:16px; font-weight:700; text-decoration:none; }
.photo-upload { display:grid; gap:8px; margin:2px 0 32px; padding:18px; border:1px solid #e2d0c9; border-radius:12px; background:#fff8f5; }
.photo-upload__label { font-weight:700; color:#4d2c24; }
.photo-upload__controls { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.photo-upload__controls input { max-width:100%; }
.photo-upload__hint,
.photo-upload__status { min-height:1.2em; margin:0; color:#6c5850; font-size:.9rem; }
.photo-manager__section + .photo-manager__section { margin-top:34px; }
.photo-grid { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:16px; }
.photo-card { overflow:hidden; border:1px solid #e5d8d2; border-radius:11px; background:#fff; }
.photo-card.is-current { border:2px solid #a33a24; }
.photo-card__image-wrap { position:relative; background:#f1e9e5; }
.photo-card__image-wrap img { display:block; width:100%; aspect-ratio:1; object-fit:cover; }
.photo-card__current { position:absolute; right:8px; bottom:8px; padding:4px 7px; border-radius:999px; background:#64170e; color:#fff; font-size:.74rem; font-weight:700; }
.photo-card__details { min-height:2.5em; padding:10px 11px 0; }
.photo-card__details p { margin:0; color:#58443d; font-size:.88rem; line-height:1.3; }
.photo-card__actions { display:flex; flex-wrap:wrap; gap:4px; align-items:center; padding:9px 10px; }
.profile-empty-state { max-width:570px; margin:68px auto; padding:38px; text-align:center; }
.profile-empty-state p { margin:10px 0 22px; color:#6d5b54; }
@media (max-width:800px) {
	.profile-dish-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
	.photo-grid { grid-template-columns:repeat(3, minmax(0, 1fr)); }
}
@media (max-width:620px) {
	.profile-page { width:min(100% - 20px, 1120px); margin:14px auto 32px; }
	.profile-hero { grid-template-columns:84px minmax(0, 1fr); gap:16px; padding:20px; }
	.profile-avatar { width:84px; height:84px; }
	.profile-hero__actions { grid-column:1 / -1; display:grid; grid-template-columns:1fr 1fr; }
	.profile-facts div { display:block; }
	.profile-facts dd { margin-top:2px; }
	.profile-dishes-section,
	.photo-manager { padding:20px; }
	.profile-section-heading { align-items:start; flex-direction:column; gap:6px; }
	.profile-dish-grid { grid-template-columns:1fr; }
	.photo-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
