/* See the Tailwind configuration guide for advanced usage https://tailwindcss.com/docs/configuration */ @import "tailwindcss" source(none); @import "../node_modules/maplibre-gl/dist/maplibre-gl.css"; @import "phoenix-colocated/who_need_help/colocated.css"; @source "../css"; @source "../js"; @source "../../lib/who_need_help_web"; /* Required for Tailwind to automatically pick up changes in colocated CSS files in dev */ @source "../../_build/dev/phoenix-colocated/who_need_help/*/"; /* A Tailwind plugin that makes "hero-#{ICON}" classes available. The heroicons installation itself is managed by your mix.exs */ @plugin "../vendor/heroicons"; /* daisyUI Tailwind Plugin. */ @plugin "daisyui/packages/bundle/daisyui" { themes: false; } /* daisyUI theme plugin. We ship with two themes, a light one inspired on Phoenix colors and a dark one inspired on Elixir colors. Build your own at: https://daisyui.com/theme-generator/ */ @plugin "daisyui/packages/bundle/daisyui-theme" { name: "dark"; default: false; prefersdark: true; color-scheme: "dark"; --color-base-100: oklch(30.33% 0.016 252.42); --color-base-200: oklch(25.26% 0.014 253.1); --color-base-300: oklch(20.15% 0.012 254.09); --color-base-content: #ffffff; --color-primary: #a5b4fc; --color-primary-content: #18162a; --color-secondary: #a5b4fc; --color-secondary-content: #18162a; --color-accent: oklch(60% 0.25 292.717); --color-accent-content: oklch(96% 0.016 293.756); --color-neutral: oklch(37% 0.044 257.287); --color-neutral-content: oklch(98% 0.003 247.858); --color-info: oklch(58% 0.158 241.966); --color-info-content: oklch(97% 0.013 236.62); --color-success: oklch(75% 0.118 184.704); --color-success-content: oklch(20% 0.014 180.72); --color-warning: #f59e0b; --color-warning-content: #241400; --color-error: oklch(58% 0.253 17.585); --color-error-content: oklch(96% 0.015 12.422); --radius-selector: 0.25rem; --radius-field: 0.25rem; --radius-box: 0.5rem; --size-selector: 0.21875rem; --size-field: 0.21875rem; --border: 1.5px; --depth: 1; --noise: 0; } @plugin "daisyui/packages/bundle/daisyui-theme" { name: "light"; default: true; prefersdark: false; color-scheme: "light"; --color-base-100: oklch(98% 0 0); --color-base-200: oklch(96% 0.001 286.375); --color-base-300: oklch(92% 0.004 286.32); --color-base-content: oklch(18% 0.006 285.885); --color-primary: #9a3412; --color-primary-content: #ffffff; --color-secondary: oklch(55% 0.027 264.364); --color-secondary-content: oklch(98% 0.002 247.839); --color-accent: oklch(0% 0 0); --color-accent-content: oklch(100% 0 0); --color-neutral: oklch(44% 0.017 285.786); --color-neutral-content: oklch(98% 0 0); --color-info: #1d4ed8; --color-info-content: oklch(97% 0.014 254.604); --color-success: oklch(45% 0.12 182.503); --color-success-content: oklch(98% 0.014 180.72); --color-warning: #b45309; --color-warning-content: #fffaf0; --color-error: #be123c; --color-error-content: oklch(96% 0.015 12.422); --radius-selector: 0.25rem; --radius-field: 0.25rem; --radius-box: 0.5rem; --size-selector: 0.21875rem; --size-field: 0.21875rem; --border: 1.5px; --depth: 1; --noise: 0; } /* Add variants based on LiveView classes */ @custom-variant phx-click-loading (.phx-click-loading&, .phx-click-loading &); @custom-variant phx-submit-loading (.phx-submit-loading&, .phx-submit-loading &); @custom-variant phx-change-loading (.phx-change-loading&, .phx-change-loading &); /* Use the data attribute for dark mode */ @custom-variant dark (&:where([data-theme=dark], [data-theme=dark] *)); /* Make LiveView wrapper divs transparent for layout */ [data-phx-session], [data-phx-teleported-src] { display: contents } /* This file is for your main application CSS */ html { scrollbar-gutter: stable; } /* Keep compact field labels readable on both the light and dark secondary surfaces. The component-library default falls just below WCAG AA at 12px. */ .label { color: var(--color-base-content); } .skip-link { position: fixed; z-index: 100; inset-block-start: 0.5rem; inset-inline-start: 0.5rem; padding: 0.75rem 1rem; border-radius: 0.5rem; color: var(--color-primary-content); background: var(--color-primary); transform: translateY(-150%); transition: transform 120ms ease; } .skip-link:focus { transform: translateY(0); } [data-theme="dark"] .menu a, [data-theme="dark"] .btn-ghost, [data-theme="dark"] .btn-outline { color: var(--color-base-content) !important; } [data-theme="dark"] .btn-ghost, [data-theme="dark"] .btn-outline { background-color: var(--color-base-300); } [data-theme="dark"] .btn-soft.btn-primary { color: var(--color-primary-content); background-color: var(--color-primary); } .language-switcher-panel { z-index: 70; width: min(20rem, calc(100vw - 2rem)); } .language-switcher-options { overscroll-behavior: contain; } .language-switcher-option.active { color: var(--color-primary-content); background-color: var(--color-primary); } .language-switcher-option.active:hover, .language-switcher-option.active:focus-visible { color: var(--color-primary-content); background-color: color-mix(in oklab, var(--color-primary) 88%, black); } [data-language-option][hidden] { display: none; } .aid-map { position: relative; min-height: 22rem; border-radius: 1.25rem; overflow: hidden; border: 1px solid color-mix(in oklab, currentColor 12%, transparent); background: linear-gradient(135deg, color-mix(in oklab, var(--color-success) 8%, transparent), transparent), var(--color-base-200); } /* MapLibre's default attribution link differs from its surrounding text only by a subtle color. Keep the required attribution visibly recognizable as a link. */ .maplibregl-ctrl-attrib-inner a { color: inherit; text-decoration-line: underline; text-decoration-thickness: 1px; text-underline-offset: 0.12em; } .map-recenter-control { display: grid !important; place-items: center; color: #1f2937; } .map-recenter-icon { width: 1.125rem; height: 1.125rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; } .request-discovery-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.9rem 1rem; border: 1px solid var(--color-base-300); border-radius: 1rem; background: var(--color-base-100); } .request-discovery-controls { display: flex; flex: none; align-items: center; gap: 0.75rem; } .request-map-update-control { display: inline-flex; min-height: 2.5rem; align-items: center; gap: 0.55rem; padding-inline: 0.2rem; color: color-mix(in oklab, var(--color-base-content) 72%, transparent); font-size: 0.78rem; font-weight: 650; cursor: pointer; } .request-map-update-control:focus-within { border-radius: 0.65rem; outline: 2px solid var(--color-primary); outline-offset: 3px; } .request-view-switcher { display: inline-flex; flex: none; gap: 0.25rem; padding: 0.25rem; border-radius: 0.85rem; background: var(--color-base-200); } .request-view-switcher .btn { border-color: transparent; background: transparent; box-shadow: none; } .request-view-switcher .btn-active { color: var(--color-base-content); background: var(--color-base-100); box-shadow: 0 1px 5px color-mix(in oklab, var(--color-base-content) 12%, transparent); } .request-discovery { --request-discovery-map-height: clamp(30rem, 68vh, 46rem); } .request-discovery[data-view-mode="map"] { --request-discovery-map-height: clamp(32rem, 74vh, 52rem); } .request-discovery-content { display: grid; gap: 1.25rem; margin-top: 1rem; } .request-discovery[data-view-mode="split"] .request-discovery-content { grid-template-columns: minmax(20rem, 0.78fr) minmax(0, 1.22fr); } .request-discovery[data-view-mode="list"][data-has-viewport="true"] .request-discovery-map-panel, .request-discovery[data-view-mode="map"] .request-results-list { display: none; } .request-results-list { min-width: 0; } @media (min-width: 768px) { .request-discovery[data-view-mode="split"] .request-results-list { height: var(--request-discovery-map-height); overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; } } .request-result-card { transition: border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease; } .request-result-card:hover, .request-result-card.is-selected { border-color: var(--color-success); box-shadow: 0 10px 28px color-mix(in oklab, var(--color-success) 14%, transparent); transform: translateY(-1px); } .request-discovery-map-panel { min-width: 0; } .request-discovery[data-view-mode="split"] .request-discovery-map-panel { position: sticky; top: 1rem; align-self: start; } .request-discovery-map-shell { position: relative; } .request-discovery-map { width: 100%; height: var(--request-discovery-map-height); min-height: 0; } .request-map-search-button { position: absolute; z-index: 4; top: 1rem; left: 50%; transform: translateX(-50%); white-space: nowrap; } @media (max-width: 56rem) { .request-discovery-toolbar { align-items: stretch; flex-direction: column; } .request-discovery-controls { justify-content: space-between; flex-wrap: wrap; } } @media (max-width: 38rem) { .request-discovery-controls { align-items: stretch; flex-direction: column; } .request-map-update-control { justify-content: space-between; width: 100%; padding: 0.35rem 0.15rem; } .request-view-switcher { display: grid; width: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); } } .maplibregl-marker.is-selected svg { filter: drop-shadow(0 0 5px #d6573b) drop-shadow(0 0 8px white); transform: scale(1.12); } .request-map-popup { display: grid; min-width: 11rem; gap: 0.35rem; } .request-map-popup small { color: #555; } .request-map-popup a { margin-top: 0.25rem; color: #0a6b55; font-weight: 700; text-decoration: underline; } @media (max-width: 767px) { .request-discovery { --request-discovery-map-height: clamp(22rem, 62svh, 32rem); } .aid-map .maplibregl-ctrl-group button, .aid-map .maplibregl-ctrl-attrib-button { width: 2.75rem; height: 2.75rem; } .aid-map .maplibregl-ctrl-attrib-button { background-position: center; background-repeat: no-repeat; background-size: 1.5rem 1.5rem; } .request-discovery-toolbar { align-items: stretch; flex-direction: column; } .request-view-switcher { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; } .request-view-switcher .btn { width: 100%; } .request-discovery[data-view-mode="split"] .request-discovery-content { display: flex; flex-direction: column; } .request-discovery[data-view-mode="split"] .request-discovery-map-panel { position: static; order: -1; width: 100%; align-self: stretch; flex: 0 0 auto; } .request-discovery[data-view-mode="split"] .request-results-list, .request-discovery[data-view-mode="split"] .request-discovery-map-shell { width: 100%; min-width: 0; } .request-discovery-map, .request-discovery[data-view-mode="map"] .request-discovery-map { min-height: max(30rem, calc(100svh - 12rem)); } .request-discovery[data-view-mode="split"] .request-discovery-map { min-height: min(30rem, 62svh); } } .home-demo-map { min-height: 32rem; border-radius: 2rem; } .home-demo-map[data-map-ready="false"]::after { position: absolute; inset: 50% auto auto 50%; width: 2rem; height: 2rem; content: ""; border: 3px solid color-mix(in oklab, var(--color-success) 25%, transparent); border-top-color: var(--color-success); border-radius: 9999px; transform: translate(-50%, -50%); animation: home-map-spin 800ms linear infinite; } .home-demo-map[data-map-ready="true"]::after { display: none; } .map-unavailable-panel { display: grid; min-height: inherit; place-content: center; justify-items: center; gap: 0.875rem; padding: 2rem; text-align: center; } .map-unavailable-panel p { max-width: 34rem; color: color-mix(in oklab, var(--color-base-content) 68%, transparent); font-size: 0.875rem; line-height: 1.5; } .map-retry-button { position: relative; z-index: 1; background: color-mix(in oklab, var(--color-base-100) 94%, transparent); } .home-demo-map-fallback { position: relative; display: grid; min-height: inherit; align-content: end; padding: 5.75rem 1.25rem 1.25rem; background: linear-gradient(32deg, transparent 47%, color-mix(in oklab, var(--color-base-content) 14%, transparent) 48% 51%, transparent 52%), linear-gradient(148deg, transparent 42%, color-mix(in oklab, var(--color-base-content) 10%, transparent) 43% 46%, transparent 47%), radial-gradient(circle at 28% 22%, color-mix(in oklab, var(--color-success) 18%, transparent) 0 12%, transparent 13%), radial-gradient(circle at 78% 38%, color-mix(in oklab, var(--color-error) 14%, transparent) 0 10%, transparent 11%), color-mix(in oklab, var(--color-base-200) 86%, var(--color-success) 14%); } .home-demo-map-fallback::before { position: absolute; inset: 0; content: ""; opacity: 0.28; background-image: linear-gradient(color-mix(in oklab, var(--color-base-content) 16%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in oklab, var(--color-base-content) 16%, transparent) 1px, transparent 1px); background-size: 3.25rem 3.25rem; } .home-demo-map-fallback-note { position: relative; z-index: 1; max-width: 32rem; margin: 0 0 0.75rem; padding: 0.625rem 0.875rem; border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent); border-radius: 1rem; background: color-mix(in oklab, var(--color-base-100) 94%, transparent); color: color-mix(in oklab, var(--color-base-content) 72%, transparent); font-size: 0.75rem; line-height: 1.35; box-shadow: 0 0.5rem 1.5rem rgb(23 37 31 / 0.08); backdrop-filter: blur(0.5rem); } .home-demo-map-fallback-points { position: relative; z-index: 1; display: grid; gap: 0.625rem; } .home-demo-map-fallback > .map-retry-button { justify-self: start; margin-top: 0.75rem; } .home-demo-map-fallback-point { appearance: none; display: flex; align-items: center; gap: 0.75rem; width: min(100%, 23rem); padding: 0.625rem 0.75rem; border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent); border-radius: 1rem; background: color-mix(in oklab, var(--color-base-100) 96%, transparent); color: var(--color-base-content); cursor: pointer; font: inherit; text-align: left; box-shadow: 0 0.75rem 2rem rgb(23 37 31 / 0.11); backdrop-filter: blur(0.5rem); transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease; } .home-demo-map-fallback-point:nth-child(2) { justify-self: end; } .home-demo-map-fallback-point:hover { border-color: color-mix(in oklab, var(--color-success) 55%, var(--color-base-300)); transform: translateY(-1px); } .home-demo-map-fallback-point:focus-visible { outline: 3px solid color-mix(in oklab, var(--color-success) 48%, transparent); outline-offset: 3px; } .home-demo-map-fallback-point.is-selected { border-color: var(--color-success); box-shadow: 0 0 0 2px color-mix(in oklab, var(--color-success) 18%, transparent), 0 0.75rem 2rem rgb(23 37 31 / 0.13); } .home-demo-map-fallback-point.is-selected .home-demo-map-fallback-marker { background: var(--color-primary); color: var(--color-primary-content); } .home-demo-map-fallback-marker { display: grid; width: 2.25rem; height: 2.25rem; flex: 0 0 auto; place-items: center; border: 0.2rem solid var(--color-base-100); border-radius: 9999px; background: var(--color-success); color: var(--color-success-content); font-size: 0.75rem; font-weight: 900; box-shadow: 0 0.25rem 0.75rem rgb(23 37 31 / 0.18); } .home-demo-map-fallback-copy { display: grid; min-width: 0; gap: 0.125rem; } .home-demo-map-fallback-copy strong, .home-demo-map-fallback-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .home-demo-map-fallback-copy strong { font-size: 0.8125rem; } .home-demo-map-fallback-copy small { color: color-mix(in oklab, var(--color-base-content) 62%, transparent); font-size: 0.6875rem; } .home-demo-map-fallback-selection { position: relative; z-index: 1; margin-top: 0.75rem; color: color-mix(in oklab, var(--color-base-content) 72%, transparent); font-size: 0.75rem; font-weight: 700; } @keyframes home-map-spin { to { transform: translate(-50%, -50%) rotate(360deg); } } @media (max-width: 47.999rem) { .home-demo-map { min-height: 24rem; } } @media (prefers-reduced-motion: reduce) { .home-demo-map[data-map-ready="false"]::after { animation: none; } } .help-card { transition: transform 160ms ease, box-shadow 160ms ease; } .help-card:hover { transform: translateY(-2px); box-shadow: 0 18px 48px rgb(23 37 31 / 0.10); } .request-form-progress { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.25rem; padding: 0.3rem; border: 1px solid var(--color-base-300); border-radius: 1rem; background: var(--color-base-200); } .request-form-progress a { display: flex; min-width: 0; min-height: 2.75rem; align-items: center; justify-content: center; gap: 0.45rem; padding: 0.5rem; border-radius: 0.75rem; color: color-mix(in oklab, var(--color-base-content) 70%, transparent); font-size: 0.75rem; font-weight: 800; text-decoration: none; } .request-form-progress a:hover, .request-form-progress a:focus-visible { background: var(--color-base-100); color: var(--color-primary); } .request-form-progress a > span { display: grid; width: 1.5rem; height: 1.5rem; flex: 0 0 auto; place-items: center; border-radius: 9999px; background: var(--color-base-300); color: var(--color-base-content); font-size: 0.7rem; } .request-form-section { padding: 1.25rem; border: 1px solid var(--color-base-300); border-radius: 1.25rem; background: var(--color-base-100); } .request-form-section-heading { display: flex; align-items: flex-start; gap: 0.75rem; margin-bottom: 1.25rem; } .request-form-section-heading > span { display: grid; width: 2rem; height: 2rem; flex: 0 0 auto; place-items: center; border-radius: 9999px; background: var(--color-success); color: var(--color-success-content); font-size: 0.8rem; font-weight: 900; } .request-form-section-heading h2 { font-size: 1.15rem; font-weight: 900; line-height: 1.35; } .request-form-section-heading p { margin-top: 0.2rem; color: color-mix(in oklab, var(--color-base-content) 62%, transparent); font-size: 0.8rem; line-height: 1.4; } .category-picker { position: relative; width: 100%; min-width: 0; margin-bottom: 0.5rem; } .category-picker-ui { display: none; } .category-picker.is-enhanced .category-picker-native { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; } .category-picker.is-enhanced .category-picker-ui { display: block; } .category-picker-trigger { display: flex; width: 100%; min-height: 3rem; cursor: pointer; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.65rem 0.85rem; border: var(--border) solid var(--color-base-300); border-radius: var(--radius-field); color: var(--color-base-content); background: var(--color-base-100); text-align: start; transition: border-color 120ms ease, box-shadow 120ms ease, background-color 120ms ease; } .category-picker-trigger:hover { border-color: color-mix(in oklab, var(--color-base-content) 35%, var(--color-base-300)); } .category-picker-trigger:focus-visible, .category-picker:focus-within .category-picker-trigger[aria-expanded="true"] { border-color: var(--color-success); outline: 2px solid color-mix(in oklab, var(--color-success) 35%, transparent); outline-offset: 1px; } .category-picker-error .category-picker-trigger { border-color: var(--color-error); } .category-picker-placeholder { color: color-mix(in oklab, var(--color-base-content) 70%, var(--color-base-100)); } .category-picker-panel { position: absolute; z-index: 40; inset-block-start: calc(100% + 0.4rem); inset-inline: 0; overflow: hidden; border: 1px solid var(--color-base-300); border-radius: 0.9rem; background: var(--color-base-100); box-shadow: 0 1rem 2.5rem color-mix(in oklab, var(--color-base-content) 18%, transparent); } .category-picker-search { display: flex; align-items: center; gap: 0.65rem; margin: 0.75rem; padding: 0 0.75rem; border: 1px solid var(--color-base-300); border-radius: 0.65rem; background: var(--color-base-200); } .category-picker-search:focus-within { border-color: var(--color-success); outline: 2px solid color-mix(in oklab, var(--color-success) 28%, transparent); } .category-picker-search input { width: 100%; min-width: 0; height: 2.75rem; border: 0; outline: 0; color: var(--color-base-content); background: transparent; } .category-picker-options { max-height: min(26rem, 55vh); overflow-y: auto; overscroll-behavior: contain; padding: 0 0.5rem 0.65rem; } .category-picker-group + .category-picker-group { margin-top: 0.45rem; padding-top: 0.45rem; border-top: 1px solid var(--color-base-300); } .category-picker-group-label { padding: 0.45rem 0.65rem 0.35rem; color: color-mix(in oklab, var(--color-base-content) 62%, transparent); font-size: 0.72rem; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; } .category-picker-option { display: flex; width: 100%; cursor: pointer; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.7rem 0.65rem; border-radius: 0.6rem; color: var(--color-base-content); background: transparent; text-align: start; } .category-picker-option:hover, .category-picker-option:focus-visible { outline: 0; background: var(--color-base-200); } .category-picker-option[aria-selected="true"] { color: var(--color-success); background: color-mix(in oklab, var(--color-success) 10%, var(--color-base-100)); } .category-picker-option span { display: grid; min-width: 0; gap: 0.15rem; } .category-picker-option strong { font-size: 0.9rem; line-height: 1.3; } .category-picker-option small { display: -webkit-box; overflow: hidden; color: color-mix(in oklab, var(--color-base-content) 58%, transparent); font-size: 0.76rem; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 2; } .category-picker-check { color: var(--color-success); } .category-picker-empty { padding: 1.5rem 1rem; color: color-mix(in oklab, var(--color-base-content) 60%, transparent); text-align: center; } .category-proposal-kind { position: relative; display: flex; min-height: 5.5rem; cursor: pointer; align-items: flex-start; gap: 0.75rem; padding: 1rem; border: 1px solid var(--color-base-300); border-radius: 0.85rem; background: var(--color-base-100); transition: border-color 120ms ease, background-color 120ms ease, box-shadow 120ms ease; } .category-proposal-kind:hover { border-color: color-mix(in oklab, var(--color-success) 55%, var(--color-base-300)); } .category-proposal-kind:focus-within { outline: 2px solid color-mix(in oklab, var(--color-success) 35%, transparent); outline-offset: 2px; } .category-proposal-kind.is-selected { border-color: var(--color-success); color: var(--color-success); background: color-mix(in oklab, var(--color-success) 9%, var(--color-base-100)); } .category-proposal-kind input { position: absolute; width: 1px; height: 1px; opacity: 0; } .category-proposal-kind > span { display: grid; gap: 0.2rem; } .category-proposal-kind strong { color: var(--color-base-content); font-size: 0.9rem; } .category-proposal-kind small { color: color-mix(in oklab, var(--color-base-content) 60%, transparent); font-size: 0.76rem; line-height: 1.35; } .request-location-workspace { padding: 1.25rem; border: 1px solid var(--color-base-300); border-radius: 1.25rem; background: var(--color-base-100); } .request-location-modes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--color-base-300); border-radius: 0.75rem; } .request-location-mode { position: relative; display: flex; min-height: 4.25rem; cursor: pointer; align-items: center; justify-content: center; gap: 0.75rem; padding: 0.75rem 1rem; border-inline-start: 1px solid var(--color-base-300); background: var(--color-base-100); transition: color 120ms ease, background-color 120ms ease, box-shadow 120ms ease; } .request-location-mode:first-child { border-inline-start: 0; } .request-location-mode input { position: absolute; width: 1px; height: 1px; opacity: 0; } .request-location-mode span { display: grid; gap: 0.1rem; } .request-location-mode strong, .request-location-mode small { display: block; } .request-location-mode strong { font-size: 0.9rem; } .request-location-mode small { color: color-mix(in oklab, var(--color-base-content) 72%, transparent); font-size: 0.68rem; line-height: 1.25; } .request-location-mode:has(input:checked) { z-index: 1; background: color-mix(in oklab, var(--color-success) 9%, var(--color-base-100)); color: var(--color-success); box-shadow: inset 0 0 0 1.5px var(--color-success); } .request-location-mode:has(input:focus-visible) { outline: 3px solid color-mix(in oklab, var(--color-success) 38%, transparent); outline-offset: -3px; } .request-location-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(14rem, 17rem); gap: 1rem; } .request-location-map-shell { position: relative; min-width: 0; } .request-location-map-hint { position: absolute; z-index: 2; top: 0.75rem; right: 0.75rem; display: flex; max-width: min(20rem, calc(100% - 5.25rem)); align-items: center; gap: 0.4rem; padding: 0.5rem 0.65rem; border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent); border-radius: 999px; background: color-mix(in oklab, var(--color-base-100) 92%, transparent); box-shadow: 0 0.3rem 1rem rgb(23 37 31 / 0.12); font-size: 0.7rem; font-weight: 700; line-height: 1.2; pointer-events: none; } .request-location-map-hint [data-exact-map-hint] { display: none; } .request-location-map { min-height: 31rem; border-radius: 0.9rem; } .request-location-map[data-map-unavailable="true"] { display: grid; place-items: center; padding: 2rem; text-align: center; color: color-mix(in oklab, var(--color-base-content) 65%, transparent); } .request-location-workspace[data-map-unavailable="true"] .request-location-map-hint { display: none; } .request-location-hidden-state { display: none; min-height: 16rem; align-items: center; justify-content: center; gap: 1rem; padding: 2rem; border: 1px dashed var(--color-base-300); border-radius: 0.9rem; background: var(--color-base-200); } .request-location-controls { padding: 1rem; border: 1px solid var(--color-base-300); border-radius: 0.9rem; background: var(--color-base-100); } .request-location-radius label { position: relative; cursor: pointer; } .request-location-radius input { position: absolute; width: 1px; height: 1px; opacity: 0; } .request-location-radius span { display: grid; min-height: 2.75rem; place-items: center; padding: 0.5rem; border: 1px solid var(--color-base-300); border-radius: 0.5rem; font-size: 0.82rem; font-weight: 700; } .request-location-radius label:has(input:checked) span { border-color: var(--color-success); background: color-mix(in oklab, var(--color-success) 9%, var(--color-base-100)); color: var(--color-success); } .request-location-radius label:has(input:focus-visible) span { outline: 3px solid color-mix(in oklab, var(--color-success) 38%, transparent); outline-offset: 2px; } .request-location-privacy, .request-location-exact-warning, .request-location-after-match { display: flex; gap: 0.75rem; padding: 0.875rem; border: 1px solid var(--color-base-300); border-radius: 0.75rem; font-size: 0.75rem; line-height: 1.35; } .request-location-privacy { border-color: color-mix(in oklab, var(--color-success) 36%, var(--color-base-300)); background: color-mix(in oklab, var(--color-success) 8%, var(--color-base-100)); color: color-mix(in oklab, var(--color-success) 85%, var(--color-base-content)); } .request-location-exact-warning { border-color: color-mix(in oklab, var(--color-warning) 42%, var(--color-base-300)); background: color-mix(in oklab, var(--color-warning) 8%, var(--color-base-100)); } .request-location-privacy p, .request-location-exact-warning p, .request-location-after-match p { margin-top: 0.2rem; color: color-mix(in oklab, var(--color-base-content) 65%, transparent); } .request-location-exact-warning { display: none; } .request-location-manual { padding-top: 0.75rem; border-top: 1px solid var(--color-base-300); } .request-location-manual summary { cursor: pointer; font-size: 0.85rem; font-weight: 700; } .request-location-workspace[data-location-mode="exact_public"] .request-location-radius, .request-location-workspace[data-location-mode="exact_public"] .request-location-privacy { display: none; } .request-location-workspace[data-location-mode="exact_public"] .request-location-exact-warning { display: flex; } .request-location-workspace[data-location-mode="exact_public"] .request-location-map-hint [data-approximate-map-hint] { display: none; } .request-location-workspace[data-location-mode="exact_public"] .request-location-map-hint [data-exact-map-hint] { display: inline; } .request-location-workspace[data-location-mode="hidden"] .request-location-grid { grid-template-columns: 1fr; } .request-location-workspace[data-location-mode="hidden"] .request-location-map, .request-location-workspace[data-location-mode="hidden"] .request-location-controls, .request-location-workspace[data-location-mode="hidden"] .request-location-manual { display: none; } .request-location-workspace[data-location-mode="hidden"] .request-location-hidden-state { display: flex; } .activity-location-workspace .request-location-modes { grid-template-columns: repeat(2, minmax(0, 1fr)); } .activity-location-workspace .request-location-radius, .activity-location-workspace [data-hidden-guidance] { display: none; } .activity-location-workspace[data-location-mode="hidden"] .request-location-grid { grid-template-columns: minmax(0, 1fr) minmax(14rem, 17rem); } .activity-location-workspace[data-location-mode="hidden"] .request-location-map, .activity-location-workspace[data-location-mode="hidden"] .request-location-controls, .activity-location-workspace[data-location-mode="hidden"] .request-location-manual { display: block; } .activity-location-workspace[data-location-mode="hidden"] .request-location-hidden-state, .activity-location-workspace[data-location-mode="hidden"] [data-approximate-guidance] { display: none; } .activity-location-workspace[data-location-mode="hidden"] [data-hidden-guidance] { display: flex; } @media (max-width: 63.999rem) { .request-location-grid { grid-template-columns: 1fr; } .activity-location-workspace[data-location-mode="hidden"] .request-location-grid { grid-template-columns: 1fr; } .request-location-map { min-height: 26rem; } } @media (max-width: 47.999rem) { .request-form-progress { position: sticky; z-index: 20; top: 4.25rem; margin-inline: -0.25rem; box-shadow: 0 0.5rem 1.5rem rgb(23 37 31 / 0.12); } .request-form-progress a { display: grid; gap: 0.15rem; min-height: 3.25rem; padding: 0.35rem 0.2rem; font-size: 0.62rem; line-height: 1.1; text-align: center; } .request-form-progress a > span { width: 1.35rem; height: 1.35rem; margin-inline: auto; } .request-form-section { padding: 1rem; } .request-form-section-heading { margin-bottom: 1rem; } .request-form-publish { position: sticky; z-index: 10; bottom: max(0.75rem, env(safe-area-inset-bottom)); box-shadow: 0 0.75rem 1.75rem rgb(23 37 31 / 0.22); } .request-location-workspace { padding: 1rem; } .request-location-modes { grid-template-columns: 1fr; } .activity-location-workspace .request-location-modes { grid-template-columns: 1fr; } .request-location-mode { min-height: 3.75rem; justify-content: flex-start; border-inline-start: 0; border-top: 1px solid var(--color-base-300); } .request-location-mode:first-child { border-top: 0; } .request-location-map { min-height: 22rem; } .request-location-map-hint { top: 0.55rem; right: 0.55rem; max-width: calc(100% - 4.65rem); padding: 0.4rem 0.55rem; font-size: 0.65rem; } }