/* =========================================================
   AskPerTask app (PWA) — ASKPERTASK-PWA-FULL-BUILD-1A
   Brand tokens are the site's own (--aptv2-*, theme homepage-v2.css), as in Easy mode (apt-lite.css).
   Mobile first; built for people new to technology: body 18px, controls >= 52px, one task per screen.
   Primary actions use --aptv2-green-dark (white text 4.9:1).
   ========================================================= */

:root {
	--apt-pwa-text: var(--aptv2-text, #1A1A1A);
	--apt-pwa-muted: #4B5563;
	--apt-pwa-line: var(--aptv2-border, #E5E7EB);
	--apt-pwa-line-strong: #9CA3AF;
	--apt-pwa-bg: var(--aptv2-bg-soft, #F7F8F7);
	--apt-pwa-card: var(--aptv2-bg, #FFFFFF);
	--apt-pwa-primary: var(--aptv2-green-dark, #168238);
	--apt-pwa-primary-hover: #11692D;
	--apt-pwa-primary-soft: var(--aptv2-green-light, #EAF7EE);
	--apt-pwa-navy: var(--aptv2-navy, #1A2E52);
	--apt-pwa-focus: var(--aptv2-blue, #2D6CDF);
	--apt-pwa-danger: #B42318;
	--apt-pwa-amber: var(--aptv2-amber-dark, #B45309);
	--apt-pwa-radius: var(--aptv2-radius-md, 12px);
	--apt-pwa-radius-lg: var(--aptv2-radius-lg, 16px);
	--apt-pwa-shadow: var(--aptv2-shadow-md, 0 4px 12px rgba(16, 24, 40, 0.06));
	--apt-pwa-nav-h: 68px;
	--apt-pwa-font: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

/* ---------- Document ---------- */
html { -webkit-text-size-adjust: 100%; }

body.apt-pwa-body {
	margin: 0;
	min-height: 100vh;
	background: var(--apt-pwa-bg);
	color: var(--apt-pwa-text);
	font-family: var(--apt-pwa-font);
	font-size: 18px;
	line-height: 1.5;
	overflow-x: hidden;
	padding-bottom: calc(var(--apt-pwa-nav-h) + env(safe-area-inset-bottom, 0px) + 16px);
}

.apt-pwa-body *,
.apt-pwa-body *::before,
.apt-pwa-body *::after { box-sizing: border-box; }

.apt-pwa-body img { max-width: 100%; height: auto; }

.apt-pwa-body a { color: var(--apt-pwa-primary); }

.apt-pwa-body :focus-visible {
	outline: 3px solid var(--apt-pwa-focus);
	outline-offset: 2px;
}

/* The hidden attribute always wins inside the app (owner acceptance: .apt-pwa-options { display: flex } kept every
   category's service types on screen, stacked, although only the chosen category's were enabled). */
.apt-pwa-body [hidden],
.apt-pwa-nav [hidden] { display: none !important; }

.apt-pwa-sr {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}

.apt-pwa-skip {
	position: absolute; left: 8px; top: -60px;
	background: #fff; padding: 12px 16px; border-radius: 8px; z-index: 100;
}
.apt-pwa-skip:focus { top: 8px; }

/* ---------- Header ---------- */
.apt-pwa-header {
	position: sticky; top: 0; z-index: 30;
	background: var(--apt-pwa-card);
	border-bottom: 1px solid var(--apt-pwa-line);
	padding-top: env(safe-area-inset-top, 0px);
}

.apt-pwa-header__inner {
	max-width: 720px; margin: 0 auto;
	display: flex; align-items: center; gap: 8px;
	min-height: 64px; padding: 6px 12px 6px 16px;
}

.apt-pwa-header__back,
.apt-pwa-bell {
	display: inline-flex; align-items: center; justify-content: center;
	width: 48px; height: 48px; flex: 0 0 48px;
	border-radius: 999px; color: var(--apt-pwa-navy); text-decoration: none;
	font-size: 20px; position: relative;
}
.apt-pwa-header__back { margin-left: -8px; }
.apt-pwa-header__back:hover,
.apt-pwa-bell:hover { background: var(--apt-pwa-bg); }

.apt-pwa-brand {
	display: inline-flex; align-items: center; gap: 10px;
	color: var(--apt-pwa-navy) !important; text-decoration: none;
	min-height: 48px; margin-right: auto; min-width: 0;
}
.apt-pwa-brand img { width: 42px; height: 32px; object-fit: contain; flex: 0 0 auto; }
.apt-pwa-brand__text { display: flex; flex-direction: column; line-height: 1.1; min-width: 0; }
.apt-pwa-brand__name { font-size: 20px; font-weight: 700; }
.apt-pwa-brand__tag { font-size: 13px; font-weight: 500; color: var(--apt-pwa-muted); margin-top: 2px; }

.apt-pwa-header__login {
	display: inline-flex; align-items: center; min-height: 48px; padding: 0 16px;
	border: 2px solid var(--apt-pwa-primary); border-radius: 999px;
	font-weight: 700; font-size: 16px; text-decoration: none;
}

.apt-pwa-badge {
	position: absolute; top: 4px; right: 2px;
	min-width: 20px; height: 20px; padding: 0 5px;
	border-radius: 999px; background: var(--apt-pwa-danger); color: #fff;
	font-size: 12px; font-weight: 700; line-height: 20px; text-align: center;
	border: 2px solid #fff; box-sizing: content-box;
}
.apt-pwa-badge--inline { position: static; display: inline-block; border: 0; }

/* ---------- Main ---------- */
.apt-pwa {
	display: block; max-width: 720px; margin: 0 auto; padding: 16px;
}
.apt-pwa:focus { outline: none; }

.apt-pwa-section { margin: 0 0 24px; }
.apt-pwa-section + .apt-pwa-section { margin-top: 8px; }

.apt-pwa-h1 {
	display: block; margin: 4px 0 8px;
	font-size: 26px; line-height: 1.2; font-weight: 700; color: var(--apt-pwa-navy);
	padding: 0; border: 0;
}
.apt-pwa-h2 {
	display: block; margin: 0 0 8px;
	font-size: 21px; line-height: 1.25; font-weight: 700; color: var(--apt-pwa-navy);
	padding: 0;
}
.apt-pwa-lede { margin: 0 0 16px; font-size: 18px; color: var(--apt-pwa-muted); }
.apt-pwa-hint { margin: 0 0 8px; font-size: 16px; color: var(--apt-pwa-muted); }
.apt-pwa-center { text-align: center; }
.apt-pwa-empty { margin: 8px 0 16px; color: var(--apt-pwa-muted); }
.apt-pwa-body-text { margin: 12px 0; white-space: normal; overflow-wrap: anywhere; }

.apt-pwa-titlebar {
	display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px;
}
.apt-pwa-titlebar .apt-pwa-h1 { margin: 0; }

/* ---------- Buttons ---------- */
.apt-pwa-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 56px; padding: 12px 22px;
	border-radius: 999px; border: 2px solid transparent;
	font: inherit; font-size: 18px; font-weight: 700; line-height: 1.2;
	text-decoration: none !important; cursor: pointer; text-align: center;
	-webkit-tap-highlight-color: transparent;
}
.apt-pwa-btn--primary { background: var(--apt-pwa-primary); color: #fff !important; }
.apt-pwa-btn--primary:hover { background: var(--apt-pwa-primary-hover); }
.apt-pwa-btn--secondary { background: var(--apt-pwa-navy); color: #fff !important; }
.apt-pwa-btn--ghost { background: var(--apt-pwa-card); color: var(--apt-pwa-navy) !important; border-color: var(--apt-pwa-line-strong); }
.apt-pwa-btn--ghost:hover { border-color: var(--apt-pwa-navy); }
.apt-pwa-btn--block { display: flex; width: 100%; margin: 0 0 12px; }
.apt-pwa-btn--small { min-height: 48px; padding: 8px 16px; font-size: 16px; }
.apt-pwa-btn[disabled] { opacity: .55; cursor: not-allowed; }

.apt-pwa-link {
	background: none; border: 0; padding: 8px 4px; min-height: 44px;
	font: inherit; font-size: 17px; font-weight: 700; color: var(--apt-pwa-primary);
	text-decoration: underline; text-underline-offset: 3px; cursor: pointer;
	display: inline-flex; align-items: center;
}

/* ---------- Home tiles ---------- */
.apt-pwa-tiles {
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px;
}
.apt-pwa-tiles > li { min-width: 0; }

.apt-pwa-tile {
	position: relative; display: flex; flex-direction: column; height: 100%;
	background: var(--apt-pwa-card); border: 2px solid var(--apt-pwa-line);
	border-radius: var(--apt-pwa-radius-lg); overflow: hidden;
	text-decoration: none; color: var(--apt-pwa-text) !important;
	box-shadow: var(--aptv2-shadow-sm, 0 1px 2px rgba(16, 24, 40, 0.05));
	cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.apt-pwa-tile:hover { border-color: var(--apt-pwa-primary); }

.apt-pwa-tile__media {
	display: flex; align-items: center; justify-content: center;
	aspect-ratio: 4 / 3; background: var(--apt-pwa-primary-soft); overflow: hidden;
}
.apt-pwa-tile__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.apt-pwa-tile--icon .apt-pwa-tile__media { background: var(--aptv2-navy-light, #E8EBF2); }
.apt-pwa-tile--icon .apt-pwa-tile__media { position: relative; }
.apt-pwa-tile--icon .apt-pwa-tile__media i { font-size: 40px; color: var(--apt-pwa-navy); }
/* Same honesty rule as Lite: no approved photo yet = an illustrated placeholder, clearly marked. */
.apt-pwa-tile__tag {
	position: absolute; left: 8px; bottom: 8px; padding: 2px 8px; border-radius: 999px;
	background: rgba(255, 255, 255, .92); color: var(--apt-pwa-muted); font-size: 12px; font-weight: 700;
}

.apt-pwa-tile__label {
	display: flex; align-items: center; min-height: 56px; padding: 8px 12px;
	font-size: 17px; font-weight: 700; line-height: 1.2; overflow-wrap: anywhere;
}

/* Selectable tiles (Add Request, step 1). */
.apt-pwa-tile--pick:has(input:checked) { border-color: var(--apt-pwa-primary); box-shadow: 0 0 0 3px var(--apt-pwa-primary-soft); }
.apt-pwa-tile--pick:has(input:checked) .apt-pwa-tile__label::after {
	content: "\f00c"; font-family: 'Font Awesome 5 Free', 'Font Awesome 6 Free'; font-weight: 900;
	margin-left: auto; padding-left: 8px; color: var(--apt-pwa-primary);
}
.apt-pwa-tile--pick:has(input:focus-visible) { outline: 3px solid var(--apt-pwa-focus); outline-offset: 2px; }

.apt-pwa-search-card {
	display: flex; flex-direction: column; gap: 12px;
	padding: 20px; border-radius: var(--apt-pwa-radius-lg);
	background: var(--aptv2-navy-light, #E8EBF2); border: 1px solid var(--apt-pwa-line);
}
.apt-pwa-search-card p { margin: 0; color: var(--apt-pwa-muted); }
.apt-pwa-search-card .apt-pwa-h2 { margin: 0 0 4px; }

.apt-pwa-note {
	padding: 16px; border-radius: var(--apt-pwa-radius-lg);
	background: var(--apt-pwa-card); border: 1px solid var(--apt-pwa-line);
}
.apt-pwa-note p { margin: 0 0 12px; }

.apt-pwa-install-link { text-align: center; margin: 8px 0 0; font-size: 16px; }
.apt-pwa-install-link a { display: inline-flex; gap: 8px; align-items: center; min-height: 44px; }

/* ---------- Steps / forms ---------- */
.apt-pwa-steps, .apt-pwa-details { margin: 0; }
.apt-pwa-step { border: 0; margin: 0 0 24px; padding: 0; min-width: 0; }
.apt-pwa-step legend { float: left; width: 100%; }
/* Everything after the floated legend clears it — not only the next sibling (the visible service-type group is
   often not the first one, since the other categories' groups are hidden before it). */
.apt-pwa-step legend ~ * { clear: both; }
.apt-pwa-js .apt-pwa-step[hidden] { display: none; }

.apt-pwa-progress { margin: 0 0 4px; font-size: 15px; font-weight: 700; color: var(--apt-pwa-muted); text-transform: uppercase; letter-spacing: .04em; }
.apt-pwa-progress:empty { display: none; }

.apt-pwa-field { border: 0; margin: 0 0 24px; padding: 0; min-width: 0; }
.apt-pwa-label { display: block; font-weight: 700; margin: 0 0 6px; }

.apt-pwa-input {
	display: block; width: 100%; min-height: 56px; padding: 12px 14px;
	font: inherit; font-size: 18px; color: var(--apt-pwa-text);
	background: #fff; border: 2px solid var(--apt-pwa-line-strong); border-radius: var(--apt-pwa-radius);
	-webkit-appearance: none; appearance: none;
}
.apt-pwa-input:focus { border-color: var(--apt-pwa-focus); outline: 3px solid rgba(45, 108, 223, .25); outline-offset: 0; }
.apt-pwa-textarea { min-height: 160px; resize: vertical; line-height: 1.45; }

.apt-pwa-count { margin: 6px 0 0; font-size: 16px; color: var(--apt-pwa-muted); }
.apt-pwa-count.is-ok { color: var(--apt-pwa-primary); font-weight: 700; }

.apt-pwa-error {
	margin: 0 0 10px; padding: 10px 12px;
	background: #FEF3F2; border-left: 4px solid var(--apt-pwa-danger); border-radius: 8px;
	color: var(--apt-pwa-danger); font-weight: 600; font-size: 17px;
}

.apt-pwa-options { display: flex; flex-direction: column; gap: 10px; margin: 0 0 12px; }
.apt-pwa-options__cat { margin: 0 0 2px; font-size: 16px; font-weight: 700; color: var(--apt-pwa-muted); }
.apt-pwa-js .apt-pwa-options__cat { display: none; }

.apt-pwa-option {
	display: flex; align-items: center; gap: 14px;
	min-height: 60px; padding: 12px 16px;
	background: var(--apt-pwa-card); border: 2px solid var(--apt-pwa-line-strong); border-radius: var(--apt-pwa-radius);
	font-size: 18px; font-weight: 600; cursor: pointer;
}
.apt-pwa-option input { width: 24px; height: 24px; margin: 0; flex: 0 0 24px; accent-color: var(--apt-pwa-primary); }
.apt-pwa-option:has(input:checked) { border-color: var(--apt-pwa-primary); background: var(--apt-pwa-primary-soft); }
.apt-pwa-option--other { border-style: dashed; }
.apt-pwa-option small { font-weight: 500; color: var(--apt-pwa-muted); }

.apt-pwa-actions { display: flex; gap: 12px; margin: 8px 0 0; }
.apt-pwa-actions .apt-pwa-btn { flex: 1 1 0; }
.apt-pwa-actions [hidden] { display: none !important; }
.apt-pwa-actions--sticky {
	position: sticky; bottom: calc(var(--apt-pwa-nav-h) + env(safe-area-inset-bottom, 0px) + 8px);
	background: linear-gradient(to top, var(--apt-pwa-bg) 70%, rgba(247, 248, 247, 0));
	padding-top: 12px; z-index: 5;
}

/* Place search (apt-place-search.js) */
.apt-pwa-place { position: relative; }
.apt-place__box { position: relative; }
.apt-place__clear {
	position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
	width: 44px; height: 44px; border: 0; background: none; font-size: 26px; color: var(--apt-pwa-muted); cursor: pointer;
}
.apt-place__list {
	list-style: none; margin: 4px 0 0; padding: 4px;
	background: #fff; border: 2px solid var(--apt-pwa-line-strong); border-radius: var(--apt-pwa-radius);
	box-shadow: var(--apt-pwa-shadow);
}
.apt-place__list li, .apt-place__option {
	padding: 12px; min-height: 48px; border-radius: 8px; cursor: pointer; font-size: 17px;
}
.apt-place__list li[aria-selected="true"], .apt-place__list li:hover { background: var(--apt-pwa-primary-soft); }
.apt-place__status { margin-top: 6px; }
.apt-place__status:empty { display: none; }
.apt-place__chosen {
	margin-top: 8px; padding: 12px 14px;
	border: 2px solid var(--apt-pwa-primary); border-radius: var(--apt-pwa-radius); background: var(--apt-pwa-primary-soft);
}
.apt-place__chosen-label { margin: 0; font-weight: 700; }
.apt-place__chosen-actions { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.apt-place__geo { margin-top: 10px; width: 100%; }

/* ---------- Cards / lists ---------- */
.apt-pwa-cards { list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-direction: column; gap: 12px; }

.apt-pwa-card {
	background: var(--apt-pwa-card); border: 1px solid var(--apt-pwa-line);
	border-radius: var(--apt-pwa-radius-lg); box-shadow: var(--aptv2-shadow-sm, 0 1px 2px rgba(16, 24, 40, 0.05));
	padding: 16px; min-width: 0;
}
.apt-pwa-cards > .apt-pwa-card { padding: 0; }
.apt-pwa-card__link { display: block; padding: 16px; color: inherit !important; text-decoration: none; border-radius: inherit; }
.apt-pwa-card__link:hover { background: #FBFCFB; }
.apt-pwa-card__top { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin-bottom: 6px; }
.apt-pwa-card__title { margin: 2px 0 6px; font-size: 20px; line-height: 1.25; font-weight: 700; color: var(--apt-pwa-navy); overflow-wrap: anywhere; }
.apt-pwa-card__cat { font-size: 15px; font-weight: 700; color: var(--apt-pwa-muted); }
.apt-pwa-card__meta { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0 0 6px; font-size: 15px; color: var(--apt-pwa-muted); }
.apt-pwa-card__meta i { width: 14px; text-align: center; }
.apt-pwa-card__text { margin: 0; font-size: 17px; color: var(--apt-pwa-text); overflow-wrap: anywhere; }
.apt-pwa-card__count { margin: 8px 0 0; font-weight: 700; color: var(--apt-pwa-primary); font-size: 16px; }
.apt-pwa-card__actions { display: flex; gap: 16px; }

.apt-pwa-pill {
	display: inline-flex; align-items: center; min-height: 28px; padding: 2px 12px;
	border-radius: 999px; font-size: 14px; font-weight: 700; line-height: 1.2;
	background: var(--apt-pwa-bg); color: var(--apt-pwa-muted); border: 1px solid var(--apt-pwa-line);
}
.apt-pwa-pill--live, .apt-pwa-pill--ok { background: var(--apt-pwa-primary-soft); color: var(--apt-pwa-primary); border-color: #B7E4C4; }
.apt-pwa-pill--wait { background: var(--aptv2-amber-light, #FFFBEB); color: var(--apt-pwa-amber); border-color: #FCD9A8; }
/* PWA-FIX-06: a live Featured campaign — the map's own gold "Featured" treatment (.apt-mpc__featured). */
.apt-pwa-pill--featured { background: #FFF3D6; color: #8A5A00; border-color: #F5D98C; }
.apt-pwa-card__top .apt-pwa-pill--featured { margin-right: auto; } /* stays beside the status, not centred */
.apt-pwa-item-card .apt-pwa-pill--featured { min-height: 24px; margin: 0 6px 4px 0; font-size: 13px; }

.apt-pwa-facts { margin: 8px 0 12px; display: grid; gap: 8px; }
.apt-pwa-facts > div { display: flex; gap: 8px; flex-wrap: wrap; }
.apt-pwa-facts dt { font-weight: 700; color: var(--apt-pwa-muted); min-width: 0; }
.apt-pwa-facts dt::after { content: ":"; }
.apt-pwa-facts dd { margin: 0; overflow-wrap: anywhere; }

.apt-pwa-photo { display: block; border-radius: var(--apt-pwa-radius); margin: 0 0 8px; }

.apt-pwa-list { list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.apt-pwa-list__row {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	padding: 12px 14px; background: var(--apt-pwa-card); border: 1px solid var(--apt-pwa-line); border-radius: var(--apt-pwa-radius);
}
.apt-pwa-list__main { display: flex; flex-direction: column; min-width: 0; overflow-wrap: anywhere; }
.apt-pwa-list__main small { color: var(--apt-pwa-muted); font-size: 15px; }

.apt-pwa-banner {
	display: flex; gap: 12px; align-items: flex-start;
	padding: 14px 16px; margin: 0 0 16px; border-radius: var(--apt-pwa-radius);
}
.apt-pwa-banner p { margin: 0; }
.apt-pwa-banner i { font-size: 22px; margin-top: 2px; }
.apt-pwa-banner--wait { background: var(--aptv2-amber-light, #FFFBEB); color: #7A3E06; border: 1px solid #FCD9A8; }
.apt-pwa-banner--ok { background: var(--apt-pwa-primary-soft); color: #0E5A26; border: 1px solid #B7E4C4; }

.apt-pwa-state { text-align: center; padding: 24px 8px; }
.apt-pwa-state p { color: var(--apt-pwa-muted); margin: 0 0 20px; }
.apt-pwa-state__icon { font-size: 44px; color: var(--apt-pwa-navy); margin: 8px 0 12px; display: block; }

.apt-pwa-summary { margin-bottom: 24px; }

/* ---------- + choices / sheet ---------- */
.apt-pwa-choices { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.apt-pwa-choice {
	display: flex; align-items: center; gap: 14px; min-height: 84px; padding: 14px 16px;
	background: var(--apt-pwa-card); border: 2px solid var(--apt-pwa-line-strong); border-radius: var(--apt-pwa-radius-lg);
	color: var(--apt-pwa-text) !important; text-decoration: none;
}
.apt-pwa-choice:hover { border-color: var(--apt-pwa-primary); }
.apt-pwa-choice__icon {
	width: 52px; height: 52px; flex: 0 0 52px; border-radius: 14px;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--apt-pwa-primary-soft); color: var(--apt-pwa-primary); font-size: 22px;
}
.apt-pwa-choice__icon--pro { background: var(--aptv2-navy-light, #E8EBF2); color: var(--apt-pwa-navy); }
.apt-pwa-choice__text { display: flex; flex-direction: column; min-width: 0; }
.apt-pwa-choice__text strong { font-size: 20px; color: var(--apt-pwa-navy); }
.apt-pwa-choice__text span { font-size: 16px; color: var(--apt-pwa-muted); }
.apt-pwa-choice__go { margin-left: auto; color: var(--apt-pwa-muted); }

.apt-pwa-sheet { position: fixed; inset: 0; z-index: 60; }
.apt-pwa-sheet[hidden] { display: none; }
.apt-pwa-sheet__backdrop { position: absolute; inset: 0; background: rgba(16, 24, 40, .45); }
.apt-pwa-sheet__panel {
	position: absolute; left: 0; right: 0; bottom: 0;
	max-width: 720px; margin: 0 auto; padding: 20px 16px calc(16px + env(safe-area-inset-bottom, 0px));
	background: var(--apt-pwa-bg); border-radius: 20px 20px 0 0;
}
.apt-pwa-sheet__title { margin: 0 0 16px; font-size: 22px; color: var(--apt-pwa-navy); }

/* ---------- Messages ---------- */
.apt-pwa-threads { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.apt-pwa-thread {
	display: flex; align-items: center; gap: 12px; min-height: 76px; padding: 12px 14px;
	background: var(--apt-pwa-card); border: 1px solid var(--apt-pwa-line); border-radius: var(--apt-pwa-radius-lg);
	color: var(--apt-pwa-text) !important; text-decoration: none;
}
.apt-pwa-thread.is-unread { border-color: var(--apt-pwa-primary); border-width: 2px; }
.apt-pwa-thread.is-unread .apt-pwa-thread__name { font-weight: 800; }
.apt-pwa-avatar { width: 48px; height: 48px; border-radius: 999px; flex: 0 0 48px; object-fit: cover; background: var(--apt-pwa-line); }
.apt-pwa-avatar--lg { width: 80px; height: 80px; flex-basis: 80px; }
.apt-pwa-thread__main { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; }
.apt-pwa-thread__name { font-weight: 700; font-size: 18px; color: var(--apt-pwa-navy); overflow-wrap: anywhere; }
.apt-pwa-thread__last { color: var(--apt-pwa-muted); font-size: 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.apt-pwa-thread__side { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; flex: 0 0 auto; font-size: 14px; color: var(--apt-pwa-muted); }

.apt-pwa-chat__title { margin-bottom: 12px; }
.apt-pwa-bubbles { list-style: none; margin: 0; padding: 0 0 8px; display: flex; flex-direction: column; gap: 10px; }
.apt-pwa-bubble {
	align-self: flex-start; max-width: 85%;
	padding: 10px 14px; background: var(--apt-pwa-card); border: 1px solid var(--apt-pwa-line);
	border-radius: 18px 18px 18px 6px; overflow-wrap: anywhere;
}
.apt-pwa-bubble p { margin: 0 0 4px; }
.apt-pwa-bubble small { color: var(--apt-pwa-muted); font-size: 14px; }
.apt-pwa-bubble--mine { align-self: flex-end; background: var(--apt-pwa-primary-soft); border-color: #B7E4C4; border-radius: 18px 18px 6px 18px; }

.apt-pwa-composer {
	position: sticky; bottom: calc(var(--apt-pwa-nav-h) + env(safe-area-inset-bottom, 0px));
	max-width: 720px; margin: 0 auto; padding: 10px 16px;
	display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap;
	background: var(--apt-pwa-bg); border-top: 1px solid var(--apt-pwa-line);
}
.apt-pwa-composer .apt-pwa-error { flex: 1 1 100%; margin: 0; }
.apt-pwa-composer__input { flex: 1 1 auto; min-height: 56px; width: auto; resize: none; }
.apt-pwa-composer__send { width: 56px; height: 56px; min-height: 56px; padding: 0; flex: 0 0 56px; }

/* ---------- Notifications ---------- */
.apt-pwa-notif {
	display: flex; gap: 12px; padding: 14px; min-height: 64px;
	background: var(--apt-pwa-card); border: 1px solid var(--apt-pwa-line); border-radius: var(--apt-pwa-radius);
	color: var(--apt-pwa-text) !important; text-decoration: none;
}
.apt-pwa-notif__dot { width: 12px; height: 12px; border-radius: 999px; margin-top: 7px; flex: 0 0 12px; background: transparent; }
.apt-pwa-notif.is-unread { border-color: var(--apt-pwa-primary); }
.apt-pwa-notif.is-unread .apt-pwa-notif__dot { background: var(--apt-pwa-primary); }
.apt-pwa-notif__main { display: flex; flex-direction: column; gap: 2px; min-width: 0; overflow-wrap: anywhere; }
.apt-pwa-notif__main small { color: var(--apt-pwa-muted); font-size: 14px; }

/* ---------- Account ---------- */
.apt-pwa-profile { display: flex; align-items: center; gap: 16px; }
.apt-pwa-profile .apt-pwa-h1 { margin: 0 0 2px; overflow-wrap: anywhere; }
.apt-pwa-profile p { margin: 0; }
.apt-pwa-checks { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.apt-pwa-checks i { color: var(--apt-pwa-primary); }
.apt-pwa-menu { list-style: none; margin: 0; padding: 0; background: var(--apt-pwa-card); border: 1px solid var(--apt-pwa-line); border-radius: var(--apt-pwa-radius-lg); overflow: hidden; }
.apt-pwa-menu li + li { border-top: 1px solid var(--apt-pwa-line); }
.apt-pwa-menu a {
	display: flex; align-items: center; gap: 14px; min-height: 60px; padding: 12px 16px;
	color: var(--apt-pwa-text) !important; text-decoration: none; font-weight: 600;
}
.apt-pwa-menu a i { width: 22px; text-align: center; color: var(--apt-pwa-navy); }
.apt-pwa-menu a:hover { background: var(--apt-pwa-bg); }
.apt-pwa-menu__count { margin-left: auto; color: var(--apt-pwa-muted); font-weight: 700; }

.apt-pwa-howto { margin: 0; padding-left: 24px; display: flex; flex-direction: column; gap: 8px; }

/* ---------- Bottom navigation (shared with apt-pwa-bar.css) ---------- */
.apt-pwa-nav {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
	background: var(--apt-pwa-card, #fff); border-top: 1px solid var(--apt-pwa-line, #E5E7EB);
	padding-bottom: env(safe-area-inset-bottom, 0px);
	box-shadow: 0 -2px 10px rgba(16, 24, 40, .06);
	font-family: var(--apt-pwa-font);
}
.apt-pwa-nav__list {
	list-style: none; margin: 0 auto; padding: 0 4px; max-width: 720px;
	display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: stretch;
}
.apt-pwa-nav__item { margin: 0; padding: 0; list-style: none; min-width: 0; }
.apt-pwa-nav__link {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
	min-height: var(--apt-pwa-nav-h); padding: 6px 2px;
	color: #4B5563 !important; text-decoration: none !important;
	font-size: 12px; font-weight: 700; line-height: 1.15; text-align: center;
	-webkit-tap-highlight-color: transparent;
}
.apt-pwa-nav__icon { position: relative; font-size: 21px; line-height: 1; }
.apt-pwa-nav__icon .apt-pwa-badge { top: -8px; right: -14px; }
.apt-pwa-nav__label { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.apt-pwa-nav__item--opportunities .apt-pwa-nav__link { padding-left: 0; padding-right: 0; }
.apt-pwa-nav__item--opportunities .apt-pwa-nav__label { font-size: 10.5px; letter-spacing: -0.02em; text-overflow: clip; }
@media (min-width: 400px) { .apt-pwa-nav__item--opportunities .apt-pwa-nav__label { font-size: 12px; letter-spacing: 0; } }
.apt-pwa-nav__link.is-active { color: var(--apt-pwa-primary, #168238) !important; }
.apt-pwa-nav__link.is-active .apt-pwa-nav__label { text-decoration: underline; text-underline-offset: 3px; }

.apt-pwa-nav__item--plus .apt-pwa-nav__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 52px; height: 52px; margin-top: -22px; border-radius: 999px;
	background: var(--apt-pwa-primary, #168238); color: #fff;
	box-shadow: 0 4px 12px rgba(22, 130, 56, .35); border: 4px solid #fff; box-sizing: content-box;
	font-size: 24px;
}
.apt-pwa-nav__item--plus .apt-pwa-nav__link { color: var(--apt-pwa-navy, #1A2E52) !important; }

/* Website pages opened from the app: room for the app's bottom navigation. */
body.apt-pwa-in-app { padding-bottom: calc(var(--apt-pwa-nav-h) + env(safe-area-inset-bottom, 0px)); }
body.apt-pwa-in-app .apt-pwa-nav { --apt-pwa-font: inherit; }

/* ---------- Larger screens ---------- */
@media (min-width: 600px) {
	.apt-pwa-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
	.apt-pwa-search-card { flex-direction: row; align-items: center; justify-content: space-between; }
	.apt-pwa-nav__link { font-size: 14px; }
}

@media (min-width: 1024px) {
	body.apt-pwa-body { font-size: 18px; }
	.apt-pwa { padding: 24px 16px; }
	.apt-pwa-tiles:not(.apt-pwa-tiles--pick) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.apt-pwa-h1 { font-size: 30px; }
}

@media (prefers-reduced-motion: no-preference) {
	.apt-pwa-tile, .apt-pwa-option, .apt-pwa-btn { transition: border-color .15s ease, background-color .15s ease; }
}

/* ---------- Website pages opened from the app (body.apt-pwa-in-app) ----------
   Presentation only: readable gutters and larger text on the existing forms; the WordPress toolbar is hidden. */
body.apt-pwa-in-app #wpadminbar { display: none !important; }
html:has(body.apt-pwa-in-app.admin-bar) { margin-top: 0 !important; }
body.apt-pwa-in-app.admin-bar { margin-top: 0 !important; }

@media (max-width: 767px) {
	body.apt-pwa-in-app .hp-page { padding-left: 16px; padding-right: 16px; }
	body.apt-pwa-in-app .hp-form .hp-form__label,
	body.apt-pwa-in-app .hp-form .hp-field__label { font-size: 16px; text-transform: none; letter-spacing: 0; color: #1A2E52; font-weight: 700; }
	body.apt-pwa-in-app .hp-form .hp-form__description,
	body.apt-pwa-in-app .hp-form .hp-field__description { font-size: 15px; }
	body.apt-pwa-in-app .hp-form input[type="text"],
	body.apt-pwa-in-app .hp-form input[type="number"],
	body.apt-pwa-in-app .hp-form input[type="tel"],
	body.apt-pwa-in-app .hp-form select,
	body.apt-pwa-in-app .hp-form textarea,
	body.apt-pwa-in-app .hp-form .select2-selection { min-height: 52px; font-size: 17px; }
	body.apt-pwa-in-app .hp-form button[type="submit"] { min-height: 56px; width: 100%; font-size: 18px; }
}

body.apt-pwa-in-app .apt-pwa-more {
	margin: 8px 0 20px; border: 2px solid #E5E7EB; border-radius: 12px; background: #fff;
}
body.apt-pwa-in-app .apt-pwa-more > summary {
	min-height: 56px; padding: 14px 16px; cursor: pointer;
	font-size: 17px; font-weight: 700; color: #1A2E52; list-style-position: inside;
}
body.apt-pwa-in-app .apt-pwa-more[open] { padding: 0 12px 12px; }
body.apt-pwa-in-app .apt-pwa-more[open] > summary { margin: 0 -12px 8px; border-bottom: 1px solid #E5E7EB; }

@media (max-width: 374px) {
	.apt-pwa-nav__list { padding: 0; }
	.apt-pwa-nav__item--opportunities .apt-pwa-nav__label { font-size: 10px; }
}

/* Website pages opened from the app: the app's bottom bar must always be reachable (owner testing: "+" was covered by
   the cookie banner on the map and by the dashboard's onboarding card). The bar sits above page overlays, and the
   cookie banner (CookieYes) moves up to sit just above the bar instead of on top of it. */
body.apt-pwa-in-app .apt-pwa-nav { z-index: 2147483000; }
body.apt-pwa-in-app .cky-consent-container,
body.apt-pwa-in-app .cky-consent-bar {
	bottom: calc(var(--apt-pwa-nav-h) + env(safe-area-inset-bottom, 0px)) !important;
}
/* PWA-FIX-07: CookieYes' "Consent Preferences" button sat under the bar in an app tab at tablet widths (the bar stays
   at every width there). It floats just above the bar instead; position only, the consent controls are unchanged. */
body.apt-pwa-in-app .cky-btn-revisit-wrapper {
	bottom: calc(var(--apt-pwa-nav-h) + env(safe-area-inset-bottom, 0px) + 12px) !important;
}
/* PWA-FIX-07: app screens (their own document) load the same CookieYes. Its banner and button sit above the bar, the
   button also above the dock while it shows, and it steps aside while an app sheet or the Messages popup is open. */
body.apt-pwa-body .cky-consent-container,
body.apt-pwa-body .cky-consent-bar {
	bottom: calc(var(--apt-pwa-nav-h) + env(safe-area-inset-bottom, 0px)) !important;
}
body.apt-pwa-body .cky-btn-revisit-wrapper {
	bottom: calc(var(--apt-pwa-nav-h) + env(safe-area-inset-bottom, 0px) + 12px) !important;
}
body.apt-pwa-body.apt-pwa-has-dock:has(.apt-pwa-dock:not(.is-hidden)) .cky-btn-revisit-wrapper {
	bottom: calc(var(--apt-pwa-nav-h) + env(safe-area-inset-bottom, 0px) + 26px + var(--apt-pwa-dock-h, 64px) + 12px) !important;
}
body.apt-pwa-body:has(.apt-pwa-sheet:not([hidden]), .apt-pwa-msgs:not([hidden])) .cky-btn-revisit-wrapper { display: none !important; }

/* Photos left on an unfinished request draft (details screen). */
.apt-pwa-thumbs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
.apt-pwa-thumbs img { width: 72px; height: 72px; object-fit: cover; border-radius: 10px; border: 1px solid var(--apt-pwa-line); }

/* =========================================================
   MOBILE-UX-2A — approved mobile experience
   Compact header actions · Home | Services | + | Requests | Map · floating dock (strip + search) above the
   navigation · browse screens · Messages popup. Same tokens, logo, colours and cards as above.
   ========================================================= */

/* ---------- Compact header: logo left, Saved · Alerts · Messages · Profile right ---------- */
.apt-pwa-header__inner { min-height: 56px; padding: 4px 8px 4px 12px; gap: 4px; }
.apt-pwa-brand { gap: 8px; }
.apt-pwa-brand img { width: 36px; height: 28px; }
.apt-pwa-brand__name { font-size: 18px; }
.apt-pwa-brand__tag { font-size: 12px; }
@media (max-width: 429px) {
	.apt-pwa-brand__tag { display: none; }
	/* With a back arrow there is room for the logo only. */
	.apt-pwa-header__back ~ .apt-pwa-brand .apt-pwa-brand__text { display: none; }
}

.apt-pwa-actions-top { display: flex; align-items: center; gap: 2px; flex: 0 0 auto; }
.apt-pwa-top {
	position: relative; display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; border-radius: 999px;
	color: var(--apt-pwa-navy) !important; text-decoration: none; font-size: 19px;
	-webkit-tap-highlight-color: transparent;
}
.apt-pwa-top:hover { background: var(--apt-pwa-bg); }
.apt-pwa-top[aria-current="page"] { color: var(--apt-pwa-primary) !important; background: var(--apt-pwa-primary-soft); }
.apt-pwa-top .apt-pwa-badge { top: 3px; right: 1px; min-width: 16px; height: 16px; line-height: 16px; font-size: 11px; padding: 0 4px; }
.apt-pwa-top--me img { width: 32px; height: 32px; border-radius: 999px; object-fit: cover; border: 2px solid var(--apt-pwa-line); display: block; }
.apt-pwa-top--me[aria-current="page"] img { border-color: var(--apt-pwa-primary); }
.apt-pwa-header__login { min-height: 44px; padding: 0 14px; font-size: 15px; }
.apt-pwa-header__back { width: 44px; height: 44px; flex-basis: 44px; margin-left: -4px; }
@media (max-width: 359px) {
	.apt-pwa-brand__name { font-size: 16px; }
	.apt-pwa-top { width: 40px; }
}

/* ---------- Bottom navigation: five equal entries, the green + in the middle ---------- */
.apt-pwa-nav__link { font-size: 12px; }
.apt-pwa-nav__item--plus .apt-pwa-nav__label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.apt-pwa-nav__item--plus .apt-pwa-nav__icon { margin-top: -18px; }

/* ---------- Dock: information strip + search, floating just above the navigation ---------- */
body.apt-pwa-has-dock {
	padding-bottom: calc(var(--apt-pwa-nav-h) + env(safe-area-inset-bottom, 0px) + var(--apt-pwa-dock-h, 64px) + 38px);
}
.apt-pwa-dock {
	position: fixed; z-index: 35;
	left: max(12px, env(safe-area-inset-left, 0px)); right: max(12px, env(safe-area-inset-right, 0px));
	/* clear of the raised green + (it rises 22px above the bar) */
	bottom: calc(var(--apt-pwa-nav-h) + env(safe-area-inset-bottom, 0px) + 26px);
	max-width: 696px; margin: 0 auto;
	display: flex; flex-direction: column; gap: 8px;
	transition: transform .22s ease, opacity .22s ease;
}
.apt-pwa-dock.is-hidden { transform: translateY(calc(100% + 16px)); opacity: 0; pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .apt-pwa-dock { transition: none; } }

/* Typing in the search: the navigation steps aside, the search sits right above the keyboard. */
body.apt-pwa-typing .apt-pwa-nav { display: none; }
body.apt-pwa-typing .apt-pwa-dock { bottom: calc(var(--apt-pwa-kb, 0px) + 8px); transform: none; opacity: 1; }
body.apt-pwa-typing .apt-pwa-strip { display: none; }
/* Typing anywhere else: the dock never covers the field or the keyboard. */
body.apt-pwa-typing-other .apt-pwa-dock { display: none; }
/* PWA-FIX-03: a website dialog (HivePress Fancybox: Make an Offer, Sign in) is open — the navigation and the dock step
   aside so they never cover its fields or its Submit button; they come back when it closes. */
body.fancybox-active .apt-pwa-nav,
body.fancybox-active .apt-pwa-dock { display: none !important; }
/* PWA-FIX-04: CookieYes' "Consent Preferences" button (z-index 999999) sits over the dialog's fields on phones and
   takes their taps. While a dialog is open it is layered just beneath it (the dialog is 99992), like the rest of the
   page behind a dialog; it is not hidden or changed, and is on top again as soon as the dialog closes. */
body.fancybox-active .cky-btn-revisit-wrapper { z-index: 99990 !important; }
/* PWA-FIX-07: CookieYes' preferences dialog (overlay 99999999) sat under the bar and the dock, which covered its
   "Reject All" and "Save My Preferences" buttons on phones. While it is open they step aside, as for a website dialog. */
body:has(.cky-modal.cky-modal-open) .apt-pwa-nav,
body:has(.cky-modal.cky-modal-open) .apt-pwa-dock { display: none !important; }
/* PWA-FIX-07: the first-visit consent banner (z-index 9999999) sits above the bar, where the dock's search strip covered
   its "Reject All" button. The dock steps aside until a choice is made (CookieYes then adds .cky-hide). */
body:has(.cky-consent-container:not(.cky-hide)) .apt-pwa-dock--site { display: none !important; }

.apt-pwa-search {
	position: relative; display: flex; align-items: center; margin: 0;
	min-height: 52px; padding: 4px 4px 4px 16px;
	background: var(--apt-pwa-card); border: 1px solid var(--apt-pwa-line-strong); border-radius: 999px;
	box-shadow: 0 6px 20px rgba(16, 24, 40, .14);
}
.apt-pwa-search:focus-within { border-color: var(--apt-pwa-focus); box-shadow: 0 0 0 3px rgba(45, 108, 223, .25), 0 6px 20px rgba(16, 24, 40, .14); }
.apt-pwa-search__icon { color: var(--apt-pwa-muted); font-size: 17px; flex: 0 0 auto; }
.apt-pwa-search__input {
	flex: 1 1 auto; min-width: 0; height: 44px; margin: 0 6px 0 10px; padding: 0;
	border: 0; background: transparent; outline: none !important;
	font: inherit; font-size: 17px; color: var(--apt-pwa-text);
	-webkit-appearance: none; appearance: none;
}
.apt-pwa-search__input::placeholder { color: #6B7280; }
.apt-pwa-search__input::-webkit-search-cancel-button { cursor: pointer; }
.apt-pwa-search__go {
	flex: 0 0 44px; width: 44px; height: 44px; border: 0; border-radius: 999px; cursor: pointer;
	background: var(--apt-pwa-primary); color: #fff; font-size: 17px;
	display: inline-flex; align-items: center; justify-content: center;
}
.apt-pwa-search__go:hover { background: var(--apt-pwa-primary-hover); }

.apt-pwa-strip {
	display: flex; align-items: stretch; min-height: 48px;
	border-radius: 14px; overflow: hidden;
	background: var(--apt-pwa-navy); color: #fff;
	box-shadow: 0 6px 18px rgba(16, 24, 40, .18);
}
.apt-pwa-strip--msg { background: var(--apt-pwa-primary); }
.apt-pwa-strip--wait { background: #7A3E06; }
.apt-pwa-strip__link {
	flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 10px;
	padding: 8px 4px 8px 14px; color: #fff !important; text-decoration: none; font-size: 15px; font-weight: 600; line-height: 1.25;
}
.apt-pwa-strip__icon { font-size: 17px; flex: 0 0 auto; }
.apt-pwa-strip__text { flex: 1 1 auto; min-width: 0; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.apt-pwa-strip__go { flex: 0 0 auto; font-weight: 800; white-space: nowrap; }
.apt-pwa-strip__go i { font-size: 12px; }
.apt-pwa-strip__close {
	flex: 0 0 44px; border: 0; background: rgba(255, 255, 255, .12); color: #fff; cursor: pointer; font-size: 16px;
}
.apt-pwa-strip__close:hover { background: rgba(255, 255, 255, .22); }
.apt-pwa-strip :focus-visible { outline-color: #fff; outline-offset: -3px; }

/* ---------- Browse screens: switch, categories, result line, pager ---------- */
.apt-pwa-seg {
	display: flex; gap: 4px; padding: 4px; margin: 0 0 12px;
	background: var(--aptv2-navy-light, #E8EBF2); border-radius: 999px; overflow-x: auto; scrollbar-width: none;
}
.apt-pwa-seg::-webkit-scrollbar { display: none; }
.apt-pwa-seg__item {
	flex: 1 0 auto; display: inline-flex; align-items: center; justify-content: center;
	min-height: 40px; padding: 6px 14px; border-radius: 999px;
	font-size: 15px; font-weight: 700; white-space: nowrap; text-decoration: none; color: var(--apt-pwa-navy) !important;
}
.apt-pwa-seg__item.is-active { background: var(--apt-pwa-card); color: var(--apt-pwa-primary) !important; box-shadow: 0 1px 3px rgba(16, 24, 40, .12); }

.apt-pwa-chips { margin: 0 -16px 8px; }
.apt-pwa-chips ul {
	list-style: none; margin: 0; padding: 2px 16px 8px;
	display: flex; gap: 8px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.apt-pwa-chips ul::-webkit-scrollbar { display: none; }
.apt-pwa-chips li { flex: 0 0 auto; scroll-snap-align: start; }
.apt-pwa-chip {
	display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 6px 14px;
	border: 1px solid var(--apt-pwa-line-strong); border-radius: 999px; background: var(--apt-pwa-card);
	font-size: 15px; font-weight: 600; white-space: nowrap; text-decoration: none; color: var(--apt-pwa-text) !important;
}
.apt-pwa-chip i { color: var(--apt-pwa-navy); font-size: 13px; }
.apt-pwa-chip.is-active { background: var(--apt-pwa-primary); border-color: var(--apt-pwa-primary); color: #fff !important; }
.apt-pwa-chip.is-active i { color: #fff; }

.apt-pwa-resultline { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 0 0 12px; font-size: 15px; font-weight: 700; color: var(--apt-pwa-muted); }
.apt-pwa-resultline__clear { font-weight: 700; }
.apt-pwa-pager { display: flex; justify-content: center; gap: 12px; margin: 4px 0 8px; }
.apt-pwa-group__n { font-size: 15px; font-weight: 700; color: var(--apt-pwa-muted); margin-left: 4px; }
.apt-pwa-group .apt-pwa-h2 i { color: var(--apt-pwa-primary); font-size: 18px; margin-right: 4px; }

/* ---------- Service cards ---------- */
.apt-pwa-cards--grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.apt-pwa-svc { padding: 0; overflow: hidden; }
.apt-pwa-svc__link { display: flex; gap: 12px; padding: 10px; color: inherit !important; text-decoration: none; min-width: 0; }
.apt-pwa-svc__link:hover { background: #FBFCFB; }
.apt-pwa-svc__media {
	flex: 0 0 96px; width: 96px; height: 96px; border-radius: 12px; overflow: hidden;
	display: flex; align-items: center; justify-content: center;
	background: var(--aptv2-navy-light, #E8EBF2); color: var(--apt-pwa-navy); font-size: 28px;
}
.apt-pwa-svc__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.apt-pwa-svc__body { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-width: 0; flex: 1 1 auto; }
.apt-pwa-svc__cat { font-size: 13px; font-weight: 800; color: var(--apt-pwa-primary); text-transform: uppercase; letter-spacing: .03em; }
.apt-pwa-svc__title { font-size: 18px; font-weight: 700; line-height: 1.25; color: var(--apt-pwa-navy); overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.apt-pwa-svc__meta { font-size: 14px; color: var(--apt-pwa-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.apt-pwa-svc__meta i { width: 14px; text-align: center; }
.apt-pwa-svc .apt-pwa-pill { margin-top: 4px; min-height: 24px; font-size: 13px; }

.apt-pwa-service__img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--apt-pwa-radius-lg); margin: 0 0 12px; background: var(--apt-pwa-line); }
.apt-pwa-save { margin: 4px 0 8px; }
.apt-pwa-provider { display: flex; align-items: center; gap: 12px; padding: 12px 14px; margin: 0 0 12px; background: var(--apt-pwa-card); border: 1px solid var(--apt-pwa-line); border-radius: var(--apt-pwa-radius-lg); }
.apt-pwa-provider__main { display: flex; flex-direction: column; min-width: 0; overflow-wrap: anywhere; }
.apt-pwa-provider__main strong { color: var(--apt-pwa-navy); }
.apt-pwa-provider__main small { color: var(--apt-pwa-muted); font-size: 15px; }
.apt-pwa-avatar--icon { display: inline-flex; align-items: center; justify-content: center; color: var(--apt-pwa-navy); font-size: 20px; }

/* ---------- Saved ---------- */
.apt-pwa-fav { padding: 8px 10px; }
.apt-pwa-fav__link { display: flex; align-items: center; gap: 12px; min-width: 0; flex: 1 1 auto; color: inherit !important; text-decoration: none; }
.apt-pwa-fav__img { width: 56px; height: 56px; flex: 0 0 56px; border-radius: 10px; object-fit: cover; background: var(--aptv2-navy-light, #E8EBF2); }
.apt-pwa-fav__img--icon { display: inline-flex; align-items: center; justify-content: center; color: var(--apt-pwa-navy); font-size: 20px; }
.apt-pwa-fav .apt-favorite-toggle { flex: 0 0 auto; }

/* ---------- Messages popup ---------- */
body.apt-pwa-modal-open { overflow: hidden; }
.apt-pwa-msgs { position: fixed; inset: 0; z-index: 70; }
.apt-pwa-msgs[hidden] { display: none; }
.apt-pwa-msgs__backdrop { position: absolute; inset: 0; background: rgba(16, 24, 40, .45); }
.apt-pwa-msgs__panel {
	position: absolute; left: 0; right: 0; bottom: 0; max-width: 720px; margin: 0 auto;
	height: min(92dvh, 820px); height: min(92vh, 820px);
	display: flex; flex-direction: column;
	background: var(--apt-pwa-bg); border-radius: 20px 20px 0 0; overflow: hidden;
	box-shadow: 0 -8px 30px rgba(16, 24, 40, .25);
	padding-bottom: env(safe-area-inset-bottom, 0px);
}
@supports (height: 1dvh) { .apt-pwa-msgs__panel { height: min(92dvh, 820px); } }
.apt-pwa-msgs__bar {
	flex: 0 0 auto; display: flex; align-items: center; gap: 4px; min-height: 56px; padding: 4px 6px 4px 12px;
	background: var(--apt-pwa-card); border-bottom: 1px solid var(--apt-pwa-line);
}
.apt-pwa-msgs__title { flex: 1 1 auto; min-width: 0; margin: 0; font-size: 19px; font-weight: 700; color: var(--apt-pwa-navy); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.apt-pwa-msgs__title:focus { outline: none; }
.apt-pwa-msgs__btn {
	flex: 0 0 44px; width: 44px; height: 44px; border: 0; border-radius: 999px; background: none; cursor: pointer;
	color: var(--apt-pwa-navy); font-size: 19px; display: inline-flex; align-items: center; justify-content: center;
}
.apt-pwa-msgs__btn:hover { background: var(--apt-pwa-bg); }
.apt-pwa-msgs__btn[hidden] { display: none; }
.apt-pwa-msgs__body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 12px 16px 0; -webkit-overflow-scrolling: touch; }
.apt-pwa-msgs__status { color: var(--apt-pwa-muted); text-align: center; margin: 24px 0; }
.apt-pwa-panel-view { display: flex; flex-direction: column; min-height: 100%; }
.apt-pwa-panel-view .apt-pwa-section { margin-bottom: 12px; }
.apt-pwa-panel-view .apt-pwa-h1 { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: 0; }
.apt-pwa-panel-view .apt-pwa-chat { flex: 1 1 auto; }
.apt-pwa-panel-view .apt-pwa-composer {
	position: sticky; bottom: 0; margin: 0 -16px; padding: 10px 16px 12px;
	background: var(--apt-pwa-bg);
}

/* ---------- Website pages opened from the app ---------- */
body.apt-pwa-in-app .apt-pwa-nav__item--plus .apt-pwa-nav__label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ---------- Larger screens ---------- */
@media (min-width: 600px) {
	.apt-pwa-cards--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.apt-pwa-dock { left: 16px; right: 16px; }
}
@media (min-width: 1024px) {
	.apt-pwa-cards--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- MAP-REUSE: the app's Map screen = the existing /map/ with the app header ----------
   One header across the app: the website header gives way to the app header; the map, its seven-layer Browse
   registry (Helpers follows APT_Helpers_Dormancy), filters, search and privacy rules are untouched. */
body.apt-pwa-map .aptv2-header,
body.apt-pwa-map .aptv2-nav-panel { display: none !important; }
body.apt-pwa-map .apt-pwa-header { font-family: var(--apt-pwa-font); position: sticky; top: 0; z-index: 1000; flex: 0 0 auto; }
body.apt-pwa-map .apt-pwa-header *,
body.apt-pwa-map .apt-pwa-msgs *,
body.apt-pwa-map .apt-pwa-sheet * { box-sizing: border-box; }
body.apt-pwa-map .apt-pwa-header__inner { max-width: none; }
body.apt-pwa-map .apt-pwa-msgs,
body.apt-pwa-map .apt-pwa-sheet { z-index: 2147483100; font-family: var(--apt-pwa-font); }
body.apt-pwa-map .apt-pwa-msgs__panel { font-size: 18px; line-height: 1.5; color: var(--apt-pwa-text); }
/* CookieYes "revisit consent" floats over the map's results sheet in the app; it stays on every other page. */
body.apt-pwa-map .cky-btn-revisit-wrapper { display: none !important; }

/* PWA-FIX-02: a request, service, professional or Marketplace page opened inside the app (body.apt-pwa-detail, never
   for ordinary visitors) gets the same single app header as the Map at every width, so its Back is there in a wide
   installed window too. Same rules as the Map above; nothing else on the page changes. */
body.apt-pwa-detail .aptv2-header,
body.apt-pwa-detail .aptv2-nav-panel { display: none !important; }
body.apt-pwa-detail .apt-pwa-header--site { display: block; font-family: var(--apt-pwa-font); font-size: 16px; line-height: 1.3; position: sticky; top: 0; z-index: 1000; }
body.apt-pwa-detail .apt-pwa-header *,
body.apt-pwa-detail .apt-pwa-msgs *,
body.apt-pwa-detail .apt-pwa-sheet * { box-sizing: border-box; }
body.apt-pwa-detail .apt-pwa-header__inner { max-width: none; }
body.apt-pwa-detail .apt-pwa-msgs,
body.apt-pwa-detail .apt-pwa-sheet { z-index: 2147483100; font-family: var(--apt-pwa-font); }
body.apt-pwa-detail .apt-pwa-msgs__panel { font-size: 18px; line-height: 1.5; color: var(--apt-pwa-text); }
.apt-pwa-choice__icon--sell { background: #FFF4E5; color: #B45309; }


/* ---------- MOBILE-UX-CORRECTION-3A: phone — confirmed row, or a +44 field ---------- */
.apt-pwa-phone__group { display: flex; align-items: stretch; width: 100%; min-width: 0; border: 2px solid var(--apt-pwa-line-strong); border-radius: var(--apt-pwa-radius); background: var(--apt-pwa-card); overflow: hidden; }
.apt-pwa-phone__group:focus-within { border-color: var(--apt-pwa-focus); box-shadow: 0 0 0 3px rgba(45, 108, 223, .2); }
.apt-pwa-phone__cc { flex: 0 0 auto; display: inline-flex; align-items: center; padding: 0 14px; background: var(--apt-pwa-bg); border-right: 1px solid var(--apt-pwa-line); font-size: 18px; font-weight: 700; color: var(--apt-pwa-navy); }
.apt-pwa-phone .apt-pwa-phone__input { flex: 1 1 auto; min-width: 0; width: 100%; min-height: 56px; margin: 0; padding: 0 14px; border: 0 !important; border-radius: 0; box-shadow: none !important; outline: none; font-size: 20px; letter-spacing: .02em; background: transparent; }
.apt-pwa-phone__known { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid var(--apt-pwa-line); border-radius: var(--apt-pwa-radius); background: var(--apt-pwa-primary-soft); }
.apt-pwa-phone__icon { flex: 0 0 auto; width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; background: var(--apt-pwa-card); color: var(--apt-pwa-primary); font-size: 18px; }
.apt-pwa-phone__value { display: flex; flex-direction: column; min-width: 0; }
.apt-pwa-phone__value strong { font-size: 20px; color: var(--apt-pwa-navy); letter-spacing: .02em; overflow-wrap: anywhere; }
.apt-pwa-phone__value small { font-size: 14px; color: var(--apt-pwa-muted); }
.apt-pwa-phone__change { margin-top: 10px; }
.apt-pwa-phone__change > summary { display: inline-flex; align-items: center; min-height: 44px; cursor: pointer; font-weight: 700; color: var(--apt-pwa-primary); text-decoration: underline; text-underline-offset: 3px; }
.apt-pwa-phone__change[open] > summary { margin-bottom: 6px; }

/* =========================================================
   MOBILE-UX-CORRECTION-3A — bottom navigation on a navy surface + compact "Create" sheet
   Brand navy surface, high-contrast labels, green + and green active pill; the sheet sits ABOVE the bar.
   ========================================================= */
.apt-pwa-nav {
	background: var(--apt-pwa-navy, #1A2E52);
	border-top: 1px solid rgba(255, 255, 255, .10);
	border-radius: 18px 18px 0 0;
	box-shadow: 0 -8px 24px rgba(16, 24, 40, .22);
}
.apt-pwa-nav__link { color: #CBD5E6 !important; }
.apt-pwa-nav__link:hover { color: #fff !important; }
.apt-pwa-nav__link:focus-visible { outline: 2px solid #fff; outline-offset: -4px; border-radius: 12px; }
.apt-pwa-nav__icon { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 30px; border-radius: 999px; transition: background-color .15s ease; }
.apt-pwa-nav__link.is-active { color: #fff !important; }
.apt-pwa-nav__link.is-active .apt-pwa-nav__icon { background: rgba(61, 220, 132, .22); color: #7CF0B0; }
.apt-pwa-nav__link.is-active .apt-pwa-nav__label { text-decoration: none; }
.apt-pwa-nav__item--plus .apt-pwa-nav__link { color: #fff !important; }
.apt-pwa-nav__item--plus .apt-pwa-nav__icon {
	min-width: 0; height: 52px; border-color: var(--apt-pwa-navy, #1A2E52);
	background: #1FA34A; color: #fff; box-shadow: 0 6px 16px rgba(0, 0, 0, .28);
}
.apt-pwa-nav__item--plus .apt-pwa-nav__link[aria-expanded="true"] .apt-pwa-nav__icon i { transform: rotate(45deg); }
.apt-pwa-nav__item--plus .apt-pwa-nav__icon i { transition: transform .15s ease; }
/* The dock (strip + search) stays a separate white card above the navy bar. */
.apt-pwa-dock .apt-pwa-search { box-shadow: 0 6px 18px rgba(16, 24, 40, .16); }

/* Compact "Create" sheet: above the bar, never over it (the bar stays usable; + closes it again). */
.apt-pwa-sheet { inset: 0 0 calc(var(--apt-pwa-nav-h) + env(safe-area-inset-bottom, 0px)) 0; z-index: 39; }
body.apt-pwa-map .apt-pwa-sheet { z-index: 2147482999; }
.apt-pwa-sheet__backdrop { background: rgba(16, 24, 40, .38); }
.apt-pwa-sheet__panel {
	max-width: 520px; padding: 10px 12px 14px; border-radius: 18px 18px 0 0;
	background: var(--apt-pwa-card); box-shadow: 0 -10px 30px rgba(16, 24, 40, .18);
}
.apt-pwa-sheet__head { display: flex; align-items: center; justify-content: space-between; margin: 0 0 6px 4px; }
.apt-pwa-sheet__title { margin: 0; font-size: 17px; font-weight: 800; }
.apt-pwa-sheet__x { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 12px; background: none; color: var(--apt-pwa-muted); font-size: 18px; cursor: pointer; }
.apt-pwa-sheet__x:hover { background: var(--apt-pwa-bg); color: var(--apt-pwa-navy); }
.apt-pwa-sheet .apt-pwa-choices { gap: 4px; margin: 0; }
.apt-pwa-sheet .apt-pwa-choice { min-height: 60px; padding: 8px 10px; gap: 12px; border: 0; border-radius: 12px; background: transparent; }
.apt-pwa-sheet .apt-pwa-choice:hover, .apt-pwa-sheet .apt-pwa-choice:focus-visible { background: var(--apt-pwa-bg); }
.apt-pwa-sheet .apt-pwa-choice:focus-visible { outline: 2px solid var(--apt-pwa-focus); outline-offset: 0; }
.apt-pwa-sheet .apt-pwa-choices li + li { border-top: 1px solid var(--apt-pwa-line); }
.apt-pwa-sheet .apt-pwa-choice__icon { width: 40px; height: 40px; flex-basis: 40px; border-radius: 12px; font-size: 17px; }
.apt-pwa-sheet .apt-pwa-choice__text strong { font-size: 17px; line-height: 1.25; }
.apt-pwa-sheet .apt-pwa-choice__text span { font-size: 14px; line-height: 1.3; }
@media (prefers-reduced-motion: no-preference) {
	.apt-pwa-sheet:not([hidden]) .apt-pwa-sheet__panel { animation: apt-pwa-sheet-in .16s ease-out; }
	@keyframes apt-pwa-sheet-in { from { transform: translateY(12px); opacity: 0; } to { transform: none; opacity: 1; } }
}
/* The + keeps its green circle on its own screens (Add Request, Professional Services) — never the active pill. */
.apt-pwa-nav__item--plus .apt-pwa-nav__link.is-active .apt-pwa-nav__icon { background: #1FA34A; color: #fff; }

/* =========================================================
   SEARCH-POLISH-3B — one field language (dock search, Services / Requests search, Add Request fields, phone)
   A clearly bordered white field with a soft shadow, a navy search icon, a readable placeholder that still looks
   different from typed text, and one focus ring. Tokens below; the Map search mirrors them in apt-map.css.
   ========================================================= */
:root {
	--apt-pwa-field-border: #7D889C;                 /* 3.6:1 on white — a visible control edge */
	--apt-pwa-field-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 4px 14px rgba(16, 24, 40, .10);
	--apt-pwa-field-focus: 0 0 0 3px rgba(45, 108, 223, .30);
	--apt-pwa-placeholder: #5B6576;                  /* 5.9:1 on white, lighter than typed text (#1A1A1A) */
}
.apt-pwa-search { border: 1.5px solid var(--apt-pwa-field-border); box-shadow: var(--apt-pwa-field-shadow); }
.apt-pwa-dock .apt-pwa-search { box-shadow: 0 1px 2px rgba(16, 24, 40, .08), 0 8px 22px rgba(16, 24, 40, .18); }
.apt-pwa-search:focus-within { border-color: var(--apt-pwa-navy); box-shadow: var(--apt-pwa-field-focus), var(--apt-pwa-field-shadow); }
.apt-pwa-search__icon { color: var(--apt-pwa-navy); font-size: 18px; }
.apt-pwa-search__input::placeholder,
.apt-pwa-input::placeholder { color: var(--apt-pwa-placeholder); opacity: 1; font-weight: 400; }
.apt-pwa-input { border-color: var(--apt-pwa-field-border); box-shadow: var(--apt-pwa-field-shadow); }
.apt-pwa-input:focus { border-color: var(--apt-pwa-navy); outline: none; box-shadow: var(--apt-pwa-field-focus), var(--apt-pwa-field-shadow); }
.apt-pwa-phone__group { border-color: var(--apt-pwa-field-border); box-shadow: var(--apt-pwa-field-shadow); }
.apt-pwa-phone__group:focus-within { border-color: var(--apt-pwa-navy); box-shadow: var(--apt-pwa-field-focus), var(--apt-pwa-field-shadow); }
.apt-pwa-phone .apt-pwa-phone__input { box-shadow: none !important; }

/* Marketplace items in the universal search results */
.apt-pwa-item-card__link { display: block; color: inherit !important; text-decoration: none; }
.apt-pwa-item-card__img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; margin-bottom: 8px; }
.apt-pwa-item-card__meta { margin: 0; color: var(--apt-pwa-muted); font-size: 15px; }

/* =========================================================
   SEARCH-POLISH-3B — Create menu: each action in its own brand accent (APT_Map_Marker_Registry tokens via
   --apt-mk-*: Requests green, Marketplace orange, Services pink) — tinted icon tile, dark icon, a thin accent
   edge; labels stay navy for contrast.
   ========================================================= */
.apt-pwa-choice[style*="--apt-mk-base"] .apt-pwa-choice__icon {
	background: var(--apt-mk-tint); color: var(--apt-mk-dark);
	box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--apt-mk-base) 35%, transparent);
}
.apt-pwa-choice[style*="--apt-mk-base"] { position: relative; }
.apt-pwa-choice[style*="--apt-mk-base"]::before {
	content: ""; position: absolute; left: 0; top: 10px; bottom: 10px; width: 3px; border-radius: 3px; background: var(--apt-mk-base);
}
.apt-pwa-choice[style*="--apt-mk-base"]:hover,
.apt-pwa-choice[style*="--apt-mk-base"]:focus-visible { background: var(--apt-mk-tint); }
.apt-pwa-choice[style*="--apt-mk-base"] .apt-pwa-choice__go { color: var(--apt-mk-dark); }

/* =========================================================
   UNIFIED-MOBILE-WEBSITE-PWA-1A — the mobile website uses the app's shell
   body.apt-mshell: every public website page carries the app header (.apt-pwa-header--site), the bottom navigation,
   the Create + Menu sheets, the Messages popup and, on browse pages, the dock (.apt-pwa-dock--site). They show below
   768px only (APT_PWA::MOBILE_QUERY), where the website header steps aside; tablets and desktop keep the website
   exactly as before. A tab opened from the installed app (body.apt-pwa-in-app) keeps the navigation at every width.
   ========================================================= */
.apt-pwa-header--site,
.apt-pwa-dock--site,
body.apt-mshell:not(.apt-pwa-in-app) .apt-pwa-nav { display: none; }
body.apt-pwa-map .apt-pwa-header--site { display: block; }

/* Menu sheet (all widths where it can open) */
.apt-pwa-top--menu { border: 0; background: none; padding: 0; cursor: pointer; font: inherit; font-size: 19px; }
.apt-pwa-top--menu[aria-expanded="true"] { background: var(--apt-pwa-primary-soft); color: var(--apt-pwa-primary) !important; }
.apt-pwa-header .apt-pwa-actions-top .apt-pwa-header__login { margin-right: 2px; }
.apt-pwa-sheet--menu { inset: 0; z-index: 2147483200; }
.apt-pwa-sheet--menu .apt-pwa-sheet__panel { top: auto; max-height: min(82vh, 640px); display: flex; flex-direction: column; border-radius: 18px 18px 0 0; padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px)); }
.apt-pwa-menu { overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; display: flex; flex-direction: column; gap: 2px; font-family: var(--apt-pwa-font); }
.apt-pwa-menu__group { border-top: 1px solid var(--apt-pwa-line); }
.apt-pwa-menu__group:first-child { border-top: 0; }
.apt-pwa-menu__summary {
	display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 6px 8px; cursor: pointer; list-style: none;
	font-size: 17px; font-weight: 700; color: var(--apt-pwa-navy); border-radius: 10px;
}
.apt-pwa-menu__summary::-webkit-details-marker { display: none; }
.apt-pwa-menu__summary .fa-chevron-down { margin-left: auto; font-size: 13px; color: var(--apt-pwa-muted); transition: transform .15s ease; }
.apt-pwa-menu__group[open] > .apt-pwa-menu__summary .fa-chevron-down { transform: rotate(180deg); }
.apt-pwa-menu__summary:focus-visible, .apt-pwa-menu__link:focus-visible, .apt-pwa-menu__full:focus-visible, .apt-pwa-menu__install:focus-visible { outline: 2px solid var(--apt-pwa-focus); outline-offset: 0; }
.apt-pwa-menu__list { list-style: none; margin: 0 0 8px; padding: 0; }
.apt-pwa-menu__link {
	display: flex; flex-direction: column; gap: 1px; min-height: 48px; padding: 8px 10px 8px 18px; border-radius: 10px;
	color: var(--apt-pwa-text) !important; text-decoration: none !important; font-size: 16px; line-height: 1.3;
}
.apt-pwa-menu__link:hover { background: var(--apt-pwa-bg); }
.apt-pwa-menu__link strong { font-weight: 700; color: var(--apt-pwa-navy); }
.apt-pwa-menu__link span { font-size: 14px; color: var(--apt-pwa-muted); }
.apt-pwa-menu .aptv2-lang-list { list-style: none; margin: 0 0 8px; padding: 0 0 0 10px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px; }
.apt-pwa-menu .aptv2-lang-list a { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 4px 8px; border-radius: 10px; color: var(--apt-pwa-text) !important; text-decoration: none !important; font-size: 15px; }
.apt-pwa-menu .aptv2-lang-list__item--current a { background: var(--apt-pwa-primary-soft); font-weight: 700; }
.apt-pwa-menu__full,
.apt-pwa-menu__install,
.apt-pwa-menu__consent {
	display: flex; align-items: center; gap: 10px; min-height: 52px; margin-top: 4px; padding: 6px 8px; border-top: 1px solid var(--apt-pwa-line);
	font-size: 16px; font-weight: 700; color: var(--apt-pwa-primary) !important; text-decoration: underline; text-underline-offset: 3px;
}
/* PWA-FIX-07: the Menu's "Consent preferences" row is a button (it opens CookieYes' preferences in place). */
.apt-pwa-menu__consent { width: 100%; background: none; border: 0; border-top: 1px solid var(--apt-pwa-line); border-radius: 0; font-family: inherit; text-align: left; cursor: pointer; }
.apt-pwa-menu__consent:focus-visible { outline: 2px solid var(--apt-pwa-focus); outline-offset: 2px; }

@media (max-width: 767px) {
	body.apt-mshell .aptv2-header,
	body.apt-mshell .aptv2-nav-panel,
	body.apt-mshell .apt-lite-header { display: none !important; }

	body.apt-mshell .apt-pwa-header--site { display: block; position: sticky; top: 0; z-index: 1000; font-family: var(--apt-pwa-font); font-size: 16px; line-height: 1.3; }
	body.apt-mshell .apt-pwa-header--site *,
	body.apt-mshell .apt-pwa-dock--site *,
	body.apt-mshell .apt-pwa-msgs *,
	body.apt-mshell .apt-pwa-sheet * { box-sizing: border-box; }
	body.apt-mshell .apt-pwa-header__inner { max-width: none; }

	body.apt-mshell:not(.apt-pwa-in-app) .apt-pwa-nav { display: block; }
	body.apt-mshell .apt-pwa-nav { z-index: 2147483000; }
	body.apt-mshell { padding-bottom: calc(var(--apt-pwa-nav-h) + env(safe-area-inset-bottom, 0px)); }

	body.apt-mshell .apt-pwa-dock--site { display: flex; z-index: 2147482990; font-family: var(--apt-pwa-font); font-size: 17px; }
	body.apt-mshell.apt-mshell-dock { padding-bottom: calc(var(--apt-pwa-nav-h) + env(safe-area-inset-bottom, 0px) + var(--apt-pwa-dock-h, 64px) + 38px); }
	body.apt-mshell .apt-pwa-dock--site .apt-pwa-search__input { font-size: 17px; border: 0; background: transparent; box-shadow: none; min-height: 44px; padding: 0 8px; margin: 0; outline: none; }

	body.apt-mshell .apt-pwa-msgs { z-index: 2147483100; font-family: var(--apt-pwa-font); }
	body.apt-mshell .apt-pwa-msgs__panel { font-size: 18px; line-height: 1.5; color: var(--apt-pwa-text); }
	body.apt-mshell .apt-pwa-sheet:not(.apt-pwa-sheet--menu) { z-index: 2147482999; font-family: var(--apt-pwa-font); }

	/* The WordPress toolbar and the CookieYes banner never cover the app bar. */
	body.apt-mshell #wpadminbar { display: none !important; }
	html:has(body.apt-mshell.admin-bar) { margin-top: 0 !important; }
	body.apt-mshell .cky-consent-container,
	body.apt-mshell .cky-consent-bar { bottom: calc(var(--apt-pwa-nav-h) + env(safe-area-inset-bottom, 0px)) !important; }
	body.apt-mshell .cky-btn-revisit-wrapper { bottom: calc(var(--apt-pwa-nav-h) + env(safe-area-inset-bottom, 0px) + 12px) !important; }
	/* PWA-FIX-07: on a page with the dock (search strip above the bar) the button sat under the dock; it rises above it
	   while the dock shows and comes back down when the dock hides on scroll. */
	body.apt-mshell.apt-mshell-dock:has(.apt-pwa-dock--site:not(.is-hidden)) .cky-btn-revisit-wrapper {
		bottom: calc(var(--apt-pwa-nav-h) + env(safe-area-inset-bottom, 0px) + 26px + var(--apt-pwa-dock-h, 64px) + 12px) !important;
	}

	/* The map: the app header instead of the website's (same rules as the app's Map screen). */
	body.apt-mshell-map .apt-pwa-header--site { flex: 0 0 auto; }
	body.apt-mshell-map .cky-btn-revisit-wrapper { display: none !important; }

	/* The account dashboard: its sidebar brand strip (logo + name) would be a second header under the app header —
	   only its own section toggle stays, as one full-width row (the dashboard's navigation is unchanged). */
	body.apt-mshell .apt-dash-brand > a,
	body.apt-mshell .apt-dash-brand .custom-logo-link,
	body.apt-mshell .apt-dash-brand__text { display: none !important; }
	body.apt-mshell .apt-dash-brand { padding: 8px 16px; border-bottom: 0; }
	body.apt-mshell .apt-dash-nav-toggle { margin-left: 0; width: 100%; justify-content: center; min-height: 44px; font-size: 15px; border-radius: 12px; }

	/* Website forms on a phone: the app's readable sizes (same as tabs opened from the app). */
	body.apt-mshell .hp-page { padding-left: 16px; padding-right: 16px; }
	/* HivePress rows pull -16px outside a page that has no matching gutter: the card sat flush left with 32px
	   empty on the right (service, request and listing pages). Same fix as the vendor profile's .hp-page > .hp-row. */
	body.apt-mshell .hp-page > .hp-row { margin-left: 0; margin-right: 0; }
	body.apt-mshell .hp-form .hp-form__label,
	body.apt-mshell .hp-form .hp-field__label { font-size: 16px; text-transform: none; letter-spacing: 0; color: #1A2E52; font-weight: 700; }
	body.apt-mshell .hp-form input[type="text"],
	body.apt-mshell .hp-form input[type="email"],
	body.apt-mshell .hp-form input[type="password"],
	body.apt-mshell .hp-form input[type="number"],
	body.apt-mshell .hp-form input[type="tel"],
	body.apt-mshell .hp-form select,
	body.apt-mshell .hp-form textarea { font-size: 17px; }
}

/* The app's icons are HivePress's Font Awesome 5 solid set. Website pages also load the theme's own (different)
   build under the same family name; the app shell therefore names HivePress's file explicitly, so the header,
   navigation, dock and sheets show the same glyphs on the website as in the app. Scoped to the shell only. */
@font-face {
	font-family: 'APT App Icons';
	font-style: normal;
	font-weight: 900;
	font-display: block;
	src: url(../../../hivepress/assets/webfonts/fa-solid-900.woff2) format('woff2'), url(../../../hivepress/assets/webfonts/fa-solid-900.woff) format('woff');
}
.apt-pwa-header .fas,
.apt-pwa-nav .fas,
.apt-pwa-dock .fas,
.apt-pwa-sheet .fas,
.apt-pwa-msgs .fas { font-family: 'APT App Icons', 'Font Awesome 5 Free'; font-weight: 900; }

/* Theme button / link styles never restyle the shell's own controls on website pages. */
body.apt-mshell .apt-pwa-search__go,
body.apt-pwa-in-app .apt-pwa-search__go { background: var(--apt-pwa-primary); color: #fff; border: 0; }
body.apt-mshell .apt-pwa-header__login { color: var(--apt-pwa-primary) !important; }

/* Header fit with the Menu button (signed in: Saved · Alerts · Messages · Profile · Menu). Phones: 40px-wide actions
   (as the header already used below 360px); below 375px the logo stands alone (as with a back arrow), so the name
   never runs under the icons. */
.apt-pwa-brand { min-width: 0; }
.apt-pwa-brand__text { min-width: 0; overflow: hidden; }
@media (max-width: 429px) {
	.apt-pwa-actions-top { gap: 0; }
	.apt-pwa-actions-top .apt-pwa-top { width: 40px; }
}
@media (max-width: 374px) {
	.apt-pwa-header__inner:has(.apt-pwa-top--me) .apt-pwa-brand__text { display: none; }
}

/* INSTALL-READY-PWA-1A: offline notice (apt-pwa.js offline()) — above the bottom navigation, never over a dialog. */
.apt-pwa-offline-note {
	position: fixed; left: 12px; right: 12px; bottom: calc(76px + env(safe-area-inset-bottom, 0px)); z-index: 9990;
	margin: 0 auto; max-width: 520px; padding: 12px 14px; border-radius: 12px;
	background: #1A2E52; color: #fff; font: 600 14px/1.4 system-ui, -apple-system, "Segoe UI", sans-serif;
	box-shadow: 0 8px 24px rgba(16, 24, 40, .25);
}
.apt-pwa-offline-note[hidden] { display: none; }
@media (min-width: 768px) { .apt-pwa-offline-note { bottom: 24px; } }

/* PWA-FIX-04: a request's own photos (the app request screen and the map's in-place details). */
.apt-pwa-photos { display: grid; grid-template-columns: repeat( auto-fill, minmax( 104px, 1fr ) ); gap: 8px; margin: 0 0 12px; }
.apt-pwa-photos__item { display: block; aspect-ratio: 4 / 3; border-radius: 10px; overflow: hidden; background: #F3F4F6; }
.apt-pwa-photos__item img { display: block; width: 100%; height: 100%; object-fit: cover; }
