/* Shared app-like visual language. All colour decisions inherit admin-controlled tokens. */
:root{--app-card-radius:var(--radius,18px);--app-soft:color-mix(in srgb,var(--forest) 8%,var(--panel));--app-border:color-mix(in srgb,var(--forest) 13%,var(--line));--app-shadow:0 10px 30px color-mix(in srgb,var(--forest) 9%,transparent)}
.panel,.listing-card,.product-card,.store-card,.section-tile,.delivery-place-card{border-radius:var(--app-card-radius);border-color:var(--app-border);box-shadow:var(--app-shadow)}
.listing-media,.product-card .product-image,.store-card img,.section-tile>img,.delivery-place-card img{overflow:hidden;background:var(--app-soft)}
.listing-media img,.product-card .product-image img,.store-card img,.section-tile>img,.delivery-place-card img{width:100%;height:100%;object-fit:cover}
.listing-card,.product-card,.store-card,.section-tile,.delivery-place-card{transition:transform var(--admin-motion-speed,.22s) ease,box-shadow var(--admin-motion-speed,.22s) ease,border-color var(--admin-motion-speed,.22s) ease}
@media(hover:hover){.listing-card:hover,.product-card:hover,.store-card:hover,.delivery-place-card:hover{transform:translateY(calc(var(--admin-hover-lift,3) * -1px));border-color:color-mix(in srgb,var(--forest) 35%,var(--line));box-shadow:0 16px 36px color-mix(in srgb,var(--forest) 14%,transparent)}}
.auth-area-hint{display:block;margin-top:7px;color:var(--muted);font-size:11px;line-height:1.6}.auth-area-field select{min-height:50px;background-color:var(--panel);color:var(--ink)}
.app-footer{max-width:min(1120px,calc(100% - 28px));margin:42px auto calc(82px + env(safe-area-inset-bottom))!important;padding:0!important;border:0!important;border-radius:24px!important;background:transparent!important;color:var(--ink)!important;overflow:visible!important}
.app-footer-card{padding:16px;border:1px solid var(--app-border);border-radius:24px;background:linear-gradient(145deg,var(--panel),var(--app-soft));box-shadow:var(--app-shadow)}
.app-footer-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:2px 3px 14px}.app-footer .footer-brand{display:flex;align-items:center;gap:10px;color:var(--ink)}.app-footer .footer-brand>span:first-child{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:var(--forest);color:#fff;box-shadow:0 8px 20px color-mix(in srgb,var(--forest) 25%,transparent)}.app-footer .footer-brand>span:last-child{display:grid;gap:2px}.app-footer .footer-brand strong{font-size:15px}.app-footer .footer-brand small{font-size:9px;color:var(--muted)}
.app-footer-status{display:flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:color-mix(in srgb,var(--forest) 9%,var(--panel));color:var(--forest);font-size:10px;font-weight:800}.app-footer-status i{width:7px;height:7px;border-radius:50%;background:var(--forest);box-shadow:0 0 0 4px color-mix(in srgb,var(--forest) 12%,transparent)}
.app-footer-actions{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px!important;margin:0!important;padding:0!important}.app-footer-actions a{min-height:66px;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:8px 4px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:var(--ink)!important;font-size:10px}.app-footer-actions a span{width:27px;height:27px;display:grid;place-items:center;border-radius:9px;background:var(--app-soft);color:var(--forest)}.app-footer-actions svg{width:15px;height:15px}.app-footer-actions a:hover{border-color:var(--forest);color:var(--forest)!important;transform:translateY(-2px)}
.app-footer-meta{display:flex;align-items:center;gap:12px;margin-top:12px;padding:11px 4px 0;border-top:1px solid var(--line);color:var(--muted);font-size:9px}.app-footer-meta>a{margin-inline-start:auto;color:var(--forest);font-weight:800}.app-footer .compact-app-links{display:flex;gap:5px}.app-footer .compact-app-links a{padding:4px 7px;border-radius:7px;background:var(--app-soft);color:var(--forest)}
[data-theme="dark"] .app-footer-card{background:linear-gradient(145deg,var(--admin-panel-dark),color-mix(in srgb,var(--forest) 8%,var(--admin-panel-dark)))}
@media(max-width:720px){.app-footer{max-width:calc(100% - 20px);margin-top:28px!important}.app-footer-card{padding:12px;border-radius:20px}.app-footer-head{padding-bottom:11px}.app-footer .footer-brand>span:first-child{width:36px;height:36px;border-radius:12px}.app-footer-status{padding:6px 8px;font-size:9px}.app-footer-actions{gap:6px!important}.app-footer-actions a{min-height:58px;border-radius:13px}.app-footer-meta{justify-content:space-between}.app-footer .compact-app-links{display:none}}
@media(prefers-reduced-motion:reduce){.listing-card,.product-card,.store-card,.section-tile,.delivery-place-card,.app-footer-actions a{transition:none!important;animation:none!important}}

/* Compact footer: navigation only, without the repeated brand panel. */
.app-footer{max-width:min(820px,calc(100% - 28px));margin-top:26px!important;margin-bottom:calc(76px + env(safe-area-inset-bottom))!important}
.app-footer-card{padding:10px 12px;border-radius:20px;box-shadow:0 7px 22px color-mix(in srgb,var(--forest) 7%,transparent)}
.app-footer-actions a{min-height:50px;flex-direction:row;gap:6px;padding:6px 4px;border-radius:13px}
.app-footer-actions a span{width:25px;height:25px;border-radius:8px}.app-footer-actions svg{width:14px;height:14px}
.app-footer-meta{margin-top:8px;padding:7px 3px 0}
@media(max-width:720px){.app-footer{margin-top:18px!important}.app-footer-card{padding:7px;border-radius:16px}.app-footer-actions{gap:5px!important}.app-footer-actions a{min-height:45px;flex-direction:column;gap:2px;border-radius:10px}.app-footer-actions a span{width:21px;height:21px}.app-footer-actions a b{font-size:9px}.app-footer-meta{margin-top:5px;padding-top:5px}}

.required-mark{display:none}.field-error{margin:8px 0 0;padding:9px 11px;border-radius:10px;background:color-mix(in srgb,#d9362b 9%,var(--panel));color:#b52d25;font-size:11px;font-weight:800}.upload-area.field-missing{border-color:#c63b32!important;background:color-mix(in srgb,#d9362b 7%,var(--panel))!important;box-shadow:0 0 0 3px color-mix(in srgb,#d9362b 12%,transparent)}
.contact-verification{margin-top:13px;padding:14px;border:1px solid color-mix(in srgb,var(--forest) 22%,var(--line));border-radius:15px;background:var(--app-soft)}.contact-verification>b,.contact-verification>small{display:block}.contact-verification>small{margin:4px 0 10px;color:var(--muted)}.contact-verification>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.contact-verification input{direction:ltr;text-align:center;letter-spacing:5px}.contact-verification .text-button{margin-top:8px;border:0;background:transparent;color:var(--forest);font:inherit;font-size:10px;font-weight:800;cursor:pointer}.contact-verification.verified{border-color:var(--forest);background:color-mix(in srgb,var(--forest) 12%,var(--panel))}
.optional-map-link{display:grid;gap:11px;margin-top:15px;padding:15px;border:1px solid var(--app-border);border-radius:16px;background:var(--app-soft)}.optional-map-link>div{display:grid;gap:3px}.optional-map-link>div small{color:var(--muted);line-height:1.6}.optional-map-link>a{justify-self:start}.optional-map-link label{margin:0}
@media(max-width:600px){.contact-verification>div{grid-template-columns:1fr}.contact-verification .btn,.optional-map-link>a{width:100%}}
.service-category-filter{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0;padding:16px 18px}.service-category-filter h2{margin:3px 0 0;font-size:18px}.service-category-filter form{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.service-category-filter label{display:grid;gap:5px;min-width:230px;margin:0}.service-category-filter label>span{font-size:10px;color:var(--muted);font-weight:800}.service-category-filter select{min-height:43px}.service-category-filter .btn{min-height:43px;white-space:nowrap}
@media(max-width:700px){.service-category-filter{align-items:stretch;flex-direction:column;margin:12px 0;padding:14px}.service-category-filter form{display:grid;grid-template-columns:1fr auto}.service-category-filter label{grid-column:1/-1;min-width:0}.service-category-filter .btn{padding-inline:13px}}
