:root {
    --ink:#243a31;
    --muted:#797f7a;
    --forest:#294b3d;
    --lime:#d9ef8a;
    --line:#e7eae4;
    --paper:#fbfcf9;
    --white:#fff;
    --font:'DM Sans',sans-serif;
    --heading:'Manrope',sans-serif;
}

* {
    box-sizing:border-box;
}

html {
    font-size:16px;
    scroll-behavior:smooth;
}

body {
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:var(--font);
    font-weight:400;
    -webkit-font-smoothing:antialiased;
}

button,input,select,textarea {
    font:inherit;
}

button,a,input,select,textarea {
    -webkit-tap-highlight-color:transparent;
}

button {
    color:inherit;
    cursor:pointer;
}

button {
    border:0;
    background:none;
}

a {
    color:inherit;
    text-decoration:none;
}

button,input,select,textarea,a {
    outline-offset:5px;
}

button:focus-visible,a:focus-visible {
    outline:2px solid #426f47;
}

button:disabled {
    cursor:wait;
    opacity:.55;
}

button,.button {
    transition:background .18s,color .18s,transform .18s,box-shadow .18s;
}

button:hover {
    color:#43684c;
}

.icon {
    flex-shrink:0;
    vertical-align:middle;
}

h1,h2,h3,p {
    margin:0;
}

h1,h2,h3 {
    font-family:var(--heading);
}

[hidden] {
    display:none!important;
}

.skip-link {
    position:fixed;
    top:-70px;
    left:24px;
    z-index:100;
    background:var(--forest);
    color:white;
    padding:12px 18px;
    border-radius:8px;
}

.skip-link:focus {
    top:16px;
}

.sidebar {
    width:228px;
    position:fixed;
    inset:0 auto 0 0;
    display:flex;
    flex-direction:column;
    background:white;
    border-right:1px solid var(--line);
    z-index:10;
    padding:37px 22px 22px;
}

.brand {
    display:flex;
    align-items:center;
    gap:10px;
    font-family:var(--heading);
    font-size:26px;
    font-weight:800;
    letter-spacing:-1.4px;
    white-space:nowrap;
}

.brand-symbol {
    background:var(--lime);
    width:37px;
    height:37px;
    border-radius:12px;
    display:grid;
    place-items:center;
    transform:rotate(-7deg);
}

.brand-symbol svg {
    width:26px;
    height:26px;
    fill:var(--forest);
    stroke:var(--forest);
    stroke-width:1;
}

.brand-question {
    color:#78914b;
}

.sidebar-content {
    margin-top:57px;
}

.nav-caption {
    font-size:10px;
    font-weight:700;
    letter-spacing:1.7px;
    color:#90948e;
    margin:0 13px 18px;
}

.primary-nav {
    display:flex;
    flex-direction:column;
    gap:7px;
}

.nav-link {
    width:100%;
    display:flex;
    align-items:center;
    gap:12px;
    text-align:left;
    padding:14px 15px;
    border-radius:9px;
    color:#737b73;
    font-size:14px;
    font-weight:550;
}

.nav-link .icon {
    width:20px;
    height:20px;
    stroke-width:1.7;
}

.nav-link.active {
    background:#eff4e6;
    color:#334d32;
    font-weight:700;
}

.nav-link:hover {
    background:#f4f6f1;
}

.nav-count {
    margin-left:auto;
    background:#d7e4c4;
    min-width:22px;
    height:22px;
    border-radius:6px;
    display:grid;
    place-items:center;
    font-size:11px;
}

.button {
    min-height:46px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:12px 19px;
    border-radius:9px;
    font-size:14px;
    font-weight:600;
    line-height:1.5;
    text-align:center;
}

.button .icon {
    width:19px;
    height:19px;
}

.button-primary {
    background:var(--forest);
    color:#fff;
}

.button-primary:hover {
    background:#38614d;
    color:white;
    box-shadow:0 4px 12px #243a3110;
}

.button-secondary {
    background:#f0f2ec;
    color:var(--ink);
}

.button-secondary:hover {
    background:#e7ecdf;
}

.button-lime {
    background:var(--lime);
    color:#29402e;
}

.button-lime:hover {
    background:#e7f8ad;
    color:#203a2b;
    transform:translateY(-1px);
}

.sidebar-create {
    margin-top:26px;
    width:100%;
    font-size:14px;
}

.sidebar-create .icon {
    width:18px;
}

.sidebar-note {
    position:relative;
    overflow:hidden;
    margin-top:49px;
    background:#f7f8f2;
    border:1px solid #edf0e4;
    border-radius:13px;
    padding:21px 16px 20px;
}

.note-avatars {
    display:flex;
    padding-left:4px;
    margin-bottom:16px;
}

.note-avatars .mini-avatar {
    width:29px;
    height:29px;
    font-size:19px;
    border:2px solid #f7f8f2;
}

.sidebar-note h3 {
    font-size:15px;
    line-height:1.65;
    font-weight:750;
    letter-spacing:-.4px;
}

.sidebar-note p {
    margin-top:8px;
    font-size:12px;
    line-height:1.8;
    color:var(--muted);
}

.note-spark {
    position:absolute;
    font-size:59px;
    line-height:1;
    color:#c5db86;
    right:7px;
    bottom:16px;
    transform:rotate(16deg);
}

.sidebar-bottom {
    margin-top:auto;
    padding-top:28px;
}

.trust-link {
    display:flex;
    align-items:center;
    width:100%;
    padding:12px 2px;
    gap:8px;
    font-size:11px;
    color:#7e887a;
}

.trust-link .icon {
    width:16px;
    height:16px;
}

.trust-link .icon:last-child {
    margin-left:auto;
    width:13px;
}

.sidebar-footer {
    border-top:1px solid var(--line);
    padding-top:20px;
    margin-top:11px;
    display:flex;
    flex-direction:column;
    gap:7px;
    color:#93988f;
    font-size:10px;
}

.sidebar-footer span:first-child {
    font-size:11px;
    color:#7c8578;
}

.app-shell {
    margin-left:228px;
}

.topbar {
    min-height:100px;
    border-bottom:1px solid var(--line);
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 43px;
    gap:20px;
    background:var(--paper);
}

.location {
    display:flex;
    gap:10px;
    align-items:center;
}

.location>.icon {
    width:21px;
    color:#587547;
}

.location div {
    display:flex;
    flex-direction:column;
    gap:5px;
}

.location strong {
    font-size:13px;
    font-weight:650;
}

.location span {
    font-size:11px;
    color:#989c94;
}

.topbar-right {
    display:flex;
    align-items:center;
    gap:27px;
}

.help-button {
    font-size:12px;
    color:#717b6f;
}

.demo-label {
    font-size:10px;
    letter-spacing:.4px;
    padding:5px 9px;
    border:1px solid #e2e8d9;
    border-radius:5px;
    color:#7a866e;
    background:#f5f7ef;
}

.guest-avatar {
    position:relative;
    width:35px;
    height:35px;
    border-radius:50%;
    background:#f0d8c2;
    color:#796049;
    display:grid;
    place-items:center;
    font-size:11px;
    font-weight:700;
    border:3px solid white;
    box-shadow:0 0 0 1px #e7e8df;
}

.main-content {
    max-width:1510px;
    margin:auto;
    padding:39px 43px 22px;
}

.intro {
    display:grid;
    grid-template-columns:1.25fr 1fr;
    align-items:center;
    gap:30px;
    padding-bottom:37px;
}

.eyebrow {
    font-size:10px;
    font-weight:700;
    letter-spacing:1.8px;
    display:flex;
    align-items:center;
    gap:8px;
    color:#75846a;
    margin-bottom:14px;
}

.tiny-sun {
    font-size:23px;
    line-height:1;
    color:#94a76a;
}

.intro h1 {
    font-size:46px;
    font-weight:800;
    letter-spacing:-2.35px;
    line-height:1.16;
    position:relative;
    width:fit-content;
}

.intro h1>span {
    color:#698449;
    position:relative;
    z-index:1;
}

.intro h1>svg {
    position:absolute;
    width:163px;
    height:12px;
    bottom:-7px;
    right:0;
    stroke:#cada9f;
    stroke-width:3;
    fill:none;
    stroke-linecap:round;
}

.intro-copy>p {
    font-size:13px;
    color:var(--muted);
    margin-top:22px;
    letter-spacing:.02px;
}

.free-card {
    background:var(--forest);
    color:white;
    border-radius:16px;
    padding:24px 25px 22px;
    position:relative;
    overflow:hidden;
    isolation:isolate;
    max-width:430px;
    justify-self:end;
    width:100%;
}

.free-card-top {
    display:flex;
    align-items:center;
    gap:9px;
    font-size:9px;
    font-weight:500;
    letter-spacing:1.5px;
    color:#c9d7b9;
}

.bolt-badge {
    display:grid;
    place-items:center;
    background:#ffffff12;
    border:1px solid #ffffff12;
    width:27px;
    height:27px;
    border-radius:8px;
    color:var(--lime);
}

.bolt-badge>.icon {
    width:15px;
    height:15px;
    fill:var(--lime);
    stroke-width:1;
}

.free-card h2 {
    font-size:23px;
    letter-spacing:-.6px;
    line-height:1.4;
    font-weight:650;
    margin-top:11px;
}

.free-card p {
    font-size:11px;
    margin-top:6px;
    color:#c4cec4;
}

.free-card .button {
    font-size:12px;
    min-height:40px;
    margin-top:20px;
    justify-content:space-between;
    width:100%;
    border-radius:7px;
    padding:10px 14px;
}

.free-ring {
    position:absolute;
    z-index:-1;
    border-radius:50%;
    border:1px solid #adc7921f;
    width:190px;
    height:190px;
    right:-85px;
    top:-65px;
}

.ring-two {
    width:245px;
    height:245px;
    right:-113px;
    top:-91px;
}

.discovery-toolbar {
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:19px 0;
}

.category-list {
    display:flex;
    gap:9px;
    flex-wrap:wrap;
}

.category {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:11px 15px;
    border-radius:8px;
    border:1px solid var(--line);
    background:white;
    color:#778072;
    font-size:12px;
    white-space:nowrap;
    min-height:42px;
}

.category .icon {
    width:17px;
    height:17px;
}

.category.active {
    background:var(--forest);
    border-color:var(--forest);
    color:white;
}

.category:hover {
    border-color:#8b9e73;
    background:#f0f4e8;
    color:var(--forest);
}

.category.active:hover {
    color:white;
    background:#38614d;
}

.plans-heading {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    margin:28px 0 23px;
}

.heading-line {
    display:flex;
    align-items:center;
    gap:11px;
}

.heading-line h2 {
    font-size:21px;
    font-weight:750;
    letter-spacing:-.6px;
}

.result-count {
    font-size:10px;
    color:#7b8674;
    background:#eff2e9;
    border:1px solid #e6eadf;
    padding:4px 7px;
    border-radius:5px;
    white-space:nowrap;
}

.plans-heading p {
    font-size:12px;
    color:#969d91;
    margin-top:7px;
}

.plan-controls {
    display:flex;
    align-items:center;
    gap:10px;
}

.search-field {
    position:relative;
    display:flex;
    align-items:center;
    gap:9px;
    padding:0 12px;
    height:38px;
    border:1px solid var(--line);
    background:white;
    border-radius:8px;
    max-width:165px;
}

.search-field>.icon {
    width:15px;
    color:#99a08f;
}

.search-field input {
    width:100%;
    border:0;
    background:transparent;
    outline:none;
    min-width:0;
    font-size:11px;
    color:var(--ink);
    height:100%;
}

.search-field:focus-within {
    outline:2px solid #829b5e;
    outline-offset:2px;
}

.search-field input::placeholder {
    color:#99a08f;
}

.filter-button {
    display:flex;
    align-items:center;
    gap:7px;
    height:38px;
    border:1px solid var(--line);
    border-radius:8px;
    background:white;
    padding:0 12px;
    color:#777f70;
    font-size:11px;
}

.filter-button>.icon {
    width:15px;
    height:15px;
}

.filter-count {
    display:grid;
    place-items:center;
    width:16px;
    height:16px;
    background:var(--forest);
    color:white;
    font-size:10px;
    border-radius:50%;
}

.filter-summary {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:12px 15px;
    background:#eef3e4;
    border-radius:8px;
    margin-bottom:18px;
    font-size:12px;
    color:#5c7052;
}

.filter-summary button {
    display:flex;
    gap:6px;
    align-items:center;
    white-space:nowrap;
    font-size:11px;
}

.filter-summary .icon {
    width:14px;
    height:14px;
}

.plan-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:23px 21px;
}

.plan-card {
    min-width:0;
    background:white;
    border:1px solid #e7eae3;
    border-radius:13px;
    overflow:hidden;
    transition:box-shadow .2s,transform .2s;
    box-shadow:0 2px 2px #253d3102;
}

.plan-card:hover {
    transform:translateY(-3px);
    box-shadow:0 9px 24px #243a310b;
}

.card-image-wrap {
    position:relative;
    aspect-ratio:1;
    overflow:hidden;
    background:#e8ecdf;
}

.card-image-button {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    display:block;
    padding:0;
}

.card-image-button:focus-visible {
    outline-offset:-5px;
    outline-color:white;
}

.card-image {
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .45s;
    object-position:center;
}

.plan-card:hover .card-image {
    transform:scale(1.04);
}

.plan-card[data-id="sunset"] .card-image {
    object-position:50% 72%;
}

.plan-card[data-id="padel"] .card-image {
    object-position:50% 45%;
}

.image-tag {
    position:absolute;
    left:12px;
    top:12px;
    display:flex;
    align-items:center;
    gap:5px;
    font-size:9px;
    font-weight:550;
    padding:6px 9px;
    border-radius:5px;
    background:#fffffff2;
    pointer-events:none;
    line-height:1.4;
    color:#45503e;
    box-shadow:0 2px 5px #00000005;
}

.image-tag>span {
    font-size:11px;
}

.save-button {
    position:absolute;
    right:11px;
    top:11px;
    width:30px;
    height:30px;
    display:grid;
    place-items:center;
    background:#fffffff5;
    border-radius:50%;
    color:#53604c;
    padding:0;
    box-shadow:0 1px 4px #00000007;
}

.save-button>.icon {
    width:15px;
    height:15px;
    stroke-width:1.7;
}

.save-button:hover {
    background:var(--lime);
    color:var(--forest);
}

.save-button.is-saved {
    background:var(--lime);
    color:var(--forest);
}

.save-button.is-saved>.icon {
    fill:var(--forest);
}

.spots-tag {
    position:absolute;
    left:12px;
    bottom:12px;
    pointer-events:none;
    background:#243b2ad9;
    backdrop-filter:blur(6px);
    color:#fff;
    padding:5px 8px;
    border-radius:5px;
    font-size:9px;
    letter-spacing:.1px;
}

.card-body {
    padding:16px 15px 13px;
}

.card-time {
    display:flex;
    align-items:center;
    gap:5px;
    font-size:10px;
    color:#718557;
    font-weight:550;
    min-height:15px;
}

.card-time>.icon {
    width:12px;
    height:12px;
}

.card-time .price {
    margin-left:auto;
    color:#9ba18f;
    font-size:9px;
    font-weight:400;
}

.card-body h3 {
    font-size:14px;
    font-weight:750;
    letter-spacing:-.3px;
    line-height:1.5;
    margin-top:9px;
    overflow-wrap:anywhere;
}

.card-body h3>button {
    padding:0;
    font:inherit;
    text-align:left;
}

.card-location {
    display:flex;
    align-items:center;
    gap:5px;
    font-size:10px;
    color:#9aa08e;
    margin-top:8px;
}

.card-location>.icon {
    width:12px;
    height:12px;
}

.metadata-dot {
    padding:0 1px;
}

.card-bottom {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding-top:13px;
    border-top:1px solid #f0f1ea;
    margin-top:16px;
}

.group-info {
    display:flex;
    align-items:center;
    gap:9px;
}

.avatar-stack {
    display:flex;
    padding-left:4px;
}

.mini-avatar {
    width:27px;
    height:27px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    border:2px solid white;
    margin-left:-5px;
    font-size:9px;
    font-family:var(--heading);
    font-weight:750;
    flex-shrink:0;
}

.peach {
    background:#edd4c0;
    color:#956e53;
}

.sage {
    background:#d9e4cf;
    color:#73816c;
}

.lavender {
    background:#dcd6e6;
    color:#8d7ca4;
}

.pink {
    background:#edd8da;
    color:#a5767c;
}

.blue {
    background:#d2e2e4;
    color:#6d9397;
}

.group-info>span {
    font-size:10px;
    color:#949b8c;
    white-space:nowrap;
}

.group-info strong {
    color:#5a684f;
    font-weight:600;
}

.card-action {
    width:28px;
    height:28px;
    border-radius:50%;
    display:grid;
    place-items:center;
    border:1px solid #e7ebdf;
    color:#8b987d;
    flex-shrink:0;
}

.card-action>.icon {
    width:14px;
    height:14px;
}

.card-action:hover {
    background:var(--forest);
    color:var(--lime);
    border-color:var(--forest);
}

.bottom-invitation {
    display:flex;
    align-items:center;
    gap:14px;
    padding:21px 22px;
    margin-top:30px;
    border:1px dashed #dbe2cd;
    border-radius:11px;
    background:#f5f7ef;
}

.invitation-icon {
    width:37px;
    height:37px;
    display:grid;
    place-items:center;
    background:#eaf0d9;
    border-radius:10px;
    color:#7e955b;
}

.invitation-icon>.icon {
    width:21px;
    fill:#7e955b;
    stroke-width:.5;
}

.bottom-invitation strong {
    font-size:12px;
    font-weight:650;
}

.bottom-invitation p {
    font-size:11px;
    color:#959d87;
    margin-top:5px;
}

.text-button {
    margin-left:auto;
    display:flex;
    align-items:center;
    gap:10px;
    font-size:11px;
    font-weight:600;
    white-space:nowrap;
}

.text-button .icon {
    width:16px;
    height:16px;
}

.main-footer {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    margin-top:27px;
    font-size:9px;
    color:#a2a893;
    line-height:1.7;
}

.main-footer>span:first-child {
    display:flex;
    align-items:center;
    gap:6px;
}

.main-footer .icon {
    width:12px;
    height:12px;
}

.empty-state {
    text-align:center;
    background:#f3f6ed;
    padding:60px 22px;
    border:1px dashed #dce4d0;
    border-radius:13px;
}

.empty-state>span {
    display:grid;
    place-items:center;
    border-radius:50%;
    width:58px;
    height:58px;
    margin:0 auto 18px;
    background:#e6eed8;
    color:#7a915e;
}

.empty-state h3 {
    font-size:23px;
    letter-spacing:-.5px;
}

.empty-state p {
    font-size:14px;
    color:var(--muted);
    max-width:440px;
    margin:12px auto 22px;
    line-height:1.6;
}

.noscript-note {
    padding:15px;
    background:#edf3de;
    font-size:14px;
    margin-top:20px;
    border-radius:9px;
}

/* Dialogs are native: focus trapping, Escape and accessibility are built in. */
.dialog {
    border:1px solid #e2e8da;
    border-radius:20px;
    padding:35px;
    box-shadow:0 30px 100px #15291b35;
    color:var(--ink);
    background:var(--paper);
    width:calc(100% - 36px);
    max-width:530px;
    max-height:calc(100dvh - 48px);
    overflow:auto;
}

.dialog::backdrop {
    background:#152b2580;
    backdrop-filter:blur(5px);
}

.dialog[open] {
    animation:dialog-in .2s ease-out;
}

.dialog-close {
    position:absolute;
    right:16px;
    top:16px;
    width:31px;
    height:31px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#eef2e8;
    color:#708063;
    z-index:3;
}

.dialog-close>.icon {
    width:17px;
    height:17px;
}

.dialog-close:hover {
    background:var(--lime);
}

.dialog-kicker {
    font-size:9px;
    letter-spacing:1.5px;
    color:#7f916c;
    font-weight:650;
    display:flex;
    align-items:center;
    gap:8px;
    margin:4px 23px 15px 0;
    line-height:1.6;
}

.dialog-kicker .icon {
    width:17px;
    height:17px;
}

.dialog h2 {
    font-size:29px;
    letter-spacing:-1.1px;
    line-height:1.25;
    margin-right:4px;
    font-weight:750;
}

.dialog-description {
    font-size:13px;
    line-height:1.7;
    color:var(--muted);
    margin-top:11px;
    margin-bottom:24px;
}

.dialog form {
    display:flex;
    flex-direction:column;
    gap:16px;
    margin-top:24px;
}

.dialog label:not(.checkbox-label):not(.interest-option) {
    display:flex;
    flex-direction:column;
    gap:8px;
    color:#5f7058;
    font-size:12px;
    font-weight:550;
    min-width:0;
}

.dialog input:not([type=checkbox]),.dialog textarea,.dialog select {
    border:1px solid #dfe5d7;
    border-radius:8px;
    background:white;
    color:#44543d;
    width:100%;
    padding:12px;
    font-size:13px;
    min-width:0;
    line-height:1.5;
}

.dialog input:not([type=checkbox]):focus,.dialog textarea:focus,.dialog select:focus {
    outline:2px solid #80995d;
    outline-offset:2px;
}

.dialog input::placeholder,.dialog textarea::placeholder {
    color:#abb19f;
    font-weight:400;
}

.dialog textarea {
    resize:vertical;
    min-height:88px;
}

.form-row {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}

.checkbox-label {
    display:flex;
    align-items:flex-start;
    gap:9px;
    font-size:12px;
    font-weight:400;
    color:#829071;
    line-height:1.65;
}

.checkbox-label input {
    accent-color:var(--forest);
    margin-top:4px;
    flex-shrink:0;
}

.full-width {
    width:100%;
}

.preview-note {
    font-size:11px;
    line-height:1.7;
    text-align:center;
    color:#929d84;
    font-weight:400;
}

.preview-note.left {
    text-align:left;
}

.form-error {
    font-size:12px;
    line-height:1.6;
    padding:11px 13px;
    background:#fbebe5;
    color:#a5543b;
    border-radius:7px;
}

.dialog fieldset {
    border:0;
    padding:0;
    margin:4px 0;
}

.dialog legend {
    font-size:12px;
    color:#657658;
    font-weight:550;
    margin-bottom:13px;
}

.interest-options {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
}

.interest-option {
    position:relative;
    cursor:pointer;
}

.interest-option input {
    position:absolute;
    opacity:0;
    inset:0;
    width:100%;
    height:100%;
    margin:0;
    cursor:pointer;
}

.interest-option span {
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:9px;
    padding:17px 10px;
    border:1px solid #e0e6d7;
    border-radius:9px;
    font-size:12px;
    background:white;
    color:#7e8d71;
}

.interest-option .icon {
    width:22px;
    height:22px;
}

.interest-option input:checked+span {
    background:#eaf3d5;
    border-color:#94b35d;
    color:#4b6531;
}

.interest-option input:focus-visible+span {
    outline:2px solid #80995d;
    outline-offset:3px;
}

.dialog-actions {
    display:flex;
    gap:12px;
    margin-top:10px;
    justify-content:flex-end;
}

.dialog-actions>.button:last-child {
    flex-grow:1;
}

.info-items {
    display:flex;
    flex-direction:column;
    gap:23px;
    margin:29px 0;
}

.info-items>div {
    display:flex;
    gap:15px;
    align-items:flex-start;
}

