:root {
  --orange: #ff5d36;
  --orange-dark: #e9421f;
  --orange-soft: #fff0eb;
  --ink: #17211c;
  --muted: #718078;
  --line: #e7ece8;
  --surface: #ffffff;
  --canvas: #f5f7f5;
  --green: #238b57;
  --shadow: 0 2.4vw 7vw rgba(21, 41, 31, .1);
  --radius-lg: 5vw;
  --radius-md: 3.5vw;
  --safe-bottom: env(safe-area-inset-bottom, 0%);
}

* { box-sizing: border-box; }
html, body { min-height: 100%; background: #dce2de; }
body { margin: 0; color: var(--ink); font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; overflow: hidden; }
html[dir="rtl"] body { font-family: "Geeza Pro", "Noto Sans Arabic", "Arial", system-ui, sans-serif; }
button, input, select, textarea { max-width: 100%; font: inherit; }
img, svg { max-width: 100%; }
button { -webkit-tap-highlight-color: transparent; }
.app-shell { container-type: inline-size; position: relative; width: min(100vw, 56vh); height: 100dvh; margin: auto; overflow: hidden; background: var(--canvas); box-shadow: 0 0 8vw rgba(20, 35, 28, .15); }
.app-content { height: 100dvh; overflow-x: hidden; overflow-y: auto; overscroll-behavior-y: contain; scroll-behavior: smooth; }
.app-screen { display: none; width: 100%; max-width: 100%; min-height: 100dvh; padding-bottom: calc(22cqw + var(--safe-bottom)); overflow-x: hidden; }
.app-screen.active { display: block; }

.round-action { position: relative; display: grid; place-items: center; width: 10cqw; height: 10cqw; padding: 0; border: .25cqw solid var(--line); border-radius: 50%; color: var(--ink); background: var(--surface); font-size: 4.5cqw; }

.hero-copy { display: flex; align-items: flex-end; justify-content: space-between; padding: 6cqw 5cqw 5cqw; background: var(--surface); }
.hero-copy > div { min-width: 0; }
.eyebrow { margin: 0 0 1cqw; color: var(--orange); font-size: 2.6cqw; font-weight: 900; letter-spacing: .5cqw; }
.hero-copy h1 { margin: 0; font-size: 7.2cqw; font-weight: 850; letter-spacing: -.3cqw; }
.hero-copy p:last-child { margin: 1.8cqw 0 0; color: var(--muted); font-size: 3.3cqw; }
.fire-badge { display: grid; flex: 0 0 auto; place-items: center; width: 16cqw; height: 23cqw; overflow: hidden; }
.fire-badge img { width: 100%; max-width: none; height: 100%; object-fit: cover; }
.sticky-controls { position: sticky; top: 0; z-index: 10; padding-top: 1cqw; background: var(--surface); box-shadow: 0 2cqw 4cqw rgba(25, 40, 33, .04); }
.catalog-search { position: relative; display: flex; align-items: center; margin: 2cqw 4cqw 0; }
.catalog-search > .bi-search { position: absolute; left: 3.5cqw; color: var(--muted); font-size: 3.8cqw; pointer-events: none; }
.catalog-search input { width: 100%; min-height: 11cqw; padding: 2.5cqw 20cqw 2.5cqw 10cqw; border: .25cqw solid var(--line); border-radius: 3.5cqw; outline: 0; color: var(--ink); background: var(--canvas); font-size: 3.2cqw; }
.catalog-search input:focus { border-color: var(--orange); background: white; box-shadow: 0 0 0 .7cqw rgba(255, 93, 54, .12); }
.catalog-search input::-webkit-search-cancel-button,
.search-control input[type="search"]::-webkit-search-cancel-button { display: none; -webkit-appearance: none; appearance: none; }
.catalog-search input::-ms-clear,
.search-control input[type="search"]::-ms-clear { display: none; width: 0; height: 0; }
.catalog-search .spinner-border { position: absolute; right: 4cqw; width: 4cqw; height: 4cqw; color: var(--orange); }
.catalog-search button { position: absolute; right: 1.3cqw; display: grid; place-items: center; width: 8.5cqw; height: 8.5cqw; padding: 0; border: 0; border-radius: 50%; color: var(--muted); background: transparent; font-size: 3.4cqw; }
.catalog-search [hidden] { display: none !important; }
.selection-status { display: block; margin: 1.2cqw .8cqw 0; color: var(--muted); font-size: 2.7cqw; }
.product-search-shell { position: relative; }
.search-control .spinner-border { position: absolute; right: 3.2cqw; top: 50%; width: 3.8cqw; height: 3.8cqw; margin-top: -1.9cqw; color: var(--orange); }
.product-suggestion-list { position: absolute; z-index: 40; top: calc(100% + 1.2cqw); right: 0; left: 0; max-height: 62cqw; overflow-y: auto; border: .25cqw solid var(--line); border-radius: 3cqw; background: #fff; box-shadow: 0 4cqw 10cqw rgba(31, 45, 38, .16); }
.product-suggestion-list[hidden] { display: none !important; }
.product-suggestion { display: grid; grid-template-columns: 11cqw minmax(0, 1fr) auto; gap: 2.5cqw; align-items: center; width: 100%; padding: 2.2cqw 2.6cqw; border: 0; border-bottom: .2cqw solid var(--line); color: var(--ink); background: #fff; text-align: left; }
.product-suggestion:last-child { border-bottom: 0; }
.product-suggestion:hover, .product-suggestion:focus { outline: 0; background: #fff6f2; }
.product-suggestion img { width: 11cqw; height: 11cqw; border-radius: 2cqw; object-fit: contain; background: #f7f7f5; }
.product-suggestion span { min-width: 0; }
.product-suggestion strong, .product-suggestion small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.product-suggestion strong { font-size: 3cqw; }
.product-suggestion small { margin-top: .6cqw; color: var(--muted); font-size: 2.5cqw; }
.product-suggestion > i { color: var(--orange); font-size: 3.6cqw; }
.product-suggestion-empty { padding: 3.5cqw; color: var(--muted); text-align: center; font-size: 2.8cqw; }
.category-rail { display: flex; gap: 2cqw; padding: 3cqw 5cqw; overflow-x: auto; scrollbar-width: none; }
.category-rail::-webkit-scrollbar { display: none; }
.category-button { flex: 0 0 auto; padding: 2.5cqw 4cqw; border: .25cqw solid var(--line); border-radius: 10cqw; color: #526159; background: var(--surface); font-size: 3.2cqw; font-weight: 700; white-space: nowrap; transition: .2s ease; }
.category-button i { margin-right: 1.5cqw; }
.category-button.active { border-color: var(--ink); color: white; background: var(--ink); box-shadow: 0 1.5cqw 3cqw rgba(23, 33, 28, .17); }
.feed-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 2cqw; width: 100%; max-width: 100%; padding: 1cqw 4cqw 3cqw; }
.result-count { flex: 0 0 auto; color: var(--muted); font-size: 2.8cqw; font-weight: 650; white-space: nowrap; }
.toolbar-actions { display: flex; min-width: 0; align-items: center; justify-content: flex-end; gap: 1.5cqw; }
.toolbar-actions .dropdown { flex: 0 1 auto; min-width: 0; }
.toolbar-actions .dropdown:first-child { width: 34cqw; }
.toolbar-actions .dropdown:last-child { width: 25cqw; }
.toolbar-button { display: flex; min-width: 0; align-items: center; gap: 1cqw; padding: 2cqw 2.2cqw; border: 0; border-radius: 2.5cqw; color: var(--ink); background: var(--canvas); font-size: 2.75cqw; font-weight: 750; white-space: nowrap; }
.toolbar-button i { flex: 0 0 auto; color: var(--orange); }
.toolbar-button span { display: block; min-width: 0; max-width: 24cqw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.toolbar-actions .dropdown:last-child .toolbar-button span { max-width: 14cqw; }
.dropdown-menu { min-width: 43cqw; max-width: 90cqw; padding: 2cqw; border: 0; border-radius: 3.5cqw; box-shadow: var(--shadow); font-size: 3.2cqw; }
.dropdown-item { padding: 2.7cqw 3cqw; border-radius: 2.4cqw; }
.dropdown-item.active, .dropdown-item:active { color: var(--orange-dark); background: var(--orange-soft); }
.view-menu-item { display: flex; align-items: center; gap: 2cqw; }
.view-menu-item i { width: 4cqw; color: var(--orange); text-align: center; }

.product-list { display: grid; gap: 3cqw; padding: 4cqw 3.5cqw; }
.product-card { position: relative; display: grid; grid-template-columns: 25cqw minmax(0, 1fr) 22cqw; gap: 3cqw; min-height: 28cqw; padding: 2.5cqw; border: .2cqw solid rgba(220, 228, 223, .8); border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 1.8cqw 5cqw rgba(32, 52, 42, .06); cursor: pointer; overflow: hidden; }
.product-media { position: relative; width: 25cqw; height: 25cqw; padding: 0; border: 0; border-radius: 4cqw; background: #e9eee9; overflow: hidden; }
.product-media > img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.product-card:active .product-media > img { transform: scale(1.04); }
.store-logo { position: absolute; right: 1.5cqw; bottom: 1.5cqw; display: grid; place-items: center; width: 7.5cqw; height: 7.5cqw; padding: 0; border: .7cqw solid white; border-radius: 2.2cqw; color: white; background: var(--store-color, #e83b3b); box-shadow: 0 1cqw 2.5cqw rgba(0, 0, 0, .2); font-size: 2.2cqw; font-weight: 900; text-transform: uppercase; }
.photo-count { position: absolute; left: 1.5cqw; bottom: 1.5cqw; padding: .8cqw 1.5cqw; border-radius: 2cqw; color: white; background: rgba(18, 28, 23, .68); backdrop-filter: blur(1.5cqw); font-size: 2.3cqw; font-weight: 700; }
.product-main { min-width: 0; padding-top: .4cqw; }
.product-main h3 { display: block; margin: 0 0 1.4cqw; overflow: hidden; font-size: 3.65cqw; font-weight: 800; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.product-description { display: -webkit-box; min-height: 8cqw; margin: 0 0 1.2cqw; overflow: hidden; color: var(--muted); font-size: 2.85cqw; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.product-meta { display: flex; align-items: center; gap: 1.6cqw; color: #66736c; font-size: 2.5cqw; }
.product-meta span + span::before { content: "•"; margin-right: 1.6cqw; color: #bdc6c0; }
.fresh-label { display: inline-flex; align-items: center; gap: 1cqw; margin-top: 2cqw; padding: 1.1cqw 1.8cqw; border-radius: 2cqw; color: var(--green); background: #e9f7ef; font-size: 2.4cqw; font-weight: 750; }
.price-stack { display: flex; flex-direction: column; align-items: flex-end; padding-top: .5cqw; text-align: right; }
.discount-badge { margin-bottom: 1cqw; padding: .7cqw 1.3cqw; border-radius: 1.5cqw; color: white; background: var(--orange); font-size: 2.4cqw; font-weight: 850; }
.current-price { color: var(--orange-dark); font-size: 5.8cqw; font-weight: 900; line-height: 1; letter-spacing: -.25cqw; }
.current-price sup { font-size: 2.7cqw; letter-spacing: 0; }
.old-price { margin-top: 1.2cqw; color: #9ba59f; font-size: 3cqw; text-decoration: line-through; }
.unit-price { margin-top: auto; color: var(--muted); font-size: 2.4cqw; line-height: 1.25; }
.empty-state { padding: 15cqw 8cqw; text-align: center; }
.empty-state i { display: grid; place-items: center; width: 18cqw; height: 18cqw; margin: auto auto 4cqw; border-radius: 50%; color: var(--orange); background: var(--orange-soft); font-size: 8cqw; }
.empty-state.catalog-loading .spinner-border { width: 10cqw; height: 10cqw; margin-bottom: 4cqw; border-width: 1cqw; color: var(--orange) !important; }

.product-list.view-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3cqw; padding: 4cqw 3cqw; }
.view-grid .product-card { display: flex; min-width: 0; min-height: 0; flex-direction: column; gap: 2cqw; padding: 2.2cqw; border-radius: 4cqw; }
.view-grid .product-media { width: 100%; height: 35cqw; border-radius: 3.2cqw; }
.view-grid .store-logo { width: 8cqw; height: 8cqw; font-size: 2.2cqw; }
.view-grid .product-main h3 { margin-bottom: 1cqw; font-size: 3.3cqw; }
.view-grid .product-description { min-height: 7.5cqw; margin-bottom: 1cqw; font-size: 2.55cqw; }
.view-grid .product-meta { flex-wrap: wrap; gap: .7cqw; font-size: 2.3cqw; }
.view-grid .product-meta span + span::before { margin-right: .7cqw; }
.view-grid .fresh-label { margin-top: 1.2cqw; padding: 1cqw 1.5cqw; font-size: 2.2cqw; }
.view-grid .price-stack { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .8cqw; width: 100%; padding-top: 1cqw; border-top: .25cqw solid var(--line); text-align: left; }
.view-grid .discount-badge { grid-column: 2; grid-row: 1; justify-self: end; margin: 0; font-size: 2.2cqw; }
.view-grid .current-price { grid-column: 1; grid-row: 1; font-size: 5cqw; }
.view-grid .old-price { grid-column: 1; grid-row: 2; margin: 0; font-size: 2.7cqw; }
.view-grid .unit-price { grid-column: 1 / 3; grid-row: 3; margin: 0; font-size: 2.25cqw; }

.product-list.view-table { display: block; width: 100%; padding: 4cqw 3cqw; }
.product-table-shell { width: 100%; max-width: 100%; border: .2cqw solid var(--line); border-radius: 4cqw; background: white; box-shadow: 0 1.8cqw 5cqw rgba(32, 52, 42, .06); overflow: hidden; }
.product-table { width: 100%; max-width: 100%; table-layout: fixed; border-collapse: collapse; }
.table-product-column { width: 42%; }
.table-store-column { width: 23%; }
.table-distance-column { width: 12%; }
.table-price-column { width: 23%; }
.product-table th { padding: 0; border-bottom: .25cqw solid var(--line); background: #f0f3f1; }
.product-table th button { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: .5cqw; padding: 2.5cqw 1.2cqw; border: 0; color: #5e6b64; background: transparent; font-size: 2.25cqw; font-weight: 850; white-space: nowrap; }
.product-table th button i { flex: 0 0 auto; color: var(--orange); font-size: 2.2cqw; }
.product-table td { min-width: 0; padding: 2cqw 1cqw; border-bottom: .2cqw solid var(--line); color: var(--ink); font-size: 2.55cqw; vertical-align: middle; overflow: hidden; }
.product-table tbody tr:last-child td { border-bottom: 0; }
.product-table-row { cursor: pointer; }
.product-table-row:active { background: var(--orange-soft); }
.table-product { display: flex; min-width: 0; align-items: center; gap: 1.5cqw; }
.table-photo { flex: 0 0 9cqw; width: 9cqw; height: 9cqw; padding: 0; border: 0; border-radius: 2cqw; background: #e9eee9; overflow: hidden; }
.table-photo img { width: 100%; height: 100%; object-fit: cover; }
.table-product > span { display: block; min-width: 0; }
.table-product strong, .table-product small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.table-product strong { font-size: 2.55cqw; }
.table-product small { margin-top: .7cqw; color: var(--muted); font-size: 2.15cqw; }
.table-store { display: flex; min-width: 0; width: 100%; flex-direction: column; align-items: center; gap: .7cqw; padding: 0; border: 0; color: var(--ink); background: transparent; font-size: 2.2cqw; font-weight: 750; }
.table-store > span:last-child { display: block; width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.table-store-logo { display: grid; place-items: center; width: 5.5cqw; height: 5.5cqw; border-radius: 1.5cqw; color: white; background: var(--store-color); font-size: 1.8cqw; font-weight: 900; }
.product-table td:nth-child(3) { color: var(--muted); text-align: center; }
.product-table td:last-child { text-align: right; }
.table-current-price, .table-old-price { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.table-current-price { color: var(--orange-dark); font-size: 2.9cqw; }
.table-old-price { margin-top: .7cqw; color: #9ba59f; font-size: 2.1cqw; text-decoration: line-through; }

.product-list.view-map { display: block; width: 100%; padding: 3cqw; }
.map-view { isolation: isolate; position: relative; z-index: 0; width: 100%; min-width: 0; border: .2cqw solid var(--line); border-radius: 4cqw; background: white; box-shadow: 0 1.8cqw 5cqw rgba(32, 52, 42, .08); overflow: hidden; }
.map-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 2cqw; min-width: 0; padding: 2.5cqw 3cqw; border-bottom: .2cqw solid var(--line); background: white; }
.map-radius-copy { display: flex; min-width: 0; flex-direction: column; }
.map-radius-copy small { color: var(--muted); font-size: 2.3cqw; font-weight: 650; }
.map-radius-copy strong { margin-top: .2cqw; font-size: 3.5cqw; font-weight: 900; }
.map-radius-actions { display: flex; flex: 0 0 auto; border: .2cqw solid var(--line); border-radius: 3cqw; background: var(--canvas); overflow: hidden; }
.map-radius-actions button { display: grid; place-items: center; width: 9cqw; height: 9cqw; padding: 0; border: 0; color: var(--ink); background: transparent; font-size: 3.4cqw; }
.map-radius-actions button + button { border-left: .2cqw solid var(--line); }
.map-radius-actions button:disabled { color: #b8c0bb; }
.map-locate-button { display: flex; flex: 0 0 auto; align-items: center; gap: 1cqw; height: 9cqw; padding: 0 2.5cqw; border: 0; border-radius: 3cqw; color: white; background: var(--ink); font-size: 2.45cqw; font-weight: 800; white-space: nowrap; }
.map-locate-button i { font-size: 3.4cqw; }
.map-canvas-wrap { position: relative; width: 100%; min-width: 0; overflow: hidden; }
.discount-map { width: 100%; height: 120cqw; min-height: 105cqw; background: #e9eeeb; font-family: inherit; }
.discount-map:focus { outline: 0; }
.map-status { position: absolute; z-index: 700; top: 2.5cqw; left: 2.5cqw; display: flex; max-width: 66cqw; flex-direction: column; padding: 1.8cqw 2.5cqw; border: .2cqw solid rgba(255, 255, 255, .8); border-radius: 3cqw; background: rgba(255, 255, 255, .94); box-shadow: 0 1.5cqw 4cqw rgba(18, 35, 27, .14); backdrop-filter: blur(2cqw); pointer-events: none; }
.map-status strong { font-size: 2.8cqw; font-weight: 850; }
.map-status span { margin-top: .4cqw; overflow: hidden; color: var(--muted); font-size: 2.2cqw; text-overflow: ellipsis; white-space: nowrap; }
.map-empty-hint { position: absolute; z-index: 690; top: 50%; left: 50%; display: flex; width: 64cqw; flex-direction: column; align-items: center; gap: 2cqw; padding: 4cqw; border-radius: 4cqw; color: var(--muted); background: rgba(255, 255, 255, .94); box-shadow: var(--shadow); font-size: 2.7cqw; font-weight: 700; text-align: center; transform: translate(-50%, -50%); pointer-events: none; }
.map-empty-hint[hidden] { display: none; }
.map-empty-hint i { display: grid; place-items: center; width: 10cqw; height: 10cqw; border-radius: 50%; color: var(--orange); background: var(--orange-soft); font-size: 4cqw; }
.map-load-error { display: flex; height: 100%; flex-direction: column; align-items: center; justify-content: center; gap: 2cqw; padding: 8cqw; color: var(--muted); text-align: center; }
.map-load-error i { color: var(--orange); font-size: 9cqw; }
.map-load-error strong { color: var(--ink); font-size: 4cqw; }
.map-load-error span { font-size: 2.8cqw; }

.deal-marker-host, .deal-cluster-host, .user-location-host { width: 0 !important; height: 0 !important; margin: 0 !important; border: 0 !important; background: transparent !important; }
.deal-marker { position: absolute; left: 0; bottom: 0; display: flex; min-width: 25cqw; max-width: 34cqw; flex-direction: column; padding: 1.5cqw 2cqw; border: .7cqw solid white; border-radius: 3cqw; color: var(--ink); background: white; box-shadow: 0 1.5cqw 4.5cqw rgba(21, 39, 30, .22); transform: translateX(-50%); }
.deal-marker::after { content: ""; position: absolute; left: 50%; bottom: -2.2cqw; width: 3.4cqw; height: 3.4cqw; border-right: .7cqw solid white; border-bottom: .7cqw solid white; background: white; transform: translateX(-50%) rotate(45deg); }
.deal-marker > span { display: block; overflow: hidden; font-size: 2.3cqw; font-weight: 750; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.deal-marker strong { margin-top: .4cqw; color: var(--orange-dark); font-size: 3.5cqw; font-weight: 950; line-height: 1; }
.deal-cluster { position: absolute; left: 0; top: 0; display: flex; width: 15cqw; height: 15cqw; flex-direction: column; align-items: center; justify-content: center; border: 1cqw solid rgba(255, 255, 255, .85); border-radius: 50%; color: white; background: linear-gradient(145deg, #ff875f, var(--orange-dark)); box-shadow: 0 2cqw 5cqw rgba(233, 66, 31, .34); transform: translate(-50%, -50%); }
.deal-cluster strong { font-size: 4.4cqw; font-weight: 950; line-height: 1; }
.deal-cluster small { margin-top: .4cqw; font-size: 2cqw; font-weight: 750; }
.user-location-dot { position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 7.5cqw; height: 7.5cqw; border: 1cqw solid white; border-radius: 50%; color: white; background: #2474ff; box-shadow: 0 0 0 2cqw rgba(36, 116, 255, .22), 0 1.5cqw 4cqw rgba(21, 55, 105, .3); font-size: 3cqw; transform: translate(-50%, -50%); }
.teviss-map-popup .leaflet-popup-content-wrapper { border-radius: 4cqw; box-shadow: 0 2cqw 7cqw rgba(18, 34, 26, .2); }
.teviss-map-popup .leaflet-popup-content { width: 64cqw !important; margin: 0; }
.teviss-map-popup .leaflet-popup-tip { box-shadow: none; }
.map-popup-card { padding: 4cqw; }
.map-popup-store { display: flex; align-items: center; gap: 1.5cqw; color: var(--muted); font-size: 2.5cqw; font-weight: 750; }
.map-popup-store > span { display: grid; place-items: center; width: 6cqw; height: 6cqw; border-radius: 1.8cqw; color: white; background: var(--store-color); font-size: 2cqw; font-weight: 900; }
.map-popup-card h3 { display: -webkit-box; margin: 2cqw 0; overflow: hidden; color: var(--ink); font-size: 3.5cqw; font-weight: 850; line-height: 1.25; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.map-popup-prices { display: flex; align-items: center; gap: 2cqw; }
.map-popup-prices strong { color: var(--orange-dark); font-size: 5cqw; font-weight: 950; }
.map-popup-prices del { color: #98a39d; font-size: 2.7cqw; }
.map-popup-prices small { margin-left: auto; padding: .8cqw 1.3cqw; border-radius: 1.5cqw; color: white; background: var(--orange); font-size: 2.2cqw; font-weight: 850; }
.map-popup-card p { display: flex; align-items: center; gap: 1cqw; margin: 2cqw 0; color: var(--muted); font-size: 2.7cqw; }
.map-popup-card p i { color: var(--orange); }
.map-popup-card button { display: flex; width: 100%; align-items: center; justify-content: center; gap: 1.5cqw; padding: 2.5cqw; border: 0; border-radius: 2.7cqw; color: white; background: var(--ink); font-size: 2.8cqw; font-weight: 800; }
.discount-map .leaflet-control-zoom { margin-right: 3cqw; margin-bottom: 3cqw; border: 0; border-radius: 3cqw; box-shadow: 0 1.5cqw 4cqw rgba(18, 35, 27, .17); overflow: hidden; }
.discount-map .leaflet-control-zoom a { display: grid; place-items: center; width: 10cqw; height: 10cqw; border: 0; color: var(--ink); font-size: 5cqw; line-height: 1; }
.discount-map .leaflet-control-attribution { max-width: 75cqw; overflow: hidden; font-size: 1.8cqw; text-overflow: ellipsis; white-space: nowrap; }

.bottom-nav { position: fixed; z-index: 1050; left: 50%; bottom: 0; display: grid; grid-template-columns: 1fr 1.25fr 1fr; align-items: end; width: min(100vw, 56vh); padding: 2.3cqw 6cqw calc(2.4cqw + var(--safe-bottom)); border-top: .25cqw solid var(--line); background: rgba(255, 255, 255, .96); backdrop-filter: blur(4cqw); transform: translateX(-50%) translateY(0); transition: transform .28s ease; }
.bottom-nav.hidden-nav { transform: translateX(-50%) translateY(120%); }
.bottom-nav button { position: relative; display: flex; flex-direction: column; align-items: center; gap: 1cqw; padding: 0; border: 0; color: #869189; background: transparent; font-size: 5cqw; }
.bottom-nav button::after { content: ""; position: absolute; left: 50%; bottom: -1.6cqw; width: 0; height: .9cqw; border-radius: 2cqw; opacity: 0; background: linear-gradient(90deg, #ffaf5f, var(--orange), var(--orange-dark)); box-shadow: 0 .7cqw 1.8cqw rgba(255, 93, 54, .3); transform: translateX(-50%); transition: width .22s ease, opacity .22s ease; }
.bottom-nav button span { display: grid; place-items: center; width: 10cqw; height: 8cqw; border-radius: 5cqw; }
.bottom-nav small { font-size: 2.5cqw; font-weight: 700; }
.bottom-nav button.active { color: var(--orange); }
.bottom-nav button.active::after { width: 8cqw; opacity: 1; }
.bottom-nav .main-nav { transform: translateY(-1cqw); }
.bottom-nav .main-nav span { width: 17cqw; height: 11cqw; color: white; background: linear-gradient(135deg, var(--orange), #ff815f); box-shadow: 0 2cqw 4cqw rgba(255, 93, 54, .32); font-size: 5.5cqw; }
.bottom-nav .main-nav small { color: var(--orange-dark); font-size: 2.8cqw; }

.screen-header { position: sticky; top: 0; z-index: 10; display: grid; grid-template-columns: 11cqw minmax(0, 1fr) 11cqw; align-items: center; gap: 2cqw; padding: 4cqw 5cqw 3cqw; border-bottom: .25cqw solid var(--line); background: rgba(255, 255, 255, .95); backdrop-filter: blur(3cqw); }
.screen-header > div { min-width: 0; }
.screen-header h2 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.screen-header span { color: var(--muted); font-size: 2.5cqw; font-weight: 700; }
.screen-header h2, .detail-modal-header h2 { margin: .5cqw 0 0; font-size: 4.8cqw; font-weight: 850; }
.back-button { display: grid; place-items: center; width: 10cqw; height: 10cqw; padding: 0; border: .25cqw solid var(--line); border-radius: 50%; color: var(--ink); background: white; font-size: 4cqw; }
.step-badge { display: grid; place-items: center; width: 10cqw; height: 10cqw; border-radius: 50%; color: var(--orange-dark) !important; background: var(--orange-soft); font-size: 3cqw !important; }
.screen-body { display: grid; gap: 3.5cqw; padding: 4cqw; }
.form-card, .profile-card { padding: 5cqw; border: .2cqw solid var(--line); border-radius: var(--radius-lg); background: white; box-shadow: 0 1.5cqw 5cqw rgba(34, 52, 43, .05); }
.section-heading { display: flex; align-items: center; gap: 3cqw; margin-bottom: 5cqw; }
.section-heading > div { min-width: 0; }
.section-number { display: grid; flex: 0 0 auto; place-items: center; width: 9cqw; height: 9cqw; border-radius: 3cqw; color: white; background: var(--ink); font-size: 3.3cqw; font-weight: 850; }
.section-heading h3, .profile-card h3 { margin: 0; font-size: 4.2cqw; font-weight: 850; }
.section-heading p, .list-heading p { margin: .7cqw 0 0; color: var(--muted); font-size: 2.7cqw; }
.field-label { display: flex; justify-content: space-between; margin: 3.5cqw 0 1.7cqw; color: #526057; font-size: 2.85cqw; font-weight: 750; }
.field-label span, .field-label small { color: var(--muted); font-weight: 600; }
.app-control { min-height: 11.5cqw; padding: 2.7cqw 3.5cqw; border: .25cqw solid var(--line); border-radius: 3cqw !important; color: var(--ink); background-color: #fafbfa; font-size: 3.3cqw; box-shadow: none !important; }
.app-control:focus { border-color: var(--orange); background-color: white; }
.form-select.app-control { background-position: right 3.5cqw center; background-size: 3.5cqw; }
.secondary-action, .gps-button, .logout-button { display: flex; align-items: center; justify-content: center; gap: 2cqw; width: 100%; min-height: 11cqw; margin-top: 3cqw; padding: 2cqw 3cqw; border: .25cqw dashed #cbd5cf; border-radius: 3cqw; color: var(--green); background: #f3faf6; font-size: 3cqw; font-weight: 800; }
.nested-fields { margin-top: 4cqw; padding-top: 1cqw; border-top: .25cqw solid var(--line); }
.photo-button { display: grid; flex: 0 0 auto; place-items: center; width: 12cqw; border: .25cqw solid var(--line); border-radius: 3cqw 0 0 3cqw; color: var(--orange); background: var(--orange-soft); font-size: 4cqw; cursor: pointer; }
.input-group { width: 100%; max-width: 100%; flex-wrap: nowrap; }
.input-group .app-control { min-width: 0; border-radius: 0 3cqw 3cqw 0 !important; }
.gps-button { justify-content: flex-start; margin-bottom: 2cqw; border-style: solid; text-align: left; }
.gps-button > i { display: grid; place-items: center; width: 9cqw; height: 9cqw; border-radius: 50%; color: white; background: var(--green); font-size: 4cqw; }
.gps-button span { display: flex; flex: 1; flex-direction: column; }
.gps-button small { margin-top: .7cqw; color: var(--muted); font-size: 2.4cqw; font-weight: 550; }
.two-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3cqw; }
.two-columns > * { min-width: 0; }
.search-control { position: relative; }
.search-control i { position: absolute; z-index: 2; top: 50%; left: 3.5cqw; color: var(--muted); font-size: 3.5cqw; transform: translateY(-50%); }
.search-control .app-control { padding-left: 10cqw; }
.photo-upload-row { display: flex; gap: 2cqw; overflow-x: auto; padding-bottom: 1cqw; }
.photo-add, .photo-preview-item { position: relative; display: flex; flex: 0 0 19cqw; flex-direction: column; align-items: center; justify-content: center; width: 19cqw; height: 19cqw; border: .25cqw dashed #c5d0c9; border-radius: 3cqw; color: var(--orange); background: var(--orange-soft); overflow: hidden; }
.photo-add i { font-size: 5cqw; }
.photo-add span { margin-top: 1cqw; font-size: 2.5cqw; font-weight: 700; }
.photo-preview-item img { width: 100%; height: 100%; object-fit: cover; }
.photo-preview-item button { position: absolute; top: 1cqw; right: 1cqw; display: grid; place-items: center; width: 5cqw; height: 5cqw; padding: 0; border: 0; border-radius: 50%; color: white; background: rgba(18, 28, 23, .7); font-size: 2.5cqw; }
.scan-button { width: 12cqw; border: 0; border-radius: 0 3cqw 3cqw 0; color: white; background: var(--ink); font-size: 4.5cqw; }
.price-card { background: linear-gradient(160deg, white 70%, #fff5f1); }
.calculated { color: var(--green); font-weight: 750; }
.discount-input { position: relative; }
.discount-input .app-control { padding-right: 19cqw; color: var(--orange-dark); font-size: 5cqw; font-weight: 850; }
.discount-input span { position: absolute; top: 50%; right: 3cqw; padding: 1cqw 2cqw; border-radius: 2cqw; color: white; background: var(--orange); font-size: 2.8cqw; font-weight: 850; transform: translateY(-50%); }
.discount-title { margin-top: 5cqw; }
.condition-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2cqw; }
.condition-option { display: flex; min-height: 18cqw; flex-direction: column; align-items: center; justify-content: center; gap: 1.5cqw; padding: 2cqw; border: .25cqw solid var(--line); border-radius: 3cqw; color: var(--muted); background: white; font-size: 2.5cqw; font-weight: 750; text-align: center; }
.condition-option i { font-size: 4.8cqw; }
.btn-check:checked + .condition-option { border-color: var(--orange); color: var(--orange-dark); background: var(--orange-soft); box-shadow: inset 0 0 0 .25cqw var(--orange); }
.primary-submit { display: flex; align-items: center; justify-content: center; gap: 2cqw; width: 100%; min-height: 13cqw; padding: 3cqw 5cqw; border: 0; border-radius: 4cqw; color: white; background: linear-gradient(135deg, var(--orange), #ff7755); box-shadow: 0 2.3cqw 5cqw rgba(255, 93, 54, .27); font-size: 3.5cqw; font-weight: 850; }
.trust-note { margin: 0 4cqw; color: var(--muted); font-size: 2.5cqw; text-align: center; }
.trust-note i { color: var(--green); }

.profile-hero { padding: 5cqw 5cqw 6cqw; border-radius: 0 0 8cqw 8cqw; color: white; background: radial-gradient(circle at 90% 0, #ff916f, transparent 35%), linear-gradient(145deg, #ff5d36, #d93d1d); }
.profile-topline { display: flex; align-items: center; justify-content: space-between; }
.eyebrow.light { color: rgba(255, 255, 255, .8); }
.round-action.light { border-color: rgba(255, 255, 255, .25); color: white; background: rgba(255, 255, 255, .15); }
.profile-summary { display: flex; align-items: center; gap: 4cqw; margin-top: 4cqw; }
.profile-summary > div { min-width: 0; }
.profile-summary h2 { overflow-wrap: anywhere; }
.avatar { display: grid; flex: 0 0 auto; place-items: center; width: 17cqw; height: 17cqw; border: .8cqw solid rgba(255, 255, 255, .4); border-radius: 50%; color: var(--orange-dark); background: white; font-size: 5cqw; font-weight: 900; }
.profile-summary h2 { margin: 0; font-size: 5cqw; font-weight: 850; }
.profile-summary p { margin: 1cqw 0 0; color: rgba(255, 255, 255, .85); font-size: 2.8cqw; }
.profile-summary p i { color: #ffdda0; }
.profile-summary p.verified i { color: #d5ffd9; }
.profile-stats { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 5cqw; padding: 3.5cqw 0; border-radius: 4cqw; background: rgba(255, 255, 255, .14); backdrop-filter: blur(2cqw); }
.profile-stats div { display: flex; flex-direction: column; align-items: center; border-right: .25cqw solid rgba(255, 255, 255, .2); }
.profile-stats div:last-child { border: 0; }
.profile-stats strong { font-size: 4.5cqw; }
.profile-stats span { color: rgba(255, 255, 255, .78); font-size: 2.4cqw; }
.profile-tabs { display: flex; flex-wrap: nowrap; gap: 1.5cqw; margin: 4cqw 0 0; padding: 0 4cqw 3cqw; overflow-x: auto; scrollbar-width: none; }
.profile-tabs button { flex: 0 0 auto; padding: 2.3cqw 3.2cqw; border: 0; border-radius: 8cqw; color: var(--muted); background: white; font-size: 2.8cqw; font-weight: 750; }
.profile-tabs button.active { color: white; background: var(--ink); }
.profile-content { padding: 0 4cqw; }
.profile-card { margin-bottom: 3cqw; }
.card-title-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 2cqw; }
.text-action, .icon-only { padding: 1cqw; border: 0; color: var(--orange); background: transparent; font-size: 2.8cqw; font-weight: 750; }
.info-row { display: flex; align-items: center; gap: 3cqw; padding: 3cqw 0; border-bottom: .25cqw solid var(--line); }
.info-row:last-child { border: 0; }
.info-row > i, .setting-row > span > i { display: grid; flex: 0 0 auto; place-items: center; width: 9cqw; height: 9cqw; border-radius: 2.8cqw; color: var(--orange); background: var(--orange-soft); font-size: 3.8cqw; }
.info-row > span { display: flex; min-width: 0; flex: 1; flex-direction: column; font-size: 3.1cqw; font-weight: 700; }
.info-row > span > span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.info-row small { margin-bottom: .6cqw; color: var(--muted); font-size: 2.4cqw; font-weight: 550; }
.profile-contact-row { align-items: center; }
.contact-status { display: block; margin-top: .7cqw; font-size: 2.25cqw; font-style: normal; font-weight: 750; line-height: 1.3; }
.contact-status.verified, .contact-verification-item small.verified { color: var(--green); }
.contact-status.unverified, .contact-verification-item small.unverified { color: #b34535; }
.contact-verify-button { flex: 0 0 auto; padding: 1.5cqw 2cqw; border: 0; border-radius: 3cqw; color: var(--orange-dark); background: var(--orange-soft); font-size: 2.25cqw; font-weight: 850; }
.publishing-profile-note { display: flex; align-items: flex-start; gap: 2cqw; margin: 3cqw 0 0; padding: 3cqw; border-radius: 3cqw; color: #7b4b18; background: #fff5df; font-size: 2.35cqw; line-height: 1.4; }
.publishing-profile-note i { flex: 0 0 auto; color: var(--orange); font-size: 3cqw; }
.logout-button { border-style: solid; color: #b93d2b; background: #fff1ef; }
.setting-row { display: flex; align-items: center; justify-content: space-between; gap: 3cqw; padding: 3.5cqw 0; border-bottom: .25cqw solid var(--line); }
.setting-row > span { display: flex; align-items: center; gap: 3cqw; }
.setting-row > span > span { display: flex; min-width: 0; flex-direction: column; }
.setting-row strong { font-size: 3cqw; }
.setting-row small { margin-top: .5cqw; color: var(--muted); font-size: 2.4cqw; }
.tour-setting-row { border-bottom: 0; }
.tour-restart-button { display: flex; width: 100%; align-items: center; justify-content: center; gap: 2cqw; margin-top: 2cqw; padding: 2.8cqw 3cqw; border: .25cqw solid #ffd1c5; border-radius: 3cqw; color: var(--orange-dark); background: var(--orange-soft); font-size: 2.8cqw; font-weight: 800; }
.tour-restart-button i { font-size: 3.5cqw; }
#appTourToggle:checked { border-color: var(--orange); background-color: var(--orange); }
.language-setting { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 3cqw; margin-top: 2cqw; padding: 3cqw 0 0; border: 0; border-top: .25cqw solid var(--line); color: var(--ink); background: transparent; text-align: left; }
.language-setting > span { display: flex; min-width: 0; align-items: center; gap: 3cqw; }
.language-setting > span > i { display: grid; flex: 0 0 auto; place-items: center; width: 9cqw; height: 9cqw; border-radius: 2.8cqw; color: var(--orange); background: var(--orange-soft); font-size: 3.8cqw; }
.language-setting > span > span { display: flex; min-width: 0; flex-direction: column; }
.language-setting strong { font-size: 3cqw; }
.language-setting small { margin-top: .6cqw; overflow: hidden; color: var(--muted); font-size: 2.4cqw; text-overflow: ellipsis; white-space: nowrap; }
.language-setting > i { flex: 0 0 auto; color: var(--muted); font-size: 3.5cqw; }
.form-check-input { width: 9cqw !important; height: 5cqw; border: 0; background-color: #d7ded9; box-shadow: none !important; }
.form-check-input:checked { background-color: var(--green); }
.range-label { display: flex; justify-content: space-between; margin: 3cqw 0; color: var(--muted); font-size: 3cqw; }
.range-label strong { color: var(--orange); }
.form-range::-webkit-slider-thumb { background: var(--orange); }
.device-card-note { margin: .7cqw 0 0; color: var(--muted); font-size: 2.5cqw; }
.device-count { display: grid; flex: 0 0 auto; place-items: center; min-width: 8cqw; height: 8cqw; padding: 0 2cqw; border-radius: 4cqw; color: var(--orange-dark); background: var(--orange-soft); font-size: 2.8cqw; font-weight: 900; }
.authorized-device-list { display: grid; gap: 2.5cqw; margin-top: 3cqw; }
.authorized-device-empty { padding: 5cqw 3cqw; border-radius: 3cqw; color: var(--muted); background: var(--canvas); font-size: 2.8cqw; text-align: center; }
.authorized-device { display: grid; grid-template-columns: 10cqw minmax(0, 1fr) 9cqw; align-items: center; gap: 2.5cqw; padding: 3cqw 0; border-bottom: .25cqw solid var(--line); }
.authorized-device:last-child { border-bottom: 0; }
.device-icon { display: grid; place-items: center; width: 10cqw; height: 10cqw; border-radius: 3cqw; color: var(--orange); background: var(--orange-soft); font-size: 4.3cqw; }
.device-data { min-width: 0; }
.device-name-line { display: flex; min-width: 0; align-items: center; gap: 1.5cqw; }
.device-name-line strong { overflow: hidden; font-size: 3cqw; text-overflow: ellipsis; white-space: nowrap; }
.current-device-badge { flex: 0 0 auto; padding: .8cqw 1.4cqw; border-radius: 2cqw; color: var(--green); background: #e8f8ef; font-size: 2cqw; font-style: normal; font-weight: 850; }
.device-data span, .device-data small { display: block; margin-top: .7cqw; overflow-wrap: anywhere; color: var(--muted); font-size: 2.35cqw; line-height: 1.35; }
.remove-device { display: grid; place-items: center; width: 9cqw; height: 9cqw; padding: 0; border: 0; border-radius: 50%; color: #b93d2b; background: #fff1ef; font-size: 3.6cqw; }
.logout-all-devices { display: flex; width: 100%; align-items: center; justify-content: center; gap: 2cqw; margin-top: 3cqw; padding: 3cqw; border: .25cqw solid #ffd0c9; border-radius: 3cqw; color: #b93d2b; background: #fff7f5; font-size: 2.9cqw; font-weight: 800; }
.list-heading { margin: 3cqw 1cqw; }
.list-heading h3 { margin: 0; font-size: 4cqw; }
.small-primary { padding: 2cqw 3cqw; border: 0; border-radius: 3cqw; color: white; background: var(--orange); font-size: 2.7cqw; font-weight: 750; }
.saved-list { display: grid; gap: 2.5cqw; }
.saved-item { display: grid; grid-template-columns: 15cqw 1fr auto; align-items: center; gap: 3cqw; padding: 2.5cqw; border-radius: 4cqw; background: white; }
.saved-item > div { min-width: 0; }
.saved-item img { width: 15cqw; height: 15cqw; border-radius: 3cqw; object-fit: cover; }
.saved-item h4 { margin: 0 0 1cqw; overflow: hidden; font-size: 3.2cqw; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.saved-item p { margin: 0; color: var(--orange-dark); font-size: 3cqw; font-weight: 800; }
.saved-item button { display: grid; place-items: center; width: 8cqw; height: 8cqw; padding: 0; border: 0; border-radius: 50%; color: var(--muted); background: var(--canvas); font-size: 3.5cqw; }

.auth-screen { padding: 8cqw 5cqw 22cqw; background: radial-gradient(circle at 100% 0, #ffd7cb 0, transparent 30%), var(--canvas); }
.auth-brand { padding: 5cqw 3cqw; text-align: center; }
.brand-mark { display: grid; place-items: center; width: 27cqw; height: 39cqw; margin: 0 auto 3cqw; overflow: hidden; }
.brand-mark img { width: 100%; max-width: none; height: 100%; object-fit: cover; }
.auth-brand h1 { margin: 1cqw 0; font-size: 6.5cqw; font-weight: 900; letter-spacing: -.2cqw; }
.auth-brand > p:last-child { margin: 2cqw auto 0; color: var(--muted); font-size: 3cqw; line-height: 1.45; }
.auth-card { padding: 4cqw; border-radius: 6cqw; background: white; box-shadow: var(--shadow); }
.unified-auth-title { display: flex; align-items: center; gap: 3cqw; margin-bottom: 4cqw; }
.unified-auth-title > span { display: grid; flex: 0 0 auto; place-items: center; width: 11cqw; height: 11cqw; border-radius: 3.5cqw; color: var(--orange); background: var(--orange-soft); font-size: 4.7cqw; }
.unified-auth-title > div { min-width: 0; }
.unified-auth-title h2 { margin: 0; font-size: 4.5cqw; font-weight: 900; }
.unified-auth-title p { margin: .8cqw 0 0; color: var(--muted); font-size: 2.5cqw; line-height: 1.35; }
.publishing-access-note { display: flex; align-items: flex-start; gap: 2.5cqw; margin: 0 0 4cqw; padding: 3cqw; border: .25cqw solid #ffd7c9; border-radius: 3.5cqw; color: var(--ink); background: #fff7f3; }
.publishing-access-note.compact { margin-bottom: 3cqw; }
.publishing-access-note > i { flex: 0 0 auto; color: var(--orange); font-size: 3.6cqw; }
.publishing-access-note > span { display: flex; min-width: 0; flex-direction: column; }
.publishing-access-note strong { font-size: 2.75cqw; }
.publishing-access-note small { margin-top: .7cqw; color: var(--muted); font-size: 2.3cqw; line-height: 1.4; }
.auth-identity-control { position: relative; }
.auth-identity-control > i { position: absolute; z-index: 2; top: 50%; left: 3.5cqw; color: var(--orange); font-size: 3.8cqw; transform: translateY(-50%); }
.auth-identity-control .app-control { padding-right: 3cqw; padding-left: 10.5cqw; font-size: 2.85cqw; }
.auth-identity-control .app-control.auth-input-valid { border-color: var(--green); background: #f4fbf7; }
.auth-identity-control .app-control.auth-input-invalid { border-color: #cf4935; background: #fff7f5; }
.auth-input-feedback { display: block; min-height: 4cqw; margin: 1.2cqw 1cqw 0; color: var(--muted); font-size: 2.35cqw; line-height: 1.35; }
.auth-input-feedback.valid { color: var(--green); }
.auth-input-feedback.invalid { color: #b93d2b; }
.demo-new-connection { display: flex; align-items: center; justify-content: space-between; gap: 3cqw; margin-top: 4cqw; padding: 3cqw; border: .25cqw solid #ffe0d6; border-radius: 3cqw; background: #fff8f5; }
.demo-new-connection > span { display: flex; min-width: 0; flex: 1; flex-direction: column; }
.demo-new-connection strong { color: var(--ink); font-size: 2.9cqw; }
.demo-new-connection small { margin-top: .5cqw; color: var(--muted); font-size: 2.3cqw; line-height: 1.35; }
.demo-new-connection .form-check-input { flex: 0 0 auto; order: 2; }
#demoNewConnection:checked { background-color: var(--orange); }
.unified-auth-note { display: flex; align-items: flex-start; gap: 2cqw; margin: 4cqw 1cqw 0; color: var(--muted); font-size: 2.45cqw; line-height: 1.45; }
.unified-auth-note i { flex: 0 0 auto; color: var(--orange); font-size: 3cqw; }
.auth-explanation { margin: 0 0 3cqw; color: var(--muted); font-size: 2.7cqw; line-height: 1.45; }
.auth-card .primary-submit { margin-top: 4cqw; }
.registration-details-card[hidden] { display: none; }
.registration-title { display: flex; align-items: center; gap: 3cqw; margin-bottom: 3cqw; }
.registration-title > div { min-width: 0; }
.registration-title span { color: var(--muted); font-size: 2.4cqw; font-weight: 700; }
.registration-title h2 { margin: .5cqw 0 0; font-size: 5cqw; font-weight: 900; }
.registration-back { display: grid; flex: 0 0 auto; place-items: center; width: 10cqw; height: 10cqw; padding: 0; border: .25cqw solid var(--line); border-radius: 50%; color: var(--ink); background: var(--canvas); font-size: 4cqw; }
.registration-contact-field { margin-top: 3cqw; }
.registration-contact-field .field-label { margin-top: 0; }
.registration-contact-control { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5cqw; align-items: center; }
.registration-contact-control > * { min-width: 0; }
.registration-contact-control button { align-self: stretch; padding: 0 2.2cqw; border: 0; border-radius: 3cqw; color: var(--orange-dark); background: var(--orange-soft); font-size: 2.2cqw; font-weight: 850; white-space: nowrap; }
.registration-contact-control button:disabled { color: var(--green); background: #e8f8ef; }
.registration-consent { display: flex; align-items: flex-start; gap: 3cqw; margin: 4cqw 0 0; color: var(--muted); font-size: 2.5cqw; line-height: 1.4; }
.registration-consent .form-check-input { flex: 0 0 auto; width: 5cqw !important; height: 5cqw; margin: 0; border: .25cqw solid var(--line); border-radius: 1.3cqw; }
.skip-auth { display: block; margin: 4cqw auto 0; padding: 2cqw; border: 0; color: var(--muted); background: transparent; font-size: 2.8cqw; font-weight: 700; }

.modal { left: 50%; width: min(100vw, 56vh); background: transparent; transform: translateX(-50%); }
.modal.show { background: rgba(16, 23, 18, .68); backdrop-filter: blur(.8cqw); }
.modal-backdrop { background: #101712; }
.modal-backdrop.show { opacity: .72; }
.modal-dialog { margin-right: auto; margin-left: auto; }
.modal-content { border: 0; border-radius: 5cqw; }
.modal-fullscreen { width: 100%; max-width: none; height: 100%; margin: 0; }
.modal-fullscreen .modal-content { min-height: 100dvh; border-radius: 0; background: var(--canvas); }
.detail-modal-header { display: grid; grid-template-columns: 11cqw minmax(0, 1fr) 11cqw; gap: 2cqw; padding: 4cqw; border-bottom: .25cqw solid var(--line); background: white; }
.detail-modal-header span { color: var(--muted); font-size: 2.4cqw; }
.detail-modal-header > div:nth-child(2) { min-width: 0; }
.detail-modal-header h2 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.detail-body { padding: 0 0 8cqw; }
.detail-gallery { position: relative; height: 72cqw; background: #e7ebe8; overflow: hidden; }
.detail-gallery .carousel-inner, .detail-gallery .carousel-item { height: 100%; }
.detail-gallery img { width: 100%; height: 100%; object-fit: cover; }
.detail-gallery .carousel-control-prev, .detail-gallery .carousel-control-next { top: 50%; bottom: auto; width: 11cqw; height: 11cqw; margin: 0 3cqw; border-radius: 50%; background: rgba(20, 29, 24, .55); opacity: 1; transform: translateY(-50%); }
.detail-gallery .carousel-control-prev-icon, .detail-gallery .carousel-control-next-icon { width: 4cqw; height: 4cqw; }
.detail-gallery .carousel-indicators { bottom: 3.5cqw; gap: 1.3cqw; margin: 0; }
.detail-gallery .carousel-indicators button { width: 2cqw; height: 2cqw; margin: 0; border: .5cqw solid white; border-radius: 50%; background: rgba(20, 29, 24, .65); opacity: .75; }
.detail-gallery .carousel-indicators button.active { background: var(--orange); opacity: 1; }
.detail-gallery-expand { position: absolute; z-index: 3; top: 4cqw; right: 4cqw; display: grid; place-items: center; width: 10cqw; height: 10cqw; padding: 0; border: 0; border-radius: 50%; color: white; background: rgba(20, 29, 24, .7); font-size: 4cqw; }
.gallery-counter { position: absolute; z-index: 3; right: 4cqw; bottom: 4cqw; padding: 1.4cqw 2.5cqw; border-radius: 3cqw; color: white; background: rgba(20, 29, 24, .7); font-size: 2.6cqw; pointer-events: none; }
.detail-section { margin: 3cqw; padding: 5cqw; border-radius: 5cqw; background: white; }
.detail-title { margin: 0; font-size: 5.2cqw; font-weight: 900; line-height: 1.2; }
.detail-description { margin: 2cqw 0; color: var(--muted); font-size: 3cqw; line-height: 1.5; }
.detail-price-row { display: flex; align-items: center; justify-content: space-between; margin-top: 4cqw; padding-top: 4cqw; border-top: .25cqw solid var(--line); }
.detail-price-row > div { min-width: 0; }
.detail-current { color: var(--orange-dark); font-size: 8cqw; font-weight: 900; line-height: 1; }
.detail-old { margin-left: 2cqw; color: var(--muted); font-size: 3.5cqw; text-decoration: line-through; }
.detail-saving { padding: 1.5cqw 2.5cqw; border-radius: 2.5cqw; color: var(--green); background: #e8f7ef; font-size: 3cqw; font-weight: 850; }
.condition-share-row { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 2cqw; margin-top: 3cqw; }
.condition-pill { display: inline-flex; min-width: 0; align-items: center; gap: 1cqw; padding: 1.5cqw 2.5cqw; border-radius: 3cqw; overflow: hidden; color: #72500e; background: #fff5d9; font-size: 2.7cqw; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.condition-pill i { flex: 0 0 auto; }
.product-share-button { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; gap: 1.3cqw; padding: 1.5cqw 2.5cqw; border: 0; border-radius: 3cqw; color: white; background: linear-gradient(135deg, var(--orange), #ff7755); font-size: 2.7cqw; font-weight: 800; }
.product-share-button i { font-size: 3cqw; }
.detail-store-card { display: flex; align-items: center; gap: 3cqw; }
.large-store-logo { display: grid; flex: 0 0 auto; place-items: center; width: 13cqw; height: 13cqw; border-radius: 4cqw; color: white; background: var(--store-color); font-size: 3.3cqw; font-weight: 900; }
.detail-store-card div { flex: 1; }
.detail-store-card div { min-width: 0; }
.detail-store-card h3 { margin: 0; font-size: 3.7cqw; font-weight: 850; }
.detail-store-card p { margin: 1cqw 0 0; color: var(--muted); font-size: 2.7cqw; }
.history-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 2cqw; }
.history-heading h3 { margin: 0; font-size: 4cqw; font-weight: 850; }
.history-heading span { color: var(--muted); font-size: 2.5cqw; }
.history-row { display: grid; grid-template-columns: 10cqw 1fr auto; align-items: center; gap: 3cqw; padding: 3cqw 0; border-bottom: .25cqw solid var(--line); }
.history-row > span { min-width: 0; }
.history-row:last-child { border: 0; }
.history-row .large-store-logo { width: 10cqw; height: 10cqw; border-radius: 3cqw; font-size: 2.4cqw; }
.history-row strong { display: block; font-size: 3cqw; }
.history-row small { color: var(--muted); font-size: 2.4cqw; }
.history-price { font-size: 3.7cqw !important; }
.modal#photosModal { left: 0; width: 100vw; transform: none; }
.modal-fullscreen .modal-content.media-modal { position: relative; width: 100vw; height: 100dvh; min-height: 100dvh; border-radius: 0; background: #101511; overflow: hidden; }
.media-modal #photoCarousel, .media-modal .carousel-inner, .media-modal .carousel-item { width: 100%; height: 100%; }
.media-modal .carousel-item img { width: 100%; height: 100%; padding: 10cqw 0 18cqw; object-fit: contain; }
.media-modal .carousel-control-prev, .media-modal .carousel-control-next { width: 16cqw; }
.modal-close { position: absolute; z-index: 5; top: 3cqw; right: 3cqw; display: grid; place-items: center; width: 10cqw; height: 10cqw; padding: 0; border: 0; border-radius: 50%; color: white; background: rgba(18, 27, 22, .65); font-size: 4cqw; }
.modal-close.dark { color: var(--ink); background: var(--canvas); }
.photo-caption { position: absolute; z-index: 4; right: 0; bottom: 0; left: 0; padding: 7cqw 6cqw calc(5cqw + var(--safe-bottom)); color: white; background: linear-gradient(transparent, rgba(8, 13, 10, .9)); font-size: 3cqw; text-align: center; pointer-events: none; }
.store-modal { padding: 6cqw; }
.store-cover { display: flex; align-items: center; gap: 4cqw; padding-right: 8cqw; }
.store-cover > div { min-width: 0; }
.store-cover .large-store-logo { width: 17cqw; height: 17cqw; border-radius: 5cqw; font-size: 4cqw; }
.store-cover h2 { margin: 0; font-size: 5cqw; font-weight: 900; }
.store-cover p { margin: 1cqw 0 0; color: var(--muted); font-size: 2.8cqw; }
.store-description { margin: 4cqw 0; color: var(--muted); font-size: 3cqw; line-height: 1.5; }
.store-place { display: grid; grid-template-columns: 9cqw 1fr auto; align-items: center; gap: 3cqw; padding: 3cqw 0; border-top: .25cqw solid var(--line); }
.store-place > span { min-width: 0; }
.store-place strong, .store-place small { overflow-wrap: anywhere; }
.store-place > i { display: grid; place-items: center; width: 9cqw; height: 9cqw; border-radius: 50%; color: var(--orange); background: var(--orange-soft); font-size: 3.5cqw; }
.store-place strong { display: block; font-size: 3cqw; }
.store-place small { color: var(--muted); font-size: 2.4cqw; }
.store-place > span:last-child { color: var(--green); font-size: 2.5cqw; font-weight: 750; text-align: right; }
.modal-dialog-end { display: flex; align-items: flex-end; min-height: 100%; margin: 0; }
.sheet-modal { border-radius: 6cqw 6cqw 0 0; }
.sheet-handle { width: 14cqw; height: 1.2cqw; margin: 2.5cqw auto 0; border-radius: 2cqw; background: #d7ddd9; }
.sheet-modal .modal-header { padding: 4cqw 5cqw; }
.sheet-modal h2 { font-size: 4.5cqw; font-weight: 850; }
.sheet-modal .modal-body { padding: 0 5cqw 6cqw; }
.location-choice { display: grid; grid-template-columns: 10cqw 1fr auto; align-items: center; gap: 3cqw; padding: 3cqw; border-top: .25cqw solid var(--line); }
.location-choice > i:first-child { font-size: 4cqw; text-align: center; }
.location-choice span { display: flex; flex-direction: column; }
.location-choice strong { font-size: 3.2cqw; }
.location-choice small { color: var(--muted); font-size: 2.5cqw; }
.location-choice.active > i { color: var(--orange); }
.language-modal { display: flex; height: 100dvh; flex-direction: column; overflow: hidden; }
.language-header { display: grid; flex: 0 0 auto; grid-template-columns: 11cqw minmax(0, 1fr); align-items: center; gap: 3cqw; padding: 4cqw; border-bottom: .25cqw solid var(--line); background: white; }
.language-header > div { min-width: 0; }
.language-header span { color: var(--muted); font-size: 2.4cqw; font-weight: 700; }
.language-header h2 { margin: .5cqw 0 0; overflow: hidden; font-size: 4.8cqw; font-weight: 850; text-overflow: ellipsis; white-space: nowrap; }
.language-search-wrap { flex: 0 0 auto; padding: 3cqw 4cqw; border-bottom: .25cqw solid var(--line); background: white; }
.language-search { position: relative; display: flex; width: 100%; align-items: center; }
.language-search > i { position: absolute; left: 3.5cqw; color: var(--muted); font-size: 3.6cqw; pointer-events: none; }
.language-search input { width: 100%; min-height: 11cqw; padding: 2.5cqw 11cqw 2.5cqw 10cqw; border: .25cqw solid var(--line); border-radius: 3cqw; outline: 0; color: var(--ink); background: var(--canvas); font-size: 3.2cqw; }
.language-search input:focus { border-color: var(--orange); background: white; }
.language-search button { position: absolute; right: 1cqw; display: grid; place-items: center; width: 9cqw; height: 9cqw; padding: 0; border: 0; color: #a1aaa4; background: transparent; font-size: 3.7cqw; }
.language-search-wrap > small { display: block; margin: 1.6cqw 1cqw 0; color: var(--muted); font-size: 2.4cqw; }
.language-list { flex: 1 1 auto; min-height: 0; padding: 3cqw 4cqw 8cqw; overflow-x: hidden; overflow-y: auto; }
.language-region { margin-bottom: 4cqw; border: .2cqw solid var(--line); border-radius: 4cqw; background: white; overflow: hidden; }
.language-region-heading { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 2cqw; padding: 2.8cqw 3.5cqw; border-bottom: .2cqw solid var(--line); background: #f0f3f1; }
.language-region-heading > span { display: flex; min-width: 0; align-items: center; gap: 2cqw; }
.language-region-heading i { color: var(--orange); font-size: 3.5cqw; }
.language-region-heading strong { overflow: hidden; font-size: 3.1cqw; text-overflow: ellipsis; white-space: nowrap; }
.language-region-heading small { display: grid; flex: 0 0 auto; place-items: center; min-width: 6cqw; height: 6cqw; padding: 0 1cqw; border-radius: 3cqw; color: var(--muted); background: white; font-size: 2.3cqw; font-weight: 750; }
.language-option { display: grid; width: 100%; grid-template-columns: 10cqw minmax(0, 1fr) 6cqw; align-items: center; gap: 2.5cqw; padding: 2.7cqw 3cqw; border: 0; border-bottom: .2cqw solid var(--line); color: var(--ink); background: white; text-align: left; }
.language-option:last-child { border-bottom: 0; }
.language-option:active, .language-option.active { background: var(--orange-soft); }
.language-code { display: grid; place-items: center; width: 10cqw; height: 8cqw; border-radius: 2.2cqw; color: var(--orange-dark); background: var(--orange-soft); font-size: 2.3cqw; font-weight: 900; text-transform: uppercase; }
.language-option.active .language-code { color: white; background: var(--orange); }
.language-names { display: flex; min-width: 0; flex-direction: column; }
.language-names strong, .language-names small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.language-names strong { font-size: 3cqw; }
.language-names small { margin-top: .6cqw; color: var(--muted); font-size: 2.5cqw; }
.language-option > i { color: #c5cdc8; font-size: 3.7cqw; text-align: center; }
.language-option.active > i { color: var(--orange); }
.language-empty { display: flex; flex: 1; flex-direction: column; align-items: center; justify-content: center; padding: 10cqw; color: var(--muted); text-align: center; }
.language-empty > i { display: grid; place-items: center; width: 16cqw; height: 16cqw; margin-bottom: 3cqw; border-radius: 50%; color: var(--orange); background: var(--orange-soft); font-size: 6cqw; }
.language-empty strong { color: var(--ink); font-size: 3.7cqw; }
.language-empty span { margin-top: 1cqw; font-size: 2.7cqw; }
.language-empty[hidden] { display: none; }
.first-launch-modal { max-height: 92dvh; padding: 5cqw; overflow-x: hidden; overflow-y: auto; }
.first-launch-heading { display: flex; align-items: center; gap: 3cqw; margin-bottom: 3cqw; }
.first-launch-heading > div { min-width: 0; }
.first-launch-mascot { display: block; flex: 0 0 auto; width: 16cqw; height: 23cqw; overflow: hidden; }
.first-launch-mascot img { width: 100%; height: 100%; object-fit: cover; }
.first-launch-heading p { margin: 0 0 .7cqw; color: var(--orange); font-size: 2.2cqw; font-weight: 900; letter-spacing: .4cqw; }
.first-launch-heading h2 { margin: 0; font-size: 5cqw; font-weight: 900; }
.first-launch-heading > div > span { display: block; margin-top: 1cqw; color: var(--muted); font-size: 2.5cqw; line-height: 1.35; }
.first-launch-language-picker { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 3cqw; padding: 3cqw; border: .25cqw solid var(--line); border-radius: 3cqw; color: var(--ink); background: white; text-align: left; }
.first-launch-language-picker > span { display: flex; min-width: 0; align-items: center; gap: 3cqw; }
.first-launch-language-picker > span > i { display: grid; flex: 0 0 auto; place-items: center; width: 9cqw; height: 9cqw; border-radius: 2.8cqw; color: var(--orange); background: var(--orange-soft); font-size: 4cqw; }
.first-launch-language-picker > span > span { display: flex; min-width: 0; flex-direction: column; }
.first-launch-language-picker strong, .first-launch-language-picker small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.first-launch-language-picker strong { font-size: 3cqw; }
.first-launch-language-picker small { margin-top: .5cqw; color: var(--muted); font-size: 2.3cqw; }
.first-launch-language-picker > i { flex: 0 0 auto; color: var(--muted); font-size: 3.5cqw; }
.first-location-title { display: flex; align-items: center; gap: 3cqw; margin: 4cqw 0 2cqw; padding: 3cqw; border-radius: 3cqw; background: var(--canvas); }
.first-location-title > span { display: grid; flex: 0 0 auto; place-items: center; width: 9cqw; height: 9cqw; border-radius: 2.8cqw; color: var(--orange); background: var(--orange-soft); font-size: 3.8cqw; }
.first-location-title > div { display: flex; min-width: 0; flex-direction: column; }
.first-location-title strong { font-size: 3cqw; }
.first-location-title small { margin-top: .6cqw; color: var(--muted); font-size: 2.35cqw; line-height: 1.35; }
.first-location-title small.success { color: var(--green); }
.first-location-title small.error { color: #b93d2b; }
.location-source-list { margin-bottom: 3cqw; border: .25cqw solid var(--line); border-radius: 3cqw; background: white; overflow: hidden; }
.location-source-item { display: grid; width: 100%; grid-template-columns: 8cqw minmax(0, 1fr) 5cqw; align-items: center; gap: 2.5cqw; padding: 2.6cqw 3cqw; border: 0; border-bottom: .25cqw solid var(--line); color: var(--ink); background: transparent; text-align: left; }
.location-source-item:last-child { border-bottom: 0; }
.location-source-item > i:first-child { color: var(--orange); font-size: 3.8cqw; text-align: center; }
.location-source-item > div { display: flex; min-width: 0; flex-direction: column; }
.location-source-item strong { font-size: 2.8cqw; }
.location-source-item small { margin-top: .4cqw; overflow: hidden; color: var(--muted); font-size: 2.25cqw; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.location-source-item small.success { color: var(--green); }
.location-source-item small.error { color: #b93d2b; }
.location-source-item > i:last-child { color: var(--muted); font-size: 3.2cqw; text-align: center; }
.location-source-item > i:last-child.bi-check-circle-fill { color: var(--green); }
.location-source-item > i:last-child.bi-exclamation-circle-fill { color: #b93d2b; }
.coordinate-purpose { display: flex; align-items: flex-start; gap: 2.5cqw; margin-bottom: 3cqw; padding: 3cqw; border: .25cqw solid #ffd8cc; border-radius: 3cqw; background: var(--orange-soft); }
.coordinate-purpose > i { flex: 0 0 auto; color: var(--orange); font-size: 4cqw; }
.coordinate-purpose > div { display: flex; min-width: 0; flex-direction: column; }
.coordinate-purpose strong { font-size: 2.8cqw; }
.coordinate-purpose span { margin-top: .7cqw; color: var(--muted); font-size: 2.35cqw; line-height: 1.4; }
.coordinate-purpose span b { color: var(--ink); font-weight: 850; }
.first-launch-purpose { margin: 0 0 4cqw; padding: 3.5cqw; border-color: #ffc7b8; background: linear-gradient(135deg, #fff5f0, var(--orange-soft)); box-shadow: 0 1.2cqw 4cqw rgba(255, 93, 54, .09); }
.first-launch-purpose > i { display: grid; place-items: center; width: 8cqw; height: 8cqw; border-radius: 2.5cqw; color: white; background: var(--orange); font-size: 3.6cqw; }
.ip-location-note { display: flex; align-items: flex-start; gap: 2cqw; margin: 3cqw 1cqw 0; color: var(--muted); font-size: 2.35cqw; line-height: 1.4; }
.ip-location-note i { flex: 0 0 auto; color: var(--orange); font-size: 3cqw; }
.first-launch-modal .primary-submit { margin-top: 4cqw; }
.code-modal { position: relative; align-items: center; padding: 7cqw; text-align: center; }
.code-close { position: absolute; top: 3cqw; right: 3cqw; display: grid; place-items: center; width: 9cqw; height: 9cqw; padding: 0; border: 0; border-radius: 50%; color: var(--muted); background: var(--canvas); font-size: 3.7cqw; }
.code-icon { display: grid; place-items: center; width: 16cqw; height: 16cqw; margin-bottom: 3cqw; border-radius: 50%; color: var(--orange); background: var(--orange-soft); font-size: 7cqw; }
.code-modal h2 { font-size: 5cqw; font-weight: 900; }
.code-modal p { color: var(--muted); font-size: 2.8cqw; }
.code-input { width: 100%; margin: 3cqw 0; padding: 3cqw; border: .4cqw solid var(--line); border-radius: 3cqw; outline: 0; color: var(--ink); background: var(--canvas); font-size: 7cqw; font-weight: 850; letter-spacing: 3cqw; text-align: center; }
.code-input:focus { border-color: var(--orange); }
.demo-code-hint { display: block; margin: -1cqw 0 3cqw; color: var(--muted); font-size: 2.3cqw; }
.resend-code { margin-top: 3cqw; border: 0; color: var(--muted); background: transparent; font-size: 2.7cqw; }
.resend-code:disabled { opacity: .65; }
.toast-container { position: fixed; z-index: 2000; top: 4cqw; left: 50%; width: min(90vw, 50vh); transform: translateX(-50%); }
.toast { border-radius: 3cqw; color: white; background: var(--ink); box-shadow: var(--shadow); font-size: 3cqw; }

.fresh-author-row { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 1cqw; margin-top: 2cqw; }
.fresh-author-row .fresh-label { flex: 0 0 auto; margin-top: 0; }
.contributor-chip { display: inline-flex; min-width: 0; max-width: 22cqw; align-items: center; gap: 1cqw; padding: .8cqw 1.2cqw; border: 0; border-radius: 3cqw; color: var(--ink); background: var(--canvas); font-size: 2.15cqw; font-weight: 750; }
.contributor-chip > span:first-child { display: grid; flex: 0 0 auto; place-items: center; width: 5cqw; height: 5cqw; border-radius: 50%; color: white; background: var(--contributor-color, var(--orange)); font-size: 1.7cqw; font-weight: 900; }
.contributor-chip > span:last-child { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.contributor-chip.trust-official > span:first-child { background: #275db0; }
.contributor-chip.trust-beginner > span:first-child { background: #e99526; }
.contributor-chip.trust-untrusted > span:first-child { background: #b74a39; }
.view-grid .fresh-author-row { align-items: stretch; flex-direction: column; }
.view-grid .contributor-chip { width: 100%; max-width: none; }
.table-product-copy { display: block; min-width: 0; }
.table-product-copy > strong, .table-product-copy > small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.table-fresh-author { display: flex; min-width: 0; align-items: center; gap: .7cqw; margin-top: .7cqw; }
.table-fresh-author > small { flex: 0 0 auto; margin: 0; color: var(--green); font-size: 1.8cqw; }
.table-fresh-author .contributor-chip { max-width: 14cqw; padding: .3cqw .6cqw; font-size: 1.7cqw; }
.table-fresh-author .contributor-chip > span:first-child { width: 3.7cqw; height: 3.7cqw; font-size: 1.25cqw; }
.map-popup-contributor-row { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 1cqw; margin: 2cqw 0; }
.map-popup-contributor-row > small { flex: 0 0 auto; color: var(--green); font-size: 2.2cqw; }
.map-popup-contributor-row .contributor-chip { width: auto; max-width: 34cqw; justify-content: flex-start; padding: .8cqw 1.2cqw; color: var(--ink); background: var(--canvas); font-size: 2.15cqw; }

.condition-share-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 10cqw 10cqw; align-items: center; gap: 1.5cqw; }
.condition-share-row .condition-pill { display: flex; width: 100%; }
.detail-contributor-button { display: inline-flex; min-width: 0; width: 100%; align-items: center; gap: 1cqw; padding: 1.2cqw 1.5cqw; border: 0; border-radius: 3cqw; color: var(--ink); background: var(--canvas); font-size: 2.35cqw; font-weight: 800; }
.detail-contributor-button > span:first-child { display: grid; flex: 0 0 auto; place-items: center; width: 6cqw; height: 6cqw; border-radius: 50%; color: white; background: var(--contributor-color, var(--orange)); font-size: 1.9cqw; }
.detail-contributor-button > span:last-child { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.detail-contributor-button.trust-official > span:first-child { background: #275db0; }
.detail-contributor-button.trust-beginner > span:first-child { background: #e99526; }
.detail-contributor-button.trust-untrusted > span:first-child { background: #b74a39; }
.detail-action-icon, .condition-share-row .product-share-button { display: grid; width: 10cqw; height: 10cqw; place-items: center; padding: 0; border: 0; border-radius: 50%; font-size: 3.8cqw; }
.detail-action-icon { color: #a84637; background: #fff0ed; }
.condition-share-row .product-share-button span { display: none; }

.trust-level-chip { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 1cqw; padding: 1.2cqw 1.8cqw; border-radius: 3cqw; font-size: 2.2cqw; font-weight: 850; }
.trust-level-chip.trust-trusted { color: #1f7b4c; background: #e8f8ef; }
.trust-level-chip.trust-beginner { color: #9a6618; background: #fff5df; }
.trust-level-chip.trust-untrusted { color: #a43f31; background: #fff0ed; }
.trust-level-chip.trust-official { color: #275db0; background: #edf3ff; }
.own-contribution-stats, .contributor-stat-grid, .store-community-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5cqw; margin-top: 3cqw; }
.own-contribution-stats > div, .contributor-stat-grid > div, .store-community-stats > div { display: flex; min-width: 0; flex-direction: column; align-items: center; padding: 2.5cqw 1cqw; border-radius: 3cqw; background: var(--canvas); text-align: center; }
.own-contribution-stats strong, .contributor-stat-grid strong, .store-community-stats strong { color: var(--orange-dark); font-size: 4cqw; }
.own-contribution-stats span, .contributor-stat-grid span, .store-community-stats span { margin-top: .5cqw; color: var(--muted); font-size: 2.15cqw; line-height: 1.25; }
.own-contribution-tabs, .contributor-profile-tabs { display: flex; gap: 1.5cqw; margin: 3cqw 0; overflow-x: auto; scrollbar-width: none; }
.own-contribution-tabs button, .contributor-profile-tabs button { flex: 0 0 auto; padding: 2cqw 3cqw; border: 0; border-radius: 6cqw; color: var(--muted); background: white; font-size: 2.6cqw; font-weight: 800; }
.own-contribution-tabs button.active, .contributor-profile-tabs button.active { color: white; background: var(--ink); }
.contribution-list { display: grid; gap: 2.5cqw; padding-bottom: 5cqw; }
.contribution-item { display: grid; grid-template-columns: 13cqw minmax(0, 1fr) auto; align-items: center; gap: 2.5cqw; padding: 2.5cqw; border: 0; border-radius: 4cqw; color: var(--ink); background: white; text-align: left; }
.contribution-item > img, .contribution-store-logo { width: 13cqw; height: 13cqw; border-radius: 3cqw; object-fit: cover; }
.contribution-store-logo { display: grid; place-items: center; color: white; background: var(--store-color); font-size: 3cqw; font-weight: 900; }
.contribution-item > span:nth-child(2) { display: flex; min-width: 0; flex-direction: column; }
.contribution-item strong, .contribution-item small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.contribution-item strong { font-size: 3cqw; }
.contribution-item small { margin-top: .7cqw; color: var(--muted); font-size: 2.3cqw; }
.contribution-item > i { color: var(--muted); font-size: 3.5cqw; }
.contribution-add { display: grid; place-items: center; width: 9cqw; height: 9cqw; padding: 0; border: 0; border-radius: 50%; color: white; background: var(--orange); font-size: 3.5cqw; }
.contribution-add:disabled { color: var(--green); background: #e8f8ef; }

.contributor-modal { height: 100dvh; overflow: hidden; }
.contributor-modal-header { display: grid; grid-template-columns: 11cqw minmax(0, 1fr); align-items: center; gap: 3cqw; padding: 4cqw; border-bottom: .25cqw solid var(--line); background: white; }
.contributor-modal-header > div { min-width: 0; }
.contributor-modal-header span { color: var(--muted); font-size: 2.4cqw; }
.contributor-modal-header h2 { margin: .5cqw 0 0; overflow: hidden; font-size: 4.7cqw; font-weight: 900; text-overflow: ellipsis; white-space: nowrap; }
.contributor-modal-body { height: calc(100dvh - 19cqw); padding: 4cqw; overflow-x: hidden; overflow-y: auto; }
.contributor-hero { padding: 5cqw; border-radius: 5cqw; color: white; background: radial-gradient(circle at 100% 0, #ff9b7b, transparent 38%), linear-gradient(145deg, var(--orange), var(--orange-dark)); }
.contributor-identity { display: flex; align-items: center; gap: 3cqw; }
.contributor-avatar { display: grid; flex: 0 0 auto; place-items: center; width: 16cqw; height: 16cqw; border: .7cqw solid rgba(255, 255, 255, .45); border-radius: 50%; color: var(--orange-dark); background: white; font-size: 4.5cqw; font-weight: 950; }
.contributor-identity > div { min-width: 0; }
.contributor-identity h2 { margin: 0; overflow-wrap: anywhere; font-size: 4.7cqw; font-weight: 900; }
.contributor-identity p { margin: 1cqw 0 0; color: rgba(255, 255, 255, .85); font-size: 2.6cqw; }
.contributor-trust { margin-top: 3cqw; padding: 3cqw; border-radius: 3cqw; color: var(--ink); background: rgba(255, 255, 255, .93); }
.contributor-trust > span { display: flex; align-items: center; gap: 1.5cqw; font-size: 2.8cqw; font-weight: 900; }
.contributor-trust p { margin: 1cqw 0 0; color: var(--muted); font-size: 2.3cqw; line-height: 1.4; }
.contributor-profile-card { margin-top: 3cqw; padding: 4cqw; border-radius: 4cqw; background: white; }
.contributor-profile-card > p { margin: 0 0 3cqw; color: var(--muted); font-size: 2.7cqw; line-height: 1.45; }
.contributor-profile-meta { display: grid; gap: 2cqw; }
.contributor-profile-meta span { display: flex; align-items: center; gap: 2cqw; color: var(--muted); font-size: 2.55cqw; }
.contributor-profile-meta i { color: var(--orange); font-size: 3cqw; }

.store-official-badge { display: inline-flex; align-items: center; gap: 1cqw; margin-top: 1cqw; color: #275db0; font-size: 2.4cqw; font-weight: 850; }
.store-modal { max-height: 92dvh; overflow-x: hidden; overflow-y: auto; }
.store-category-chips { display: flex; gap: 1.5cqw; margin: 3cqw 0; overflow-x: auto; }
.store-category-chips span { flex: 0 0 auto; padding: 1.3cqw 2cqw; border-radius: 3cqw; color: var(--orange-dark); background: var(--orange-soft); font-size: 2.3cqw; font-weight: 750; }

.report-modal { position: relative; max-height: 92dvh; padding: 5cqw; overflow-x: hidden; overflow-y: auto; }
.report-heading { display: flex; align-items: center; gap: 3cqw; padding-right: 8cqw; }
.report-heading > span { display: grid; flex: 0 0 auto; place-items: center; width: 12cqw; height: 12cqw; border-radius: 4cqw; color: #b34535; background: #fff0ed; font-size: 4.5cqw; }
.report-heading > div { min-width: 0; }
.report-heading p { margin: 0; color: var(--orange); font-size: 2.1cqw; font-weight: 900; letter-spacing: .25cqw; }
.report-heading h2 { margin: .5cqw 0; font-size: 4.8cqw; font-weight: 900; }
.report-heading small { display: block; overflow: hidden; color: var(--muted); font-size: 2.4cqw; text-overflow: ellipsis; white-space: nowrap; }
.report-modal fieldset { margin-top: 4cqw; }
.report-modal legend { margin-bottom: 2cqw; font-size: 3cqw; font-weight: 850; }
.report-reason { display: flex; align-items: center; gap: 2.5cqw; padding: 2.4cqw 0; border-bottom: .25cqw solid var(--line); color: var(--ink); font-size: 2.75cqw; }
.report-reason .form-check-input { flex: 0 0 auto; width: 5cqw !important; height: 5cqw; margin: 0; border: .25cqw solid var(--line); }
.report-reason .form-check-input:checked { border-color: var(--orange); background-color: var(--orange); }
.report-textarea { min-height: 24cqw; resize: vertical; }
.required-mark { margin-left: 1cqw; color: #b34535; font-size: 2.1cqw; font-weight: 800; }
.report-comment-note { display: block; margin-top: 1.2cqw; color: var(--muted); font-size: 2.2cqw; line-height: 1.35; }
.report-modal .primary-submit { margin-top: 4cqw; }

.contact-verification-modal { position: relative; max-height: 92dvh; padding: 5cqw; overflow-x: hidden; overflow-y: auto; }
.contact-verification-heading { display: flex; align-items: center; gap: 3cqw; padding-right: 8cqw; }
.contact-verification-heading > span { display: grid; flex: 0 0 auto; place-items: center; width: 12cqw; height: 12cqw; border-radius: 4cqw; color: var(--orange-dark); background: var(--orange-soft); font-size: 4.5cqw; }
.contact-verification-heading > div { min-width: 0; }
.contact-verification-heading p { margin: 0; color: var(--orange); font-size: 2cqw; font-weight: 900; letter-spacing: .2cqw; }
.contact-verification-heading h2 { margin: .7cqw 0 0; font-size: 4.7cqw; font-weight: 900; }
.contact-verification-copy { margin: 3cqw 0; color: var(--muted); font-size: 2.65cqw; line-height: 1.45; }
.contact-verification-list { display: grid; gap: 3cqw; }
.contact-verification-item { display: grid; gap: 2cqw; padding: 3cqw; border: .25cqw solid var(--line); border-radius: 4cqw; background: var(--canvas); }
.contact-verification-label { display: flex; align-items: center; gap: 2cqw; }
.contact-verification-label > i { display: grid; flex: 0 0 auto; place-items: center; width: 9cqw; height: 9cqw; border-radius: 3cqw; color: var(--orange); background: white; font-size: 3.6cqw; }
.contact-verification-label > span { display: flex; min-width: 0; flex-direction: column; }
.contact-verification-label strong { font-size: 2.9cqw; }
.contact-verification-label small { margin-top: .5cqw; font-size: 2.25cqw; font-weight: 750; }
.contact-verification-item button { min-height: 10cqw; padding: 2cqw 3cqw; border: 0; border-radius: 3cqw; color: white; background: var(--orange); font-size: 2.7cqw; font-weight: 850; }
.contact-verification-item button:disabled { color: var(--green); background: #e8f8ef; }
.contact-verification-item input:disabled { color: var(--muted); background: #edf1ee; opacity: 1; }
.contact-verification-footnote { display: flex; align-items: flex-start; gap: 1.5cqw; margin: 3cqw 0 0; color: var(--muted); font-size: 2.25cqw; line-height: 1.4; }
.contact-verification-footnote i { flex: 0 0 auto; color: var(--orange); }
.report-modal [hidden] { display: none; }

.driver-popover.teviss-driver-popover { --driver-popover-font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; width: min(88vw, 52vh); min-width: 0; max-width: min(88vw, 52vh); padding: min(5vw, 3vh); border: min(.25vw, .16vh) solid rgba(255, 93, 54, .18); border-radius: min(5vw, 3vh); color: var(--ink); background: white; box-shadow: 0 min(4vw, 2.5vh) min(14vw, 9vh) rgba(12, 25, 18, .28); overflow: hidden; }
.driver-popover.teviss-driver-popover::before { content: ""; position: absolute; top: 0; right: 0; left: 0; height: min(1.2vw, .7vh); background: linear-gradient(90deg, #ffaf5f, var(--orange), var(--orange-dark)); }
.teviss-driver-popover .teviss-guide-row { display: flex; align-items: flex-end; gap: min(2.5vw, 1.5vh); margin-top: min(1vw, .6vh); }
.teviss-driver-popover .teviss-guide-avatar { display: block; flex: 0 0 auto; width: min(18vw, 10.8vh); height: min(26vw, 15.6vh); object-fit: cover; filter: drop-shadow(0 min(1.2vw, .7vh) min(1.8vw, 1.1vh) rgba(69, 34, 18, .18)); }
.teviss-driver-popover .teviss-guide-speech { position: relative; min-width: 0; flex: 1 1 auto; padding: min(3.2vw, 2vh); border: min(.3vw, .18vh) solid #ffd5c9; border-radius: min(4vw, 2.5vh) min(4vw, 2.5vh) min(4vw, 2.5vh) min(1.5vw, .9vh); background: linear-gradient(145deg, #fff8f4, #fff1eb); }
.teviss-driver-popover .teviss-guide-speech::before { content: ""; position: absolute; bottom: min(3.5vw, 2.1vh); left: min(-2.3vw, -1.4vh); width: min(4vw, 2.4vh); height: min(4vw, 2.4vh); border-bottom: min(.3vw, .18vh) solid #ffd5c9; border-left: min(.3vw, .18vh) solid #ffd5c9; background: #fff4ef; transform: rotate(45deg); }
.teviss-driver-popover .driver-popover-title { padding-right: min(8vw, 5vh); color: var(--ink); font-size: min(4.5vw, 2.7vh); font-weight: 900; line-height: 1.2; }
.teviss-driver-popover .driver-popover-description { margin-top: min(2vw, 1.2vh); color: var(--muted); font-size: min(3.25vw, 2vh); line-height: 1.45; }
.teviss-driver-popover .driver-popover-close-btn { top: min(2.5vw, 1.5vh); right: min(2.5vw, 1.5vh); display: grid; place-items: center; width: min(8vw, 5vh); height: min(8vw, 5vh); border-radius: 50%; color: var(--orange-dark); background: var(--orange-soft); font-size: min(5.5vw, 3.4vh); line-height: 1; }
.teviss-driver-popover .driver-popover-close-btn:hover, .teviss-driver-popover .driver-popover-close-btn:focus { color: white; background: var(--orange); }
.teviss-driver-popover .driver-popover-footer { display: grid; grid-template-columns: 1fr; gap: min(2.5vw, 1.5vh); margin-top: min(4vw, 2.5vh); text-align: left; }
.teviss-driver-popover .driver-popover-progress-text { color: var(--muted); font-size: min(2.8vw, 1.7vh); font-weight: 700; }
.teviss-driver-popover .driver-popover-navigation-btns { display: grid; width: 100%; grid-template-columns: minmax(0, 1fr) auto auto; gap: min(1.5vw, 1vh); }
.teviss-driver-popover .driver-popover-navigation-btns button + button { margin-left: 0; }
.teviss-driver-popover .driver-popover-footer-btn, .teviss-driver-popover .teviss-tour-disable { min-height: min(9.5vw, 6vh); margin: 0; padding: min(2vw, 1.3vh) min(3vw, 2vh); border: 0; border-radius: min(2.8vw, 1.8vh); font-size: min(2.85vw, 1.75vh); font-weight: 800; text-shadow: none; }
.teviss-driver-popover .driver-popover-prev-btn { color: var(--ink); background: var(--canvas); }
.teviss-driver-popover .driver-popover-next-btn { color: white; background: linear-gradient(135deg, var(--orange), #ff7755); }
.teviss-driver-popover .teviss-tour-disable { display: flex; min-width: 0; align-items: center; justify-content: center; gap: min(1.2vw, .8vh); color: #8a3e2b; background: #fff3ef; white-space: nowrap; }
.teviss-driver-popover .teviss-tour-disable span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.teviss-driver-popover .teviss-tour-disable i { flex: 0 0 auto; }
.teviss-driver-popover .driver-popover-arrow-side-left.driver-popover-arrow { border-left-color: white; }
.teviss-driver-popover .driver-popover-arrow-side-right.driver-popover-arrow { border-right-color: white; }
.teviss-driver-popover .driver-popover-arrow-side-top.driver-popover-arrow { border-top-color: white; }
.teviss-driver-popover .driver-popover-arrow-side-bottom.driver-popover-arrow { border-bottom-color: white; }
.driver-active-element { border-radius: min(3vw, 2vh); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
/* Language loading overlay */
.language-loading {
  position: fixed;
  inset: 0;
  z-index: 2100;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  color: #17211c;
  background: rgba(255, 255, 255, 0.98);
  opacity: 1;
  transition: opacity 0.2s ease;
}

.language-loading.is-hidden { opacity: 0; pointer-events: none; }
.language-loading .spinner-border { width: 2.5rem; height: 2.5rem; color: #ff6847; }
.language-loading strong { font-size: 1.1rem; }
.language-loading small { color: #76847d; }
html[dir="rtl"] body { direction: rtl; }
html[dir="rtl"] input,
html[dir="rtl"] textarea,
html[dir="rtl"] select { text-align: right; }
html[dir="rtl"] .bi-chevron-right,
html[dir="rtl"] .bi-chevron-left { transform: scaleX(-1); }
