/**
 * MERIVA cinematic UI — P0/P1 layout and hierarchy.
 * Loaded before meriva-responsive.css. Reuses existing tokens.
 */

:root {
    --meriva-radius-xs: 8px;
    --meriva-radius-sm: var(--meriva-v4-radius-sm, 10px);
    --meriva-radius-md: var(--meriva-v4-radius-md, 14px);
    --meriva-radius-lg: var(--meriva-v4-radius-lg, 20px);
    --meriva-radius-xl: var(--meriva-v4-radius-xl, 28px);
    --meriva-shadow-card: var(--meriva-v4-shadow, 0 8px 28px rgba(12, 10, 8, 0.06));
    --meriva-motion: 280ms cubic-bezier(0.16, 1, 0.3, 1);
    --meriva-dock-h: calc(5.4rem + env(safe-area-inset-bottom, 0px));
    --meriva-context-h: 3.65rem;
    --meriva-border-idle: var(--meriva-v4-border, rgba(247, 243, 236, 0.08));
}

@media (prefers-reduced-motion: reduce) {
    :root {
        --meriva-motion: 0.01ms;
    }
}

/* —— P0-1: desktop sidebar reserves its full width; no overlay clip —— */
@media (min-width: 1100px) {
    body.m-ui-v4 .m-app-sidebar.v4-sidebar {
        position: sticky;
        top: 0;
        align-self: stretch;
        z-index: 40;
        height: 100dvh;
        width: var(--meriva-v4-sidebar-width);
        min-width: var(--meriva-v4-sidebar-width);
        max-width: var(--meriva-v4-sidebar-width);
        flex: 0 0 var(--meriva-v4-sidebar-width);
        padding: 1.15rem 0.9rem 1rem;
        overflow-x: hidden;
        overflow-y: auto;
        border-right: 1px solid rgba(255, 255, 255, 0.06);
    }

    body.m-ui-v4 .m-app-sidebar.v4-sidebar .v4-sidebar-inner {
        width: 100%;
        height: auto;
        min-height: 100%;
        padding: 0;
        overflow: visible;
        border-right: 0;
        box-shadow: none;
        transition: none;
    }

    body.m-ui-v4 .m-app-sidebar.v4-sidebar:hover .v4-sidebar-inner,
    body.m-ui-v4 .m-app-sidebar.v4-sidebar:focus-within .v4-sidebar-inner,
    body.m-ui-v4 .m-app-sidebar.v4-sidebar.is-hover-open .v4-sidebar-inner {
        width: 100%;
        padding: 0;
        box-shadow: none;
    }

    body.m-ui-v4 .m-app-sidebar.v4-sidebar:not(:hover):not(:focus-within):not(.is-hover-open) .v4-sidebar-header,
    body.m-ui-v4 .m-app-sidebar.v4-sidebar:not(:hover):not(:focus-within):not(.is-hover-open) .v4-sidebar-brand,
    body.m-ui-v4 .m-app-sidebar.v4-sidebar:not(:hover):not(:focus-within):not(.is-hover-open) .v4-nav-link,
    body.m-ui-v4 .m-app-sidebar.v4-sidebar:not(:hover):not(:focus-within):not(.is-hover-open) .v4-mpoints-compact {
        justify-content: flex-start;
        padding-inline: 0.7rem;
        gap: 0.7rem;
    }

    body.m-ui-v4 .m-app-sidebar.v4-sidebar:not(:hover):not(:focus-within):not(.is-hover-open) .v4-sidebar-brand-copy,
    body.m-ui-v4 .m-app-sidebar.v4-sidebar:not(:hover):not(:focus-within):not(.is-hover-open) .v4-nav-label,
    body.m-ui-v4 .m-app-sidebar.v4-sidebar:not(:hover):not(:focus-within):not(.is-hover-open) .v4-sidebar-foot-copy,
    body.m-ui-v4 .m-app-sidebar.v4-sidebar:not(:hover):not(:focus-within):not(.is-hover-open) .v4-theme-switch,
    body.m-ui-v4 .m-app-sidebar.v4-sidebar:not(:hover):not(:focus-within):not(.is-hover-open) .v4-sidebar-auth,
    body.m-ui-v4 .m-app-sidebar.v4-sidebar:not(:hover):not(:focus-within):not(.is-hover-open) .v4-pub-join,
    body.m-ui-v4 .m-app-sidebar.v4-sidebar:not(:hover):not(:focus-within):not(.is-hover-open) .v4-sidebar-footer legend {
        opacity: 1;
        max-width: 12rem;
        transform: none;
        pointer-events: auto;
        visibility: visible;
    }

    body.m-ui-v4 .m-app-sidebar.v4-sidebar:not(:hover):not(:focus-within):not(.is-hover-open) .v4-pub-join {
        padding: 0.7rem;
        border: 1px solid rgba(255, 255, 255, 0.08);
        gap: 0.55rem;
        min-height: 0;
        overflow: visible;
    }

    body.m-ui-v4 .m-app-container,
    body.m-ui-v4 .m-app-main {
        min-width: 0;
    }
}