.info-items>div>.icon {
    color:#8b9f6f;
    width:21px;
    height:21px;
    margin-top:3px;
}

.info-items h3,.how-steps h3 {
    font-size:14px;
    font-weight:700;
    letter-spacing:-.3px;
}

.info-items p,.how-steps p {
    font-size:13px;
    line-height:1.8;
    color:#8a9480;
    margin-top:7px;
}

.how-steps {
    list-style:none;
    padding:0;
    margin:29px 0;
    display:flex;
    flex-direction:column;
    gap:25px;
}

.how-steps li {
    display:flex;
    gap:15px;
}

.how-steps li>span {
    font-family:var(--heading);
    font-size:20px;
    font-weight:600;
    color:#9db475;
    line-height:1;
}

.how-steps+.preview-note {
    margin-bottom:20px;
}

.detail-dialog {
    padding:0;
    max-width:560px;
    background:white;
}

.detail-dialog>.dialog-close {
    background:#fffdf2;
}

.detail-image,.detail-hero img {
    display:block;
    width:100%;
    height:235px;
    object-fit:cover;
}

.detail-body {
    padding:28px;
}

.detail-tag {
    display:inline-flex;
    align-items:center;
    gap:6px;
    background:#eef3e5;
    color:#7c8d67;
    border-radius:5px;
    font-size:11px;
    padding:6px 9px;
    margin-bottom:13px;
}

.detail-body h2 {
    font-size:27px;
    line-height:1.4;
    letter-spacing:-.8px;
}

.detail-meta {
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    font-size:12px;
    color:#7f8e70;
    margin-top:15px;
    line-height:1.8;
}

.detail-meta>span {
    display:inline-flex;
    align-items:center;
    gap:6px;
}

.detail-meta .icon {
    width:16px;
    height:16px;
}

.detail-description {
    font-size:14px;
    line-height:1.8;
    color:#7a8770;
    margin:22px 0;
}

.detail-host {
    display:flex;
    align-items:center;
    gap:12px;
    padding:17px 0;
    border-top:1px solid #edf0e7;
    border-bottom:1px solid #edf0e7;
    margin:17px 0;
}

.detail-host .mini-avatar {
    width:40px;
    height:40px;
    font-size:14px;
    margin:0;
}

.detail-host strong {
    font-size:13px;
    display:block;
    margin-bottom:5px;
}

.detail-host p,.detail-host small {
    font-size:11px;
    color:#95a087;
}

.detail-host>span:last-child {
    margin-left:auto;
    font-size:12px;
    color:#758b5c;
}

.detail-facts {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    margin:19px 0;
    font-size:12px;
    line-height:1.8;
    color:#869577;
}

.detail-facts>div {
    display:flex;
    align-items:flex-start;
    gap:7px;
}

.detail-facts .icon {
    width:17px;
    height:17px;
    flex-shrink:0;
    margin-top:2px;
}

.detail-actions {
    margin-top:22px;
    display:flex;
    flex-direction:column;
    gap:12px;
}

.detail-actions+.preview-note {
    margin-top:14px;
}

.request-status {
    padding:12px 15px;
    background:#edf4e2;
    border-radius:8px;
    color:#688548;
    font-size:12px;
    line-height:1.7;
}

.toast {
    position:fixed;
    bottom:26px;
    left:calc(50% + 100px);
    transform:translateX(-50%);
    display:flex;
    align-items:center;
    gap:10px;
    z-index:1000;
    max-width:min(520px,calc(100% - 32px));
    background:#294b3d;
    color:white;
    padding:14px 20px;
    border-radius:11px;
    box-shadow:0 8px 35px #20372c30;
    font-size:13px;
    line-height:1.5;
    animation:toast-in .2s ease-out;
}

.toast>.icon {
    width:19px;
    height:19px;
    color:var(--lime);
}

.toast.error {
    background:#97533e;
}

.toast.error>.icon {
    color:#f3d5bd;
}

@keyframes dialog-in {
    from {
        opacity:0;
        transform:translateY(9px);
    }
    to {
        opacity:1;
        transform:translateY(0);
    }
}

@keyframes toast-in {
    from {
        opacity:0;
        margin-bottom:-8px;
    }
    to {
        opacity:1;
        margin-bottom:0;
    }
}

@media(min-width:1500px) {
    .main-content {
        padding:44px 54px 25px;
    }
    .topbar {
        padding:0 54px;
    }
    .intro {
        grid-template-columns:1.2fr 1fr;
        gap:45px;
        padding-bottom:39px;
    }
    .intro h1 {
        font-size:54px;
    }
    .intro h1>svg {
        width:195px;
    }
    .intro-copy>p {
        font-size:14px;
    }
    .free-card {
        padding:26px 28px;
        max-width:480px;
    }
    .free-card h2 {
        font-size:26px;
    }
    .free-card p {
        font-size:13px;
    }
    .free-card .button {
        font-size:13px;
    }
    .category {
        font-size:13px;
        padding:12px 20px;
    }
    .card-body {
        padding:18px 18px 15px;
    }
    .card-body h3 {
        font-size:16px;
    }
    .card-location {
        font-size:11px;
    }
    .card-time {
        font-size:11px;
    }
    .card-time .price {
        font-size:10px;
    }
    .image-tag {
        font-size:10px;
    }
    .group-info>span {
        font-size:11px;
    }
    .plan-grid {
        gap:27px;
    }
    .plans-heading {
        margin:30px 0 25px;
    }
    .heading-line h2 {
        font-size:24px;
    }
}

@media(min-width:1800px) {
    .intro h1 {
        font-size:60px;
    }
    .intro {
        padding-top:12px;
        padding-bottom:45px;
    }
    .intro h1>svg {
        width:215px;
    }
}

@media(max-width:1190px) {
    .sidebar {
        width:205px;
        padding-left:16px;
        padding-right:16px;
    }
    .brand {
        font-size:24px;
        gap:7px;
    }
    .app-shell {
        margin-left:205px;
    }
    .main-content {
        padding:30px 28px 22px;
    }
    .topbar {
        padding:0 28px;
        min-height:88px;
    }
    .intro {
        gap:20px;
    }
    .intro h1 {
        font-size:40px;
        letter-spacing:-1.8px;
    }
    .intro h1>svg {
        width:145px;
    }
    .intro-copy>p {
        font-size:12px;
        max-width:260px;
        line-height:1.7;
    }
    .free-card {
        padding:20px;
    }
    .free-card h2 {
        font-size:21px;
    }
    .free-card p {
        line-height:1.7;
    }
    .free-card .button {
        font-size:11px;
        padding:9px 11px;
        gap:6px;
    }
    .free-card-top {
        font-size:8px;
        letter-spacing:1px;
    }
    .category-list {
        gap:7px;
    }
    .category {
        padding:10px 11px;
        gap:7px;
        font-size:11px;
    }
    .category>.icon {
        width:15px;
        height:15px;
    }
    .plan-grid {
        gap:16px;
    }
    .card-body {
        padding:13px 12px 11px;
    }
    .card-body h3 {
        font-size:13px;
    }
    .card-time .price {
        display:none;
    }
    .card-location {
        font-size:9px;
        gap:4px;
    }
    .card-bottom {
        margin-top:12px;
        padding-top:10px;
    }
    .mini-avatar {
        width:24px;
        height:24px;
        font-size:8px;
    }
    .group-info {
        gap:6px;
    }
    .group-info>span {
        font-size:9px;
    }
    .card-action {
        width:25px;
        height:25px;
    }
    .plans-heading {
        gap:14px;
    }
    .heading-line h2 {
        font-size:18px;
    }
    .search-field {
        max-width:138px;
    }
    .plan-controls {
        gap:7px;
    }
    .heading-line {
        gap:7px;
    }
    .plans-heading p {
        font-size:11px;
    }
}

@media(max-width:980px) {
    .sidebar {
        width:86px;
        padding:29px 13px 20px;
        align-items:center;
    }
    .brand>span:last-child,.nav-caption,.nav-link>span,.sidebar-note,.sidebar-footer,.trust-link>span,.trust-link>.icon:last-child {
        display:none;
    }
    .brand-symbol {
        width:38px;
        height:38px;
    }
    .sidebar-content {
        margin-top:43px;
        width:100%;
    }
    .primary-nav {
        gap:11px;
    }
    .nav-link {
        padding:14px;
        justify-content:center;
    }
    .nav-link>.icon {
        width:22px;
        height:22px;
    }
    .sidebar-create {
        font-size:0;
        padding:12px;
        margin-top:20px;
    }
    .sidebar-create>.icon {
        width:22px;
        height:22px;
    }
    .sidebar-bottom {
        width:100%;
    }
    .trust-link {
        justify-content:center;
        padding:14px;
    }
    .trust-link>.icon {
        width:21px;
        height:21px;
    }
    .app-shell {
        margin-left:86px;
    }
    .main-content {
        padding:28px;
    }
    .topbar {
        padding:0 28px;
    }
    .toast {
        left:calc(50% + 43px);
    }
    .intro {
        grid-template-columns:1fr 1fr;
    }
    .intro h1 {
        font-size:42px;
    }
    .category {
        font-size:12px;
        padding:10px 12px;
    }
    .plan-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:22px;
    }
    .card-body {
        padding:17px;
    }
    .card-body h3 {
        font-size:16px;
    }
    .card-time {
        font-size:11px;
    }
    .card-time .price {
        display:inline;
        font-size:9px;
    }
    .card-location {
        font-size:11px;
        margin-top:10px;
        gap:6px;
    }
    .card-bottom {
        margin-top:16px;
        padding-top:14px;
    }
    .group-info {
        gap:10px;
    }
    .group-info>span {
        font-size:11px;
    }
    .mini-avatar {
        width:28px;
        height:28px;
        font-size:10px;
    }
    .card-action {
        width:29px;
        height:29px;
    }
    .image-tag {
        font-size:10px;
    }
    .plans-heading {
        margin:26px 0 21px;
    }
    .main-footer {
        flex-wrap:wrap;
        font-size:10px;
        gap:8px;
    }
    .bottom-invitation {
        padding:20px 17px;
    }
    .category-list {
        gap:8px;
    }
    .heading-line h2 {
        font-size:21px;
    }
    .plans-heading p {
        font-size:12px;
    }
}

@media(max-width:840px) {
    .intro {
        gap:20px;
        grid-template-columns:1fr;
        padding-bottom:26px;
        align-items:start;
    }
    .intro-copy {
        padding-top:4px;
    }
    .intro h1 {
        font-size:43px;
        line-height:1.15;
    }
    .intro h1>br {
        display:none;
    }
    .intro h1>svg {
        width:155px;
        bottom:-9px;
    }
    .intro-copy>p {
        max-width:none;
        font-size:12px;
        margin-top:20px;
    }
    .eyebrow {
        font-size:9px;
        margin-bottom:15px;
    }
    .free-card {
        max-width:none;
        padding:18px 20px;
        display:grid;
        grid-template-columns:1fr auto;
        column-gap:18px;
        align-items:center;
        border-radius:12px;
    }
    .free-card-top {
        grid-column:1;
        gap:7px;
        font-size:8px;
        letter-spacing:.7px;
    }
    .bolt-badge {
        width:23px;
        height:23px;
    }
    .free-card h2 {
        grid-column:1;
        font-size:19px;
        margin-top:7px;
    }
    .free-card p {
        grid-column:1;
        font-size:10px;
        max-width:230px;
    }
    .free-card .button {
        grid-column:2;
        grid-row:1/4;
        width:143px;
        margin:0;
        font-size:11px;
        line-height:1.6;
        text-align:left;
        padding:12px;
        gap:11px;
    }
    .free-card .button>.icon {
        width:15px;
    }
    .plans-heading {
        align-items:flex-start;
        flex-wrap:wrap;
        gap:17px;
    }
    .plan-controls {
        width:100%;
        gap:10px;
    }
    .search-field {
        max-width:none;
        flex:1;
    }
    .filter-button {
        padding:0 16px;
    }
    .search-field input {
        font-size:12px;
    }
    .category-list {
        flex-wrap:nowrap;
        overflow:auto;
        padding-bottom:4px;
        scrollbar-width:none;
    }
    .category-list::-webkit-scrollbar {
        display:none;
    }
    .discovery-toolbar {
        padding:15px 0 11px;
    }
    .category {
        flex-shrink:0;
    }
    .main-content {
        padding:24px 22px;
    }
    .topbar {
        padding:0 22px;
        min-height:80px;
    }
    .topbar-right {
        gap:17px;
    }
    .location strong {
        font-size:12px;
    }
    .location span {
        font-size:10px;
    }
    .plan-grid {
        gap:16px;
    }
    .card-body {
        padding:13px;
    }
    .card-body h3 {
        font-size:14px;
    }
    .card-time {
        font-size:10px;
    }
    .card-time .price {
        display:none;
    }
    .card-location {
        font-size:10px;
        gap:4px;
    }
    .group-info {
        gap:6px;
    }
    .group-info>span {
        font-size:10px;
    }
    .card-action {
        width:25px;
        height:25px;
    }
    .mini-avatar {
        width:24px;
        height:24px;
        font-size:8px;
    }
    .image-tag {
        font-size:9px;
        left:10px;
        top:10px;
        padding:5px 7px;
    }
    .save-button {
        right:9px;
        top:9px;
        width:28px;
        height:28px;
    }
    .spots-tag {
        font-size:8px;
        bottom:10px;
        left:10px;
    }
    .bottom-invitation {
        gap:12px;
        flex-wrap:wrap;
    }
    .bottom-invitation .text-button {
        margin-left:49px;
    }
    .bottom-invitation strong {
        font-size:12px;
    }
    .bottom-invitation p {
        font-size:11px;
    }
    .main-footer {
        font-size:9px;
    }
}

@media(max-width:550px) {
    .sidebar {
        inset:auto 0 0;
        width:auto;
        height:72px;
        padding:0 13px env(safe-area-inset-bottom);
        flex-direction:row;
        border-right:0;
        border-top:1px solid #e4e9de;
        align-items:center;
        background:#fffffffa;
        backdrop-filter:blur(12px);
    }
    .sidebar>.brand,.sidebar-bottom,.sidebar-create {
        display:none;
    }
    .sidebar-content {
        margin:0;
        width:100%;
    }
    .primary-nav {
        display:grid;
        grid-template-columns:repeat(3,1fr);
        gap:4px;
    }
    .nav-link {
        padding:9px 5px 7px;
        gap:5px;
        flex-direction:column;
        font-size:10px;
        border-radius:9px;
    }
    .nav-link>span:not(.nav-count) {
        display:block;
    }
    .nav-link .icon {
        width:21px;
        height:21px;
    }
    .nav-link.active {
        background:#f0f5e7;
    }
    .app-shell {
        margin-left:0;
        margin-bottom:72px;
    }
    .topbar {
        padding:0 20px;
        min-height:73px;
    }
    .topbar-right {
        gap:14px;
    }
    .help-button {
        font-size:11px;
    }
    .guest-avatar {
        width:30px;
        height:30px;
        font-size:10px;
    }
    .demo-label {
        font-size:9px;
        padding:4px 7px;
    }
    .location {
        gap:7px;
    }
    .location>.icon {
        width:18px;
    }
    .location span {
        font-size:9px;
    }
    .main-content {
        padding:27px 20px 20px;
    }
    .intro {
        gap:24px;
        padding-bottom:23px;
    }
    .intro h1 {
        font-size:42px;
        letter-spacing:-1.9px;
        max-width:340px;
    }
    .intro h1>br {
        display:block;
    }
    .intro h1>svg {
        width:149px;
    }
    .intro-copy>p {
        font-size:12px;
        margin-top:19px;
        line-height:1.7;
    }
    .eyebrow {
        font-size:9px;
        letter-spacing:1.5px;
        margin-bottom:13px;
    }
    .free-card {
        padding:17px 17px;
        grid-template-columns:1fr auto;
        gap:0 11px;
    }
    .free-card-top {
        font-size:7px;
        letter-spacing:.6px;
    }
    .free-card h2 {
        font-size:18px;
        letter-spacing:-.5px;
    }
    .free-card p {
        font-size:10px;
        line-height:1.6;
        max-width:170px;
    }
    .free-card .button {
        font-size:10px;
        min-height:48px;
        padding:10px 12px;
        width:120px;
        gap:8px;
    }
    .free-card .button>.icon {
        width:14px;
        height:14px;
    }
    .category {
        font-size:11px;
        min-height:39px;
        padding:10px 13px;
    }
    .discovery-toolbar {
        margin-right:-20px;
        padding-right:20px;
    }
    .plan-grid {
        grid-template-columns:1fr;
        gap:22px;
    }
    .card-body {
        padding:19px 18px 15px;
    }
    .card-body h3 {
        font-size:18px;
        letter-spacing:-.4px;
        margin-top:10px;
    }
    .card-time {
        font-size:12px;
        gap:6px;
    }
    .card-time .icon {
        width:14px;
        height:14px;
    }
    .card-time .price {
        display:inline;
        font-size:10px;
    }
    .card-location {
        font-size:12px;
        gap:6px;
        margin-top:10px;
    }
    .card-location .icon {
        width:13px;
        height:13px;
    }
    .card-bottom {
        margin-top:19px;
        padding-top:15px;
    }
    .mini-avatar {
        width:29px;
        height:29px;
        font-size:10px;
    }
    .group-info {
        gap:11px;
    }
    .group-info>span {
        font-size:12px;
    }
    .card-action {
        width:32px;
        height:32px;
    }
    .card-action .icon {
        width:17px;
        height:17px;
    }
    .image-tag {
        top:14px;
        left:14px;
        font-size:11px;
        padding:7px 10px;
    }
    .image-tag>span {
        font-size:13px;
    }
    .save-button {
        width:35px;
        height:35px;
        right:13px;
        top:13px;
    }
    .save-button .icon {
        width:18px;
        height:18px;
    }
    .spots-tag {
        left:14px;
        bottom:14px;
        font-size:10px;
        padding:6px 9px;
    }
    .plans-heading {
        margin-top:24px;
        margin-bottom:19px;
        gap:19px;
    }
    .heading-line h2 {
        font-size:22px;
    }
    .result-count {
        font-size:10px;
    }
    .plans-heading p {
        font-size:12px;
    }
    .search-field {
        height:41px;
    }
    .search-field input {
        font-size:12px;
    }
    .filter-button {
        height:41px;
        font-size:12px;
    }
    .bottom-invitation {
        padding:20px 16px;
        gap:12px;
    }
    .bottom-invitation strong {
        font-size:12px;
    }
    .bottom-invitation p {
        font-size:11px;
    }
    .bottom-invitation .text-button {
        font-size:12px;
    }
    .main-footer {
        flex-direction:column;
        align-items:flex-start;
        font-size:10px;
        gap:9px;
        margin-top:24px;
    }
    .main-footer .icon {
        width:14px;
        height:14px;
    }
    .toast {
        left:50%;
        bottom:90px;
        width:max-content;
        max-width:calc(100% - 30px);
        font-size:12px;
    }
    .dialog {
        padding:29px 23px;
        width:calc(100% - 24px);
        border-radius:16px;
        max-height:calc(100dvh - 30px);
    }
    .dialog h2 {
        font-size:25px;
    }
    .dialog-kicker {
        font-size:8px;
        letter-spacing:1px;
    }
    .dialog-close {
        top:13px;
        right:13px;
    }
    .dialog input:not([type=checkbox]),.dialog select,.dialog textarea {
        font-size:16px;
        padding:10px;
    }
    .dialog label:not(.checkbox-label):not(.interest-option) {
        font-size:12px;
    }
    .form-row {
        gap:10px;
    }
    .dialog-description {
        font-size:13px;
    }
    .detail-dialog {
        padding:0;
    }
    .detail-image,.detail-hero img {
        height:210px;
    }
    .detail-body {
        padding:23px;
    }
    .detail-body h2 {
        font-size:25px;
    }
    .detail-meta {
        font-size:12px;
    }
    .filter-summary {
        font-size:11px;
        padding:11px;
        gap:10px;
        align-items:flex-start;
    }
    .filter-summary button {
        font-size:10px;
    }
    .info-items p,.how-steps p {
        font-size:13px;
    }
    .preview-note {
        font-size:11px;
    }
    .bottom-invitation .text-button {
        margin-left:49px;
    }
}

@media(max-width:360px) {
    .main-content {
        padding-left:16px;
        padding-right:16px;
    }
    .topbar {
        padding-left:16px;
        padding-right:16px;
    }
    .topbar-right {
        gap:9px;
    }
    .location span {
        display:none;
    }
    .intro h1 {
        font-size:39px;
    }
    .intro h1>svg {
        width:139px;
    }
    .free-card {
        grid-template-columns:1fr;
        row-gap:0;
        padding:19px;
    }
    .free-card .button {
        grid-column:1;
        grid-row:auto;
        width:100%;
        margin-top:16px;
        font-size:12px;
    }
    .free-card p {
        max-width:none;
        font-size:11px;
    }
    .free-card-top {
        font-size:8px;
    }
    .free-card h2 {
        font-size:22px;
    }
    .card-body h3 {
        font-size:16px;
    }
    .card-time .price {
        display:none;
    }
    .form-row {
        grid-template-columns:1fr;
    }
    .heading-line h2 {
        font-size:20px;
    }
    .dialog {
        padding:25px 19px;
    }
    .detail-dialog {
        padding:0;
    }
    .detail-facts {
        grid-template-columns:1fr;
    }
}

.mobile-brand,.mobile-create {
    display:none;
}

.category {
    font-size:13px;
}

.card-body h3 {
    font-size:16px;
}

.card-time {
    font-size:12px;
}

.card-location {
    font-size:12px;
    color:#77836e;
}

.card-time .price {
    font-size:10px;
    color:#7e8874;
}

.group-info>span {
    font-size:11px;
}

.image-tag {
    font-size:11px;
}

.spots-tag {
    font-size:10px;
}

.plans-heading p {
    font-size:13px;
    color:#7d8873;
}

.search-field input {
    font-size:12px;
}

.filter-button {
    font-size:12px;
}

.free-card p {
    font-size:12px;
}

.intro-copy>p {
    font-size:14px;
    color:#77816f;
}

.help-button {
    font-size:13px;
}

.location strong {
    font-size:14px;
}

.location span {
    font-size:12px;
}

.bottom-invitation strong {
    font-size:14px;
}

.bottom-invitation p {
    font-size:12px;
}

.text-button {
    font-size:13px;
}

.sidebar-footer {
    font-size:11px;
}

.sidebar-footer span:first-child {
    font-size:12px;
}

.trust-link {
    font-size:12px;
}

.sidebar-note p {
    font-size:13px;
}

.main-footer {
    font-size:10px;
}

body.dialog-open {
    overflow:hidden;
}

.detail-photo {
    display:block;
    width:100%;
    height:235px;
    object-fit:cover;
}

.detail-meta>div {
    display:flex;
    gap:9px;
    width:100%;
    align-items:flex-start;
}

.detail-meta>div>.icon {
    margin-top:2px;
    flex-shrink:0;
}

.detail-meta small {
    display:block;
    font-size:11px;
    color:#95a087;
}

.detail-host>span:last-child {
    margin-left:0;
    font-size:12px;
    line-height:1.7;
}

.detail-host strong {
    display:inline;
    font-size:13px;
}

.detail-cost {
    font-size:12px;
    line-height:1.8;
    color:#7d8c70;
    margin:18px 0;
}

