* {
    box-sizing: border-box;
}

/* AS-159B1: private billing profile assistant. */
#billing-view .billing-panel { max-width: 840px; margin-inline: auto; }
#billing-view #billing-drafts-panel { margin-top: 22px; }
#billing-view #billing-draft-editor { margin-top: 22px; }
#billing-view #billing-draft-editor label { display: grid; gap: 5px; min-width: 0; margin: 10px 0; }
#billing-view #billing-draft-editor input, #billing-view #billing-draft-editor select, #billing-view #billing-draft-editor textarea { width: 100%; min-width: 0; min-height: 44px; padding: 10px 12px; border: 1px solid #d8d5cf; border-radius: 8px; background: #fff; font: inherit; }
#billing-view #billing-draft-editor button { min-height: 44px; }
#billing-view #billing-draft-editor .hidden { display: none; }
#billing-view .billing-draft-fields, #billing-view .billing-drafts-list { display: grid; gap: 9px; }
#billing-view .billing-draft-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
#billing-view .billing-draft-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; width: 100%; min-height: 48px; padding: 10px; border: 1px solid #e1ded8; border-radius: 9px; background: #fff; color: inherit; text-align: left; }
#billing-view .billing-draft-row strong { flex: 1 1 180px; overflow-wrap: anywhere; }
#billing-view .billing-draft-row button { min-height: 44px; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
#billing-view .billing-draft-row button:first-child { flex: 1 1 180px; }
#billing-view .billing-artwork-choices { display: grid; gap: 8px; }
#billing-view .billing-artwork-choice { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 9px; border: 1px solid #dedbd5; border-radius: 9px; }
#billing-view .billing-artwork-choice.selected { border-color: #55755d; background: #f5f8f5; }
#billing-view .billing-artwork-thumb { display: grid; place-items: center; flex: 0 0 58px; width: 58px; height: 58px; border-radius: 6px; background: #eeece8; overflow: hidden; }
#billing-view .billing-artwork-thumb img { width: 100%; height: 100%; object-fit: cover; }
#billing-view .billing-artwork-copy { display: grid; flex: 1; min-width: 0; gap: 3px; }
#billing-view .billing-artwork-copy small { color: #625f5a; overflow-wrap: anywhere; }
#billing-view .billing-action-error { color: #9a2630; margin: 8px 0; }
#billing-view .billing-gallery-invalid { outline: 2px solid #b24650; outline-offset: 4px; border-radius: 8px; }
#billing-view .billing-gallery-options { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
#billing-view #billing-draft-editor .billing-gallery-options label { display: flex; align-items: flex-start; gap: 10px; width: 100%; padding: 12px; border: 1px solid #dcd9d3; border-radius: 10px; background: #fff; cursor: pointer; }
#billing-view #billing-draft-editor .billing-gallery-options input[type="radio"] { width: 18px; min-height: 0; height: 18px; margin: 2px 0 0; padding: 0; flex: 0 0 18px; }
#billing-view .billing-gallery-options label > span { min-width: 0; flex: 1; }
#billing-view .billing-gallery-options small { display: block; margin-top: 3px; color: #625f5a; font-weight: 400; }
#billing-view .billing-gallery-options label:has(input:checked) { border-color: #5e7665; background: #f5f8f5; }
@media (max-width: 480px) { #billing-view .billing-draft-pair { grid-template-columns: minmax(0, 1fr); } }
#billing-view form.billing-panel { display: block; width: 100%; }
#billing-view .billing-panel fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
#billing-view .billing-panel legend { font-size: 1.35rem; font-weight: 600; margin-bottom: 8px; }
#billing-view .billing-panel fieldset > p { margin: 0 0 20px; }
#billing-view .billing-progress { margin: 0; font-weight: 600; }
#billing-view .billing-progress-dots { display: flex; gap: 6px; margin: 10px 0 24px; }
#billing-view .billing-progress-dots span { display: grid; place-items: center; width: 28px; height: 18px; border-radius: 4px; background: linear-gradient(#e6e4e0, #e6e4e0) center / 100% 4px no-repeat; }
#billing-view .billing-progress-dots span.active { background-image: linear-gradient(#242424, #242424); }
#billing-view .billing-progress-dots span.saved { color: #376d50; background-image: linear-gradient(#dce9df, #dce9df); }
#billing-view .billing-progress-dots svg { width: 15px; height: 15px; background: #fff; }
#billing-view .billing-success { display: flex; align-items: center; gap: 7px; color: #376d50; font-weight: 600; animation: billing-confirm 160ms ease-out; }
#billing-view .billing-success svg { width: 19px; height: 19px; flex: none; }
@keyframes billing-confirm { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { #billing-view .billing-success { animation: none; } }
#billing-view .billing-choice-question { margin: 18px 0 10px; font-weight: 600; }
#billing-view .billing-choices { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; width: 100%; margin-bottom: 14px; }
#billing-view .billing-choices label { display: flex; width: 100%; gap: 12px; align-items: flex-start; padding: 12px; border: 1px solid #dcd9d3; border-radius: 10px; cursor: pointer; }
#billing-view .billing-choices label:has(input:checked) { border-color: #5e7665; background: #f5f8f5; }
#billing-view .billing-choices input[type="radio"] { width: 18px; height: 18px; min-height: 0; margin: 2px 0 0; padding: 0; accent-color: #376d50; flex: 0 0 18px; }
#billing-view .billing-choices label > span { flex: 1; min-width: 0; }
#billing-view .billing-choices strong, #billing-view .billing-choices small { display: block; }
#billing-view .billing-choices small { color: #625f5a; line-height: 1.45; margin-top: 4px; }
#billing-view .billing-guidance { color: #555e55; font-size: .9rem; line-height: 1.5; }
#billing-view .billing-help-toggle { border: 0; background: none; color: #625f5a; text-decoration: underline; padding: 4px 0 14px; text-align: left; cursor: pointer; }
#billing-view .billing-help { color: #625f5a; font-size: .9rem; margin: -8px 0 15px; }
#billing-view .billing-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 12px; padding: 18px 0 max(80px, env(safe-area-inset-bottom)); }
#billing-view .billing-actions #billing-back { margin-right: auto; }
#billing-view .billing-quick-terms { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
#billing-view .billing-quick-terms button { border: 1px solid #ccc9c3; border-radius: 999px; background: #fff; padding: 8px 12px; font: inherit; cursor: pointer; }
#billing-view .billing-summary-steps { display: grid; gap: 8px; margin: 22px 0; }
#billing-view .billing-summary-step { display: flex; align-items: center; gap: 12px; min-height: 48px; width: 100%; padding: 10px 12px; border: 1px solid #e1ded8; border-radius: 10px; background: #fff; text-align: left; font: inherit; cursor: pointer; }
#billing-view .billing-summary-step strong { flex: 1; }
#billing-view .billing-summary-step span { color: #625f5a; }
@media (max-width: 600px) { #billing-view .community-form-pair { display: block; } }

html,
body {
    margin: 0;
    width: 100%;
    height: 100%;
}

body {
    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Arial,
        sans-serif;

    background: #f1f1ef;
    color: #151515;
    overflow: hidden;
}

button {
    font: inherit;
}

.icon-sprite {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
}

.share-send-icon {
    display: inline-block;
    width: 1em;
    height: 1em;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
    vertical-align: -.12em;
    pointer-events: none;
}

.app-shell {
    position: relative;
    width: 100%;
    max-width: 520px;
    height: 100dvh;
    margin: 0 auto;

    display: grid;
    grid-template-rows:
        64px
        minmax(0, 1fr)
        94px;

    background: #fafaf8;
}

.preview-grid-open {
    position: static;
    z-index: 4;
    min-width: 44px;
    height: 44px;
    padding: 0 10px;
    border: 1px solid #d8d8d4;
    border-radius: 999px;
    background: rgba(250, 250, 248, .92);
    color: #555;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.preview-grid-count { font-size: 12px; font-weight: 700; line-height: 1; }
.preview-grid-tip {
    position: absolute;
    right: 16px;
    bottom: 151px;
    z-index: 5;
    max-width: calc(100% - 32px);
    padding: 7px 10px;
    border: 1px solid #dedbd4;
    border-radius: 8px;
    background: rgba(255, 255, 253, .96);
    box-shadow: 0 4px 14px rgba(0, 0, 0, .08);
    color: #333;
    font-size: 12px;
    white-space: nowrap;
    animation: preview-tip-in 180ms ease-out;
}

@keyframes preview-tip-in {
    from { opacity: 0; transform: translateY(3px); }
    to { opacity: 1; transform: translateY(0); }
}

.preview-grid-symbol {
    width: 17px;
    height: 17px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 3px;
}

.preview-grid-symbol span {
    border: 1.5px solid currentColor;
    border-radius: 1px;
}

.preview-grid-open.attention {
    animation: preview-grid-attention 650ms ease-out 2;
}

@keyframes preview-grid-attention {
    0%, 100% { box-shadow: 0 0 0 0 rgba(183, 45, 73, 0); }
    45% { box-shadow: 0 0 0 5px rgba(183, 45, 73, .16); }
}

@media (prefers-reduced-motion: reduce) {
    .preview-grid-open.attention { animation: none; }
    .preview-grid-tip { animation: none; }
    .nearby-radius-tip { animation: none; }
}

.preview-grid-view {
    position: fixed;
    inset: 0;
    z-index: 200;
    width: min(100%, 620px);
    margin: 0 auto;
    overflow-y: auto;
    background: #fafaf8;
}

.preview-grid-header {
    position: sticky;
    top: 0;
    z-index: 2;
    min-height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px;
    background: rgba(250, 250, 248, .96);
    border-bottom: 1px solid #e3e3df;
}

.preview-grid-header h1 {
    margin: 0;
    font-size: 22px;
}

.preview-grid-header button {
    width: 42px;
    height: 42px;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font-size: 30px;
}

.preview-grid {
    width: 100%;
    min-width: 0;
    column-count: 3;
    column-gap: 5px;
    padding: 5px 5px 24px;
}

.preview-grid-item {
    position: relative;
    width: 100%;
    min-width: 0;
    display: block;
    margin: 0 0 5px;
    padding: 0;
    overflow: hidden;
    break-inside: avoid;
    border: 0;
    background: transparent;
}

.preview-grid-item img {
    width: 100%;
    height: auto;
    display: block;
}

.preview-grid-item.viewed:not(.active) img {
    opacity: .72;
}

.preview-grid-item.active {
    outline: 2px solid #171717;
    outline-offset: -2px;
}

.topbar {
    padding: 0 18px;

    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
}

.brand {
    font-size: 25px;
    font-weight: 800;
    letter-spacing: -1px;
}

.global-header {
    position: sticky;
    top: 0;
    z-index: 5;
    width: 100%;
    height: 64px;
    padding: 0 12px;
    display: grid;
    grid-template-columns: 104px minmax(0, 1fr) 104px;
    align-items: center;
    gap: 4px;
    background: rgba(250, 250, 248, .95);
    backdrop-filter: blur(12px);
}

.global-home {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    min-width: 0;
    padding: 8px 4px;
    justify-self: center;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
    white-space: nowrap;
}

.global-header .detail-close,
.global-header .sell-close {
    justify-self: start;
}

.global-header .topbar-buttons {
    grid-column: 3;
    width: auto;
}

.global-header:not(.topbar) .topbar-buttons { display: contents; }
.global-header:not(.topbar) .global-search {
    position: absolute;
    right: 64px;
}
.global-header:not(.topbar) .global-profile {
    position: absolute;
    right: 12px;
}
.global-header:not(.topbar) .global-home img { width: 138px; }
.global-header:not(.topbar) .global-home { left: calc(50% - 24.5px); }

.topbar.global-header {
    grid-template-columns: 124px minmax(0, 1fr) 108px;
    padding-left: 12px;
}

.topbar.global-header .global-home {
    position: static;
    padding-right: 0;
    padding-left: 0;
    transform: none;
}
.topbar.global-header .global-home img { width: 116px; }
.topbar.global-header .events-entry { padding-inline: 8px; }
.topbar.global-header .topbar-buttons { display: contents; }
.topbar.global-header .global-search {
    position: absolute;
    left: calc(75% + 2px);
    transform: translateX(-50%);
}
.topbar.global-header .global-profile {
    position: absolute;
    right: 12px;
}

.home-brand-group {
    min-width: 0;
    display: flex;
    align-items: center;
}

.artist-swipe-back {
    width: 34px;
    height: 40px;
    flex: 0 0 auto;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font-size: 24px;
}

.counter {
    min-width: 0;
    justify-self: center;
    align-self: center;
    white-space: nowrap;
    color: #888;
    font-size: 13px;
    font-weight: 600;
}

.home-navigation {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.events-entry {
    min-height: 36px;
    padding: 0 10px;
    border: 1px solid #d8d8d4;
    border-radius: 999px;
    background: #fff;
    color: #333;
    font-size: 13px;
    font-weight: 750;
}

.profile-button {
    justify-self: end;

    width: 40px;
    height: 40px;

    border: 0;
    border-radius: 50%;

    background: #eeeeeb;

    font-size: 20px;
}

.topbar-buttons { justify-self: end; display: flex; align-items: center; gap: 14px; }
.search-button {
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    font-size: 27px;
    line-height: 1;
}

.discovery {
    min-width: 0;
    min-height: 0;
    padding: 0 12px 4px;

    display: flex;
    flex-direction: column;
}

.book-context {
    width: 100%;
    min-width: 0;
    min-height: 42px;
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr) auto;
    align-items: center;
    gap: 9px;
    margin: 0 0 8px;
    padding: 5px 9px;
    border: 1px solid #e3e3df;
    border-radius: 13px;
    background: rgba(255, 255, 255, .9);
    color: #333;
    text-align: left;
}

.book-context-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.book-artist-avatar {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 50%;
    background: #ece9e3;
    font-weight: 700;
}

.book-artist-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.art-card-stage {
    position: relative;
    flex: 1;
    min-width: 0;
    min-height: 0;
    display: grid;
}

.art-card-stage > .art-card {
    grid-area: 1 / 1;
}

.art-card {
    flex: 1;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 0;

    display: grid;
    grid-template-rows:
        minmax(0, 1fr)
        auto;

    overflow: hidden;

    background: white;
    border-radius: 22px;

    box-shadow:
        0 7px 26px rgba(0, 0, 0, 0.07);

    transform-origin: 50% 100%;

    touch-action: none;

    transition:
        transform 220ms ease,
        opacity 220ms ease;
}

.art-card-transition-outgoing {
    z-index: 2;
    margin: 0;
    pointer-events: none;
}

.art-card-transition-incoming {
    position: relative;
    z-index: 1;
}

.app-shell.swipe-transitioning .art-card-stage {
    overflow: hidden;
}

.app-shell.swipe-transitioning .art-card-stage > .art-card {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.app-shell.swipe-transitioning .actions {
    pointer-events: none;
}

.image-wrapper {
    position: relative;
    isolation: isolate;

    min-height: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    overflow: hidden;

    background: #eeeeeb;
}

.image-wrapper img {
    position: relative;
    z-index: 0;
    width: 100%;
    max-width: 100%;
    height: 100%;

    display: block;

    object-fit: contain;

    pointer-events: none;
    user-select: none;
}

.detail-hint {
    position: absolute;
    z-index: 2;
    bottom: 10px;
    left: 50%;

    transform: translateX(-50%);

    padding: 6px 10px;

    border-radius: 999px;

    background: rgba(255,255,255,.86);

    font-size: 11px;
    color: #555;

    opacity: .8;
}

.double-tap-heart {
    position: absolute;
    z-index: 6;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(.65);
    opacity: 0;
    font-size: clamp(64px, 22vw, 110px);
    filter: drop-shadow(0 5px 14px rgba(0, 0, 0, .28));
    pointer-events: none;
}

.double-tap-heart.visible {
    animation: double-tap-heart 560ms ease-out;
}

@keyframes double-tap-heart {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(.65); }
    22% { opacity: 1; transform: translate(-50%, -50%) scale(1.08); }
    72% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(1.18); }
}

@media (prefers-reduced-motion: reduce) {
    .double-tap-heart.visible {
        animation-duration: 1ms;
    }
}

.art-info {
    min-width: 0;
    padding: 14px 17px 15px;
}

.art-main-line {
    min-width: 0;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 14px;
}

.art-text {
    flex: 1 1 auto;
    min-width: 0;
}

.art-text h1,
.art-artist {
    margin: 0;

    font-size: 19px;
    line-height: 1.15;
}

.art-artist {
    display: block;
    width: 100%;
    max-width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    text-align: left;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.art-artist.clickable {
    cursor: pointer;
}

.art-title {
    margin-top: 3px;
    max-width: 100%;

    font-size: 16px;

    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    white-space: normal;
    overflow-wrap: anywhere;
    overflow: hidden;
}

.art-price {
    flex-shrink: 0;

    font-size: 13px;
    font-weight: 800;
}

.location-line {
    position: relative;
    margin-top: 8px;

    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    min-width: 0;
    gap: 4px;

    color: #777;

    font-size: 13px;
    align-items: center;
}

.artwork-motion {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    background: transparent;
    pointer-events: none;
}

.location-city {
    min-width: 0;
    display: flex;
    gap: 4px;
}
.location-line #art-city {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.global-home img {
    display: block;
    width: 138px;
    max-width: 100%;
    height: auto;
}
.location-line #nearby-open {
    grid-column: 2; min-height: 44px; padding: 0 2px; border: 0; background: none;
    color: #666; font: inherit; text-decoration: underline; cursor: pointer;
    white-space: nowrap;
}
.location-line.nearby-active #nearby-open { text-decoration: none; font-weight: 700; }
.location-line:not(.nearby-active) { grid-template-columns: minmax(0, 1fr) auto; }
.location-line:not(.nearby-active) #nearby-open { grid-column: 1; justify-self: start; }
.location-line .preview-grid-open {
    grid-column: 3;
    min-width: 44px;
    height: 44px;
    padding: 0 7px;
    gap: 4px;
}
.location-line:not(.nearby-active) .preview-grid-open { grid-column: 2; }
.nearby-radius-tip {
    position: absolute;
    z-index: 6;
    right: 44px;
    top: calc(100% + 3px);
    display: grid;
    gap: 2px;
    width: max-content;
    max-width: min(210px, calc(100vw - 48px));
    padding: 7px 9px;
    border: 1px solid #dedbd4;
    border-radius: 8px;
    background: rgba(255, 255, 253, .97);
    box-shadow: 0 4px 14px rgba(0, 0, 0, .08);
    color: #555;
    font-size: 11px;
    line-height: 1.25;
    pointer-events: none;
    animation: preview-tip-in 180ms ease-out;
}
.nearby-radius-tip strong { color: #333; font-size: 12px; }
.nearby-radius-tip.hidden { display: none; }
.location-line #art-artist-activity {
    grid-column: 1 / -1;
    min-width: 0;
    padding: 4px 0;
    border: 0;
    background: none;
    color: #555;
    font: inherit;
    font-weight: 700;
    text-align: right;
    cursor: pointer;
    overflow-wrap: anywhere;
}
.location-line #art-artist-activity.hidden { display: none; }
.artist-activity-panel {
    max-height: 190px;
    margin-top: 8px;
    padding-top: 8px;
    overflow-x: hidden;
    overflow-y: auto;
    border-top: 1px solid #e3e3df;
    color: #555;
    font-size: 12px;
}
.artist-activity-panel.hidden { display: none; }
.artist-activity-item {
    min-width: 0;
    padding: 6px 0 9px;
    overflow-wrap: anywhere;
}
.artist-activity-item + .artist-activity-item { border-top: 1px solid #ecebe7; }
.artist-activity-item strong { display: block; color: #222; font-size: 13px; }
.artist-activity-item p {
    display: -webkit-box;
    margin: 4px 0 0;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.artist-activity-opening { margin-top: 4px; color: #333; font-weight: 700; }
.artist-activity-note { margin-top: 2px; }
.artist-activity-item button {
    min-height: 36px;
    margin-top: 4px;
    padding: 4px 0;
    border: 0;
    background: none;
    color: #333;
    font: inherit;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
}
.nearby-panel { gap: 10px; }
.nearby-choice-separator {
    display: flex; align-items: center; gap: 10px; margin: 2px 0;
    color: #888; font-size: 12px;
}
.nearby-choice-separator::before, .nearby-choice-separator::after {
    content: ""; height: 1px; flex: 1; background: #e1e1dc;
}
.nearby-city-form { display: grid; gap: 9px; }
.nearby-city-form button, #nearby-position { width: 100%; }
.nearby-city-form button:disabled { opacity: .5; cursor: not-allowed; }
.postal-location-field { display: grid; gap: 8px; }
.postal-location-field label { display: grid; gap: 6px; }
.postal-location-select { width: 100%; padding: 11px; border: 1px solid #d8d8d4; border-radius: 10px; }
.postal-city-result { min-height: 20px; margin: 0; color: #555; font-weight: 650; }
.batch-postal-location { grid-column: 1 / -1; }

@media (max-width: 380px) {
    .location-line { gap: 2px; }
    .location-line .location-city { font-size: 12px; }
    .location-line #nearby-open { font-size: 12px; }
    .location-line .preview-grid-open { padding-inline: 5px; }
}

.actions {
    padding: 10px 28px 18px;

    display: flex;
    align-items: center;
    justify-content: space-between;
}

.action-button {
    border: 0;
    border-radius: 50%;

    background: white;

    box-shadow:
        0 4px 16px rgba(0,0,0,.09);

    cursor: pointer;

    transition: transform 100ms ease;
}

.action-button:active {
    transform: scale(.90);
}

.undo {
    width: 46px;
    height: 46px;
    color: #777;
    font-size: 23px;
}

.pass {
    width: 54px;
    height: 54px;

    color: #222;

    font-size: 27px;
}

.like {
    width: 64px;
    height: 64px;

    color: #e84260;

    font-size: 31px;
}

.star {
    width: 54px;
    height: 54px;

    color: #d69b18;

    font-size: 27px;
}

.action-button.like.active {
    background: #fff0f3;
    box-shadow: 0 4px 18px rgba(232, 66, 96, .28);
}

.action-button.star.active {
    background: #fff5d8;
    box-shadow: 0 4px 18px rgba(214, 155, 24, .32);
}

.empty-state {
    margin: auto;

    width: 100%;

    padding: 40px 25px;

    text-align: center;
}

.empty-state p {
    color: #777;
}

.empty-state button {
    margin-top: 15px;

    padding: 13px 22px;

    border: 0;
    border-radius: 999px;

    background: #171717;
    color: white;
}


/* DETAIL */

.detail-view {
    position: fixed;
    inset: 0;
    z-index: 50;

    background: white;

    overflow-y: auto;
}

.search-view {
    position: fixed;
    inset: 0;
    z-index: 45;
    overflow-y: auto;
    background: #fafaf8;
}

.search-content { max-width: 650px; margin: auto; padding: 18px 14px 50px; }
.search-field input {
    width: 100%;
    height: 52px;
    padding: 0 16px;
    border: 1px solid #deded9;
    border-radius: 15px;
    background: white;
    font: inherit;
    font-size: 16px;
    outline: none;
}
.search-field input:focus { border-color: #777; }
.search-status { margin: 34px 10px; color: #777; text-align: center; }
.search-results {
    min-width: 0;
    display: grid;
    gap: 24px;
    margin-top: 20px;
}

.action-button.share {
    width: 54px;
    height: 54px;
    color: #555;
    font-size: 22px;
}
.search-result-section {
    min-width: 0;
    display: grid;
    gap: 10px;
}
.search-result-section-header {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}
.search-result-section-header > h2 {
    min-width: 0;
    flex: 1 1 auto;
    margin: 0 2px 2px;
    color: #666;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}
.search-see-all {
    min-height: 40px;
    flex: 0 0 auto;
    margin-left: auto;
    padding: 4px 2px 4px 10px;
    border: 0;
    background: transparent;
    color: #666;
    font-size: 12px;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.search-event-card,
.search-artist-card {
    width: 100%;
    min-width: 0;
    border: 1px solid #e1e1dd;
    border-radius: 14px;
    background: #fff;
    color: #222;
    text-align: left;
}
.search-event-card {
    display: grid;
    gap: 3px;
    padding: 12px 14px;
}
.search-event-card-wrapper {
    min-width: 0;
    border: 1px solid #e1e1dd;
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
}
.search-event-card-wrapper .search-event-card { border: 0; border-radius: 0; }
.search-event-card-wrapper > .event-secondary-actions { padding: 0 14px 10px; }
.search-event-card > span,
.search-event-card > strong { min-width: 0; overflow-wrap: anywhere; }
.search-event-card > strong { font-size: 16px; }
.search-event-card > span:not(.search-result-type) { color: #666; font-size: 13px; }
.search-result-type {
    color: #777;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.search-event-card .search-event-opening { color: #333; font-weight: 750; }
.search-artist-card {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    min-height: 68px;
    padding: 10px 12px;
}
.search-artist-avatar {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 50%;
    background: #ecece8;
    font-weight: 800;
}
.search-artist-avatar img { width: 100%; height: 100%; object-fit: cover; }
.search-artist-copy { min-width: 0; }
.search-artist-copy strong,
.search-artist-copy > span { display: block; overflow-wrap: anywhere; }
.search-artist-copy > span { margin-top: 3px; color: #777; font-size: 13px; }
.search-artwork-grid { margin-top: 0; }
.search-swipe-action {
    min-height: 44px;
    justify-self: start;
    padding: 5px 2px;
    border: 0;
    background: transparent;
    color: #333;
    font: inherit;
    font-size: 14px;
    font-weight: 750;
    text-decoration: underline;
    text-underline-offset: 4px;
}
.search-swipe-shell #events-open { display: none; }
.search-swipe-shell .counter {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}
.search-all-view { padding-top: 14px; }
.search-all-back {
    min-height: 42px;
    padding: 5px 8px 5px 0;
    border: 0;
    background: transparent;
    color: #555;
    font-weight: 700;
}
.search-all-query { margin: 12px 0 4px; color: #777; font-size: 14px; }
.search-all-title { margin: 0 0 18px; font-size: 21px; }
.search-all-results { min-width: 0; display: grid; gap: 10px; }
.search-all-artworks { gap: 12px; }
#search-all-more { width: 100%; margin-top: 18px; }
@media (max-width: 380px) {
    .search-result-section-header { align-items: flex-start; gap: 6px; }
    .search-result-section-header > h2 { font-size: 12px; line-height: 1.35; }
    .search-see-all { margin-top: -8px; }
}
.search-field { position: relative; }
.search-field input { padding-right: 46px; }
.search-clear {
    position: absolute;
    right: 5px;
    top: 50%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    font-size: 24px;
    color: #666;
}
.filters-toggle { margin-top: 12px; padding: 9px 13px; border: 1px solid #deded9; border-radius: 999px; background: white; color: #444; }
.filters-toggle.active { border-color: #171717; color: #171717; }
.filters-panel { margin-top: 12px; padding: 16px; border-radius: 15px; background: white; box-shadow: 0 5px 18px rgba(0,0,0,.05); }
.filters-panel > label,
.dimension-fields label { display: grid; gap: 6px; margin-bottom: 13px; font-size: 13px; color: #555; }
.filters-panel input { width: 100%; height: 42px; padding: 0 11px; border: 1px solid #deded9; border-radius: 10px; font: inherit; }
.filters-panel label > span { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 7px; }
.filters-panel fieldset { margin: 18px 0 4px; padding: 0; border: 0; }
.filters-panel legend { margin-bottom: 12px; font-size: 13px; font-weight: 700; }
.dimension-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
.filters-reset { padding: 8px 0; border: 0; background: transparent; text-decoration: underline; color: #555; }

.detail-header {
    position: sticky;
    top: 0;
    z-index: 5;

    height: 58px;

    padding: 0 15px;

    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;

    background: rgba(255,255,255,.94);
    backdrop-filter: blur(12px);

    font-weight: 700;
}

.detail-close,
.detail-share {
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: #f0f0ee;
    font-size: 20px;
}

.detail-share {
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.detail-share {
    justify-self: end;
}

.global-back {
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.global-back svg {
    display: block;
    width: 20px;
    height: 20px;
}

.detail-image-zone {
    position: relative;
    width: 100%;
    max-width: 100%;
    height: min(62vh, 600px);

    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;

    background: #efefec;
}

#detail-image-zoom { touch-action: pan-y; }
#detail-image-zoom.zoomed { touch-action: none; }

.detail-image-zone img {
    width: 100%;
    max-width: 100%;
    height: 100%;

    object-fit: contain;
}

#detail-image {
    transform: translate3d(0, 0, 0) scale(1);
    transform-origin: center;
    will-change: transform;
    user-select: none;
    -webkit-user-drag: none;
}

.detail-zoom-hint {
    position: absolute;
    bottom: 10px;
    left: 50%;
    padding: 5px 9px;
    border-radius: 999px;
    transform: translateX(-50%);
    background: rgba(255, 255, 255, .82);
    color: #666;
    font-size: 11px;
    pointer-events: none;
}

#detail-image-zoom.zoomed .detail-zoom-hint { opacity: 0; }

@media (prefers-reduced-motion: reduce) {
    #detail-image { transition: none; }
}

.detail-content {
    width: 100%;
    max-width: 650px;

    margin: auto;

    padding: 22px 20px 50px;
}

#detail-price {
    max-width: 140px;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.2;
    text-align: right;
    white-space: normal;
}

.detail-title-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    gap: 12px;
}

.detail-title-row > div {
    min-width: 0;
}

#detail-title,
.detail-artist,
.detail-meta,
.detail-series,
.detail-seller,
.detail-location,
.detail-description {
    max-width: 100%;
    overflow-wrap: anywhere;
}

.detail-title-row h2,
.detail-artist {
    margin: 0 0 4px;

    font-size: 23px;
}

.detail-artist {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    text-align: left;
    font-weight: 700;
}

.detail-artist.clickable {
    cursor: pointer;
}

.public-artist-content {
    max-width: 600px;
    margin: auto;
    padding: 28px 0 60px;
    text-align: center;
}

.public-artist-avatar {
    width: 112px;
    height: 112px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 50%;
    background: #eeeeeb;
    font-size: 38px;
    font-weight: 750;
}

.public-artist-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.public-artist-content > h1 {
    margin: 18px 18px 4px;
    font-size: 25px;
}

.artist-follow-button {
    min-width: 92px;
    min-height: 42px;
    margin: 8px auto 10px;
    padding: 8px 18px;
    border: 1px solid #171717;
    border-radius: 999px;
    background: #fff;
    color: #171717;
    font-weight: 700;
}

.artist-follow-button.followed {
    background: #171717;
    color: #fff;
}

.artist-follow-message {
    min-height: 18px;
    margin: 0 18px 4px;
    color: #8a5b5b;
    font-size: 13px;
}

.artist-magic-form {
    width: min(100% - 36px, 360px);
    margin: 4px auto 10px;
    display: grid;
    gap: 8px;
}

.artist-contact-open {
    min-height: 42px;
    margin: 2px auto 12px;
    padding: 8px 16px;
    border: 0;
    background: transparent;
    color: #444;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.artist-contact-form {
    width: min(100% - 36px, 420px);
    margin: 4px auto 16px;
    display: grid;
    gap: 9px;
    text-align: left;
}

.artist-contact-form h2,
.artist-contact-form p { margin: 0; }

.artist-contact-form label { display: grid; gap: 6px; }
.artist-contact-form input,
.artist-contact-form textarea {
    min-width: 0;
    width: 100%;
    padding: 11px;
    border: 1px solid #ddd;
    border-radius: 12px;
    font: inherit;
}

.artist-magic-form label,
.visitor-magic-form label {
    display: grid;
    gap: 6px;
}

.artist-magic-form input,
.visitor-magic-form input {
    min-width: 0;
    border: 1px solid #ddd;
    border-radius: 12px;
    padding: 12px;
    font: inherit;
}

.visitor-magic-form {
    margin-top: 8px;
    padding-top: 12px;
    border-top: 1px solid #eee;
}

.followed-artists-content {
    width: min(100% - 32px, 600px);
    margin: 0 auto;
    padding: 24px 0 60px;
}

.followed-artists-list {
    display: grid;
    gap: 10px;
}

.followed-artist-card {
    width: 100%;
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 12px;
    border: 1px solid #e3e3df;
    border-radius: 12px;
    background: #fff;
    color: inherit;
    text-align: left;
}

.followed-artist-avatar {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 50%;
    background: #eeeeeb;
    font-weight: 750;
}

.followed-artist-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.followed-artist-copy {
    min-width: 0;
}

.followed-artist-copy strong,
.followed-artist-copy span {
    display: block;
    overflow-wrap: anywhere;
}

.followed-artist-copy span {
    margin-top: 3px;
    color: #777;
    font-size: 13px;
}

.public-artist-city { color: #777; }
.public-artist-identity-meta {
    min-height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}
.public-artist-instagram {
    display: inline-grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 50%;
    color: #555;
    font-size: 19px;
    text-decoration: none;
}
.public-artist-artworks-heading { cursor: default; }

.public-artist-swipe-link {
    width: calc(100% - 32px);
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 16px 16px;
    padding: 8px 12px;
    border: 1px solid #d8d8d4;
    border-radius: 12px;
    background: #fff;
    color: #333;
    font-weight: 700;
    text-decoration: none;
    overflow-wrap: anywhere;
}

.public-member-role {
    color: #777;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.public-artist-text {
    margin: 22px 20px 0;
    line-height: 1.55;
    white-space: pre-line;
    text-align: left;
}

.exhibitions-cv {
    min-width: 0;
    display: grid;
    gap: 14px;
}

.exhibition-year-group {
    min-width: 0;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 10px;
}

.exhibition-year {
    font-weight: 800;
}

.exhibition-year-items {
    min-width: 0;
    display: grid;
    gap: 6px;
}

.exhibition-entry,
.exhibition-plain-line {
    margin: 0;
    overflow-wrap: anywhere;
}

#public-artist-bio.clamped {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 6;
}

#public-artist-bio.expanded { display: block; }

#public-artist-bio-toggle {
    margin: 8px 20px 0;
    padding: 5px 0;
}

.public-artist-section-toggle {
    width: calc(100% - 32px);
    min-height: 48px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 0 16px 12px;
    padding: 0;
    border: 0;
    border-bottom: 1px solid #ddd;
    background: transparent;
    color: #555;
    font: inherit;
    font-weight: 750;
    text-align: left;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.public-artwork-total {
    margin: 24px 16px 8px;
    font-size: 18px;
    text-align: left;
}

.public-artist-section { margin-top: 34px; }

.artist-publications > h2 {
    margin: 0 16px 18px;
    color: #555;
    font-size: 12px;
    letter-spacing: .1em;
}
.artist-publications-list,
#artist-publications-list { display: grid; gap: 38px; }
.artist-publication { display: grid; gap: 10px; min-width: 0; }
.artist-publication-media { display: block; width: 100%; height: auto; max-height: 75vh; object-fit: contain; background: #000; }
.artist-publication-text { margin: 0 16px; white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.55; }
.artist-publication-date { margin: 0 16px; color: #777; font-size: .82rem; }

.public-artist-section-heading {
    margin: 0 16px 18px;
    padding-bottom: 12px;
    border-bottom: 1px solid #ddd;
    color: #555;
    font-size: 15px;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.detail-image-zone .artwork-motion {
    object-fit: contain;
}

.public-artist-news-group { margin-top: 22px; }
.public-artist-news-group > h3 {
    margin: 0 16px 10px;
    color: #777;
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
}

#public-artist-past-events-toggle {
    display: block;
    min-height: 44px;
    margin: 18px 16px 0;
    padding: 8px 0;
}

#public-artist-past-events-toggle.hidden { display: none; }

#public-artist-artworks .my-artworks-heading {
    margin: 22px 16px 0;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #777;
    text-align: left;
}

.public-artist-events,
.my-events-list {
    display: grid;
    gap: 14px;
    margin: 0 16px;
}

.events-view,
.event-detail-view {
    width: min(100%, 720px);
    height: 100dvh;
    margin: 0 auto;
    overflow-x: hidden;
    overflow-y: auto;
    background: #fafaf8;
}

.events-content,
.event-detail-content {
    width: min(100% - 28px, 640px);
    min-width: 0;
    margin: 0 auto;
    padding: 20px 0 56px;
}

.events-content h1 {
    margin: 0;
    font-size: clamp(25px, 7vw, 32px);
    line-height: 1.08;
}

.around-page-intro { display: grid; gap: 2px; margin-bottom: 8px; }
.around-page-intro p { margin: 0; color: #666; font-size: 14px; line-height: 1.35; }

.around-location {
    display: grid;
    gap: 0;
    margin-top: 0;
    padding: 0 7px;
    border-radius: 9px;
    background: #f2f1ed;
}

.around-location-row { display: flex; min-width: 0; min-height: 44px; align-items: center; justify-content: space-between; gap: 4px; white-space: nowrap; }
.around-location-heading { display: flex; min-width: 0; align-items: center; gap: 4px; }
.around-location-heading strong { max-width: clamp(62px, 24vw, 120px); overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.around-location-separator { color: #777; }
.around-location.gps-active .around-location-heading { flex: 1; }
.around-location.gps-active .around-location-separator { display: none; }
.around-location.gps-active #around-city-modify { margin-left: auto; }
.around-location-heading .text-action {
    min-height: 44px;
    padding: 0 2px;
    border: 0;
    background: transparent;
    color: #555;
    font: inherit;
}
.around-city-form { display: grid; grid-template-columns: minmax(0, 1fr) max-content; gap: 8px; align-items: center; }
.around-city-form input { box-sizing: border-box; width: 100%; min-width: 0; min-height: 44px; }
.around-city-form button {
    width: auto;
    min-height: 44px;
    padding: 0 12px;
    border: 1px solid #bbb;
    border-radius: 8px;
    background: #fff;
    color: inherit;
    font: inherit;
    font-weight: 750;
}
#around-city-form {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 4px;
    min-height: 44px;
}
#around-city-form::before {
    content: "📍";
    align-self: center;
    font-size: 14px;
    line-height: 1;
}
#around-city-form input {
    height: 44px;
    min-height: 44px;
    margin: 0;
    padding: 0 9px;
    border: 1px solid #bbb;
    border-radius: 8px;
    font-size: 14px;
}
#around-city-form button {
    height: 44px;
    margin: 0;
    padding: 0 9px;
    font-size: 13px;
}
.around-location > .events-message:empty { display: none; }
#around-position,
#jep-position {
    width: fit-content;
    min-height: 44px;
    padding: 0 4px;
    border: 0;
    background: transparent;
    color: #555;
    font: inherit;
    text-align: left;
}
#around-position { flex: 0 0 auto; padding: 0 2px; font-size: clamp(11px, 3.3vw, 14px); white-space: nowrap; }
.around-search-field {
    position: relative;
    display: block;
    margin-top: 6px;
}
.around-search-field > span {
    position: absolute;
    z-index: 1;
    left: 13px;
    top: 50%;
    transform: translateY(-50%);
    color: #666;
    font-size: 19px;
    line-height: 1;
    pointer-events: none;
}
.around-search-field input {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    min-height: 44px;
    padding: 9px 46px 9px 40px;
    border: 1px solid #d4d1cb;
    border-radius: 10px;
    background: #fff;
    color: inherit;
    font: inherit;
}
.around-search-field .search-clear {
    top: 50%;
    right: 2px;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
}
.around-quick-filters {
    display: flex;
    max-width: 100%;
    gap: 7px;
    margin: 10px 0 0;
    padding: 0 0 4px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
}
.around-quick-filters::-webkit-scrollbar { display: none; }
.around-quick-filters button {
    flex: 0 0 auto;
    min-height: 44px;
    padding: 7px 14px;
    border: 1px solid #d4d1cb;
    border-radius: 999px;
    background: #fff;
    color: #555;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}
.around-quick-filters button.active {
    border-color: #242421;
    background: #242421;
    color: #fff;
}
.around-quick-filters button:focus-visible { outline: 2px solid #777; outline-offset: 2px; }
.around-radius { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; border: 0; }
.around-radius legend { width: 100%; margin-bottom: 3px; font-size: 13px; font-weight: 750; }
.around-radius label { display: flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 11px; border: 1px solid #ccc; border-radius: 10px; background: #fff; }
.around-radius input { width: 18px; height: 18px; min-height: 18px; margin: 0; padding: 0; }
.around-section { margin-top: 24px; }
.around-section > h2 { margin: 0; font-size: 12px; letter-spacing: .16em; }
.around-institutions { display: grid; gap: 10px; margin-top: 16px; }
.around-institution-card { width: 100%; min-width: 0; }
.around-distance, .around-distance-text { color: #555; font-size: 12px; font-weight: 750; }
.around-distance { display: inline-flex; align-items: center; padding: 3px 8px; border: 1px solid #aaa; border-radius: 999px; }
.around-distance-text { display: block; margin-top: 3px; }
.jep-entry {
    display: grid;
    gap: 6px;
    margin: 24px 0 8px;
    padding: 20px 0 18px;
    border-top: 1px solid #bbb;
    border-bottom: 1px solid #ddd;
}
.jep-entry p, .jep-entry strong, .jep-entry span { margin: 0; }
.jep-entry p, .jep-kicker { font-size: 11px; font-weight: 800; letter-spacing: .15em; }
.jep-entry strong { font-family: Georgia, serif; font-size: 24px; font-weight: 500; }
.jep-entry .text-action {
    width: fit-content;
    min-height: 44px;
    justify-self: start;
    padding: 8px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: inherit;
    font-weight: 750;
}
.jep-entry .text-action:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.jep-entry-compact { display: block; margin: 14px 0 2px; padding: 0; overflow: hidden; border: 0; border-radius: 12px; background: transparent; }
.around-jep-banner { display: block; width: 100%; max-width: 100%; padding: 0; overflow: hidden; border: 0; border-radius: 12px; background: transparent; }
.around-jep-banner img { display: block; width: 100%; max-width: 100%; height: auto; }
.jep-view { position: fixed; inset: 0; z-index: 20; overflow-y: auto; background: #fff; }
.jep-content { width: min(100%, 760px); margin: 0 auto; padding: 24px 18px 110px; }
.jep-content > h1 { max-width: 620px; margin: 7px 0 4px; font-family: Georgia, serif; font-size: clamp(34px, 9vw, 58px); font-weight: 500; line-height: .98; }
.jep-dates { margin: 10px 0 24px; font-size: 19px; }
.jep-journey-open {
    width: fit-content;
    min-height: 44px;
    margin: -14px 0 22px;
    padding: 7px 0 5px;
    border: 0;
    border-bottom: 1px solid currentColor;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}
.jep-location { margin-bottom: 18px; }
.jep-browse-controls { display: grid; gap: 9px; margin: 4px 0 0; }
.jep-browse-controls > label { font-size: 13px; font-weight: 750; }
.jep-search-field { position: relative; min-width: 0; }
.jep-search-field > span {
    position: absolute;
    z-index: 1;
    left: 13px;
    top: 50%;
    transform: translateY(-50%);
    color: #666;
    font-size: 20px;
    line-height: 1;
    pointer-events: none;
}
.jep-search-field > input {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    min-height: 46px;
    padding: 10px 12px 10px 42px;
    border: 1px solid #d4d1cb;
    border-radius: 10px;
    background: #fff;
    color: inherit;
    font: inherit;
}
.jep-search-field > input:focus-visible,
.jep-day-filters button:focus-visible,
.jep-category-list button:focus-visible,
.jep-category-more:focus-visible,
.jep-more:focus-visible { outline: 2px solid #171717; outline-offset: 3px; }
.jep-day-filters { display: flex; flex-wrap: wrap; gap: 0 16px; }
.jep-day-filters button {
    width: auto;
    min-height: 44px;
    padding: 7px 0 5px;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background: transparent;
    color: #666;
    font: inherit;
    font-size: 13px;
    cursor: pointer;
}
.jep-day-filters button[aria-pressed="true"] {
    border-bottom-color: #171717;
    color: #171717;
    font-weight: 800;
}
.jep-category-filter { display: grid; gap: 1px; margin-top: 5px; padding-top: 9px; border-top: 1px solid #ddd; }
.jep-category-list { display: flex; flex-wrap: wrap; gap: 0 15px; }
.jep-category-list button,
.jep-category-more {
    width: auto;
    min-height: 40px;
    padding: 6px 0 4px;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background: transparent;
    color: #666;
    font: inherit;
    font-size: 13px;
    cursor: pointer;
}
.jep-category-list button[aria-pressed="true"] {
    border-bottom-color: #171717;
    color: #171717;
    font-weight: 800;
}
.jep-category-more { min-height: 38px; justify-self: start; color: #333; font-weight: 750; }
.jep-category-secondary { padding-bottom: 3px; }
.jep-count { margin: 18px 0 16px; font-size: 13px; font-weight: 750; }
.jep-events { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 16px; }
.jep-event-card {
    display: grid;
    width: 100%;
    min-width: 0;
    padding: 0;
    color: inherit;
    text-align: left;
}
.jep-event-card:not(:last-child) { padding-bottom: 32px; border-bottom: 1px solid #ddd; }
.jep-event-main {
    display: grid;
    width: 100%;
    min-width: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
}
.jep-event-main img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; object-position: center; background: #eee; }
.jep-event-card.no-image .jep-event-main { min-height: 150px; padding-top: 18px; align-content: center; }
.jep-event-copy { display: grid; min-width: 0; gap: 5px; padding-top: 10px; }
.jep-event-copy > * { min-width: 0; overflow-wrap: anywhere; }
.jep-event-copy strong { font-family: Georgia, serif; font-size: 20px; line-height: 1.08; }
.jep-event-timing { font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.jep-event-distance { color: #555; font-size: 12px; font-weight: 750; }
.jep-save-action {
    width: fit-content;
    min-height: 44px;
    padding: 7px 0 5px;
    border: 0;
    border-bottom: 1px solid #777;
    border-radius: 0;
    background: transparent;
    color: #555;
    font: inherit;
    font-size: 12px;
    font-weight: 750;
    cursor: pointer;
}
.jep-save-action.is-saved { border-bottom-color: #171717; color: #171717; }
.jep-event-main:focus-visible,
.jep-save-action:focus-visible,
.jep-journey-open:focus-visible { outline: 2px solid #171717; outline-offset: 3px; }
.jep-journey-content > h1 { margin-bottom: 0; }
.jep-journey-intro {
    max-width: 560px;
    margin: 9px 0 14px;
    color: #555;
    line-height: 1.45;
}
.jep-journey-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 8px;
    margin: 0 0 22px;
    padding: 8px 10px;
    border-radius: 10px;
    background: #f1f0ec;
}
.jep-journey-total { margin: 0 0 18px; font-size: 13px; font-weight: 750; }
.jep-journey-toolbar .jep-journey-total { width: max-content; max-width: 100%; margin: 0; text-align: center; }
.jep-journey-map-open {
    min-height: 44px;
    margin: -10px 0 22px;
    padding: 7px 0 5px;
    border: 0;
    border-bottom: 1px solid currentColor;
    border-radius: 0;
    background: transparent;
    color: #333;
    font: inherit;
    font-size: 13px;
    font-weight: 750;
    cursor: pointer;
}
.jep-journey-toolbar .jep-journey-map-open,
.jep-journey-toolbar .jep-share-action {
    min-height: 44px;
    margin: 0;
    padding: 5px 6px;
    border-bottom: 0;
    font-size: 12px;
    line-height: 1.2;
    white-space: nowrap;
}
.jep-journey-toolbar .jep-journey-map-open { display: inline-flex; align-items: center; gap: 4px; }
.jep-journey-toolbar .jep-share-action { gap: 4px; }
.jep-journey-toolbar .share-send-icon { width: 13px; height: 13px; }
.jep-journey-map-open:focus-visible { outline: 2px solid #171717; outline-offset: 3px; }
.jep-share-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0 18px; margin: -10px 0 22px; }
.jep-share-action {
    display: inline-flex;
    width: fit-content;
    min-height: 44px;
    align-items: center;
    padding: 7px 0 5px;
    border: 0;
    border-bottom: 1px solid currentColor;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}
.jep-share-actions .events-message { flex-basis: 100%; margin: 4px 0 0; }
.jep-share-action:focus-visible { outline: 2px solid #171717; outline-offset: 3px; }
#jep-journey-magic-form { width: 100%; }
#jep-journey-magic-form .jep-magic-submit {
    width: 100%;
    min-height: 46px;
    justify-content: center;
    padding: 10px 14px;
    border: 0;
    border-radius: 12px;
    background: #171717;
    color: #fff;
    text-align: center;
}
#jep-journey-magic-form .jep-magic-password-note {
    display: block;
    color: #777;
    font-size: 12px;
    line-height: 1.4;
    text-decoration: none;
}
#jep-journey-magic-message:empty { display: none; }
#jep-journey-magic-message.is-success {
    display: grid;
    gap: 4px;
    width: 100%;
    margin: 2px 0 0;
    padding: 11px 12px;
    border: 1px solid #dedbd4;
    border-radius: 12px;
    background: #f1f0ec;
    color: #333;
    font-size: 13px;
    line-height: 1.4;
}
#jep-journey-magic-message.is-success strong { font-weight: 750; }
#jep-journey-magic-message.is-success span { font-weight: 400; }
.jep-journey-days { display: grid; }
.jep-journey-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 16px; }
.jep-journey-card:not(:last-child) { padding-bottom: 0; border-bottom: 0; }
.jep-journey-timings { display: grid; gap: 4px; font-size: 12px; line-height: 1.35; }
.jep-journey-timings > span { display: block; }
.jep-journey-timings strong { font-family: inherit; font-size: inherit; font-weight: 800; }
.jep-event-city { color: #555; font-size: 12px; }
.jep-journey-empty { margin-top: 4px; }
.jep-journey-map-content { width: min(100%, 960px); }
.jep-journey-map-content > h1 { margin-bottom: 0; }
.jep-journey-map-summary { margin: 8px 0 16px; color: #555; font-size: 13px; font-weight: 700; }
.jep-journey-map-content > .events-message { margin: 0 0 8px; }
.jep-journey-map {
    width: 100%;
    height: clamp(400px, calc(100dvh - 260px), 680px);
    min-height: 400px;
    overflow: hidden;
    border: 1px solid #d9d8d3;
    border-radius: 12px;
    background: #e8e6df;
}
.jep-journey-map .leaflet-control-attribution { font-size: 10px; }
.jep-journey-map-popup { display: grid; min-width: 170px; gap: 5px; color: #171717; }
.jep-journey-map-popup strong { font-family: Georgia, serif; font-size: 15px; line-height: 1.2; }
.jep-journey-map-popup span { color: #555; font-size: 12px; }
.jep-journey-map-popup button {
    width: fit-content;
    margin-top: 3px;
    padding: 4px 0;
    border: 0;
    border-bottom: 1px solid currentColor;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 12px;
    font-weight: 750;
    cursor: pointer;
}
.jep-journey-discover {
    min-height: 44px;
    padding: 7px 0 5px;
    border: 0;
    border-bottom: 1px solid currentColor;
    border-radius: 0;
    background: transparent;
    color: #171717;
    font: inherit;
    font-weight: 750;
    text-align: left;
    cursor: pointer;
}
.jep-more {
    display: block;
    width: fit-content;
    min-height: 44px;
    margin: 28px auto 0;
    padding: 8px 0;
    border: 0;
    border-bottom: 1px solid currentColor;
    border-radius: 0;
    background: transparent;
    color: #333;
    font: inherit;
    font-weight: 750;
    cursor: pointer;
}
.jep-more:disabled { color: #888; cursor: wait; }
.jep-detail-image { margin-bottom: 0; }
.jep-detail-save { margin: 14px 0 0; }
.public-jep-route-view { background: #fafaf8; }
.public-jep-brand { display: inline-flex; grid-column: 2; justify-self: center; }
.public-jep-brand img { display: block; width: 138px; max-width: 100%; }
.public-jep-route-count { margin: 10px 0 28px; color: #555; font-weight: 750; }
.public-jep-cta { margin-top: 48px; padding-top: 26px; border-top: 1px solid #bbb; }
.public-jep-cta p { margin: 0 0 14px; font-family: Georgia, serif; font-size: 21px; line-height: 1.2; }
.jep-image-credit { display: block; }
.jep-source { border-top: 1px solid #ddd; }
.jep-timing-day { display: grid; }
.jep-timing-day p, .jep-practical p, .jep-source p { margin: 0; white-space: pre-line; }
.jep-discover-place { min-height: 44px; margin-top: 20px; }
.jep-source { margin-top: 30px; padding-top: 18px; font-size: 13px; }
.jep-source a { display: inline-block; margin-top: 8px; color: inherit; font-weight: 750; }
@media (max-width: 520px) {
    .jep-content { padding-inline: 15px; }
    .jep-events { grid-template-columns: minmax(0, 1fr); gap: 32px; }
    .jep-journey-list { grid-template-columns: minmax(0, 1fr); }
    .jep-day-filters { gap-inline: 13px; }
    .jep-journey-map { height: calc(100dvh - 240px); min-height: 390px; border-radius: 10px; }
}

/* AS-085 — agenda JEP public compact, sans modification du moteur. */
.jep-view { background: #fafaf8; }
.jep-content { padding-top: 14px; }
.jep-hero {
    position: relative;
    aspect-ratio: 4 / 1;
    margin-bottom: 12px;
    overflow: hidden;
    border-radius: 16px;
    background: #1249a7;
}
.jep-hero img {
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    max-width: none;
    height: auto;
    display: block;
    transform: translateY(-50%);
}
.jep-location {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0 10px;
    min-height: 44px;
    margin: 0 0 8px;
    padding: 0 10px;
    border-radius: 10px;
    background: #efeee9;
}
.jep-location .around-location-heading { min-width: 0; flex-wrap: nowrap; }
.jep-location .around-location-heading::before { content: "📍"; margin-right: 3px; }
.jep-location .around-location-heading strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jep-location #jep-position { min-width: 0; padding: 0; font-size: clamp(11px, 3.2vw, 13px); white-space: nowrap; }
.jep-location .around-city-form,
.jep-location > .events-message { grid-column: 1 / -1; }
.jep-journey-open {
    width: 100%;
    min-height: 56px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 0 0 12px;
    padding: 9px 12px;
    border: 1px solid #dedbd4;
    border-radius: 12px;
    background: #fff;
    text-align: left;
}
.jep-journey-open > span:first-child { min-width: 0; display: grid; gap: 2px; }
.jep-journey-open strong { font-size: 14px; font-weight: 700; }
.jep-journey-open small { color: #666; font-size: 12px; font-weight: 400; }
.jep-journey-open > span:last-child:not(:first-child) { flex: 0 0 auto; color: #444; font-size: 13px; font-weight: 600; }
.jep-browse-controls { gap: 8px; margin-top: 0; }
.jep-search-field > input { min-height: 48px; }
.jep-filter-toolbar { display: flex; min-width: 0; align-items: center; gap: 5px; }
.jep-day-filters { min-width: 0; flex: 1 1 auto; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 3px; }
.jep-day-filters button {
    width: 100%;
    padding: 5px 2px;
    border: 1px solid #dedbd4;
    border-radius: 999px;
    background: #fff;
    color: #555;
    font-size: 12px;
    font-weight: 600;
}
.jep-day-filters button[aria-pressed="true"] { border-color: #171717; background: #171717; color: #fff; font-weight: 700; }
.jep-category-more {
    flex: 0 0 auto;
    min-height: 44px;
    padding: 5px 10px;
    border: 1px solid #aaa69d;
    border-radius: 999px;
    background: transparent;
    color: #171717;
    font-size: 12px;
    font-weight: 600;
}
.jep-category-more.has-active-filter::after { content: " •"; color: #a42644; }
.jep-category-more[aria-expanded="true"] { border-color: #171717; background: #fff; font-weight: 700; }
.jep-category-filter:has(.jep-category-secondary.hidden) { display: none; }
.jep-category-filter { display: block; margin-top: 0; padding: 8px 10px; border: 1px solid #dedbd4; border-radius: 12px; background: #fff; }
.jep-category-list { gap: 2px 12px; }
.jep-category-list button { min-height: 44px; font-size: 13px; font-weight: 400; }
.jep-category-list button[aria-pressed="true"] { font-weight: 700; }
.jep-count { margin: 16px 2px 10px; color: #555; font-size: 13px; font-weight: 600; }
.jep-events { gap: 14px; }
.jep-event-card {
    overflow: hidden;
    border: 1px solid #e3e3df;
    border-radius: 12px;
    background: #fff;
}
.jep-event-card:not(:last-child) { padding-bottom: 0; border-bottom: 1px solid #e3e3df; }
.jep-event-main { grid-template-columns: 96px minmax(0, 1fr); align-items: stretch; }
.jep-event-main img,
.jep-event-placeholder { width: 96px; height: 100%; min-height: 132px; max-height: 168px; display: grid; place-items: center; object-fit: cover; object-position: center; background: #e5e1d8; }
.jep-event-placeholder { color: #6a655c; font-family: Georgia, serif; font-size: 17px; letter-spacing: .12em; }
.jep-event-card.no-image .jep-event-main { min-height: 0; padding-top: 0; align-content: stretch; }
.jep-event-copy { align-content: start; gap: 3px; padding: 11px 12px 8px; }
.jep-event-copy strong { font-family: inherit; font-size: 16px; font-weight: 700; line-height: 1.16; }
.jep-event-eyebrow { color: #775c48; font-size: 10px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.jep-event-copy > span:not(.jep-event-eyebrow) { color: #555; font-size: 12px; font-weight: 400; line-height: 1.32; }
.jep-event-copy > span:nth-of-type(2) { color: #444; font-weight: 700; }
.jep-event-location, .jep-event-timing { color: #666; }
.jep-event-copy > .jep-event-opening { color: #7c263d; font-weight: 700; }
.jep-event-distance { display: none; }
.jep-event-card > .event-secondary-actions {
    min-height: 48px;
    justify-content: flex-end;
    gap: 4px;
    padding: 2px 8px;
    border-top: 1px solid #efede8;
}
.jep-event-card > .event-secondary-actions button { width: auto; min-height: 44px; padding: 5px 7px; font-size: 12px; font-weight: 700; }
.jep-event-card > .event-secondary-actions button:not(.jep-save-action) { order: 1; }
.jep-event-card > .event-secondary-actions .jep-save-action { order: 2; border-bottom: 0; }
.jep-event-card > .event-secondary-actions .event-action-message { order: 3; flex-basis: 100%; }
@media (max-width: 520px) {
    .jep-hero { aspect-ratio: 3.2 / 1; }
    .jep-hero img { width: 125%; }
    .jep-events { gap: 12px; }
    .jep-day-filters { gap: 3px; }
}
@media (max-width: 370px) {
    .jep-content { padding-inline: 12px; }
    .jep-location { gap: 6px; padding-inline: 8px; }
    .jep-location #jep-position { font-size: 11px; }
    .jep-filter-toolbar { gap: 3px; }
    .jep-day-filters button, .jep-category-more { font-size: 11px; }
    .jep-category-more { padding-inline: 7px; }
    .jep-event-main { grid-template-columns: 96px minmax(0, 1fr); }
    .jep-event-main img, .jep-event-placeholder { width: 96px; }
}
.event-geocoding { display: grid; gap: 9px; padding: 6px 0; text-align: left; }
.event-geocoding > p { margin: 0; color: #666; font-size: 13px; }
.event-geocoding > p.is-localized { color: inherit; }
.event-geocoding > p.is-localized::before { content: "\2713"; margin-right: 6px; color: #238636; font-weight: 800; }
.event-geocoding-results { display: grid; width: 100%; gap: 8px; }
.event-geocoding-option { display: flex; width: 100%; min-width: 0; align-items: flex-start; gap: 10px; padding: 10px 0; border-top: 1px solid #ddd; cursor: pointer; }
.my-event-form .event-geocoding-option input,
.institution-profile-form .event-geocoding-option input { display: inline-block; flex: 0 0 auto; width: 18px; height: 18px; min-height: 18px; margin: 2px 0 0; }
.event-geocoding-option span { flex: 1 1 auto; min-width: 0; white-space: normal; overflow-wrap: break-word; }

.events-intro,
.events-message,
.events-empty {
    color: #666;
    line-height: 1.45;
}

.events-list {
    min-width: 0;
    display: grid;
    gap: 14px;
    margin-top: 16px;
}

.public-event-card {
    width: 100%;
    min-width: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid #e3e3df;
    border-radius: 15px;
    background: #fff;
    color: inherit;
    text-align: left;
}

.public-event-card-wrapper {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #e3e3df;
    border-radius: 15px;
    background: #fff;
}

.public-event-card-wrapper .public-event-card { border: 0; border-radius: 0; }

.public-event-card:focus-visible {
    outline: 3px solid #777;
    outline-offset: 2px;
}

.public-event-card .artist-event-image {
    height: clamp(150px, 42vw, 210px);
    max-height: none;
    object-fit: cover;
}
.public-event-card .artist-event-copy { padding: 12px 14px 10px; }
.public-event-card .artist-event-title { margin: 4px 0; font-size: 17px; line-height: 1.2; }
.public-event-card .artist-event-place,
.public-event-card .artist-event-dates { font-size: 13px; line-height: 1.35; }

.around-event-card {
    border-radius: 12px;
    box-shadow: none;
}
.around-event-card .public-event-card {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    align-items: stretch;
}
.around-event-card .artist-event-image,
.around-event-placeholder {
    width: 96px;
    height: 100%;
    min-height: 132px;
    max-height: 168px;
    border-radius: 0;
    object-fit: cover;
}
.around-event-placeholder {
    display: grid;
    place-items: center;
    background: linear-gradient(145deg, #ece9e2, #dcd8cf);
    color: #777269;
    font-family: Georgia, serif;
    font-size: 15px;
    letter-spacing: .16em;
}
.around-event-card .artist-event-copy { min-width: 0; padding: 11px 12px 8px; }
.around-event-card .public-event-badges { gap: 5px; margin-bottom: 5px; }
.around-event-card .event-status { display: none; }
.around-event-card .event-opening-signal { min-height: 20px; padding: 2px 6px; font-size: 9px; }
.around-event-card .artist-event-type { color: #775c48; font-size: 10px; font-weight: 800; letter-spacing: .11em; }
.around-event-card .artist-event-title { margin: 4px 0 6px; font-size: 15.5px; line-height: 1.16; overflow-wrap: anywhere; }
.around-event-card .artist-event-place,
.around-event-card .artist-event-dates,
.around-event-card .around-event-schedule { overflow-wrap: anywhere; font-size: 12px; line-height: 1.32; }
.around-event-card .artist-event-place { color: #444; font-weight: 700; }
.around-event-card .artist-event-dates,
.around-event-card .around-event-schedule { margin-top: 3px; color: #777; }
.around-event-card > .event-secondary-actions {
    justify-content: flex-end;
    gap: 2px;
    min-height: 48px;
    padding: 2px 8px;
    border-top: 1px solid #efede8;
}
.around-event-card > .event-secondary-actions button {
    display: grid;
    width: 44px;
    min-width: 44px;
    min-height: 44px;
    place-items: center;
    padding: 0;
    color: #383733;
    font-size: 22px;
    line-height: 1;
}
.around-event-card > .event-secondary-actions button[aria-pressed="true"] { color: #9a4f4f; }
.around-event-card > .event-secondary-actions .event-action-message { flex: 1 1 100%; text-align: right; }

.public-event-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.event-status, .event-opening-signal {
    display: inline-flex;
    min-height: 24px;
    align-items: center;
    padding: 3px 8px;
    border-radius: 999px;
    background: #272723;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.event-status-upcoming { background: #e9e3d8; color: #332f29; }
.event-status-past { background: #ececea; color: #666; }
.event-opening-signal { border: 1px solid #9f7658; background: #fff; color: #805739; }

.event-detail-content > * {
    min-width: 0;
    overflow-wrap: anywhere;
}

.event-detail-image {
    width: 100%;
    max-width: 100%;
    aspect-ratio: 16 / 10;
    max-height: 390px;
    display: block;
    object-fit: contain;
    border-radius: 15px;
    background: #f3f3f0;
}

.event-detail-image-credit {
    margin: 7px 2px 0;
    color: #777;
    font-size: 11px;
    line-height: 1.35;
}
.event-detail-image-credit + .event-detail-type { margin-top: 12px; }

.event-detail-type {
    margin-top: 18px;
    color: #777;
    font-size: 12px;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.event-detail-title {
    margin: 4px 0 7px;
    font-family: Georgia, serif;
    font-size: clamp(23px, 6.24vw, 31px);
    line-height: 1.06;
    letter-spacing: -.018em;
}

.event-detail-place,
.event-detail-dates {
    margin-top: 5px;
    color: #555;
}

.event-detail-description {
    margin: 22px 0;
    line-height: 1.6;
    white-space: pre-line;
}

.event-source-link {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    padding: 0 14px;
    border: 1px solid #aaa;
    border-radius: 10px;
    color: inherit;
    text-decoration: none;
    font-weight: 700;
}

.event-secondary-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 12px;
    padding: 0 14px 12px;
}

.event-secondary-actions button, .event-artist-artworks {
    border: 0;
    padding: 5px 0;
    background: none;
    color: #555;
    font: inherit;
    font-size: 13px;
    cursor: pointer;
}

.event-secondary-actions button:focus-visible, .event-artist-artworks:focus-visible {
    outline: 2px solid #777;
    outline-offset: 2px;
}

.event-action-message { min-width: 0; color: #777; font-size: 12px; }
.event-detail-content > .event-secondary-actions { padding: 10px 0 0; }
.event-detail-content > .event-secondary-actions button {
    flex: 1 1 120px;
    min-height: 44px;
    padding: 9px 12px;
    border: 1px solid #bbb;
    border-radius: 10px;
    background: #fff;
    text-align: center;
}
.event-detail-content > .event-secondary-actions button:hover { background: #f5f4f1; }
.event-detail-content > .event-secondary-actions .event-action-message { flex-basis: 100%; }
.artist-event-card > .event-secondary-actions { padding: 0 14px 12px; }
.event-ended { color: #777; font-size: 13px; font-weight: 700; }

.event-detail-location { margin-top: 18px; }
.event-detail-place { color: #222; font-size: 17.5px; font-weight: 600; line-height: 1.2; }
.event-detail-address, .event-detail-city { margin-top: 7px; color: #666; font-size: 15.5px; font-weight: 400; line-height: 1.25; }
.event-detail-address:not(.hidden)::before { content: "📍 "; color: #777; }
.event-detail-travel {
    min-height: 44px;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0 7px;
    margin-top: -3px;
    color: #666;
}
.event-detail-travel .around-distance-text { color: #666; font-size: 14.25px; font-weight: 500; }
.event-detail-travel .around-distance-text,
.event-detail-travel-separator,
.event-detail-travel .event-route-link { line-height: 1.35; }
.event-detail-travel-separator { color: #999; }
.event-detail-travel .event-route-link { align-items: baseline; font-size: 14.25px; font-weight: 600; }
.event-route-link {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    color: #444;
    font-weight: 700;
    text-decoration: none;
}
.event-detail-dates { margin-top: 16px; color: #222; font-weight: 700; }
.event-detail-section {
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid #deddd8;
}
.event-detail-section h2 {
    margin: 0 0 10px;
    color: #555;
    font-size: 12px;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.event-detail-opening { padding: 18px; border: 0; border-radius: 13px; background: #f1ece4; }
.event-detail-opening p { margin: 0; line-height: 1.45; }
.event-detail-opening .event-detail-opening-note { margin-top: 8px; color: #555; }
.event-detail-description { margin: 0; }
.event-detail-about .event-detail-description { font-size: 16px; line-height: 1.5; }
.event-detail-description.collapsed:not(.expanded) {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 6;
}
.event-detail-description.institution-event-description.collapsed:not(.expanded) {
    -webkit-line-clamp: 4;
}
.event-description-toggle {
    margin-top: 4px;
}
.text-expand-toggle {
    width: auto;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    padding: 8px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: #606060;
    font: inherit;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.2;
    cursor: pointer;
}
.text-expand-toggle::after { content: "↓"; color: #666; font-size: 13px; }
.text-expand-toggle[aria-expanded="true"]::after { content: "↑"; }
.text-expand-toggle:hover { color: #171717; text-decoration: underline; text-underline-offset: 3px; }
.text-expand-toggle:focus-visible { outline: 2px solid #171717; outline-offset: 2px; }

.event-practical {
    display: grid;
    gap: 0;
    margin-top: 14px;
    padding: 14px 16px;
    border: 0;
    border-radius: 14px;
    background: #f1f0ec;
}
.event-practical h2 { margin-bottom: 8px; color: #333; }
.event-practical-timings { display: grid; }
.event-practical-row {
    min-width: 0;
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 9px;
    padding: 7px 0;
    border-top: 1px solid #deddd8;
    color: #333;
    line-height: 1.35;
}
.event-practical h2 + .event-practical-row,
.event-practical h2 + .event-practical-timings .event-practical-row:first-child { border-top: 0; }
.event-practical-icon {
    position: relative;
    width: 19px;
    height: 19px;
    display: block;
    color: #555;
}
.event-practical-icon::before,
.event-practical-icon::after { content: ""; position: absolute; box-sizing: border-box; }
.event-practical-icon-calendar::before {
    inset: 3px 2px 1px;
    border: 1.4px solid currentColor;
    border-radius: 2px;
    background: linear-gradient(currentColor, currentColor) 0 4px / 100% 1px no-repeat;
}
.event-practical-icon-calendar::after {
    top: 1px;
    left: 5px;
    width: 9px;
    height: 5px;
    border-right: 1.4px solid currentColor;
    border-left: 1.4px solid currentColor;
}
.event-practical-icon-ticket::before {
    inset: 4px 1px 2px;
    border: 1.4px solid currentColor;
    border-radius: 3px;
    transform: rotate(-8deg);
}
.event-practical-icon-clock::before { inset: 2px; border: 1.4px solid currentColor; border-radius: 50%; }
.event-practical-icon-clock::after {
    top: 5px;
    left: 9px;
    width: 4px;
    height: 6px;
    border-bottom: 1.4px solid currentColor;
    border-left: 1.4px solid currentColor;
}
.event-practical-icon-info::before {
    top: 8px;
    left: 7px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: currentColor;
}
.event-practical-row > span:last-child { display: grid; gap: 1px; }
.event-practical-row strong { font-size: 14px; }
.event-practical-row small { color: #555; font-size: 13px; line-height: 1.35; }
.event-slots-toggle { margin-top: 2px; }
.event-detail-reservation,
.jep-detail-save {
    width: 100%;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 11px 16px;
    border-radius: 11px;
    font: inherit;
    font-weight: 750;
    text-align: center;
    text-decoration: none;
}
.jep-detail-save {
    border: 1px solid #171717;
    background: #171717;
    color: #fff;
    cursor: pointer;
}
.jep-detail-save.is-saved { color: #fff; }
.event-detail-reservation {
    margin-top: 10px;
    border: 1px solid #aaa;
    background: #fff;
    color: #171717;
}
.event-detail-accessibility p { margin: 0; color: #555; line-height: 1.5; }
.event-detail-source,
.jep-source { margin-top: 26px; padding-top: 16px; color: #666; font-size: 12px; }
.event-detail-source .event-source-link,
.jep-source a { min-height: 44px; padding-inline: 0; border: 0; background: transparent; }

@media (min-width: 720px) {
    .event-detail-title { font-size: 38px; }
    .event-detail-location { margin-top: 8px; }
    .event-detail-place { font-size: 20px; }
    .event-detail-address, .event-detail-city { margin-top: 3px; font-size: 16.5px; line-height: 1.35; }
    .event-detail-travel { margin-top: 0; }
    .event-detail-travel { align-items: center; }
    .event-detail-travel .around-distance-text { font-size: 16px; font-weight: 600; }
    .event-detail-travel .around-distance-text,
    .event-detail-travel-separator,
    .event-detail-travel .event-route-link { line-height: normal; }
    .event-detail-travel .event-route-link { align-items: center; font-size: inherit; font-weight: 700; }
    .event-practical { padding: 16px 20px; }
}
.event-artist-artworks {
    width: 100%;
    min-height: 56px;
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 4px;
    padding: 6px 0;
    font-weight: 700;
    text-align: left;
}
.event-artist-artworks img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.event-artist-artworks strong { flex: 1; }
.event-artist-artworks span { font-size: 24px; }
.public-event-card-wrapper > .event-secondary-actions { padding: 0 14px 10px; }
.public-event-card-wrapper > .event-secondary-actions button { min-height: 44px; font-weight: 700; }
.search-event-card-wrapper > .event-secondary-actions button,
.jep-event-card > .event-secondary-actions button { min-height: 44px; font-weight: 700; }
.jep-event-card > .event-secondary-actions { padding: 0 14px 10px; }

@media (max-width: 350px) {
    .home-navigation { gap: 4px; }
    .events-entry { padding: 0 7px; }
    .artist-swipe-shell .counter { justify-self: end; font-size: 11px; }
}

.artist-event-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #e3e3df;
    border-radius: 12px;
    background: #fff;
    text-align: left;
}

.artist-event-image {
    width: 100%;
    max-width: 100%;
    max-height: 260px;
    display: block;
    object-fit: contain;
    background: #f3f3f0;
}

.artist-event-copy {
    min-width: 0;
    padding: 14px;
}

.artist-event-type {
    color: #777;
    font-size: 12px;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.artist-event-title {
    margin: 5px 0;
    overflow-wrap: anywhere;
    font-size: 18px;
}

.artist-event-place,
.artist-event-dates,
.artist-event-description {
    overflow-wrap: anywhere;
}

.artist-event-place,
.artist-event-dates {
    margin-top: 4px;
    color: #555;
    font-size: 14px;
}

.artist-event-description {
    margin: 10px 0 0;
    line-height: 1.45;
    white-space: pre-line;
}

.my-events-content {
    width: min(100% - 32px, 640px);
    margin: 0 auto;
    padding: 24px 0 60px;
}

.my-events-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.my-events-title-row .publish-button {
    width: auto;
}

.my-event-form {
    display: grid;
    gap: 14px;
    margin: 20px 0;
    padding: 18px;
    border: 1px solid #e3e3df;
    border-radius: 12px;
}

.my-event-form label,
.my-event-date-row {
    min-width: 0;
}

.my-event-form input,
.my-event-form select,
.my-event-form textarea {
    width: 100%;
    max-width: 100%;
    display: block;
    margin-top: 6px;
}

.my-event-date-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.my-event-form-actions,
.artist-event-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.my-event-form-actions .publish-button {
    width: auto;
}

.my-event-image-preview {
    display: block;
    width: 100%;
    max-height: 260px;
    object-fit: cover;
    border-radius: 12px;
}

.my-event-import-loader {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 0;
}
.my-event-import-loader.hidden { display: none; }
.my-event-import-loader p { margin: 3px 0 0; }
.my-event-import-spinner {
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    border: 2px solid #d8d8d4;
    border-top-color: #171717;
    border-radius: 50%;
    animation: event-import-spin .8s linear infinite;
}
@keyframes event-import-spin { to { transform: rotate(360deg); } }
.institution-posts,
.institution-post-list { display: grid; gap: 42px; }
.institution-post { display: grid; gap: 12px; min-width: 0; }
.institution-post-media { display: block; width: 100%; max-height: 70vh; object-fit: contain; background: #000; }
.institution-post p { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.institution-post time { color: #777; font-size: .82rem; }
.institution-post-media-picker { display: grid; min-height: 150px; place-items: center; text-align: center; border: 1px dashed #aaa; }
#institution-post-preview { min-width: 0; }
.institution-post-managed { gap: 10px; }
.institution-post-actions { align-items: center; gap: 4px; margin-top: 4px; }
.institution-post-actions button {
    border: 0;
    background: transparent;
    color: #222;
    cursor: pointer;
}
.institution-post-view {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    gap: 7px;
    padding: 0 10px 0 0;
    font-weight: 700;
}
.institution-post-view span { color: #888; font-size: 20px; }
.institution-post-icon-action {
    width: 44px;
    height: 44px;
    display: inline-grid;
    place-items: center;
    padding: 0;
}
.institution-post-icon-action svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.institution-post-delete { color: #8d1d1d !important; }
.managed-event-description.is-collapsed {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    overflow: hidden;
}
.managed-event-description-toggle {
    align-self: flex-start;
    padding: 0;
    border: 0;
    background: transparent;
    text-decoration: underline;
}

.artist-event-opening {
    margin-top: 9px;
    color: #333;
    font-size: 14px;
    font-weight: 700;
}
.artist-event-opening-note {
    margin-top: 4px;
    color: #555;
    font-size: 13px;
}

.my-event-import { display: grid; gap: 9px; padding-bottom: 4px; }
.my-event-import-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.my-event-import-row input { margin: 0; }
.my-event-manual-separator { color: #777; font-size: 13px; text-align: center; }
.event-type-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; border: 0; }
.event-type-chips legend { width: 100%; margin-bottom: 2px; }
.event-type-chips label { cursor: pointer; }
.event-type-chips input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.event-type-chips span {
    display: block; padding: 8px 11px; border: 1px solid #d6d4cf;
    border-radius: 999px; background: #fff; color: #555; font-size: 13px;
}
.event-type-chips input:checked + span { border-color: #222; background: #222; color: #fff; }
.event-type-chips input:focus-visible + span { outline: 2px solid #777; outline-offset: 2px; }
.event-artist-link-question {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 14px;
    border: 1px solid #deddd8;
    border-radius: 12px;
}
.event-artist-link-question legend { width: 100%; padding: 0 4px; font-weight: 700; }
.event-artist-link-question label { min-width: 76px; cursor: pointer; }
.event-artist-link-question input { margin-right: 6px; }

.my-event-opening {
    padding: 12px 0;
    border-top: 1px solid #e3e3df;
    border-bottom: 1px solid #e3e3df;
}

.my-event-opening-toggle {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    gap: 10px;
    font-weight: 700;
    cursor: pointer;
}

.my-event-opening-toggle input { width: 20px; height: 20px; }
.my-event-opening-fields {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 10px;
}
.my-event-opening-fields.hidden { display: none; }
.my-event-opening-note { grid-column: 1 / -1; }
.form-optional { color: #777; font-size: 12px; font-weight: 400; }

@media (max-width: 620px) {
    .my-event-opening-fields { grid-template-columns: minmax(0, 1fr); }
}

.artist-event-actions {
    margin-top: 12px;
}

.artist-event-actions .my-event-published-message,
.artist-event-actions .event-action-message { flex-basis: 100%; }
.artist-event-card.just-published { border-color: #9e927f; box-shadow: 0 0 0 3px #eee9df; }
.my-event-published-message { color: #315f45; }

.artist-event-actions button {
    min-height: 40px;
}

.managed-event-actions {
    display: grid;
    grid-template-columns: max-content max-content 44px 44px;
    align-items: center;
    gap: 6px;
}
.managed-event-actions .managed-event-action-text { min-height: 44px; padding: 0 8px; }
.managed-event-actions .managed-event-icon-action {
    display: inline-grid;
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    padding: 0;
    place-items: center;
    color: #333;
}
.managed-event-actions .managed-event-icon-action svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.managed-event-actions .my-event-published-message,
.managed-event-actions .event-action-message { grid-column: 1 / -1; }

@media (max-width: 480px) {
    .my-event-date-row {
        grid-template-columns: 1fr;
    }
    .my-event-import-row { grid-template-columns: 1fr; }
}

.public-artist-links {
    margin: 24px 18px 0;
    padding-top: 20px;
    display: flex;
    gap: 18px;
    border-top: 1px solid #e3e3df;
}

.public-artist-links:empty { display: none; }
.public-artist-links a { color: #171717; }

.detail-seller-link {
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-decoration: underline;
    cursor: pointer;
}

.detail-description small {
    color: #777;
}

.member-public-form {
    width: 100%;
    margin-top: 14px;
    display: grid;
    gap: 9px;
}

.member-welcome {
    min-width: 0;
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 13px;
    align-items: center;
    margin-bottom: 18px;
}

.member-welcome--artist {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    text-align: center;
}

.member-welcome h1 { margin: 0; font-size: 22px; overflow-wrap: anywhere; }
.member-welcome p { margin: 4px 0 0; color: #666; }
.member-avatar {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 50%;
    background: #ece9e3;
    font-size: 22px;
    font-weight: 800;
}
.member-avatar img { width: 100%; height: 100%; object-fit: cover; }
.member-account-summary { display: grid; gap: 10px; margin: 0 0 16px; }
.member-account-summary div { min-width: 0; }
.member-account-summary dt { color: #777; font-size: 12px; text-transform: uppercase; }
.member-account-summary dd { margin: 2px 0 0; overflow-wrap: anywhere; font-weight: 700; }
.account-manage { max-width: 520px; }
.account-manage > h2 { margin: 26px 0 18px; font-size: 22px; letter-spacing: .04em; }
.account-section {
    padding: 18px 0;
    border-bottom: 1px solid #ddd;
}
.account-section h3 {
    margin: 0 0 14px;
    color: #686868;
    font-size: 12px;
    letter-spacing: .1em;
}
.account-section p { margin: 0 0 8px; }
.account-field-label { color: #777; font-size: 12px; }
.account-current-email { max-width: 100%; overflow-wrap: anywhere; font-weight: 650; }
.account-section > .text-action {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 44px;
    padding: 8px 0;
    border: 0;
    background: transparent;
    color: #111;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.account-section > .text-action::after {
    content: "›";
    flex: 0 0 auto;
    margin-left: 12px;
    color: #999;
    font-size: 18px;
    font-weight: 400;
}

.account-danger > .text-action {
    color: #8d1d1d;
}
.account-section form { display: grid; gap: 12px; margin-top: 12px; }
.account-section label { display: grid; gap: 6px; }
.account-section input { box-sizing: border-box; width: 100%; }
.account-danger { border-bottom: 0; }
.account-danger > .text-action, .account-danger .artist-auth-secondary { color: #8d1d1d; }
.account-confirm-actions { display: flex; align-items: center; gap: 16px; }
#my-artwork-detail-additional { white-space: pre-wrap; }
.favorites-share-actions {
    max-width: 600px;
    margin: auto;
    padding: 18px 16px 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 2px 18px;
}
.favorites-share-actions h1 {
    margin: 0;
    color: #333;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.favorites-share-actions #favorites-share {
    width: auto;
    min-height: 44px;
    margin: 0;
    padding: 8px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: #606060;
    font: inherit;
    font-size: 14px;
    font-weight: 500;
}
.favorites-share-actions #favorites-share:hover {
    color: #171717;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.favorites-share-actions #favorites-share:focus-visible {
    outline: 2px solid #171717;
    outline-offset: 2px;
}
.favorites-share-actions .publish-message {
    flex-basis: 100%;
    min-height: 0;
    margin: 0;
    text-align: left;
}
.shared-selection-banner {
    display: flex; justify-content: space-between; gap: 10px; align-items: baseline;
    margin: 6px 14px 10px; padding: 8px 10px; border: 1px solid #e5e1da;
    border-radius: 10px; background: #f7f5f1; color: #555; font-size: 13px;
}
.events-location-tabs {
    display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
    margin: 8px 0 10px;
}
.events-location-tabs button {
    border: 0; border-bottom: 2px solid transparent; padding: 8px;
    background: none; color: #777; font: inherit; cursor: pointer;
}
.events-location-tabs button.active { border-color: #222; color: #222; font-weight: 700; }
.events-nearby-banner {
    display: flex; align-items: center; justify-content: flex-start; gap: 4px;
    margin: 0 0 10px; color: #666; font-size: 13px;
}
.events-nearby-banner.hidden { display: none; }
.events-nearby-banner button {
    flex: 0 0 auto; border: 0; padding: 2px 6px; background: none;
    color: inherit; font: inherit; font-size: 18px; line-height: 1; cursor: pointer;
}
.event-detail-address, .event-detail-city { overflow-wrap: anywhere; }
#events-more { width: 100%; margin-top: 14px; }
.shared-selection-banner small { white-space: nowrap; color: #777; }
.detail-shared-selection-banner { margin-top: 10px; }
.profile-form-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.member-section-title {
    margin: 28px 0 10px;
    color: #666;
    font-size: 13px;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.attention-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #d84a4a;
}
.photo-advice {
    margin: 8px 0 18px;
    padding: 13px 0;
    border-bottom: 1px solid #e3e3df;
    color: #555;
    line-height: 1.4;
}
.photo-advice p { margin: 5px 0; }
.ownership-choice {
    display: grid;
    gap: 9px;
    margin: 8px 0 18px;
    padding: 12px 0;
    border: 0;
    border-bottom: 1px solid #e3e3df;
}
.ownership-choice label { min-height: 42px; display: flex; gap: 9px; align-items: center; }

.member-public-form label {
    display: grid;
    gap: 6px;
    text-align: left;
}

.member-public-form input {
    width: 100%;
    min-width: 0;
    padding: 11px;
    border: 1px solid #deded9;
    border-radius: 10px;
}

.detail-meta,
.detail-series,
.detail-tags,
.detail-location {
    margin-top: 12px;

    color: #686868;
}

.detail-tags {
    font-size: 13px;
    color: #888;
}

.detail-interactions {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 22px;
}

.detail-interaction {
    width: 54px;
    height: 54px;
    padding: 0;
    border: 1px solid #d8d8d4;
    border-radius: 50%;
    background: white;
    font-size: 25px;
    line-height: 1;
}

.detail-interaction.active { border-color: currentColor; }
.detail-interaction.like.active { background: #fff0f3; color: #e84260; }
.detail-interaction.star.active { background: #fff8e7; color: #d69b18; }
.detail-interaction.share { color: #555; font-size: 23px; }

.primary-action,
.secondary-action,
.offer-action {
    width: 100%;

    margin-top: 13px;
    padding: 15px;

    border-radius: 13px;

    font-weight: 700;

    cursor: pointer;
}

.interest-dialog {
    position: fixed;
    inset: 0;
    z-index: 300;
    display: grid;
    place-items: end center;
    padding: 18px;
    background: rgba(0, 0, 0, .42);
}
.interest-panel {
    position: relative;
    width: min(100%, 480px);
    padding: 22px;
    border-radius: 18px;
    background: #fafaf8;
    display: grid;
    gap: 14px;
}
.interest-panel h2, .interest-panel p { margin: 0; }
.interest-panel label { display: grid; gap: 6px; font-weight: 650; }
.interest-panel label span { color: #777; font-weight: 400; }
.interest-panel input, .interest-panel textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid #d8d8d4;
    border-radius: 10px;
    font: inherit;
}
.interest-close {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 50%;
    font-size: 22px;
}

.leads-content { width: min(100%, 720px); margin: auto; padding: 18px; }
.leads-list { display: grid; gap: 14px; }
.lead-card {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 14px;
    padding: 14px;
    border: 1px solid #deded9;
    border-radius: 16px;
    background: white;
}
.lead-card > img { width: 96px; height: 96px; border-radius: 10px; object-fit: cover; }
.lead-card-content { min-width: 0;
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(140px, 180px);
    align-items: start;
    gap: 8px 18px;
}
.lead-card > img + .lead-card-content { grid-column: 2; }
.lead-card-content > strong,
.lead-card-content > span { grid-column: 1; }
.lead-card-content p,
.lead-card-content time { grid-column: 1 / -1; }
.lead-card-content p { margin: 0; overflow-wrap: anywhere; }
.lead-card-content a { min-width: 0; overflow-wrap: anywhere; word-break: break-word; }
.lead-card-content time { color: #777; font-size: 12px; }
.lead-card-content label {
    grid-column: 2;
    grid-row: 1 / span 2;
    display: grid;
    gap: 5px;
    font-size: 12px;
    font-weight: 700;
}
.lead-card-content select { width: 100%; min-width: 0; min-height: 44px; border: 1px solid #ccc; border-radius: 9px; padding: 0 9px; }

@media (max-width: 620px) {
    .lead-card { grid-template-columns: 72px minmax(0, 1fr); gap: 12px; padding: 12px; }
    .lead-card > img { width: 72px; height: 72px; }
    .lead-card-content {
        grid-column: 2;
        grid-template-columns: minmax(0, 1fr);
    }
    .lead-card-content > strong,
    .lead-card-content > span,
    .lead-card-content p,
    .lead-card-content time,
    .lead-card-content label {
        grid-column: 1;
        grid-row: auto;
    }
}

.detail-characteristics {
    margin-top: 14px;
}

.detail-artwork-type {
    margin: 0;
    color: #555;
    font-size: 12px;
    font-weight: 750;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.detail-characteristics-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
    margin-top: 0;
}

.detail-characteristic {
    min-width: 0;
    display: block;
}

.detail-characteristic span {
    display: block;
    overflow-wrap: anywhere;
    color: #222;
    line-height: 1.4;
}
.detail-characteristic-inline span { white-space: normal; }

.detail-provenance {
    margin-top: 24px;
    padding-top: 18px;
    border-top: 1px solid #e5e5e5;
}

.detail-seller-line {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0 5px;
    margin-top: 7px;
}

.detail-seller-line .detail-seller {
    margin: 0;
}

.detail-seller-line .detail-artist-works {
    min-height: 0;
    margin: 0;
    padding: 3px 0;
    font-size: 13px;
}

@media (min-width: 600px) {
    .interest-dialog { place-items: center; }
}

.primary-action {
    margin-top: 25px;

    border: 0;

    background: #171717;
    color: white;
}

.secondary-action {
    border: 1px solid #171717;

    background: white;
    color: #171717;
}
.secondary-action:disabled {
    opacity: .45;
    cursor: not-allowed;
}

.offer-action {
    border: 0;

    background: #f1f1ef;
    color: #171717;
}

.detail-description {
    margin-top: 30px;

    padding-top: 22px;

    border-top: 1px solid #e5e5e5;
}

.detail-description h3 {
    margin: 0 0 10px;
}

#detail-additional-info-section { margin-top: 14px; padding-top: 0; border-top: 0; }
#detail-additional-info-section p { margin: 0; }

#detail-interest-open { margin-top: 20px; }

.detail-description p {
    line-height: 1.55;
    color: #555;
    white-space: pre-line;
}

.like-action-group {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-width: 0;
}

.like-count {
    min-width: 1ch;
    color: #777;
    font-size: 13px;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.hidden {
    display: none !important;
}

.auth-legal-notice {
    margin: 12px 0 0;
    color: #777;
    font-size: 12px;
    line-height: 1.45;
}
.auth-legal-notice a { color: inherit; text-decoration: underline; }
.profile-guest-language { margin-top: 18px; }
.profile-language-toggle { display: flex; width: 100%; align-items: center; gap: 8px; text-align: left; }
.profile-language-toggle .profile-language-current { margin-left: auto; color: #666; font-weight: 400; }
.profile-language-toggle > span:last-child { color: #999; }
.profile-guest-language .profile-language-toggle { min-height: 44px; padding: 8px 10px; border: 0; background: transparent; color: #555; font: inherit; cursor: pointer; }
.profile-language-options { display: flex; flex-wrap: wrap; gap: 6px; }
.profile-language-options button { min-height: 44px; padding: 6px 10px; border: 0; border-radius: 8px; background: transparent; color: #666; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.profile-language-options button.active { background: #f0f0ec; color: #171717; }
#profile-menu-language-options { padding: 0 8px 4px; }
.profile-language-options button:focus-visible,
.profile-language-toggle:focus-visible { outline: 2px solid #171717; outline-offset: 2px; }
.profile-legal-information {
    margin: 30px 0 8px;
    padding-top: 18px;
    border-top: 1px solid #e5e3de;
}
.profile-legal-information h2 {
    margin: 0 0 8px;
    color: #777;
    font-size: 11px;
    font-weight: 650;
    letter-spacing: .12em;
}
.profile-legal-links { display: flex; flex-wrap: wrap; column-gap: 12px; }
.profile-legal-information a {
    display: block;
    padding: 7px 0;
    color: #555;
    font-size: 13px;
    text-decoration: none;
}
.profile-legal-information a:hover,
.profile-legal-information a:focus-visible { color: #111; text-decoration: underline; }

@media (min-width: 700px) {

    body {
        background: #e9e9e6;
    }

    .app-shell {
        box-shadow:
            0 0 35px rgba(0,0,0,.08);
    }
}

/* SELL */

.sell-view {
    position: fixed;
    inset: 0;
    z-index: 100;

    background: #fafaf8;
    overflow-y: auto;
}

.sell-header {
    position: sticky;
    top: 0;
    z-index: 5;

    height: 62px;
    padding: 0 16px;

    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;

    background: rgba(250, 250, 248, .95);
    backdrop-filter: blur(12px);
}

.sell-close {
    width: 40px;
    height: 40px;

    border: 0;
    border-radius: 50%;

    background: #eeeeeb;

    font-size: 21px;
}

.sell-form {
    max-width: 520px;
    margin: auto;

    padding: 8px 18px 50px;

    display: flex;
    flex-direction: column;
    gap: 18px;
}

.batch-content {
    width: min(100%, 920px);
    margin: auto;
    padding: 10px 18px 60px;
}

.batch-picker, .batch-common, .batch-item {
    border: 1px solid #deded9;
    border-radius: 16px;
    background: white;
}

.batch-picker {
    padding: 18px;
    display: grid;
    gap: 7px;
    cursor: pointer;
}

.batch-picker span, .batch-note {
    color: #777;
    font-size: 13px;
}

.batch-picker input { margin-top: 8px; }
.batch-common { margin-top: 18px; padding: 16px; }
.batch-common h2 { margin: 0 0 14px; font-size: 17px; }
.batch-common-grid, .batch-fields {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
.batch-common label, .batch-fields label {
    display: grid;
    gap: 6px;
    font-size: 12px;
    font-weight: 650;
}
.batch-common input, .batch-common select, .batch-common textarea,
.batch-fields input, .batch-fields select, .batch-fields textarea {
    width: 100%;
    min-width: 0;
    height: 43px;
    padding: 0 10px;
    border: 1px solid #d8d8d4;
    border-radius: 10px;
    font: inherit;
}
.batch-common textarea, .batch-fields textarea {
    height: auto;
    min-height: 70px;
    padding: 9px 10px;
    resize: vertical;
}

.detail-artist-works {
    min-height: 44px;
    margin: 6px 0 2px;
    padding: 8px 0;
    border: 0;
    background: transparent;
    color: #555;
    font: inherit;
    font-size: 14px;
    text-align: left;
    text-decoration: underline;
    cursor: pointer;
}
.batch-fields .price-on-request-option {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    min-width: 0;
    min-height: 43px;
    cursor: pointer;
}
.batch-fields .price-on-request-option input {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin: 0;
    padding: 0;
}
.batch-empty-only {
    margin: 14px 0;
    display: flex !important;
    grid-template-columns: auto 1fr;
    align-items: center;
}
.batch-empty-only input { width: 18px; height: 18px; }
.batch-summary { margin: 18px 0 10px; font-weight: 700; }
.batch-items { display: grid; gap: 12px; }
.batch-item { padding: 12px; }
.batch-item-head {
    display: grid;
    grid-template-columns: 72px 1fr auto;
    gap: 12px;
    align-items: center;
    margin-bottom: 12px;
}
.batch-item-head img {
    width: 72px;
    height: 72px;
    border-radius: 10px;
    object-fit: cover;
}
.batch-item-head div { min-width: 0; display: grid; gap: 3px; }
.batch-item-head span {
    overflow: hidden;
    color: #777;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.batch-item-head small { color: #39704b; }
.batch-analysis-state.pending { color: #777; }
.batch-analysis-state.analyzing { color: #7b6421; }
.batch-analysis-state.error { color: #8a3333; }
.batch-item-head button {
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 50%;
    font-size: 22px;
}
.batch-item-error { min-height: 18px; margin-top: 8px; color: #8a3333; font-size: 12px; }
.batch-note { margin: 18px 0; }
.batch-analysis-summary {
    margin: 12px 0 8px;
    color: #555;
    font-size: 14px;
    font-weight: 650;
}
#batch-analyze { width: 100%; margin-bottom: 10px; }
.batch-workflow-step, .batch-completion {
    margin-top: 16px;
    padding: 16px;
    border: 1px solid #deded9;
    border-radius: 16px;
    background: white;
}
.batch-workflow-step h2, .batch-completion h2 {
    margin: 0;
    font-size: 17px;
}
.batch-workflow-step p {
    margin: 6px 0 2px;
    color: #666;
    font-size: 13px;
}
.batch-workflow-step button { width: 100%; }
.batch-completion { text-align: center; }
.batch-completion .primary-action { margin-top: 18px; }
.batch-tags { margin-top: 12px; }
.batch-tags summary {
    color: #555;
    cursor: pointer;
    font-size: 13px;
    font-weight: 700;
}
.batch-tags .batch-fields { margin-top: 10px; }

@media (max-width: 620px) {
    .batch-content { min-height: 100%; overflow: visible; }
    .batch-items { display: grid; height: auto; visibility: visible; }
    .batch-common-grid, .batch-fields { grid-template-columns: 1fr 1fr; }
    .batch-item { padding: 14px; }
    .batch-workflow-step, .batch-completion {
        width: 100%;
        overflow: visible;
    }
}

.member-type-fields {
    margin: 0;
    padding: 0;
    border: 0;
}

.member-type-fields legend {
    font-weight: 700;
    padding: 0;
    margin-bottom: 8px;
}

.member-type-fields label {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 9px;
    min-width: 0;
    width: 100%;
    cursor: pointer;
}

.member-type-fields input[type="radio"] {
    appearance: auto;
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    margin: 2px 0 0;
    padding: 0;
    border: 0;
}
.member-type-option span,
.member-type-option strong,
.member-type-option small { display: block; }
.member-type-option span {
    flex: 1 1 auto;
    min-width: 0;
}
.member-type-option small {
    margin-top: 2px;
    color: #666;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.photo-picker {
    height: 300px;

    display: flex;
    align-items: center;
    justify-content: center;

    overflow: hidden;

    border: 1.5px dashed #c8c8c3;
    border-radius: 18px;

    background: #f0f0ed;

    cursor: pointer;
}

#photo-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;

    color: #555;
}

#photo-placeholder span {
    font-size: 12px;
    color: #888;
}

.photo-plus {
    font-size: 38px;
    font-weight: 300;
}

.sell-preview {
    width: 100%;
    height: 100%;

    object-fit: contain;
}

.sell-image-tools {
    display: grid;
    gap: 9px;
}

.sell-image-tools small,
.image-editor-help {
    color: #777;
    font-size: 12px;
    line-height: 1.4;
}

.image-editor {
    position: fixed;
    z-index: 120;
    inset: 0;
    padding: max(16px, env(safe-area-inset-top)) 14px
        max(16px, env(safe-area-inset-bottom));
    display: grid;
    place-items: center;
    overflow-y: auto;
    background: rgba(20, 20, 20, .72);
}

.image-editor-panel {
    width: min(100%, 680px);
    padding: 18px;
    border-radius: 18px;
    background: white;
}

.image-editor-panel h2 { margin: 0 0 14px; }

.image-editor-stage {
    min-height: 260px;
    max-height: 58vh;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 12px;
    background: #242424;
    touch-action: none;
}

#image-editor-canvas {
    width: 100%;
    max-height: 58vh;
    display: block;
    object-fit: contain;
    touch-action: none;
}

.image-editor-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.image-editor-accordion { margin: 12px 0; }

.image-editor-section-toggle {
    width: 100%;
    min-height: 44px;
    padding: 8px 4px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    border: 0;
    border-top: 1px solid #e3e3df;
    background: transparent;
    color: #222;
    font: inherit;
    font-weight: 700;
    text-align: left;
}

.image-editor-section-toggle small {
    color: #777;
    font-weight: 500;
}

.image-editor-section {
    padding: 4px 2px 12px;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.image-editor-section label { flex: 1 1 230px; }
.image-editor-section input[type="range"] { min-height: 44px; }
.image-editor-section .image-editor-help { margin: 0; }
.image-editor-actions { justify-content: flex-end; }
.image-editor-actions .publish-button { width: auto; margin: 0; }

@media (max-width: 560px) {
    .image-editor-panel { padding: 14px; }
    .image-editor-actions > button { flex: 1 1 130px; min-height: 46px; }
}

.sell-form > label,
.dimensions label,
.artwork-tags-fields label {
    display: flex;
    flex-direction: column;
    gap: 7px;

    font-size: 13px;
    font-weight: 650;
}

.artwork-tags-fields {
    margin: 0;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 13px;
    border: 1px solid #e0e0dc;
    border-radius: 14px;
}

.artwork-tags-fields legend {
    padding: 0 5px;
    font-size: 14px;
    font-weight: 700;
}

.artwork-tags-fields legend span,
.artwork-tags-fields p {
    color: #888;
    font-weight: 400;
}

.analysis-status { min-height: 18px; color: #777; font-size: 12px; font-weight: 500; }
.analysis-status.success { color: #39704b; }
.analysis-status.error { color: #8a5b5b; }

.artwork-tags-fields p {
    margin: -4px 0 0;
    font-size: 12px;
}

.sell-form input {
    width: 100%;
    height: 50px;

    padding: 0 13px;

    border: 1px solid #d8d8d4;
    border-radius: 11px;

    background: white;

    font-size: 16px;
}

.sell-form input:focus {
    outline: 2px solid #222;
    outline-offset: -1px;
}

.input-unit {
    position: relative;
}

.input-unit input {
    padding-right: 45px;
}

.input-unit span {
    position: absolute;
    right: 14px;
    top: 50%;

    transform: translateY(-50%);

    color: #777;
}

.dimensions {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 10px;
    align-items: end;
}

.dimension-x {
    padding-bottom: 14px;

    color: #777;
}

.publish-button {
    height: 54px;

    margin-top: 5px;

    border: 0;
    border-radius: 14px;

    background: #171717;
    color: white;

    font-size: 16px;
    font-weight: 750;
}

.publish-button:disabled {
    opacity: .5;
}

.publish-message {
    min-height: 20px;

    text-align: center;
    font-size: 13px;
}

/* PROFILE + FAVORITES */

.profile-view,
.favorites-view {
    position: fixed;
    inset: 0;
    z-index: 90;

    background: #fafaf8;
    overflow-y: auto;
}

.profile-content {
    max-width: 520px;
    margin: auto;
    padding: 22px 18px;
}

.profile-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.profile-form > label:not(.profile-avatar-picker) {
    display: flex;
    flex-direction: column;
    gap: 7px;
    font-size: 13px;
    font-weight: 650;
}

.profile-form input,
.profile-form textarea {
    width: 100%;
    padding: 12px 13px;
    border: 1px solid #d8d8d4;
    border-radius: 11px;
    background: white;
    font: inherit;
}

.profile-form input { height: 50px; }
.profile-form textarea { resize: vertical; line-height: 1.45; }

.profile-avatar-picker {
    width: 112px;
    height: 112px;
    margin: 0 auto 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 1.5px dashed #c8c8c3;
    border-radius: 50%;
    background: #f0f0ed;
    color: #666;
    text-align: center;
    font-size: 12px;
    cursor: pointer;
}

.profile-avatar-picker img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.profile-links {
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid #e3e3df;
}

.profile-jep-selection-section { margin-top: 16px; }
.profile-jep-selection-link { grid-template-columns: 30px minmax(0, 1fr) auto; }
#profile-jep-selection-open > .profile-jep-selection-meta { display: inline-flex; align-items: center; gap: 8px; color: #666; font-size: 12px; white-space: nowrap; }
#profile-jep-selection-open .profile-jep-selection-meta > span:last-child { color: #999; font-size: 20px; line-height: 1; }

.my-artswipe-actions {
    margin-bottom: 22px;
    padding-bottom: 12px;
    border-bottom: 1px solid #e3e3df;
}

.member-action-pair {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.member-action-pair .profile-menu-button {
    min-width: 0;
    min-height: 54px;
    padding: 10px 8px;
    column-gap: 4px;
    font-size: clamp(12px, 3.5vw, 15px);
    white-space: nowrap;
}

.member-action-pair .profile-menu-button span:first-child {
    font-size: 17px;
}

.member-action-pair .publish-message,
.member-discovery-actions > .hidden + #favorites-open {
    grid-column: 1 / -1;
}

.own-artswipe-actions {
    width: 100%;
    max-width: 520px;
    display: grid;
    gap: 8px;
    margin: 0 auto;
    padding: 0 18px 18px;
    background: #fafaf8;
}

/* AS-053 — densité propre au Swipe artiste, sans modifier H1. */
.app-shell.artist-swipe-shell {
    grid-template-rows: 64px minmax(0, 1fr) 76px;
}

.artist-swipe-shell #events-open { display: none; }
.artist-swipe-shell .actions { padding-block: 5px 10px; }
.artist-swipe-shell .undo { width: 42px; height: 42px; }
.artist-swipe-shell .like { width: 60px; height: 60px; }
.artist-swipe-shell .star { width: 48px; height: 48px; }

.own-artswipe-primary-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.own-artswipe-actions .artist-auth-secondary {
    min-width: 0;
    min-height: 44px;
    height: 100%;
    padding: 8px 10px;
    line-height: 1.2;
    white-space: nowrap;
}

.own-artswipe-actions .publish-message {
    grid-column: 1 / -1;
    margin: 0;
}

@media (max-width: 374px) {
    .member-action-pair { gap: 5px; }
    .member-action-pair .profile-menu-button {
        min-height: 50px;
        padding-inline: 5px;
        font-size: 11px;
    }
    .member-action-pair .profile-menu-button span:first-child { font-size: 14px; }
    .member-action-pair .profile-menu-button span:last-child { font-size: 18px; }
    .own-artswipe-actions .artist-auth-secondary {
        padding-inline: 6px;
        font-size: 12px;
    }
}

.profile-menu-button {
    width: 100%;
    min-height: 62px;

    display: grid;
    grid-template-columns: 35px 1fr auto;
    align-items: center;

    margin-bottom: 10px;
    padding: 0 16px;

    border: 1px solid #e3e3df;
    border-radius: 14px;

    background: white;

    text-align: left;
    font-size: 16px;
}

.profile-menu-button span:first-child {
    font-size: 20px;
}

.profile-menu-button span:last-child {
    font-size: 25px;
    color: #999;
}

.member-menu-separator {
    width: 100%;
    margin: 20px 0;
    border: 0;
    border-top: 1px solid #e3e3df;
}

.profile-sell-button {
    width: 100%;
    height: 54px;

    margin-top: 18px;

    border: 0;
    border-radius: 14px;

    background: #171717;
    color: white;

    font-size: 16px;
    font-weight: 700;
}

.favorites-grid {
    max-width: 600px;
    margin: auto;

    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;

    padding: 14px 14px 40px;
}

.favorite-card {
    overflow: hidden;

    border: 1px solid #e2e2de;
    border-radius: 14px;

    background: white;
}

.favorite-image {
    width: 100%;
    aspect-ratio: 1 / 1;

    display: block;

    object-fit: contain;
    background: #f1f1ee;
}

.favorite-info {
    padding: 10px;
}

.favorite-artist {
    font-size: 13px;
    font-weight: 750;
}

.favorite-title {
    margin-top: 2px;

    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;

    font-size: 12px;
    color: #666;
}

.favorite-price {
    margin-top: 7px;

    font-size: 14px;
    font-weight: 750;
}

.favorite-city {
    margin-top: 3px;

    font-size: 11px;
    color: #888;
}

.favorite-remove {
    width: 100%;

    margin-top: 8px;
    padding: 7px;

    border: 0;
    border-radius: 8px;

    background: #f2f2ef;

    font-size: 11px;
}

.favorites-empty {
    padding: 100px 30px;

    text-align: center;
    color: #777;
}

.favorites-empty > div {
    margin-bottom: 15px;

    font-size: 42px;
}

.favorites-empty strong {
    display: block;

    color: #222;
    font-size: 17px;
}

.favorites-empty p {
    max-width: 280px;
    margin: 10px auto;

    line-height: 1.5;
    font-size: 13px;
}

.selection-toast {
    position: fixed;
    left: 50%;
    bottom: 92px;
    z-index: 200;

    transform: translate(-50%, 15px);

    padding: 11px 17px;

    border-radius: 22px;

    background: #171717;
    color: white;

    font-size: 13px;
    font-weight: 650;
    white-space: nowrap;

    opacity: 0;
    pointer-events: none;

    transition:
        opacity 180ms ease,
        transform 180ms ease;
}

.selection-toast.visible {
    opacity: 1;
    transform: translate(-50%, 0);
}

/* MY ARTWORKS */

.my-artworks-section {
    max-width: 600px;
    margin: auto;
}

.my-artworks-section h2 {
    margin: 22px 16px 0;

    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: .08em;

    color: #777;
}

.my-artworks-groups:empty {
    display: none;
}

.my-artworks-heading {
    display: flex;
    justify-content: space-between;
    gap: 16px;
}

.my-artworks-heading span:last-child {
    flex-shrink: 0;
    text-transform: none;
    letter-spacing: normal;
    font-weight: 500;
}

.my-artwork-image-zone {
    position: relative;
}

.my-artworks-cover-message {
    margin: 18px 16px 0;
    color: #555;
    overflow-wrap: anywhere;
}

.artwork-cover-action {
    width: calc(100% - 20px);
    min-width: 0;
    margin: 0 10px 12px;
    padding: 8px;
    border: 0;
    background: transparent;
    color: #555;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.artwork-cover-action:not(:disabled) {
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

.artwork-cover-badge {
    position: absolute;
    right: 8px;
    bottom: 8px;
    padding: 5px 7px;
    border-radius: 999px;
    background: rgba(20, 20, 20, .82);
    color: white;
    font-size: 10px;
    font-weight: 800;
}

.sold-badge {
    position: absolute;
    top: 9px;
    left: 9px;

    padding: 5px 8px;

    border-radius: 7px;

    background: #171717;
    color: white;

    font-size: 10px;
    font-weight: 800;
    letter-spacing: .06em;
}

.my-artworks-empty {
    padding: 25px 18px 35px;

    color: #999;
    font-size: 13px;
}

/* EDIT ARTWORK */

.edit-current-photo {
    width: 100%;
    display: flex;
    justify-content: center;

    margin-bottom: 20px;
}

.edit-current-photo img {
    display: block;

    max-width: 100%;
    max-height: 360px;

    object-fit: contain;

    border-radius: 12px;
}

#my-artwork-edit-button {
    width: 100%;
    margin-bottom: 12px;
}
.artist-auth {
    display: grid;
    gap: 14px;
    margin-bottom: 20px;
}

.password-reset-page {
    width: min(100% - 32px, 480px);
    margin: 48px auto;
}

.password-reset-brand {
    display: block;
    width: min(220px, 72%);
    margin: 0 auto 12px;
}

.password-reset-brand img {
    display: block;
    width: 100%;
    height: auto;
}

.password-reset-page h1 {
    margin: 4px 0 8px;
}

.artist-auth-panel,
.artist-auth form {
    display: grid;
    gap: 10px;
}

.artist-auth-panel h2,
.artist-auth-panel p {
    margin: 0;
}

.artist-register-alternative {
    display: grid;
    margin-top: 4px;
}

.artist-register-alternative .artist-auth-mode-action {
    width: 100%;
    min-height: 44px;
}

.artist-auth label:not(.member-type-option) {
    display: grid;
    gap: 6px;
}

.artist-auth input {
    border: 1px solid #ddd;
    border-radius: 12px;
    padding: 12px;
    font: inherit;
}

.artist-auth-secondary,
.artist-auth-back,
.artist-auth-logout {
    border: 0;
    background: transparent;
    color: #555;
    font: inherit;
    cursor: pointer;
}

.artist-auth-secondary {
    min-height: 42px;
    padding: 9px 12px;
    border: 1px solid #dedede;
    border-radius: 12px;
    background: #fff;
    color: #222;
}

.artist-auth-secondary:hover,
.artist-auth-secondary:focus-visible { border-color: #999; }

.artist-auth-back {
    justify-self: start;
    padding: 4px 0;
}

.artist-auth-logout {
    justify-self: start;
    margin-top: 6px;
    padding: 6px 0;
    font-size: .9rem;
}

#artist-auth-email {
    overflow-wrap: anywhere;
}
.detail-seller { margin-top: 10px; color: #666; font-size: 13px; }

.admin-hidden-badge {
    position: absolute;
    right: 8px;
    bottom: 8px;
    padding: 5px 7px;
    border-radius: 7px;
    background: rgba(120, 28, 28, .9);
    color: white;
    font-size: 10px;
    font-weight: 800;
}

.artist-account-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.artist-account-actions .artist-auth-secondary {
    min-width: 0;
    height: 100%;
    line-height: 1.2;
    white-space: normal;
}

.member-welcome--artist { margin-bottom: 0; }

.profile-content.artist-account-view {
    padding-top: 14px;
    padding-bottom: 28px;
}

.artist-account-view .artist-auth { margin-bottom: 12px; }

.artist-account-view .member-welcome--artist {
    position: relative;
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr) 38px;
    gap: 13px;
    align-items: center;
    text-align: left;
}

.artist-account-view .member-welcome--artist .public-artist-avatar {
    width: 68px;
    height: 68px;
    margin: 0;
    font-size: 24px;
}

.artist-account-view .member-identity-copy { min-width: 0; }
.artist-account-view .member-welcome h1 {
    font-size: clamp(19px, 5.2vw, 24px);
    line-height: 1.15;
}
.artist-account-view .member-greeting-prefix { display: none; }
.artist-public-profile {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #666;
    font: inherit;
    font-size: 14px;
    text-align: left;
    cursor: pointer;
}
.artist-public-profile span { color: #999; font-size: 16px; }
.artist-identity-actions { display: none; }
.artist-account-view .artist-identity-actions {
    display: flex;
    min-width: 0;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 6px;
    row-gap: 0;
}
@media (max-width: 433px) {
    .artist-account-view .artist-identity-actions {
        display: grid;
        justify-items: start;
        row-gap: 0;
    }
    .artist-account-view .artist-identity-actions > span[aria-hidden="true"] {
        display: none;
    }
    .artist-account-view .artist-public-profile,
    .artist-account-view .artist-profile-edit-direct {
        width: max-content;
        max-width: 100%;
        min-height: 40px;
    }
    .artist-account-view .artist-auth { margin-bottom: 6px; }
}
.artist-profile-edit-direct {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #555;
    font: inherit;
    font-size: 14px;
    text-align: left;
    cursor: pointer;
}
.artist-profile-edit-direct span { color: #999; font-size: 16px; }
.artist-identity-actions > span { color: #aaa; }
.institution-identity-actions { display: none; }
.institution-account-view .institution-identity-actions {
    display: flex;
    min-width: 0;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 6px;
    row-gap: 0;
}
.institution-identity-actions > span { color: #aaa; }
.artist-account-menu-toggle {
    width: 38px;
    height: 38px;
    padding: 0 0 7px;
    border: 1px solid #ddd;
    border-radius: 50%;
    background: #fff;
    color: #555;
    font: inherit;
    font-size: 16px;
    letter-spacing: 1px;
    cursor: pointer;
}
.profile-content:is(.artist-account-view, .institution-account-view, .visitor-account-view, .private-seller-account-view) .artist-account-actions {
    position: absolute;
    z-index: 3;
    top: 58px;
    right: 0;
    width: min(230px, calc(100vw - 36px));
    display: grid;
    grid-template-columns: 1fr;
    gap: 3px;
    padding: 6px;
    border: 1px solid #ddd;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(0, 0, 0, .12);
}
.profile-content:is(.artist-account-view, .institution-account-view, .visitor-account-view, .private-seller-account-view) .artist-account-actions .artist-auth-secondary {
    min-height: 40px;
    padding: 8px 10px;
    border: 0;
    text-align: left;
}
.artist-account-view #artist-profile-reminder {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px 10px;
    margin-top: 10px;
    padding: 10px 12px;
}
.artist-account-view #artist-profile-reminder p {
    grid-column: 1;
    font-size: 12px;
}
.artist-account-view #artist-profile-reminder .artist-auth-secondary {
    grid-column: 2;
    grid-row: 1 / 3;
    align-self: center;
    max-width: 112px;
    min-height: 40px;
    padding-inline: 9px;
    font-size: 12px;
}
.artist-account-view .legacy-profile-layout { display: none !important; }
.institution-account-view .legacy-profile-layout { display: none !important; }
.visitor-account-view .legacy-profile-layout,
.private-seller-account-view .legacy-profile-layout { display: none !important; }
.profile-content:is(.visitor-account-view, .private-seller-account-view) { padding-top: 14px; padding-bottom: 28px; }
:is(.visitor-account-view, .private-seller-account-view) .artist-auth { margin-bottom: 12px; }
:is(.visitor-account-view, .private-seller-account-view) .member-welcome {
    position: relative;
    grid-template-columns: 68px minmax(0, 1fr) 38px;
    gap: 13px;
    margin-bottom: 0;
}
:is(.visitor-account-view, .private-seller-account-view) .member-avatar { width: 68px; height: 68px; }
:is(.visitor-account-view, .private-seller-account-view) .member-welcome h1 { font-size: clamp(19px, 5.2vw, 24px); line-height: 1.15; }
.visitor-account-view .member-greeting-prefix,
.private-seller-account-view .member-greeting-prefix { display: none; }
.visitor-dashboard-selling .artist-dashboard-row { margin-top: 0; }

.profile-content.institution-account-view {
    padding-top: 14px;
    padding-bottom: 28px;
}
.institution-account-view .artist-auth { margin-bottom: 12px; }
.institution-account-view .member-welcome--artist {
    position: relative;
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr) 38px;
    gap: 13px;
    align-items: center;
    text-align: left;
}
.institution-account-view .member-welcome--artist .public-artist-avatar {
    width: 68px;
    height: 68px;
    margin: 0;
    font-size: 24px;
}
.institution-account-view .member-identity-copy { min-width: 0; }
.institution-account-view .member-welcome h1 {
    font-size: clamp(19px, 5.2vw, 24px);
    line-height: 1.15;
    overflow-wrap: anywhere;
}
.institution-account-view .member-greeting-prefix { display: none; }
.institution-identity-role {
    margin: 3px 0 0;
    color: #777;
    font-size: 13px;
}

/* AS-048 — composition localisée de la page artiste publique. */
.public-artist-hero { text-align: center; }

.public-artist-cover {
    width: 100%;
    aspect-ratio: 16 / 7;
    background: #eeeeeb;
    background-position: center;
    background-size: cover;
}

.public-artist-hero.has-cover .public-artist-avatar {
    position: relative;
    margin-top: -48px;
    border: 4px solid #fff;
}

.public-artist-hero:not(.has-cover) .public-artist-avatar { margin-top: 18px; }

.public-artist-heading h1 {
    margin: 14px 18px 4px;
    font-size: 25px;
    overflow-wrap: anywhere;
}

.public-artist-stats {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0;
    margin: 10px 16px 0;
    color: #555;
    font-size: 13px;
}

.public-artist-stats span { white-space: nowrap; }
.public-artist-stats span + span::before {
    content: "|";
    margin: 0 8px;
    color: #bbb;
}

.public-artist-social-links {
    min-height: 24px;
    display: flex;
    justify-content: center;
    gap: 18px;
    margin: 12px 20px 0;
}
.public-artist-social-links a {
    color: #333;
    font-size: 14px;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.public-artist-location-row {
    width: min(100% - 32px, 520px);
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 4px auto 0;
}

.public-artist-location-row > * { min-width: 0; }
.public-artist-location-row:has(.public-artist-news-link.hidden) {
    justify-content: center;
}
.public-artist-news-link {
    padding: 3px 0;
    border: 0;
    background: transparent;
    color: #555;
    font: inherit;
    font-size: 13px;
    text-align: right;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.public-artist-actions {
    width: min(100% - 32px, 520px);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 12px auto 0;
}
.public-artist-actions:has(.artist-follow-button.hidden) { grid-template-columns: 1fr; }
.public-artist-actions .artist-follow-button,
.public-artist-actions .artist-contact-open {
    width: 100%;
    min-height: 42px;
    margin: 0;
    padding: 8px 12px;
    border: 1px solid #171717;
    border-radius: 999px;
    background: #fff;
    color: #171717;
    font-weight: 700;
    text-decoration: none;
}

.home-view {
    width: 100%;
    max-width: 520px;
    height: 100dvh;
    margin: 0 auto;
    overflow-y: auto;
    background: #fafaf8;
}
.home-header { grid-template-columns: minmax(0, 1fr); }
.home-header-brand {
    opacity: 1;
    visibility: visible;
    transition: opacity 180ms ease, transform 180ms ease, visibility 0s;
}
.home-header-brand.is-hidden {
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, calc(-50% - 3px));
    pointer-events: none;
    transition: opacity 180ms ease, transform 180ms ease, visibility 0s 180ms;
}
@media (prefers-reduced-motion: reduce) {
    .home-header-brand,
    .home-header-brand.is-hidden { transition: none; }
}
.home-header .topbar-buttons {
    grid-column: 1;
    width: auto;
    justify-self: end;
}
.home-content { padding: 26px 18px 110px; }
.home-logo { display: block; width: min(calc(100vw - 36px), 500px); max-width: none; height: auto; margin: 0 0 24px; }
.home-content > h1 {
    max-width: 400px;
    margin: 0 auto 16px;
    font-size: clamp(34px, 10vw, 48px);
    line-height: .98;
    letter-spacing: -.045em;
    text-align: center;
}
.home-promise { display: grid; gap: 4px; margin: 0 0 8px; text-align: center; }
.home-promise p { margin: 0; color: #555; font-size: 16px; line-height: 1.4; }
.home-promise strong { color: #171717; font-weight: 750; }
.home-location {
    display: block;
    margin: 0 0 16px;
    text-align: center;
}
.home-location-action {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    max-width: 100%;
    padding: 0 10px;
    border: 1px solid #deded9;
    border-radius: 999px;
    background: transparent;
    color: #171717;
    font-size: 13px;
    white-space: nowrap;
}
.home-location-action strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; font-size: 14px; }
.home-location-action #home-location-change { color: #666; }
.home-location-arrow { margin-left: auto; font-size: 20px; line-height: 1; }
@media (max-width: 380px) {
    .home-location-action { gap: 4px; padding: 0 8px; font-size: 12px; }
    .home-location-action strong { font-size: 13px; }
}
.home-city-form { width: min(100%, 330px); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.home-city-form input { min-width: 0; padding: 9px 10px; border: 1px solid #d6d6d2; border-radius: 8px; }
.home-city-form button { min-height: 44px; padding: 0 10px; border: 0; background: transparent; font-weight: 700; }
.home-discovery { margin: 4px 0 22px; }
.home-discovery > h2 {
    margin: 0 0 14px;
    font-family: Georgia, serif;
    font-size: clamp(19px, 5.2vw, 24px);
    font-weight: 500;
    line-height: 1.1;
    text-align: center;
}
.home-discovery-entries { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.home-discovery-card {
    min-width: 0;
    padding: 0;
    border: 1px solid #deded9;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    color: #171717;
    text-align: left;
}
.home-discovery-card > strong {
    min-height: 36px;
    display: flex;
    align-items: center;
    padding: 7px 10px;
    font-size: 13px;
    line-height: 1.15;
    text-transform: uppercase;
}
.home-discovery-copy {
    min-height: 54px;
    display: block;
    padding: 0 10px 10px;
    color: #666;
    font-size: 12px;
    line-height: 1.3;
}
.home-discovery-visual {
    aspect-ratio: 4 / 3;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: #efeee9;
}
.home-discovery-visual img { width: 100%; height: 100%; display: block; object-fit: cover; }
.home-events-visual img { width: 46%; height: 46%; object-fit: contain; opacity: .72; }
.home-around-shortcuts {
    margin-top: 10px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}
.home-around-shortcuts button {
    min-width: 0;
    min-height: 44px;
    padding: 7px 8px;
    border: 1px solid #deded9;
    border-radius: 999px;
    background: transparent;
    color: #333;
    font-size: 13px;
    font-weight: 700;
}
.home-content > #home-jep-entry {
    width: 100%;
    max-width: 100%;
    margin: 12px 0 24px;
    display: block;
    padding: 0;
    overflow: hidden;
    box-sizing: border-box;
}
.home-jep-visual-open {
    width: 100%;
    max-width: 100%;
    display: block;
    padding: 0;
    overflow: hidden;
    box-sizing: border-box;
    border: 0;
    border-radius: 16px;
    background: transparent;
    cursor: pointer;
}
.home-jep-visual-open img {
    width: 100%;
    max-width: 100%;
    height: auto;
    display: block;
    box-sizing: border-box;
}
.home-jep-visual-open:focus-visible { outline: 2px solid #171717; outline-offset: 3px; }
.home-local-preview { margin: 24px 0 0; }
.home-local-preview > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}
.home-local-preview h2 { margin: 0; font-family: Georgia, serif; font-size: 20px; font-weight: 500; }
.home-local-preview header button {
    min-height: 44px;
    padding: 0 4px;
    border: 0;
    background: transparent;
    color: #333;
    font-size: 13px;
    font-weight: 750;
}
.home-local-rail {
    display: grid;
    grid-auto-columns: minmax(150px, 44%);
    grid-auto-flow: column;
    gap: 10px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    scroll-snap-type: inline proximity;
}
.home-local-rail::-webkit-scrollbar { display: none; }
.home-local-card {
    min-width: 0;
    padding: 0;
    border: 1px solid #deded9;
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
    color: #171717;
    text-align: left;
    scroll-snap-align: start;
}
.home-local-card > img { width: 100%; aspect-ratio: 4 / 3; display: block; object-fit: cover; }
.home-local-card > span { display: grid; gap: 3px; padding: 9px; font-size: 12px; line-height: 1.3; }
.home-local-card strong { font-size: 13px; line-height: 1.25; }
.home-local-type { color: #666; font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.home-local-meta { color: #666; }
.home-section { margin-top: 42px; padding-top: 20px; border-top: 1px solid #deded9; }
.home-section > h2 {
    margin: 0 0 16px;
    color: #555;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .1em;
}
.home-tonight-teaser, .home-nearby-open {
    width: 100%;
    display: grid;
    gap: 5px;
    min-height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    text-align: left;
}
.home-tonight-teaser strong { font-size: 20px; line-height: 1.18; }
.home-tonight-teaser span { color: #666; }
.home-tonight-teaser span:last-child { margin-top: 6px; color: #171717; font-weight: 750; }
.home-feature-section { margin-top: 14px; padding-top: 0; border-top: 0; }
.home-editorial-divider {
    position: relative;
    width: 100%;
    max-width: 100%;
    height: 9px;
    margin: 0 0 18px;
    box-sizing: border-box;
}
.home-editorial-divider::before {
    content: "";
    position: absolute;
    top: 4px;
    right: 0;
    left: 0;
    border-top: 1px solid #c9c9c2;
}
.home-editorial-divider::after {
    content: "";
    position: absolute;
    top: 1px;
    left: 50%;
    width: 7px;
    height: 7px;
    border: 1px solid #b9b9b1;
    background: #fff;
    transform: translateX(-50%) rotate(45deg);
}
.home-section > .home-feature-heading {
    width: 100%;
    max-width: 100%;
    margin-bottom: 16px;
    color: #171717;
    font-family: Georgia, serif;
    font-size: clamp(15px, 4.6vw, 20px);
    font-weight: 500;
    letter-spacing: -.015em;
    line-height: 1.15;
    text-align: center;
    text-transform: none;
    white-space: nowrap;
}
.home-feature {
    width: 100%;
    display: grid;
    gap: 12px;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    text-align: left;
}
.home-feature img { width: 100%; max-height: 58vh; display: block; object-fit: cover; }
.home-feature > span { display: grid; gap: 3px; }
.home-feature > span > span { color: #666; }
.home-feature-open {
    min-height: 44px;
    margin-top: 12px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #111;
    font-weight: 800;
    text-align: left;
}
.home-content > #home-nearby-section { margin-top: 22px; padding-top: 0; border-top: 0; }
.home-content > #home-nearby-section .home-editorial-divider { margin-bottom: 14px; }
.home-nearby-open { font-size: 19px; font-weight: 750; line-height: 1.3; }
.public-artist-bottom-nav { display: none; }

@media (max-width: 640px) {
    #detail-view .detail-content,
    #public-artist-view .public-artist-content { padding-bottom: 104px; }
    .public-artist-bottom-nav {
        position: fixed;
        z-index: 30;
        right: 0;
        bottom: 0;
        left: 0;
        min-height: 50px;
        height: 50px;
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        padding: 3px 8px;
        border-top: 1px solid #e8e8e5;
        background: #fff;
    }
    .public-artist-bottom-nav button {
        min-width: 0;
        min-height: 44px;
        display: grid;
        place-items: center;
        gap: 2px;
        padding: 2px;
        border: 0;
        background: transparent;
        color: #555;
        font: inherit;
        font-size: 11px;
    }
    .public-artist-bottom-nav button span {
        color: #222;
        font-size: 19px;
        line-height: 1;
    }
    .public-artist-bottom-nav .bottom-nav-around-icon {
        width: 23px;
        height: 23px;
        background: currentColor;
        -webkit-mask: url("/static/icon-around.svg") center / contain no-repeat;
        mask: url("/static/icon-around.svg") center / contain no-repeat;
    }
    .app-bottom-nav.hidden { display: none; }
    .app-bottom-nav button.active {
        color: #111;
        font-weight: 800;
    }
    .app-bottom-nav #public-artist-nav-swipe.active {
        color: #b72d49;
    }
    .app-bottom-nav #public-artist-nav-events.active {
        color: #b72d49;
    }
    .app-shell.bottom-nav-view {
        height: calc(100dvh - 50px);
        max-height: calc(100dvh - 50px);
        grid-template-rows: 64px minmax(0, 1fr) 44px;
    }
    .app-shell.bottom-nav-view .actions {
        min-height: 44px;
        padding: 0 28px;
    }
    .app-shell.bottom-nav-view .preview-grid-tip { bottom: 101px; }
    .app-shell.bottom-nav-view .action-button,
    .app-shell.bottom-nav-view .own-artswipe-tools {
        width: 44px;
        height: 44px;
        flex: 0 0 44px;
    }
    .app-shell.bottom-nav-view .action-button {
        border-radius: 50%;
        background: radial-gradient(circle, #fff 0 15px, #d8d6d0 15.5px 16.5px, transparent 17px);
        box-shadow: none;
        font-size: 18px;
    }
    .app-shell.bottom-nav-view .action-button.undo {
        border-radius: 0;
        background: transparent;
        font-size: 25px;
    }
    .app-shell.bottom-nav-view .action-button.like,
    .app-shell.bottom-nav-view .action-button.star,
    .app-shell.bottom-nav-view .action-button.share {
        color: #555;
    }
    .app-shell.bottom-nav-view .action-button.like.active {
        background: radial-gradient(circle, #fff0f3 0 15px, #e84260 15.5px 16.5px, transparent 17px);
        color: #e84260;
    }
    .app-shell.bottom-nav-view .action-button.star.active {
        background: radial-gradient(circle, #fff8e7 0 15px, #d69b18 15.5px 16.5px, transparent 17px);
        color: #d69b18;
    }
    .bottom-nav-view {
        height: calc(100dvh - 50px);
        max-height: calc(100dvh - 50px);
    }
    .public-artist-stats { row-gap: 6px; }
    .public-artist-location-row { align-items: flex-start; }
}

@media (min-width: 1024px) {
    html:has(#home-view:not(.hidden)) {
        height: auto;
        min-height: 100%;
        overflow-y: auto;
    }
    html:has(#home-view:not(.hidden)) body {
        height: auto;
        min-height: 100%;
        overflow: visible;
    }
    #home-view:not(.hidden) {
        height: auto;
        min-height: 100dvh;
        overflow-y: visible;
    }
    .public-artist-bottom-nav {
        position: fixed;
        z-index: 110;
        right: 0;
        bottom: 0;
        left: 0;
        width: min(520px, 100%);
        min-height: 50px;
        height: 50px;
        margin: 0 auto;
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        padding: 3px 8px;
        border-top: 1px solid #e8e8e5;
        background: #fff;
    }
    .public-artist-bottom-nav button {
        min-width: 0;
        min-height: 44px;
        display: grid;
        place-items: center;
        gap: 2px;
        padding: 2px;
        border: 0;
        background: transparent;
        color: #555;
        font: inherit;
        font-size: 11px;
    }
    .public-artist-bottom-nav button span {
        color: #222;
        font-size: 19px;
        line-height: 1;
    }
    .public-artist-bottom-nav .bottom-nav-around-icon {
        width: 23px;
        height: 23px;
        background: currentColor;
        -webkit-mask: url("/static/icon-around.svg") center / contain no-repeat;
        mask: url("/static/icon-around.svg") center / contain no-repeat;
    }
    .app-bottom-nav.hidden { display: none; }
    .app-bottom-nav button.active {
        color: #111;
        font-weight: 800;
    }
    .app-bottom-nav #public-artist-nav-swipe.active,
    .app-bottom-nav #public-artist-nav-events.active {
        color: #b72d49;
    }

    .app-shell.bottom-nav-view {
        height: calc(100dvh - 50px);
        max-height: calc(100dvh - 50px);
    }
    .bottom-nav-view:not(.app-shell) { bottom: 50px; }

    .search-view .global-header,
    .detail-view .global-header { max-width: 650px; margin-inline: auto; }
    .events-view .global-header,
    .event-detail-view .global-header,
    .jep-view .global-header { max-width: 720px; margin-inline: auto; }
    .profile-view .global-header { max-width: 520px; margin-inline: auto; }
    .favorites-view .global-header { max-width: 760px; margin-inline: auto; }
    .community-inventory-view .global-header { max-width: 980px; }
}

@media (max-width: 370px) {
    .global-header:not(.topbar) .global-home img { width: 132px; }
}

.artist-dashboard {
    display: grid;
    gap: 20px;
}
.artist-dashboard-section { min-width: 0; }
.artist-dashboard-section > h2 {
    margin: 0 0 9px;
    color: #777;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.artist-dashboard-section > h2.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}
.artist-dashboard button {
    box-sizing: border-box;
    color: #222;
    font: inherit;
    cursor: pointer;
}
.artist-dashboard-card,
.artist-dashboard-row,
.artist-dashboard-list button,
.artist-dashboard-pair button {
    width: 100%;
    border: 1px solid #dfdfdb;
    background: #fff;
}
.artist-dashboard-artswipe-actions { margin-top: 0; }
.artist-dashboard-artswipe-actions button {
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 48px;
    font-size: 14px;
}
.artist-dashboard-card {
    min-height: 68px;
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 10px 14px;
    border-radius: 14px;
    text-align: left;
}
.artist-dashboard-card--primary {
    min-height: 74px;
    border-color: #cfcfc9;
    background: #f5f4f1;
}
.artist-dashboard-card > span:nth-child(2) { display: grid; gap: 3px; min-width: 0; }
.artist-dashboard-card small { color: #777; font-size: 12px; font-weight: 500; }
.artist-dashboard-card > span:last-child,
.artist-dashboard-row > span:last-child,
.artist-dashboard-list button > span:last-child,
.artist-dashboard-pair button > span:last-child { color: #999; font-size: 20px; }
.artist-dashboard-icon { color: #555; font-size: 20px; }
.artist-dashboard-row {
    min-height: 48px;
    display: grid;
    grid-template-columns: 28px 1fr auto;
    align-items: center;
    margin-top: 7px;
    padding: 8px 14px;
    border-radius: 12px;
    text-align: left;
}
.artist-dashboard .publish-message { min-height: 0; margin: 5px 0 0; }
.artist-dashboard-pair {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    margin-top: 7px;
}
.artist-dashboard-pair button {
    min-width: 0;
    min-height: 50px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 5px;
    align-items: center;
    padding: 8px 10px;
    border-radius: 12px;
    font-size: 13px;
    text-align: left;
}
.artist-dashboard-selling button {
    display: flex;
    justify-content: center;
    text-align: center;
    line-height: 1.15;
}
.artist-dashboard-list {
    overflow: hidden;
    border: 1px solid #dfdfdb;
    border-radius: 14px;
    background: #fff;
}
.artist-dashboard-list button {
    min-height: 54px;
    display: grid;
    grid-template-columns: 28px 1fr auto auto;
    gap: 6px;
    align-items: center;
    padding: 8px 14px;
    border: 0;
    text-align: left;
}
.artist-dashboard-list button + button { border-top: 1px solid #e7e7e3; }
#artist-dashboard { gap: 22px; }
#artist-dashboard .artist-dashboard-card,
#artist-dashboard .artist-dashboard-list button,
#artist-dashboard .artist-dashboard-pair button {
    min-height: 54px;
    padding: 9px 12px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
}
#artist-dashboard .artist-dashboard-card {
    grid-template-columns: 28px minmax(0, 1fr) auto;
    border-radius: 14px;
}
#artist-dashboard .artist-dashboard-pair button {
    grid-template-columns: auto minmax(0, 1fr) auto;
    height: 100%;
}
#artist-dashboard .artist-dashboard-selling button {
    min-height: 54px;
    padding-inline: 10px;
    font-size: 12px;
}
#artist-dashboard .artist-dashboard-card > span:last-child,
#artist-dashboard .artist-dashboard-list button > span:last-child,
#artist-dashboard .artist-dashboard-pair button > span:last-child {
    font-size: 19px;
    line-height: 1;
}
#artist-dashboard {
    gap: 26px;
    padding-bottom: 6px;
}
#artist-dashboard .artist-dashboard-section > h2 {
    margin-bottom: 10px;
    color: #62625f;
    font-size: 11px;
    letter-spacing: .14em;
}
#artist-dashboard .artist-dashboard-list {
    border-color: #e3e2de;
    border-radius: 16px;
    box-shadow: 0 1px 0 rgba(25, 25, 22, .02);
}
#artist-dashboard .artist-dashboard-list button {
    min-height: 56px;
    grid-template-columns: 30px minmax(0, 1fr) auto auto;
    padding-inline: 15px;
    background: #fff;
    font-weight: 600;
}
#artist-dashboard .artist-dashboard-list button > span:first-child {
    color: #666663;
    font-size: 18px;
    text-align: center;
}
#artist-dashboard .artist-dashboard-secondary-action {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 3px 2px 0 auto;
    padding: 0 6px;
    border: 0;
    background: transparent;
    color: #555;
    font-size: 13px;
    font-weight: 600;
}
#artist-dashboard .artist-dashboard-artswipe-actions {
    margin-top: 8px;
}
#artist-dashboard .artist-dashboard-artswipe-actions button {
    min-height: 50px;
    background: #f8f7f4;
}
.artist-account-view .profile-jep-selection-section { margin-bottom: -6px; }
#artist-dashboard .artist-dashboard-community-tools { margin-top: 9px; }
#artist-dashboard .community-social-entry {
    min-height: 82px;
    border-color: #d9e4dc;
    background: #f0f6f2;
    box-shadow: 0 7px 20px rgba(40, 74, 53, .06);
}
#artist-dashboard .community-social-entry .artist-dashboard-icon {
    color: #42674d;
    font-size: 23px;
}
#artist-dashboard .community-social-entry strong { font-size: 15px; }
#artist-dashboard .community-social-entry small {
    max-width: 360px;
    color: #5d6f62;
    line-height: 1.35;
}
#artist-dashboard .artist-dashboard-artworks > .artist-dashboard-card {
    border-color: #deddd8;
    background: #faf9f6;
}
#artist-dashboard .artist-dashboard-discoveries .artist-dashboard-pair button {
    min-height: 58px;
    background: #fff;
}
.artist-account-view .member-welcome--artist { margin-bottom: 0; }
.artist-account-view .profile-jep-selection-section { margin-bottom: -10px; }
#artist-dashboard .artist-dashboard-artworks > .artist-dashboard-card,
#artist-dashboard .artist-dashboard-tools > .artist-dashboard-card { background: #fff; box-shadow: none; }
#artist-dashboard .artist-dashboard-tools small { line-height: 1.4; }
#artist-dashboard .artist-dashboard-discoveries .artist-dashboard-pair button { overflow-wrap: normal; }
.artist-tools-view .artist-tools-list button {
    width: 100%; min-height: 64px; display: grid;
    grid-template-columns: 30px minmax(0, 1fr) auto;
    align-items: center; gap: 10px; padding: 10px 15px;
    border: 0; background: #fff; text-align: left; cursor: pointer;
}
.artist-tools-view .artist-tools-list button + button { border-top: 1px solid #e7e7e3; }
.artist-tools-view .artist-tools-list button > span:nth-child(2) { display: grid; gap: 3px; }
.artist-tools-view .artist-tools-list small { color: #777; font-size: 12px; }
.artist-artworks-actions { padding-top: 12px; }
.artist-artworks-actions .artist-dashboard-pair button { border: 1px solid #dfdfdb; background: #fff; cursor: pointer; }
.artist-artworks-actions .artist-dashboard-artswipe-actions button { display: flex; align-items: center; justify-content: center; }
#institution-posts-view .artist-dashboard-secondary-action { margin: 8px 0 16px; }
@media (max-width: 430px) {
    #artist-dashboard .artist-dashboard-discoveries .artist-dashboard-pair { grid-template-columns: 1fr; }
    .artist-account-view .member-welcome--artist .member-identity-copy { min-width: 0; }
    .artist-account-view .member-welcome--artist .artist-identity-actions { flex-wrap: wrap; }
}
@media (max-width: 374px) {
    .profile-content.artist-account-view { padding-inline: 12px; }
    .artist-account-view .member-welcome--artist {
        grid-template-columns: 62px minmax(0, 1fr) 36px;
        gap: 10px;
    }
    .artist-account-view .member-welcome--artist .public-artist-avatar {
        width: 62px;
        height: 62px;
    }
    .artist-dashboard { gap: 18px; }
    .artist-dashboard-pair { gap: 5px; }
    .artist-dashboard-pair button { padding-inline: 7px; font-size: 11px; }
    .artist-dashboard-selling button { font-size: 10.5px; }
    #artist-dashboard .artist-dashboard-pair button { padding-inline: 7px; font-size: 11.5px; }
    #artist-dashboard .artist-dashboard-selling button { font-size: 11px; }
    .profile-content.institution-account-view { padding-inline: 12px; }
    .institution-account-view .member-welcome--artist {
        grid-template-columns: 62px minmax(0, 1fr) 36px;
        gap: 10px;
    }
    .institution-account-view .member-welcome--artist .public-artist-avatar {
        width: 62px;
        height: 62px;
    }
}

.artist-register-fields {
    display: grid;
    gap: 10px;
}

.artist-auth .postal-location-select {
    width: 100%;
    min-height: 46px;
    border: 1px solid #ddd;
    border-radius: 12px;
    padding: 10px;
    font: inherit;
    background: #fff;
}

.artist-profile-reminder {
    display: grid;
    gap: 6px;
    padding: 12px 14px;
    border: 1px solid #dedede;
    border-radius: 14px;
    background: #f7f7f5;
    color: #292929;
}

.artist-profile-reminder p { margin: 0; font-size: .9rem; line-height: 1.4; }
.artist-profile-reminder .artist-auth-secondary { justify-self: start; }

@media (max-width: 374px) {
    .artist-account-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .artist-account-actions .artist-auth-secondary:last-child { grid-column: 1 / -1; }
}

/* Keep the final Moi links clear of the fixed bottom navigation in every account variant. */
#profile-view .profile-content { padding-bottom: max(80px, calc(80px + env(safe-area-inset-bottom))); }

.sell-form .price-on-request-option {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 9px;
    min-width: 0;
    min-height: 44px;
    cursor: pointer;
}

.sell-form .price-on-request-option input {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin: 0;
    padding: 0;
}

.price-field-disabled {
    opacity: .5;
}
/* AS-029 — photos complémentaires */
.detail-photos-section {
    margin-top: 1.5rem;
}

.detail-photos-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
}

.detail-photo-thumbnail {
    min-width: 0;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
}

.detail-photo-thumbnail img,
.detail-photo-editor-item img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

.detail-photo-editor {
    display: grid;
    gap: .55rem;
}

.detail-photo-editor > small {
    color: var(--muted, #6b6b66);
}

.detail-photo-editor-item {
    position: relative;
    min-width: 0;
}

.detail-photo-editor-item > button {
    position: absolute;
    top: .25rem;
    right: .25rem;
    width: 2rem;
    height: 2rem;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .9);
}

.detail-photo-editor-item.existing {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: .35rem;
}

.detail-photo-editor-item.existing img {
    grid-column: 1 / -1;
}

#edit-detail-images-picker.disabled {
    opacity: .5;
}

/* AS-031 — formulaire œuvre compact */
.sell-form {
    gap: 14px;
}

.sell-form .ownership-choice {
    gap: 6px;
    margin: 3px 0 8px;
    padding: 8px 0 10px;
}

.sell-form .ownership-choice label {
    min-height: 34px;
    gap: 7px;
    cursor: pointer;
    font-size: 14px;
}

.sell-form .ownership-choice input[type="radio"] {
    flex: 0 0 19px;
    width: 19px;
    height: 19px;
    margin: 0;
    padding: 0;
    accent-color: #171717;
}

.sell-form textarea {
    width: 100%;
    min-width: 0;
    min-height: 84px;
    padding: 11px 13px;
    border: 1px solid #d8d8d4;
    border-radius: 11px;
    background: white;
    font: inherit;
    resize: vertical;
}

.sell-form textarea::placeholder {
    color: #92928d;
}

.sell-form textarea:focus {
    outline: 2px solid #222;
    outline-offset: -1px;
}

.artwork-field-heading {
    width: 100%;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
}

.artwork-field-heading > span {
    color: #888;
    font-size: 12px;
    font-weight: 400;
}

.detail-photo-editor {
    gap: 6px;
    margin: 1px 0 3px;
}

.detail-photo-editor-items {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    margin-top: 3px;
}

.detail-photo-editor-grid {
    display: contents;
}

.detail-photo-editor-item,
.detail-photo-picker {
    min-width: 0;
    aspect-ratio: 1 / 1;
    border-radius: 10px;
    overflow: hidden;
}

.artswipe-scroll {
    width: 100%;
    height: 100%;
}

.artswipe-scroll.own-artswipe-scroll {
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-width: none;
}

.artswipe-scroll.own-artswipe-scroll::-webkit-scrollbar {
    display: none;
}

.own-artswipe-scroll .app-shell {
    width: 100vw;
}

.own-artswipe-shell #events-open,
.own-artswipe-shell #search-open {
    display: none;
}

.own-artswipe-shell .counter {
    color: #777;
    font-size: 12px;
    font-weight: 600;
}

.own-artswipe-shell .topbar-buttons {
    justify-content: flex-end;
}

.own-artswipe-tools {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    padding: 0;
    border: 1px solid #deded9;
    border-radius: 50%;
    background: transparent;
    color: #666;
    font-size: 18px;
    line-height: 1;
}

.detail-photo-picker {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    border: 1px dashed #aaa9a3;
    background: #f5f4f1;
    color: #555;
    cursor: pointer;
    font-size: 12px;
}

.detail-photo-picker > span {
    font-size: 25px;
    font-weight: 400;
    line-height: 1;
}

.sell-form input.visually-hidden,
.detail-photo-editor-item.existing input[type="checkbox"] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.detail-photo-picker:focus-within {
    outline: 2px solid #222;
    outline-offset: 2px;
}

.detail-photo-editor-item.existing {
    display: block;
}

.detail-photo-editor-item.existing span {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, .92);
    color: transparent;
    font-size: 0;
    cursor: pointer;
}

.detail-photo-editor-item.existing span::after {
    content: "×";
    color: #171717;
    font-size: 20px;
    line-height: 1;
}

.detail-photo-editor-item.existing:has(input:checked) {
    opacity: .5;
}

.sell-image-tools .text-action {
    padding: 7px 4px;
    border: 0;
    background: transparent;
    color: #555;
    font: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

@media (max-width: 340px) {
    .detail-photo-editor-items {
        gap: 5px;
    }
    .detail-photo-picker {
        font-size: 11px;
    }
}

.detail-photo-viewer {
    position: fixed;
    inset: 0;
    z-index: 500;
    display: grid;
    place-items: center;
    background: rgba(0, 0, 0, .94);
    color: white;
}

.detail-photo-viewer.hidden {
    display: none;
}

.detail-photo-viewer-zoom {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    overflow: hidden;
    touch-action: none;
}

.detail-photo-viewer-zoom img {
    max-width: 100%;
    max-height: 100%;
    object-fit: cover;
    transform-origin: center;
}

.detail-photo-viewer-close,
.detail-photo-viewer-nav {
    position: absolute;
    z-index: 1;
    border: 0;
    border-radius: 50%;
    color: white;
    background: rgba(0, 0, 0, .55);
}

.detail-photo-viewer-close {
    top: max(1rem, env(safe-area-inset-top));
    right: 1rem;
    width: 2.75rem;
    height: 2.75rem;
    font-size: 1.75rem;
}

.detail-photo-viewer-nav {
    top: 50%;
    width: 2.5rem;
    height: 2.5rem;
}

.detail-photo-viewer-nav.previous { left: .5rem; }
.detail-photo-viewer-nav.next { right: .5rem; }
.detail-photo-viewer-nav:disabled { opacity: .3; }

.detail-photo-viewer-counter {
    position: absolute;
    bottom: max(1rem, env(safe-area-inset-bottom));
    left: 50%;
    transform: translateX(-50%);
    padding: .35rem .65rem;
    border-radius: 1rem;
    background: rgba(0, 0, 0, .55);
}

/* AS-053 / AS-053A — fiche artiste compacte mais respirante. */
#public-artist-view .public-artist-swipe-link {
    min-height: 50px;
    margin-bottom: 10px;
    padding-block: 6px;
}

#public-artist-view .public-artist-heading h1 { margin-bottom: 9px; }
#public-artist-view .public-artist-text { margin-top: 20px; }
#public-artist-view #public-artist-bio {
    line-height: 1.6;
}
#public-artist-bio.clamped { -webkit-line-clamp: 5; }
#public-artist-view #public-artist-bio-toggle {
    margin-top: 5px;
    padding-block: 4px;
}

#public-artist-view .public-artist-section { margin-top: 14px; }
#public-artist-view .public-artist-section-toggle {
    min-height: 42px;
    margin-bottom: 6px;
}

.public-artist-section-meta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.public-artist-section-meta small {
    color: #777;
    font-size: 11px;
    font-weight: 650;
    letter-spacing: 0;
    text-transform: none;
}

#public-artist-view .public-artist-news-group { margin-top: 14px; }
#public-artist-view #public-artist-artworks .my-artworks-heading { margin-top: 14px; }

#public-artist-view .public-artist-location-row {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    margin-top: 7px;
}

#public-artist-view .public-artist-location-row:has(.public-artist-news-link.hidden) {
    justify-content: center;
}

#public-artist-view .public-artist-actions { margin-top: 16px; }
#public-artist-view .public-artist-stats { margin-top: 16px; }
#public-artist-view .public-artist-social-links {
    margin-top: 16px;
    margin-bottom: 2px;
}

#public-artist-view .public-artist-hero { padding-bottom: 14px; }

/* AS-058 — page et compte Institution */
.institution-content { max-width: 760px; margin: 0 auto; padding: 0 20px 90px; }
.institution-hero { text-align: center; }
.institution-cover { display: block; width: calc(100% + 40px); height: clamp(150px, 35vw, 270px); margin-left: -20px; object-fit: cover; }
.institution-avatar { width: 92px; height: 92px; margin: 22px auto 14px; border: 1px solid #171717; border-radius: 24px; display: grid; place-items: center; overflow: hidden; background: #fff; font-size: 34px; font-weight: 700; }
.institution-cover:not(.hidden) + .institution-avatar { margin-top: -46px; position: relative; }
.institution-avatar img { width: 100%; height: 100%; object-fit: cover; }
.institution-hero h1 { margin: 0; font-size: clamp(28px, 7vw, 46px); overflow-wrap: anywhere; }
#institution-city, #institution-type { margin: 7px 0 0; }
#institution-type { color: #666; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
.institution-actions { display: flex; justify-content: center; gap: 10px; margin: 20px 0 12px; }
.institution-actions button, .institution-actions a { min-height: 44px; padding: 11px 22px; border: 1px solid #171717; border-radius: 999px; background: #171717; color: #fff; text-decoration: none; font: inherit; }
.institution-actions a { background: #fff; color: #171717; }
.institution-actions button.active { background: #fff; color: #171717; }
.institution-socials { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
.institution-socials:not(.hidden) { margin-bottom: 22px; }
.institution-socials a, .institution-content a { color: #171717; }
#institution-short { font-weight: 600; margin: 24px auto 8px; max-width: 620px; }
.institution-socials:not(.hidden) + #institution-short { margin-top: 0; }
.institution-description { white-space: pre-line; line-height: 1.6; text-align: left; }
.institution-description.clamped { display: -webkit-box; -webkit-line-clamp: 7; -webkit-box-orient: vertical; overflow: hidden; }
.institution-description.expanded { display: block; }
#institution-description-more { display: flex; margin: 14px auto 0; }
.institution-section { margin-top: 34px; border-top: 1px solid #ddd; padding-top: 18px; }
.institution-section h2 { font-size: 17px; letter-spacing: .05em; text-transform: uppercase; }
.institution-event-group { margin-top: 20px; }
.institution-event-group h3 { margin: 0 0 8px; color: #666; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
.institution-section .public-artist-event-card { margin-top: 10px; }
.institution-event-card .artist-event-dates:empty { display: none; }
.institution-event-card .artist-event-description.is-collapsed {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}
.institution-event-description-toggle {
    min-height: 44px;
    margin-top: 2px;
    padding: 5px 0;
    border: 0;
    background: transparent;
    color: #555;
    font: inherit;
    font-size: 13px;
    text-decoration: underline;
}
.institution-event-deadline { margin: 10px 0 0; font-weight: 650; }
#institution-past-toggle { margin-top: 18px; }
#institution-info { margin: 0; }
#institution-info > div { display: grid; grid-template-columns: minmax(110px, 1fr) 2fr; gap: 16px; padding: 11px 0; border-bottom: 1px solid #eee; }
#institution-info dt { color: #666; }
#institution-info dd { margin: 0; white-space: pre-line; overflow-wrap: anywhere; }
.event-linked-institution .event-artist-artworks > span:first-of-type { display: grid; text-align: left; }
.event-linked-institution small { color: #666; font-weight: 400; }
.institution-profile-form { gap: 0; }
.institution-profile-form .profile-form-title {
    margin-bottom: 8px;
    padding-bottom: 14px;
    border-bottom: 1px solid #deded9;
}
.institution-profile-return {
    flex: 0 0 auto;
    min-height: 44px;
    padding-inline: 4px;
    border: 0;
    background: transparent;
    box-shadow: none;
    color: #555;
    text-decoration: none;
}
.institution-profile-section {
    display: grid;
    gap: 13px;
    padding: 22px 0;
    border-bottom: 1px solid #e4e4df;
}
.institution-profile-section h3 {
    margin: 0 0 2px;
    color: #777;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.institution-profile-section label {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 7px;
    font-size: 13px;
    font-weight: 650;
}
.institution-profile-section input,
.institution-profile-section textarea,
.institution-profile-section select {
    min-width: 0;
    width: 100%;
}
.institution-media-field { display: grid; min-width: 0; gap: 8px; }
.institution-media-title { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.institution-media-control { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; }
.institution-media-control > span { min-width: 0; overflow-wrap: anywhere; }
.institution-media-control > span.is-saved::before { content: "\2713"; margin-right: 6px; color: #238636; font-weight: 800; }
.institution-media-control .text-action { flex: 0 0 auto; min-height: 44px; padding-inline: 0; border: 0; background: transparent; box-shadow: none; }
.institution-media-control .text-action.is-edit { width: 44px; padding: 0; font-size: 21px; line-height: 1; }
.institution-coordinate-grid {
    display: grid;
    grid-template-columns: minmax(100px, .8fr) minmax(0, 1.3fr) minmax(100px, 1fr);
    gap: 12px;
}
.institution-profile-submit {
    min-height: 48px;
    margin-top: 22px;
}
.institution-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 620px) {
  .institution-profile-form .institution-form-grid,
  .institution-coordinate-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .institution-profile-section { padding-block: 19px; }
}
@media (max-width: 480px) {
  .institution-content { padding-inline: 16px; }
  .institution-cover { width: calc(100% + 32px); margin-left: -16px; }
  .institution-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #institution-info > div, .institution-form-grid { grid-template-columns: 1fr; gap: 4px; }
}

#public-artist-view .public-artist-actions .artist-contact-open,
#public-artist-view .public-artist-actions .artist-follow-button {
    font-size: 13px;
    white-space: nowrap;
}

/* AS-086 — hiérarchie compacte de la fiche œuvre, sous l’image principale. */
#detail-view .detail-content {
    padding: 18px 18px 42px;
}
#detail-view .detail-title-row { gap: 12px; }
#detail-view .detail-artist {
    margin-bottom: 3px;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.25;
}

/* AS-077 Community — inventaire privé des artistes. */
.community-social-entry { background: #f5f4f1; }
.community-social-content {
    width: min(100%, 720px);
    margin: 0 auto;
    padding: 24px 16px 110px;
    box-sizing: border-box;
}
.community-social-content h1 {
    margin: 0;
    font-family: Georgia, serif;
    font-size: clamp(32px, 8vw, 48px);
    font-weight: 400;
}
.community-social-intro { max-width: 560px; margin: 10px 0 24px; color: #5f5f5b; line-height: 1.55; }
.community-social-grid { display: grid; gap: 10px; }
.community-social-grid article, .community-social-card {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 12px;
    padding: 18px;
    border: 1px solid #dfdfdb;
    border-radius: 14px;
    background: #fff;
}
.community-social-card {
    grid-template-columns: 38px minmax(0, 1fr) auto;
    width: 100%;
    color: inherit;
    text-align: left;
}
.community-social-card > span:nth-child(2) { display: grid; gap: 5px; }
.community-social-card strong { font-size: 18px; }
.community-social-card small { color: #555; font-weight: 600; }
.community-social-grid article > span { font-size: 22px; color: #555; }
.community-social-grid h2 { margin: 0 0 5px; font-size: 18px; }
.community-social-grid p { margin: 0 0 9px; color: #555; line-height: 1.45; }
.community-social-grid small { color: #777; font-weight: 600; }
.community-help-content {
    width: min(100%, 720px);
    margin: 0 auto;
    padding: 24px 16px 110px;
    box-sizing: border-box;
}
.community-help-content > h1 { margin: 0 0 10px; font: 400 clamp(32px, 8vw, 48px)/1.05 Georgia, serif; }
.community-help-filter { display: grid; gap: 6px; margin: 20px 0 12px; font-size: 13px; font-weight: 700; }
.community-help-filter select, .community-help-form select,
.community-help-form input, .community-help-form textarea {
    width: 100%;
    box-sizing: border-box;
}
.community-help-list { display: grid; gap: 10px; }
.community-help-card {
    width: 100%;
    display: grid;
    gap: 6px;
    padding: 16px;
    border: 1px solid #dfdfdb;
    border-radius: 14px;
    background: #fff;
    color: inherit;
    text-align: left;
}
.community-help-card-head, .community-help-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    color: #666;
    font-size: 12px;
}
.community-help-card h2 { margin: 0; font-size: 19px; }
.community-help-card p { margin: 0; color: #444; line-height: 1.45; }
.community-help-status { padding: 3px 7px; border-radius: 999px; background: #ecebe7; font-weight: 700; }
.community-help-status.is-open { background: #e8f2e9; color: #315d36; }
.community-help-form { display: grid; gap: 16px; }
.community-help-form label { display: grid; gap: 7px; font-size: 13px; font-weight: 700; }
.community-help-form textarea { resize: vertical; line-height: 1.5; }
.community-help-detail { display: grid; gap: 10px; }
.community-help-detail h1 { margin: 0; font: 400 clamp(30px, 7vw, 44px)/1.08 Georgia, serif; }
.community-help-detail-body, .community-help-reply-body { white-space: pre-wrap; line-height: 1.55; }
.community-help-owner-actions, .community-help-reply-actions { display: flex; gap: 8px; margin-top: 14px; }
.community-help-replies { margin-top: 30px; }
.community-help-reply { padding: 15px 0; border-top: 1px solid #e2e2de; }
.community-help-reply header { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 7px; }
.community-help-reply p { margin: 0; }
.community-project-checkbox { grid-template-columns: auto minmax(0, 1fr); align-items: center; }
.community-project-checkbox input { width: auto; margin: 0; }
.community-project-practical { display: flex; flex-wrap: wrap; gap: 6px 12px; color: #555; font-size: 14px; }
.community-author { display: inline-flex; align-items: center; gap: 7px; }
.community-author-avatar { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; }
.community-network-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 18px 0; }
.community-network-tabs button { min-width: 0; min-height: 44px; padding: 8px; }
.community-network-tabs button.active { background: #222; color: #fff; }
.community-network-list { display: grid; gap: 10px; }
.community-network-card { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 12px; padding: 15px; border: 1px solid #dfdfdb; border-radius: 14px; background: #fff; }
.community-network-card > img, .community-network-avatar { width: 54px; height: 54px; border-radius: 50%; object-fit: cover; }
.community-network-avatar { display: grid; place-items: center; background: #ecebe7; font-weight: 700; }
.community-network-copy { display: grid; gap: 4px; min-width: 0; }
.community-network-copy > span { color: #666; font-size: 13px; }
.community-network-copy p { display: -webkit-box; margin: 3px 0; overflow: hidden; color: #444; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.community-network-copy time { color: #777; font-size: 12px; }
.community-network-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: 6px; }
.community-network-actions button { width: auto; min-height: 40px; margin: 0; }
#community-network-requests > h2 { margin: 24px 0 10px; font-size: 19px; }
/* Community social spaces: visual polish scoped to the three existing views. */
.community-social-view, .community-help-view, .community-help-form-view,
.community-help-detail-view, .community-projects-view, .community-project-form-view,
.community-project-detail-view, .community-network-view { background: #fff; }
.community-social-view .community-kicker, .community-help-view .community-kicker,
.community-help-form-view .community-kicker, .community-help-detail-view .community-kicker { color: #aa6979; }
.community-projects-view .community-kicker, .community-project-form-view .community-kicker,
.community-project-detail-view .community-kicker { color: #58779b; }
.community-network-view .community-kicker { color: #5d816c; }
.community-social-view .community-social-content, .community-help-content { padding-top: 30px; }
.community-social-view .community-social-intro, .community-help-content > .community-social-intro { font-size: 15px; }
.community-social-card { align-items: center; min-height: 104px; padding: 15px; border-color: #ebe5e4; box-shadow: none; }
.community-social-card:nth-child(1) { background: #fbf1f3; }
.community-social-card:nth-child(2) { background: #f0f5fa; border-color: #e3eaf1; }
.community-social-card:nth-child(3) { background: #eff6f1; border-color: #e0ebe3; }
.community-social-card > span:first-child { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: #f1dce1; font-size: 22px; }
.community-social-card:nth-child(2) > span:first-child { background: #dbe8f5; }
.community-social-card:nth-child(3) > span:first-child { background: #dceadd; }
.community-social-card > span:last-child { font-size: 24px; font-weight: 300; }
.community-social-card strong { font-size: 17px; }
.community-social-card > span:nth-child(2) > span { color: #555; font-size: 13px; line-height: 1.4; }
.community-social-card small { color: #686866; font-size: 11px; font-weight: 500; }
.community-social-card:focus-visible, .community-help-card:focus-visible { outline: 2px solid #222; outline-offset: 2px; }
.community-help-view .community-help-filter, .community-projects-view .community-help-filter,
.community-network-view .community-help-filter { max-width: 330px; }
.community-help-view .community-help-filter select, .community-projects-view .community-help-filter select,
.community-help-form-view .community-help-form select, .community-project-form-view .community-help-form select {
    min-height: 44px;
    border: 1px solid #dcdad8;
    border-radius: 8px;
    background-color: #fff;
}
.community-help-card { border-color: #e6e4e2; border-radius: 11px; box-shadow: none; }
.community-help-card p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.community-help-card-head > span:first-child { padding: 3px 8px; border-radius: 999px; background: #fbf0f3; color: #995b6b; font-weight: 600; }
.community-projects-view .community-help-card-head > span:first-child,
.community-project-detail-view .community-help-card-head > span:first-child { background: #edf4fa; color: #526f91; }
.community-help-form-view .community-help-form, .community-project-form-view .community-help-form { gap: 18px; }
.community-help-form-view .form-actions, .community-project-form-view .form-actions { flex-wrap: wrap; }
.community-help-form-view .form-actions button, .community-project-form-view .form-actions button,
.community-network-actions button { min-height: 44px; }
.community-help-replies { border-top: 1px solid #e9e8e5; padding-top: 16px; }
.community-projects-view #community-project-empty { padding: 30px 18px; border: 1px solid #e4eaf0; border-radius: 12px; background: #f5f8fb; text-align: center; }
.community-projects-view #community-project-empty::before { content: "＋"; display: grid; place-items: center; width: 58px; height: 58px; margin: 0 auto 14px; border-radius: 50%; background: #e4edf5; color: #58779b; font-size: 28px; font-weight: 300; }
.community-network-tabs button { border: 1px solid #dfdfdb; border-radius: 8px; background: #fff; }
.community-network-tabs button.active { border-color: #222; }
.community-network-card { border-color: #e4e6e2; border-radius: 11px; }
.community-network-avatar-frame { position: relative; width: 54px; height: 54px; }
.community-network-avatar-frame .community-network-avatar { position: absolute; inset: 0; }
.community-network-avatar-frame img { position: absolute; inset: 0; width: 54px; height: 54px; border-radius: 50%; object-fit: cover; }
.community-network-avatar-frame img:not(.is-loaded) { visibility: hidden; }
.community-network-copy strong { font-size: 16px; }
.community-network-actions .text-action { border: 1px solid #d7d8d4; border-radius: 7px; padding-inline: 12px; }
/* Existing Community views and JS-rendered cards share one control language. */
.community-help-content { max-width: 680px; }
.community-help-content button:not(.global-back), .community-social-content button { font: inherit; cursor: pointer; }
.community-help-content > button.primary, .community-help-form button.primary,
.community-network-actions button.primary { width: auto; min-height: 44px; margin: 0; padding: 10px 18px; border: 1px solid #1c1c1c; border-radius: 8px; background: #1c1c1c; color: #fff; font-size: 14px; font-weight: 600; }
.community-help-content > button.primary { margin: 3px 0 6px; }
.community-help-content button:not(.primary):not(.community-help-card):not(.active) { background-color: #fff; }
.community-help-content .form-actions button:not(.primary), .community-help-owner-actions button,
.community-help-reply-actions button, .community-network-actions button:not(.primary) {
    min-height: 44px; margin: 0; padding: 9px 14px; border: 1px solid #deddda; border-radius: 8px; color: #262626; font-size: 14px;
}
.community-help-content button:focus-visible, .community-help-content input:focus-visible,
.community-help-content select:focus-visible, .community-help-content textarea:focus-visible { outline: 2px solid #262626; outline-offset: 2px; }
.community-help-content button:disabled { opacity: .48; cursor: not-allowed; }
.community-help-content .community-help-filter { width: min(100%, 300px); margin: 12px 0 20px; color: #555; font-weight: 600; }
.community-help-content select, .community-help-content input:not([type="checkbox"]), .community-help-content textarea {
    min-height: 44px; padding: 10px 12px; border: 1px solid #d9d9d6; border-radius: 8px; background: #fff; color: #222; font: inherit; font-size: 14px;
}
.community-help-content textarea { min-height: 130px; }
.community-help-form-view .community-help-form textarea, .community-project-form-view .community-help-form textarea { height: 148px; min-height: 110px; }
.community-help-form-view .community-help-form label, .community-project-form-view .community-help-form label { color: #262626; font-size: 13px; }
.community-help-form-view .form-actions, .community-project-form-view .form-actions { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding-bottom: 20px; }
.community-project-form-view .community-project-checkbox { display: flex; align-items: center; gap: 9px; min-height: 44px; }
.community-project-form-view .community-project-checkbox input { width: 18px; height: 18px; accent-color: #222; }
.community-help-view .community-help-card, .community-projects-view .community-help-card { gap: 8px; min-height: 132px; padding: 17px; }
.community-help-card h2 { font-family: Georgia, serif; font-size: 21px; font-weight: 400; line-height: 1.2; }
.community-help-card .community-help-meta { margin-top: 3px; line-height: 1.45; }
.community-help-detail { padding: 18px 0 10px; }
.community-help-detail-body { margin: 8px 0; }
.community-help-view #community-help-empty, .community-projects-view #community-project-empty,
.community-network-view .empty-state, .community-help-detail-view .empty-state,
.community-project-detail-view .empty-state { width: 100%; box-sizing: border-box; margin: 12px 0; padding: 28px 18px; border: 1px solid #e8e6e3; border-radius: 12px; background: #fbfaf9; color: #555; font-size: 14px; line-height: 1.5; text-align: center; }
.community-help-view #community-help-empty::before, .community-network-view .empty-state::before {
    content: "○"; display: grid; place-items: center; width: 48px; height: 48px; margin: 0 auto 12px; border-radius: 50%; background: #f5e7ea; color: #a76f7d; font-size: 23px;
}
.community-help-view #community-help-empty strong, .community-projects-view #community-project-empty strong { display: block; margin-bottom: 6px; color: #242424; font: 400 22px/1.2 Georgia, serif; }
.community-help-view #community-help-empty span, .community-projects-view #community-project-empty span { display: block; }
.community-network-view .empty-state::before { background: #e8f0ea; color: #5d816c; }
.community-network-view .community-help-filter { width: 100%; max-width: none; position: relative; margin-top: 8px; }
.community-network-view .community-help-filter input { width: 100%; padding-left: 38px; appearance: none; }
.community-network-view .community-help-filter::before { content: "⌕"; position: absolute; left: 13px; bottom: 10px; color: #777; font-size: 22px; line-height: 1; pointer-events: none; }
.community-network-tabs { max-width: 510px; }
.community-network-card { align-items: start; gap: 13px; padding: 14px; }
.community-network-actions { margin-top: 8px; }
.community-network-actions > span { flex-basis: 100%; color: #62625e; font-size: 13px; }
.community-network-view #community-network-requests > h2 { display: inline-block; margin: 6px 14px 13px 0; padding-bottom: 6px; border-bottom: 1px solid #d8d8d5; font-size: 14px; font-weight: 600; }
.community-network-view #community-network-sent { margin-top: 10px; }
.community-help-view .community-choice-source, .community-help-form-view .community-choice-source,
.community-projects-view .community-choice-source, .community-project-form-view .community-choice-source {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.community-help-view .community-help-filter:has(.community-choice-source),
.community-projects-view .community-help-filter:has(.community-choice-source) { margin-bottom: 7px; }
.community-choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin: 0 0 20px; }
.community-help-form .community-choice-grid { margin-top: -12px; margin-bottom: 0; }
.community-help-content .community-choice-button {
    display: flex; align-items: center; justify-content: center; min-width: 0; min-height: 48px; margin: 0; padding: 8px 9px;
    border: 1px solid #deddda; border-radius: 8px; background: #fff; color: #262626; font-size: 12px; font-weight: 500; line-height: 1.25; text-align: center; white-space: normal;
}
.community-help-content .community-choice-button:hover { border-color: #aaa9a6; }
.community-help-content .community-choice-help .community-choice-button.active { border-color: #d8889d; background: #fff0f3; color: #91485d; }
.community-help-content .community-choice-project .community-choice-button.active { border-color: #83a9d0; background: #edf5fd; color: #395f84; }
.community-help-content .community-choice-button:focus-visible { outline: 2px solid #222; outline-offset: 2px; }
@media (max-width: 390px) {
    .community-choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 430px) {
    .community-social-card { grid-template-columns: 38px minmax(0, 1fr) 18px; }
    .community-network-tabs button { padding-inline: 3px; font-size: 12px; }
    .community-network-actions button { max-width: 100%; }
    .community-help-form-view .form-actions, .community-project-form-view .form-actions { align-items: stretch; }
    .community-help-form-view .form-actions button, .community-project-form-view .form-actions button { min-width: 0; }
}
.community-content { width: min(100%, 980px); margin: 0 auto; padding: 14px 16px 110px; box-sizing: border-box; overflow-x: hidden; }
.community-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 14px; }
.community-heading p, .community-kicker { margin: 0 0 3px; color: #777; font-size: 11px; font-weight: 700; letter-spacing: .15em; }
.community-heading .community-description { max-width: 480px; margin: 5px 0 0; color: #666; font-size: 14px; font-weight: 400; line-height: 1.35; letter-spacing: 0; }
.community-heading h1 { margin: 0; font-family: Georgia, serif; font-size: clamp(30px, 8vw, 44px); font-weight: 400; }
.community-heading .publish-button { width: auto; min-height: 44px; margin: 0; padding: 0 15px; }
.community-compact-primary { white-space: nowrap; }
.community-heading-actions { display: flex; align-items: center; gap: 7px; }
.community-heading-actions button { width: auto; min-height: 44px; margin: 0; }
.community-page-summary, .community-page-description { margin: 5px 0 0; color: #666; font-size: 14px; line-height: 1.4; }
.community-secondary-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 12px; margin: 8px 0 0; }
.community-secondary-actions button { width: auto; min-height: 44px; margin: 0; padding-inline: 4px; }
#community-transfer-selected { width: 100%; min-height: 48px; margin: 12px 0; }
.community-card.selecting { position: relative; }
.community-card.selecting::after { content: ""; position: absolute; top: 10px; right: 10px; width: 24px; height: 24px; border: 2px solid #fff; border-radius: 50%; background: #fff; box-shadow: 0 0 0 1px #555; }
.community-card.selecting.selected::after { content: "✓"; display: grid; place-items: center; background: #222; color: #fff; }
.community-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 0 0 14px; border-bottom: 1px solid #ddd; }
.community-nav button { min-width: 0; min-height: 44px; padding: 0 2px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: #777; font: inherit; font-size: 13px; font-weight: 500; white-space: nowrap; }
.community-nav button.active { border-bottom-color: #222; color: #222; }
.community-tools { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; margin-top: 8px; }
.community-tools input, .community-tools select, .community-form input, .community-form select, .community-form textarea { width: 100%; min-height: 44px; box-sizing: border-box; border: 1px solid #d8d5cf; border-radius: 8px; background: #fff; padding: 10px 12px; font: inherit; }
.community-tools select { width: auto; max-width: 155px; }
.community-shortcuts { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin: 8px 0 16px; }
.community-shortcuts button { min-height: 44px; }
.community-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.community-card { min-width: 0; padding: 0; overflow: hidden; border: 1px solid #e2dfda; border-radius: 12px; background: #fff; color: inherit; text-align: left; }
.community-card > img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: #eee; }
.community-card-copy { display: grid; gap: 3px; padding: 12px; }
.community-card-copy strong { font-size: 17px; }
.community-card-copy span { overflow-wrap: anywhere; color: #666; font-size: 13px; }
.community-card-copy .community-status { margin-top: 5px; color: #222; font-weight: 600; }
#community-grid { grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); }
#community-grid .community-inventory-card { position: relative; display: grid; grid-template-columns: 112px minmax(0, 1fr) 24px; min-height: 118px; align-items: stretch; }
#community-grid .community-inventory-card > img { width: 112px; height: 118px; aspect-ratio: auto; object-fit: contain; background: #f1f0ed; }
#community-grid .community-inventory-card .community-card-copy { align-content: center; gap: 2px; min-width: 0; padding: 9px 8px 9px 11px; }
#community-grid .community-inventory-card .community-card-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 16px; }
#community-grid .community-inventory-card .community-card-copy span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#community-grid .community-inventory-card .community-card-reference { color: #4f4f4f; }
#community-grid .community-inventory-card .community-card-location { color: #555; }
#community-grid .community-inventory-card .community-status { justify-self: start; margin-top: 3px; padding: 2px 7px; border-radius: 999px; background: #f0eee9; color: #333; font-size: 11px; }
.community-card-chevron { align-self: center; color: #777; font-size: 24px; }
.community-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 14px 0 18px; padding: 16px; border: 1px solid #e0ddd7; border-radius: 12px; background: #faf9f7; }
.community-form h2, .community-form-actions, .community-form > label:has(textarea), .community-form > label:has(input[type=file]) { grid-column: 1 / -1; }
.community-form label { display: grid; align-content: start; gap: 5px; min-width: 0; font-size: 13px; font-weight: 600; }
.community-form-pair, .community-form-triple { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.community-form-triple { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.community-form-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.community-form-actions button { width: auto; min-height: 44px; margin: 0; }
#community-link-panel { display: block; }
#community-link-list { display: grid; gap: 8px; margin: 10px 0; }
.community-link-item { display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 56px; border: 1px solid #ddd; border-radius: 8px; background: #fff; text-align: left; }
.community-link-item img { width: 54px; height: 54px; object-fit: cover; }
.community-detail-image { display: block; width: min(100%, 620px); max-height: 55vh; margin: 0 auto 18px; object-fit: contain; background: #f2f1ee; }
.community-private-notes { padding: 12px; border-left: 2px solid #aaa; background: #f6f5f2; white-space: pre-wrap; }
.community-history article { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 3px 10px; padding: 12px 0; border-top: 1px solid #ddd; }
.community-history article span, .community-history article p { grid-column: 2; margin: 0; }
.community-locations-list { display: grid; gap: 9px; margin-top: 8px; }
.community-operational-summary { margin: 5px 0 14px; color: #666; font-size: 13px; }
.community-location-card { display: grid; gap: 3px; width: 100%; min-height: 88px; padding: 13px 44px 13px 14px; position: relative; border: 1px solid #dfdcd6; border-radius: 10px; background: #fff; color: #222; text-align: left; }
.community-location-card::after { content: "›"; position: absolute; right: 16px; top: 50%; transform: translateY(-50%); font-size: 24px; }
.community-location-card strong { font-size: 17px; }
.community-location-card span { color: #666; font-size: 13px; }
.community-location-card small { margin-top: 4px; font-size: 13px; font-weight: 600; }
.community-list-section { margin-top: 22px; }
.community-list-section h2 { margin: 0; font-size: 12px; letter-spacing: .1em; }
.community-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 20px; padding-bottom: 7px; border-bottom: 1px solid #e4e1dc; }
.community-section-heading h2 { margin: 0; font-size: 12px; font-weight: 750; letter-spacing: .1em; }
.community-section-heading span { color: #666; font-size: 13px; font-weight: 700; }
.community-list-section .community-section-heading { margin-top: 0; }
.community-archived-action { width: auto; min-height: 44px; margin: 18px 0 0; padding-inline: 0; }
.community-transfer-card { min-height: 104px; }
.community-transfer-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-right: 2px; color: #222; }
.community-transfer-card-head .community-status { flex: 0 0 auto; padding: 3px 8px; border-radius: 999px; background: #f0eee9; color: #444; font-size: 11px; font-weight: 700; }
.community-location-actions { display: flex; gap: 10px; margin: 12px 0; }
.community-location-actions button { min-height: 44px; width: auto; margin: 0; }
.community-location-data { display: grid; gap: 8px; margin: 12px 0; }
.community-location-data div { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 8px; }
.community-location-data dt { color: #777; font-size: 12px; font-weight: 600; text-transform: uppercase; }
.community-location-data dd { min-width: 0; margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
.community-location-works, .community-history { margin-top: 28px; }
.community-location-works h2, .community-history h2 { font-size: 18px; }
.community-location-artwork { display: grid; grid-template-columns: 92px minmax(0, 1fr); }
.community-location-artwork > img { width: 92px; height: 100%; aspect-ratio: 1; }
#community-location-history article { display: grid; gap: 3px; padding: 11px 0; border-top: 1px solid #ddd; }
#community-location-history article span, #community-location-history article small { color: #666; }
.community-transfer-items { grid-column: 1 / -1; display: grid; gap: 8px; }
.community-transfer-items article { display: grid; grid-template-columns: 64px minmax(0, 1fr) minmax(110px, .5fr) minmax(110px, .5fr); gap: 8px; align-items: center; padding: 8px; border: 1px solid #ddd; border-radius: 9px; background: #fff; }
.community-transfer-items img { width: 64px; height: 64px; object-fit: cover; }
.community-transfer-summary { grid-column: 1 / -1; padding: 12px; background: #eeeae3; font-weight: 700; }
.community-check { grid-template-columns: 24px minmax(0, 1fr); align-items: center; }
.community-check input { width: 20px; min-height: 20px; }
@media (max-width: 520px) {
    .community-heading-actions { align-items: stretch; }
    .community-nav { gap: 2px; }
    .community-nav button { font-size: clamp(11px, 3.3vw, 13px); }
    .community-transfer-items article { grid-template-columns: 54px minmax(0, 1fr); }
    .community-transfer-items article label { grid-column: 2; }
}
@media (max-width: 520px) {
    .community-content { padding-inline: 12px; }
    .community-heading { align-items: end; gap: 8px; }
    .community-heading h1 { font-size: clamp(29px, 8vw, 36px); }
    .community-heading .publish-button { width: auto; max-width: none; padding-inline: 12px; }
    .community-heading-actions { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); }
    .community-heading-actions button { width: 100%; padding-inline: 9px; }
    .community-tools { grid-template-columns: minmax(0, 1fr); }
    .community-tools select { width: 100%; max-width: none; }
    .community-grid { grid-template-columns: minmax(0, 1fr); }
    #community-grid { gap: 8px; }
    #community-grid .community-inventory-card { grid-template-columns: 104px minmax(0, 1fr) 22px; min-height: 112px; }
    #community-grid .community-inventory-card > img { width: 104px; height: 112px; }
    .community-form { grid-template-columns: minmax(0, 1fr); padding: 12px; }
    .community-form > *, .community-form h2, .community-form-actions { grid-column: 1; }
    .community-form-triple { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
}
#detail-view #detail-title {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.25;
}
#detail-view #detail-price {
    max-width: 150px;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.25;
}
#detail-view .detail-meta {
    margin-top: 11px;
    color: #333;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.45;
    white-space: pre-line;
}
#detail-view .detail-characteristics { margin-top: 7px; }
#detail-view .detail-characteristics-grid { gap: 3px; }
#detail-view .detail-characteristic span,
#detail-view #detail-additional-info-section p,
#detail-view .detail-location {
    color: #555;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.4;
}
#detail-view #detail-additional-info-section { margin-top: 7px; }
#detail-view .detail-provenance {
    margin-top: 10px;
    padding-top: 10px;
}
#detail-view .detail-artwork-type {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
}
#detail-view .detail-seller-line { margin-top: 5px; }
#detail-view .detail-seller { margin-top: 0; font-size: 13px; font-weight: 400; }
#detail-view .detail-location { margin-top: 8px; }
.detail-artist-card-section {
    margin-top: 16px;
    padding-top: 13px;
    border-top: 1px solid #e3e1dc;
}
.detail-artist-card-section > h3 {
    margin: 0 0 7px;
    color: #666;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
}
.detail-artist-card {
    width: 100%;
    min-height: 58px;
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) auto;
    align-items: center;
    gap: 11px;
    padding: 5px 0;
    border: 0;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
}
.detail-artist-avatar {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 50%;
    background: #eceae5;
    color: #555;
    font-size: 17px;
    font-weight: 700;
}
.detail-artist-avatar img { width: 100%; height: 100%; object-fit: cover; }
.detail-artist-card-copy { min-width: 0; display: grid; gap: 2px; }
.detail-artist-card-copy strong { overflow-wrap: anywhere; font-size: 17px; font-weight: 700; line-height: 1.2; }
.detail-artist-card-copy small { color: #666; font-size: 13px; font-weight: 400; line-height: 1.3; }
.detail-artist-card-arrow { color: #777; font-size: 17px; }
#detail-view .detail-interactions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: center;
    gap: 4px;
    margin-top: 14px;
    padding-top: 9px;
    border-top: 1px solid #e3e1dc;
}
#detail-view .detail-interaction {
    width: 100%;
    min-width: 0;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 0 4px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #555;
    font-size: 18px;
}
#detail-view .like-action-group { min-width: 0; gap: 0; }
#detail-view .like-count { flex: 0 0 auto; margin-left: -4px; font-size: 13px; font-weight: 600; }
#detail-view #detail-like::after,
#detail-view #detail-star::after,
#detail-view #detail-share::after { font-size: 12px; font-weight: 600; }
#detail-view #detail-like::after { content: "J’aime"; }
#detail-view #detail-star::after { content: "Ajouter"; }
#detail-view #detail-star[aria-pressed="true"]::after { content: "Ajoutée"; }
#detail-view #detail-share::after { content: "Partager"; }
#detail-view .detail-interaction.active { background: #f5f3ee; }
#detail-view #detail-share-message:empty { display: none; }
.detail-commercial-actions { display: grid; gap: 8px; margin-top: 12px; }
#detail-view .detail-commercial-actions > button {
    min-height: 48px;
    margin: 0;
    padding: 11px 14px;
    font-size: 14px;
    font-weight: 700;
}
#detail-view .detail-commercial-actions .primary-action { background: #171717; color: #fff; }
#detail-view .detail-commercial-actions .offer-action { border: 1px solid #c9c7c1; background: #fff; }
#detail-view .detail-description {
    margin-top: 20px;
    padding-top: 16px;
}
#detail-view .detail-photos-section { margin-top: 20px; padding-top: 16px; border-top: 1px solid #e5e5e5; }
#detail-view .detail-photos-section > h3 { margin: 0 0 10px; font-size: 17px; font-weight: 700; }
@media (max-width: 370px) {
    #detail-view .detail-content { padding-inline: 14px; }
    #detail-view .detail-interactions { gap: 1px; }
    #detail-view .detail-interaction { gap: 3px; padding-inline: 2px; }
    #detail-view #detail-like::after,
    #detail-view #detail-star::after,
    #detail-view #detail-share::after { font-size: 11px; }
}

/* AS-086A — finitions de la zone H2 immédiatement sous l’image. */
#detail-view .detail-artist {
    font-size: 18px;
    font-weight: 700;
}
#detail-view #detail-price {
    font-size: 15px;
    font-weight: 600;
}
#detail-view .detail-meta,
#detail-view .detail-characteristic span {
    color: #444;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.4;
}
#detail-view .detail-interactions {
    display: flex;
    justify-content: flex-start;
    gap: 10px;
    margin-top: 10px;
    padding-top: 0;
    border-top: 0;
}
#detail-view .like-action-group {
    position: relative;
    flex: 0 0 44px;
    width: 44px;
}
#detail-view .detail-interaction {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid #d8d6d0;
    border-radius: 50%;
    background: #fff;
    font-size: 18px;
}
#detail-view #detail-like::after,
#detail-view #detail-star::after,
#detail-view #detail-share::after { display: none; content: none; }
#detail-view .like-count {
    position: absolute;
    right: -4px;
    bottom: -1px;
    min-width: 17px;
    min-height: 17px;
    display: grid;
    place-items: center;
    margin: 0;
    padding: 2px 4px;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 0 0 1px #ddd;
    font-size: 10px;
    font-weight: 600;
}
#detail-view .detail-interaction.like.active { border-color: #e84260; background: #fff0f3; color: #e84260; }
#detail-view .detail-interaction.star.active { border-color: #d69b18; background: #fff8e7; color: #d69b18; }

/* AS-086B — restitution fidèle et actions H2 plus discrètes. */
#detail-view .detail-title-row {
    grid-template-columns: minmax(0, 1fr) minmax(140px, .58fr);
    grid-template-areas:
        "artist price"
        "title actions";
    align-items: start;
    column-gap: 10px;
    row-gap: 3px;
}
#detail-view .detail-artist { grid-area: artist; }
#detail-view #detail-price { grid-area: price; }
#detail-view #detail-title { grid-area: title; min-width: 0; }
#detail-view .detail-interactions {
    grid-area: actions;
    justify-content: flex-end;
    gap: 3px;
    margin: -5px 0 0;
}
#detail-view .like-action-group,
#detail-view .detail-interaction {
    flex-basis: 44px;
    width: 44px;
    height: 44px;
}
#detail-view .detail-interaction {
    border: 0;
    background: radial-gradient(circle, #fff 0 15px, #d8d6d0 15.5px 16.5px, transparent 17px);
    color: #555;
    font-size: 18px;
}
#detail-view .detail-interaction.like.active {
    border: 0;
    background: radial-gradient(circle, #fff0f3 0 15px, #e84260 15.5px 16.5px, transparent 17px);
    color: #e84260;
}
#detail-view .detail-interaction.star.active {
    border: 0;
    background: radial-gradient(circle, #fff8e7 0 15px, #d69b18 15.5px 16.5px, transparent 17px);
    color: #d69b18;
}
#detail-view .detail-meta,
#detail-view .detail-characteristic span,
#detail-view #detail-additional-info-section p {
    color: #444;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.45;
}
#detail-view .detail-provenance { margin-top: 8px; padding: 8px 10px; }
#detail-view .detail-location { margin-top: 7px; }
.detail-artist-card { grid-template-columns: 46px minmax(0, 1fr); }

@media (max-width: 370px) {
    #detail-view .detail-title-row {
        grid-template-columns: minmax(0, 1fr) 136px;
        column-gap: 6px;
    }
    #detail-view .detail-interactions { gap: 0; }
}

/* AS-086C — hiérarchie finale du titre et des informations H2. */
#detail-view .detail-artist {
    font-size: 19px;
    font-weight: 700;
}
#detail-view .detail-title-row {
    grid-template-areas:
        "artist price"
        "title-actions title-actions";
}
#detail-view .detail-title-actions {
    grid-area: title-actions;
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 140px;
    align-items: start;
    gap: 6px;
}
#detail-view .detail-title-actions.stacked {
    grid-template-columns: minmax(0, 1fr);
}
#detail-view .detail-title-actions.stacked .detail-interactions {
    justify-self: end;
    margin-top: 0;
}
#detail-view .detail-title-actions #detail-title { grid-area: auto; }
#detail-view .detail-title-actions .detail-interactions {
    grid-area: auto;
    width: 140px;
}
#detail-view .detail-characteristic,
#detail-view .detail-characteristic-inline {
    color: #444;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.45;
}

@media (max-width: 370px) {
    #detail-view .detail-title-row { column-gap: 4px; }
    #detail-view .detail-title-actions { gap: 2px; }
}

/* AS-086D — artiste sur une ligne et type intégré aux caractéristiques. */
#detail-view .detail-artist {
    min-width: 0;
    overflow: hidden;
    overflow-wrap: normal;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* AS-145 — introduction exclusivement desktop. */
.as145-desktop-intro { display: none; }

@media (min-width: 1024px) {
    .as145-desktop-intro {
        position: fixed;
        z-index: 1000;
        inset: 0;
        display: grid;
        overflow: auto;
        place-items: center;
        padding: 40px 32px;
        background: #fafaf8;
        color: #171717;
    }
    html.as145-desktop-dismissed .as145-desktop-intro { display: none; }
    body.as145-desktop-intro-active { overflow: hidden; }
    .as145-desktop-layout {
        width: min(100%, 1540px);
        min-height: min(680px, calc(100dvh - 80px));
        display: grid;
        grid-template-columns: minmax(120px, .7fr) minmax(220px, .9fr) minmax(320px, 1.35fr) minmax(180px, .75fr);
        align-items: center;
        gap: clamp(20px, 2.4vw, 46px);
    }
    .as145-desktop-prompts {
        display: grid;
        gap: clamp(32px, 5vh, 58px);
        align-self: center;
        color: #555;
        font-family: Georgia, serif;
        font-size: clamp(18px, 1.4vw, 24px);
        font-style: italic;
        line-height: 1.25;
        transform: rotate(-2deg);
    }
    .as145-desktop-prompts p { margin: 0; }
    .as145-desktop-phone {
        width: min(100%, 286px);
        justify-self: center;
        padding: 8px;
        border: 2px solid #171717;
        border-radius: 42px;
        background: #171717;
        box-shadow: 0 22px 50px rgb(23 23 23 / 14%);
    }
    .as145-desktop-phone-screen {
        position: relative;
        overflow: hidden;
        border-radius: 33px;
    }
    .as145-desktop-phone picture,
    .as145-desktop-phone img {
        width: 100%;
        height: auto;
        display: block;
    }
    .as145-desktop-counter-mask {
        position: absolute;
        z-index: 1;
        display: block;
        pointer-events: none;
    }
    .as145-desktop-counter-mask-grid {
        top: 77.7%;
        left: 84.7%;
        width: 5.7%;
        height: 2.4%;
        background: rgb(250 250 249);
    }
    .as145-desktop-counter-mask-heart {
        top: 86.4%;
        left: 45%;
        width: 4%;
        height: 2.4%;
        background: rgb(249 249 247);
    }
    .as145-desktop-main {
        min-width: 0;
        display: grid;
        justify-items: start;
    }
    .as145-desktop-logo {
        width: min(100%, 238px);
        display: block;
    }
    .as145-desktop-logo img { width: 100%; height: auto; display: block; }
    .as145-desktop-tagline {
        margin: 10px 0 clamp(42px, 7vh, 72px);
        color: #555;
        font-size: 11px;
        font-weight: 750;
        letter-spacing: .22em;
    }
    .as145-desktop-main h1 {
        margin: 0;
        font-family: Georgia, serif;
        font-size: clamp(36px, 3.1vw, 58px);
        font-weight: 500;
        letter-spacing: -.035em;
        line-height: 1.04;
    }
    .as145-desktop-description {
        margin: 24px 0 32px;
        color: #666;
        font-size: clamp(15px, 1.15vw, 19px);
        line-height: 1.55;
    }
    .as145-desktop-qr {
        display: flex;
        align-items: center;
        gap: 18px;
    }
    .as145-desktop-qr picture {
        width: clamp(112px, 9vw, 148px);
        display: block;
    }
    .as145-desktop-qr img {
        width: 100%;
        height: auto;
        display: block;
        background: #fff;
    }
    .as145-desktop-qr p {
        margin: 0;
        color: #555;
        font-size: 13px;
        line-height: 1.45;
    }
    .as145-desktop-continue-block {
        align-self: center;
        display: grid;
        gap: 18px;
        padding-left: clamp(24px, 2.5vw, 44px);
        border-left: 1px solid #c9c8c4;
    }
    .as145-desktop-continue {
        min-height: 44px;
        width: 100%;
        padding: 10px 18px;
        border: 1px solid currentColor;
        border-radius: 999px;
        background: transparent;
        color: #171717;
        font: inherit;
        font-size: clamp(15px, 1.1vw, 18px);
        font-weight: 800;
        text-align: center;
        cursor: pointer;
    }
    .as145-desktop-continue:focus-visible { outline: 2px solid #171717; outline-offset: 4px; }
    .as145-desktop-continue-block p {
        max-width: 270px;
        margin: 0;
        color: #777;
        font-size: 13px;
        line-height: 1.5;
    }
}