@media (min-width: 992px) {
    .m-app-sidebar:not(.v4-sidebar) {
        width: var(--meriva-sidebar-width);
        min-width: var(--meriva-sidebar-width);
        flex: 0 0 var(--meriva-sidebar-width);
        padding: var(--meriva-space-4);
    }

    .m-app-sidebar:not(.v4-sidebar):not(:hover):not(:focus-within):not(.is-hover-open) .m-sidebar-header,
    .m-app-sidebar:not(.v4-sidebar):not(:hover):not(:focus-within):not(.is-hover-open) .m-sidebar-brand {
        justify-content: flex-start;
    }
}

/* —— P0-4: auth pages — cinematic split, no sidebar overlap —— */
body.m-auth-page .m-app-sidebar,
body.m-auth-page .v4-pub-join {
    display: none;
}

body.m-auth-page .v4-pub-top [data-m-toggle="sidebar"] {
    display: none;
}

body.m-auth-page .m-app-shell {
    display: block;
}

body.m-auth-page .m-app-container,
body.m-auth-page .m-app-main.v4-pub-main {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

body.m-auth-page .v4-auth {
    min-height: calc(100dvh - 4.5rem);
    max-width: none;
    margin: 0;
    display: grid;
    grid-template-columns: minmax(16rem, 0.9fr) minmax(20rem, 1.1fr);
    gap: 0;
    align-items: stretch;
}

body.m-auth-page .v4-auth-brand {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(1.5rem, 4vw, 3.5rem);
    background:
        radial-gradient(520px 240px at 20% 0%, rgba(212, 175, 55, 0.16), transparent 62%),
        linear-gradient(165deg, #16161c 0%, #0b0b0e 70%);
    color: #f7f3ec;
}

body.m-auth-page .v4-auth-slogan {
    font-size: clamp(2.4rem, 6vw, 4.6rem);
    line-height: 0.92;
    letter-spacing: -0.04em;
}

body.m-auth-page .v4-auth-card {
    align-self: center;
    width: min(28rem, calc(100% - 2rem));
    margin: 2rem auto;
    padding: 1.4rem 1.25rem 1.5rem;
}

body.m-auth-page .v4-pub-foot {
    justify-content: center;
    text-align: center;
    padding-block: 0.85rem;
}

@media (max-width: 899.98px) {
    body.m-auth-page .v4-auth {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    body.m-auth-page .v4-auth-brand {
        padding: 1.1rem 1rem 0.4rem;
        background: transparent;
        color: inherit;
    }

    body.m-auth-page .v4-auth-slogan {
        font-size: clamp(1.6rem, 8vw, 2.2rem);
    }

    body.m-auth-page .v4-auth-points {
        display: none;
    }

    body.m-auth-page .v4-pub-top {
        display: flex;
    }
}

/* —— P0-2 / P0-3: chat mobile — drawers + composer above dock —— */
@media (max-width: 1099.98px) {
    body.m-chat-immersive.m-ui-v4 .m-app-shell,
    body.m-chat-immersive.m-ui-v4 .m-app-container {
        height: 100dvh;
        max-height: 100dvh;
        min-height: 0;
    }

    body.m-chat-immersive.m-ui-v4:has(.v4-dock) .m-app-main {
        padding: 0 !important;
        padding-bottom: var(--meriva-dock-h) !important;
        display: flex;
        flex-direction: column;
        flex: 1 1 auto;
        min-height: 0;
    }

    body.m-ui-v4 .v4-chat {
        flex: 1 1 auto;
        min-height: 0;
        height: auto;
        display: flex;
        flex-direction: column;
    }

    body.m-ui-v4 .v4-chat .m-chat-wrapper,
    body.m-ui-v4 .v4-chat .m-chat,
    .m-chat {
        flex: 1 1 auto;
        min-height: 0 !important;
        height: auto !important;
        max-height: none !important;
        overflow-x: hidden;
    }

    body.m-ui-v4 .v4-chat .m-chat-main,
    .m-chat-main {
        min-height: 0;
        height: 100%;
    }

    body.m-ui-v4 .v4-chat .m-chat-composer,
    .m-chat-composer {
        padding-bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px));
    }

    .m-chat-header {
        min-width: 0;
        gap: 0.4rem;
    }

    .m-chat-header-copy,
    .m-chat-header-title,
    .m-chat-header-sub {
        min-width: 0;
        overflow-wrap: break-word;
        word-break: normal;
    }

    .m-chat-header-actions .m-chat-aside-toggle span,
    .mx-chat-rooms-toggle-label {
        display: none;
    }

    .m-chat-time {
        margin-left: 0;
    }
}

html {
    scroll-padding-top: calc(var(--meriva-context-h) + 0.5rem);
}

/* —— P0-5: category covers —— */
.v4-biz-fallback {
    position: relative;
    font-size: 0;
    color: transparent;
}

.v4-biz-cover {
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
    width: 100%;
    height: 100%;
    padding: 0.7rem 0.8rem;
    background:
        radial-gradient(120% 80% at 80% 0%, rgba(212, 175, 55, 0.28), transparent 58%),
        linear-gradient(160deg, #2a2418 0%, #121214 70%);
}

.v4-biz-cover[data-cover="food"] {
    background:
        radial-gradient(90% 70% at 10% 100%, rgba(212, 175, 55, 0.22), transparent 55%),
        linear-gradient(150deg, #3a2a16 0%, #14110c 68%);
}

.v4-biz-cover[data-cover="service"] {
    background:
        radial-gradient(80% 60% at 90% 20%, rgba(126, 200, 154, 0.18), transparent 55%),
        linear-gradient(150deg, #1c2420 0%, #101214 70%);
}

.v4-biz-cover[data-cover="textile"] {
    background:
        radial-gradient(80% 60% at 20% 10%, rgba(184, 169, 255, 0.2), transparent 55%),
        linear-gradient(150deg, #241c28 0%, #121014 70%);
}

.v4-biz-cover[data-cover="learn"] {
    background:
        radial-gradient(80% 60% at 80% 80%, rgba(200, 196, 188, 0.16), transparent 55%),
        linear-gradient(150deg, #1c2230 0%, #101214 70%);
}

.v4-biz-cover[data-cover="art"] {
    background:
        radial-gradient(80% 60% at 0% 50%, rgba(212, 175, 55, 0.2), transparent 55%),
        linear-gradient(150deg, #2a1c18 0%, #120e0c 70%);
}

.v4-biz-cover[data-cover="auto"] {
    background:
        radial-gradient(80% 60% at 100% 50%, rgba(247, 243, 236, 0.08), transparent 55%),
        linear-gradient(150deg, #1a1c20 0%, #0e1014 70%);
}

.v4-biz-cover-label {
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: rgba(247, 243, 236, 0.88);
}

.v4-post-avatar.is-fallback,
.m-chat-avatar,
.m-profile-hub__avatar--fallback,
.v4-user-trigger {
    background:
        radial-gradient(circle at 30% 20%, rgba(212, 175, 55, 0.22), transparent 58%),
        var(--meriva-v4-surface-soft, #16161c);
}

/* —— P0-6 compact empty —— */
.v4-empty.is-compact {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    padding: 0.95rem 1rem;
    text-align: left;
}

.v4-empty.is-compact h3,
.v4-empty.is-compact p {
    margin: 0;
}

.v4-empty.is-compact .m-btn {
    margin-top: 0;
}

/* —— P1 hero: one atmospheric scene —— */
.v4-explore-hero {
    position: relative;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    min-height: 18rem;
    border-color: var(--meriva-border-idle);
}

.v4-hero-map {
    border-color: transparent;
    background: transparent;
}

.v4-hero-map .m-tr-map {
    filter: drop-shadow(0 0 18px rgba(212, 175, 55, 0.18));
}

@media (max-width: 991.98px) {
    .v4-explore-hero {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .v4-hero-search {
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
    }

    .v4-hero-search .m-btn {
        width: auto;
        flex: 0 0 auto;
    }

    .v4-content-filters {
        width: 100%;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
    }

    .v4-content-filters .m-btn {
        width: auto;
        flex: 0 0 auto;
    }
}

/* —— P1 card density —— */
@media (min-width: 768px) {
    .v4-actions {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1100px) {
    .v4-navcards,
    .v4-actions {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .v4-biz-rail {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .v4-biz-rail .v4-biz:first-child {
        grid-column: span 2;
    }
}

@media (min-width: 1280px) {
    .v4-navcards,
    .v4-actions {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .v4-biz-rail {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (min-width: 1600px) {
    .v4-explore-hero {
        grid-template-columns: minmax(280px, 0.85fr) minmax(0, 1.5fr);
        min-height: 22rem;
    }

    .v4-biz-rail,
    .v4-feed {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* —— P1 Yakında / gold restraint / motion —— */
.v4-action.is-soon {
    opacity: 0.55;
    border-style: dashed;
    border-color: rgba(247, 243, 236, 0.16);
    box-shadow: none;
}

.v4-action,
.v4-navcard,
.v4-biz,
.v4-city-card,
.v4-hit,
.v4-market-card,
.v4-post {
    border-color: var(--meriva-border-idle);
    transition: transform var(--meriva-motion), border-color var(--meriva-motion), box-shadow var(--meriva-motion);
}

.v4-action:hover,
.v4-navcard:hover,
.v4-biz:hover,
.v4-city-card:hover,
.v4-hit:hover,
.v4-market-card:hover {
    transform: translateY(-2px);
    border-color: rgba(201, 162, 39, 0.35);
}

.v4-action:not(:hover):not(:focus-visible),
.v4-navcard:not(:hover):not(:focus-visible) {
    border-color: var(--meriva-border-idle);
}

.v4-navcard .v4-icon,
.v4-action-icon {
    color: var(--meriva-v4-text-muted);
    background: rgba(247, 243, 236, 0.06);
}

.v4-navcard:hover .v4-icon,
.v4-action:hover .v4-action-icon,
.v4-navcard[aria-current="page"] .v4-icon {
    color: var(--meriva-v4-gold);
    background: rgba(201, 162, 39, 0.12);
}

.v4-count-zero {
    display: none;
}

.v4-nav-soon {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.72rem;
    color: var(--meriva-v4-text-muted);
}

/* —— Buttons —— */
.m-btn-ghost {
    background: transparent;
    border: 1px solid var(--meriva-border-idle);
}

.m-btn-secondary {
    background: var(--meriva-v4-surface-soft);
    border: 1px solid var(--meriva-border-idle);
    color: var(--meriva-v4-text);
}

/* —— P1-16 sticky header already exists; keep titles readable —— */
.v4-context {
    scroll-margin-top: 0;
}

/* —— P1-18 opportunity —— */
@media (max-width: 47.98rem) {
    .v4-market-media {
        max-height: 8.5rem;
    }

    .v4-market-media img {
        max-height: 8.5rem;
        object-fit: cover;
    }

    .v4-mission .v4-comment-form textarea {
        min-height: 4.5rem;
        rows: 2;
    }
}

.v4-market-status {
    font-size: 0.75rem;
    font-weight: 700;
}

.v4-market-card.is-affordable .v4-market-status {
    color: var(--m-success, #7EC89A);
}

.v4-market-card.is-short .v4-market-status {
    color: var(--m-warning, #F5A623);
}

.v4-market-card.is-closed .v4-market-status {
    color: var(--meriva-v4-text-muted);
}

/* —— P1-19 referrals —— */
.v4-share-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.65rem;
}

.v4-share-row .m-input {
    flex: 1 1 12rem;
    min-width: 0;
    overflow-wrap: anywhere;
}

/* —— P1-20 profile —— */
@media (max-width: 47.98rem) {
    .m-profile-hub__identity {
        align-items: flex-start;
    }

    .m-profile-hub__avatar {
        flex-basis: 64px;
        width: 64px;
        height: 64px;
    }

    .m-profile-hub__stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .m-profile-hub__actions {
        display: flex;
        flex-direction: column;
    }

    .m-profile-hub__actions .m-btn {
        width: 100%;
        justify-content: center;
    }
}

/* —— P1-21 notifications —— */
.v4-notify {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.55rem 0.75rem;
    padding: 0.75rem 0.85rem;
    max-width: 100%;
    overflow-wrap: anywhere;
}

.v4-notify strong,
.v4-notify p,
.v4-page--narrow {
    max-width: 100%;
    overflow-wrap: anywhere;
}

.m-btn:focus-visible,
.v4-notify-chip:focus-visible,
.m-bell:focus-visible {
    outline: 2px solid var(--meriva-v4-gold, #c9a227);
    outline-offset: 2px;
}

.v4-notify-chip {
    display: inline-flex;
    width: fit-content;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    background: rgba(201, 162, 39, 0.14);
    color: var(--meriva-v4-gold);
    font-size: 0.68rem;
    font-weight: 700;
}

/* —— P1-22 community: pills only, no duplicate hub —— */
.v4-community-hub .v4-land-actions {
    display: none;
}

/* —— P2 ledger / M-Puan —— */
.v4-mp-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
}

@media (max-width: 47.98rem) {
    .v4-mp-stats,
    .v4-mp-hero .v4-land-cta {
        grid-template-columns: 1fr;
        display: flex;
        flex-direction: column;
    }

    .v4-ledger-item {
        flex-direction: column;
        align-items: flex-start;
    }

    .v4-pub-foot {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.4rem;
        font-size: 0.78rem;
        padding-bottom: calc(1rem + env(safe-area-inset-bottom));
    }

    .m-app-footer .m-site-footer-navs {
        display: none;
    }
}

.v4-gate {
    max-width: 28rem;
    margin: 1.5rem auto;
    padding: 1.25rem 1.15rem;
    text-align: center;
}

.v4-swap-badge {
    display: inline-flex;
    padding: 0.12rem 0.5rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.v4-swap-badge.is-takas {
    background: rgba(201, 162, 39, 0.16);
    color: var(--meriva-v4-gold);
}

.v4-swap-badge.is-hibe {
    background: rgba(126, 200, 154, 0.16);
    color: #7EC89A;
}

.m-legal-prose {
    max-width: 42rem;
    margin-inline: auto;
    line-height: 1.65;
}

.m-legal-prose h1,
.m-legal-prose h2,
.m-legal-prose .m-h1 {
    letter-spacing: -0.03em;
    line-height: 1.15;
}

.v4-register-steps {
    display: flex;
    gap: 0.45rem;
    margin: 0 0 1rem;
    padding: 0;
    list-style: none;
}

.v4-register-steps li {
    flex: 1 1 0;
    min-width: 0;
    white-space: nowrap;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--meriva-v4-text-muted);
    border-bottom: 2px solid var(--meriva-border-idle);
    padding-bottom: 0.35rem;
}

.v4-register-steps li.is-on {
    color: var(--meriva-v4-gold);
    border-bottom-color: var(--meriva-v4-gold);
}

.v4-register-pane[hidden] {
    display: none !important;
}

.v4-auth .validation-summary-valid {
    display: none !important;
}

.v4-register-nav {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.85rem;
}

.v4-submit-reason {
    margin: 0.45rem 0 0;
    font-size: 0.78rem;
    color: var(--meriva-v4-text-muted);
    overflow-wrap: anywhere;
}

.v4-auth-card .m-btn.w-100 {
    width: 100%;
    max-width: 100%;
}

.v4-required::after {
    content: " *";
    color: var(--meriva-v4-gold);
}

.v4-react-btn[disabled],
.v4-react-btn.is-disabled {
    opacity: 0.45;
}

.v4-post--feed,
.v4-post--compact {
    padding-bottom: 0.2rem;
}

.v4-post.is-noise {
    display: none;
}

.v4-post-kicker {
    margin: 0;
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--meriva-v4-text-muted);
}

.v4-content-feed .v4-post--feed.is-editorial {
    display: grid;
    gap: 0;
}

.v4-content-feed .v4-post--feed.is-editorial .v4-post-title {
    font-size: clamp(1.05rem, 2vw, 1.35rem);
    letter-spacing: -0.02em;
}

.v4-content-feed .v4-post--feed.is-editorial .v4-post-excerpt {
    max-width: 42rem;
}

.v4-react {
    flex-wrap: wrap;
}

.v4-react-hint {
    flex: 1 1 100%;
    margin: 0.15rem 0 0;
    font-size: 0.72rem;
    color: var(--meriva-v4-text-muted);
}

@media (min-width: 1100px) {
    .v4-biz-rail .v4-biz:first-child {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: minmax(16rem, 1.15fr) minmax(12rem, 0.85fr);
        align-items: stretch;
        min-height: 16rem;
    }

    .v4-biz-rail .v4-biz:first-child .v4-biz-media {
        min-height: 16rem;
        height: 100%;
    }
}

.v4-board-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 2.25rem;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 800;
    color: var(--meriva-v4-gold);
    background:
        radial-gradient(circle at 30% 20%, rgba(212, 175, 55, 0.22), transparent 58%),
        var(--meriva-v4-surface-soft, #16161c);
}

.v4-board-row.is-top-1 .v4-board-rank,
.v4-board-row.is-top-2 .v4-board-rank,
.v4-board-row.is-top-3 .v4-board-rank {
    color: var(--meriva-v4-gold);
}

.v4-notify {
    transition: border-color var(--meriva-motion), background var(--meriva-motion);
}

.v4-notify.is-unread {
    border-color: rgba(201, 162, 39, 0.28);
    background: rgba(201, 162, 39, 0.05);
}

.v4-notify.is-read {
    opacity: 0.78;
}

.m-chat-bubble,
.m-chat-composer {
    transition: border-color var(--meriva-motion), box-shadow var(--meriva-motion);
}

.m-chat-composer:focus-within {
    border-color: rgba(201, 162, 39, 0.35);
    box-shadow: 0 0 0 3px rgba(201, 162, 39, 0.12);
}

@keyframes meriva-map-pulse {
    0%, 100% { opacity: 0.7; }
    50% { opacity: 1; }
}

.v4-hero-map .m-malatya-pin {
    animation: meriva-map-pulse 2.8s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
    .v4-action,
    .v4-navcard,
    .v4-biz,
    .v4-city-card,
    .v4-hit,
    .v4-market-card,
    .v4-hero-map .m-malatya-pin {
        transition: none;
        animation: none;
        transform: none;
    }
}

/*
 * Token family (P3-39)
 * Color: --meriva-v4-gold / --m-gold, --meriva-v4-text, --meriva-border-idle
 * Radius: --meriva-radius-sm/md/lg/xl
 * Type: Plus Jakarta Sans via layouts; hero display clamp
 * Shadow: --meriva-shadow-card / --meriva-v4-shadow
 * Motion: --meriva-motion 200–400ms
 */