.toast.toast-error {
    background:#97533e;
}

.toast.toast-error>.icon {
    color:#f3d5bd;
}

.detail-actions+.preview-note {
    margin-top:16px;
}

@media(min-width:981px) and (max-width:1190px) {
    .category {
        font-size:12px;
        padding:10px;
    }
    .card-body h3 {
        font-size:15px;
    }
    .card-location {
        font-size:11px;
    }
    .group-info>span {
        font-size:10px;
    }
    .image-tag {
        font-size:10px;
    }
    .intro-copy>p {
        font-size:13px;
    }
    .free-card p {
        font-size:11px;
    }
}

@media(max-width:740px) {
    .free-card p {
        font-size:11px;
    }
    .free-card .button {
        font-size:12px;
    }
    .intro-copy>p {
        font-size:13px;
    }
    .card-time .price {
        display:none;
    }
    .heading-line {
        flex-wrap:wrap;
    }
    .plans-heading p {
        font-size:12px;
    }
    .card-location {
        font-size:11px;
    }
}

@media(max-width:550px) {
    .mobile-brand {
        display:flex;
        font-size:23px;
        gap:8px;
        letter-spacing:-1.3px;
    }
    .mobile-brand .brand-symbol {
        width:31px;
        height:31px;
        border-radius:10px;
    }
    .mobile-brand .brand-symbol .icon {
        width:22px;
        height:22px;
    }
    .topbar .location,.topbar .guest-avatar {
        display:none;
    }
    .mobile-create {
        display:grid;
        place-items:center;
        background:var(--forest);
        color:var(--lime);
        width:34px;
        height:34px;
        border-radius:9px;
    }
    .topbar-right {
        gap:12px;
    }
    .help-button {
        font-size:11px;
    }
    .card-body h3 {
        font-size:18px;
    }
    .card-time .price {
        display:inline;
    }
    .card-location {
        font-size:12px;
    }
    .group-info>span {
        font-size:12px;
    }
    .intro-copy>p {
        font-size:13px;
    }
    .free-card .button {
        font-size:11px;
    }
    .category {
        font-size:12px;
    }
    .bottom-invitation strong {
        font-size:13px;
    }
    .bottom-invitation p {
        font-size:12px;
    }
    .main-footer {
        font-size:10px;
    }
    .mobile-create>.icon {
        width:20px;
        height:20px;
    }
}

@media(max-width:380px) {
    .topbar-right .help-button {
        display:none;
    }
    .mobile-brand {
        font-size:22px;
    }
    .card-body h3 {
        font-size:16px;
    }
    .card-time .price {
        display:none;
    }
    .bottom-invitation strong {
        font-size:12px;
    }
}

@media(max-width:550px) {
    .detail-photo {
        height:210px;
    }
    .mobile-brand>span:last-child {
        display:inline;
    }
}

@media(prefers-reduced-motion:reduce) {
    *,*::before,*::after {
        animation:none!important;
        transition:none!important;
        scroll-behavior:auto!important;
    }
}

@media (max-width: 360px) {
    .discovery-toolbar { margin-right: -16px; padding-right: 16px; }
}

/* Optional plan photography, with an activity picture shown by default. */
.field-help {
    color: #849176;
    font-size: 11px;
    font-weight: 400;
    line-height: 1.65;
}
.dialog .photo-fieldset {
    padding: 0;
    margin: 2px 0 0;
    min-width: 0;
}
.photo-fieldset legend {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
}
.photo-fieldset legend span {
    background: #edf2e6;
    padding: 2px 7px;
    border-radius: 5px;
    font-size: 10px;
    font-weight: 400;
    color: #869477;
}
.photo-preview-wrap {
    position: relative;
    overflow: hidden;
    border-radius: 10px;
    border: 1px solid #e1e6d9;
    height: 165px;
    background: #eaf0df;
}
#photo-preview {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.photo-preview-label {
    position: absolute;
    bottom: 10px;
    left: 10px;
    padding: 5px 8px;
    border-radius: 5px;
    background: #ffffffed;
    color: #55634a;
    font-size: 10px;
    pointer-events: none;
}
.photo-controls {
    display: flex;
    gap: 14px;
    align-items: center;
    flex-wrap: wrap;
    margin: 12px 0 10px;
}
.dialog .photo-fieldset label.photo-upload-button {
    position: relative;
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 13px;
    min-height: 42px;
    border: 1px solid #dce5cf;
    border-radius: 8px;
    background: #eef4e3;
    color: #526c3d;
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    overflow: hidden;
}
.photo-upload-button:hover {
    background: #e3edcf;
}
.photo-upload-button:focus-within {
    outline: 2px solid #829b5e;
    outline-offset: 3px;
}
.dialog #plan-photo {
    position: absolute;
    inset: 0;
    opacity: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    cursor: pointer;
    font-size: 16px;
}
.photo-upload-button .icon, .photo-remove-button .icon {
    width: 16px;
    height: 16px;
}
.photo-remove-button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 0;
    font-size: 12px;
    color: #8d7569;
}
.photo-status {
    font-size: 12px;
    color: #667856;
    line-height: 1.7;
    overflow-wrap: anywhere;
    margin-bottom: 4px;
}
.photo-fieldset .form-error {
    margin-top: 10px;
}
@media (max-width: 550px) {
    .photo-preview-wrap { height: 145px; }
    .photo-controls { gap: 12px; }
    .photo-status { font-size: 11px; }
}

/* Profiles and public meeting places. */
.sidebar-content { margin-top: 36px; }
.sidebar-note { margin-top: 25px; }
.guest-avatar { padding: 0; }
.plan-views {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #77816f;
    font-size: 11px;
    margin-top: 10px;
}
.plan-views .icon { width: 15px; height: 15px; }
.profile-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 0;
    color: var(--forest);
    text-align: left;
    font-weight: 650;
    text-decoration: underline;
    text-decoration-color: #c6d2b8;
    text-underline-offset: 3px;
    overflow-wrap: anywhere;
}
.detail-host { flex-wrap: wrap; }
.detail-host .profile-link { font-size: inherit; }
.profile-dialog { padding-top: 42px; }
.profile-hero, .profile-header { text-align: center; }
.profile-avatar {
    display: grid;
    place-items: center;
    width: 86px;
    height: 86px;
    margin: 0 auto 20px;
    border: 6px solid var(--paper);
    border-radius: 50%;
    box-shadow: 0 0 0 1px var(--line);
    font-family: var(--heading);
    font-size: 32px;
    font-weight: 750;
}
.profile-kicker {
    margin-bottom: 8px;
    color: #7b876d;
    font-size: 10px;
    letter-spacing: 1.2px;
    font-weight: 650;
    text-transform: uppercase;
}
.profile-hero h2, .profile-header h2 { overflow-wrap: anywhere; }
.profile-hero p, .profile-header p { font-size: 13px; color: var(--muted); line-height: 1.6; }
.profile-bio {
    margin: 24px 0;
    font-size: 14px;
    line-height: 1.8;
    color: #63715e;
    white-space: pre-line;
    overflow-wrap: anywhere;
}
.profile-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 22px; }
.profile-tag {
    padding: 7px 12px;
    border: 1px solid #e5eadc;
    border-radius: 20px;
    color: #536649;
    background: #f6f8f0;
    font-size: 12px;
}
.profile-stats {
    display: flex;
    justify-content: center;
    gap: 30px;
    margin: 22px 0;
    padding: 20px 0;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}
.profile-stat { display: grid; align-content: center; flex: 1; min-width: 0; gap: 5px; text-align: center; font-size: 12px; color: var(--muted); }
.profile-stat strong { color: var(--forest); font: 750 24px var(--heading); overflow-wrap: anywhere; }
.profile-stat:last-child strong { font-size: 16px; line-height: 1.5; }
.profile-languages { display: flex; align-items: flex-start; gap: 9px; margin: 18px 0; font-size: 13px; color: #718065; overflow-wrap: anywhere; }
.profile-languages .icon { width: 18px; height: 18px; }
.optional-label { font-size: 11px; color: #8d9685; font-weight: 400; }
.dialog .optional-label { display: inline; margin-top: -5px; }
.dialog input[readonly] { background: #f0f4ea; color: #53664a; }
.business-section { padding: 3px 0 20px; }
.business-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    padding: 46px;
    background: #294b3d;
    color: white;
    border-radius: 22px;
    overflow: hidden;
}
.business-hero-copy { position: relative; max-width: 620px; z-index: 1; }
.business-hero .eyebrow { display: flex; align-items: center; gap: 9px; color: #c1d4b8; letter-spacing: 1.5px; font-size: 10px; }
.business-hero .eyebrow .icon { width: 17px; height: 17px; }
.business-hero h1 { margin: 18px 0 12px; font-size: clamp(28px, 3vw, 43px); line-height: 1.25; letter-spacing: -1.8px; }
.business-hero h1 span { color: var(--lime); }
.business-hero p { font-size: 19px; line-height: 1.6; }
.business-hero .business-hero-description { max-width: 460px; margin: 10px 0 24px; color: #c3d2c5; font-size: 13px; line-height: 1.8; }
.business-hero .button { font-size: 13px; gap: 9px; }
.business-hero-art { position: relative; flex: 0 0 200px; height: 210px; display: grid; place-items: center; }
.venue-illustration {
    width: 164px;
    height: 164px;
    background: #d9ef8a;
    color: #294b3d;
    border-radius: 38px;
    display: grid;
    place-items: center;
    transform: rotate(-8deg);
    box-shadow: 14px 14px 0 #456753;
}
.venue-illustration .icon { width: 89px; height: 89px; stroke-width: 1.2; }
.venue-art-tag { position: absolute; bottom: 7px; right: -5px; display: flex; align-items: center; gap: 7px; padding: 13px 20px; background: #fbfcf9; color: #294b3d; border-radius: 12px; transform: rotate(5deg); font: 700 15px var(--heading); box-shadow: 0 5px 10px #18372a20; }
.venue-art-tag .icon { width: 19px; height: 19px; }
.venue-art-spark { position: absolute; right: -2px; top: -13px; color: #d9ef8a; font-size: 51px; }
.business-benefits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 25px; margin: 30px 0 40px; padding: 0 6px 28px; border-bottom: 1px solid var(--line); }
.business-benefits>div { display: flex; align-items: flex-start; gap: 12px; }
.business-benefits>div>.icon { width: 21px; height: 21px; margin-top: 3px; color: #7b9356; }
.business-benefits strong { display: block; margin-bottom: 7px; font-size: 13px; font-weight: 650; }
.business-benefits small { display: block; color: #819078; font-size: 12px; line-height: 1.65; }
.business-heading { margin-bottom: 25px; }
.business-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.business-card { min-width: 0; border: 1px solid #e2e8d9; border-radius: 17px; padding: 25px; background: #fff; display: flex; flex-direction: column; overflow-wrap: anywhere; }
.business-card-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.business-type { display: inline-flex; align-items: center; gap: 8px; border-radius: 6px; padding: 6px 9px; background: #eef4e3; color: #657f49; font-size: 11px; font-weight: 550; }
.business-type .icon { width: 16px; height: 16px; }
.business-icon { display: grid; place-items: center; width: 42px; height: 42px; background: #f1f5e9; color: #67804f; border-radius: 11px; }
.business-website { display: inline-flex; align-items: center; gap: 5px; color: #6b7b5b; font-size: 12px; }
.business-website .icon { width: 15px; height: 15px; }
.business-card h3 { font-size: 20px; letter-spacing: -.6px; line-height: 1.4; margin-bottom: 10px; }
.business-address { display: flex; align-items: flex-start; gap: 7px; color: #849278; font-size: 12px; line-height: 1.7; }
.business-address .icon { width: 16px; height: 16px; margin-top: 2px; }
.business-description { margin: 16px 0 20px; color: #6f7a69; font-size: 13px; line-height: 1.8; white-space: pre-line; }
.business-owner { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; color: #8c9684; font-size: 11px; margin-top: auto; }
.business-card-footer { margin-top: 20px; padding-top: 17px; border-top: 1px solid #edf0e7; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; }
.business-card .text-button { font-size: 12px; }
.business-card .button { font-size: 12px; padding: 9px 12px; }
.business-option-label { display: inline-flex; align-items: center; gap: 5px; color: #6e8257; font-size: 10px; margin-bottom: 10px; }
.business-option-label .icon { width: 14px; height: 14px; }
.business-empty { padding: 44px 20px; text-align: center; border: 1px dashed #d8e0cc; border-radius: 17px; background: #f7f9f1; }
.business-empty-icon { display: grid; place-items: center; width: 56px; height: 56px; margin: 0 auto 17px; border-radius: 15px; background: #e7eed9; color: #789356; }
.business-empty-icon .icon { width: 27px; height: 27px; }
.business-empty h3 { font-size: 18px; margin-bottom: 10px; }
.business-empty p { color: #7e8d71; font-size: 13px; line-height: 1.7; margin-bottom: 20px; }
.business-empty .button { display: inline-flex; font-size: 12px; }
.business-directory-note { margin: 20px 0 0; font-size: 11px; color: #8a957f; line-height: 1.7; }

@media (max-width: 1190px) {
    .business-hero { padding: 35px; }
    .business-hero-art { flex-basis: 155px; transform: scale(.85); }
    .business-benefits { gap: 18px; }
    .business-card { padding: 22px; }
}
@media (max-width: 840px) {
    .business-hero { padding: 30px; gap: 18px; }
    .business-hero-art { display: none; }
    .business-benefits { gap: 17px; }
    .business-benefits>div { flex-direction: column; gap: 9px; }
    .business-grid { gap: 16px; }
}
@media (max-width: 550px) {
    .sidebar-content { margin-top: 0; }
    .primary-nav { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; }
    .nav-link { padding: 9px 1px 7px; font-size: 9px; min-width: 0; }
    .nav-link>span:not(.nav-count) { white-space: nowrap; }
    .business-hero { padding: 27px 23px; border-radius: 17px; }
    .business-hero h1 { font-size: 30px; letter-spacing: -1.1px; }
    .business-hero h1 span { display: block; }
    .business-hero p { font-size: 16px; }
    .business-hero .business-hero-description { font-size: 12px; }
    .business-hero .eyebrow { font-size: 8px; letter-spacing: 1px; }
    .business-benefits { grid-template-columns: 1fr; gap: 18px; margin: 24px 0 30px; padding: 0 0 24px; }
    .business-benefits>div { flex-direction: row; gap: 12px; }
    .business-benefits strong { margin-bottom: 3px; }
    .business-grid { grid-template-columns: 1fr; }
    .business-heading { align-items: stretch; gap: 18px; }
    .business-heading .search-field { width: 100%; }
    .business-empty h3 { font-size: 16px; }
    .profile-avatar { width: 74px; height: 74px; font-size: 27px; }
}
@media (max-height: 800px) and (min-width: 981px) {
    .sidebar-note { display: none; }
}

/* A quiet business link, and room for conversations. */
.footer-meta { display: flex; align-items: center; justify-content: flex-end; gap: 15px; flex-wrap: wrap; }
.footer-business-link { color: #829075; font-size: 10px; white-space: nowrap; text-underline-offset: 3px; }
.footer-business-link:hover, .footer-business-link:focus-visible { color: var(--forest); text-decoration: underline; }
.messages-section { padding: 2px 0 0; }
.messages-page-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 27px; }
.messages-page-heading h1 { font-size: 36px; line-height: 1.4; letter-spacing: -1.6px; margin: 0 0 3px; }
.messages-page-heading h1>span { color: #98b767; }
.messages-page-heading p { font-size: 13px; color: #7f8c73; }
.messages-refresh { display: grid; place-items: center; height: 38px; width: 38px; border: 1px solid #e1e7d8; border-radius: 10px; color: #7e8e6c; background: white; }
.messages-refresh .icon { width: 17px; height: 17px; }
.messages-refresh:hover { background: #edf3e3; }
.messages-layout { display: grid; grid-template-columns: minmax(225px, 32%) minmax(0, 1fr); height: calc(100dvh - 240px); min-height: 560px; background: white; border: 1px solid #e0e6d9; border-radius: 17px; overflow: hidden; }
.messages-inbox { min-width: 0; min-height: 0; display: flex; flex-direction: column; border-right: 1px solid #e8ece1; }
.inbox-heading { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 23px 21px 18px; }
.inbox-heading h2 { font-size: 13px; letter-spacing: -.2px; }
.inbox-preview-label { color: #8f9a80; font-size: 9px; border: 1px solid #e5eadb; padding: 3px 6px; border-radius: 4px; }
.conversation-search { display: flex; align-items: center; gap: 9px; border: 1px solid #e9edde; background: #f8faf5; margin: 0 19px 17px; padding: 10px 11px; border-radius: 8px; }
.conversation-search .icon { width: 16px; height: 16px; color: #96a28a; }
.conversation-search input { min-width: 0; width: 100%; color: var(--ink); outline: none; border: 0; background: transparent; font-size: 11px; }
.conversation-search:focus-within { border-color: #839d63; box-shadow: 0 0 0 2px #ebf1e2; }
.conversation-search input::placeholder { color: #97a18e; }
.conversation-list { flex: 1; min-height: 0; overflow-y: auto; padding: 0 9px 15px; }
.conversation-item { display: flex; position: relative; align-items: flex-start; gap: 12px; width: 100%; text-align: left; padding: 17px 12px; margin-bottom: 4px; border-radius: 10px; }
.conversation-item:hover { background: #f6f8f1; }
.conversation-item.active { background: #eef4e4; }
.conversation-avatar { display: grid; place-items: center; flex-shrink: 0; width: 41px; height: 41px; border-radius: 50%; font-size: 14px; font-weight: 650; }
.conversation-copy { display: flex; flex-direction: column; gap: 5px; min-width: 0; flex: 1; }
.conversation-copy strong { color: #3e5038; font-weight: 650; font-size: 12px; line-height: 1.5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-right: 40px; }
.conversation-copy>span { display: block; font-size: 11px; color: #87937a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.5; }
.conversation-time { position: absolute; right: 12px; top: 19px; font-size: 9px; color: #94a084; }
.inbox-note { display: flex; align-items: flex-start; gap: 9px; padding: 18px 22px; border-top: 1px solid #edf0e7; color: #98a08c; font-size: 10px; line-height: 1.7; }
.inbox-note .icon { margin-top: 2px; width: 14px; height: 14px; color: #8fa478; }
.messages-empty { padding: 35px 20px; text-align: center; color: #9aa58d; }
.messages-empty>.icon { height: 26px; width: 26px; margin-bottom: 14px; }
.messages-empty h3 { color: #6e7f5e; font-size: 13px; margin-bottom: 8px; }
.messages-empty p { font-size: 11px; line-height: 1.7; }
.chat-panel { min-height: 0; min-width: 0; background: #fcfdf9; }
.chat-placeholder { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 25px; text-align: center; position: relative; }
.chat-placeholder>span:first-child { display: grid; place-items: center; width: 78px; height: 78px; border-radius: 25px; color: #738c53; background: #eaf1da; margin-bottom: 23px; transform: rotate(-7deg); }
.chat-placeholder>span:first-child>.icon { width: 37px; height: 37px; stroke-width: 1.5; }
.chat-placeholder h2 { font-size: 21px; letter-spacing: -.6px; line-height: 1.5; margin-bottom: 12px; }
.chat-placeholder p { font-size: 12px; line-height: 1.8; color: #929d85; }
.chat-placeholder-spark { font-size: 32px; color: #bfd28a; margin-top: 30px; }
.chat-active { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.chat-header { display: flex; flex-shrink: 0; align-items: center; gap: 12px; min-height: 83px; padding: 19px 26px; border-bottom: 1px solid #e8eddf; background: white; }
.chat-heading { min-width: 0; flex: 1; }
.chat-heading h2 { font-size: 14px; font-weight: 750; line-height: 1.6; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.chat-heading p { color: #93a080; font-size: 10px; line-height: 1.6; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.chat-plan-button { display: inline-flex; align-items: center; gap: 7px; flex-shrink: 0; border: 1px solid #e4eadb; border-radius: 7px; padding: 8px 10px; color: #758762; font-size: 10px; }
.chat-plan-button:hover { background: #f1f5e9; }
.chat-plan-button .icon { width: 12px; height: 12px; }
.chat-back { display: none; padding: 4px; margin-left: -5px; color: #7a8a68; }
.chat-back .icon { height: 18px; width: 18px; }
.chat-preview-notice { display: flex; flex-shrink: 0; justify-content: center; align-items: center; gap: 7px; padding: 10px; font-size: 10px; color: #8a967b; background: #f5f8ee; border-bottom: 1px solid #ebf0e2; }
.chat-preview-notice .icon { width: 13px; height: 13px; color: #9bb476; }
.chat-history { flex: 1; min-height: 0; overflow-y: auto; padding: 29px 27px 17px; overscroll-behavior: contain; }
.message-row { display: flex; flex-direction: column; align-items: flex-start; margin: 0 0 21px; }
.message-row.outgoing { align-items: flex-end; }
.message-bubble { max-width: 86%; border: 1px solid #e7ecdf; border-radius: 13px 13px 13px 3px; padding: 12px 16px; background: white; font-size: 13px; line-height: 1.8; color: #536449; white-space: pre-wrap; overflow-wrap: anywhere; }
.message-row.outgoing .message-bubble { border-color: #dce8c4; background: #e6f0d2; border-radius: 13px 13px 3px 13px; color: #3e5735; }
.message-author { display: block; font-size: 10px; color: #839376; font-weight: 600; margin-bottom: 5px; }
.message-time { display: block; margin-top: 6px; font-size: 9px; line-height: 1.5; color: #a0aa94; }
.message-row.system { text-align: center; align-items: center; }
.message-row.system .message-bubble { font-size: 10px; color: #8f9b81; border: none; padding: 0 7px; background: transparent; line-height: 1.8; }
.message-row.system .message-time { display: none; }
.chat-empty { padding: 40px 10px; text-align: center; color: #819272; font-size: 13px; }
.chat-empty span { display: block; margin-top: 12px; color: #9ca68f; font-size: 10px; }
.message-compose-wrap { padding: 15px 23px 14px; background: white; border-top: 1px solid #e9eee1; flex-shrink: 0; }
.message-form { display: flex; align-items: flex-end; gap: 12px; padding: 6px; border: 1px solid #e2e8d8; border-radius: 11px; background: #fcfdf9; }
.message-form:focus-within { border-color: #95ad74; box-shadow: 0 0 0 2px #f0f5e7; }
.message-compose-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
#message-input { width: 100%; min-width: 0; min-height: 37px; max-height: 110px; border: 0; outline: none; resize: none; background: transparent; font-size: 13px; color: #425d37; padding: 9px 7px; line-height: 1.5; }
#message-input::placeholder { color: #a0a993; }
.send-message { display: grid; place-items: center; flex-shrink: 0; width: 37px; height: 37px; border-radius: 8px; background: #294b3d; color: #e5efce; }
.send-message:hover { color: white; background: #42634a; }
.send-message .icon { width: 16px; height: 16px; }
.message-compose-help { display: flex; justify-content: space-between; gap: 10px; font-size: 9px; color: #a0a992; margin-top: 9px; line-height: 1.6; }
.message-compose-help>span { text-align: right; }
.message-compose-wrap .form-error { font-size: 11px; margin-bottom: 12px; }

@media (max-width: 1100px) {
    .messages-layout { grid-template-columns: 225px minmax(0, 1fr); }
    .inbox-heading { padding: 21px 16px 17px; }
    .inbox-heading h2 { font-size: 12px; }
    .conversation-search { margin-inline: 14px; }
    .conversation-item { gap: 8px; padding-inline: 8px; }
    .conversation-avatar { width: 35px; height: 35px; font-size: 12px; }
    .conversation-copy strong { font-size: 11px; padding-right: 32px; }
    .conversation-time { right: 8px; font-size: 8px; }
    .chat-header { padding-inline: 18px; gap: 9px; }
    .chat-history { padding-inline: 20px; }
    .message-compose-wrap { padding-inline: 15px; }
    .message-compose-help>span { display: none; }
}
@media (max-width: 740px) {
    .messages-page-heading { margin-bottom: 22px; }
    .messages-page-heading h1 { font-size: 31px; }
    .messages-layout { grid-template-columns: minmax(0, 1fr); height: calc(100dvh - 220px); min-height: 520px; border-radius: 13px; }
    .messages-inbox { border-right: 0; }
    .messages-layout:not(.has-conversation) .chat-panel { display: none; }
    .messages-layout.has-conversation .messages-inbox { display: none; }
    .chat-back { display: grid; place-items: center; }
    .conversation-item { gap: 12px; padding: 17px 15px; }
    .conversation-avatar { width: 40px; height: 40px; font-size: 14px; }
    .conversation-copy strong { font-size: 13px; }
    .conversation-copy>span { font-size: 12px; }
    .conversation-time { top: 21px; right: 15px; font-size: 10px; }
    .inbox-heading { padding: 23px 22px 18px; }
    .inbox-heading h2 { font-size: 14px; }
    .conversation-search { margin-inline: 21px; padding: 12px; }
    .conversation-search input { font-size: 12px; }
    .chat-header { min-height: 74px; padding: 14px; }
    .chat-header .conversation-avatar { width: 33px; height: 33px; font-size: 12px; }
    .chat-heading h2 { font-size: 13px; }
    .chat-plan-button { font-size: 9px; gap: 4px; padding: 7px; }
    .chat-plan-button .icon { width: 10px; height: 10px; }
    .chat-preview-notice { font-size: 9px; }
    .chat-history { padding: 22px 17px 10px; }
    .message-bubble { font-size: 12px; padding: 10px 13px; max-width: 91%; }
    .message-compose-wrap { padding: 12px; }
    .message-compose-help { font-size: 8px; }
}
@media (max-width: 550px) {
    .footer-meta { justify-content: center; gap: 7px 15px; }
    .messages-page-heading p { font-size: 12px; }
    #message-input { font-size: 16px; }
}

/* Profile pages and community photos. */
.profile-section { padding: 2px 0 12px; }
.profile-page-head { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-bottom: 28px; }
.profile-page-head h1 { font-size: 34px; letter-spacing: -1.4px; line-height: 1.4; overflow-wrap: anywhere; }
.profile-page-head .profile-kicker { font-size: 9px; letter-spacing: 1.5px; margin-bottom: 8px; }
.profile-page-head>.button { flex-shrink: 0; font-size: 12px; }
.profile-page-layout { display: grid; grid-template-columns: 290px minmax(0, 1fr); align-items: start; gap: 28px; }
.profile-overview { min-width: 0; padding: 29px 25px 22px; border: 1px solid #e0e7d7; border-radius: 17px; background: linear-gradient(#edf3e3 0 82px, #fff 82px); }
.profile-overview .profile-avatar { width: 112px; height: 112px; margin-bottom: 18px; border: 6px solid white; font-size: 37px; }
.profile-avatar, .mini-avatar, .conversation-avatar, .guest-avatar { overflow: hidden; }
.avatar-image { width: 100%; height: 100%; object-fit: cover; display: block; }
.profile-overview .profile-hero h2 { font-size: 24px; line-height: 1.4; letter-spacing: -.8px; margin-bottom: 8px; }
.profile-overview .profile-city { display: flex; justify-content: center; align-items: center; gap: 5px; color: #829175; }
.profile-overview .profile-city .icon { width: 16px; height: 16px; }
.profile-overview .profile-bio { font-size: 13px; line-height: 1.85; }
.profile-section-label { display: block; margin: 23px 0 10px; font-size: 10px; font-weight: 600; color: #819473; letter-spacing: .4px; }
.profile-overview .profile-tags, .profile-overview .profile-languages { display: flex; flex-wrap: wrap; gap: 7px; margin: 10px 0 20px; }
.profile-overview .profile-tag { padding: 5px 10px; font-size: 11px; overflow-wrap: anywhere; }
.profile-overview .profile-stats { margin-bottom: 0; border-bottom: 0; padding-bottom: 2px; gap: 15px; }
.profile-overview .profile-stat:last-child strong { font-size: 24px; }
.profile-page-plans { min-width: 0; }
.profile-page-plans>header { display: flex; justify-content: space-between; align-items: center; gap: 15px; margin: 3px 0 22px; }
.profile-page-plans>header h2 { font-size: 19px; letter-spacing: -.6px; }
.profile-page-plans>header .button { font-size: 11px; padding: 8px 12px; }
.profile-plans-heading { display: flex; align-items: center; gap: 12px; margin: 4px 0 22px; }
.profile-plans-heading h2 { min-width: 0; overflow-wrap: anywhere; font-size: 20px; letter-spacing: -.6px; }
.profile-plans-heading>span { background: #f0f4e8; border: 1px solid #e5eadb; border-radius: 5px; padding: 4px 7px; color: #8d9a7c; font-size: 10px; white-space: nowrap; }
.profile-hosted-grid.plan-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 19px; }
.profile-hosted-grid .card-body { padding: 17px; }
.profile-hosted-grid .card-time { flex-wrap: wrap; gap: 5px; font-size: 10px; }
.profile-hosted-grid .card-time .price { margin-left: 0; font-size: 9px; }
.profile-hosted-grid .card-body h3 { font-size: 15px; line-height: 1.55; }
.profile-hosted-grid .card-location { font-size: 10px; }
.profile-hosted-grid .group-info>span { font-size: 10px; }
.profile-hosted-grid .card-bottom { gap: 6px; }
.profile-page-empty { padding: 46px 25px; background: #f5f8ee; border: 1px dashed #dce5cc; border-radius: 16px; text-align: center; }
.profile-page-empty h3 { font-size: 19px; margin-bottom: 12px; letter-spacing: -.5px; }
.profile-page-empty p { color: #839277; font-size: 13px; line-height: 1.8; margin-bottom: 22px; }
.profile-page-empty .button { display: inline-flex; font-size: 12px; }
.profile-onboarding { max-width: 710px; margin: 35px auto; padding: 58px 40px; text-align: center; border: 1px solid #dfe6d4; border-radius: 22px; background: #f2f6e9; }
.profile-onboarding .profile-avatar { width: 100px; height: 100px; margin-bottom: 26px; background: #dce9c3; color: #617d46; }
.profile-onboarding h1 { font-size: 32px; line-height: 1.4; letter-spacing: -1.2px; margin-bottom: 18px; }
.profile-onboarding p { color: #7d8d70; font-size: 14px; line-height: 1.8; max-width: 420px; margin: 0 auto 26px; }
.profile-onboarding .button { display: inline-flex; }
.profile-onboarding .profile-kicker { font-size: 10px; margin-bottom: 16px; }
.dialog .media-photo-fieldset { padding: 0; margin: 0; border: none; min-width: 0; }
.media-photo-fieldset>legend { margin-bottom: 13px; }
.media-photo-fieldset>legend .optional-label { font-size: 11px; color: #98a18b; margin-left: 5px; font-weight: 400; }
.profile-photo-editor { display: flex; align-items: center; gap: 23px; }
.profile-photo-circle { width: 88px; height: 88px; flex-shrink: 0; border-radius: 50%; overflow: hidden; display: grid; place-items: center; box-shadow: 0 0 0 5px #f2f5eb; font: 700 30px var(--heading); }
.profile-photo-circle img { width: 100%; height: 100%; object-fit: cover; grid-area: 1/1; }
.profile-photo-circle>span { grid-area: 1/1; }
.profile-photo-initial { display: grid; place-items: center; width: 100%; height: 100%; }
.profile-empty-copy { font-size: 12px; color: #8a987e; line-height: 1.7; }
.profile-city { overflow-wrap: anywhere; }
.media-photo-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 15px; }
.profile-photo-editor .media-photo-controls { align-items: flex-start; flex-direction: column; gap: 3px; }
.dialog .media-photo-fieldset label.media-upload-button { display: inline-flex; flex-direction: row; align-items: center; gap: 8px; position: relative; overflow: hidden; border: 1px solid #dce4cf; border-radius: 8px; padding: 10px 13px; color: #526d40; background: #f5f8ef; font-size: 12px; cursor: pointer; margin: 0; }
.media-upload-button .icon { width: 16px; height: 16px; }
.dialog .media-photo-fieldset .media-upload-button input[type=file] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; padding: 0; }
.media-upload-button:focus-within { outline: 2px solid #78975a; outline-offset: 3px; }
.business-cover-editor { width: 100%; aspect-ratio: 2.3; border-radius: 10px; background: #edf2e4; overflow: hidden; margin-bottom: 12px; }
.business-cover-editor>img { display: block; width: 100%; height: 100%; object-fit: cover; }
.media-photo-fieldset .form-error { margin-top: 12px; }
.business-card { --cover-inset: 25px; }
.business-cover { display: block; object-fit: cover; width: calc(100% + var(--cover-inset) * 2); height: auto; aspect-ratio: 1; margin: calc(-1 * var(--cover-inset)) calc(-1 * var(--cover-inset)) 22px; border-radius: 16px 16px 0 0; }
.dialog .language-fieldset { min-width: 0; border: 1px solid #e2e8d9; border-radius: 11px; padding: 15px; margin-top: 5px; background: #fcfdf9; }
.language-fieldset>legend { padding: 0 6px; margin-left: -6px; }
.selected-languages { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 12px; }
.selected-languages:empty { display: none; }
.language-chip { display: inline-flex; align-items: center; gap: 7px; padding: 6px 9px 6px 11px; background: #eaf2da; border: 1px solid #dce7c9; border-radius: 20px; color: #5a7344; font-size: 11px; }
.language-chip button { display: grid; place-items: center; padding: 1px; border-radius: 50%; font-size: 13px; color: #7d9167; min-width: 16px; min-height: 16px; }
.language-chip button:hover { background: #d6e5be; }
.language-chip .icon { width: 12px; height: 12px; }
.dialog .language-fieldset label.language-search-label { display: flex; flex-direction: row; align-items: center; gap: 8px; margin: 0 0 12px; border: 1px solid #e1e7d7; border-radius: 7px; padding: 0 10px; background: white; }
.language-search-label .icon { width: 15px; height: 15px; color: #9daa8e; }
.dialog .language-search-label input { border: none; padding: 9px 0; background: transparent; outline: none; box-shadow: none; font-size: 12px; }
.language-search-label:focus-within { border-color: #91aa70; }
.dialog .language-fieldset label.language-select-label { font-size: 10px; color: #93a083; font-weight: 400; margin-bottom: 6px; }
.dialog #language-select { padding: 5px; height: 145px; background: white; border: 1px solid #e3e9da; border-radius: 7px; font-size: 12px; overflow-y: auto; }
#language-select option { padding: 6px 9px; border-radius: 4px; margin-bottom: 2px; }
#language-select option:checked { background: #e9f1d9 linear-gradient(#e9f1d9, #e9f1d9); color: #445d36; }
.language-picker-footer { display: flex; align-items: center; gap: 15px; justify-content: space-between; margin-top: 12px; }
.language-picker-footer .field-help { font-size: 10px; line-height: 1.7; max-width: 180px; }
.language-picker-footer .button { flex-shrink: 0; font-size: 11px; padding: 8px 10px; gap: 5px; }
.language-picker-footer .button .icon { width: 13px; height: 13px; }
@media (max-width: 1190px) {
    .business-card { --cover-inset: 22px; }
    .profile-page-layout { grid-template-columns: 265px minmax(0, 1fr); gap: 22px; }
    .profile-hosted-grid.plan-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 840px) {
    .profile-page-layout { grid-template-columns: minmax(0, 1fr); }
    .profile-overview { padding: 28px; }
    .profile-hosted-grid.plan-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .profile-page-head h1 { font-size: 30px; }
}
@media (max-width: 550px) {
    .profile-page-head { align-items: flex-start; gap: 12px; margin-bottom: 21px; }
    .profile-page-head h1 { font-size: 27px; }
    .profile-page-head>.button { font-size: 10px; padding: 9px 12px; }
    .profile-overview { padding: 27px 23px; }
    .profile-hosted-grid.plan-grid { grid-template-columns: minmax(0, 1fr); }
    .profile-onboarding { margin: 8px 0; padding: 39px 23px; }
    .profile-onboarding h1 { font-size: 26px; }
    .profile-onboarding p { font-size: 13px; }
    .profile-photo-editor { gap: 17px; }
    .profile-photo-circle { width: 75px; height: 75px; }
    .dialog .media-photo-fieldset label.media-upload-button { font-size: 11px; padding: 9px 11px; }
    .dialog .language-fieldset { padding: 12px; }
    .language-picker-footer { align-items: flex-start; gap: 8px; }
    .language-picker-footer .field-help { max-width: 140px; }
    .language-picker-footer .button { font-size: 10px; padding: 8px; }
    .dialog .language-search-label input { font-size: 16px; }
}
.account-button {
    border:1px solid #d9e2d2;
    border-radius:8px;
    padding:9px 14px;
    color:var(--forest, #294b3d);
    background:#f3f6ee;
    font-size:12px;
    font-weight:650;
    white-space:nowrap;
}

.account-button:hover {
    background:var(--lime);
}

.auth-dialog {
    max-width:490px;
}

.auth-tabs {
    display:flex;
    gap:5px;
    padding:5px;
    border:1px solid #e0e6d9;
    background:#eef2e8;
    border-radius:10px;
}

.auth-tabs button {
    flex:1;
    padding:10px 8px;
    font-size:12px;
    font-weight:650;
    border-radius:7px;
    color:var(--muted);
}

.auth-tabs button[aria-pressed="true"] {
    color:#294b3d;
    background:var(--paper);
    box-shadow:0 1px 4px #294b3d10;
}

.auth-social {
    display:grid;
    gap:10px;
    margin-top:20px;
}

.auth-provider-button {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    min-height:48px;
    width:100%;
    padding:12px 16px;
    border:1px solid #747775;
    border-radius:10px;
    background:#fff;
    color:#1f1f1f;
    font-size:14px;
    font-weight:550;
    line-height:1.4;
    transition:background .15s ease,box-shadow .15s ease;
}

.auth-provider-button:hover:not(:disabled) {
    background:#f5f5f5;
    box-shadow:0 1px 3px #00000015;
}

.auth-provider-button:focus-visible {
    outline:3px solid var(--forest);
    outline-offset:3px;
}

.auth-provider-icon {
    flex:none;
    width:20px;
    height:20px;
}

.auth-provider-label {
    min-width:0;
}

.auth-provider-apple {
    background:#111;
    border-color:#111;
    color:#fff;
}

.auth-provider-apple:hover:not(:disabled) {
    background:#2b2b2b;
}

.auth-provider-button:disabled {
    cursor:default;
    opacity:.58;
}

.auth-provider-status {
    flex:none;
    font-size:10px;
    font-weight:500;
    white-space:nowrap;
}

.auth-divider {
    display:flex;
    align-items:center;
    gap:14px;
    margin:20px 0 0;
    color:var(--muted);
    font-size:11px;
}

.auth-divider::before,.auth-divider::after {
    content:'';
    flex:1;
    height:1px;
    background:var(--line);
}

.auth-provider-connections {
    display:grid;
    gap:8px;
}

.auth-provider-connections .auth-provider-button {
    justify-content:flex-start;
}

.auth-provider-connections .auth-provider-status {
    margin-left:auto;
}

.auth-provider-connections .is-connected {
    opacity:1;
    background:#f3f6ee;
    color:var(--forest);
    border-color:var(--line);
}

.dialog label.auth-link-password-label {
    margin:0 0 12px;
}

.auth-link-password-note {
    margin:0 0 10px;
    color:var(--muted);
    font-size:12px;
    line-height:1.5;
}

.auth-link-password-note .auth-text-button {
    min-height:48px;
}

@media(max-width:380px) {
    .auth-provider-button { gap:9px; padding:12px; font-size:13px; }
    .auth-provider-status { font-size:9px; }
}

.auth-context,.auth-feedback {
    border:1px solid #d8e5c5;
    padding:12px 14px;
    border-radius:10px;
    font-size:12px;
    line-height:1.65;
    color:#40583b;
    background:#f0f6e8;
    margin:16px 0;
}

.auth-password-wrap {
    position:relative;
    display:flex;
    align-items:center;
}

.dialog .auth-password-wrap input {
    padding-right:68px;
}

.auth-password-wrap button {
    position:absolute;
    right:6px;
    padding:10px;
    color:#49623e;
    font-size:11px;
    font-weight:650;
    border-radius:6px;
}

.auth-text-button {
    color:#45663b;
    padding:8px 3px;
    font-size:12px;
    font-weight:600;
    line-height:1.5;
    text-decoration:underline;
    text-underline-offset:4px;
}

.auth-mail-note {
    color:var(--muted);
    font-size:11px;
    line-height:1.7;
    padding-top:15px;
    margin-top:20px;
    border-top:1px solid var(--line);
}

.auth-account-summary {
    display:flex;
    flex-direction:column;
    gap:10px;
    border:1px solid #dfe7d7;
    border-radius:12px;
    padding:18px;
    background:#f7f9f3;
    margin:20px 0;
}

.auth-account-summary>span:first-child {
    font-size:11px;
    color:var(--muted);
}

.auth-account-summary strong {
    font-size:15px;
    overflow-wrap:anywhere;
}

.auth-verification {
    display:flex;
    align-items:center;
    gap:6px;
    font-size:11px;
    color:#856326;
}

.auth-verification.is-verified {
    color:#45683d;
}

.auth-verification .icon {
    width:15px;
    height:15px;
}

.auth-account-actions {
    display:flex;
    flex-direction:column;
    gap:12px;
}

.profile-account-buttons {
    display:flex;
    align-items:center;
    gap:16px;
}

.profile-account-note {
    display:flex;
    align-items:center;
    gap:20px;
    justify-content:space-between;
    background:#f0f5e8;
    border:1px solid #dfe8d2;
    border-radius:14px;
    padding:20px 24px;
    margin-bottom:26px;
}

.profile-account-note strong {
    font-size:14px;
    color:#365331;
}

.profile-account-note p {
    font-size:12px;
    color:var(--muted);
    line-height:1.65;
    margin-top:6px;
    max-width:650px;
}

.profile-account-note .button {
    flex-shrink:0;
}

.profile-onboarding>.auth-text-button {
    display:block;
    margin:14px auto 0;
}

@media(max-width:480px) {
    .topbar-right .help-button {
        display:none;
    }
}

@media(max-width:380px) {
    .topbar-right .demo-label {
        display:none;
    }
    .topbar {
        gap:12px;
    }
    .topbar-right {
        gap:8px;
    }
}

@media(max-width:600px) {
    .account-button {
        padding:8px 10px;
        font-size:11px;
    }
    .profile-account-note {
        align-items:flex-start;
        flex-direction:column;
        gap:14px;
        padding:18px;
    }
    .profile-account-buttons {
        gap:10px;
        flex-wrap:wrap;
    }
}
.detail-heading-line {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.plan-refresh-link {
    padding:7px 0 7px 8px;
    color:#637b55;
    font-size:11px;
    font-weight:600;
    text-decoration:underline;
    text-underline-offset:3px;
}

.plan-membership-note {
    margin:20px 0;
    padding:16px 18px;
    border:1px solid #dce6cf;
    border-radius:12px;
    background:#f1f6e9;
    color:#3b5932;
}

.plan-membership-note strong {
    display:block;
    font-size:13px;
}

.plan-membership-note p {
    margin-top:6px;
    font-size:12px;
    line-height:1.7;
    color:#6c7b60;
}

.plan-membership-note.is-cancelled {
    border-color:#eadbd1;
    background:#faf3ee;
}

.spots-tag.is-cancelled {
    background:#fae8db;
    color:#825738;
}

.plan-participants,.plan-join-requests {
    border-top:1px solid #e5eadf;
    padding-top:20px;
    margin-top:20px;
}

.plan-participants h3,.plan-join-requests h3 {
    font-size:15px;
    letter-spacing:-.3px;
    display:flex;
    align-items:center;
    gap:9px;
    margin-bottom:12px;
}

.plan-participants h3>span,.plan-join-requests h3>span {
    border-radius:6px;
    background:#edf3e4;
    color:#789166;
    padding:3px 7px;
    font-size:10px;
    letter-spacing:0;
}

.plan-people-list {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    max-height:240px;
    overflow:auto;
    padding:4px 3px 6px;
}

.plan-person {
    display:flex;
    align-items:center;
    gap:9px;
    min-width:0;
    padding:8px 11px;
    border:1px solid #e2e8da;
    border-radius:10px;
    background:#fbfcf8;
    text-align:left;
    color:#46613b;
}

.plan-person:hover {
    background:#eff5e4;
}

.plan-person .mini-avatar {
    width:30px;
    height:30px;
    flex-shrink:0;
    margin:0;
    border:0;
}

.plan-person>span:last-child {
    min-width:0;
    font-size:12px;
    line-height:1.45;
    overflow-wrap:anywhere;
}

.plan-person small {
    display:block;
    font-size:9px;
    color:#81936f;
}

.join-request-list {
    display:flex;
    flex-direction:column;
    gap:10px;
    margin:14px 0;
}

.join-request-row {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:12px;
    border:1px solid #e3e9d9;
    background:#f8faf4;
    border-radius:12px;
}

.join-request-row .plan-person {
    padding:0;
    background:transparent;
    border:0;
}

.join-request-actions {
    display:flex;
    flex-shrink:0;
    gap:7px;
}

.join-request-actions .button {
    min-height:36px;
    padding:8px 11px;
    font-size:10px;
}

.plan-confirmation {
    padding:18px;
    border:1px solid #e9dacc;
    background:#faf5ee;
    border-radius:12px;
    margin-top:18px;
}

.plan-confirmation h3 {
    font-size:15px;
    color:#6d4b35;
}

.plan-confirmation p {
    font-size:12px;
    line-height:1.7;
    margin-top:7px;
    color:#856d5e;
}

.plan-confirm-actions {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:16px;
}

.plan-confirm-actions .button {
    min-height:40px;
    font-size:11px;
    padding:10px 14px;
}

.plan-confirm-actions .button-primary {
    background:#795440;
    color:#fff9ef;
}

.detail-actions {
    flex-wrap:wrap;
}

@media(max-width:550px) {
    .join-request-row {
        align-items:stretch;
        flex-direction:column;
        gap:12px;
    }
    .join-request-actions .button {
        flex:1;
        min-height:40px;
        font-size:11px;
    }
    .plan-confirm-actions {
        flex-direction:column;
    }
    .detail-actions>.button {
        flex:0 0 auto;
        min-height:44px;
        width:100%;
    }
    .plan-membership-note {
        padding:14px;
    }
    .plan-person {
        padding:7px 9px;
    }
}
.brand-wordmark {
    display:block;
    width:172px;
    height:auto;
    max-width:100%;
}

.brand-mark {
    display:none;
    width:42px;
    height:42px;
}

.sidebar>.brand {
    width:172px;
    max-width:100%;
    flex-shrink:0;
    border-radius:4px;
}

.dialog-brand {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:12px;
    margin:3px 28px 25px 0;
}

.dialog-brand img {
    display:block;
    width:126px;
    height:auto;
    max-width:100%;
}

.business-dialog-brand>span {
    color:#6d825b;
    font-size:10px;
    font-weight:650;
    letter-spacing:1.4px;
    text-transform:uppercase;
}

.business-hero .business-brand {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:18px;
    margin:24px 0 22px;
}

.business-brand>img {
    display:block;
    width:245px;
    max-width:100%;
    height:auto;
}

.business-hero .business-brand>span {
    display:block;
    border-left:1px solid #76907f;
    padding-left:18px;
    color:#d9ef8a;
    font-size:12px;
    font-weight:650;
    letter-spacing:1.5px;
    text-transform:uppercase;
}

.footer-identity {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:11px 16px;
    min-width:0;
}

.footer-brand {
    display:block;
    flex-shrink:0;
    border-radius:3px;
    opacity:.75;
}

.footer-brand:hover,.footer-brand:focus-visible {
    opacity:1;
}

.footer-brand img {
    display:block;
    width:78px;
    height:auto;
}

.footer-promise {
    display:flex;
    align-items:center;
    gap:6px;
}

@media(min-width:551px) and (max-width:980px) {
    .sidebar>.brand {
        justify-content:center;
        width:44px;
    }
    .sidebar .brand-wordmark {
        display:none;
    }
    .sidebar .brand-mark {
        display:block;
    }
}

@media(max-width:550px) {
    .mobile-brand {
        width:138px;
        min-width:0;
        flex-shrink:0;
    }
    .mobile-brand .brand-wordmark {
        width:138px;
    }
    .business-hero .business-brand {
        align-items:flex-start;
        flex-direction:column;
        gap:12px;
        margin:23px 0 20px;
    }
    .business-brand>img {
        width:210px;
    }
    .business-hero .business-brand>span {
        padding:0;
        border:0;
        font-size:11px;
    }
    .footer-identity {
        align-items:flex-start;
        flex-direction:column;
        gap:11px;
    }
    .main-footer .footer-meta {
        justify-content:flex-start;
        text-align:left;
    }
    .dialog-brand {
        margin-bottom:22px;
    }
}
.notifications-button {
    position:relative;
    display:grid;
    place-items:center;
    flex-shrink:0;
    width:36px;
    height:36px;
    border:1px solid #e0e7d9;
    border-radius:10px;
    color:#617858;
    background:#f8faf4;
}

.notifications-button:hover { background:#edf4e1; }
.notifications-button>.icon { width:19px; height:19px; }
.notification-count,.conversation-unread {
    display:grid;
    place-items:center;
    min-width:18px;
    height:18px;
    padding:0 4px;
    border-radius:10px;
    background:#315540;
    color:#f0f7df;
    font-size:9px;
    line-height:1;
    font-weight:700;
}
.notification-count { position:absolute; right:-5px; top:-5px; border:2px solid var(--paper); min-width:19px; height:19px; font-size:8px; }
.conversation-unread { position:absolute; right:12px; bottom:16px; }
.conversation-item.has-unread .conversation-copy strong { color:#284b35; }
.conversation-item.has-unread .conversation-copy>span { color:#4e6546; padding-right:24px; }
.conversation-copy strong { padding-right:50px; }
.inbox-unread { color:#547244; font-size:10px; font-weight:600; white-space:nowrap; }
.conversation-list:empty { display:none; }
.messages-empty { flex:1; }
.messages-empty-actions { display:flex; align-items:center; flex-direction:column; gap:10px; margin-top:18px; }
.messages-empty-actions .button { font-size:11px; min-height:38px; padding:10px 14px; }
.messages-empty-actions .auth-text-button { font-size:11px; }
.messages-connection-status { color:#8b704b; font-size:10px; line-height:1.65; padding:10px 18px; background:#fcf6e9; border-top:1px solid #eee3cc; }
.chat-state-notice { display:flex; flex-shrink:0; align-items:center; justify-content:center; gap:7px; padding:10px 15px; font-size:10px; line-height:1.55; color:#7e906f; background:#f5f8ee; border-bottom:1px solid #ebf0e2; }
.chat-state-notice .icon { width:14px; height:14px; flex-shrink:0; }
.chat-state-notice.is-read-only { background:#faf3ec; color:#8a755e; }
.chat-history-controls { display:flex; flex-shrink:0; justify-content:center; align-items:center; gap:10px; padding:8px 15px 0; min-height:30px; font-size:10px; color:#829674; }
.chat-history-button { font-size:10px; color:#617c51; padding:5px 12px; border-radius:7px; background:#edf3e5; }
.chat-history-button:hover { background:#e3edd7; }
.chat-new-messages { align-self:center; flex-shrink:0; color:#365932; background:#e5f0d5; box-shadow:0 2px 8px #294b3d12; padding:8px 15px; font-size:11px; border-radius:18px; margin:-10px 0 10px; position:relative; z-index:1; }
.notifications-dialog { max-width:550px; padding-top:34px; }
.notification-toolbar { display:flex; align-items:center; justify-content:space-between; gap:15px; margin:0 0 17px; }
.notification-toolbar .auth-text-button { font-size:11px; }
.notifications-list { display:flex; flex-direction:column; gap:9px; }
.notification-item { display:flex; align-items:flex-start; gap:7px; border:1px solid #e9eddf; border-radius:12px; background:#fff; padding:13px; }
.notification-item.is-unread { background:#f0f6e8; border-color:#dbe8c9; }
.notification-open { display:flex; align-items:flex-start; gap:12px; text-align:left; min-width:0; flex:1; }
.notification-symbol { display:grid; place-items:center; width:32px; height:32px; flex-shrink:0; border-radius:10px; background:#e7efdc; color:#71895a; }
.notification-symbol .icon { width:17px; height:17px; }
.notification-copy { display:flex; flex-direction:column; gap:6px; min-width:0; }
.notification-copy strong { font-size:12px; line-height:1.55; color:#385433; overflow-wrap:anywhere; }
.notification-copy>span { color:#7b8a6e; font-size:11px; line-height:1.65; overflow-wrap:anywhere; }
.notification-copy time { font-size:9px; color:#91a17f; line-height:1.5; }
.notification-mark-read { display:grid; place-items:center; flex-shrink:0; width:28px; height:28px; border:1px solid #d5e3c4; border-radius:50%; color:#6b8751; background:#f9fcf5; }
.notification-mark-read .icon { width:14px; height:14px; }
.notifications-empty { padding:35px 15px; text-align:center; }
.notifications-empty p { color:#5d7951; font-size:15px; font-weight:600; }
.notifications-empty>span { display:block; margin-top:9px; font-size:12px; line-height:1.7; color:#8b997e; }
.notifications-empty .button { margin-top:20px; font-size:12px; }

@media(max-width:980px) {
    .topbar-right .demo-label { display:none; }
    .nav-link[data-view="messages"] { position:relative; }
    .nav-link #messages-count:not([hidden]) { display:grid; position:absolute; right:3px; top:4px; min-width:17px; height:17px; padding:0 4px; margin:0; font-size:8px; border-radius:8px; }
}
@media(max-width:740px) {
    .topbar-right .help-button { display:none; }
    .messages-layout { height:calc(100dvh - 290px); min-height:340px; }
    .conversation-unread { right:15px; bottom:16px; }
    .chat-state-notice { font-size:9px; padding:9px 14px; }
    .chat-state-notice span { max-width:100%; }
    .notifications-dialog { padding:25px 21px; }
    .notification-item { padding:12px 10px; }
}
@media(max-width:550px) {
    .topbar { gap:12px; }
    .topbar-right { gap:8px; }
    .notifications-button { width:32px; height:32px; border-radius:8px; }
    .nav-link #messages-count:not([hidden]) { right:calc(50% - 23px); top:2px; }
}
@media(max-width:400px) {
    .mobile-brand,.mobile-brand .brand-wordmark { width:120px; }
}

/* Private safety tools and community review. */
.content-safety-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px 19px; margin-top:20px; }
.content-safety-link { color:#79886f; font-size:11px; line-height:1.6; text-decoration:underline; text-underline-offset:3px; padding:7px 0; text-align:left; overflow-wrap:anywhere; }
.content-safety-link:hover { color:#294b3d; }
.profile-safety-actions { border-top:1px solid #e7ecdf; padding-top:12px; }
.business-safety-actions { margin:9px 0 0; }
.business-card .business-safety-actions { padding-bottom:3px; }
.message-footer { display:flex; align-items:center; justify-content:space-between; gap:22px; }
.message-footer .message-time { margin:0; }
.message-footer .content-safety-link { font-size:9px; color:#7a896e; line-height:1.3; padding:5px 0; }
.message-footer .content-safety-link:hover { color:#294b3d; }
.safety-private-note { color:#75866a; font-size:11px; line-height:1.7; margin:0; }
.block-effects { padding:17px 20px; background:#f2f5e9; border:1px solid #e3e9d5; border-radius:13px; margin-bottom:22px; font-size:12px; color:#526848; line-height:1.8; }
.block-effects ul { padding-left:18px; margin:0; }
.block-effects li+li { margin-top:7px; }
.block-effects p { margin:13px 0 0; }
.block-effects>p:first-child { margin:0; }
#block-title { overflow-wrap:anywhere; }
#block-dialog .dialog-actions { align-items:stretch; }
#block-dialog .button { flex:1; white-space:normal; }
.safety-center-dialog { max-width:620px; }
.safety-center-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:25px; }
.safety-center-toolbar .button { font-size:11px; min-height:38px; padding:9px 17px; }
.safety-center-toolbar .auth-text-button { font-size:11px; }
.safety-center-section+.safety-center-section { margin-top:29px; border-top:1px solid #e5ebda; padding-top:23px; }
.safety-center-section h3 { font-size:14px; color:#3e5a36; margin:0 0 13px; }
.safety-empty { padding:17px 0; font-size:12px; line-height:1.8; color:#7c8c70; margin:0; }
.safety-report-row { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:14px 0; border-bottom:1px solid #edf0e7; }
.safety-report-row>div { display:flex; flex-direction:column; gap:6px; min-width:0; }
.safety-report-row strong { color:#46603d; font-size:12px; overflow-wrap:anywhere; }
.safety-report-row strong span { color:#91a081; font-weight:400; }
.safety-report-row time { color:#849578; font-size:10px; }
.safety-status { display:inline-flex; align-items:center; justify-content:center; color:#856536; background:#f5eddc; padding:5px 9px; border-radius:15px; font-size:10px; line-height:1.5; white-space:nowrap; }
.safety-status.is-resolved { color:#557343; background:#e9f1df; }
.blocked-person { display:flex; align-items:center; gap:11px; padding:14px 0; border-bottom:1px solid #edf0e7; }
.blocked-person .mini-avatar { width:35px; height:35px; flex-shrink:0; }
.blocked-person strong { flex:1; min-width:0; color:#49623f; font-size:12px; overflow-wrap:anywhere; }
.blocked-person .button { min-height:37px; padding:8px 13px; font-size:10px; flex-shrink:0; }
#blocked-people>.safety-private-note { margin-top:15px; }
.admin-dialog { max-width:1000px; padding:32px; }
.admin-toolbar { display:flex; align-items:center; gap:18px; border-bottom:1px solid #e4ead9; padding:0 0 19px; margin-bottom:20px; }
#admin-dialog .admin-toolbar label { display:flex; flex-direction:row; align-items:center; gap:10px; font-size:11px; color:#6b7e5e; }
.admin-toolbar select { flex:none; width:170px; min-width:170px; height:39px; min-height:39px; max-height:39px; padding:8px 30px 8px 12px; font-size:12px; }
#admin-open-count { color:#8a997b; font-size:11px; margin-left:auto; }
.admin-layout { display:grid; grid-template-columns:240px minmax(0,1fr); gap:25px; min-height:280px; }
.admin-queue { min-width:0; border-right:1px solid #e4ead9; padding-right:20px; }
#admin-reports { display:flex; flex-direction:column; gap:8px; }
.admin-report-item { display:flex; flex-direction:column; text-align:left; gap:7px; border:1px solid #e6ecdc; border-radius:12px; padding:13px; width:100%; overflow-wrap:anywhere; }
.admin-report-item.is-selected { background:#edf4e4; border-color:#bdd09f; }
.admin-report-item:not(:disabled):hover { background:#f3f7ec; }
.admin-report-item>span { font-size:10px; line-height:1.5; color:#859476; }
.admin-report-item strong { color:#48623d; font-size:12px; line-height:1.6; }
.admin-report-item small { font-size:9px; color:#869a75; line-height:1.6; }
#admin-load-more { margin-top:15px; min-height:38px; font-size:10px; padding:8px 12px; }
.admin-report-detail { min-width:0; }
.admin-detail-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:15px; color:#8a9b7b; font-size:10px; }
.admin-report-detail h3 { font-family:Manrope,sans-serif; font-size:21px; line-height:1.4; margin:0 0 13px; color:#34552b; overflow-wrap:anywhere; }
.admin-report-detail h4 { font-size:12px; line-height:1.6; color:#546e46; margin:22px 0 12px; }
.admin-report-reason { font-size:12px; color:#6e835c; margin:0 0 8px; line-height:1.7; }
.admin-report-description { color:#7b8c6c; font-size:12px; line-height:1.8; white-space:pre-wrap; overflow-wrap:anywhere; margin:0 0 15px; }
.admin-content-status { border:1px solid #e4ead9; border-radius:9px; padding:9px 12px; font-size:10px; color:#6e835b; }
.admin-evidence-photo { display:block; width:100%; max-height:270px; object-fit:contain; object-position:left; border-radius:12px; margin-bottom:15px; background:#f2f5eb; }
.admin-evidence { padding:3px 15px; background:#f5f7ef; border:1px solid #e8eddf; border-radius:12px; margin:0 0 24px; }
.admin-evidence>div { padding:12px 0; border-bottom:1px solid #e6ecdc; }
.admin-evidence>div:last-child { border:0; }
.admin-evidence dt { text-transform:capitalize; color:#859771; font-size:10px; margin-bottom:6px; }
.admin-evidence dd { color:#4e6741; font-size:12px; line-height:1.8; white-space:pre-wrap; overflow-wrap:anywhere; margin:0; }
.admin-decision-actions { display:flex; flex-wrap:wrap; gap:9px; }
.admin-decision-actions .button { min-height:39px; font-size:10px; padding:9px 13px; }
.admin-confirmation { border:1px solid #c9d9b3; border-radius:13px; padding:18px; margin-top:20px; background:#eff5e6; }
.admin-confirmation h4 { margin:0 0 10px; font-size:15px; }
.admin-confirmation p { color:#647a52; font-size:12px; line-height:1.8; margin:0 0 15px; overflow-wrap:anywhere; }
.admin-confirm-note { white-space:pre-wrap; }
.admin-confirm-note strong { display:block; font-size:10px; margin-bottom:5px; }
.admin-confirmation .button { min-height:40px; font-size:11px; padding:10px 14px; }
#admin-dialog[aria-busy=true] { cursor:progress; }
@media(max-width:740px) {
    .admin-dialog { padding:27px 22px; }
    .admin-layout { grid-template-columns:minmax(0,1fr); gap:23px; }
    .admin-queue { border:0; border-bottom:1px solid #e4ead9; padding:0 0 20px; }
    #admin-reports { max-height:235px; overflow-y:auto; overscroll-behavior:contain; padding-right:4px; }
    .admin-report-item { padding:11px 12px; gap:5px; }
    .admin-toolbar { gap:10px; flex-wrap:wrap; }
    #admin-dialog .admin-toolbar label { flex:1 1 100%; min-width:0; }
    .admin-toolbar select { flex:1 1 auto; width:170px; }
    #admin-open-count { margin:0; }
    .admin-report-detail h3 { font-size:19px; }
    .admin-confirmation .dialog-actions { flex-direction:column; }
    .admin-confirmation .button { width:100%; }
}
@media(max-width:400px) {
    .safety-report-row { align-items:flex-start; flex-direction:column; gap:8px; }
    #admin-dialog .admin-toolbar label { width:100%; flex-basis:100%; }
    #admin-open-count { flex:1; }
    #block-dialog .dialog-actions { flex-direction:column; }
    #block-dialog .button { flex:none; width:100%; }
    .admin-decision-actions .button { flex:1 1 100%; }
}
.admin-previous-decision { padding:12px 14px; margin-top:12px; border-left:3px solid #c4d5ae; background:#f4f7ed; }
.admin-previous-decision strong { font-size:10px; color:#799066; }
.admin-previous-decision p { font-size:12px; color:#526b45; line-height:1.8; white-space:pre-wrap; overflow-wrap:anywhere; margin:7px 0 0; }

/* Group attachments and explicit foreground location sharing. */
.chat-attach-button { display:grid; place-items:center; width:36px; height:37px; flex-shrink:0; border-radius:8px; color:#58734a; }
.chat-attach-button:hover { background:#edf3e3; }
.chat-attach-button .icon { width:19px; height:19px; }
.chat-attach-dialog { max-width:510px; }
.chat-attach-options { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:20px; }
.chat-attach-options>button { display:flex; align-items:center; gap:11px; text-align:left; padding:14px 11px; border:1px solid #e1e9d7; border-radius:12px; color:#426034; background:#f8faf4; }
.chat-attach-options>button:hover { background:#eef5e3; }
.chat-attach-options>button>.icon { flex-shrink:0; width:21px; height:21px; }
.chat-attach-options span { font-size:12px; font-weight:650; line-height:1.6; }
.chat-attach-options small { display:block; color:#819371; font-size:10px; font-weight:400; }
.chat-attachment-help,.chat-location-note { color:#7b8c6c; font-size:11px; line-height:1.7; margin:17px 0 0; }
.chat-location-note { margin:0 0 20px; }
.visually-hidden-input { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); opacity:0; }
.chat-attachment-preview { display:flex; align-items:center; gap:12px; padding:10px; border:1px solid #e0e9d5; border-radius:10px; background:#f6f9f0; margin-bottom:10px; min-width:0; }
.chat-attachment-preview>img,.chat-attachment-preview>video { width:72px; max-height:78px; object-fit:contain; border-radius:7px; background:#e5ecd9; }
.chat-attachment-preview>audio { width:min(230px,65%); height:36px; }
.chat-attachment-copy { min-width:0; flex:1; font-size:11px; color:#4c6841; }
.chat-attachment-copy strong,.chat-attachment-copy span { display:block; overflow-wrap:anywhere; }
.chat-attachment-copy span { color:#829473; font-size:10px; margin-top:3px; }
.chat-remove-attachment { flex-shrink:0; padding:7px; font-size:11px; text-decoration:underline; color:#6c7d5e; }
.chat-recording { display:flex; align-items:center; flex-wrap:wrap; gap:10px; background:#fff3eb; color:#86563f; border-radius:9px; padding:10px 12px; font-size:11px; margin-bottom:10px; }
.chat-recording button { padding:5px 8px; border:1px solid #ddc3b4; border-radius:6px; background:#fffaf6; }
.recording-dot { width:8px; height:8px; background:#bc6549; border-radius:50%; }
.chat-media { display:block; max-width:100%; border-radius:9px; margin:5px 0; }
img.chat-media { width:auto; max-width:min(340px,100%); max-height:330px; object-fit:contain; }
video.chat-media { width:320px; max-height:300px; background:#172117; }
audio.chat-media { width:280px; height:42px; }
.chat-location-card { display:flex; flex-direction:column; align-items:flex-start; gap:6px; min-width:0; max-width:290px; white-space:normal; border-radius:9px; padding:11px; background:#f3f7ed; border:1px solid #dce7d0; margin:5px 0; }
.chat-location-card strong { font-size:12px; line-height:1.6; }
.chat-location-card span,.chat-location-card small { font-size:10px; color:#7b8c6d; line-height:1.65; }
.chat-location-card a { font-size:11px; text-decoration:underline; text-underline-offset:3px; color:#436532; }
.chat-location-card button { font-size:11px; padding:7px 9px; border-radius:6px; color:#865643; background:#fff8f1; border:1px solid #e6d1c3; }
.live-sharing-banner { margin:16px 38px 0; padding:8px 14px; border:1px solid #adc297; background:#f2f9e9; border-radius:12px; }
.live-sharing-row { display:flex; align-items:center; gap:10px; padding:7px 0; }
.live-sharing-row+ .live-sharing-row { border-top:1px solid #dce8d1; }
.live-sharing-row>span { min-width:0; flex:1; font-size:11px; color:#4d6a3f; }
.live-sharing-row strong,.live-sharing-row small { display:block; }
.live-sharing-row small { margin-top:4px; color:#7f926d; font-size:10px; }
.live-sharing-row button { flex-shrink:0; padding:8px 10px; border-radius:7px; color:white; background:#36583e; font-size:11px; }
@media(max-width:740px) { .live-sharing-banner { margin:12px 18px 0; padding:7px 11px; } .chat-attachment-preview { gap:8px; } .chat-attachment-preview>img,.chat-attachment-preview>video { width:55px; max-height:58px; } .chat-attachment-preview>audio { width:160px; max-width:60%; } }
@media(max-width:400px) { .chat-attach-options { grid-template-columns:1fr; } .chat-attach-options>button { padding:10px; } .chat-attach-options small { display:inline; margin-left:5px; } .message-form { gap:4px; } .chat-attach-button { width:30px; } .chat-attachment-preview { flex-wrap:wrap; } .chat-attachment-copy { flex-basis:70px; } .chat-location-card { padding:9px; } }

/* Familiar chat gestures and compact Who’s Out conversation controls. */
.chat-active { position:relative; }
.chat-header { min-height:72px; padding-block:13px; }
.chat-state-notice { padding-block:7px; font-size:9px; }
.chat-history { background-color:#f2f5eb; background-image:radial-gradient(#c7d5b43d .8px,transparent .8px); background-size:18px 18px; padding:19px 22px 16px; }
.message-row { margin-bottom:9px; touch-action:pan-y; }
.message-bubble { position:relative; max-width:85%; padding:8px 12px 5px; border:0; box-shadow:0 1px 2px #31503212; border-radius:14px 14px 14px 4px; font-size:13px; line-height:1.55; white-space:normal; }
.message-bubble>p { white-space:pre-wrap; margin:0; }
.message-row.outgoing .message-bubble { background:#e1edcf; border-radius:14px 14px 4px 14px; }
.message-author { font-size:10px; font-weight:700; color:#6b8a4d; margin-bottom:3px; }
.message-row.outgoing .message-author { display:none; }
.message-footer { justify-content:flex-end; align-items:center; gap:4px; margin:1px -3px 0 8px; }
.message-time { margin:0; font-size:9px; color:#91a07e; }
.message-accepted { display:inline-flex; color:#6f9156; }
.message-accepted .icon { width:13px; height:13px; stroke-width:2; }
.message-menu-button { display:grid; place-items:center; width:25px; height:23px; color:#82956f; opacity:.72; border-radius:6px; }
.message-menu-button:hover,.message-menu-button:focus-visible { opacity:1; background:#a9bd8e24; }
.message-menu-button .icon { width:15px; height:15px; }
.chat-date-separator { display:flex; justify-content:center; padding:9px 0 16px; pointer-events:none; }
.chat-date-separator time { border-radius:12px; padding:4px 11px; background:#d9e3cebb; color:#657a54; font-size:10px; line-height:1.5; }
.message-quote { display:block; width:100%; text-align:left; padding:6px 9px; margin:1px 0 7px; border-left:3px solid #8aa96d; background:#93b16b13; border-radius:4px 7px 7px 4px; max-width:290px; }
.message-quote strong,.message-quote span { display:block; font-size:10px; line-height:1.5; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.message-quote strong { color:#668749; font-weight:700; }
.message-quote span { color:#7d8f6b; max-width:100%; }
.message-quote:disabled { cursor:default; }
.message-highlight .message-bubble { outline:2px solid #9db877; outline-offset:3px; }
.message-compose-wrap { position:relative; padding:12px 16px 8px; background:#f6f8f1; border-top:1px solid #e5ebdc; }
.message-form { border:0; border-radius:25px; background:#fff; box-shadow:0 1px 5px #34572e0d; padding:5px 5px 5px 9px; align-items:flex-end; gap:5px; }
.message-form:focus-within { box-shadow:0 0 0 1px #c5d5b6,0 2px 8px #31512d0b; }
#message-input { min-height:40px; max-height:120px; padding:11px 2px 9px; font-size:13px; line-height:1.5; }
.chat-attach-button,.chat-emoji-button { display:grid; place-items:center; flex-shrink:0; width:31px; height:40px; border-radius:50%; color:#96a28a; }
.chat-attach-button .icon,.chat-emoji-button .icon { width:21px; height:21px; }
.chat-attach-button:hover,.chat-emoji-button:hover { background:#f1f6e9; color:#547345; }
.send-message { width:42px; height:42px; border-radius:50%; background:#52764b; color:#fff; transition:background .15s,transform .15s; touch-action:none; user-select:none; -webkit-user-select:none; }
.send-message .icon { width:21px; height:21px; }
.send-message[data-mode=mic]:hover { background:#638958; }
.send-message[data-mode=recording] { background:#b86c59; transform:scale(1.07); }
.send-message[data-mode=recording].is-cancelling { background:#98513f; }
.send-message[data-mode=opening] { animation:record-pulse 1s infinite; }
.message-compose-help { font-size:8px; margin-top:6px; padding:0 12px; }
.chat-reply-preview { display:flex; align-items:center; gap:10px; padding:8px 9px 8px 12px; margin:0 2px 9px; border-left:3px solid #86a762; background:#eaf1df; border-radius:4px 10px 10px 4px; }
.chat-reply-preview>.icon { width:20px; height:20px; color:#83a062; flex-shrink:0; }
.chat-reply-preview>span { min-width:0; flex:1; }
.chat-reply-preview strong,.chat-reply-preview small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; line-height:1.5; font-size:10px; }
.chat-reply-preview strong { color:#5f7c43; }
.chat-reply-preview small { color:#8b9b77; font-size:11px; }
.chat-reply-preview button { flex-shrink:0; width:28px; height:28px; border-radius:50%; color:#899c76; }
.chat-reply-preview button .icon { width:16px; height:16px; }
.chat-recording { gap:8px; flex-wrap:nowrap; background:#fff; border:1px solid #e7e9e1; color:#b36653; border-radius:18px; padding:10px 11px; margin-bottom:9px; min-height:49px; }
.chat-recording button { display:flex; align-items:center; gap:5px; padding:6px; border:0; background:transparent; color:#a36553; font-size:10px; }
.chat-recording button .icon { width:18px; height:18px; }
#chat-recording-status { font-variant-numeric:tabular-nums; font-size:12px; white-space:nowrap; }
#chat-record-instruction { flex:1; font-size:9px; line-height:1.5; color:#a19d90; }
.recording-dot { width:6px; height:6px; flex-shrink:0; animation:record-pulse 1s infinite; }
.recording-wave { display:flex; align-items:center; gap:2px; height:22px; }
.recording-wave i { display:block; width:2px; height:6px; background:#b8c8a5; border-radius:1px; animation:record-wave .9s ease-in-out infinite alternate; }
.recording-wave i:nth-child(2n) { height:16px; animation-delay:.3s; }
.recording-wave i:nth-child(3n) { height:10px; animation-delay:.6s; }
.chat-new-messages { position:absolute; right:18px; bottom:var(--chat-composer-height,100px); display:grid; place-items:center; width:37px; height:37px; border-radius:50%; padding:0; margin:0; background:#fff; color:#80966b; border:1px solid #e0e8d5; box-shadow:0 2px 8px #36542c13; z-index:2; }
.chat-new-messages .icon { width:19px; height:19px; }
.chat-new-messages>span { display:none; position:absolute; top:-10px; padding:2px 5px; background:#60854e; color:#fff; font-size:8px; border-radius:7px; }
.chat-new-messages.has-new>span { display:block; }
.chat-attach-dialog,.chat-emoji-dialog,.message-actions-dialog { position:fixed; inset:auto; margin:0; width:326px; max-width:calc(100vw - 24px); padding:20px 16px 14px; border-radius:18px; box-shadow:0 8px 38px #1e382322; }
.chat-attach-dialog::backdrop,.chat-emoji-dialog::backdrop,.message-actions-dialog::backdrop { background:#1e37200a; backdrop-filter:none; }
.chat-attach-dialog h2,.chat-emoji-dialog h2,.message-actions-dialog h2 { font-size:13px; letter-spacing:0; margin:0 25px 15px 1px; color:#657d52; }
.chat-attach-dialog .dialog-close,.chat-emoji-dialog .dialog-close,.message-actions-dialog .dialog-close { top:9px; right:9px; width:27px; height:27px; }
.chat-attach-options { grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px 7px; margin:0; }
.chat-attach-options>button { flex-direction:column; gap:7px; padding:0; background:none; border:0; border-radius:12px; align-items:center; text-align:center; }
.chat-attach-options>button:hover { background:#f1f6e9; }
.chat-attach-options>button>span:not(.attachment-disc) { font-size:10px; font-weight:500; color:#718360; line-height:1.45; }
.attachment-disc { display:grid; place-items:center; width:49px; height:49px; border-radius:50%; color:#fff; }
.attachment-disc>.icon { width:24px; height:24px; }
.photo-disc { background:#9bab76; } .video-disc { background:#8e9ab5; } .voice-disc { background:#b491aa; } .audio-disc { background:#c89479; } .location-disc { background:#78a493; } .live-disc { background:#7a9da8; }
.chat-attachment-help { font-size:9px; text-align:center; margin:16px 0 0; color:#9aa78b; }
.chat-sheet-handle { display:none; }
.chat-emoji-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:4px; }
.chat-emoji-grid button { min-height:38px; border-radius:8px; font-size:24px; }
.chat-emoji-grid button:hover,.chat-emoji-grid button:focus-visible { background:#edf4e3; }
.message-actions-dialog { width:235px; padding:14px 10px 9px; }
.message-actions-dialog h2 { margin:3px 30px 4px 8px; font-size:12px; }
#message-action-excerpt { font-size:10px; color:#9ca78f; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin:0 8px 9px; }
.message-actions-dialog>button:not(.dialog-close) { display:flex; align-items:center; gap:12px; width:100%; text-align:left; border-radius:9px; padding:10px; font-size:12px; color:#566f46; }
.message-actions-dialog>button:not(.dialog-close):hover { background:#f0f5e8; }
.message-actions-dialog>button>.icon { width:18px; height:18px; }
#message-action-report { color:#a07761; }
.message-row.is-swiping .message-bubble { transition:none; }
.message-row:not(.is-swiping) .message-bubble { transition:transform .16s; }
@keyframes record-pulse { 50% { opacity:.55; } }
@keyframes record-wave { to { transform:scaleY(.45); } }
@media(max-width:740px) {
 .chat-history { padding:14px 12px; } .message-bubble { max-width:91%; padding:8px 10px 4px; }
 .chat-header { min-height:64px; padding:12px 14px; } .message-compose-wrap { padding:10px 9px 6px; }
 .chat-attach-dialog,.chat-emoji-dialog,.message-actions-dialog { inset:auto 0 0!important; width:100%; max-width:100%; max-height:80dvh; border-radius:22px 22px 0 0; padding:24px 20px calc(20px + env(safe-area-inset-bottom)); }
 .chat-attach-dialog::backdrop,.chat-emoji-dialog::backdrop,.message-actions-dialog::backdrop { background:#20361c45; }
 .chat-sheet-handle { display:block; position:absolute; top:8px; left:calc(50% - 18px); width:36px; height:4px; border-radius:2px; background:#d4dec9; }
 .chat-attach-dialog h2,.chat-emoji-dialog h2,.message-actions-dialog h2 { font-size:14px; margin-bottom:19px; }
 .chat-attach-options { gap:20px 11px; } .attachment-disc { width:57px; height:57px; } .chat-attach-options>button>span:not(.attachment-disc) { font-size:11px; }
 .chat-emoji-grid button { min-height:44px; } .message-actions-dialog>button:not(.dialog-close) { padding:13px 8px; }
 .message-compose-help>span { display:none; }
}
@media(max-width:360px) { .chat-emoji-button { width:26px; } .chat-attach-button { width:28px; } .message-form { gap:2px; padding-left:5px; } #message-input { font-size:12px; } .recording-wave { display:none; } #chat-record-stop span { display:none; } .chat-recording { gap:6px; } }
@media(prefers-reduced-motion:reduce) { .recording-dot,.recording-wave i,.send-message[data-mode=opening] { animation:none; } .message-row .message-bubble,.send-message { transition:none; } }

/* Private listing management and business review. */
.owned-business-section { margin:0 0 38px; padding-bottom:30px; border-bottom:1px solid var(--line); }
.owned-business-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:18px; }
.owned-business-heading h2 { margin:0 0 7px; font-size:22px; letter-spacing:-.6px; }
.owned-business-heading p { margin:0; color:#738366; font-size:12px; line-height:1.7; }
.owned-business-heading .button { font-size:11px; min-height:42px; flex-shrink:0; }
.owned-business-grid { display:grid; gap:14px; }
.owned-business-card { display:flex; align-items:flex-start; gap:19px; padding:20px; background:#fff; border:1px solid #e2e8d9; border-radius:15px; }
.owned-business-card>img { width:112px; height:112px; aspect-ratio:1; object-fit:cover; border-radius:10px; flex-shrink:0; }
.owned-business-content { min-width:0; flex:1; overflow-wrap:anywhere; }
.owned-business-content h3 { font-size:17px; line-height:1.5; margin:8px 0 5px; }
.owned-business-content>p { color:#76866a; font-size:12px; line-height:1.8; margin:0; }
.owned-business-content>.owned-business-visibility { margin-top:7px; font-size:11px; }
.business-review-status { display:inline-flex; padding:5px 9px; border-radius:15px; color:#886732; background:#f5eddc; font-size:10px; line-height:1.5; }
.business-review-status.is-approved { color:#54713f; background:#e9f1df; }
.business-review-status.is-rejected { color:#98532e; background:#faecdf; }
.business-review-status.is-removed { color:#71746b; background:#eff0eb; }
.business-review-feedback { border-left:3px solid #d4dcbf; background:#f6f8f1; margin:12px 0 0; padding:10px 13px; }
.business-review-feedback strong { color:#7b8c68; font-size:10px; }
.business-review-feedback p { color:#526b45; font-size:12px; line-height:1.8; white-space:pre-wrap; margin:5px 0 0; }
.owned-business-actions { display:flex; align-items:center; flex-wrap:wrap; gap:16px; margin-top:13px; }
.owned-business-actions .button { font-size:11px; min-height:40px; padding:9px 13px; }
.owned-business-actions .content-safety-link { min-height:40px; }
#business-review-dialog .admin-toolbar label { display:flex; flex-direction:row; align-items:center; gap:10px; font-size:11px; color:#6b7e5e; }
#business-review-pending-count { margin-left:auto; color:#80916f; font-size:11px; }
#business-review-items { display:flex; flex-direction:column; gap:8px; }
#business-review-load-more { margin-top:15px; min-height:40px; font-size:11px; padding:8px 12px; }
.business-review-cover { display:block; width:min(100%,260px); height:auto; aspect-ratio:1; object-fit:cover; border-radius:12px; margin-bottom:20px; }
.business-review-warning, .business-review-duplicates { border:1px solid #e8d4ac; border-radius:12px; background:#fff9ed; padding:14px; margin:16px 0; color:#80663b; font-size:12px; line-height:1.8; overflow-wrap:anywhere; }
.business-review-duplicates h4 { margin:0 0 6px; color:#7b6033; }
.business-review-duplicates p { margin:0 0 10px; font-size:11px; }
.business-review-duplicates ul { margin:0; padding-left:18px; }
.business-review-duplicates li+li { margin-top:14px; }
.business-review-duplicates strong, .business-review-duplicates span, .business-review-duplicates a { display:block; }
.business-review-duplicates span { font-size:11px; }
.business-review-duplicates a, #business-review-detail .admin-evidence a { text-decoration:underline; text-underline-offset:3px; }
#business-review-form { margin-top:20px; }
@media(max-width:740px) {
    .owned-business-heading { align-items:flex-start; flex-wrap:wrap; gap:12px; }
    .owned-business-card { gap:14px; padding:16px; }
    .owned-business-card>img { width:72px; height:72px; }
    .owned-business-content h3 { font-size:16px; }
    #business-review-dialog .admin-toolbar label { flex:1 1 100%; min-width:0; }
    #business-review-pending-count { margin-left:0; }
    #business-review-items { max-height:230px; overflow-y:auto; overscroll-behavior:contain; padding-right:4px; }
}
@media(max-width:400px) {
    .owned-business-card { gap:11px; padding:13px; }
    .owned-business-card>img { width:54px; height:54px; }
    .owned-business-actions { gap:6px 12px; }
    .owned-business-actions .button { width:100%; }
    #business-remove-dialog .dialog-actions { flex-direction:column; }
    #business-remove-dialog .button { width:100%; }
}

/* Meeting places complement the people-led plan feed. */
.find-meeting-place,.places-back-link { display:inline-flex; align-items:center; gap:7px; font-size:12px; color:#708660; text-decoration:none; }
.find-meeting-place { margin:0 0 22px; }
.find-meeting-place:hover,.places-back-link:hover { color:var(--forest); text-decoration:underline; text-underline-offset:4px; }
.find-meeting-place .icon,.places-back-link .icon { width:17px; height:17px; }
.places-section,.place-section { padding-top:12px; }
.top-places-section { min-width:0; margin:34px 0; padding:25px 24px 18px; border:1px solid #d4e0c2; border-radius:24px; background:#edf3e3; }
.top-places-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.top-places-heading h2 { margin:0; color:#244834; font-size:28px; line-height:1.2; letter-spacing:-.8px; }
.top-places-heading h2::before { content:""; display:block; width:42px; height:5px; margin-bottom:13px; border-radius:3px; background:#a9cd71; }
.top-places-heading p { margin:7px 0 0; color:#5f6d58; font-size:12px; line-height:1.6; }
.top-places-all { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:0 13px; flex-shrink:0; border:1px solid #c9d8b8; border-radius:10px; background:#f8fbf3; color:var(--forest); font-size:13px; font-weight:650; text-decoration:none; }
.top-places-all .icon { width:17px; height:17px; }
.top-places-grid { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 32px) / 3); align-items:start; gap:16px; min-width:0; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:none; padding:3px 0 12px; }
.top-places-grid::-webkit-scrollbar { display:none; }
.top-places-grid[data-count="1"] { grid-auto-columns:min(100%,360px); }
.top-places-grid:focus-visible { outline:2px solid var(--forest); outline-offset:4px; border-radius:14px; }
.top-place-card { min-width:0; overflow:hidden; scroll-snap-align:start; border:1px solid #d6e2cd; border-radius:17px; background:#fff; box-shadow:0 5px 10px #29422d0d; }
.top-place-photo { display:block; aspect-ratio:1; overflow:hidden; background:#e9efdf; }
.top-place-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.top-place-body { padding:15px; }
.top-place-meta { margin:0 0 6px; color:#65735f; font-size:11px; line-height:1.4; }
.top-place-body h3 { margin:0; font-size:19px; letter-spacing:-.35px; line-height:1.3; min-height:50px; overflow-wrap:anywhere; }
.top-place-body h3 a { display:flex; align-items:center; min-height:44px; color:var(--ink); text-decoration:none; }
.top-place-activity { margin:8px 0 13px; color:#536a49; font-size:12px; line-height:1.5; }
.top-place-body>.button { width:100%; min-height:44px; padding:10px; gap:7px; border:1px solid #2f5140; background:#2f5140; color:#fff; font-size:12px; }
.top-place-body>.button:focus-visible,.top-places-all:focus-visible { outline:3px solid #597c3d; outline-offset:3px; }
.top-place-body>.button .icon { width:17px; height:17px; }
.top-place-body .place-gallery-credits { margin:8px -3px -8px; }
.top-place-body .place-gallery-credits summary { display:flex; align-items:center; min-height:44px; padding:0 3px; font-size:10px; }
.top-places-navigation { display:flex; justify-content:flex-end; gap:8px; margin-top:12px; }
.top-places-navigation button { display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid #dce4d3; border-radius:50%; color:var(--forest); background:#fff; cursor:pointer; }
.top-places-navigation button .icon { width:19px; height:19px; }
.top-places-navigation button:disabled { opacity:.35; cursor:default; }
@media(hover:hover) {
  .top-place-body>.button:hover { background:#244331; border-color:#244331; }
  .top-places-all:hover { background:#fff; border-color:#9fb58d; }
}
@media(max-width:1000px) {
  .top-places-grid { grid-auto-columns:calc((100% - 16px) / 2.3); }
}
@media(max-width:600px) {
  .top-places-section { margin:26px -6px; padding:18px 13px 12px; border-radius:20px; }
  .top-places-heading { flex-wrap:wrap; gap:3px 12px; margin-bottom:13px; }
  .top-places-heading h2 { font-size:24px; max-width:290px; }
  .top-places-heading h2::before { margin-bottom:11px; }
  .top-places-heading p { max-width:300px; font-size:12px; }
  .top-places-all { margin-top:8px; margin-left:auto; font-size:12px; }
  .top-places-grid { grid-auto-columns:82%; }
  .top-place-body { padding:13px; }
  .top-place-body h3 { font-size:18px; }
  .top-places-navigation { margin-top:8px; }
}
.places-back-link { margin-bottom:27px; }
.places-heading,.places-plans-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:27px; }
.places-heading h1,.place-hero h1 { margin:8px 0 12px; color:#2e4d30; font-size:38px; line-height:1.2; letter-spacing:-1.6px; overflow-wrap:anywhere; }
.places-heading p,.places-plans-heading p { margin:0; font-size:13px; line-height:1.8; color:#778770; }
.places-filters { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr); gap:14px; padding:20px; background:#f3f6ec; border:1px solid #e3e9d9; border-radius:15px; }
.places-filters label,.venue-picker-search { display:flex; flex-direction:column; gap:8px; min-width:0; font-size:11px; color:#617653; }
.places-filters input,.places-filters select { width:100%; min-width:0; height:44px; padding:10px 12px; background:#fff; border:1px solid #dae3d0; border-radius:9px; font:inherit; font-size:12px; color:#3b5736; }
.places-count { color:#7e8d72; font-size:12px; margin:23px 0 15px; }
.places-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.place-card { min-width:0; overflow:hidden; border:1px solid #e0e7d7; border-radius:17px; background:#fff; }
.place-card-photo { display:block; aspect-ratio:1; }
.place-card-photo img { display:block; width:100%; height:100%; aspect-ratio:1; object-fit:cover; }
.place-card-body { padding:19px; overflow-wrap:anywhere; }
.place-card-body h2 { font-size:20px; line-height:1.4; margin:13px 0 10px; letter-spacing:-.6px; }
.place-card-body h2 a { color:#35512f; text-decoration:none; }
.place-card-body p { display:flex; gap:8px; color:#78896d; font-size:12px; line-height:1.8; margin:0 0 18px; }
.place-card-body p .icon { width:17px; height:17px; flex-shrink:0; margin-top:2px; }
.place-details-link { display:flex; align-items:center; gap:8px; color:#526e41; text-decoration:none; font-size:12px; font-weight:600; }
.place-details-link .icon { width:16px; height:16px; }
.place-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px; align-items:start; }
.place-hero-cover { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; border-radius:19px; }
.place-hero-content { min-width:0; padding:8px 0; overflow-wrap:anywhere; }
.place-address { display:flex; gap:9px; font-size:13px; color:#78876a; line-height:1.8; margin:17px 0; }
.place-address>.icon { width:19px; height:19px; flex-shrink:0; margin-top:3px; }
.place-description { font-size:14px; line-height:1.9; color:#65765c; white-space:pre-line; margin-bottom:21px; }
.place-hero-content>.business-website { margin-bottom:22px; }
.place-hero-content>.button { display:flex; width:100%; margin:7px 0 12px; }
.place-hero-content>.field-help { line-height:1.8; font-size:11px; }
.place-upcoming { margin-top:40px; padding-top:28px; border-top:1px solid var(--line); }
.places-plans-heading h2 { font-size:23px; letter-spacing:-.6px; margin:0 0 7px; }
.place-plans-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
#place-load-more { display:flex; margin:24px auto 0; }
.plan-meeting-at { display:flex; gap:6px; font-size:11px; color:#728164; line-height:1.65; margin:9px 0; overflow-wrap:anywhere; }
.plan-meeting-at>.icon { width:15px; height:15px; flex-shrink:0; margin-top:1px; }
.plan-meeting-at a { color:#536f41; text-decoration:underline; text-underline-offset:3px; }
.plan-meeting-at small { display:block; font-size:inherit; margin-top:4px; }
.detail-meta .plan-meeting-at.is-detail { margin:0; font-size:13px; }
.card-host { color:#7d8b71; font-size:11px; line-height:1.6; margin:9px 0 4px; }
.card-host strong { color:#4b653e; font-weight:600; }
.venue-picker-fieldset { border:1px solid #dee7d2; border-radius:12px; padding:16px; margin:20px 0; min-width:0; }
.venue-picker-fieldset legend { color:#506a40; font-size:12px; font-weight:600; padding:0 6px; }
.venue-picker-heading { display:flex; align-items:center; flex-wrap:wrap; justify-content:space-between; gap:8px; margin-bottom:14px; }
.venue-picker-heading p { margin:0; color:#7d8d6e; font-size:11px; line-height:1.7; }
.venue-picker-heading .text-button { min-height:36px; font-size:11px; }
.venue-picker-results { display:flex; flex-direction:column; gap:8px; max-height:256px; overflow-y:auto; overscroll-behavior:contain; margin:12px 0; padding-right:3px; }
.venue-picker-option { display:flex; align-items:center; text-align:left; gap:11px; width:100%; min-width:0; border:1px solid #e0e7d7; border-radius:10px; padding:10px; background:#fff; }
.venue-picker-option:hover,.venue-picker-option:focus-visible { background:#eff5e6; border-color:#aabd90; }
.venue-picker-option>img { width:57px; height:57px; aspect-ratio:1; object-fit:cover; border-radius:8px; flex-shrink:0; }
.venue-picker-option>span { display:flex; flex-direction:column; gap:4px; flex:1; min-width:0; overflow-wrap:anywhere; font-size:11px; line-height:1.5; color:#6c805c; }
.venue-picker-option strong { font-size:12px; color:#405c33; }
.venue-picker-option small { font-size:10px; color:#839573; }
.venue-picker-option>.icon { width:17px; height:17px; flex-shrink:0; }
.selected-venue-summary { display:flex; align-items:center; gap:12px; min-width:0; }
.selected-venue-summary>img { width:64px; height:64px; aspect-ratio:1; object-fit:cover; border-radius:9px; }
.selected-venue-summary>div { flex:1; min-width:0; overflow-wrap:anywhere; }
.selected-venue-summary strong { display:block; color:#435e36; font-size:13px; line-height:1.7; }
.selected-venue-summary span,.selected-venue-summary small { display:block; color:#82916f; font-size:11px; line-height:1.8; }
.selected-venue-summary .text-button { font-size:11px; min-height:44px; }
.selected-venue-summary+#venue-picker-browse:not([hidden]) { margin-top:18px; padding-top:14px; border-top:1px solid #e5eadc; }
.custom-venue-fields { border-top:1px solid #e2e8d8; padding-top:14px; margin-top:14px; }
.custom-venue-fields label:last-child { margin-bottom:0; }
@media(max-width:1100px) { .places-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .place-hero { gap:24px; } .place-hero h1 { font-size:31px; } }
@media(max-width:740px) {
    .places-heading h1 { font-size:30px; letter-spacing:-1px; }
    .places-filters { grid-template-columns:repeat(2,minmax(0,1fr)); padding:15px; gap:12px; }
    .places-filters>label:first-child { grid-column:1/-1; }
    .places-grid { gap:14px; }
    .place-card-body { padding:14px; }
    .place-card-body h2 { font-size:18px; }
    .place-hero { grid-template-columns:minmax(0,1fr); gap:19px; }
    .place-hero h1 { font-size:32px; }
    .place-upcoming { margin-top:28px; }
    .places-plans-heading { align-items:flex-start; }
    .places-plans-heading h2 { font-size:21px; }
    .place-plans-grid { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:480px) { .places-grid { grid-template-columns:minmax(0,1fr); } .venue-picker-fieldset { padding:12px; } .selected-venue-summary { gap:9px; flex-wrap:wrap; } .selected-venue-summary>img { width:52px; height:52px; } }

/* Community place suggestions share the reviewed directory. */
.places-heading-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; flex-shrink:0; }
.places-heading-actions .button { min-height:43px; padding:11px 16px; font-size:12px; gap:7px; }
.places-heading-actions .button .icon { width:16px; height:16px; }
.places-empty-actions { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:12px; }
.places-empty-actions .button { margin:0; }
.owned-suggestions-section { border:1px solid #e1e8d6; border-radius:15px; background:#f7f9f2; padding:20px; margin:0 0 25px; }
.owned-suggestions-section .owned-business-heading { margin-bottom:14px; }
.owned-suggestions-section .owned-business-heading h2 { font-size:19px; }
.owned-suggestions-section .safety-empty { margin:0; padding:8px 0 0; }
.community-place-label { display:inline-flex; align-items:center; padding:5px 0; margin-left:9px; font-size:10px; color:#809170; }
.place-source { display:flex; flex-direction:column; align-items:flex-start; gap:7px; margin:0 0 20px; }
.place-source small { font-size:10px; color:#89977a; line-height:1.6; }
#listing-name-label,#listing-description-label,#listing-website-label { display:block; }
@media(max-width:740px) {
    .places-heading { align-items:flex-start; flex-direction:column; gap:16px; }
    .places-heading-actions { width:100%; justify-content:space-between; }
    .owned-suggestions-section { padding:15px; }
    .owned-suggestions-section .owned-business-card { padding:12px; gap:10px; }
    .owned-suggestions-section .owned-business-card>img { width:54px; height:54px; }
    .places-empty-actions { flex-direction:column; }
}

/* Square photo galleries: native swipe, explicit controls, no automatic advance. */
.place-gallery-shell { width:100%; min-width:0; }
.place-gallery { position:relative; width:100%; min-width:0; aspect-ratio:1; overflow:hidden; background:#edf1e5; }
.place-gallery-track { display:flex; width:100%; height:100%; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.place-gallery-track::-webkit-scrollbar { display:none; }
.place-gallery-track:focus-visible { outline:3px solid #849e67; outline-offset:-3px; }
.place-gallery-slide { position:relative; margin:0; flex:0 0 100%; width:100%; height:100%; min-width:0; scroll-snap-align:start; scroll-snap-stop:always; overflow:hidden; }
.place-gallery-slide>img { display:block; width:100%; height:100%; aspect-ratio:1; object-fit:cover; user-select:none; -webkit-user-drag:none; }
.place-gallery-arrow { position:absolute; z-index:2; top:50%; transform:translateY(-50%); width:38px; height:38px; display:grid; place-items:center; border-radius:50%; background:rgba(255,255,255,.94); color:#34532b; box-shadow:0 2px 10px #18241720; }
.place-gallery-arrow.is-previous { left:10px; }
.place-gallery-arrow.is-next { right:10px; }
.place-gallery-arrow .icon { width:18px; height:18px; }
.place-gallery-arrow:disabled { opacity:.35; cursor:default; }
.place-gallery-arrow:focus-visible { outline:3px solid #3b6530; outline-offset:2px; }
.place-gallery-count { position:absolute; top:12px; right:12px; border-radius:15px; background:#18301bd6; color:#fff; font-size:11px; line-height:1.4; padding:5px 9px; pointer-events:none; }
.place-gallery-detail { border-radius:19px; }
.place-gallery-shell-business { width:calc(100% + var(--cover-inset)*2); margin:calc(-1 * var(--cover-inset)) calc(-1 * var(--cover-inset)) 22px; flex-shrink:0; }
.place-gallery-business { border-radius:16px 16px 0 0; }
.place-photo-caption { position:absolute; bottom:0; left:0; right:0; margin:0; padding:14px 12px 10px; background:linear-gradient(transparent,rgba(15,27,13,.78)); color:#fff; font-size:10px; line-height:1.5; overflow-wrap:anywhere; }
.place-photo-credit { display:flex; flex-wrap:wrap; gap:2px 8px; padding:9px 12px; color:#617652; font-size:10px; line-height:1.6; overflow-wrap:anywhere; }
.place-gallery-credits { padding:10px 15px; color:#7c8b70; font-size:10px; line-height:1.6; border-bottom:1px solid #edf0e7; overflow-wrap:anywhere; }
.place-gallery-shell-detail>.place-gallery-credits { padding:10px 2px; border-bottom:0; }
.place-gallery-credits>summary { width:fit-content; cursor:pointer; color:#78866f; }
.place-gallery-credits>summary:focus-visible { outline:2px solid #6f8b58; outline-offset:4px; border-radius:2px; }
.place-gallery-credits>ol { list-style:none; margin:13px 0 0; padding:0; display:grid; gap:13px; }
.place-gallery-credits li { min-width:0; }
.place-gallery-credits strong { display:block; color:#59724b; font-size:10px; margin-bottom:3px; font-weight:600; }
.place-photo-attribution { display:flex; flex-direction:column; gap:3px; }
.place-photo-attribution a { color:inherit; text-decoration:underline; text-underline-offset:2px; }
.place-photo-attribution a:focus-visible { outline:2px solid #6f8b58; outline-offset:2px; }
.place-photo-credit>span:first-child { max-width:100%; }
.place-photo-credit a { color:inherit; text-decoration:underline; text-underline-offset:2px; }
.place-photo-credit a:focus-visible { outline:2px solid #6f8b58; outline-offset:2px; }
.admin-place-photos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:0 0 20px; }
.admin-place-photos>figure { position:relative; min-width:0; margin:0; overflow:hidden; border:1px solid #e1e7d8; border-radius:11px; }
.admin-place-photos>figure>img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; }
.admin-place-photos .place-photo-credit { position:static; background:#f1f5e9; color:#617652; font-size:10px; }
.gallery-editor-preview { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:12px 0; }
.gallery-editor-item { min-width:0; margin:0; border:1px solid #dfe7d4; border-radius:11px; padding:8px; background:#fafcf6; }
.gallery-editor-image { position:relative; aspect-ratio:1; overflow:hidden; border-radius:7px; background:#eaf0df; }
.gallery-editor-image img { display:block; width:100%; height:100%; object-fit:cover; }
.gallery-cover-badge { position:absolute; bottom:7px; left:7px; background:#26472aed; border-radius:12px; color:white; font-size:9px; padding:4px 8px; }
.gallery-editor-item>figcaption { color:#758868; font-size:10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin:8px 0; }
.gallery-editor-actions { display:flex; flex-wrap:wrap; align-items:center; gap:5px; }
.gallery-editor-actions>button { display:grid; place-items:center; min-width:32px; min-height:34px; padding:5px; border:1px solid #dce5d0; border-radius:7px; background:white; color:#526d41; font-size:9px; }
.gallery-editor-actions>button .icon { width:15px; height:15px; }
.gallery-editor-actions>button:disabled { opacity:.35; }
.gallery-editor-actions>.gallery-make-cover { flex:1; min-width:65px; }
.gallery-editor-actions>.gallery-editor-remove { margin-left:auto; color:#9a6857; }
.gallery-editor-empty { grid-column:1/-1; display:flex; align-items:center; gap:16px; padding:13px; border:1px dashed #d7e1ca; border-radius:12px; }
.gallery-editor-empty>img { width:88px; height:88px; object-fit:cover; border-radius:9px; }
.gallery-editor-empty>p { color:#869777; font-size:11px; line-height:1.8; margin:0; }
.place-gallery-fieldset .media-photo-controls { flex-wrap:wrap; }
#business-gallery-count { font-size:10px; }
@media(max-width:400px) {
    .gallery-editor-preview { gap:8px; }
    .gallery-editor-item { padding:6px; }
    .gallery-editor-actions>button { min-width:31px; min-height:36px; }
    .gallery-editor-actions>.gallery-make-cover { order:4; flex-basis:100%; }
    .gallery-editor-empty { gap:12px; }
    .gallery-editor-empty>img { width:64px; height:64px; }
    .admin-place-photos { grid-template-columns:minmax(0,1fr); }
}

/* Account choices and public service information. */
.launch-settings-dialog { max-width: 640px; }
.launch-settings-section { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); }
.launch-settings-section h3 { margin: 0 0 10px; font-size: 19px; }
.launch-settings-section p { line-height: 1.6; color: #5e6962; font-size: 14px; }
.launch-settings-section form { display: grid; gap: 14px; margin-top: 16px; }
.launch-settings-section form > label:not(.launch-choice), #privacy-review-form > label { display: grid; gap: 7px; font-size: 13px; font-weight: 600; }
.launch-settings-section input:not([type=checkbox]), #privacy-review-form input, #privacy-review-form textarea, #privacy-review-form select, .launch-review-toolbar select { box-sizing: border-box; width: 100%; min-width: 0; padding: 12px; border: 1px solid #cbd4cb; border-radius: 10px; font: inherit; background: #fff; color: var(--ink); }
.launch-choice { display: flex; gap: 13px; align-items: flex-start; padding: 14px; border: 1px solid var(--line); border-radius: 12px; cursor: pointer; }
.launch-choice input { width: 20px; height: 20px; margin: 2px 0 0; flex: 0 0 20px; accent-color: var(--forest); }
.launch-choice strong, .launch-choice small { display: block; }
.launch-choice strong { font-size: 14px; }.launch-choice small { margin-top: 5px; font-size: 13px; line-height: 1.5; color: #5e6962; }
.launch-feedback, .launch-request-status { padding: 13px 15px; border-radius: 12px; background: #eef4e9; line-height: 1.6; font-size: 14px; }
.launch-response-note { white-space: pre-wrap; overflow-wrap: anywhere; }
.launch-policy-links { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 12px; }
.launch-policy-links a, .launch-auth-links a, .launch-settings-section a { color: var(--forest); text-decoration: underline; text-underline-offset: 3px; }
.launch-policy-links { margin-top: 20px; }.footer-meta .launch-policy-links { margin-top: 0; justify-content: flex-end; }
.launch-auth-links { font-size: 12px; line-height: 1.8; margin: 20px 0 0; text-align: center; }
.launch-review-toolbar { display: flex; flex-wrap: wrap; align-items: end; gap: 15px; margin: 22px 0; }
.launch-review-toolbar label { display: grid; gap: 6px; font-size: 13px; }
.launch-request-row { display: block; width: 100%; text-align: left; padding: 15px; margin: 8px 0; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--ink); cursor: pointer; overflow-wrap: anywhere; }
.launch-request-row span { display: block; font-size: 12px; margin-top: 7px; }.launch-request-row.is-selected { border-color: var(--forest); background: #f0f4ea; }
#privacy-review-form { display: grid; gap: 16px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }#privacy-review-form[hidden] { display: none; }
.launch-operations-status { margin-top: 24px; font-size: 14px; line-height: 1.7; }.launch-operations-status li { margin: 10px 0; }
.service-page { display: block; margin: 0; background: var(--paper); color: var(--ink); font: 16px/1.75 system-ui, sans-serif; }
.service-content { max-width: 760px; margin: 0 auto; padding: 40px 24px 60px; overflow-wrap: anywhere; }
.service-brand img { width: 190px; height: auto; display: block; }.service-content h1 { font-size: clamp(30px,6vw,44px); line-height: 1.2; margin: 46px 0 12px; letter-spacing: -1.4px; }.service-content h2 { font-size: 21px; margin: 34px 0 10px; line-height: 1.4; }.service-content p { margin: 12px 0; }.service-content a { color: var(--forest); text-underline-offset: 3px; }.service-updated { font-size: 13px; color: #69766d; }.service-notice { padding: 14px 18px; background: #f2f0e6; border-radius: 12px; font-size: 14px; }.service-contact { font-weight: 650; }.service-bottom { display: flex; flex-wrap: wrap; gap: 14px; justify-content: space-between; border-top: 1px solid var(--line); margin-top: 42px; padding-top: 22px; font-size: 13px; }
@media(max-width:540px) { .launch-settings-dialog { padding: 24px 20px; }.launch-settings-section .button { width: 100%; }.footer-meta .launch-policy-links { justify-content: flex-start; }.service-content { padding: 28px 22px 45px; }.launch-review-toolbar .button { min-height: 44px; } }

/* Inspiration is explicitly separate from current, joinable plans. */
.example-plans-section { margin-top: 42px; padding-top: 30px; border-top: 1px solid #dddcd0; }
.example-plans-heading { display: flex; gap: 13px; align-items: flex-start; margin-bottom: 22px; }
.example-section-icon { display: grid; place-items: center; flex: 0 0 37px; height: 37px; border-radius: 11px; background: #eeeadb; color: #6e6446; }
.example-section-icon .icon { width: 19px; height: 19px; }
.example-plans-heading h2 { margin: 0 0 7px; font-size: 22px; letter-spacing: -.6px; line-height: 1.3; }
.example-plans-heading p { color: #68705f; font-size: 12px; line-height: 1.7; max-width: 580px; margin: 0; }
.example-plan-card { border-color: #e3dfd0; }
.example-plan-badge { position: absolute; left: 12px; bottom: 12px; pointer-events: none; padding: 7px 10px; border-radius: 6px; background: #fff8e8; border: 1px solid #e5d7b4; color: #66512b; font-size: 11px; font-weight: 750; box-shadow: 0 2px 6px #00000014; }
.example-plan-disclaimer { margin: 0 0 11px; color: #775e35; font-size: 10px; font-weight: 650; line-height: 1.6; }
.example-plan-card .card-time { flex-wrap: wrap; color: #67715d; }
.example-plan-card .card-location { color: #77806c; align-items: flex-start; line-height: 1.6; }
.example-plan-card .card-location .icon { flex-shrink: 0; margin-top: 2px; }
.example-plan-purpose { color: #7a7e70; font-size: 11px; }
.example-detail-image { display: block; width: 100%; aspect-ratio: 1; height: auto; object-fit: cover; }
.example-detail-badge { display: inline-block; padding: 7px 11px; margin-bottom: 14px; background: #fff5df; border: 1px solid #e5d7b4; border-radius: 6px; color: #66512b; font-size: 12px; font-weight: 700; }
.example-detail-notice { padding: 14px 16px; border-radius: 10px; margin: 17px 0 20px; font-size: 13px; line-height: 1.7; background: #f8f3e7; color: #675b43; }
.example-detail-notice strong { display: block; margin-bottom: 5px; color: #564729; }
.example-detail-address { margin-top: 8px; color: #68755f; font-size: 12px; line-height: 1.6; }
.example-detail-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; margin: 0 0 24px; padding: 17px 0; border-top: 1px solid #edf0e7; border-bottom: 1px solid #edf0e7; }
.example-detail-facts dt { font-size: 11px; color: #6d785f; margin-bottom: 6px; }.example-detail-facts dd { margin: 0; color: #40523a; font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
.example-detail-footnote { color: #6c7860; font-size: 11px; line-height: 1.7; margin: 12px 0 0; }
@media(max-width:540px) { .example-plans-section { margin-top: 30px; padding-top: 24px; }.example-plans-heading h2 { font-size: 20px; }.example-detail-dialog .detail-body { padding: 23px 20px; }.example-detail-dialog .button { width: 100%; }.example-detail-facts { gap: 12px; } }

/* Clearer browsing hierarchy: concise introductions, grouped facts, visible actions. */
.sidebar-content { margin-top:38px; }
.topbar { min-height:82px; }
.intro { grid-template-columns:minmax(0,1fr) minmax(260px,.85fr); gap:28px; padding-bottom:26px; }
.intro h1 { font-size:42px; line-height:1.12; letter-spacing:-1.7px; }
.intro-copy>p { font-size:14px; line-height:1.6; margin-top:14px; }
.free-card { display:flex; align-items:center; gap:12px; padding:19px; max-width:380px; border-radius:14px; }
.free-card .bolt-badge { flex-shrink:0; width:32px; height:32px; }
.free-card h2 { margin:0; font-size:18px; line-height:1.35; white-space:nowrap; letter-spacing:-.4px; }
.free-card .button { margin:0 0 0 auto; width:auto; min-height:44px; flex-shrink:0; gap:12px; padding:10px 13px; }
.find-meeting-place { margin:0 0 16px; min-height:36px; font-size:13px; }
.plans-heading { margin-top:24px; margin-bottom:20px; }
.heading-line h2 { font-size:23px; }
.empty-state.is-compact { display:grid; grid-template-columns:40px minmax(0,1fr) auto; gap:5px 14px; align-items:center; text-align:left; padding:20px; }
.empty-state.is-compact>span { grid-row:1 / 3; width:40px; height:40px; margin:0; }
.empty-state.is-compact h3 { font-size:17px; letter-spacing:-.3px; }
.empty-state.is-compact p { grid-column:2; font-size:13px; max-width:none; margin:0; }
.empty-state.is-compact>.button { grid-column:3; grid-row:1 / 3; }
.card-body { padding:18px; }
.card-body h3 { font-size:17px; line-height:1.4; margin-top:9px; }
.card-time { flex-wrap:wrap; font-size:12px; color:#65785a; gap:5px; }
.card-time .price { display:inline; font-size:11px; color:#707969; }
.plan-card .plan-meeting-at { color:#5f6d57; font-size:12px; line-height:1.55; margin:10px 0; }
.plan-card .plan-meeting-at small { margin-top:2px; color:#77816f; font-size:11px; }
.card-meta-row { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:4px 12px; margin-top:10px; }
.card-meta-row .card-host,.card-meta-row .plan-views { margin:0; font-size:11px; line-height:1.5; }
.card-meta-row .card-host { flex:1; min-width:100px; overflow-wrap:anywhere; }
.card-meta-row .plan-views { white-space:nowrap; }
.card-bottom { margin-top:13px; padding-top:10px; flex-wrap:wrap; }
.group-info>span { font-size:11px; }
.card-action.card-action-label,.card-action.example-card-action { display:inline-flex; align-items:center; justify-content:center; gap:6px; width:auto; height:auto; min-height:40px; padding:6px 8px; border-radius:8px; font-size:12px; font-weight:600; }
.card-action.card-action-label .icon,.card-action.example-card-action .icon { width:15px; height:15px; }
.example-plan-card .card-bottom { justify-content:flex-end; }
.example-plan-card .card-location { font-size:12px; line-height:1.5; color:#6d7c61; }
.example-plan-disclaimer { font-size:11px; }
.directory-about { font-size:12px; color:#6a795f; line-height:1.7; margin:12px 0 24px; }
.directory-about summary { cursor:pointer; width:fit-content; min-height:36px; padding:7px 0; font-weight:600; }
.directory-about summary:focus-visible { outline:2px solid var(--forest); outline-offset:4px; border-radius:3px; }
.directory-about p { max-width:70ch; margin-top:5px; }
.places-heading h1 { margin:0 0 8px; }
.places-heading p { font-size:14px; }
.places-filters { background:#fff; padding:16px; }
.place-card-body h2 { margin:10px 0; font-size:19px; }
.place-card-body p { margin-bottom:12px; }
.messages-page-heading { margin-bottom:18px; }
.messages-layout { height:calc(100dvh - 205px); }
.messages-empty p,.chat-placeholder p { font-size:13px; }
.account-menu-group { border-top:1px solid var(--line); padding-top:16px; margin-top:6px; }
.account-menu-group h3 { font-size:12px; color:#64715e; font-weight:650; margin:0 0 10px; }
.account-menu-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.account-menu-links .button { justify-content:flex-start; text-align:left; min-width:0; padding:12px; font-size:12px; line-height:1.4; }
.business-hero { padding:34px; }
.business-hero-copy>.business-hero-description { font-size:16px; line-height:1.65; max-width:36ch; margin:20px 0; }
.business-benefits strong { font-size:13px; }
.profile-section-label { font-size:12px; margin-top:20px; }
.profile-overview .profile-tag { font-size:12px; }
#profile-edit-dialog>h2,#create-dialog>h2,#free-dialog>h2,#filters-dialog>h2 { margin-bottom:22px; }
#profile-edit-dialog>h2 { padding-right:28px; }
@media (max-width:1100px) and (min-width:741px) {
    .intro { grid-template-columns:1fr; gap:18px; }
    .free-card { max-width:none; justify-self:stretch; }
}
@media (max-width:740px) {
    .topbar { min-height:72px; }
    .main-content { padding-top:24px; }
    .intro { grid-template-columns:1fr; gap:18px; padding-bottom:16px; }
    .intro h1 { font-size:36px; letter-spacing:-1.4px; }
    .intro-copy>p { margin-top:11px; font-size:13px; }
    .free-card { display:flex; grid-template-columns:none; max-width:none; padding:13px; gap:9px; }
    .free-card h2 { font-size:17px; }
    .free-card .button { grid-column:auto; grid-row:auto; margin:0 0 0 auto; width:auto; min-height:44px; font-size:12px; }
    .free-card .bolt-badge { width:27px; height:27px; }
    .plans-heading { margin-top:20px; margin-bottom:16px; }
    .heading-line h2 { font-size:21px; }
    .empty-state.is-compact { grid-template-columns:minmax(0,1fr) auto; padding:17px; gap:8px 12px; }
    .empty-state.is-compact>span { display:none; }
    .empty-state.is-compact h3 { font-size:16px; grid-column:1 / -1; }
    .empty-state.is-compact p { grid-column:1; font-size:12px; }
    .empty-state.is-compact>.button { grid-column:2; grid-row:2; min-height:42px; padding:9px 11px; font-size:12px; }
    .empty-state.is-compact>.button .icon { display:none; }
    .card-body { padding:17px; }
    .card-body h3 { font-size:18px; }
    .card-time { font-size:12px; }
    .card-time .price { font-size:11px; }
    .card-action.card-action-label,.card-action.example-card-action { min-height:44px; }
    .account-menu-links .button { min-height:48px; }
    .business-hero { padding:26px 22px; }
    .business-heading { flex-direction:column; align-items:stretch; }
    .business-heading .search-field { width:100%; max-width:none; flex:0 0 auto; height:44px; min-height:44px; }
    .business-hero-copy>.business-hero-description { font-size:14px; margin:16px 0; }
    .messages-layout { height:calc(100dvh - 252px); min-height:300px; }
}
@media (max-width:360px) {
    .intro h1 { font-size:32px; }
    .free-card { gap:8px; padding:12px; }
    .free-card h2 { font-size:15px; }
    .free-card .button { gap:6px; padding:10px; }
    .free-card .bolt-badge { display:none; }
    .card-meta-row .card-host { flex-basis:100%; }
    .group-info .avatar-stack { display:none; }
}

/* Personal media stays compact, with native, tap-to-play video controls. */
.social-profile-layout { display:block; }
.social-profile-overview { position:relative; padding:24px; margin-bottom:18px; background:linear-gradient(120deg,#f0f4e8,#fff 70%); }
.social-profile-overview .profile-hero { display:grid; grid-template-columns:108px minmax(0,1fr); column-gap:22px; text-align:left; align-items:center; }
.social-profile-overview .profile-avatar { width:108px; height:108px; margin:0; grid-row:1 / 3; border-width:4px; }
.social-profile-overview .profile-hero h2 { margin:0; align-self:end; font-size:30px; }
.social-profile-overview .profile-city { justify-content:flex-start; align-self:start; margin-top:5px; }
.social-profile-overview .profile-bio { max-width:660px; margin:16px 0; font-size:15px; white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.65; }
.social-profile-overview .profile-section-label { font-size:11px; margin:14px 0 6px; }
.social-profile-overview .profile-tags { margin:0 0 8px; }
.social-profile-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:30px; }
.social-profile-gallery.has-video { grid-template-columns:repeat(4,minmax(0,1fr)); }
.social-profile-photo,.social-profile-video { position:relative; min-width:0; margin:0; padding:0; overflow:hidden; border:0; border-radius:16px; background:#1e2923; aspect-ratio:4/5; }
.social-profile-photo { cursor:zoom-in; }
.social-profile-photo img,.social-profile-video video { display:block; width:100%; height:100%; object-fit:cover; }
.social-profile-video video { object-fit:contain; }
.social-profile-video figcaption { position:absolute; left:12px; top:12px; padding:5px 8px; border-radius:8px; color:#fff; background:#18271dcc; pointer-events:none; font-size:11px; }
.profile-media-invitation { display:block; width:100%; margin:0 0 28px; padding:28px; border:1px dashed #becbb4; border-radius:16px; background:#f7f9f3; color:var(--ink); text-align:center; font-weight:650; cursor:pointer; }
.profile-media-invitation span { display:block; margin-top:7px; color:#687763; font-size:13px; font-weight:400; }
.social-profile-layout .profile-hosted-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.social-media-fieldset { min-width:0; margin:24px 0; padding:0; border:0; }
.social-media-fieldset legend { margin-bottom:12px; font-size:13px; font-weight:650; }
.social-media-fieldset .media-photo-controls { flex-direction:row; align-items:center; flex-wrap:wrap; margin-top:12px; gap:12px; }
.social-media-fieldset input[type=file] { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.social-media-fieldset .media-upload-button:focus-within { outline:2px solid #2e513b; outline-offset:4px; }
.profile-gallery-editor { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.profile-gallery-editor-item { position:relative; aspect-ratio:1; margin:0; }
.profile-gallery-editor-item img { width:100%; height:100%; object-fit:cover; border-radius:12px; }
.profile-gallery-editor-item button { position:absolute; top:4px; right:4px; width:32px; height:32px; border:1px solid #d7ded5; border-radius:50%; background:#fff; color:#233c2d; font-size:23px; cursor:pointer; }
.short-video-preview { width:100%; max-height:280px; aspect-ratio:4/3; object-fit:contain; background:#18221c; border-radius:12px; }
.plan-cover-video { display:block; width:100%; background:#17231b; object-fit:contain; }
.card-image-wrap:has(.plan-cover-video) .spots-tag { bottom:52px; pointer-events:none; }
.card-image-wrap:has(.plan-cover-video) .image-tag { pointer-events:none; }
.profile-photo-view-dialog { max-width:min(900px,94vw); padding:0; background:#17231b; }
.profile-photo-view-dialog img { display:block; width:100%; max-height:85dvh; object-fit:contain; }
.admin-evidence-video { display:block; width:100%; max-height:360px; background:#17231b; margin:12px 0; }
@media(max-width:1000px) {
  .social-profile-layout .profile-hosted-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
  .social-profile-overview { padding:22px 18px; }
  .social-profile-overview .profile-hero { grid-template-columns:80px minmax(0,1fr); gap:0 14px; }
  .social-profile-overview .profile-avatar { width:80px; height:80px; }
  .social-profile-overview .profile-hero h2 { font-size:23px; }
  .social-profile-overview .profile-bio { font-size:14px; margin:18px 0; }
  .social-profile-gallery,.social-profile-gallery.has-video { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .social-profile-gallery:not(.has-video) .social-profile-photo:only-child { grid-column:1 / -1; max-width:340px; }
  .social-profile-layout .profile-hosted-grid { grid-template-columns:1fr; }
  .social-profile-video figcaption { font-size:10px; top:8px; left:8px; }
}

/* Profile details, photos and video have separate, focused editors. */
 .profile-page-head { gap:12px; margin-bottom:16px; }
.profile-page-head h1 { margin:0; font-size:28px; line-height:1.25; letter-spacing:-1px; }
.profile-account-button { display:inline-flex; align-items:center; justify-content:center; gap:7px; flex-shrink:0; min-height:44px; padding:9px 10px; border-radius:10px; font-size:13px; color:var(--forest); }
.profile-account-button .icon { width:18px; height:18px; }
.profile-account-button:hover { background:#eef2e8; }
.profile-owner-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); max-width:560px; gap:8px; margin:16px 0; }
.profile-owner-actions .button { min-width:0; min-height:46px; padding:10px 12px; gap:7px; font-size:13px; border:1px solid #dfe6d7; }
.profile-owner-actions .button .icon { width:17px; height:17px; flex-shrink:0; }
.profile-facts { display:grid; gap:9px; }
.profile-fact { display:grid; grid-template-columns:78px minmax(0,1fr); align-items:start; column-gap:10px; min-width:0; }
.social-profile-overview .profile-fact .profile-section-label { margin:5px 0 0; font-size:12px; letter-spacing:0; color:#6a7961; }
.social-profile-overview .profile-fact .profile-tags { margin:0; gap:5px; }
.social-profile-overview .profile-tag { padding:4px 9px; line-height:1.4; }
.profile-safety-actions { margin-top:12px; }
.profile-safety-actions .content-safety-link { min-height:44px; padding:9px; }
.social-profile-overview .profile-avatar-edit { position:relative; padding:0; cursor:pointer; }
.profile-avatar-edit:focus-visible { outline:3px solid var(--forest); outline-offset:4px; }
.profile-media-dialog .social-media-fieldset:first-child { margin-top:0; }

/* Long video selections are previewed and saved as a single ten-second clip. */
.video-trim-editor { padding:16px; margin:12px 0; border:1px solid #dce5d3; border-radius:12px; background:#f4f7ee; }
.video-trim-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:7px 14px; }
.video-trim-heading strong { font-size:13px; }
.video-trim-heading>span { font-size:11px; color:#627257; font-variant-numeric:tabular-nums; }
.dialog .video-trim-editor label { gap:6px; margin:14px 0 8px; font-size:12px; }
.dialog .video-trim-editor input[type=range] { width:100%; min-height:36px; padding:0; border:0; background:transparent; accent-color:var(--forest); cursor:pointer; }
.video-trim-footer { display:flex; align-items:center; gap:12px; }
.video-trim-footer .field-help { flex:1; margin:0; }
.video-trim-footer .button { flex-shrink:0; min-height:44px; padding:10px 12px; font-size:12px; }
@media(max-width:600px) {
  .video-trim-editor { padding:13px; }
  .video-trim-footer { align-items:stretch; flex-direction:column; gap:10px; }
  .video-trim-footer .button { width:100%; }
}


/* Compact profiles and comfortable touch targets on phones. */
.dialog .media-photo-controls label.media-upload-button { display:inline-flex; position:relative; flex-direction:row; align-items:center; justify-content:center; gap:8px; min-height:44px; margin:0; padding:10px 13px; border:1px solid #dce4cf; border-radius:10px; color:var(--forest); background:#f0f4e8; font-size:13px; font-weight:600; cursor:pointer; }
.dialog .media-photo-controls label.media-upload-button:has(input:disabled) { opacity:.5; cursor:default; }
@media (max-width:740px) {
  .button { min-height:46px; }
  .dialog-close { width:44px; height:44px; top:8px; right:8px; }
  .dialog>h2 { padding-right:38px; }
  .dialog .button,.dialog .photo-remove-button,.dialog .auth-text-button { min-height:44px; }
  .dialog .media-photo-controls label.media-upload-button,.dialog .media-photo-fieldset label.media-upload-button { min-height:46px; font-size:14px; }
  .dialog .media-photo-controls { gap:8px; }
  .profile-gallery-editor-item button { width:44px; height:44px; top:2px; right:2px; font-size:25px; }
  .profile-gallery-editor { gap:7px; }
  .language-chip { padding:0 0 0 11px; font-size:12px; gap:2px; }
  .language-chip button { min-width:44px; min-height:44px; }
  .language-picker-footer .button { min-height:44px; font-size:13px; }
  .dialog .interest-option span { min-height:44px; }
  .dialog .checkbox-label { min-height:44px; align-items:center; }
  .profile-page-head { align-items:center; margin-bottom:12px; }
  .profile-page-head h1 { font-size:24px; line-height:1.2; letter-spacing:-.7px; }
  .profile-account-button { font-size:12px; padding:8px; }
  .social-profile-overview { padding:16px; border-radius:14px; margin-bottom:12px; }
  .social-profile-overview .profile-hero { grid-template-columns:68px minmax(0,1fr); column-gap:12px; }
  .social-profile-overview .profile-avatar { width:68px; height:68px; border-width:3px; font-size:28px; }
  .social-profile-overview .profile-hero h2 { font-size:23px; line-height:1.2; letter-spacing:-.6px; }
  .social-profile-overview .profile-city { font-size:12px; margin:4px 0 0; line-height:1.5; }
  .social-profile-overview .profile-bio { margin:12px 0; font-size:14px; line-height:1.55; }
  .profile-owner-actions { margin:13px 0; gap:6px; }
  .profile-owner-actions .button { min-height:46px; gap:5px; padding:9px 5px; font-size:12px; border-radius:9px; }
  .profile-owner-actions .button .icon { width:15px; height:15px; }
  .profile-fact { grid-template-columns:66px minmax(0,1fr); gap:7px; }
  .social-profile-overview .profile-fact .profile-section-label { font-size:11px; }
  .social-profile-overview .profile-tag { font-size:11px; padding:4px 7px; }
  .social-profile-gallery,.social-profile-gallery.has-video { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; margin-bottom:20px; }
  .social-profile-photo,.social-profile-video { aspect-ratio:1; border-radius:12px; }
  .social-profile-video figcaption { font-size:10px; padding:4px 6px; top:7px; left:7px; }
  .profile-plans-heading { gap:9px; margin-bottom:12px; }
  .profile-plans-heading h2 { font-size:18px; line-height:1.4; }
  .profile-page-empty { padding:24px 16px; }
  .profile-page-empty p { margin-bottom:14px; }
  .profile-onboarding { margin:14px 0; padding:28px 18px; }
  .profile-onboarding h1 { font-size:26px; }
  .profile-onboarding .button { width:100%; }
  .profile-onboarding .auth-text-button { min-height:44px; }
  .profile-media-dialog { padding:20px 16px 16px; max-height:calc(100dvh - 20px); }
  .profile-media-dialog>h2 { font-size:22px; margin-bottom:16px; }
  .profile-media-dialog .social-media-fieldset { margin:16px 0; }
  .profile-media-dialog .social-media-fieldset:first-child { margin-top:0; }
  .profile-media-dialog .short-video-preview,#plan-video-preview { max-height:min(32svh,220px); aspect-ratio:16/9; }
  .profile-media-dialog .preview-note { margin-top:10px; font-size:11px; }
  .profile-photo-editor { gap:14px; }
  .profile-photo-circle { width:80px; height:80px; flex-shrink:0; }
  .profile-photo-editor .media-photo-controls { gap:6px; }
}
@media (max-width:360px) {
  .profile-owner-actions .button[data-open="profile-edit"] .icon { display:none; }
  .social-profile-overview { padding:14px; }
  .social-profile-overview .profile-hero h2 { font-size:21px; }
}

@media(max-width:740px) {
  .topbar { gap:8px; }
  .topbar .account-button { min-height:44px; }
  .topbar #notifications-button,.topbar .mobile-create { width:44px; height:44px; min-width:44px; min-height:44px; }
  .save-button { width:44px; height:44px; }
  .card-body h3>button { min-height:44px; }
  .dialog .photo-remove-button { color:#56644e; font-size:13px; }
}
@media(max-width:360px) {
  .topbar { padding-left:14px; padding-right:14px; gap:6px; }
  .mobile-brand,.mobile-brand .brand-wordmark { width:108px; }
  .topbar .account-button { padding:7px 9px; }
}


/* One question per card, with a steady footer for the next step. */
#create-dialog { padding:0; max-width:580px; overflow:hidden; background:#f6f8f1; }
#create-dialog[open] { display:flex; flex-direction:column; }
.plan-editor-heading { padding:24px 24px 18px; flex-shrink:0; }
#create-dialog h2 { margin:0 48px 0 0; font-size:19px; letter-spacing:-.5px; }
#create-dialog .dialog-description { margin:8px 40px 0 0; color:#637259; font-size:12px; }
#create-dialog .dialog-close { width:44px; height:44px; top:13px; right:14px; }
.plan-progress-heading { display:flex; justify-content:space-between; gap:12px; margin:24px 0 9px; color:#607154; font-size:12px; }
#plan-step-name { font-weight:600; }
#plan-step-progress { display:block; appearance:none; width:100%; height:5px; border:0; border-radius:6px; overflow:hidden; background:#e1e9d8; color:#56754a; }
#plan-step-progress::-webkit-progress-bar { background:#e1e9d8; border-radius:6px; }
#plan-step-progress::-webkit-progress-value { background:#56754a; border-radius:6px; transition:width .18s ease; }
#plan-step-progress::-moz-progress-bar { background:#56754a; border-radius:6px; }
#create-dialog form { margin:0; gap:0; min-height:0; overflow:hidden; }
.plan-editor-body { padding:0 18px 18px; overflow-y:auto; overscroll-behavior:contain; min-height:0; scroll-padding:18px; }
.plan-question-card { min-height:235px; background:white; padding:26px 23px; border:1px solid #e2e8da; border-radius:16px; box-shadow:0 3px 12px #31492705; }
#create-dialog .plan-question-card h3 { font-size:26px; letter-spacing:-.8px; color:#304c36; line-height:1.2; margin:0 0 10px; outline:none; }
.plan-question-help { color:#67745e; font-size:13px; line-height:1.6; margin:0 0 24px; }
.plan-random-option { display:flex; flex-direction:column; align-items:center; gap:8px; margin-top:24px; padding-top:20px; border-top:1px solid #e7ecdf; }
#generate-random-plan { width:100%; min-height:48px; padding:12px 10px; white-space:normal; line-height:1.4; font-size:13px; border-radius:12px; }
#generate-random-plan:disabled { opacity:1; color:#65715e; background:#f5f7f1; border-color:#e0e6d8; cursor:default; }
#plan-random-status { color:#65715e; font-size:11px; }
#create-dialog label:not(.checkbox-label) { font-size:13px; gap:7px; }
#create-dialog input:not([type=checkbox]):not([type=file]):not([type=range]),#create-dialog select,#create-dialog textarea { min-height:50px; font-size:16px; border-radius:11px; padding:12px; }
#create-dialog input::placeholder,#create-dialog textarea::placeholder { color:#7b8573; }
#create-dialog .form-row { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; }
#create-dialog .field-help { color:#65745b; line-height:1.5; font-size:12px; }
#create-dialog #capacity-help { margin-top:14px; }
.plan-group-answer { display:flex; align-items:center; gap:14px; margin-top:24px; color:#596b4d; font-size:13px; }
#create-dialog .plan-group-answer input { width:102px; height:68px; font-size:30px!important; text-align:center; font-weight:600; }
.plan-date-row label { position:relative; }
.plan-timezone { display:none; }
#create-dialog textarea { min-height:120px; }
#create-dialog .venue-picker-fieldset { margin:0; padding:0; border:0; }
#create-dialog .venue-picker-fieldset legend { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.venue-picker-modes { display:grid; grid-template-columns:1fr 1fr; gap:4px; padding:4px; border:1px solid #dde5d4; border-radius:11px; background:#e9efe2; margin-bottom:12px; }
.venue-picker-modes button { display:flex; align-items:center; justify-content:center; gap:7px; min-height:44px; border-radius:8px; padding:9px 6px; color:#5b6a50; font-size:12px; font-weight:600; }
.venue-picker-modes button[aria-pressed=true] { background:white; color:#304f35; box-shadow:0 1px 4px #253d2012; }
.venue-picker-modes .icon { width:16px; height:16px; }
.venue-picker-modes button:focus-visible { outline:2px solid var(--forest); outline-offset:2px; }
#create-dialog .venue-picker-search>span { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
#create-dialog .venue-picker-results { max-height:240px; margin:10px 0 0; gap:7px; padding-right:2px; }
#create-dialog .venue-picker-option { padding:9px; gap:10px; }
#create-dialog .venue-picker-option>img { width:46px; height:46px; }
#create-dialog .venue-picker-option>span { gap:2px; }
#create-dialog .venue-picker-option strong { font-size:13px; }
#create-dialog .venue-picker-option small { color:#64745b; }
#create-dialog .custom-venue-fields { display:flex; flex-direction:column; gap:13px; border:0; margin:0; padding:0; }
#create-dialog .selected-venue-summary { flex-wrap:nowrap; gap:10px; background:#f2f6ed; border-radius:12px; padding:12px; }
#create-dialog .selected-venue-summary>img { width:52px; height:52px; flex-shrink:0; }
#create-dialog .selected-venue-summary .text-button { color:#385d3d; padding:8px; font-size:12px; }
#create-dialog .selected-venue-summary span,#create-dialog .selected-venue-summary small { color:#64745b; }
#create-dialog #business-selection-note { margin-top:12px; }
#create-dialog .selected-venue-summary:not([hidden])+.venue-picker-modes:not([hidden]) { margin-top:14px; }
.plan-cover-content { display:flex; flex-direction:column; gap:20px; }
#create-dialog .plan-cover-content fieldset { margin:0; padding:0; }
#create-dialog .plan-cover-content legend { font-size:12px; margin-bottom:9px; }
.plan-photo-layout { display:flex; align-items:center; gap:14px; }
#create-dialog .photo-preview-wrap { width:90px; height:90px; aspect-ratio:1; flex-shrink:0; }
#create-dialog .photo-controls { margin:0; gap:4px; flex-direction:column; align-items:flex-start; }
#create-dialog .photo-upload-button,#create-dialog .media-upload-button { min-height:44px; font-size:13px; }
#create-dialog .photo-remove-button { min-height:44px; padding:8px 3px; font-size:12px; }
#create-dialog .social-media-fieldset { border-top:1px solid #e3e8dd; padding-top:15px!important; }
#create-dialog .social-media-fieldset legend { float:left; width:100%; }
#create-dialog .short-video-preview { max-height:210px; margin:8px 0 12px; }
#create-dialog #plan-video-help { margin:8px 0 0; font-size:11px; }
#create-dialog .photo-status { margin-top:8px; }
#create-dialog .plan-public-confirmation { align-items:center; color:#5a6a50; min-height:48px; font-size:12px; cursor:pointer; margin-top:20px; }
#create-dialog .plan-public-confirmation input { width:19px; height:19px; margin:0; }
.plan-editor-footer { flex-shrink:0; display:flex; flex-direction:column; gap:10px; padding:0 24px 24px; }
.plan-step-actions { display:flex; gap:10px; }
#create-dialog .plan-step-actions>.button { min-height:50px; border-radius:12px; font-size:14px; }
#plan-step-next,#create-submit { flex:1; }
#plan-step-back { min-width:90px; }
#create-dialog .preview-note { color:#68755e; font-size:11px; }
.plan-review-cover { display:flex; align-items:center; gap:12px; padding-bottom:17px; }
.plan-review-cover img { width:64px; height:64px; border-radius:11px; object-fit:cover; flex-shrink:0; }
.plan-review-cover>div { flex:1; min-width:0; }
.plan-review-cover strong { display:block; color:#4c6340; font-size:13px; }
.plan-review-cover span { display:block; color:#6a775f; font-size:12px; margin-top:4px; }
.plan-review-row { display:flex; gap:12px; padding:13px 0; border-top:1px solid #e8ede1; }
.plan-review-row>div { flex:1; min-width:0; }
.plan-review-row span { font-size:11px; color:#738068; }
.plan-review-row p { color:#405637; font-size:13px; line-height:1.6; margin-top:4px; overflow-wrap:anywhere; white-space:pre-line; }
.plan-review button { min-height:44px; padding:6px; font-size:12px; color:#486741; text-decoration:underline; text-underline-offset:3px; align-self:center; flex-shrink:0; }
@media(max-width:550px) {
    #create-dialog { width:calc(100% - 20px); max-height:calc(100dvh - 24px); border-radius:20px; }
    .plan-editor-heading { padding:22px 20px 16px; }
    #create-dialog h2 { font-size:18px; }
    #create-dialog .dialog-close { top:11px; right:11px; }
    .plan-progress-heading { margin-top:21px; }
    .plan-editor-body { padding:0 12px 14px; }
    .plan-question-card { padding:24px 18px; min-height:245px; border-radius:14px; }
    #create-dialog .plan-question-card h3 { font-size:25px; }
    .plan-question-help { margin-bottom:21px; }
    #create-dialog .venue-picker-results { max-height:210px; }
    #create-dialog .selected-venue-summary { flex-wrap:wrap; }
    .plan-editor-footer { padding:0 20px max(20px,env(safe-area-inset-bottom)); }
}
@media(max-width:360px) {
    .plan-question-card { padding:21px 14px; }
    #create-dialog .plan-question-card h3 { font-size:23px; }
    #create-dialog .plan-date-row { grid-template-columns:1fr; }
    .venue-picker-modes button { font-size:11px; gap:5px; }
    #create-dialog .plan-photo-layout { gap:10px; }
    #create-dialog .photo-preview-wrap { width:72px; height:72px; }
}
