﻿/* ============================================================
   document.css (v4)
   - Default centered content max width (900px)
   - Full-bleed hero support
   - Compact titleOnly sections
   - No visible expand/collapse button
   - Hero title rule:
       titleOnly immediately BEFORE hero = tenant casing + bigger
       via JS class: .sfs-title-before-hero
   - titleOnly after hero = normal section title
   ============================================================ */

/* Reset-ish safety */
.sfs-document,
.sfs-document * {
    box-sizing: border-box;
}

/* Document wrappers must NEVER constrain width */
.sfs-document {
    width: 100%;
}

.sfs-document-block {
    width: 100%;
    max-width: none;
    overflow: visible;
    margin-bottom: 5px;
}

/* Paragraph band */
.sfs-paragraph {
    width: 100%;
    max-width: none;
    overflow: visible;
    padding: 0;
    margin: 0;
    position: relative;
}

/* Default centered content */
.sfs-paragraph-inner {
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
    padding: 6px;
    position: relative;
}

.sfs-paragraph[data-sfs-variant="text"][data-sfs-style-key="light"] .sfs-paragraph-inner {
    background: #f8fafc !important;
    border-radius: 8px;
}

.sfs-paragraph[data-sfs-variant="text"][data-sfs-style-key="softAccent"] .sfs-paragraph-inner {
    background: #eff6ff !important;
    border: 1px solid rgba(37, 99, 235, 0.18);
    border-radius: 14px;
    box-shadow: 0 10px 26px rgba(37, 99, 235, 0.08);
}

.sfs-paragraph[data-sfs-variant="text"][data-sfs-style-key="softAccent"] .sfs-paragraph-title {
    padding-inline: 12px;
}

.sfs-paragraph[data-sfs-variant="text"][data-sfs-style-key="softAccent"] .sfs-paragraph-title-text {
    color: #1d4ed8;
    font-weight: 850;
}

.sfs-match-report-saved-feed-block .sfs-paragraph-inner {
    background: #ff7900 !important;
    border: 1px solid #e86f00;
    border-radius: 14px;
    box-shadow: 0 12px 30px rgba(255, 121, 0, 0.28);
    color: #111827;
}

.sfs-match-report-saved-feed-block .sfs-paragraph-title-text {
    color: #111827 !important;
    font-weight: 850;
}

.sfs-match-report-saved-feed p {
    border-left: 4px solid rgba(17, 24, 39, 0.55);
    padding-left: 10px;
    color: #111827;
}

.sfs-match-report-saved-feed strong {
    color: #111827;
}

/* --------------------------------------------
   Title
-------------------------------------------- */

.sfs-paragraph-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    margin: 0;
    padding: 6px 0;
}

/* Multi-widget sections */
.sfs-multi-widget-section {
    --sfs-multi-widget-first: 50%;
}

.sfs-multi-widget-section > .sfs-document-section-body {
    align-items: stretch;
    gap: 18px;
}

.sfs-multi-widget-section > .sfs-document-section-body > .sfs-multi-widget-panel {
    box-sizing: border-box;
    min-width: 0;
    margin: 0;
}

/* A single widget is content, not a tab interface. */
.sfs-multi-widget-section.sfs-multi-widget-single > .sfs-multi-widget-tabs {
    display: none !important;
}

.sfs-multi-widget-section.sfs-multi-widget-single > .sfs-document-section-body {
    display: block !important;
    grid-template-columns: none !important;
}

.sfs-multi-widget-section.sfs-multi-widget-single > .sfs-document-section-body > .sfs-multi-widget-panel {
    display: block !important;
    width: 100%;
    max-width: none;
}

.sfs-multi-widget-section.sfs-multi-widget-single > .sfs-document-section-body > .sfs-multi-widget-panel > .sfs-document-section-top {
    display: none;
}

.sfs-multi-widget-tabs {
    display: none;
    flex-wrap: wrap;
    gap: 6px 0;
    align-items: center;
    justify-content: flex-start;
    margin: 12px auto 0;
    padding: 6px 6px 8px;
    width: min(calc(100% - 12px), 900px);
    overflow: visible;
    border-bottom: 2px solid color-mix(in srgb, var(--sfs-accent, #2f6f4e) 24%, #d9e1dc);
    border-radius: 0;
    background: transparent;
}

.sfs-multi-widget-tab {
    position: relative;
    flex: 0 0 auto;
    max-width: 100%;
    min-height: 42px;
    margin: 0;
    padding: 9px 18px;
    border: 1px solid transparent;
    border-radius: 9px;
    color: color-mix(in srgb, #24332b 78%, #fff);
    background: transparent;
    font: inherit;
    font-weight: 620;
    line-height: 1.25;
    white-space: normal;
    cursor: pointer;
}

.sfs-multi-widget-tab:not([aria-selected="true"]):not(:last-child)::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    width: 1px;
    height: 20px;
    background: color-mix(in srgb, var(--sfs-accent, #2f6f4e) 18%, #d9e1dc);
    transform: translateY(-50%);
    pointer-events: none;
}

.sfs-multi-widget-tab:not([aria-selected="true"]):hover {
    color: #24332b;
    background: color-mix(in srgb, var(--sfs-accent, #2f6f4e) 5%, transparent);
}

.sfs-multi-widget-tab:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--sfs-accent, #2f6f4e) 72%, #fff);
    outline-offset: 2px;
}

.sfs-multi-widget-tab[aria-selected="true"] {
    color: var(--sfs-accent, #2f6f4e);
    border-color: color-mix(in srgb, var(--sfs-accent, #2f6f4e) 24%, #d9e1dc);
    background: #fff;
    box-shadow: 0 2px 10px rgb(0 0 0 / 7%);
    font-weight: 750;
}

.sfs-multi-widget-section[data-sfs-multi-widget-desktop="columns"] > .sfs-document-section-body {
    display: grid;
    grid-template-columns: minmax(0, var(--sfs-multi-widget-first)) minmax(0, 1fr);
}

.sfs-multi-widget-section[data-sfs-multi-widget-desktop="columns"] > .sfs-document-section-body > .sfs-multi-widget-panel:nth-child(n+3) {
    grid-column: 1 / -1;
}

.sfs-multi-widget-section[data-sfs-multi-widget-desktop="tabs"] > .sfs-multi-widget-tabs {
    display: flex;
}

.sfs-multi-widget-section[data-sfs-multi-widget-desktop="tabs"] > .sfs-document-section-body {
    display: block;
    grid-template-columns: none;
}

.sfs-multi-widget-section[data-sfs-multi-widget-desktop="tabs"] > .sfs-document-section-body > .sfs-multi-widget-panel.is-active {
    display: block;
    width: 100%;
    max-width: none;
    grid-column: 1 / -1;
}

.sfs-multi-widget-section[data-sfs-multi-widget-desktop="tabs"] > .sfs-document-section-body > .sfs-multi-widget-panel:not(.is-active) {
    display: none;
}

.sfs-multi-widget-section[data-sfs-multi-widget-desktop="tabs"] > .sfs-document-section-body > .sfs-multi-widget-panel > .sfs-document-section-top .sfs-paragraph-title-text {
    display: none;
}

.sfs-multi-widget-panel .sfs-multi-widget-body-subtitle .sfs-paragraph-title-subtitle {
    white-space: pre-line;
}

.sfs-multi-widget-section[data-sfs-multi-widget-desktop="stack"] > .sfs-document-section-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
}

.sfs-multi-widget-order,
.sfs-multi-widget-add-row {
    grid-column: 1 / -1;
}

.sfs-multi-widget-order {
    display: grid;
    gap: 8px;
    padding: 12px;
    border: 1px solid rgb(0 0 0 / 12%);
    border-radius: 10px;
}

.sfs-multi-widget-order-list {
    display: grid;
    gap: 6px;
}

.sfs-multi-widget-order-item,
.sfs-multi-widget-add-row {
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: space-between;
}

.sfs-multi-widget-order-item > span:last-child {
    display: flex;
    gap: 4px;
}

.sfs-multi-widget-order-item .sfs-page-btn {
    min-width: 38px;
    padding: 5px 9px;
}

.sfs-multi-widget-add-row {
    justify-content: flex-start;
    flex-wrap: wrap;
    padding-top: 8px;
}

@media (max-width: 760px) {
    .sfs-multi-widget-section[data-sfs-multi-widget-mobile] > .sfs-document-section-body {
        display: block;
        grid-template-columns: none;
    }

    .sfs-multi-widget-section[data-sfs-multi-widget-mobile] > .sfs-document-section-body > .sfs-multi-widget-panel {
        width: 100%;
        max-width: none;
        grid-column: 1 / -1;
    }

    .sfs-multi-widget-section[data-sfs-multi-widget-mobile="tabs"] > .sfs-multi-widget-tabs {
        display: flex;
        width: calc(100% - 12px);
        margin-top: 8px;
        padding-inline: 6px;
    }

    .sfs-multi-widget-section[data-sfs-multi-widget-mobile="tabs"] > .sfs-document-section-body > .sfs-multi-widget-panel:not(.is-active) {
        display: none;
    }

    .sfs-multi-widget-section[data-sfs-multi-widget-mobile="tabs"] > .sfs-document-section-body > .sfs-multi-widget-panel > .sfs-document-section-top .sfs-paragraph-title-text {
        display: none;
    }

    .sfs-multi-widget-section[data-sfs-multi-widget-mobile="stack"] > .sfs-document-section-body > .sfs-multi-widget-panel > .sfs-document-section-top .sfs-paragraph-title-text {
        display: block;
    }

    .sfs-multi-widget-section[data-sfs-multi-widget-mobile="tabs"] > .sfs-document-section-body > .sfs-multi-widget-panel.is-active,
    .sfs-multi-widget-section[data-sfs-multi-widget-mobile="stack"] > .sfs-document-section-body > .sfs-multi-widget-panel {
        display: block;
    }

    .sfs-multi-widget-section[data-sfs-multi-widget-mobile="stack"] > .sfs-multi-widget-tabs {
        display: none;
    }

    .sfs-multi-widget-section > .sfs-document-section-body > .sfs-multi-widget-panel + .sfs-multi-widget-panel {
        margin-top: 14px;
    }
}

/* Tab-widget sections */
.sfs-tab-widget-section > .sfs-tab-widget-tabs {
    display: flex;
    gap: 8px;
    padding: 8px;
    overflow-x: auto;
    border: 1px solid color-mix(in srgb, var(--sfs-accent, #2f6f4e) 24%, #d9e1dc);
    border-radius: 12px;
    background: color-mix(in srgb, var(--sfs-accent, #2f6f4e) 5%, #fff);
    scrollbar-width: thin;
}

.sfs-tab-widget-tabs .sfs-tab-widget-tab {
    border-color: color-mix(in srgb, var(--sfs-accent, #2f6f4e) 28%, #d9e1dc);
    background: #fff;
    box-shadow: 0 1px 3px rgb(15 23 42 / 7%);
    font-family: inherit;
    font-size: .95rem;
    font-weight: 700;
}

.sfs-tab-widget-tabs .sfs-tab-widget-tab:not([aria-selected="true"]):not(:last-child)::after {
    display: none;
}

.sfs-tab-widget-tabs .sfs-tab-widget-tab[aria-selected="true"] {
    color: #fff;
    border-color: var(--sfs-accent, #2f6f4e);
    background: var(--sfs-accent, #2f6f4e);
    box-shadow: 0 3px 9px color-mix(in srgb, var(--sfs-accent, #2f6f4e) 28%, transparent);
}

.sfs-tab-widget-section > .sfs-document-section-body {
    display: block;
    width: 100%;
}

.sfs-tab-widget-section > .sfs-document-section-body > .sfs-tab-widget-panel {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 0;
}

.sfs-tab-widget-section > .sfs-document-section-body > .sfs-tab-widget-panel:not(.is-active) {
    display: none;
}

.sfs-tab-widget-section > .sfs-document-section-body > .sfs-tab-widget-panel.is-active {
    display: block;
}

.sfs-tab-widget-section > .sfs-document-section-body > .sfs-tab-widget-panel > .sfs-document-section-top .sfs-paragraph-title-text {
    display: none;
}

.sfs-tab-widget-image-description {
    max-width: 75ch;
    margin: .65rem 0 0;
    padding: .65rem 1rem;
    border-radius: .65rem;
    background: var(--sfs-tab-subtitle-background, var(--sfs-tenant-tab-subtitle-background, var(--sfs-list-title-background, var(--sfs-tenant-title-background, #111827))));
    color: var(--sfs-tab-subtitle-text, var(--sfs-tenant-tab-subtitle-text, var(--sfs-list-title-subtitle-text, var(--sfs-tenant-title-subtitle, #fff))));
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.55;
    overflow-wrap: anywhere;
    white-space: pre-line;
}

.sfs-tab-widget-accordion-trigger {
    display: none;
}

.sfs-tab-widget-mobile-nav {
    display: none;
}

.sfs-tab-widget-settings-hint {
    grid-column: 1 / -1;
    color: #56635c;
}

.sfs-tab-widget-order-controls,
.sfs-tab-widget-visibility-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.sfs-tab-widget-visibility-toggle {
    margin-right: 6px;
    color: #475569;
    font-size: .82rem;
    font-weight: 700;
}

.sfs-tab-widget-panel.is-hidden-in-public {
    outline: 2px dashed #b7791f;
    outline-offset: -2px;
}

.sfs-tab-widget-section.is-hidden-in-public {
    position: relative;
    outline: 3px dashed #b7791f;
    outline-offset: -3px;
}

.sfs-tab-widget-section.is-hidden-in-public::before {
    content: "Section masquée sur le site public";
    position: relative;
    z-index: 2;
    display: block;
    width: fit-content;
    margin: .5rem auto;
    padding: .35rem .7rem;
    border-radius: 999px;
    background: #fff4d6;
    color: #7c4a03;
    font-size: .78rem;
    font-weight: 800;
}

.sfs-full-page-settings-modal {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    width: 100vw;
    height: 100dvh;
    background: #fff;
}

.sfs-full-page-settings-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 18px;
    border-bottom: 1px solid #d9e1dc;
    background: #fff;
    box-shadow: 0 2px 10px rgb(15 23 42 / 8%);
}

.sfs-full-page-settings-header h1 {
    margin: 0;
    font-size: clamp(1.1rem, 2.4vw, 1.5rem);
}

.sfs-full-page-settings-close {
    flex: 0 0 auto;
}

.sfs-full-page-settings-content {
    min-width: 0;
    min-height: 0;
    overflow: auto;
    padding: 20px;
    overscroll-behavior: contain;
}

.sfs-full-page-settings-content > .sfs-event-program-settings {
    width: min(100%, 1100px);
    margin: 0 auto;
}

@media (max-width: 760px) {
    .sfs-full-page-settings-header {
        padding: 10px 12px;
    }

    .sfs-full-page-settings-content {
        padding: 12px;
    }

    .sfs-tab-widget-section[data-sfs-tab-widget-mobile="tabs"] > .sfs-tab-widget-tabs {
        display: flex;
        flex-wrap: nowrap;
        justify-content: flex-start;
        width: calc(100% - 12px);
        padding: 7px;
        scroll-snap-type: x proximity;
        -webkit-overflow-scrolling: touch;
    }

    .sfs-tab-widget-tabs .sfs-tab-widget-tab {
        max-width: none;
        min-height: 0;
        padding: 8px 11px;
        white-space: nowrap;
        scroll-snap-align: start;
    }

    .sfs-tab-widget-section[data-sfs-tab-widget-mobile="select"] > .sfs-tab-widget-tabs,
    .sfs-tab-widget-section[data-sfs-tab-widget-mobile="accordion"] > .sfs-tab-widget-tabs,
    .sfs-tab-widget-section[data-sfs-tab-widget-mobile="stack"] > .sfs-tab-widget-tabs {
        display: none;
    }

    .sfs-tab-widget-section[data-sfs-tab-widget-mobile="select"] > .sfs-tab-widget-tabs.sfs-multi-widget-tabs {
        display: none !important;
    }

    .sfs-tab-widget-section[data-sfs-tab-widget-mobile="tabs"] > .sfs-document-section-body > .sfs-tab-widget-panel:not(.is-active),
    .sfs-tab-widget-section[data-sfs-tab-widget-mobile="select"] > .sfs-document-section-body > .sfs-tab-widget-panel:not(.is-active),
    .sfs-tab-widget-section[data-sfs-tab-widget-mobile="accordion"] > .sfs-document-section-body > .sfs-tab-widget-panel:not(.is-active) {
        display: none;
    }

    .sfs-tab-widget-section[data-sfs-tab-widget-mobile="tabs"] > .sfs-document-section-body > .sfs-tab-widget-panel.is-active,
    .sfs-tab-widget-section[data-sfs-tab-widget-mobile="select"] > .sfs-document-section-body > .sfs-tab-widget-panel.is-active,
    .sfs-tab-widget-section[data-sfs-tab-widget-mobile="accordion"] > .sfs-document-section-body > .sfs-tab-widget-panel.is-active,
    .sfs-tab-widget-section[data-sfs-tab-widget-mobile="stack"] > .sfs-document-section-body > .sfs-tab-widget-panel {
        display: block;
    }

    .sfs-tab-widget-section[data-sfs-tab-widget-mobile="select"] > .sfs-tab-widget-mobile-nav {
        display: grid;
        grid-template-columns: 44px minmax(0, 1fr) 44px;
        gap: 8px;
        align-items: stretch;
        box-sizing: border-box;
        width: 100%;
        max-width: 900px;
        margin: 8px auto;
        padding: 0 6px;
    }

    .sfs-tab-widget-mobile-select,
    .sfs-tab-widget-mobile-step {
        min-width: 0;
        min-height: 44px;
        border: 1px solid color-mix(in srgb, var(--sfs-accent, #2f6f4e) 30%, #d9e1dc);
        border-radius: 10px;
        color: #24332b;
        background: #fff;
        font: inherit;
        font-weight: 700;
    }

    .sfs-tab-widget-mobile-select {
        -webkit-appearance: none;
        appearance: none;
        width: 100%;
        padding: 8px 40px;
        font-size: .95rem;
        text-align: center;
        text-align-last: center;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2324332b' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: right 14px center;
        background-size: 12px 8px;
    }

    .sfs-tab-widget-mobile-select option {
        text-align: center;
    }

    .sfs-tab-widget-mobile-step {
        padding: 0;
        color: var(--sfs-accent, #2f6f4e);
        font-size: 1.65rem;
        line-height: 1;
        cursor: pointer;
    }

    .sfs-tab-widget-mobile-step:disabled {
        opacity: .35;
        cursor: default;
    }

    .sfs-tab-widget-section[data-sfs-tab-widget-mobile="accordion"] > .sfs-document-section-body > .sfs-tab-widget-accordion-trigger {
        display: block;
        width: min(calc(100% - 12px), 900px);
        min-height: 44px;
        margin: 8px auto 0;
        padding: 10px 14px;
        border: 1px solid color-mix(in srgb, var(--sfs-accent, #2f6f4e) 26%, #d9e1dc);
        border-radius: 10px;
        color: #24332b;
        background: #fff;
        font: inherit;
        font-weight: 700;
        text-align: left;
        cursor: pointer;
    }

    .sfs-tab-widget-section[data-sfs-tab-widget-mobile="accordion"] > .sfs-document-section-body > .sfs-tab-widget-accordion-trigger[aria-expanded="true"] {
        color: #fff;
        background: var(--sfs-accent, #2f6f4e);
    }

    .sfs-tab-widget-section[data-sfs-tab-widget-mobile="stack"] > .sfs-document-section-body > .sfs-tab-widget-panel > .sfs-document-section-top .sfs-paragraph-title-text {
        display: block;
    }
}

/* Local recommendation / site-search document control */
.sfs-site-search-paragraph .sfs-paragraph-inner {
    padding: 0;
}

.sfs-site-search {
    display: grid;
    gap: 18px;
    padding: clamp(18px, 3vw, 30px);
    border: 1px solid rgba(15, 118, 110, .18);
    border-radius: 24px;
    background: linear-gradient(145deg, #f0fdfa, #fff 58%, #fff7ed);
    box-shadow: 0 18px 45px rgba(15, 23, 42, .08);
}

.sfs-site-search-form,
.sfs-site-search-label {
    display: grid;
    gap: 10px;
}

.sfs-site-search-label {
    color: #134e4a;
    font-size: .9rem;
    font-weight: 850;
}

.sfs-site-search-input {
    width: 100%;
    min-height: 54px;
    padding: 13px 16px;
    border: 1px solid rgba(15, 118, 110, .28);
    border-radius: 16px;
    background: rgba(255, 255, 255, .94);
    color: #0f172a;
    font: inherit;
    font-size: 1rem;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, .04);
}

.sfs-site-search-input:focus {
    border-color: #0f766e;
    outline: 3px solid rgba(20, 184, 166, .16);
}

.sfs-site-search-controls,
.sfs-site-search-result-actions,
.sfs-site-search-result-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.sfs-site-search-submit,
.sfs-site-search-microphone,
.sfs-site-search-location,
.sfs-site-search-result-link {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    padding: 9px 16px;
    font: inherit;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}

.sfs-site-search-submit {
    background: #0f766e;
    color: #fff;
}

.sfs-site-search-location {
    border: 1px solid rgba(15, 118, 110, .25);
    background: #fff;
    color: #0f766e;
}

.sfs-site-search-microphone {
    border: 1px solid rgba(234, 88, 12, .25);
    background: #fff7ed;
    color: #9a3412;
}

.sfs-site-search-microphone.is-listening {
    border-color: #dc2626;
    background: #dc2626;
    color: #fff;
    animation: sfs-site-search-microphone-pulse 1.25s ease-in-out infinite;
}

@keyframes sfs-site-search-microphone-pulse {
    50% { box-shadow: 0 0 0 7px rgba(220, 38, 38, .14); }
}

.sfs-site-search-submit:disabled,
.sfs-site-search-microphone:disabled,
.sfs-site-search-location:disabled {
    cursor: not-allowed;
    opacity: .6;
}

.sfs-site-search-submit:disabled,
.sfs-site-search-location:disabled {
    cursor: wait;
}

.sfs-document-block-children {
    display: grid;
    gap: 8px;
    width: 100%;
    margin-top: 8px;
}

.sfs-site-search-status,
.sfs-site-search-message {
    margin: 0;
    color: #475569;
    font-size: .9rem;
}

.sfs-site-search-message {
    margin-bottom: 12px;
    color: #334155;
    font-weight: 750;
}

.sfs-site-search-results-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
    gap: 14px;
}

.sfs-site-search-result {
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 25px rgba(15, 23, 42, .06);
}

.sfs-site-search-result.is-unverified {
    border-style: dashed;
}

.sfs-site-search-result-image {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 8;
    object-fit: cover;
    background: #e2e8f0;
}

.sfs-site-search-result-body {
    display: grid;
    gap: 10px;
    padding: 15px;
}

.sfs-site-search-result-title,
.sfs-site-search-result-address,
.sfs-site-search-result-reason {
    margin: 0;
}

.sfs-site-search-result-title {
    color: #0f172a;
    font-size: 1.05rem;
    line-height: 1.25;
}

.sfs-site-search-badge {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    border-radius: 999px;
    padding: 5px 9px;
    background: #f1f5f9;
    color: #475569;
    font-size: .74rem;
    font-weight: 800;
}

.sfs-site-search-badge.is-open,
.sfs-site-search-badge.is-confirmed {
    background: #dcfce7;
    color: #166534;
}

.sfs-site-search-badge.is-unknown {
    background: #fff7ed;
    color: #9a3412;
}

.sfs-site-search-result-address,
.sfs-site-search-result-reason,
.sfs-site-search-result-source {
    color: #64748b;
    font-size: .83rem;
    line-height: 1.45;
}

.sfs-site-search-result-link {
    min-height: 36px;
    padding: 7px 12px;
    background: #0f766e;
    color: #fff;
    font-size: .8rem;
}

.sfs-site-search-result-link.is-secondary {
    background: #f0fdfa;
    color: #0f766e;
}

.sfs-site-search-result-actions {
    align-items: center;
}

.sfs-site-search-share-trigger {
    display: inline-flex;
    width: 40px;
    min-width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(15, 118, 110, .22);
    border-radius: 50%;
    background: #f0fdfa;
    color: #0f766e;
    cursor: pointer;
}

.sfs-site-search-share-trigger:hover,
.sfs-site-search-share-trigger:focus-visible {
    background: #ccfbf1;
    outline: none;
}

.sfs-site-search-share-trigger svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.sfs-site-search-share-panel {
    flex: 1 0 100%;
    box-sizing: border-box;
    border: 1px solid rgba(15, 118, 110, .16);
    border-radius: 12px;
    padding: 10px;
    background: #f8fffd;
}

.sfs-site-search-share-panel[hidden] {
    display: none !important;
}

.sfs-site-search-share-panel.is-menu {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.sfs-site-search-share-panel.is-menu > a,
.sfs-site-search-share-panel.is-menu > button,
.sfs-site-search-share-login {
    border: 0;
    border-radius: 999px;
    padding: 7px 11px;
    background: #e2e8f0;
    color: #334155;
    font: inherit;
    font-size: .78rem;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}

.sfs-site-search-share-panel.is-menu > .sfs-site-search-share-whatsapp {
    background: #dcfce7;
    color: #166534;
}

.sfs-site-search-share-panel.is-menu > .sfs-site-search-share-facebook {
    background: #dbeafe;
    color: #1d4ed8;
}

.sfs-site-search-share-panel.is-login-required {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
}

.sfs-site-search-share-login-text {
    flex: 1 1 190px;
    margin: 0;
    color: #475569;
    font-size: .82rem;
    line-height: 1.35;
}

.sfs-site-search-share-login {
    background: #0f766e;
    color: #fff;
}

@media (max-width: 640px) {
    .sfs-site-search {
        padding: 16px;
        border-radius: 18px;
    }

    .sfs-site-search-controls > * {
        flex: 1 1 145px;
    }
}

.sfs-paragraph-title-copy {
    min-width: 0;
}

.sfs-title-align-left {
    justify-content: flex-start;
    text-align: left;
}

.sfs-title-align-center {
    justify-content: center;
    text-align: center;
}

.sfs-title-align-right {
    justify-content: flex-end;
    text-align: right;
}

.sfs-title-uppercase .sfs-paragraph-title-text {
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

/* Location-template hero titles are always uppercase, including legacy rows. */
.sfs-paragraph[data-sfs-variant="hero"].sfs-location-template-hero .sfs-paragraph-title-text {
    text-transform: uppercase;
}

.sfs-paragraph-title-text {
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.2;
}

.sfs-paragraph-title-icon {
    font-size: 1.1rem;
    line-height: 1;
    opacity: 0.85;
}

/* Title sizes */
.sfs-title-hero .sfs-paragraph-title-text {
    font-size: 36px;
    font-weight: 800;
    line-height: 1.1;
}

.sfs-title-large .sfs-paragraph-title-text {
    font-size: 26px;
    font-weight: 700;
}

.sfs-title-medium .sfs-paragraph-title-text {
    font-size: 22px;
    font-weight: 600;
}

.sfs-title-small .sfs-paragraph-title-text {
    font-size: 18px;
}

/* Default section titleOnly style */
.sfs-paragraph[data-sfs-variant="titleOnly"] .sfs-paragraph-title-text {
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
}

/* Hero title = titleOnly immediately BEFORE hero (marked by JS) */
.sfs-paragraph[data-sfs-variant="titleOnly"].sfs-title-before-hero .sfs-paragraph-title-text {
    font-size: 36px;
    font-weight: 800 !important;
    font-family: inherit;
    line-height: 1.1;
}

[data-sfs-hero-title-uppercase="1"] .sfs-paragraph[data-sfs-variant="titleOnly"].sfs-title-before-hero .sfs-paragraph-title-text {
    text-transform: uppercase !important;
    letter-spacing: 0.06em;
}

[data-sfs-hero-title-uppercase="1"] .sfs-paragraph[data-sfs-variant="hero"]:not(.sfs-hero-without-title) .sfs-paragraph-title-text {
    text-transform: uppercase !important;
    letter-spacing: 0.06em;
}

/* A page title immediately before a hero is a tenant title band. Keep its
   background and foreground paired even when the paragraph has no explicit
   background color. */
.sfs-paragraph[data-sfs-variant="titleOnly"].sfs-title-before-hero {
    background: var(--sfs-tenant-hero-title-background, var(--sfs-tenant-title-background, #111827)) !important;
}

.sfs-paragraph[data-sfs-variant="titleOnly"].sfs-title-before-hero .sfs-paragraph-title-text {
    color: var(--sfs-tenant-hero-title-text, var(--sfs-tenant-title-text, #fff)) !important;
}

.sfs-paragraph[data-sfs-variant="titleOnly"].sfs-title-before-hero .sfs-paragraph-title-subtitle {
    color: var(--sfs-tenant-hero-title-subtitle, var(--sfs-tenant-title-subtitle, var(--sfs-tenant-title-text, #fff))) !important;
}

/* Hero titles are rendered in their own band, either above or below the
   image. The API supplies a light tenant title color but no background for
   hero rows, so always pair it with the tenant title background. */
.sfs-paragraph[data-sfs-variant="hero"]:not(.sfs-hero-without-title) > .sfs-paragraph-inner {
    width: 100%;
    max-width: none;
    background: var(--sfs-tenant-hero-title-background, var(--sfs-tenant-title-background, #111827)) !important;
}

.sfs-paragraph[data-sfs-variant="hero"]:not(.sfs-hero-without-title) .sfs-paragraph-title-text {
    color: var(--sfs-tenant-hero-title-text, var(--sfs-tenant-title-text, #fff)) !important;
}

.sfs-paragraph[data-sfs-variant="hero"]:not(.sfs-hero-without-title) .sfs-paragraph-title-subtitle {
    color: var(--sfs-tenant-hero-title-subtitle, var(--sfs-tenant-title-subtitle, var(--sfs-tenant-title-text, #fff))) !important;
}

/* Mobile title scaling */
@media (max-width: 768px) {

    /* section titles (below hero) */
    .sfs-paragraph[data-sfs-variant="titleOnly"] .sfs-paragraph-title-text {
        font-size: 16px !important;
    }

    /* title before hero */
    .sfs-paragraph[data-sfs-variant="titleOnly"].sfs-title-before-hero .sfs-paragraph-title-text {
        font-size: 24px;
        font-weight: 800 !important;
    }
}

/* --------------------------------------------
   Body
-------------------------------------------- */

.sfs-paragraph-body {
    padding: 8px 12px;
}

    .sfs-paragraph[data-sfs-variant="text"] .sfs-paragraph-body a {
        color: var(--sfs-text-block-link-color, currentColor);
    }

    .sfs-paragraph-body p {
        margin: 0 0 12px 0;
        line-height: 1.55;
    }

    .sfs-paragraph-body p:last-child {
        margin-bottom: 0;
    }

/* --------------------------------------------
   Timed text sections
-------------------------------------------- */

.sfs-timed-text-section {
    margin-top: 10px;
    margin-bottom: 10px;
}

.sfs-timed-text-section .sfs-document-section-body {
    gap: 0;
}

.sfs-timed-text-entry .sfs-paragraph-inner {
    border-radius: 0;
    box-shadow: none;
}

.sfs-timed-text-entry-odd .sfs-paragraph-inner {
    background: #ffffff !important;
}

.sfs-timed-text-entry-even .sfs-paragraph-inner {
    background: #f8fafc !important;
}

.sfs-timed-text-entry .sfs-paragraph-title {
    margin-bottom: 0;
    padding-bottom: 0;
}

.sfs-timed-text-entry .sfs-paragraph-title-text {
    font-size: 0.9rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.sfs-timed-text-entry-restart .sfs-paragraph-inner {
    border-top: 2px solid rgba(17, 24, 39, 0.35);
}

.sfs-timed-text-quick-add {
    position: absolute;
    top: 8px;
    left: 8px;
    width: 30px;
    height: 30px;
    border-radius: 999px;
    border: 1px solid rgba(17, 24, 39, 0.18);
    background: rgba(255, 255, 255, 0.92);
    color: #111827;
    font-size: 20px;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(17, 24, 39, 0.12);
    z-index: 4;
}

.sfs-timed-text-quick-add:hover {
    background: #ffffff;
    transform: translateY(-1px);
}

.sfs-timed-text-quick-add.is-busy,
.sfs-timed-text-quick-add:disabled {
    cursor: wait;
    opacity: 0.65;
    transform: none;
}

/* --------------------------------------------
   Match report live module
-------------------------------------------- */

.sfs-match-report-shell {
    border: 1px solid rgba(17, 24, 39, 0.1);
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 12px 34px rgba(17, 24, 39, 0.08);
    overflow: hidden;
}

.sfs-match-report-shell--feed-saved {
    border-color: #e86f00;
    background: #ff7900;
    box-shadow: none;
    cursor: pointer;
}

.sfs-paragraph.sfs-match-report--feed-saved,
.sfs-paragraph.sfs-match-report--feed-saved .sfs-paragraph-inner,
.sfs-document-block:has(.sfs-match-report--feed-saved),
.sfs-document-section:has(.sfs-match-report--feed-saved),
.sfs-document-section-body:has(.sfs-match-report--feed-saved),
.sfs-paragraph.sfs-match-report:has(.sfs-match-report-shell--feed-saved),
.sfs-paragraph.sfs-match-report:has(.sfs-match-report-shell--feed-saved) .sfs-paragraph-inner {
    background: #ffffff !important;
}

.sfs-match-report-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 18px;
    background: linear-gradient(135deg, #111827, #243045);
    color: #ffffff;
}

.sfs-match-report-shell--feed-saved .sfs-match-report-header {
    background: #ff7900;
    color: #ffffff;
    position: relative;
    padding-right: 150px;
}

.sfs-match-report-shell--feed-saved .sfs-match-report-title {
    color: #ffffff;
    text-shadow: 0 1px 1px rgba(17, 24, 39, 0.25);
}

.sfs-match-report-shell--feed-saved .sfs-match-report-title::after {
    content: "Voir le feed";
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 0;
    padding: 5px 9px;
    border: 1px solid rgba(255, 255, 255, 0.55);
    border-radius: 999px;
    color: #ffffff;
    font-size: 0.78rem;
    font-weight: 800;
    vertical-align: middle;
}

.sfs-match-report-shell--feed-expanded .sfs-match-report-title::after {
    content: "Masquer le feed";
}

.sfs-match-report-shell--feed-saved:focus-visible {
    outline: 3px solid rgba(17, 24, 39, 0.55);
    outline-offset: 3px;
}

.sfs-match-report-shell--feed-saved .sfs-match-report-admin,
.sfs-match-report-shell--feed-saved .sfs-match-report-comment-box,
.sfs-match-report-shell--feed-saved .sfs-match-report-list,
.sfs-match-report-shell--feed-saved .sfs-match-report-open-chat,
.sfs-match-report-shell--feed-saved .sfs-match-report-clock,
.sfs-match-report-shell--feed-saved .sfs-match-report-escape {
    display: none !important;
}

.sfs-match-report-title {
    font-size: 1.15rem;
    font-weight: 800;
}

.sfs-match-report-clock {
    min-width: 96px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    text-align: center;
    font-weight: 800;
}

.sfs-match-report-escape {
    display: none;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.16);
    color: #ffffff;
    padding: 8px 11px;
    font-weight: 800;
}

.sfs-match-report-open-chat {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 999px;
    background: rgba(37, 99, 235, 0.8);
    color: #ffffff;
    padding: 8px 11px;
    font-weight: 800;
}

.sfs-match-report-admin,
.sfs-match-report-comment-box {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 12px 14px;
    border-bottom: 1px solid rgba(17, 24, 39, 0.08);
    background: #f8fafc;
}

.sfs-match-report-entry-form,
.sfs-match-report-tools,
.sfs-match-report-settings,
.sfs-match-report-comment-box {
    display: flex;
    gap: 8px;
    align-items: center;
    width: 100%;
}

.sfs-match-report-entry-form input,
.sfs-match-report-settings input,
.sfs-match-report-comment-box input {
    flex: 1 1 auto;
    min-width: 160px;
    border: 1px solid rgba(17, 24, 39, 0.16);
    border-radius: 999px;
    padding: 9px 13px;
}

.sfs-match-report-list {
    display: flex;
    flex-direction: column;
}

.sfs-match-report-comment-list {
    background: #ffffff;
}

.sfs-match-report-entry {
    position: relative;
    display: grid;
    grid-template-columns: 76px 1fr;
    gap: 12px;
    padding: 12px 16px;
    border-bottom: 1px solid rgba(17, 24, 39, 0.07);
}

.sfs-match-report-entry:nth-child(even) {
    background: #f8fafc;
}

.sfs-match-report-official {
    margin: 10px 12px;
    border: 1px solid rgba(37, 99, 235, 0.18);
    border-left: 6px solid #2563eb;
    border-radius: 14px;
    background: linear-gradient(135deg, #eff6ff, #ffffff);
    box-shadow: 0 8px 22px rgba(37, 99, 235, 0.12);
}

.sfs-match-report-official:nth-child(even) {
    background: linear-gradient(135deg, #e0f2fe, #ffffff);
}

.sfs-match-report-official + .sfs-match-report-official {
    margin-top: 2px;
}

.sfs-match-report-entry-time {
    font-weight: 900;
    color: #111827;
}

.sfs-match-report-entry-text {
    color: #111827;
    line-height: 1.45;
}

.sfs-match-report-official .sfs-match-report-entry-time {
    color: #1d4ed8;
    font-size: 1rem;
}

.sfs-match-report-official .sfs-match-report-entry-text {
    font-size: 1.06rem;
    font-weight: 750;
    color: #0f172a;
}

.sfs-match-report-comment .sfs-match-report-entry-text {
    color: #374151;
}

.sfs-match-report-entry-audio {
    display: block;
    width: min(100%, 280px);
    height: 34px;
    margin-top: 6px;
}

.sfs-match-report-entry-source {
    color: #9a3412;
    font-size: .72rem;
    font-weight: 850;
    line-height: 1.1;
    margin-top: 4px;
    text-transform: uppercase;
}

.sfs-match-report-saved-feed audio {
    display: block;
    width: min(100%, 280px);
    height: 34px;
    margin-top: 6px;
}

.sfs-match-report-comment {
    grid-template-columns: 54px 32px minmax(0, 1fr);
    align-items: center;
    padding: 10px 16px;
    background: #ffffff;
}

.sfs-match-report-comment .sfs-match-report-entry-time {
    color: #64748b;
}

.sfs-match-report-entry-delete {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 26px;
    height: 26px;
    border: 1px solid rgba(148, 163, 184, 0.45);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.88);
    color: #64748b;
    font-size: 1.15rem;
    line-height: 1;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.sfs-match-report-entry:hover .sfs-match-report-entry-delete,
.sfs-match-report-entry-delete:focus {
    opacity: 1;
}

.sfs-match-report-entry-delete:hover {
    border-color: rgba(220, 38, 38, 0.45);
    color: #dc2626;
}

.sfs-match-report-entry-author,
.sfs-match-chat-author,
.sfs-match-report-login-note,
.sfs-match-report-empty {
    color: #6b7280;
    font-size: 0.88rem;
}

.sfs-match-chat-avatar {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    overflow: hidden;
    border: 1px solid rgba(37,99,235,.16);
    border-radius: 50%;
    background: #e0ecff;
    color: #1d4ed8;
    font-size: .74rem;
    font-weight: 900;
    line-height: 1;
    padding: 0;
    text-transform: uppercase;
}

button.sfs-match-chat-avatar {
    cursor: pointer;
}

button.sfs-match-chat-avatar:hover,
button.sfs-match-chat-avatar:focus-visible {
    border-color: rgba(37,99,235,.55);
    box-shadow: 0 0 0 3px rgba(37,99,235,.16);
    outline: 0;
}

.sfs-tab-widget-section[data-sfs-tab-widget-display="list"] > .sfs-tab-widget-tabs,
.sfs-tab-widget-section[data-sfs-tab-widget-display="list"] > .sfs-tab-widget-mobile-nav,
.sfs-tab-widget-section[data-sfs-tab-widget-display="list"] > .sfs-document-section-body > .sfs-tab-widget-accordion-trigger {
    display: none !important;
}

.sfs-tab-widget-section[data-sfs-tab-widget-display="list"] > .sfs-document-section-body > .sfs-tab-widget-panel,
.sfs-tab-widget-section[data-sfs-tab-widget-display="list"] > .sfs-document-section-body > .sfs-tab-widget-panel:not(.is-active) {
    display: block !important;
}

.sfs-tab-widget-section[data-sfs-tab-widget-display="list"] > .sfs-document-section-body > .sfs-tab-widget-panel + .sfs-tab-widget-panel {
    margin-top: clamp(1rem, 2vw, 1.75rem);
}

.sfs-tab-widget-section[data-sfs-tab-widget-display="list"][data-sfs-tab-widget-show-titles="1"] > .sfs-document-section-body > .sfs-tab-widget-panel > .sfs-document-section-top .sfs-paragraph-title-text {
    display: block;
}

.sfs-tab-widget-section[data-sfs-tab-widget-display="list"][data-sfs-tab-widget-show-titles="0"] > .sfs-document-section-body > .sfs-tab-widget-panel > .sfs-document-section-top .sfs-paragraph-title-text {
    display: none !important;
}

.sfs-tab-widget-section[data-sfs-tab-widget-display="list"][data-sfs-tab-widget-show-titles="0"] > .sfs-document-section-body > .sfs-tab-widget-panel[data-sfs-tab-widget-subtitle-position="bottom"] > .sfs-document-section-top {
    display: none !important;
}

.sfs-tab-widget-panel-description {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    box-sizing: border-box;
    width: 100%;
    margin-top: .8rem;
    padding: .8rem 1rem;
    border-radius: .75rem;
    background: var(--sfs-tab-subtitle-background, var(--sfs-tenant-tab-subtitle-background, var(--sfs-list-title-background, var(--sfs-tenant-title-background, #111827))));
    color: var(--sfs-tab-subtitle-text, var(--sfs-tenant-tab-subtitle-text, var(--sfs-list-title-subtitle-text, var(--sfs-tenant-title-subtitle, #fff))));
    font-size: 1rem;
    line-height: 1.55;
    overflow-wrap: anywhere;
    white-space: pre-line;
    padding: .65rem 1rem;
    border-radius: .65rem;
    background: var(--sfs-tab-subtitle-background, var(--sfs-tenant-tab-subtitle-background, var(--sfs-list-title-background, var(--sfs-tenant-title-background, #111827))));
}

.sfs-tab-widget-panel-description > i {
    flex: 0 0 auto;
    margin-top: .12rem;
    color: currentColor;
    font-size: 1.05rem;
}

.sfs-tab-widget-panel-description > span {
    min-width: 0;
    flex: 1 1 auto;
    text-align: center;
}

.sfs-tab-widget-panel-description.is-inside-card {
    margin-top: 1rem;
    padding: 1rem 0 0;
    border-top: 1px solid color-mix(in srgb, var(--sfs-accent, #2f6f4e) 20%, transparent);
    border-radius: 0;
    background: transparent;
}

.sfs-match-chat-avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sfs-match-chat-body {
    display: grid;
    grid-template-columns: minmax(32px, 96px) minmax(0, 1fr);
    gap: 8px;
    align-items: center;
}

.sfs-match-chat-author {
    overflow: hidden;
    color: #1f2937;
    font-weight: 850;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sfs-match-report-empty {
    padding: 18px;
}

@media (max-width: 640px) {
    .sfs-match-report-header {
        position: sticky;
        top: 0;
        z-index: 4;
        flex-wrap: wrap;
    }

    .sfs-match-report-title {
        flex: 1 1 100%;
    }

    .sfs-match-report-clock {
        flex: 1 1 auto;
    }

    .sfs-match-report-escape {
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .sfs-match-report-open-chat {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: rgba(37, 99, 235, 0.8);
    }

    .sfs-match-report-shell--feed-saved .sfs-match-report-header {
        padding-right: 18px;
        flex-direction: column;
        align-items: flex-start;
    }

    .sfs-match-report-shell--feed-saved .sfs-match-report-title::after {
        position: static;
        transform: none;
        margin-top: 8px;
    }

    .sfs-match-report-entry {
        grid-template-columns: 58px 1fr;
        padding: 11px 12px;
    }

    .sfs-match-report-entry-delete {
        opacity: 1;
    }

    .sfs-match-report-official {
        margin: 9px 8px;
    }
}

/* --------------------------------------------
   HERO
-------------------------------------------- */

.sfs-paragraph[data-sfs-variant="hero"] .sfs-paragraph-inner {
    max-width: 900px;
    padding: 6px;
}

.sfs-paragraph-hero-figure {
    margin: 0;
    overflow: hidden;
    position: relative;
}

.sfs-paragraph-hero-image {
    display: block;
    width: 100%;
}

.sfs-drhornox-page-hero .sfs-paragraph-inner {
    max-width: 960px;
    padding: 18px 16px 26px;
}

.sfs-drhornox-page-hero .sfs-paragraph-hero-figure {
    height: min(360px, 45vw);
}

.sfs-drhornox-page-hero .sfs-paragraph-hero-image {
    height: 100% !important;
    object-fit: cover;
    object-position: center center;
}

.sfs-doc-beta .sfs-paragraph[data-sfs-variant="hero"] .sfs-paragraph-hero-figure::after {
    content: "BETA";
    position: absolute;
    inset: 50% auto auto 50%;
    transform: translate(-50%, -50%) rotate(-12deg);
    z-index: 2;
    padding: 0.08em 0.22em;
    border: 0.08em solid rgba(255,255,255,.78);
    border-radius: 0.16em;
    background: rgba(17,24,39,.34);
    color: rgba(255,255,255,.88);
    font-size: clamp(64px, 13vw, 180px);
    line-height: 1;
    font-weight: 1000;
    letter-spacing: .08em;
    text-shadow: 0 8px 28px rgba(0,0,0,.42);
    pointer-events: none;
}

@media (min-width: 769px) {
    .sfs-doc-home .sfs-paragraph[data-sfs-variant="hero"] .sfs-paragraph-hero-figure {
        height: min(520px, 56vw) !important;
    }

    .sfs-doc-home .sfs-paragraph[data-sfs-variant="hero"] .sfs-paragraph-hero-image {
        height: 100% !important;
        object-fit: cover;
        object-position: center 34%;
    }
}

/* --------------------------------------------
   imageText helpers
-------------------------------------------- */

.sfs-paragraph-thumb {
    display: block;
    width: 100%;
    height: auto;
}

.sfs-paragraph-row {
    width: 100%;
}

.sfs-paragraph-media {
    flex-shrink: 0;
}

.sfs-paragraph-text {
    min-width: 0;
}

.sfs-clickable-image {
    cursor: pointer;
}

.sfs-clickable-image:focus-visible {
    outline: 3px solid var(--sfs-accent-color, #0a84ff);
    outline-offset: 3px;
}

.sfs-paragraph-image-only-section .sfs-paragraph-inner {
    display: grid;
    justify-items: center;
}

.sfs-paragraph-image-only {
    margin-left: auto;
    margin-right: auto;
    max-width: 100%;
}

.sfs-paragraph-image-only-img {
    max-width: 100%;
}

.sfs-image-viewer {
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: grid;
    place-items: center;
    padding: 56px 20px 24px;
    background: rgba(0, 0, 0, 0.94);
}

.sfs-image-viewer-content {
    display: grid;
    gap: 12px;
    max-width: min(96vw, 1800px);
    max-height: calc(100vh - 80px);
    margin: 0;
}

.sfs-image-viewer-image {
    display: block;
    max-width: 100%;
    max-height: calc(100vh - 120px);
    margin: auto;
    object-fit: contain;
}

.sfs-image-viewer-caption {
    color: #fff;
    text-align: center;
    line-height: 1.4;
}

.sfs-image-viewer-close {
    position: fixed;
    top: 12px;
    right: 16px;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255,255,255,0.35);
    border-radius: 50%;
    background: rgba(0,0,0,0.45);
    color: #fff;
    font: 32px/1 system-ui, sans-serif;
    cursor: pointer;
}

/* Mobile helpers */
@media (max-width: 600px) {
    .sfs-hide-mobile {
        display: none !important;
    }

    .sfs-paragraph-row {
        flex-direction: column !important;
    }

    .sfs-paragraph-media.sfs-media-mobile-full,
    .sfs-paragraph-image-only.sfs-media-mobile-full {
        width: 100% !important;
        max-width: none !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .sfs-paragraph-media.sfs-media-mobile-compact,
    .sfs-paragraph-image-only.sfs-media-mobile-compact {
        width: min(
            var(--sfs-media-desktop-width, 100%),
            var(--sfs-media-desktop-max-width, 220px),
            220px
        ) !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .sfs-paragraph-media.sfs-media-mobile-same,
    .sfs-paragraph-image-only.sfs-media-mobile-same {
        width: var(--sfs-media-desktop-width, 100%) !important;
        max-width: min(var(--sfs-media-desktop-max-width, 100%), 100%) !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

/* --------------------------------------------
   Sport route document block
-------------------------------------------- */

.sfs-sport-route-add-picker {
    display: grid;
    gap: 12px;
}

.sfs-route-config {
    display: grid;
    gap: 12px;
    border: 1px solid #dbe4ee;
    border-radius: 12px;
    background: #fff;
    padding: 14px;
}

.sfs-route-config-title {
    margin: 0;
    color: #17202a;
    font-size: 19px;
}

.sfs-route-config-tabs {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    border-bottom: 1px solid #e5e7eb;
    padding-bottom: 10px;
}

.sfs-route-config-tab {
    flex: 0 0 auto;
    min-height: 38px;
    border: 0;
    border-radius: 8px;
    background: #eef0f3;
    color: #374151;
    font: inherit;
    font-weight: 750;
    padding: 0 18px;
    cursor: pointer;
}

.sfs-route-config-tab.is-active {
    background: #4058d8;
    color: #fff;
}

.sfs-route-config-panel { display: none; }
.sfs-route-config-panel.is-active { display: block; }
.sfs-route-config-status { color: #64748b; padding: 18px; text-align: center; }
.sfs-route-config-status.is-error { color: #a42c27; }

.sfs-route-place-toolbar {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}

.sfs-route-place-counter {
    flex: 0 0 auto;
    border-radius: 999px;
    background: #eef2ff;
    color: #4058d8;
    padding: 7px 11px;
}

.sfs-route-place-picker-list {
    display: grid;
    gap: 9px;
    max-height: min(520px, 62vh);
    overflow: auto;
}

.sfs-route-place-picker-item {
    display: grid;
    grid-template-columns: auto 76px minmax(0, 1fr);
    align-items: center;
    gap: 11px;
    border: 1px solid #d8e0ea;
    border-radius: 9px;
    background: #fff;
    padding: 9px;
    cursor: pointer;
}

.sfs-route-place-picker-item.is-selected { border-color: #4058d8; background: #eef2ff; }
.sfs-route-place-picker-item > input { width: 19px; height: 19px; accent-color: #4058d8; }
.sfs-route-place-picker-thumb { width: 76px; aspect-ratio: 4 / 3; border-radius: 7px; object-fit: cover; background: #eef2f7; }
.sfs-route-place-picker-body { display: grid; gap: 4px; min-width: 0; }
.sfs-route-place-picker-body strong { display: flex; align-items: center; gap: 7px; color: #111827; }
.sfs-route-place-picker-body > span { color: #64748b; font-size: 12px; }
.sfs-route-config-footer { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; }

.sfs-route-checkpoint-switch {
    display: flex;
    align-items: center;
    gap: 11px;
    border: 1px solid #d8e0ea;
    border-radius: 10px;
    background: #f8fafc;
    padding: 11px 13px;
    cursor: pointer;
}
.sfs-route-checkpoint-switch > input { width: 20px; height: 20px; accent-color: #4058d8; }
.sfs-route-checkpoint-switch > span { display: grid; gap: 2px; }
.sfs-route-checkpoint-switch strong { color: #17202a; }
.sfs-route-checkpoint-switch small { color: #64748b; }
.sfs-route-checkpoint-instruction { margin: 11px 0 8px; color: #475569; font-size: 13px; }
.sfs-route-checkpoint-map {
    overflow: hidden;
    min-height: 280px;
    border: 1px solid #d8e0ea;
    border-radius: 10px;
    background: #eaf0f4;
}
.sfs-route-checkpoint-map .sfs-route-map-shell,
.sfs-route-checkpoint-map .sfs-route-map-layer { min-height: 280px; }
.sfs-route-checkpoint-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 12px 0 8px;
    color: #64748b;
    font-size: 12px;
}
.sfs-route-checkpoint-toolbar strong { color: #4058d8; font-size: 13px; }
.sfs-route-checkpoint-list { display: grid; gap: 10px; }
.sfs-route-checkpoint-empty {
    border: 1px dashed #cbd5e1;
    border-radius: 9px;
    color: #64748b;
    padding: 16px;
    text-align: center;
}
.sfs-route-checkpoint-editor-row {
    display: grid;
    gap: 10px;
    border: 1px solid #d8e0ea;
    border-radius: 10px;
    background: #fff;
    padding: 11px;
}
.sfs-route-checkpoint-editor-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.sfs-route-checkpoint-editor-header > strong { color: #17202a; font-size: 13px; }
.sfs-route-checkpoint-remove {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 0;
    background: transparent;
    color: #b42318;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}
.sfs-route-checkpoint-fields { display: grid; grid-template-columns: minmax(160px, .8fr) minmax(220px, 1.2fr); gap: 10px; }
.sfs-route-checkpoint-fields label { display: grid; gap: 5px; color: #374151; font-size: 12px; font-weight: 700; }
.sfs-route-checkpoint-fields label.is-wide { grid-column: 1 / -1; }
.sfs-route-checkpoint-fields input,
.sfs-route-checkpoint-fields select,
.sfs-route-checkpoint-fields textarea {
    width: 100%;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #fff;
    color: #111827;
    font: inherit;
    font-weight: 400;
    padding: 9px 10px;
}
.sfs-route-checkpoint-fields textarea { resize: vertical; }

.sfs-sport-route-add-search {
    width: 100%;
    min-height: 40px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #fff;
    color: #111827;
    font: inherit;
    padding: 0 12px;
}

.sfs-sport-route-add-list {
    display: grid;
    gap: 10px;
    max-height: min(520px, 64vh);
    overflow: auto;
    padding-right: 2px;
}

.sfs-sport-route-add-item {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    border: 1px solid #d8e0ea;
    border-radius: 8px;
    background: #fff;
    padding: 10px;
}

.sfs-sport-route-add-item.is-selected {
    border-color: #2f7d59;
    background: #f1f8f4;
}

.sfs-sport-route-add-thumb {
    width: 110px;
    aspect-ratio: 4 / 3;
    border-radius: 6px;
    object-fit: cover;
    background: #eef2f7;
}

.sfs-sport-route-add-thumb-empty {
    display: grid;
    place-items: center;
    color: #64748b;
    font-size: 12px;
    font-weight: 700;
}

.sfs-sport-route-add-body {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.sfs-sport-route-add-body strong {
    color: #111827;
    font-size: 15px;
    line-height: 1.25;
}

.sfs-sport-route-add-meta,
.sfs-sport-route-add-start,
.sfs-sport-route-add-empty {
    color: #64748b;
    font-size: 13px;
    line-height: 1.35;
}

.sfs-sport-route-add-current {
    color: #2f7d59;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.sfs-sport-route-add-btn {
    min-width: 88px;
    min-height: 38px;
}

.sfs-restaurant-picker-status,
.sfs-document-restaurant-status {
    color: #64748b;
    padding: 18px;
    text-align: center;
}

.sfs-restaurant-picker-status.is-error,
.sfs-document-restaurant-status.is-error {
    color: #a42c27;
}

.sfs-restaurant-picker-thumb-empty {
    object-fit: contain;
    padding: 12px;
    background: #eef2f7;
}

.sfs-restaurant-picker-distance {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 5px;
    color: #1f5f46;
    font-size: 13px;
    font-weight: 700;
}

.sfs-document-restaurant-card {
    display: grid;
    grid-template-columns: minmax(220px, 34%) minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid #d8e0ea;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
}

.sfs-document-restaurant-media {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    align-content: stretch;
    min-height: 240px;
    background: #eef2f7;
}

.sfs-document-restaurant-image {
    width: 100%;
    height: 100%;
    min-height: 240px;
    object-fit: cover;
}

.sfs-document-restaurant-image-empty {
    object-fit: contain;
    padding: clamp(28px, 6vw, 72px);
    background: #eef2f7;
}

.sfs-document-restaurant-image[src*="/Websites/"][src*="/images/logo.png"],
.sfs-sport-route-add-thumb[src*="/Websites/"][src*="/images/logo.png"] {
    object-fit: contain;
    padding: clamp(28px, 6vw, 72px);
    background: #f7faf8;
}

.sfs-document-restaurant-body {
    display: grid;
    align-content: center;
    gap: 12px;
    padding: clamp(20px, 4vw, 38px);
}

/* A lone establishment card does not need the taller directory-card rhythm. */
.sfs-document-section-body:has(> .sfs-document-block:only-child)
    > .sfs-document-block:only-child
    .sfs-paragraph-restaurant-card
    .sfs-document-restaurant-card {
    grid-template-columns: minmax(180px, 30%) minmax(0, 1fr);
}

.sfs-document-section-body:has(> .sfs-document-block:only-child)
    > .sfs-document-block:only-child
    .sfs-paragraph-restaurant-card
    .sfs-document-restaurant-media,
.sfs-document-section-body:has(> .sfs-document-block:only-child)
    > .sfs-document-block:only-child
    .sfs-paragraph-restaurant-card
    .sfs-document-restaurant-image {
    min-height: 160px;
}

.sfs-document-section-body:has(> .sfs-document-block:only-child)
    > .sfs-document-block:only-child
    .sfs-paragraph-restaurant-card
    .sfs-document-restaurant-body {
    gap: 8px;
    padding: clamp(14px, 2.5vw, 25px);
}

.sfs-document-section-body:has(> .sfs-document-block:only-child)
    > .sfs-document-block:only-child
    .sfs-paragraph-restaurant-card
    .sfs-document-restaurant-heading h3 {
    font-size: clamp(20px, 2.4vw, 28px);
}

.sfs-document-restaurant-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(150px, 42%);
    align-items: start;
    gap: 12px 20px;
}

.sfs-document-restaurant-heading.is-title-only {
    grid-template-columns: minmax(0, 1fr);
}

.sfs-document-restaurant-heading.is-title-only h3 {
    width: 100%;
    max-width: none;
}

.sfs-document-restaurant-heading-primary {
    display: grid;
    justify-items: start;
    gap: 8px;
    min-width: 0;
}

.sfs-document-restaurant-heading h3 {
    margin: 0;
    color: #111827;
    font-size: clamp(22px, 3vw, 32px);
    line-height: 1.15;
}

.sfs-document-restaurant-heading-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 8px;
    min-width: 0;
    text-align: right;
}

.sfs-document-restaurant-heading-meta:empty {
    display: none;
}

.sfs-document-restaurant-favourite {
    flex: 0 0 auto;
    color: #d69e00;
    font-size: 24px;
    line-height: 1;
}

.sfs-document-restaurant-categories {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 5px 11px;
    border: 1px solid #cfd8d4;
    border-radius: 8px;
    background: #f8faf9;
    color: #2f7d59;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.sfs-document-restaurant-description {
    margin: 0;
    color: #475569;
    line-height: 1.6;
}

.sfs-document-restaurant-contact {
    display: grid;
    gap: 7px;
    color: #334155;
}

.sfs-document-restaurant-contact > * {
    display: flex;
    align-items: center;
    gap: 9px;
    color: inherit;
    text-decoration: none;
}

.sfs-document-restaurant-contact > .sfs-document-restaurant-contact-primary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px 20px;
}

.sfs-document-restaurant-contact-primary > a,
.sfs-document-restaurant-contact-methods > a {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
    color: var(--sfs-tab-subtitle-text, var(--sfs-tenant-tab-subtitle-text, var(--sfs-list-title-subtitle-text, var(--sfs-tenant-title-subtitle, #fff))));
    text-decoration: none;
    overflow-wrap: anywhere;
}

.sfs-document-restaurant-contact-methods {
    display: grid;
    justify-items: end;
    gap: 5px;
    min-width: 0;
}

.sfs-document-restaurant-contact-methods > a {
    justify-content: flex-end;
}

.sfs-document-restaurant-contact-methods > a[href^="tel:"] {
    justify-self: end;
    white-space: nowrap;
}

.sfs-document-restaurant-contact-methods > a[href^="mailto:"] {
    font-size: .88em;
}

.sfs-document-restaurant-distance {
    color: #1f5f46;
    font-weight: 700;
}

.sfs-document-restaurant-travel-value {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
}

.sfs-document-restaurant-travel-note {
    color: #64748b;
    font-size: .78rem;
    font-weight: 600;
}

.sfs-document-restaurant-contact > .sfs-document-restaurant-travel-panel {
    display: grid;
    align-items: stretch;
    gap: 8px;
    color: #334155;
}

.sfs-document-establishment-opening {
    overflow: hidden;
    border: 1px solid #d6e1de;
    border-left: 4px solid #64748b;
    border-radius: 10px;
    background: #f7faf9;
}

.sfs-document-establishment-opening.is-open {
    border-left-color: #1f7a50;
    background: #f1faf5;
}

.sfs-document-establishment-opening.is-closed {
    border-left-color: #a7483e;
    background: #fff8f6;
}

.sfs-document-establishment-opening-status {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    color: #263b36;
}

.sfs-document-establishment-opening-status > i {
    width: 20px;
    color: #64748b;
    text-align: center;
}

.sfs-document-establishment-opening.is-open .sfs-document-establishment-opening-status > i,
.sfs-document-establishment-opening.is-open .sfs-document-establishment-opening-status strong {
    color: #17633f;
}

.sfs-document-establishment-opening.is-closed .sfs-document-establishment-opening-status > i,
.sfs-document-establishment-opening.is-closed .sfs-document-establishment-opening-status strong {
    color: #8e332c;
}

.sfs-document-establishment-opening-status > div {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 10px;
    min-width: 0;
}

.sfs-document-establishment-opening-status span {
    color: #526174;
    font-weight: 650;
}

.sfs-document-establishment-hours {
    border-top: 1px solid #d6e1de;
}

.sfs-document-establishment-hours summary {
    cursor: pointer;
    padding: 9px 12px;
    color: #285f4d;
    font-weight: 800;
}

.sfs-document-establishment-hours summary:hover,
.sfs-document-establishment-hours summary:focus-visible {
    background: rgba(47, 125, 89, .07);
}

.sfs-document-establishment-hours dl {
    display: grid;
    grid-template-columns: minmax(145px, auto) minmax(0, 1fr);
    gap: 0 14px;
    margin: 0;
    border-top: 1px solid #e2e8e5;
    padding: 6px 12px 10px;
}

.sfs-document-establishment-hours dt,
.sfs-document-establishment-hours dd {
    margin: 0;
    border-bottom: 1px solid #e7ecea;
    padding: 6px 0;
}

.sfs-document-establishment-hours dt {
    color: #526174;
    font-weight: 700;
    text-transform: capitalize;
}

.sfs-document-establishment-hours dd {
    color: #1f2937;
    font-weight: 700;
    text-align: right;
}

.sfs-document-establishment-hours dd small {
    display: block;
    color: #64748b;
    font-weight: 500;
}

.sfs-document-establishment-hours-estimate {
    margin: 0;
    padding: 0 12px 10px;
    color: #64748b;
    font-size: .78rem;
    font-style: italic;
}

.sfs-document-restaurant-travel-panel .sfs-document-restaurant-distance {
    width: 100%;
    flex-wrap: wrap;
}

.sfs-document-restaurant-distance-metric {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
}

.sfs-document-restaurant-link.is-inline-directions {
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    margin-left: auto;
    padding: 0;
    border-color: color-mix(in srgb, var(--sfs-accent, #2f6f4e) 35%, #b7c7d7);
    color: var(--sfs-accent, #2f6f4e);
}

.sfs-document-restaurant-link.is-inline-directions i {
    width: auto;
    color: inherit;
}

.sfs-document-restaurant-travel-panel .sfs-document-route-driving + .sfs-document-route-driving {
    border-top: 1px solid #d7ebe4;
    padding-top: 9px;
}

.sfs-document-restaurant-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
    margin-top: 2px;
}

.sfs-document-restaurant-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 8px;
    background: #1f5f46;
    color: #fff;
    font-weight: 800;
    padding: 10px 16px;
    text-decoration: none;
}

.sfs-document-restaurant-link.is-secondary {
    border: 1px solid #b7c7d7;
    background: #fff;
    color: #334155;
}

.sfs-document-restaurant-link:hover,
.sfs-document-restaurant-link:focus-visible {
    filter: brightness(0.96);
}

.sfs-document-restaurant-features {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}

.sfs-document-restaurant-feature {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    border: 1px solid #d6e1de;
    border-radius: 8px;
    background: #f7faf9;
    color: #355b55;
    padding: 4px 9px;
    font-family: inherit;
    font-size: .78rem;
    font-weight: 500;
}

.sfs-document-restaurant-feature.is-highlighted {
    border-color: #86c8b9;
    background: #e9f8f3;
    color: #116457;
}

.sfs-document-restaurant-feature.is-editorial {
    border-style: dashed;
}

.sfs-document-restaurant-feature.is-more {
    appearance: none;
    cursor: pointer;
    background: #eef2f7;
    color: #526174;
}

.sfs-document-restaurant-feature.is-more:hover,
.sfs-document-restaurant-feature.is-more:focus-visible {
    border-color: #91a0b4;
    background: #e2e8f0;
}

.sfs-document-restaurant-feature.is-collapsed-extra[hidden] {
    display: none;
}

@media (max-width: 720px) {
    .sfs-document-restaurant-card {
        grid-template-columns: 1fr;
    }

    .sfs-document-section-body:has(> .sfs-document-block:only-child)
        > .sfs-document-block:only-child
        .sfs-paragraph-restaurant-card
        .sfs-document-restaurant-card {
        grid-template-columns: minmax(0, 1fr);
    }

    .sfs-document-restaurant-image[src*="/Websites/"][src*="/images/logo.png"] {
        padding: 6px 28px 54px;
    }

    .sfs-document-restaurant-media,
    .sfs-document-restaurant-image {
        min-height: 210px;
        max-height: 320px;
    }

    .sfs-document-section-body:has(> .sfs-document-block:only-child)
        > .sfs-document-block:only-child
        .sfs-paragraph-restaurant-card
        .sfs-document-restaurant-media,
    .sfs-document-section-body:has(> .sfs-document-block:only-child)
        > .sfs-document-block:only-child
        .sfs-paragraph-restaurant-card
        .sfs-document-restaurant-image {
        min-height: 210px;
        max-height: 320px;
    }

    .sfs-document-section-body:has(> .sfs-document-block:only-child)
        > .sfs-document-block:only-child
        .sfs-paragraph-restaurant-card
        .sfs-document-restaurant-body {
        padding: 18px;
    }

    .sfs-document-restaurant-heading {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        align-items: start;
        gap: 10px;
    }

    .sfs-document-restaurant-heading-meta {
        width: auto;
        margin-left: 0;
        justify-self: end;
        max-width: 100%;
    }

    .sfs-document-restaurant-contact > .sfs-document-restaurant-contact-primary {
        grid-template-columns: minmax(0, 1fr);
    }

    .sfs-document-restaurant-contact-methods {
        justify-items: start;
    }

    .sfs-document-restaurant-contact-methods > a,
    .sfs-document-restaurant-contact-methods > a[href^="tel:"] {
        justify-self: start;
        justify-content: flex-start;
    }

    .sfs-document-restaurant-contact > * {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .sfs-document-restaurant-actions {
        align-items: stretch;
    }

    .sfs-document-restaurant-link {
        flex: 1 1 150px;
    }

    .sfs-document-restaurant-actions.is-tab-widget,
    .sfs-document-restaurant-actions.is-tab-widget .sfs-document-restaurant-link {
        width: 100%;
    }

    .sfs-document-restaurant-actions.is-tab-widget .sfs-document-restaurant-link {
        flex-basis: 100%;
    }

    .sfs-document-establishment-hours dl {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .sfs-document-establishment-hours dt {
        border-bottom: 0;
        padding-bottom: 1px;
    }

    .sfs-document-establishment-hours dd {
        padding-top: 1px;
        text-align: left;
    }
}

.sfs-document-route-card {
    display: grid;
    grid-template-columns: minmax(220px, 36%) minmax(0, 1fr);
    border: 1px solid #b8c6d6;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
    overflow: hidden;
}

.sfs-document-route-media {
    display: grid;
    grid-template-rows: auto auto;
    align-content: start;
    background: #edf3f7;
    border-right: 1px solid #d9e2ec;
}

.sfs-document-route-visual {
    width: 100%;
    aspect-ratio: 16 / 9;
    min-height: 260px;
    background: #edf3f7;
    overflow: hidden;
}

.sfs-document-route-visual .sfs-route-visual {
    width: 100%;
    height: 100%;
    min-height: 0;
    aspect-ratio: auto;
    border: 0;
}

.sfs-document-route-visual .sfs-route-visual-button,
.sfs-document-route-visual .sfs-route-access-view,
.sfs-document-route-visual .sfs-route-elevation,
.sfs-document-route-visual .sfs-route-map {
    height: 100%;
}

.sfs-document-route-image,
.sfs-document-route-placeholder {
    width: 100%;
    height: 100%;
    min-height: 220px;
}

.sfs-document-route-image {
    display: block;
    object-fit: cover;
}

.sfs-document-route-placeholder {
    display: grid;
    place-items: center;
    color: #64748b;
    font-size: 14px;
    font-weight: 800;
}

.sfs-document-route-source-line {
    border-top: 1px solid #d9e2ec;
    background: #f8fafc;
    color: #475569;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.3;
    padding: 8px 10px;
    text-align: right;
    text-transform: lowercase;
}

.sfs-paragraph-perfect-day > .sfs-paragraph-inner {
    display: grid;
    gap: clamp(18px, 2.5vw, 32px);
}

.sfs-paragraph-perfect-day .sfs-perfect-day-title {
    margin: 0;
    text-align: center;
}

.sfs-paragraph-perfect-day .sfs-perfect-day-title > * {
    text-align: center;
}

.sfs-paragraph-perfect-day .sfs-perfect-day-title .sfs-paragraph-title-text {
    font-weight: 600;
    line-height: 1.2;
}

.sfs-paragraph-perfect-day .sfs-perfect-day-description {
    box-sizing: border-box;
    margin: 0 auto;
    width: min(100%, 1180px);
    color: #334155;
    font-size: clamp(15px, 1vw, 17px);
    line-height: 1.65;
}

@media (max-width: 768px) {
    .sfs-paragraph-perfect-day .sfs-perfect-day-title .sfs-paragraph-title-text {
        font-size: 16px !important;
    }
}

.sfs-paragraph-perfect-day .sfs-document-route-card,
.sfs-paragraph-perfect-day .sfs-document-restaurant-card {
    margin-inline: auto;
    width: min(100%, 1180px);
}

.sfs-document-route-source-line a {
    color: inherit;
    text-decoration: none;
}

.sfs-document-route-source-line a:hover,
.sfs-document-route-source-line a:focus-visible {
    color: #1e3a5f;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.sfs-document-route-body {
    display: grid;
    gap: 12px;
    align-content: start;
    padding: 16px;
    min-width: 0;
}

.sfs-document-route-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.sfs-document-route-title-block {
    min-width: 0;
}

.sfs-document-route-title {
    margin: 0;
    color: #17202a;
    font-size: 22px;
    line-height: 1.16;
    font-weight: 800;
}

.sfs-document-route-meta {
    margin-top: 4px;
    color: #64748b;
    font-size: 13px;
    line-height: 1.35;
}

.sfs-document-route-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.sfs-document-route-stat {
    display: grid;
    gap: 2px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #f8fafc;
    padding: 9px 8px;
    min-width: 0;
}

.sfs-document-route-stat strong {
    color: #111827;
    font-size: 16px;
    line-height: 1.1;
    font-weight: 850;
}

.sfs-document-route-stat.is-elevation strong,
.sfs-document-route-stat.is-duration strong {
    display: flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

.sfs-document-route-stat.is-elevation strong i,
.sfs-document-route-stat.is-duration strong i {
    flex: 0 0 auto;
    color: #0f766e;
    font-size: 20px;
    font-weight: 900;
}

.sfs-document-route-stat span {
    color: #64748b;
    font-size: 11px;
    line-height: 1.1;
    text-transform: uppercase;
}

.sfs-document-route-access {
    display: grid;
    gap: 8px;
    border: 1px solid #dbe8e3;
    border-radius: 10px;
    background: #f8fbfa;
    padding: 10px 12px;
    color: #334155;
    font-size: 14px;
}

.sfs-document-route-access-location {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    min-width: 0;
}

.sfs-document-route-access-location strong {
    color: #0f766e;
    font-weight: 800;
}

.sfs-document-route-start-directions {
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin-left: auto;
    border: 1px solid #a7d8c6;
    border-radius: 999px;
    background: #fff;
    color: #0f766e;
    font-size: 12px;
    font-weight: 800;
    padding: 5px 11px;
    text-decoration: none;
    white-space: nowrap;
}

.sfs-document-route-start-directions:hover,
.sfs-document-route-start-directions:focus-visible {
    border-color: #0f766e;
    background: #ecfdf5;
    color: #115e59;
    outline: none;
}

.sfs-document-route-travel-row {
    display: flex;
    align-items: center;
    gap: 14px;
    border-top: 1px solid #d7ebe4;
    padding: 9px 0 0;
    white-space: nowrap;
}

.sfs-document-route-driving {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #047857;
    font-weight: 800;
}

.sfs-document-route-travel-row .sfs-document-route-driving {
    font-weight: 400;
}

.sfs-document-route-travel-row > .sfs-document-route-driving + .sfs-document-route-driving {
    border-left: 1px solid #a7d8c6;
    padding-left: 14px;
}

.sfs-document-route-driving i {
    width: 18px;
    flex: 0 0 auto;
    color: #0f766e;
    text-align: center;
}

.sfs-document-route-walking {
    color: #0f766e;
}

.sfs-document-route-estimate-note {
    color: #64748b;
    font-size: 11px;
    font-style: italic;
    line-height: 1.2;
}

.sfs-document-route-performance {
    display: flex;
    align-items: center;
    gap: 14px;
    border: 1px solid #fecdd3;
    border-radius: 10px;
    background: #fff1f2;
    padding: 10px 24px 10px 12px;
    white-space: nowrap;
}

.sfs-document-route-performance-title {
    margin-right: auto;
    color: #9f1239;
    font-size: 14px;
    font-weight: 850;
}

.sfs-document-route-performance-summary {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border-left: 1px solid #fda4af;
    color: #be123c;
    padding-left: 14px;
}

.sfs-document-route-performance-summary > i {
    width: 20px;
    flex: 0 0 auto;
    color: #be123c;
    font-size: 18px;
    text-align: center;
}

.sfs-document-route-performance-summary > span {
    color: #881337;
    font-size: 14px;
    font-weight: 800;
}

.sfs-document-route-description {
    margin: 0;
    color: #334155;
    font-size: 14px;
    line-height: 1.5;
}

.sfs-document-route-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 4px;
}

.sfs-document-route-navigate {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 999px;
    padding: 8px 16px;
    background: #0f766e;
    color: #fff;
    font-weight: 850;
    text-decoration: none;
}

.sfs-document-route-navigate:hover,
.sfs-document-route-navigate:focus-visible {
    background: #115e59;
    color: #fff;
}

.sfs-document-route-places {
    display: grid;
    gap: 10px;
    grid-column: 1 / -1;
    border-top: 1px solid #e2e8f0;
    padding: 14px;
}

.sfs-document-route-places-title {
    color: #17202a;
    font-size: 14px;
    font-weight: 850;
}

.sfs-document-route-places-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.sfs-document-route-place {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: 3px 9px;
    align-items: center;
    min-width: 0;
    border: 1px solid #e2e8f0;
    border-radius: 9px;
    background: #f8fafc;
    color: inherit;
    padding: 7px;
    text-decoration: none;
}

.sfs-document-route-place:focus-within { border-color: #cbd5e1; background: #fff; }
.sfs-document-route-place-image { grid-row: 1 / 3; width: 64px; aspect-ratio: 4 / 3; border-radius: 6px; object-fit: cover; background: #eef2f7; }
.sfs-document-route-place strong { display: flex; align-items: center; gap: 6px; min-width: 0; color: #17202a; font-size: 12px; line-height: 1.2; }
.sfs-document-route-place strong i { flex: 0 0 auto; color: #0f766e; }
.sfs-document-route-place > span { color: #64748b; font-size: 10px; line-height: 1.2; }

.sfs-document-route-place-link {
    min-width: 0;
    color: inherit;
    text-decoration: none;
}

.sfs-document-route-place-link:hover strong,
.sfs-document-route-place-link:focus-visible strong {
    color: #0f766e;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.sfs-document-route-place-link:focus-visible {
    border-radius: 3px;
    outline: 2px solid rgba(15, 118, 110, .35);
    outline-offset: 2px;
}

.sfs-document-route-place > .sfs-document-route-place-hours {
    grid-column: 1 / -1;
    width: 100%;
    color: #64748b;
    font-size: 10px;
    font-weight: 400;
    line-height: 1.2;
    text-align: left;
}

.sfs-document-route-place > .sfs-document-route-place-hours.is-first {
    margin-top: 4px;
    border-top: 1px solid #e2e8f0;
    padding-top: 5px;
}

.sfs-document-route-checkpoints {
    border-top: 1px solid #dbe4ee;
    padding: 16px;
}
.sfs-document-route-checkpoints-title { display: block; margin-bottom: 10px; color: #17202a; font-size: 15px; }
.sfs-document-route-checkpoints-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.sfs-document-route-checkpoint {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    align-items: start;
    gap: 9px;
    border: 1px solid #dbe4ee;
    border-radius: 9px;
    background: #f8fafc;
    padding: 10px;
}
.sfs-document-route-checkpoint-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #e6f4f1;
    color: #27806f;
}
.sfs-document-route-checkpoint-copy { display: grid; gap: 2px; min-width: 0; }
.sfs-document-route-checkpoint-copy strong { color: #17202a; font-size: 13px; }
.sfs-document-route-checkpoint-copy small { color: #64748b; font-size: 10px; }
.sfs-document-route-checkpoint-copy > span { margin-top: 4px; color: #475569; font-size: 11px; line-height: 1.35; }

.sfs-document-route-unavailable {
    border: 1px dashed #cbd5e1;
    border-radius: 8px;
    color: #64748b;
    padding: 16px;
    text-align: center;
}

@media (max-width: 720px) {
    .sfs-sport-route-add-item {
        grid-template-columns: 82px minmax(0, 1fr);
    }

    .sfs-document-route-places-list { grid-template-columns: 1fr; }
    .sfs-document-route-checkpoints-list { grid-template-columns: 1fr; }
    .sfs-route-place-toolbar { align-items: stretch; flex-direction: column; }
    .sfs-route-checkpoint-fields { grid-template-columns: 1fr; }
    .sfs-route-checkpoint-fields label.is-wide { grid-column: auto; }

    .sfs-sport-route-add-thumb {
        width: 82px;
    }

    .sfs-sport-route-add-btn {
        grid-column: 1 / -1;
        width: 100%;
    }

    .sfs-document-route-card {
        grid-template-columns: 1fr;
    }

    .sfs-document-route-media {
        grid-template-rows: auto auto;
        border-right: 0;
        border-bottom: 1px solid #d9e2ec;
    }

    .sfs-document-route-visual,
    .sfs-document-route-visual .sfs-route-visual,
    .sfs-document-route-image,
    .sfs-document-route-placeholder {
        min-height: 245px;
    }

    .sfs-document-route-header {
        display: grid;
    }

    .sfs-document-route-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sfs-document-route-performance {
        gap: 8px;
        padding: 9px 16px 9px 10px;
    }

    .sfs-document-route-performance-title,
    .sfs-document-route-performance-summary > span {
        font-size: 12px;
    }

    .sfs-document-route-performance-summary {
        gap: 5px;
        padding-left: 8px;
    }

    .sfs-document-route-performance-summary > i {
        width: 16px;
        font-size: 15px;
    }

    .sfs-document-route-travel-row {
        gap: 8px;
    }

    .sfs-document-route-driving {
        gap: 5px;
        font-size: 12px;
    }

    .sfs-document-route-start-directions {
        width: 100%;
        margin: 6px 0 0;
    }

    .sfs-document-route-actions {
        justify-content: stretch;
    }

    .sfs-document-route-navigate {
        width: 100%;
    }

    .sfs-document-route-travel-row > .sfs-document-route-driving + .sfs-document-route-driving {
        padding-left: 8px;
    }
}

/* --------------------------------------------
   Title style presets
-------------------------------------------- */

.sfs-title-hero {
    padding-top: 0;
    padding-bottom: 0;
}

.sfs-title-highlight {
    background: var(--sfs-tenant-title-background, #111111);
    border-radius: 14px;
    color: var(--sfs-tenant-title-text, #fff);
    padding: 12px 16px;
}

.sfs-title-highlight .sfs-paragraph-title-text,
.sfs-title-highlight .sfs-paragraph-title-icon {
    color: var(--sfs-tenant-title-text, #fff) !important;
}

.sfs-title-highlight .sfs-paragraph-title-subtitle {
    color: var(--sfs-tenant-title-subtitle, var(--sfs-tenant-title-text, #fff)) !important;
}

.sfs-title-dark {
    background: var(--sfs-tenant-title-background, #111827);
    border-radius: 14px;
    color: #fff;
    padding: 12px 16px;
}

.sfs-title-dark .sfs-paragraph-title-text,
.sfs-title-dark .sfs-paragraph-title-subtitle,
.sfs-title-dark .sfs-paragraph-title-icon {
    color: var(--sfs-tenant-title-text, #fff) !important;
}

.sfs-title-dark .sfs-paragraph-title-subtitle {
    color: var(--sfs-tenant-title-subtitle, var(--sfs-tenant-title-text, #fff)) !important;
}

.sfs-title-soft-accent {
    background: color-mix(in srgb, var(--sfs-tenant-accent, #C62828) 8%, var(--sfs-tenant-paragraph-background, #fff));
    border-radius: 14px;
    color: var(--sfs-tenant-body-text, #242424);
    padding: 12px 16px;
}

.sfs-title-soft-accent .sfs-paragraph-title-text,
.sfs-title-soft-accent .sfs-paragraph-title-subtitle,
.sfs-title-soft-accent .sfs-paragraph-title-icon {
    color: var(--sfs-tenant-body-text, #242424) !important;
}

.sfs-title-accent {
    background: var(--sfs-tenant-accent, #C62828);
    border-radius: 14px;
    color: var(--sfs-tenant-title-text, #fff);
    padding: 12px 16px;
}

.sfs-title-accent .sfs-paragraph-title-text,
.sfs-title-accent .sfs-paragraph-title-subtitle,
.sfs-title-accent .sfs-paragraph-title-icon {
    color: var(--sfs-tenant-title-text, #fff) !important;
}

.sfs-title-light {
    background: var(--sfs-tenant-paragraph-background, #fff);
    border: 1px solid color-mix(in srgb, var(--sfs-tenant-body-text, #242424) 12%, transparent);
    border-radius: 14px;
    color: var(--sfs-tenant-body-text, #242424);
    padding: 12px 16px;
}

.sfs-title-light .sfs-paragraph-title-text,
.sfs-title-light .sfs-paragraph-title-subtitle,
.sfs-title-light .sfs-paragraph-title-icon {
    color: var(--sfs-tenant-body-text, #242424) !important;
}

.sfs-title-default {
    padding: 6px 0;
}

/* HERO TITLE MOBILE TUNING */
@media (max-width: 768px) {
    .sfs-title-hero {
        padding-top: 0;
        padding-bottom: 0;
    }

        .sfs-title-hero.sfs-paragraph-title {
            padding-top: 4px;
            padding-bottom: 4px;
        }
}

/* Compact titleOnly spacing */
.sfs-paragraph[data-sfs-variant="titleOnly"] .sfs-paragraph-inner {
    padding-top: 4px;
    padding-bottom: 4px;
    padding-left: 6px;
    padding-right: 6px;
}

@media (max-width: 768px) {
    .sfs-paragraph[data-sfs-variant="titleOnly"] .sfs-paragraph-inner {
        padding-top: 6px;
        padding-bottom: 6px;
        padding-left: 12px;
        padding-right: 12px;
    }
}

/* ============================================================
   PARAGRAPH EDIT UI
   ============================================================ */

/* Top-right command trigger */
.sfs-paragraph-command-trigger-wrap {
    position: absolute;
    top: 4px;
    right: 4px;
    z-index: 20;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    pointer-events: none;
    background: transparent;
    border: none;
    padding: 4px 6px;
    cursor: pointer;
    color: #666; /* stronger default */
    opacity: 0.65; /* visible but subtle */

    transition: opacity 0.15s ease, color 0.15s ease;
}

.sfs-paragraph-command-trigger {
    pointer-events: auto;
    width: 28px;
    height: 28px;
    
   
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
   
    color: #333;
    box-shadow: 0 2px 6px rgba(0,0,0,0.25);
    transition: background 120ms, box-shadow 120ms, transform 80ms;
}

    .sfs-paragraph-command-trigger i {
        font-size: 14px;
    }

    /* hover */

    .sfs-paragraph:hover .sfs-paragraph-command-trigger,
    .sfs-paragraph.sfs-edit-active .sfs-paragraph-command-trigger,
    .sfs-paragraph-command-trigger:hover,
    .sfs-paragraph-command-trigger:focus {
        background: #ffffff;
        box-shadow: 0 4px 10px rgba(0,0,0,0.35);
        transform: scale(1.05);
    }


    .sfs-paragraph-command-trigger i {
        font-size: 12px;
        line-height: 1;
    }

/* Action bar */
.sfs-paragraph-actions {
    display: none;
    width: 100%;
    max-width: 900px;
    margin: 8px auto 0 auto;
    padding: 0 6px;
    justify-content: center;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.sfs-paragraph.sfs-edit-active .sfs-paragraph-actions {
    display: flex;
}

.sfs-paragraph-actions .sfs-chip-icons {
    margin-left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

/* Active paragraph highlight */
.sfs-paragraph.sfs-edit-active {
    outline: 2px solid #4f8cff;
    outline-offset: 3px;
    background: rgba(79, 140, 255, 0.05);
}

/* Inline edit host */
.sfs-paragraph-edit {
    display: none;
    width: 100%;
    max-width: 900px;
    margin: 12px auto 0 auto;
    padding: 12px;
    text-align: center;
    background: #ffffff;
    border: 2px solid #4f8cff;
    border-radius: 10px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.10);
}

/* Delete confirm */
.sfs-paragraph-delete-confirm {
    text-align: center;
}

.sfs-paragraph-delete-confirm-buttons {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
    width: 100%;
}

    .sfs-paragraph-delete-confirm-buttons button {
        min-width: 90px;
        text-align: center;
    }

/* ============================================================
   SECTION / ACCORDION
   ============================================================ */

.sfs-document-section {
    position: relative;
    width: 100%;
}

.sfs-page-widget-order-controls {
    position: absolute;
    z-index: 40;
    top: .55rem;
    left: .55rem;
    display: inline-flex;
    gap: .35rem;
    padding: .3rem;
    border: 1px solid rgba(15, 23, 42, .14);
    border-radius: 999px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 4px 14px rgba(15, 23, 42, .14);
}

.sfs-page-widget-order-button {
    display: inline-grid;
    place-items: center;
    width: 2.2rem;
    height: 2.2rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #172033;
    cursor: pointer;
}

.sfs-page-widget-order-button:hover,
.sfs-page-widget-order-button:focus-visible {
    background: #e2e8f0;
    outline: none;
}

.sfs-page-widget-order-button:focus-visible {
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .24);
}

.sfs-page-widget-order-button:disabled {
    opacity: .28;
    cursor: default;
    background: transparent;
}

@media (max-width: 720px) {
    .sfs-page-widget-order-controls {
        top: .35rem;
        left: .35rem;
    }
}

.sfs-document-archive-tabs {
    width: 100%;
}

.sfs-document-archive-tablist {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin: 18px 0;
    flex-wrap: wrap;
}

.sfs-document-archive-tab {
    border: 1px solid rgba(0, 0, 0, 0.14);
    border-radius: 999px;
    background: #fff;
    color: #111827;
    cursor: pointer;
    font: inherit;
    font-weight: 650;
    padding: 9px 18px;
}

.sfs-document-archive-tab.is-active {
    background: #111827;
    border-color: #111827;
    color: #fff;
}

.sfs-document-archive-panel {
    width: 100%;
}

.sfs-document-archive-controls {
    display: grid;
    justify-items: center;
    gap: 8px;
    margin: 12px auto 20px;
    padding: 14px;
}

.sfs-document-archive-date-label {
    display: grid;
    gap: 7px;
    width: min(100%, 440px);
    color: #374151;
    font-weight: 750;
}

.sfs-document-archive-date-select {
    width: 100%;
    min-height: 44px;
    border: 1px solid rgba(17, 24, 39, 0.2);
    border-radius: 10px;
    background: #fff;
    color: #111827;
    font: inherit;
    padding: 9px 12px;
}

.sfs-document-archive-status {
    min-height: 1.4em;
    margin: 0;
    color: #6b7280;
    text-align: center;
}

.sfs-document-archive-status.is-error {
    color: #b91c1c;
}

.sfs-document-archive-content {
    width: 100%;
}

.sfs-document-archive-empty {
    color: #6b7280;
    font-style: italic;
    padding: 18px;
    text-align: center;
}

.sfs-document-archive-year {
    width: 100%;
}

.sfs-document-archive-year-title {
    color: #111827;
    font-size: clamp(1.35rem, 2.5vw, 2rem);
    margin: 22px 0 12px;
    text-align: center;
}

.sfs-document-section-top,
.sfs-document-section-body {
    width: 100%;
}

.sfs-section-title-row {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    min-height: 0;
}

.sfs-section-title-copy {
    flex: 1 1 auto;
    min-width: 0;
}

.sfs-section-engagement {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 6px;
    width: 100%;
    margin: 6px 0 8px auto;
    padding: 0;
}

.sfs-section-engagement-under-title {
    flex-wrap: nowrap;
    width: 100%;
    margin: 2px 0 10px auto;
}

.sfs-section-engagement-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-width: 36px;
    min-height: 30px;
    border: 1px solid rgba(17, 24, 39, 0.14);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    color: #111827;
    cursor: pointer;
    font: inherit;
    font-size: 0.82rem;
    font-weight: 800;
    line-height: 1;
    padding: 7px 10px;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

.sfs-section-engagement-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.1em;
    font-size: 1rem;
    line-height: 1;
}

.sfs-section-engagement-button:hover:not(:disabled),
.sfs-section-engagement-button:focus-visible {
    border-color: rgba(37, 99, 235, 0.36);
    background: #eff6ff;
    color: #1d4ed8;
    transform: translateY(-1px);
}

.sfs-section-engagement-button.is-selected {
    border-color: #111827;
    background: #111827;
    color: #ffffff;
}

.sfs-section-engagement-button:disabled {
    cursor: not-allowed;
    opacity: 0.48;
}

.sfs-section-engagement-count {
    min-width: 0.8em;
    color: inherit;
    font-size: 0.78rem;
    opacity: 0.72;
}

.sfs-section-engagement-status {
    flex: 1 1 100%;
    min-height: 1em;
    color: #64748b;
    font-size: 0.78rem;
    line-height: 1.2;
    text-align: center;
}

.sfs-section-engagement-under-title .sfs-section-engagement-status {
    display: none;
}

.sfs-section-title-row-locked {
    cursor: default;
}

@media (max-width: 640px) {
    .sfs-section-engagement-under-title {
        flex-wrap: wrap;
        margin: 4px 0 0;
    }
}

/* Document sub-sections, newspaper taxonomy and direct links */
.sfs-subsection-settings {
    display: grid;
    gap: 14px;
    margin-top: 16px;
    padding: 16px;
    border: 1px solid #dbe2ea;
    border-radius: 14px;
    background: #f8fafc;
    color: #172033;
}

.sfs-subsection-settings-heading {
    display: grid;
    gap: 3px;
}

.sfs-subsection-settings-heading span,
.sfs-subsection-bookmark-preview {
    color: #64748b;
    font-size: .82rem;
    overflow-wrap: anywhere;
}

.sfs-subsection-settings-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.sfs-subsection-settings-field {
    display: grid;
    gap: 6px;
    font-size: .86rem;
    font-weight: 700;
}

.sfs-subsection-settings-field input,
.sfs-subsection-settings-field select,
.sfs-subsection-settings-field textarea {
    box-sizing: border-box;
    width: 100%;
    min-height: 42px;
    padding: 8px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 9px;
    background: #fff;
    color: inherit;
    font: inherit;
    font-weight: 500;
}

.sfs-subsection-settings-field textarea {
    min-height: 108px;
    line-height: 1.45;
    resize: vertical;
}

.sfs-subsection-settings-field-wide {
    grid-column: 1 / -1;
}

.sfs-subsection-settings-help {
    color: #64748b;
    font-size: .78rem;
    font-weight: 500;
}

.sfs-subsection-toggle-field,
.sfs-subsection-settings-toggles {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    align-items: center;
    font-size: .86rem;
    font-weight: 700;
}

.sfs-subsection-topic-fieldset {
    grid-column: 1 / -1;
    margin: 0;
    padding: 0;
    border: 0;
}

.sfs-subsection-topic-fieldset legend {
    margin-bottom: 8px;
    font-size: .86rem;
    font-weight: 700;
}

.sfs-subsection-topic-list,
.sfs-subsection-settings-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.sfs-subsection-topic-list label {
    position: relative;
    cursor: pointer;
}

.sfs-subsection-topic-list input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.sfs-subsection-topic-list span {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 4px 11px;
    border: 1px solid #cbd5e1;
    border-radius: 999px;
    background: #fff;
    font-size: .82rem;
    font-weight: 700;
}

.sfs-subsection-topic-list input:checked + span {
    border-color: var(--sfs-tag-color, #1d4ed8);
    background: color-mix(in srgb, var(--sfs-tag-color, #1d4ed8) 13%, #fff);
    color: #0f172a;
}

.sfs-subsection-settings-status {
    padding: 10px 12px;
    border-radius: 9px;
    background: #eef2ff;
    color: #3730a3;
    font-size: .88rem;
}

.sfs-subsection-settings-status.is-error {
    background: #fef2f2;
    color: #991b1b;
}

.sfs-section-title-copy {
    min-width: 0;
}

.sfs-subsection-tag-list {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 5px;
    margin: 6px 8px 0 0;
    vertical-align: middle;
}

.sfs-subsection-tag {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 2px 8px;
    border: 1px solid color-mix(in srgb, var(--sfs-tag-color, #64748b) 40%, transparent);
    border-radius: 999px;
    background: color-mix(in srgb, var(--sfs-tag-color, #64748b) 11%, #fff);
    color: #334155;
    font-size: .68rem;
    font-weight: 750;
    letter-spacing: .02em;
    line-height: 1.2;
}

.sfs-subsection-permalink {
    display: inline-grid;
    width: 30px;
    height: 30px;
    margin-left: 7px;
    padding: 0;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #64748b;
    cursor: pointer;
    font-family: inherit;
    font-size: .92rem;
    font-weight: 800;
    line-height: 1;
    vertical-align: middle;
}

.sfs-subsection-title-with-share {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) 36px;
    align-items: center;
    width: 100%;
}

.sfs-subsection-title-with-share > .sfs-paragraph-title-copy {
    grid-column: 2;
    min-width: 0;
}

.sfs-subsection-title-with-share > .sfs-subsection-share {
    grid-column: 3;
    justify-self: end;
}

.sfs-subsection-permalink svg {
    width: 19px;
    height: 19px;
    overflow: visible;
    fill: currentColor;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.sfs-subsection-permalink svg circle {
    fill: currentColor;
    stroke: none;
}

.sfs-subsection-permalink svg path {
    fill: none;
}

.sfs-subsection-permalink:hover,
.sfs-subsection-permalink:focus-visible {
    background: #e2e8f0;
    color: #0f172a;
    outline: none;
}

.sfs-subsection-share {
    position: relative;
    display: inline-flex;
    vertical-align: middle;
}

.sfs-subsection-share-menu {
    position: absolute;
    z-index: 20;
    top: calc(100% + 6px);
    right: 0;
    min-width: 220px;
    padding: 6px;
    border: 1px solid #dbe2ea;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(15, 23, 42, .16);
}

.sfs-subsection-share-menu[hidden] { display: none; }

.sfs-subsection-share-menu button,
.sfs-subsection-share-menu a {
    display: block;
    box-sizing: border-box;
    width: 100%;
    padding: 8px 10px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: #172033;
    cursor: pointer;
    font: inherit;
    font-size: .82rem;
    font-weight: 700;
    text-align: left;
    text-decoration: none;
}

.sfs-subsection-share-menu button:hover,
.sfs-subsection-share-menu a:hover { background: #f1f5f9; }

.sfs-subsection-share-menu .sfs-share-whatsapp {
    color: #128c4a;
}

.sfs-subsection-share-menu .sfs-share-facebook {
    color: #1877f2;
}

.sfs-document-tag-filter {
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 8px;
    margin: 16px auto;
}

.sfs-document-tag-filter-toggle {
    position: relative;
    display: inline-grid;
    width: 42px;
    height: 42px;
    padding: 9px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: rgba(248, 250, 252, .96);
    color: #334155;
    cursor: pointer;
    place-items: center;
}

.sfs-document-tag-filter-toggle:hover,
.sfs-document-tag-filter-toggle:focus-visible,
.sfs-document-tag-filter-toggle.is-active {
    border-color: #64748b;
    color: #1d4ed8;
    outline: none;
}

.sfs-document-tag-filter-toggle svg {
    width: 22px;
    height: 22px;
    fill: currentColor;
}

.sfs-document-tag-filter-count {
    position: absolute;
    top: -6px;
    right: -6px;
    min-width: 19px;
    height: 19px;
    padding: 0 5px;
    border: 2px solid #fff;
    border-radius: 999px;
    background: #1d4ed8;
    color: #fff;
    font-size: .68rem;
    font-weight: 800;
    line-height: 15px;
    text-align: center;
}

.sfs-document-tag-filter-panel {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px 14px;
    padding: 12px 14px;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: rgba(248, 250, 252, .96);
    color: #172033;
}

.sfs-document-tag-filter-panel[hidden],
.sfs-document-tag-filter-count[hidden] {
    display: none !important;
}

.sfs-document-tag-filter-heading {
    margin-right: 2px;
    font-size: .9rem;
    font-weight: 800;
}

.sfs-document-tag-filter-group {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
}

.sfs-document-tag-filter-label {
    margin-right: 2px;
    color: #64748b;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.sfs-document-tag-filter-panel button {
    min-height: 32px;
    padding: 4px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 999px;
    background: #fff;
    color: #334155;
    cursor: pointer;
    font-family: inherit;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.2;
}

.sfs-document-tag-filter-panel button:hover,
.sfs-document-tag-filter-panel button:focus-visible {
    border-color: var(--sfs-tag-color, #64748b);
    outline: none;
}

.sfs-document-tag-filter-panel button.is-active {
    border-color: var(--sfs-tag-color, #1d4ed8);
    background: color-mix(in srgb, var(--sfs-tag-color, #1d4ed8) 14%, #fff);
    color: #0f172a;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--sfs-tag-color, #1d4ed8) 24%, transparent);
}

.sfs-document-section-filter-empty {
    display: none !important;
}

.sfs-subsection-bookmark-target {
    animation: sfs-subsection-bookmark-pulse 2.2s ease-out;
    scroll-margin-top: 96px;
}

@keyframes sfs-subsection-bookmark-pulse {
    0%, 35% { box-shadow: 0 0 0 5px rgba(37, 99, 235, .24); }
    100% { box-shadow: 0 0 0 12px rgba(37, 99, 235, 0); }
}

@media (max-width: 700px) {
    .sfs-subsection-settings-form {
        grid-template-columns: 1fr;
    }

    .sfs-document-tag-filter {
        align-items: flex-end;
        flex-direction: column;
    }

    .sfs-document-tag-filter-panel {
        align-items: flex-start;
        flex-direction: column;
        width: 100%;
    }

    .sfs-document-tag-filter-group {
        width: 100%;
    }
}

.sfs-shared-section-source-line {
    margin: 18px 0 0;
    color: #bd352f;
    font-size: clamp(0.85rem, 0.95vw, 0.95rem);
    font-weight: 500;
    line-height: 1.35;
    text-align: right;
}

.sfs-shared-section-source-line a {
    color: inherit;
    text-decoration: none;
}

.sfs-shared-section-source-line a:hover {
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* hidden: collapse/expand now handled by click on title */
.sfs-section-toggle {
    display: none !important;
}

.sfs-tab-widget-section[data-sfs-tab-widget-display="list"]
    > .sfs-document-section-body
    > .sfs-tab-widget-panel[data-sfs-allow-collapse="1"]
    > .sfs-document-section-top .sfs-section-toggle {
    position: absolute;
    top: 50%;
    right: .75rem;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    transform: translateY(-50%);
    border: 0;
    border-radius: 999px;
    z-index: 2;
    color: var(--sfs-list-title-text, var(--sfs-tenant-title-text, #fff));
    background: color-mix(in srgb, currentColor 10%, transparent);
    font: inherit;
    font-size: 1rem;
    cursor: pointer;
}

.sfs-tab-widget-section[data-sfs-tab-widget-display="list"]
    > .sfs-document-section-body
    > .sfs-tab-widget-panel[data-sfs-allow-collapse="1"]
    > .sfs-document-section-top .sfs-paragraph-title {
    padding-right: 0;
    cursor: pointer;
}

.sfs-tab-widget-section[data-sfs-tab-widget-display="list"]
    > .sfs-document-section-body
    > .sfs-tab-widget-panel[data-sfs-allow-collapse="1"]
    > .sfs-document-section-top .sfs-paragraph-title-text {
    padding-inline: 3.25rem;
}

/* ============================================================
   ADD PICKER
   ============================================================ */

.sfs-paragraph-add-picker {
    margin-top: 12px;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 10px;
    background: #fff;
}

.sfs-paragraph-add-picker-title {
    font-weight: 600;
    margin-bottom: 10px;
}

.sfs-paragraph-add-picker-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
}

.sfs-page-btn-add-option {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.sfs-add-option-icon {
    display: inline-block;
    min-width: 16px;
    text-align: center;
}

.sfs-paragraph-add-picker-footer {
    margin-top: 12px;
    text-align: center;
}

.sfs-scroll-target {
    animation: sfsScrollTargetFlash 2.2s ease;
}

.sfs-document-section-body .sfs-paragraph[id] {
    scroll-margin-top: clamp(160px, 24vh, 260px);
}

@keyframes sfsScrollTargetFlash {
    0% {
        box-shadow: 0 0 0 0 rgba(255, 204, 0, 0.0);
    }

    20% {
        box-shadow: 0 0 0 6px rgba(255, 204, 0, 0.35);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(255, 204, 0, 0.0);
    }
}

/* =====================================================
   DOCUMENT EDIT MODE STRIP
   ===================================================== */

.sfs-document-editor-bar {
    width: 100%;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 18px;
    margin: 0 0 20px 0;
    background: #f3f4f6;
    color: #222;
    border-radius: 0;
}

.sfs-document-editor-bar-edit {
    background: #1f7a3d; /* green */
    color: #ffffff;
}

.sfs-document-editor-bar-left,
.sfs-document-editor-bar-right {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.sfs-document-editor-bar-left {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
}

.sfs-document-editor-title {
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: inherit;
}

.sfs-document-editor-meta {
    font-size: 13px;
    line-height: 1.4;
    color: inherit;
    opacity: 0.95;
}

/* buttons inside strip */
.sfs-document-editor-bar .sfs-page-btn,
.sfs-document-editor-bar .sfs-page-btn-add {
    background: rgba(255,255,255,0.14);
    color: #ffffff;
    border: 1px solid rgba(255,255,255,0.35);
}

    .sfs-document-editor-bar .sfs-page-btn:hover,
    .sfs-document-editor-bar .sfs-page-btn-add:hover {
        background: rgba(255,255,255,0.22);
        border-color: rgba(255,255,255,0.5);
    }

/* published/view mode can stay more neutral */
.sfs-document:not([data-sfs-edit-mode="1"]) .sfs-document-editor-bar {
    background: #f3f4f6;
    color: #222;
}

    .sfs-document:not([data-sfs-edit-mode="1"]) .sfs-document-editor-bar .sfs-page-btn,
    .sfs-document:not([data-sfs-edit-mode="1"]) .sfs-document-editor-bar .sfs-page-btn-add {
        background: #ffffff;
        color: #222;
        border: 1px solid rgba(0,0,0,0.12);
    }

.sfs-document:not([data-sfs-edit-mode="1"]) .sfs-document-editor-bar .sfs-document-enter-edit-button {
    background: #1f7a3d;
    color: #ffffff;
    border-color: #1f7a3d;
    font-weight: 700;
}

.sfs-document:not([data-sfs-edit-mode="1"]) .sfs-document-editor-bar .sfs-document-enter-edit-button:hover {
    background: #176331;
    border-color: #176331;
}
.sfs-form-block--profile-base {
    width: 100%;
    display: flex;
    justify-content: center;
}

.sfs-form-block--profile-base > .sfs-form {
    width: min(100%, 440px);
    margin-inline: auto;
}

.sfs-paragraph-add-picker-group {
    flex: 1 0 100%;
    margin-top: 6px;
    padding-top: 8px;
    border-top: 1px solid #e2e8f0;
    color: #64748b;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-align: left;
    text-transform: uppercase;
}

.sfs-document-settings-modal {
    position: fixed;
    z-index: 10000;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(15, 23, 42, .55);
}

.sfs-document-settings-dialog {
    box-sizing: border-box;
    width: min(760px, 100%);
    max-height: calc(100vh - 40px);
    overflow: auto;
    padding: 20px;
    border-radius: 16px;
    background: #fff;
    color: #172033;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .28);
}

.sfs-document-settings-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.sfs-document-settings-head > div { display: grid; gap: 3px; }
.sfs-document-settings-head span { color: #64748b; font-size: .84rem; }
.sfs-document-settings-head button { border: 0; background: transparent; cursor: pointer; font-size: 1.6rem; }
.sfs-document-settings-dialog > .sfs-page-btn { margin-top: 18px; }

.sfs-document-settings-modal .sfs-document-settings-dialog {
    width: min(900px, 100%);
}

.sfs-document-settings-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.sfs-document-settings-section,
.sfs-document-settings-form > .sfs-subsection-topic-fieldset {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    min-width: 0;
    margin: 0;
    padding: 14px;
    border: 1px solid #dbe4ee;
    border-radius: 12px;
    background: #f8fafc;
}

.sfs-document-settings-section > legend,
.sfs-document-settings-form > .sfs-subsection-topic-fieldset > legend {
    padding: 0 7px;
    color: #1e293b;
    font-weight: 850;
}

.sfs-document-settings-section[hidden],
.sfs-document-settings-form > .sfs-subsection-topic-fieldset[hidden] {
    display: none !important;
}

.sfs-document-settings-section > .sfs-document-quick-settings-note,
.sfs-document-settings-section > .sfs-document-settings-connected {
    grid-column: 1 / -1;
}

.sfs-document-widget-library-intro,
.sfs-document-widget-library-grid,
.sfs-document-widget-library-status,
.sfs-document-widget-library-refresh {
    grid-column: 1 / -1;
}

.sfs-document-widget-library-intro {
    margin: 0;
    color: #475569;
    font-size: .9rem;
    line-height: 1.45;
}

.sfs-document-widget-library-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.sfs-document-widget-library-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    min-width: 0;
    padding: 12px;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    background: #fff;
}

.sfs-document-widget-library-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: #e8eefc;
    font-size: 1.25rem;
}

.sfs-document-widget-library-copy {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.sfs-document-widget-library-copy strong {
    color: #172033;
    font-size: .95rem;
}

.sfs-document-widget-library-copy code {
    width: fit-content;
    padding: 1px 5px;
    border-radius: 5px;
    background: #eef2f7;
    color: #475569;
    font-size: .72rem;
}

.sfs-document-widget-library-actions {
    display: flex;
    align-items: center;
    gap: 7px;
}

.sfs-document-widget-library-actions > .sfs-page-btn {
    align-self: center;
    white-space: nowrap;
}

.sfs-document-widget-library-info-button {
    border-color: #cbd5e1;
    background: #fff;
    color: #334155;
}

.sfs-document-widget-library-info-button[aria-expanded="true"] {
    border-color: #94a3b8;
    background: #eef2f7;
}

.sfs-document-widget-library-info {
    grid-column: 1 / -1;
    padding: 11px 13px;
    border: 1px solid #dbe3ec;
    border-radius: 9px;
    background: #f8fafc;
    color: #334155;
    font-size: .82rem;
    line-height: 1.45;
}

.sfs-document-widget-library-info[hidden] {
    display: none;
}

.sfs-document-widget-library-info p {
    margin: 0 0 7px;
    font-weight: 700;
}

.sfs-document-widget-library-info ul {
    margin: 0;
    padding-left: 19px;
}

.sfs-document-widget-library-info li + li {
    margin-top: 4px;
}

.sfs-document-widget-library-status {
    min-height: 1.25rem;
    color: #166534;
    font-size: .85rem;
    font-weight: 700;
}

.sfs-document-widget-library-status.is-error {
    color: #b91c1c;
}

.sfs-document-widget-library-refresh {
    justify-self: start;
}

@media (max-width: 720px) {
    .sfs-document-settings-form,
    .sfs-document-settings-section,
    .sfs-document-settings-form > .sfs-subsection-topic-fieldset {
        grid-template-columns: 1fr;
    }

    .sfs-document-widget-library-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .sfs-document-widget-library-actions {
        grid-column: 1 / -1;
        width: 100%;
    }

    .sfs-document-widget-library-actions > .sfs-page-btn-add {
        flex: 1;
    }
}

.sfs-form-block--unsupported {
    width: 100%;
}

.sfs-form-block-unsupported-card {
    padding: 14px 16px;
    border: 1px dashed rgba(120, 84, 24, 0.45);
    border-radius: 10px;
    background: rgba(255, 247, 224, 0.82);
    color: #624817;
}

.sfs-form-block-unsupported-card p {
    margin: 5px 0 0;
    font-size: 0.9rem;
}

.sfs-join-privacy-notice .sfs-paragraph-body {
    width: min(100%, 440px);
    margin-inline: auto;
    text-align: center;
}

.sfs-system-login {
    width: 100%;
    display: flex;
    justify-content: center;
    padding: 24px 16px;
}

.sfs-system-login .sfs-login-box {
    width: min(100%, 440px);
    max-width: 440px;
}

.sfs-login-privacy {
    margin: 4px 0 12px;
    font-size: 0.9rem;
    line-height: 1.45;
    text-align: center;
}

.sfs-document-quick-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    width: min(100%, 900px);
    margin: 8px auto;
    padding: 0 6px;
}

.sfs-document-quick-actions-main {
    grid-column: 2;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 0;
}

.sfs-document-quick-actions-settings {
    grid-column: 3;
    justify-self: end;
    display: flex;
    justify-content: flex-end;
    min-width: 42px;
}

.sfs-document-quick-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border: 1px solid rgba(17,24,39,.14);
    border-radius: 999px;
    background: #ffffff;
    color: #111827;
    padding: 9px 13px;
    font-weight: 850;
    box-shadow: 0 8px 22px rgba(17,24,39,.08);
}

.sfs-document-quick-action-icon {
    display: inline-grid;
    place-items: center;
    line-height: 1;
}

.sfs-document-quick-action-label {
    min-width: 0;
}

.sfs-document-quick-action-weather {
    background: #eff6ff;
    border-color: rgba(37,99,235,.22);
    color: #1d4ed8;
}

.sfs-document-quick-action-health {
    background: #fff1f2;
    border-color: rgba(225,29,72,.22);
    color: #9f1239;
}

.sfs-document-quick-action-mood {
    background: #fff7ed;
    border-color: rgba(249,115,22,.28);
    color: #9a3412;
}

.sfs-document-quick-action-featured {
    position: relative;
    min-width: 176px;
    min-height: 52px;
    padding-inline: 24px;
    border-color: rgba(249,115,22,.48);
    background: #ffedd5;
    font-size: 1.06rem;
    box-shadow: 0 14px 32px rgba(154,52,18,.18);
}

.sfs-document-quick-action-featured::before,
.sfs-document-quick-action-featured::after {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #c2410c;
    font-size: 2rem;
    font-weight: 950;
    line-height: 1;
    text-shadow: 0 0 10px rgba(249, 115, 22, .45);
    animation: sfs-mood-focus-arrow-flash 1.15s ease-in-out infinite;
}

.sfs-document-quick-action-featured::before {
    content: "\2192";
}

.sfs-document-quick-action-featured::after {
    content: "\2190";
    animation-delay: .2s;
}

.sfs-document-quick-action-featured .sfs-document-quick-action-icon {
    font-size: 1.34em;
}

@keyframes sfs-mood-focus-arrow-flash {
    0%, 100% {
        opacity: .62;
        transform: scale(.9);
        filter: drop-shadow(0 0 0 rgba(249, 115, 22, 0));
    }

    50% {
        opacity: 1;
        transform: scale(1.18);
        filter: drop-shadow(0 0 8px rgba(249, 115, 22, .75));
    }
}

@media (prefers-reduced-motion: reduce) {
    .sfs-document-quick-action-featured::before,
    .sfs-document-quick-action-featured::after {
        animation: none;
        opacity: 1;
        transform: none;
    }
}

.sfs-document-quick-action-photo {
    background: #ecfdf5;
    border-color: rgba(16,185,129,.24);
    color: #047857;
}

.sfs-document-quick-action-text,
.sfs-document-quick-action-soft {
    background: #f5f3ff;
    border-color: rgba(124,58,237,.24);
    color: #5b21b6;
}

.sfs-document-mood-options {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 10px;
    margin-top: 10px;
}

.sfs-document-mood-option {
    width: 100%;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    border: 1px solid rgba(154,52,18,.18);
    border-radius: 14px;
    background: #fff;
    color: #111827;
    padding: 10px 12px;
    text-align: left;
    font-weight: 850;
    box-shadow: 0 5px 14px rgba(154,52,18,.08);
}

.sfs-document-mood-option-icon {
    font-size: 1.35rem;
    line-height: 1;
}

.sfs-document-mood-option-text {
    min-width: 0;
    display: grid;
    gap: 2px;
}

.sfs-document-mood-option-text strong {
    line-height: 1.12;
    overflow-wrap: anywhere;
}

.sfs-document-mood-option-text small {
    color: #64748b;
    font-size: .78rem;
    font-weight: 750;
    line-height: 1.22;
    overflow-wrap: anywhere;
}

.sfs-document-mood-option-heat {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    height: 34px;
    border-radius: 999px;
    background: #fff7ed;
    color: #9a3412;
    font-weight: 950;
}

.sfs-document-mood-option.is-selected {
    background: #f97316;
    border-color: #f97316;
    color: #fff;
}

.sfs-document-mood-option.is-selected .sfs-document-mood-option-text small,
.sfs-document-mood-option.is-selected .sfs-document-mood-option-heat {
    background: rgba(255,255,255,.18);
    color: #fff;
}

.sfs-document-mood-summary {
    display: grid;
    gap: 7px;
    margin-top: 12px;
    color: #6b7280;
}

.sfs-document-mood-row {
    display: grid;
    grid-template-columns: minmax(120px, 180px) minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    color: #374151;
    font-size: .9rem;
}

.sfs-document-mood-track {
    height: 9px;
    border-radius: 999px;
    background: rgba(251,191,36,.25);
    overflow: hidden;
}

.sfs-document-mood-track span {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: #f97316;
}

.sfs-document-barometer-widget {
    display: grid;
    gap: 10px;
    width: min(100%, 760px);
    margin: 0 auto;
}

.sfs-document-barometer-widget-muted {
    opacity: .72;
}

.sfs-paragraph-barometer-hidden {
    display: none;
}

.sfs-document-barometer-vote-row {
    display: flex;
    justify-content: center;
    width: 100%;
}

.sfs-document-barometer-vote {
    min-width: 150px;
}

.sfs-document-barometer-display {
    min-width: 0;
}

.sfs-document-barometer-result-gate {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 64px;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 8px;
    background: #f8fafc;
    color: #111827;
    font: inherit;
    font-weight: 900;
    text-align: center;
    padding: 14px 18px;
}

button.sfs-document-barometer-result-gate {
    cursor: pointer;
}

button.sfs-document-barometer-result-gate:hover,
button.sfs-document-barometer-result-gate:focus-visible {
    border-color: rgba(234, 88, 12, .36);
    background: #fff7ed;
    outline: none;
}

.sfs-document-under-hero-barometers {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr));
    gap: 12px;
    width: min(100%, 920px);
    margin: 8px auto 14px;
    padding: 0 8px;
}

.sfs-document-under-hero-barometer {
    min-width: 0;
}

.sfs-document-barometer-settings {
    display: grid;
    gap: 10px;
    margin-top: 12px;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 10px;
    background: #f8fafc;
    padding: 12px;
}

.sfs-document-barometer-settings-title {
    color: #334155;
    font-size: .8rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.sfs-document-barometer-settings-field,
.sfs-document-barometer-settings-toggle {
    display: grid;
    gap: 6px;
    color: #111827;
    font-size: .92rem;
    font-weight: 750;
}

.sfs-document-barometer-settings-toggle {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: 8px;
    background: #fff;
    padding: 8px 10px;
}

.sfs-document-barometer-settings-field select,
.sfs-document-barometer-settings-field input {
    width: 100%;
    border: 1px solid rgba(15, 23, 42, .16);
    border-radius: 8px;
    background: #fff;
    padding: 8px 10px;
    font-size: 16px;
}

.sfs-document-barometer-settings-status {
    min-height: 18px;
    color: #64748b;
    font-size: .86rem;
}

.sfs-document-barometer-settings-actions {
    display: flex;
    justify-content: flex-end;
}

.sfs-document-quick-action-settings {
    width: 42px;
    height: 42px;
    padding: 0;
}

.sfs-document-quick-action:disabled,
.sfs-document-quick-action-disabled {
    opacity: .45;
    cursor: not-allowed;
}

@media (max-width: 640px) {
    .sfs-document-quick-actions {
        grid-template-columns: minmax(42px, 1fr) minmax(0, auto) minmax(42px, 1fr);
        gap: 7px;
        width: min(100%, 460px);
    }

    .sfs-document-quick-actions-main {
        gap: 7px;
    }

    .sfs-document-quick-action {
        width: 44px;
        min-width: 44px;
        height: 44px;
        padding: 0;
        font-size: 20px;
    }

    .sfs-document-quick-action-featured {
        flex-basis: min(100%, 500px);
        width: min(100%, 500px);
        max-width: 500px;
        min-width: min(100%, 260px);
        height: 60px;
        padding-inline: 18px;
        font-size: 18px;
    }

    .sfs-document-quick-action-featured .sfs-document-quick-action-icon {
        font-size: 1.42em;
    }

    .sfs-document-quick-action-label {
        display: none;
    }

    .sfs-document-quick-action-featured .sfs-document-quick-action-label {
        display: inline;
        max-width: min(320px, 62vw);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .sfs-document-barometer-vote-row {
        padding-inline: 8px;
    }

    .sfs-document-barometer-vote-row .sfs-document-quick-action {
        width: min(100%, 500px);
        max-width: 500px;
        min-width: min(100%, 260px);
        height: 56px;
        padding-inline: 18px;
        font-size: 18px;
    }

    .sfs-document-barometer-vote-row .sfs-document-quick-action-icon {
        font-size: 1.42em;
    }

    .sfs-document-barometer-vote-row .sfs-document-quick-action-label {
        display: inline;
        max-width: min(340px, 64vw);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

.sfs-document-quick-modal {
    position: fixed;
    inset: 0;
    z-index: 10020;
    display: grid;
    place-items: center;
    padding: 18px;
    background: rgba(15,23,42,.42);
    overflow-y: auto;
    overscroll-behavior: contain;
}

html.sfs-quick-action-modal-open,
body.sfs-quick-action-modal-open {
    overscroll-behavior: none;
}

.sfs-document-quick-dialog {
    width: min(100%, 460px);
    max-height: calc(100vh - 36px);
    max-height: calc(100dvh - 36px);
    box-sizing: border-box;
    display: grid;
    gap: 14px;
    border-radius: 18px;
    background: #ffffff;
    color: #111827;
    padding: 18px;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
    box-shadow: 0 22px 60px rgba(15,23,42,.28);
}

.sfs-document-quick-dialog h3 {
    margin: 0;
    font-size: 1.15rem;
}

.sfs-document-mood-dialog {
    width: min(100%, 820px);
    touch-action: pan-y;
}

.sfs-document-settings-dialog {
    width: min(100%, 520px);
    gap: 12px;
}

.sfs-document-quick-settings-list {
    display: grid;
    gap: 12px;
}

.sfs-document-quick-settings-group {
    display: grid;
    gap: 6px;
}

.sfs-document-quick-settings-group + .sfs-document-quick-settings-group {
    border-top: 1px solid rgba(17,24,39,.08);
    padding-top: 12px;
}

.sfs-document-quick-settings-title {
    color: #475569;
    font-size: .78rem;
    font-weight: 850;
    letter-spacing: 0;
    text-transform: uppercase;
}

.sfs-document-quick-settings-note {
    margin: 0;
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: 8px;
    background: #f8fafc;
    color: #475569;
    padding: 8px 10px;
    font-size: .9rem;
    font-weight: 700;
    line-height: 1.35;
}

.sfs-document-settings-dialog .sfs-document-quick-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 40px;
    border: 1px solid rgba(17,24,39,.12);
    border-radius: 8px;
    background: #ffffff;
    padding: 8px 10px;
}

.sfs-document-settings-dialog .sfs-document-quick-toggle span {
    min-width: 0;
    overflow: hidden;
    color: #111827;
    font-size: .94rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sfs-document-settings-dialog .sfs-document-quick-toggle input {
    flex: 0 0 auto;
    position: relative;
    width: 42px;
    height: 24px;
    margin: 0;
    border: 0;
    border-radius: 999px;
    appearance: none;
    background: #cbd5e1;
    cursor: pointer;
    transition: background 0.16s ease;
}

.sfs-document-settings-dialog .sfs-document-quick-toggle input::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #ffffff;
    box-shadow: 0 1px 3px rgba(15,23,42,.24);
    transition: transform 0.16s ease;
}

.sfs-document-settings-dialog .sfs-document-quick-toggle input:checked {
    background: #2563eb;
}

.sfs-document-settings-dialog .sfs-document-quick-toggle input:checked::after {
    transform: translateX(18px);
}

.sfs-document-settings-dialog .sfs-document-quick-toggle input:focus-visible {
    outline: 2px solid rgba(37,99,235,.35);
    outline-offset: 2px;
}

.sfs-document-settings-dialog .sfs-document-quick-select {
    display: grid;
    gap: 6px;
    min-height: 40px;
    border: 1px solid rgba(17,24,39,.12);
    border-radius: 8px;
    background: #ffffff;
    padding: 8px 10px;
}

.sfs-document-settings-dialog .sfs-document-quick-select span {
    color: #111827;
    font-size: .94rem;
    font-weight: 700;
}

.sfs-document-settings-dialog .sfs-document-quick-select select {
    width: 100%;
    border: 1px solid rgba(17,24,39,.16);
    border-radius: 8px;
    padding: 9px 10px;
    background: #ffffff;
    font-size: 16px;
}

.sfs-document-quick-toggle,
.sfs-document-weather-dialog form,
.sfs-document-weather-dialog label {
    display: grid;
    gap: 8px;
}

.sfs-document-weather-dialog input,
.sfs-document-weather-dialog select,
.sfs-document-photo-dialog input,
.sfs-document-photo-dialog textarea,
.sfs-document-text-dialog textarea {
    width: 100%;
    border: 1px solid rgba(17,24,39,.16);
    border-radius: 12px;
    padding: 10px 12px;
    font-size: 16px;
}

.sfs-document-photo-dialog form,
.sfs-document-photo-dialog label,
.sfs-document-text-dialog form,
.sfs-document-text-dialog label {
    display: grid;
    gap: 8px;
}

.sfs-paragraph-image-caption {
    margin-top: 8px;
    color: #475569;
    font-size: .92rem;
    text-align: center;
}

.sfs-quick-photo-block .sfs-paragraph-image-only-img {
    border-radius: 18px;
    box-shadow: 0 12px 34px rgba(15,23,42,.12);
}

.sfs-document-weather-status {
    color: #475569;
    line-height: 1.4;
}

.sfs-document-quick-dialog-actions {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
}

.sfs-document-quick-dialog-actions button {
    border: 0;
    border-radius: 999px;
    background: #111827;
    color: #ffffff;
    padding: 10px 14px;
    font-weight: 850;
}

.sfs-weather-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.25em;
    height: 1.25em;
    margin-inline: 0.12em;
    vertical-align: -0.12em;
    font-weight: 900;
}

.sfs-weather-icon-sunny {
    color: #facc15;
    text-shadow: 0 0 0 #f59e0b, 0 1px 2px rgba(245, 158, 11, 0.35);
    filter: drop-shadow(0 0 3px rgba(250, 204, 21, 0.55));
}

.sfs-weather-icon-cloudy {
    color: #cbd5e1;
    text-shadow: 0 1px 2px rgba(15, 23, 42, .16);
    filter: drop-shadow(0 0 2px rgba(148, 163, 184, .35));
}

.sfs-weather-container h3 {
    margin: 0 0 10px;
    font-size: 1.05rem;
}

.sfs-weather-row {
    display: grid;
    grid-template-columns: minmax(120px, 1fr) auto minmax(170px, 1.4fr);
    gap: 10px;
    align-items: center;
    padding: 7px 0;
    border-top: 1px solid rgba(17, 24, 39, .08);
}

.sfs-weather-row:first-of-type {
    border-top: 0;
}

.sfs-mood-container {
    width: min(100%, 680px);
    margin-inline: auto;
}

.sfs-mood-summary {
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 12px 32px rgba(15, 23, 42, .1);
    overflow: hidden;
}

details.sfs-mood-summary:empty {
    display: none;
}

details.sfs-mood-summary:not(:has(> summary.sfs-mood-summary-head)) {
    display: none;
}

.sfs-mood-summary:not(:has(> .sfs-mood-summary-head)) {
    display: none;
}

.sfs-mood-summary-head {
    width: 100%;
    border: 0;
    -webkit-appearance: none;
    appearance: none;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    position: relative;
    display: block;
    list-style: none;
    cursor: pointer;
}

.sfs-mood-summary-head::-webkit-details-marker {
    display: none;
}

.sfs-mood-summary-head-inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    align-items: stretch;
    padding: 14px;
}

.sfs-mood-summary-open {
    position: absolute;
    right: 16px;
    bottom: 12px;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    border-radius: 999px;
    background: rgba(15, 23, 42, .84);
    color: #fff;
    padding: 6px 10px;
    font-size: .78rem;
    font-weight: 850;
}

.sfs-mood-summary[open] .sfs-mood-summary-open,
.sfs-mood-summary.is-open .sfs-mood-summary-open {
    background: rgba(154, 52, 18, .9);
}

.sfs-mood-dominant {
    min-height: 150px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas:
        "icon kicker"
        "icon title"
        "icon meta";
    gap: 5px 12px;
    align-content: center;
    border-radius: 14px;
    padding: 18px;
    color: #fff;
    background: linear-gradient(135deg, #ef4444, #7f1d1d);
}

.sfs-mood-dominant-icon {
    grid-area: icon;
    align-self: center;
    font-size: clamp(2.6rem, 8vw, 4.4rem);
    line-height: 1;
}

.sfs-mood-dominant-kicker {
    grid-area: kicker;
    align-self: end;
    font-size: .76rem;
    font-weight: 950;
    letter-spacing: 0;
    text-transform: uppercase;
    opacity: .88;
}

.sfs-mood-dominant strong {
    grid-area: title;
    min-width: 0;
    overflow-wrap: anywhere;
    font-size: clamp(1.7rem, 7vw, 3rem);
    line-height: .95;
}

.sfs-mood-dominant em {
    grid-area: meta;
    color: rgba(255,255,255,.9);
    font-style: normal;
    font-weight: 800;
}

.sfs-mood-dominant-abattoir { background: linear-gradient(135deg, #111827, #991b1b); }
.sfs-mood-dominant-deprime { background: linear-gradient(135deg, #334155, #1e3a8a); }
.sfs-mood-dominant-brouillard { background: linear-gradient(135deg, #64748b, #0f766e); }
.sfs-mood-dominant-gueule-de-bois { background: linear-gradient(135deg, #854d0e, #65a30d); }
.sfs-mood-dominant-zen { background: linear-gradient(135deg, #15803d, #0f766e); }
.sfs-mood-dominant-metro-boulot-dodo { background: linear-gradient(135deg, #0f766e, #f59e0b); }
.sfs-mood-dominant-amoureux { background: linear-gradient(135deg, #e11d48, #f97316); }
.sfs-mood-dominant-sous-pression { background: linear-gradient(135deg, #ea580c, #dc2626); }
.sfs-mood-dominant-excite { background: linear-gradient(135deg, #f59e0b, #f97316); }
.sfs-mood-dominant-en-rut { background: linear-gradient(135deg, #ef4444, #7f1d1d); }
.sfs-mood-dominant-explose { background: linear-gradient(135deg, #7e22ce, #be123c); }
.sfs-mood-dominant-melancolique { background: linear-gradient(135deg, #475569, #1d4ed8); }
.sfs-mood-dominant-fatigue { background: linear-gradient(135deg, #64748b, #334155); }
.sfs-mood-dominant-confus { background: linear-gradient(135deg, #64748b, #0f766e); }
.sfs-mood-dominant-stresse { background: linear-gradient(135deg, #f59e0b, #c2410c); }
.sfs-mood-dominant-enerve { background: linear-gradient(135deg, #ef4444, #991b1b); }
.sfs-mood-dominant-au-boulot { background: linear-gradient(135deg, #0f766e, #2563eb); }
.sfs-mood-dominant-bonne-humeur { background: linear-gradient(135deg, #16a34a, #f59e0b); }
.sfs-mood-dominant-performant { background: linear-gradient(135deg, #2563eb, #16a34a); }

.sfs-mood-heat-panel {
    display: grid;
    align-content: center;
    gap: 12px;
    border-radius: 14px;
    background: #f8fafc;
    padding: 18px;
}

.sfs-mood-heat-current {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2px 12px;
    align-items: end;
}

.sfs-mood-heat-current span {
    color: #475569;
    font-size: .78rem;
    font-weight: 950;
    letter-spacing: 0;
    text-transform: uppercase;
}

.sfs-mood-heat-current strong {
    grid-row: span 2;
    color: #111827;
    font-size: clamp(2rem, 9vw, 4rem);
    line-height: .85;
}

.sfs-mood-heat-current em {
    color: #9a3412;
    font-style: normal;
    font-weight: 850;
}

.sfs-mood-heat-labels {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    color: #334155;
    font-size: .85rem;
    font-weight: 900;
    text-transform: uppercase;
}

.sfs-mood-heat-scale {
    position: relative;
    display: grid;
    grid-template-columns: repeat(10, minmax(0, 1fr));
    min-height: 44px;
    overflow: visible;
    border-radius: 14px;
    box-shadow: inset 0 0 0 1px rgba(15, 23, 42, .12);
}

.sfs-mood-heat-scale span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: .95rem;
    font-weight: 950;
    text-shadow: 0 1px 2px rgba(15, 23, 42, .3);
}

.sfs-mood-heat-scale span:first-child {
    border-radius: 14px 0 0 14px;
}

.sfs-mood-heat-scale span:nth-child(10) {
    border-radius: 0 14px 14px 0;
}

.sfs-mood-heat-scale span:nth-child(1) { background: #315f93; }
.sfs-mood-heat-scale span:nth-child(2) { background: #4b9bc3; }
.sfs-mood-heat-scale span:nth-child(3) { background: #6aa979; }
.sfs-mood-heat-scale span:nth-child(4) { background: #9fbd36; }
.sfs-mood-heat-scale span:nth-child(5) { background: #f2cf3b; }
.sfs-mood-heat-scale span:nth-child(6) { background: #f5a623; }
.sfs-mood-heat-scale span:nth-child(7) { background: #f97316; }
.sfs-mood-heat-scale span:nth-child(8) { background: #dc4f38; }
.sfs-mood-heat-scale span:nth-child(9) { background: #c72d3e; }
.sfs-mood-heat-scale span:nth-child(10) { background: #a21caf; }

.sfs-mood-heat-scale i {
    position: absolute;
    top: -12px;
    left: calc(var(--sfs-mood-heat, 0) * 1%);
    width: 0;
    height: 0;
    border-right: 10px solid transparent;
    border-left: 10px solid transparent;
    border-top: 14px solid #ffffff;
    filter: drop-shadow(0 2px 2px rgba(15, 23, 42, .35));
    transform: translateX(-50%);
}

.sfs-mood-summary-detail {
    display: grid;
    gap: 14px;
    border-top: 1px solid rgba(15, 23, 42, .08);
    padding: 14px;
}

.sfs-mood-summary:not([open]):not(.is-open) > .sfs-mood-summary-detail,
.sfs-mood-summary-detail[hidden] {
    display: none;
}

.sfs-mood-thermo {
    display: grid;
    gap: 8px;
    border-top: 1px solid rgba(17, 24, 39, .08);
    padding-top: 14px;
}

.sfs-mood-thermo:first-of-type {
    border-top: 0;
}

.sfs-mood-thermo-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
}

.sfs-mood-thermo-head em {
    color: #64748b;
    font-style: normal;
    font-size: .9rem;
}

.sfs-mood-thermo-bar {
    display: flex;
    min-height: 34px;
    overflow: hidden;
    border-radius: 999px;
    background: #f1f5f9;
    box-shadow: inset 0 0 0 1px rgba(15, 23, 42, .08);
}

.sfs-mood-thermo-seg {
    min-width: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 1rem;
    font-weight: 900;
    text-shadow: 0 1px 2px rgba(15, 23, 42, .35);
}

.sfs-mood-breakdown {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 8px;
}

.sfs-mood-chip {
    display: grid;
    gap: 2px;
    border: 1px solid rgba(15, 23, 42, .09);
    border-radius: 12px;
    background: #f8fafc;
    padding: 8px 10px;
}

.sfs-mood-chip b {
    min-width: 0;
    overflow: hidden;
    color: #111827;
    font-size: .9rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sfs-mood-chip em {
    color: #64748b;
    font-size: .8rem;
    font-style: normal;
    font-weight: 750;
}

.sfs-mood-note {
    margin: 0;
    border-radius: 12px;
    background: #f8fafc;
    color: #475569;
    padding: 10px 12px;
    font-size: .9rem;
}

.sfs-mood-heat-abattoir { background: #111827; }
.sfs-mood-heat-deprime { background: #2563eb; }
.sfs-mood-heat-brouillard { background: #64748b; }
.sfs-mood-heat-gueule-de-bois { background: #a16207; }
.sfs-mood-heat-zen { background: #16a34a; }
.sfs-mood-heat-metro-boulot-dodo { background: #0f766e; }
.sfs-mood-heat-amoureux { background: #e11d48; }
.sfs-mood-heat-sous-pression { background: #f97316; }
.sfs-mood-heat-excite { background: #f59e0b; }
.sfs-mood-heat-en-rut { background: #dc2626; }
.sfs-mood-heat-explose { background: #a21caf; }
.sfs-mood-heat-melancolique { background: #2563eb; }
.sfs-mood-heat-fatigue { background: #64748b; }
.sfs-mood-heat-confus { background: #0f766e; }
.sfs-mood-heat-stresse { background: #ea580c; }
.sfs-mood-heat-enerve { background: #dc2626; }
.sfs-mood-heat-au-boulot { background: #0f766e; }
.sfs-mood-heat-bonne-humeur { background: #16a34a; }
.sfs-mood-heat-performant { background: #2563eb; }

.sfs-mood-chip-abattoir { border-color: rgba(17, 24, 39, .22); background: #f8fafc; }
.sfs-mood-chip-deprime { border-color: rgba(37, 99, 235, .2); background: #eff6ff; }
.sfs-mood-chip-brouillard { border-color: rgba(100, 116, 139, .22); background: #f1f5f9; }
.sfs-mood-chip-gueule-de-bois { border-color: rgba(161, 98, 7, .22); background: #fefce8; }
.sfs-mood-chip-zen { border-color: rgba(22, 163, 74, .2); background: #f0fdf4; }
.sfs-mood-chip-metro-boulot-dodo { border-color: rgba(15, 118, 110, .22); background: #f0fdfa; }
.sfs-mood-chip-amoureux { border-color: rgba(225, 29, 72, .2); background: #fff1f2; }
.sfs-mood-chip-sous-pression { border-color: rgba(249, 115, 22, .24); background: #fff7ed; }
.sfs-mood-chip-excite { border-color: rgba(245, 158, 11, .28); background: #fffbeb; }
.sfs-mood-chip-en-rut { border-color: rgba(220, 38, 38, .24); background: #fef2f2; }
.sfs-mood-chip-explose { border-color: rgba(162, 28, 175, .22); background: #faf5ff; }
.sfs-mood-chip-melancolique { border-color: rgba(37, 99, 235, .2); background: #eff6ff; }
.sfs-mood-chip-fatigue { border-color: rgba(100, 116, 139, .22); background: #f1f5f9; }
.sfs-mood-chip-confus { border-color: rgba(15, 118, 110, .22); background: #f0fdfa; }
.sfs-mood-chip-stresse { border-color: rgba(234, 88, 12, .24); background: #fff7ed; }
.sfs-mood-chip-enerve { border-color: rgba(220, 38, 38, .24); background: #fef2f2; }
.sfs-mood-chip-au-boulot { border-color: rgba(15, 118, 110, .22); background: #f0fdfa; }
.sfs-mood-chip-bonne-humeur { border-color: rgba(22, 163, 74, .2); background: #f0fdf4; }
.sfs-mood-chip-performant { border-color: rgba(37, 99, 235, .2); background: #eff6ff; }

@media (max-width: 640px) {
    .sfs-document-mood-modal {
        place-items: stretch;
        padding: 0;
        overflow: hidden;
        touch-action: pan-y;
    }

    .sfs-document-mood-dialog {
        width: 100%;
        height: 100vh;
        height: 100dvh;
        max-height: none;
        align-content: start;
        border-radius: 0;
        padding: calc(16px + env(safe-area-inset-top)) 14px calc(16px + env(safe-area-inset-bottom));
    }

    .sfs-document-mood-options {
        grid-template-columns: 1fr;
    }

    .sfs-document-mood-option {
        min-height: 64px;
    }

    .sfs-weather-row,
    .sfs-mood-row {
        grid-template-columns: 1fr;
        gap: 3px;
    }

    .sfs-mood-summary-head-inner {
        grid-template-columns: 1fr;
    }

    .sfs-mood-summary-open {
        right: 12px;
        bottom: 10px;
    }

    .sfs-mood-dominant {
        min-height: 132px;
        padding: 16px;
    }

    .sfs-mood-heat-panel {
        padding: 14px;
    }

    .sfs-mood-thermo-head {
        display: grid;
        gap: 2px;
    }
}

.sfs-live-chat-window-overlay-open {
    overflow: hidden;
}

.sfs-live-chat-window-overlay {
    position: fixed;
    inset: 0;
    height: 100dvh;
    z-index: 10000;
    overflow: hidden;
    background: #f8fafc;
    color: #111827;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window {
    height: 100dvh;
    min-height: 0;
    max-height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-header {
    position: sticky;
    top: 0;
    z-index: 2;
    background: linear-gradient(135deg, #111827, #243045);
    color: #fff;
    padding: calc(12px + env(safe-area-inset-top)) 14px 12px;
    display: flex;
    gap: 10px;
    align-items: center;
}

.sfs-live-chat-window-overlay.sfs-match-live-chat-overlay .sfs-live-chat-window-header {
    background: #f97316;
    color: #ffffff;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-title {
    font-weight: 850;
    flex: 1;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-close {
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 999px;
    background: rgba(255,255,255,.16);
    color: #fff;
    padding: 8px 11px;
    font-weight: 800;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-controls {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px;
    background: #fff;
    border-bottom: 1px solid rgba(17,24,39,.08);
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-controls button {
    border: 0;
    border-radius: 999px;
    background: #111827;
    color: #fff;
    padding: 10px 14px;
    font-weight: 800;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-controls .sfs-live-chat-window-start {
    background: #16a34a;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-controls .sfs-live-chat-window-stop {
    background: #dc2626;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-controls .sfs-live-chat-window-finish {
    background: #7f1d1d;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-controls .sfs-live-chat-window-settings-toggle {
    background: #475569;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-controls .sfs-live-chat-window-settings-toggle.is-active {
    background: #1d4ed8;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-controls .sfs-live-chat-window-audio-live {
    background: #0f766e;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-controls .sfs-live-chat-window-audio-live.is-active {
    background: #0891b2;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-controls .sfs-live-chat-window-audio-live.is-playing {
    background: #0369a1;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-audio-live-status {
    min-width: 0;
    color: #475569;
    font-size: .78rem;
    font-weight: 800;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-settings {
    border-bottom: 1px solid rgba(17,24,39,.08);
    background: #f8fafc;
    padding: 10px;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-settings-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(170px, .9fr) auto;
    gap: 8px;
    align-items: end;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-settings-form label {
    display: grid;
    gap: 4px;
    min-width: 0;
    color: #475569;
    font-size: .76rem;
    font-weight: 850;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-settings-form input {
    min-width: 0;
    border: 1px solid rgba(17,24,39,.14);
    border-radius: 8px;
    background: #fff;
    color: #111827;
    font-size: 14px;
    padding: 8px 9px;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-settings-actions {
    display: flex;
    gap: 6px;
    align-items: center;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-settings-actions button {
    border: 0;
    border-radius: 999px;
    background: #111827;
    color: #fff;
    font-weight: 850;
    padding: 9px 12px;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-settings-actions button[data-settings-action="close"] {
    background: #64748b;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-settings-status {
    grid-column: 1 / -1;
    color: #b91c1c;
    font-size: .78rem;
    font-weight: 800;
}

@media (max-width: 640px) {
    .sfs-live-chat-window-overlay .sfs-live-chat-window-settings-form {
        grid-template-columns: 1fr;
    }
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-feed-form {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px;
    background: #eff6ff;
    border-bottom: 1px solid rgba(37,99,235,.14);
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-feed-form input,
.sfs-live-chat-window-overlay .sfs-live-chat-window-form input {
    flex: 1;
    min-width: 0;
    border-radius: 999px;
    padding: 10px 13px;
    font-size: 16px;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-feed-form input {
    border: 1px solid rgba(37,99,235,.24);
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-feed-form button,
.sfs-live-chat-window-overlay .sfs-live-chat-window-form button {
    border: 0;
    border-radius: 999px;
    color: #fff;
    padding: 10px 14px;
    font-weight: 800;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-feed-form button {
    background: #1d4ed8;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-feed-form .sfs-live-chat-window-feed-voice {
    background: #f97316;
    min-width: 54px;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-feed-form .sfs-live-chat-window-feed-voice.is-recording {
    background: #dc2626;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-feed-form .sfs-live-chat-window-feed-voice.is-uploading {
    background: #9a3412;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-invite {
    display: grid;
    gap: 8px;
    padding: 10px;
    background: #fff7ed;
    border-bottom: 1px solid rgba(249,115,22,.16);
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-invite-head,
.sfs-live-chat-window-overlay .sfs-live-chat-window-empty-friends {
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: space-between;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-invite-title,
.sfs-live-chat-window-overlay .sfs-live-chat-window-empty-friends {
    color: #9a3412;
    font-weight: 850;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-invite button {
    border: 0;
    border-radius: 999px;
    background: #f97316;
    color: #fff;
    padding: 8px 12px;
    font-weight: 850;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-friends {
    display: grid;
    gap: 6px;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-friend {
    display: flex;
    gap: 8px;
    align-items: center;
    border: 1px solid rgba(249,115,22,.16);
    border-radius: 12px;
    background: #fff;
    padding: 8px 10px;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-friend span {
    flex: 1;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-friend small {
    display: block;
    color: #64748b;
    font-weight: 650;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-list {
    flex: 1;
    min-height: 0;
    overflow: auto;
    display: flex;
    flex-direction: column;
    padding: 10px;
    gap: 8px;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-entry {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 10px;
    border: 1px solid rgba(17,24,39,.08);
    border-radius: 14px;
    background: #fff;
    padding: 10px 12px;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-entry--official {
    grid-template-columns: 58px 1fr;
    border-color: rgba(37,99,235,.18);
    border-left: 6px solid #2563eb;
    background: linear-gradient(135deg, #eff6ff, #fff);
    box-shadow: 0 8px 22px rgba(37,99,235,.1);
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-entry--comment {
    grid-template-columns: 46px 32px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    border: 0;
    border-radius: 0;
    background: transparent;
    padding: 3px 2px;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-entry-delete {
    justify-self: end;
    align-self: start;
    border: 0;
    border-radius: 999px;
    background: rgba(220,38,38,.1);
    color: #b91c1c;
    width: 30px;
    height: 30px;
    font-size: 20px;
    font-weight: 900;
    line-height: 1;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-entry-time {
    color: #64748b;
    font-weight: 900;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-entry--official .sfs-live-chat-window-entry-time {
    color: #1d4ed8;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-entry-text {
    line-height: 1.35;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-entry--official .sfs-live-chat-window-entry-text {
    font-size: 1.04rem;
    font-weight: 750;
    color: #0f172a;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-entry-audio {
    display: block;
    width: min(100%, 260px);
    height: 34px;
    margin-top: 6px;
}

.sfs-live-chat-window-overlay .sfs-match-chat-body .sfs-live-chat-window-entry-audio,
.sfs-live-chat-window-overlay .sfs-match-chat-body .sfs-live-chat-window-entry-source {
    grid-column: 2;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-entry--comment .sfs-live-chat-window-entry-time {
    color: #64748b;
    font-size: .74rem;
    font-weight: 850;
    line-height: 1;
    text-align: right;
    white-space: nowrap;
}

.sfs-document-section-chat-window .sfs-live-chat-window-list {
    gap: 6px;
    padding: 12px 14px;
}

.sfs-document-section-chat-window .sfs-document-section-chat-date {
    align-self: center;
    max-width: 100%;
    margin: 8px 0 4px;
    border: 1px solid rgba(100,116,139,.16);
    border-radius: 999px;
    background: #f8fafc;
    color: #475569;
    font-size: .78rem;
    font-weight: 850;
    letter-spacing: 0;
    line-height: 1.2;
    padding: 5px 11px;
    text-align: center;
    text-transform: capitalize;
}

.sfs-document-section-chat-window .sfs-document-section-chat-entry {
    display: grid;
    grid-template-columns: 46px 32px minmax(32px, 96px) minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    border: 0;
    border-radius: 0;
    background: transparent;
    padding: 3px 2px;
}

.sfs-document-section-chat-window .sfs-document-section-chat-time {
    color: #64748b;
    font-size: .74rem;
    font-weight: 850;
    line-height: 1;
    text-align: right;
    white-space: nowrap;
}

.sfs-document-section-chat-window .sfs-document-section-chat-avatar {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    overflow: hidden;
    border: 1px solid rgba(37,99,235,.16);
    border-radius: 50%;
    background: #e0ecff;
    color: #1d4ed8;
    font-size: .74rem;
    font-weight: 900;
    line-height: 1;
    padding: 0;
    text-transform: uppercase;
}

.sfs-document-section-chat-window button.sfs-document-section-chat-avatar {
    cursor: pointer;
}

.sfs-document-section-chat-window button.sfs-document-section-chat-avatar:hover,
.sfs-document-section-chat-window button.sfs-document-section-chat-avatar:focus-visible {
    border-color: rgba(37,99,235,.55);
    box-shadow: 0 0 0 3px rgba(37,99,235,.16);
    outline: 0;
}

.sfs-document-section-chat-window .sfs-document-section-chat-avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sfs-document-section-chat-avatar-preview {
    position: fixed;
    inset: 0;
    z-index: 10030;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(15,23,42,.28);
}

.sfs-document-section-chat-avatar-preview-panel {
    position: relative;
    display: grid;
    place-items: center;
    width: 160px;
    min-height: 160px;
    border: 1px solid rgba(255,255,255,.64);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 20px 50px rgba(15,23,42,.28);
    padding: 16px;
}

.sfs-document-section-chat-avatar-preview-image {
    display: block;
    width: 128px;
    height: 128px;
    border-radius: 50%;
    object-fit: cover;
}

.sfs-document-section-chat-avatar-preview-close {
    position: absolute;
    top: -10px;
    right: -10px;
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border: 1px solid rgba(15,23,42,.12);
    border-radius: 50%;
    background: #111827;
    color: #ffffff;
    cursor: pointer;
    font: 22px/1 system-ui, sans-serif;
}

.sfs-document-section-chat-window .sfs-document-section-chat-name {
    min-width: 0;
    overflow: hidden;
    color: #334155;
    font-size: .76rem;
    font-weight: 850;
    line-height: 1.1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sfs-document-section-chat-window .sfs-document-section-chat-text {
    width: fit-content;
    max-width: 100%;
    min-width: 0;
    border: 1px solid rgba(17,24,39,.08);
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 1px 2px rgba(15,23,42,.04);
    color: #111827;
    line-height: 1.32;
    overflow-wrap: anywhere;
    padding: 7px 10px;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-author {
    color: #64748b;
    font-size: .86rem;
    margin-top: 3px;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-form {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px 10px calc(10px + env(safe-area-inset-bottom));
    background: #fff;
    border-top: 1px solid rgba(17,24,39,.1);
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-form.is-login-required {
    background: #f8fafc;
}

.sfs-document-section-chat-login-note {
    flex: 1 1 100%;
    color: #475569;
    font-size: .82rem;
    font-weight: 750;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-comment-note {
    border-top: 1px solid rgba(17,24,39,.08);
    background: #f8fafc;
    color: #475569;
    font-size: .86rem;
    font-weight: 800;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
    text-align: center;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-form input {
    border: 1px solid rgba(17,24,39,.16);
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-form input[readonly] {
    background: #eef2f7;
    color: #64748b;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-form button {
    background: #2563eb;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-form .sfs-live-chat-window-voice {
    background: #f97316;
    min-width: 54px;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-form .sfs-live-chat-window-voice.is-recording {
    background: #dc2626;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-form .sfs-live-chat-window-voice.is-uploading {
    background: #9a3412;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-voice-status {
    flex: 1 1 100%;
    color: #9a3412;
    font-size: .82rem;
    font-weight: 800;
    padding: 0 4px;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-voice-status.is-recording {
    display: grid;
    grid-template-columns: minmax(120px, auto) minmax(80px, 1fr) auto;
    gap: 8px;
    align-items: center;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-voice-status-line {
    white-space: nowrap;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-voice-meter {
    height: 8px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(154,52,18,.16);
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-voice-meter span {
    display: block;
    width: 0;
    height: 100%;
    min-width: 2px;
    border-radius: inherit;
    background: #f97316;
    transition: width .08s linear;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-voice-level-label {
    min-width: 42px;
    color: #475569;
    font-size: .74rem;
    font-weight: 850;
    text-align: right;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-voice-detail {
    grid-column: 1 / -1;
    color: #64748b;
    font-size: .72rem;
    font-weight: 750;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-entry-source {
    color: #9a3412;
    font-size: .72rem;
    font-weight: 850;
    line-height: 1.1;
    text-transform: uppercase;
}

.sfs-live-chat-window-overlay .sfs-live-chat-window-note {
    padding: 16px;
    color: #64748b;
    text-align: center;
}

.sfs-document-dynamic-list {
    width: 100%;
    min-height: 80px;
}

.sfs-document-dynamic-list .sfs-associations,
.sfs-document-dynamic-list .sfs-routes {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

.sfs-document-dynamic-list .sfs-associations-toolbar,
.sfs-document-dynamic-list .sfs-routes-toolbar {
    margin-top: 0;
}
/* ============================================================
   Community feed / Les Gros Sabots
   ============================================================ */

.sfs-community-feed {
    box-sizing: border-box;
    width: min(100% - 24px, 920px);
    margin: 24px auto;
    padding: clamp(16px, 3vw, 28px);
    border: 1px solid color-mix(in srgb, currentColor 14%, transparent);
    border-radius: 22px;
    background: color-mix(in srgb, var(--sfs-surface, #fff) 96%, currentColor 4%);
    box-shadow: 0 12px 36px rgb(0 0 0 / 8%);
}

.sfs-community-feed[aria-busy="true"] {
    opacity: .62;
    pointer-events: none;
}

.sfs-community-feed-heading,
.sfs-community-feed-post > header,
.sfs-community-feed-reply > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.sfs-community-feed-heading {
    margin-bottom: 18px;
}

.sfs-community-feed-heading h2 {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-size: clamp(1.45rem, 4vw, 2rem);
}

.sfs-community-feed-title-icon {
    display: inline-flex;
    flex: 0 0 auto;
    width: 1.8em;
    height: 1.35em;
    align-items: center;
    color: var(--sfs-primary, #202020);
    line-height: 1;
}

.sfs-community-feed-title-icon svg {
    display: block;
    width: 100%;
    height: 100%;
    fill: currentColor;
}

.sfs-community-feed-heading-controls {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.sfs-community-feed-archive-select {
    min-height: 42px;
    max-width: 220px;
    padding: 8px 32px 8px 12px;
    border: 1px solid color-mix(in srgb, currentColor 18%, transparent);
    border-radius: 999px;
    background: var(--sfs-surface, #fff);
    color: inherit;
    font: inherit;
    cursor: pointer;
}

.sfs-community-feed-create,
.sfs-community-feed-reply-form button {
    min-height: 42px;
    padding: 9px 18px;
    border: 0;
    border-radius: 999px;
    background: var(--sfs-primary, #202020);
    color: var(--sfs-on-primary, #fff);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.sfs-community-feed-list {
    display: grid;
    gap: 18px;
}

.sfs-community-feed-post {
    overflow: hidden;
    padding: 16px;
    border: 1px solid color-mix(in srgb, currentColor 12%, transparent);
    border-radius: 18px;
    background: var(--sfs-surface, #fff);
}

.sfs-community-feed-actor {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    gap: 10px;
}

.sfs-community-feed-avatar {
    display: inline-grid;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    place-items: center;
    overflow: hidden;
    border-radius: 50%;
    background: color-mix(in srgb, var(--sfs-primary, #202020) 14%, #fff);
    color: var(--sfs-primary, #202020);
    object-fit: cover;
    font-weight: 800;
    letter-spacing: .03em;
}

.sfs-community-feed-reply .sfs-community-feed-avatar {
    flex-basis: 34px;
    width: 34px;
    height: 34px;
    font-size: .78rem;
}

.sfs-community-feed-meta,
.sfs-community-feed-reply time {
    flex: 0 0 auto;
    color: color-mix(in srgb, currentColor 62%, transparent);
    font-size: .82rem;
}

.sfs-community-feed-text {
    margin: 14px 0;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    line-height: 1.55;
}

.sfs-community-feed-gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
    margin: 14px -16px;
}

.sfs-community-feed-gallery-1 {
    grid-template-columns: 1fr;
}

.sfs-community-feed-gallery a {
    min-height: 180px;
    background: #eee;
}

.sfs-community-feed-gallery img {
    display: block;
    width: 100%;
    height: 100%;
    max-height: 460px;
    object-fit: cover;
}

.sfs-community-feed-gallery-1 a {
    display: flex;
    min-height: 0;
    align-items: center;
    justify-content: center;
}

.sfs-community-feed-gallery-1 img {
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: min(75vh, 760px);
    object-fit: contain;
}

.sfs-community-feed-item-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 10px;
    border-top: 1px solid color-mix(in srgb, currentColor 10%, transparent);
}

.sfs-community-feed-item-actions button {
    padding: 7px 11px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: .86rem;
    cursor: pointer;
}

.sfs-community-feed-item-actions button:hover,
.sfs-community-feed-item-actions button:focus-visible {
    background: color-mix(in srgb, currentColor 8%, transparent);
}

.sfs-community-feed-icon-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
}

.sfs-community-feed-action-icon {
    display: none;
}

.sfs-community-feed-item-actions .sfs-community-feed-reaction-adore.is-selected {
    background: color-mix(in srgb, #d72f4b 12%, transparent);
    color: #b71936;
    font-weight: 700;
}

.sfs-community-feed-item-actions .sfs-community-feed-reaction-pue.is-selected {
    background: color-mix(in srgb, #8a5a2b 14%, transparent);
    color: #70451f;
    font-weight: 700;
}

.sfs-community-feed-thread {
    display: grid;
    gap: 10px;
    margin-top: 12px;
    padding-left: clamp(8px, 4vw, 32px);
}

.sfs-community-feed-reply {
    padding: 11px 12px;
    border-radius: 14px;
    background: color-mix(in srgb, currentColor 5%, transparent);
}

.sfs-community-feed-reply .sfs-community-feed-text {
    margin: 9px 0;
}

.sfs-community-feed-reply .sfs-community-feed-item-actions {
    padding-top: 2px;
    border-top: 0;
}

.sfs-community-feed-nested-thread {
    display: grid;
    gap: 8px;
    margin-top: 10px;
    padding-left: clamp(10px, 3vw, 24px);
    border-left: 3px solid color-mix(in srgb, currentColor 12%, transparent);
}

.sfs-community-feed-nested-thread[hidden] {
    display: none;
}

.sfs-community-feed-nested-reply {
    background: color-mix(in srgb, currentColor 7%, transparent);
}

.sfs-community-feed-login-dialog {
    max-width: 520px;
}

.sfs-community-feed-login-free {
    padding: 12px 14px;
    border-radius: 12px;
    background: color-mix(in srgb, var(--sfs-accent, #d97706) 12%, transparent);
    font-weight: 700;
}

.sfs-community-feed-reply-form {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: end;
    gap: 8px;
}

.sfs-community-feed-reply-form[hidden] {
    display: none;
}

.sfs-community-feed-reply-form textarea,
.sfs-community-feed-composer textarea,
.sfs-community-feed-report-dialog textarea,
.sfs-community-feed-report-dialog select {
    box-sizing: border-box;
    width: 100%;
    padding: 10px 12px;
    border: 1px solid color-mix(in srgb, currentColor 20%, transparent);
    border-radius: 12px;
    background: var(--sfs-surface, #fff);
    color: inherit;
    font: inherit;
}

.sfs-community-feed-photo-preview {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
}

.sfs-community-feed-photo-preview img {
    width: 100%;
    aspect-ratio: 1;
    border-radius: 10px;
    object-fit: cover;
}

.sfs-community-feed-empty {
    margin: 0;
    padding: 24px;
    border-radius: 14px;
    background: color-mix(in srgb, currentColor 5%, transparent);
    text-align: center;
}

@media (max-width: 640px) {
    .sfs-document-quick-modal {
        inset: 0 0 auto;
        box-sizing: border-box;
        height: 100vh;
        height: 100svh;
        place-items: start center;
        padding: max(12px, env(safe-area-inset-top)) 10px max(18px, env(safe-area-inset-bottom));
    }

    .sfs-document-quick-dialog {
        width: 100%;
        max-height: calc(100svh - 30px);
        border-radius: 14px;
    }

    .sfs-live-chat-window-overlay {
        inset: 0 0 auto;
        height: 100vh;
        height: 100svh;
    }

    .sfs-live-chat-window-overlay .sfs-live-chat-window {
        height: 100%;
        min-height: 0;
        max-height: 100%;
    }

    .sfs-live-chat-window-overlay .sfs-live-chat-window-list {
        padding-bottom: 20px;
        scroll-padding-bottom: 20px;
    }

    .sfs-live-chat-window-overlay .sfs-live-chat-window-form,
    .sfs-live-chat-window-overlay .sfs-live-chat-window-comment-note {
        padding-bottom: calc(18px + env(safe-area-inset-bottom));
    }

    .sfs-community-feed-composer input[type="file"] {
        box-sizing: border-box;
        max-width: 100%;
        font-size: 16px;
    }

    .sfs-community-feed {
        width: min(100% - 12px, 920px);
        margin-block: 12px;
        padding: 13px;
        border-radius: 16px;
    }

    .sfs-community-feed-post {
        padding: 13px;
    }

    .sfs-community-feed-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .sfs-community-feed-heading-controls {
        width: 100%;
        justify-content: space-between;
    }

    .sfs-community-feed-archive-select {
        min-width: 0;
        max-width: 65%;
    }

    .sfs-community-feed-gallery {
        margin-inline: -13px;
    }

    .sfs-community-feed-post > header,
    .sfs-community-feed-reply > header {
        align-items: flex-start;
    }

    .sfs-community-feed-meta,
    .sfs-community-feed-reply time {
        max-width: 42%;
        text-align: right;
    }

    .sfs-community-feed-reply-form {
        grid-template-columns: 1fr;
        padding-bottom: max(12px, env(safe-area-inset-bottom));
        scroll-margin-block: 96px;
    }

    .sfs-community-feed-icon-action {
        box-sizing: border-box;
        min-width: 44px;
        min-height: 44px;
        padding: 8px;
    }

    .sfs-community-feed-icon-action .sfs-community-feed-action-icon {
        display: inline;
        font-size: 1.15rem;
        line-height: 1;
    }

    .sfs-community-feed-icon-action .sfs-community-feed-action-label {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .sfs-community-feed-action-count {
        font-size: .78rem;
        font-weight: 700;
    }
}
.sfs-event-program-add-picker {
    display: grid;
    gap: 12px;
    width: min(100%, 720px);
    margin: 0 auto;
    padding: 16px;
    border: 1px solid #d7dee8;
    border-radius: 12px;
    background: #fff;
}

.sfs-event-program-add-picker > label,
.sfs-event-program-add-picker [data-fixed-dates] label,
.sfs-event-program-add-picker fieldset label {
    display: grid;
    gap: 5px;
    color: #334155;
    font-weight: 800;
}

.sfs-event-program-add-picker select,
.sfs-event-program-add-picker input[type="number"],
.sfs-event-program-add-picker input[type="date"] {
    min-height: 40px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #fff;
    padding: 7px 10px;
}

.sfs-event-program-add-picker [data-fixed-dates],
.sfs-event-program-add-picker fieldset {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
}

.sfs-event-program-add-permissions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.sfs-event-program-add-picker [data-display-fields] label,
.sfs-event-program-add-permissions fieldset label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: .86rem;
}

.sfs-event-program-add-permissions fieldset { grid-template-columns: 1fr; }

.sfs-event-program-add-picker [hidden] {
    display: none !important;
}

.sfs-event-program-add-switch {
    grid-template-columns: auto 1fr !important;
    align-items: center;
}

@media (max-width: 720px) {
    .sfs-event-program-add-permissions { grid-template-columns: 1fr; }
}
.sfs-section-wizard-open {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: auto;
    width: 2.65rem;
    height: 2.65rem;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: .88rem;
    font-weight: 750;
    cursor: pointer;
}

.sfs-paragraph-title-has-wizard {
    position: relative;
}

.sfs-paragraph-title-has-wizard > .sfs-section-wizard-open {
    position: absolute;
    top: 50%;
    right: .75rem;
    z-index: 2;
    transform: translateY(-50%);
}

.sfs-paragraph-title-has-wizard > .sfs-section-wizard-open i {
    font-size: .95em;
}

.sfs-paragraph-title-has-wizard.sfs-subsection-title-with-share {
    grid-template-columns: 5.75rem minmax(0, 1fr) 2.65rem 2.65rem;
    column-gap: .25rem;
}

.sfs-paragraph-title-has-wizard.sfs-subsection-title-with-share > .sfs-paragraph-title-copy {
    grid-column: 2;
}

.sfs-paragraph-title-has-wizard.sfs-subsection-title-with-share > .sfs-section-wizard-open {
    position: static;
    grid-column: 3;
    justify-self: center;
    transform: none;
}

.sfs-paragraph-title-has-wizard.sfs-subsection-title-with-share > .sfs-subsection-share {
    grid-column: 4;
    justify-self: center;
}

.sfs-section-wizard-open:hover,
.sfs-section-wizard-open:focus-visible {
    background: rgba(255, 255, 255, .14);
}

.sfs-paragraph[data-sfs-variant="hero"] > .sfs-paragraph-inner {
    position: relative;
}

.sfs-hero-widget-wizard-open {
    position: absolute;
    top: .65rem;
    right: .65rem;
    z-index: 5;
    margin: 0;
    background: rgba(15, 23, 42, .72);
    color: #fff;
    box-shadow: 0 4px 16px rgba(15, 23, 42, .24);
}

.sfs-hero-widget-wizard-open:hover,
.sfs-hero-widget-wizard-open:focus-visible {
    background: rgba(15, 23, 42, .92);
}

@media (max-width: 720px) {
    .sfs-paragraph-title-has-wizard {
        padding-right: 3.5rem;
    }

    .sfs-paragraph-title-has-wizard > .sfs-section-wizard-open { right: .45rem; }
}
.sfs-document-card-display-settings {
    display: grid;
    gap: .75rem;
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid #d8dee9;
    border-radius: .75rem;
    background: #fff;
}

.sfs-document-card-display-settings h3,
.sfs-document-card-display-settings p { margin: 0; }
.sfs-document-card-display-toggle { display: flex; align-items: center; gap: .65rem; cursor: pointer; }
.sfs-document-card-display-toggle input { inline-size: 1.2rem; block-size: 1.2rem; }
.sfs-document-card-display-help { color: #667085; font-size: .9rem; }

/* Tenant-configured list headings: all colors come from document metadata. */
.sfs-tab-widget-section[data-sfs-tab-widget-display="list"] > .sfs-document-section-body > .sfs-tab-widget-panel > .sfs-document-section-top .sfs-paragraph-inner {
    background: transparent !important;
}
.sfs-tab-widget-section[data-sfs-tab-widget-display="list"] > .sfs-document-section-body > .sfs-tab-widget-panel > .sfs-document-section-top .sfs-paragraph-title-copy {
    width: 100%;
}
.sfs-tab-widget-section[data-sfs-tab-widget-display="list"] > .sfs-document-section-body > .sfs-tab-widget-panel > .sfs-document-section-top .sfs-paragraph-title-text {
    box-sizing: border-box;
    width: 100%;
    padding: .65rem 0;
    background: var(--sfs-list-title-background, var(--sfs-tenant-title-background, #111827));
    color: var(--sfs-list-title-text, var(--sfs-tenant-title-text, #fff)) !important;
    text-align: var(--sfs-list-title-align, center) !important;
    font-size: var(--sfs-list-title-size, 1.5rem) !important;
    border-radius: var(--sfs-list-title-radius, 0);
    border-bottom: var(--sfs-list-title-border-width, 0) solid var(--sfs-list-title-border, currentColor);
}
.sfs-tab-widget-section[data-sfs-tab-widget-display="list"] > .sfs-document-section-body > .sfs-tab-widget-panel > .sfs-document-section-top .sfs-paragraph-title-subtitle {
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    padding: .75rem 1rem;
    border-radius: var(--sfs-list-title-radius, 0);
    background: var(--sfs-tab-subtitle-background, var(--sfs-tenant-tab-subtitle-background, var(--sfs-list-title-background, var(--sfs-tenant-title-background, #111827)))) !important;
    color: var(--sfs-tab-subtitle-text, var(--sfs-tenant-tab-subtitle-text, var(--sfs-list-title-subtitle-text, var(--sfs-tenant-title-subtitle, #fff)))) !important;
    text-align: center !important;
}
.sfs-tab-widget-section[data-sfs-tab-widget-display="list"] > .sfs-document-section-body > .sfs-tab-widget-panel > .sfs-document-section-top .sfs-tab-widget-image-description {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin-inline: auto;
    padding: .75rem 1rem;
    background: var(--sfs-tab-subtitle-background, var(--sfs-tenant-tab-subtitle-background, var(--sfs-list-title-background, var(--sfs-tenant-title-background, #111827)))) !important;
    color: var(--sfs-tab-subtitle-text, var(--sfs-tenant-tab-subtitle-text, var(--sfs-list-title-subtitle-text, var(--sfs-tenant-title-subtitle, #fff)))) !important;
    text-align: center;
}
/* Join separate page headings to their hero, matching integrated hero titles. */
.sfs-document-block:has(.sfs-title-before-hero) {
    margin-bottom: 0;
}
.sfs-paragraph[data-sfs-variant="hero"] > .sfs-paragraph-inner:empty {
    display: none;
}
/* Titleless heroes retain admin controls without reserving a title band. */
.sfs-paragraph[data-sfs-variant="hero"].sfs-hero-without-title > .sfs-paragraph-inner {
    padding: 0;
    margin-top: 0;
    margin-bottom: 0;
    min-height: 0;
}

.sfs-resources-widget-section > .sfs-document-section-body { padding-top: 1rem; }

.sfs-resources-widget-section[data-sfs-resources-show-title="0"] > .sfs-document-section-body {
    padding-top: 0;
}

.sfs-resources-widget-title-hidden-edit .sfs-paragraph-inner,
.sfs-tab-widget-title-hidden-edit .sfs-paragraph-inner {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    min-height: 3rem;
    padding: 0;
    background: transparent !important;
}

.sfs-resources-widget-title-hidden-edit .sfs-paragraph-title,
.sfs-tab-widget-title-hidden-edit .sfs-paragraph-title {
    box-sizing: border-box;
    width: 100%;
    min-height: 3rem;
    justify-content: flex-end;
    padding: 0 .5rem;
    background: transparent !important;
}

.sfs-resources-widget-title-hidden-edit .sfs-paragraph-title-copy,
.sfs-tab-widget-title-hidden-edit .sfs-paragraph-title-copy {
    display: none;
}

.sfs-resources-widget-title-hidden-edit .sfs-section-wizard-open,
.sfs-tab-widget-title-hidden-edit .sfs-section-wizard-open {
    color: var(--sfs-tenant-body-text, #172033);
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .16);
}

/* A resources catalogue owns its heading. In Hero mode it behaves like a
   full-width image-less hero instead of creating a second, orphanable widget. */
.sfs-resources-widget-section[data-sfs-resources-title-presentation="heroText"] > .sfs-document-section-top,
.sfs-resources-widget-section[data-sfs-resources-title-presentation="heroText"] > .sfs-document-section-top > .sfs-document-block,
.sfs-resources-widget-section[data-sfs-resources-title-presentation="heroText"] > .sfs-document-section-top .sfs-paragraph,
.sfs-resources-widget-section[data-sfs-resources-title-presentation="heroText"] > .sfs-document-section-top .sfs-paragraph-inner {
    width: 100%;
    max-width: none;
}
.sfs-resources-widget-section[data-sfs-resources-title-presentation="heroText"] > .sfs-document-section-top .sfs-paragraph-inner {
    padding: 0;
    background: var(--sfs-tenant-hero-title-background, var(--sfs-tenant-title-background, #111827)) !important;
}
.sfs-resources-widget-section[data-sfs-resources-title-presentation="heroText"] > .sfs-document-section-top .sfs-paragraph-title {
    width: 100%;
    min-height: 72px;
    justify-content: center;
    border: 0;
    border-radius: 0;
    padding: 14px 56px;
    background: transparent !important;
    color: var(--sfs-tenant-hero-title-text, var(--sfs-tenant-title-text, #fff)) !important;
    text-align: center;
}
.sfs-resources-widget-section[data-sfs-resources-title-presentation="heroText"] > .sfs-document-section-top .sfs-paragraph-title-copy {
    width: 100%;
}
.sfs-resources-widget-section[data-sfs-resources-title-presentation="heroText"] > .sfs-document-section-top .sfs-paragraph-title-text {
    color: var(--sfs-tenant-hero-title-text, var(--sfs-tenant-title-text, #fff)) !important;
    font-size: clamp(1.5rem, 2.6vw, 2.25rem);
    font-weight: 800;
    line-height: 1.1;
}
[data-sfs-hero-title-uppercase="1"] .sfs-resources-widget-section[data-sfs-resources-title-presentation="heroText"] > .sfs-document-section-top .sfs-paragraph-title-text {
    text-transform: uppercase;
    letter-spacing: .06em;
}
.sfs-resources-widget-section[data-sfs-resources-title-presentation="heroText"] > .sfs-document-section-top .sfs-paragraph-title-subtitle {
    margin-top: .35rem;
    color: var(--sfs-tenant-hero-title-subtitle, var(--sfs-tenant-title-subtitle, var(--sfs-tenant-title-text, #fff))) !important;
    line-height: 1.35;
}
.sfs-resources-widget-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}
.sfs-resources-widget-grid[data-desktop-columns="1"] { grid-template-columns: minmax(0, 1fr); }
.sfs-resources-widget-grid[data-desktop-columns="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sfs-resources-widget-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: .45rem .9rem;
    min-height: 118px;
    padding: 1.15rem;
    border: 1px solid color-mix(in srgb, var(--sfs-tenant-body-text, #242424) 12%, var(--sfs-tenant-paragraph-background, #fff));
    border-radius: 14px;
    background: var(--sfs-tenant-paragraph-background, #fff);
    color: var(--sfs-tenant-body-text, #172033);
    text-decoration: none;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.sfs-resources-widget-card:hover,
.sfs-resources-widget-card:focus-visible {
    transform: translateY(-2px);
    border-color: var(--sfs-tenant-accent, #C62828);
    background: color-mix(in srgb, var(--sfs-tenant-accent, #C62828) 7%, var(--sfs-tenant-paragraph-background, #fff));
    box-shadow: 0 10px 26px color-mix(in srgb, var(--sfs-tenant-accent, #C62828) 18%, transparent);
    outline: 0;
}
.sfs-resources-widget-card > i {
    grid-row: 1 / span 2;
    width: 1.35rem;
    color: var(--sfs-tenant-accent, #C62828);
    font-size: 1.1rem;
    text-align: center;
}
.sfs-resources-widget-card h3,
.sfs-resources-widget-card p { margin: 0; }
.sfs-resources-widget-card h3 { font-size: 1.05rem; }
.sfs-resources-widget-grid[data-category-title-size="large"] .sfs-resources-widget-card h3 {
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1.2;
}
.sfs-resources-widget-grid[data-category-title-size="xlarge"] .sfs-resources-widget-card h3 {
    font-size: 2rem;
    font-weight: 800;
    line-height: 1.15;
}
.sfs-resources-widget-card h3 { overflow-wrap: anywhere; }
.sfs-resources-widget-card p { color: var(--sfs-tenant-body-text, #667085); line-height: 1.5; }
.sfs-resources-widget-card.is-hidden-in-public { opacity: .62; }
.sfs-resources-widget-hidden-badge {
    grid-column: 2;
    width: fit-content;
    padding: .18rem .5rem;
    border-radius: 999px;
    background: #f2f4f7;
    color: #475467;
    font-size: .72rem;
    font-weight: 700;
}
.sfs-resources-widget-empty { padding: 1rem; color: #667085; }

.sfs-resources-widget-card.has-teaser { display: block; overflow: hidden; padding: 0; }
.sfs-resources-widget-card-content {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .45rem .9rem;
    align-items: start;
    padding: 1.15rem;
    color: inherit;
    text-decoration: none;
}
.sfs-resources-widget-card > h3,
.sfs-resources-widget-card > p,
.sfs-resources-widget-card-content > h3,
.sfs-resources-widget-card-content > p { grid-column: 2; }
.sfs-resources-widget-grid[data-card-layout="titleTop"][data-desktop-columns="1"] {
    width: min(100%, 960px);
    margin-inline: auto;
    gap: 1.5rem;
}
.sfs-resources-widget-grid[data-card-layout="titleTop"] .sfs-resources-widget-card-content {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.sfs-resources-widget-grid[data-card-layout="titleTop"] .sfs-resources-widget-card-content > p {
    flex-basis: 100%;
}
.sfs-resources-widget-grid[data-card-layout="titleTop"] .sfs-resources-widget-card:not(.has-teaser) {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    text-align: center;
}
.sfs-resources-widget-grid[data-card-layout="titleTop"] .sfs-resources-widget-card:not(.has-teaser) > h3,
.sfs-resources-widget-grid[data-card-layout="titleTop"] .sfs-resources-widget-card:not(.has-teaser) > p,
.sfs-resources-widget-grid[data-card-layout="titleTop"] .sfs-resources-widget-hidden-badge {
    grid-column: 1;
}
.sfs-resources-widget-grid[data-card-layout="titleTop"] .sfs-resources-widget-card:not(.has-teaser) > i {
    grid-row: auto;
}
.sfs-resources-widget-grid[data-card-layout="thumbnailLeft"] .sfs-resources-widget-card.has-teaser {
    display: grid;
    grid-template-columns: minmax(96px, 27%) minmax(0, 1fr);
    align-items: center;
    gap: 0;
}
.sfs-resources-widget-grid[data-card-layout="thumbnailLeft"] .sfs-resource-category-teaser {
    margin: 1rem 0 1rem 1rem;
    width: calc(100% - 1rem);
    overflow: hidden;
    border-radius: 8px;
}
.sfs-resources-widget-card-content > i {
    grid-row: 1 / span 2;
    width: 1.35rem;
    color: var(--sfs-tenant-accent, #C62828);
    font-size: 1.1rem;
    text-align: center;
}
.sfs-resources-widget-card-content:focus-visible,
.sfs-resource-category-teaser:focus-visible,
.sfs-resource-category-video-load:focus-visible {
    outline: 3px solid var(--sfs-tenant-accent, #C62828);
    outline-offset: -3px;
}
.sfs-resource-category-teaser { display: block; width: 100%; background: #eef2f6; }
.sfs-resource-category-teaser > img,
.sfs-resource-category-teaser > video,
.sfs-resource-category-teaser > iframe {
    display: block;
    width: 100%;
    aspect-ratio: var(--sfs-resource-category-aspect-ratio, 16 / 9);
    border: 0;
    object-fit: contain;
}
.sfs-resource-category-teaser > video,
.sfs-resource-category-teaser > iframe { background: #111827; }
.sfs-resource-category-video-load {
    position: relative;
    display: grid;
    place-content: center;
    gap: .8rem;
    width: 100%;
    aspect-ratio: var(--sfs-resource-category-aspect-ratio, 16 / 9);
    padding: 1rem;
    border: 0;
    background: #111827;
    color: #fff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}
.sfs-resource-category-video-load > img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.sfs-resource-category-video-play {
    position: relative;
    display: grid;
    place-items: center;
    justify-self: center;
    width: clamp(44px, 6vw, 72px);
    aspect-ratio: 1;
    padding-left: .15em;
    border: 2px solid #fff;
    border-radius: 50%;
    background: #111827d9;
    color: #fff;
    font-size: clamp(1.2rem, 3vw, 2rem);
    box-shadow: 0 2px 12px #0005;
}
.sfs-resource-category-video-load:hover .sfs-resource-category-video-play { background: #111827; }
.sfs-resource-category-video-load small {
    position: relative;
    justify-self: center;
    padding: .2rem .55rem;
    border-radius: .35rem;
    background: #111827d9;
    font-size: .8rem;
    font-weight: 400;
}
.sfs-resource-category-video-load.has-poster { background: #eef2f6; }
.sfs-resources-widget-grid[data-media-aspect-ratio="square"] { --sfs-resource-category-aspect-ratio: 1; }
.sfs-resources-widget-grid[data-card-layout="thumbnailLeft"] .sfs-resource-category-video-load {
    padding: .5rem;
    font-size: .85rem;
    gap: .3rem;
    overflow-wrap: anywhere;
}
.sfs-resources-widget-grid[data-card-layout="thumbnailLeft"] .sfs-resource-category-video-load small { display: none; }
.sfs-resources-wizard-media { margin-top: .8rem; padding-top: .8rem; border-top: 1px solid #d8dee9; }
.sfs-resources-wizard-media-details { display: grid; gap: .8rem; }
.sfs-resources-wizard-media-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.sfs-resources-wizard-video-thumbnail {
    display: grid;
    place-items: center;
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: .5rem;
    background: #eef2f7;
    color: #334155;
    font-size: 2rem;
}
.sfs-resources-wizard-preview { max-width: 520px; overflow: hidden; border-radius: 10px; }
.sfs-resources-wizard-picker { display: grid; gap: .8rem; }
.sfs-resources-wizard-picker .sfs-hero-media-grid { max-height: 350px; overflow: auto; }
.sfs-resources-wizard-media [hidden] { display: none; }

.sfs-course-public-presentation {
    display: grid;
    justify-items: start;
    gap: 1rem;
    margin: 1rem auto;
    padding: clamp(1.25rem, 4vw, 2.5rem);
    border: 1px solid color-mix(in srgb, var(--sfs-tenant-body-text, #242424) 15%, #fff);
    border-radius: 16px;
    background: var(--sfs-tenant-paragraph-background, #fff);
    color: var(--sfs-tenant-body-text, #172033);
}
.sfs-course-public-presentation h2,
.sfs-course-public-presentation h3,
.sfs-course-public-presentation p { margin: 0; }
.sfs-course-public-presentation h2 { font-size: clamp(1.6rem, 4vw, 2rem); font-weight: 800; }
.sfs-course-public-presentation h3 { font-size: 1.3rem; }
.sfs-course-public-presentation p { max-width: 75ch; line-height: 1.65; white-space: pre-line; }
.sfs-course-public-presentation-message { padding-top: .5rem; }
.sfs-course-public-presentation-read { color: inherit; text-decoration: underline; text-underline-offset: .2em; }
.sfs-course-public-presentation-login {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: .7rem 1.3rem;
    border-radius: 10px;
    background: var(--sfs-tenant-hero-title-background, #172033);
    color: var(--sfs-tenant-hero-title-text, #fff);
    font-weight: 700;
    text-decoration: none;
    text-align: center;
}
.sfs-course-public-presentation a:focus-visible { outline: 3px solid currentColor; outline-offset: 4px; }

@media (max-width: 720px) {
    .sfs-resources-widget-section[data-sfs-resources-title-presentation="heroText"] > .sfs-document-section-top .sfs-paragraph-title {
        min-height: 62px;
        padding: 12px 46px;
    }
    .sfs-resources-widget-grid[data-desktop-columns],
    .sfs-resources-widget-grid { grid-template-columns: minmax(0, 1fr); }
}

/* SFS_TAB_EMPTY_HEADING_WHITE_V1
   A tab label is already in the navigation. Its hidden panel heading must
   not leave a tenant-coloured stripe on the white page. Keep real subtitles
   and the visible headings of list/stack layouts styled as configured. */
@media (min-width: 761px) {
    .sfs-tab-widget-section:not([data-sfs-tab-widget-display="list"]) > .sfs-document-section-body > .sfs-tab-widget-panel > .sfs-document-section-top .sfs-paragraph[data-sfs-subtype="tabwidgettab"] > .sfs-paragraph-inner:not(:has(.sfs-paragraph-title-subtitle, .sfs-tab-widget-image-description)) {
        background-color: #fff !important;
    }
}
@media (max-width: 760px) {
    .sfs-tab-widget-section:not([data-sfs-tab-widget-display="list"]):not([data-sfs-tab-widget-mobile="stack"]) > .sfs-document-section-body > .sfs-tab-widget-panel > .sfs-document-section-top .sfs-paragraph[data-sfs-subtype="tabwidgettab"] > .sfs-paragraph-inner:not(:has(.sfs-paragraph-title-subtitle, .sfs-tab-widget-image-description)) {
        background-color: #fff !important;
    }
}

/* SFS_TAB_CONNECTED_STYLE_V2: softly accented tabs remain connected to the white content. */
.sfs-tab-widget-section > .sfs-tab-widget-tabs {
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 4px;
    padding: 6px 0 0;
    border: 0;
    border-radius: 0;
    background: linear-gradient(#d4ddd6, #d4ddd6) left bottom / 100% 1px no-repeat #fff;
    box-shadow: none;
}
.sfs-tab-widget-tabs .sfs-tab-widget-tab {
    flex: 0 0 auto;
    min-height: 48px;
    padding: 12px 22px;
    border: 1px solid transparent;
    border-top-width: 2px;
    border-radius: 11px 11px 0 0;
    color: #59645e;
    background: transparent;
    box-shadow: none;
    font-weight: 500;
    white-space: nowrap;
    transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}
.sfs-tab-widget-tabs .sfs-tab-widget-tab:not([aria-selected="true"]):hover {
    color: var(--sfs-accent, #2f6f4e);
    background: color-mix(in srgb, var(--sfs-accent, #2f6f4e) 4%, #fff);
}
.sfs-tab-widget-tabs .sfs-tab-widget-tab[aria-selected="true"] {
    color: var(--sfs-accent, #2f6f4e);
    border-color: color-mix(in srgb, var(--sfs-accent, #2f6f4e) 22%, #fff);
    border-top-color: color-mix(in srgb, var(--sfs-accent, #2f6f4e) 75%, #fff);
    border-bottom-color: #fff;
    background: linear-gradient(180deg, color-mix(in srgb, var(--sfs-accent, #2f6f4e) 8%, #fff), #fff 92%);
    box-shadow: 0 -3px 12px -7px color-mix(in srgb, var(--sfs-accent, #2f6f4e) 35%, transparent);
    font-weight: 700;
}
.sfs-tab-widget-tabs .sfs-tab-widget-tab:focus-visible {
    outline: 2px solid var(--sfs-accent, #2f6f4e);
    outline-offset: -4px;
}
@media (max-width: 760px) {
    .sfs-tab-widget-section[data-sfs-tab-widget-mobile="tabs"] > .sfs-tab-widget-tabs {
        padding: 4px 0 0;
    }
    .sfs-tab-widget-tabs .sfs-tab-widget-tab {
        min-height: 44px;
        padding: 10px 14px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .sfs-tab-widget-tabs .sfs-tab-widget-tab { transition: none; }
}

/* Mobile icon navigation: retain an explicit current-page indicator. */
@media (max-width: 768px) {
    #container_top_nav.has-mobile-icon-grid .sfs-horizontalnav-item.is-current {
        background: color-mix(in srgb, var(--sfs-accent, #2f6f4e) 7%, #fff);
        box-shadow: inset 0 -3px 0 var(--sfs-accent, #2f6f4e);
    }
}
/* Page banner actions use the tenant palette, independently of Hero. */
#container_top_brand.sfs-has-banner-actions { flex-direction:column; }
.sfs-page-banner-actions { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; padding:16px 20px; }
.sfs-page-banner-action { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 22px; border:2px solid currentColor; border-radius:8px; font-weight:700; text-decoration:none; color:var(--sfs-banner-text); background:var(--sfs-banner-background); }
.sfs-page-banner-action:hover { text-decoration:underline; text-underline-offset:4px; }
.sfs-page-banner-action:focus-visible { outline:3px solid var(--sfs-banner-accent); outline-offset:4px; }
@media(max-width:600px) { .sfs-page-banner-action { flex:1 1 100%; } }

/* Configured tab widgets may use the complete application width. */
.sfs-tab-widget-section.sfs-widget-full-width {
    width: 100%; padding-inline: 12px; min-width: 0;
}
.sfs-tab-widget-section.sfs-widget-full-width .sfs-paragraph-inner {
    width: 100%; max-width: none;
}
.sfs-tab-widget-section.sfs-widget-full-width .sfs-document-section-body,
.sfs-tab-widget-section.sfs-widget-full-width .sfs-tab-widget-panel {
    width: 100%; min-width: 0; max-width: none;
}

.sfs-tab-widget-section.sfs-widget-full-width > .sfs-tab-widget-tabs,
.sfs-tab-widget-section.sfs-widget-full-width > .sfs-tab-widget-mobile-nav,
.sfs-widget-full-width .sfs-member-profile-form,
.sfs-widget-full-width .sfs-member-security-card {
    width: 100%; max-width: none;
}

.sfs-banner-option{border:1px solid #e5e7eb;border-radius:12px;background:#fff;margin:10px 0;padding:12px 14px}
.sfs-banner-option-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}
.sfs-banner-option-heading>.sfs-document-quick-toggle{margin:0;min-height:32px}
.sfs-banner-option-details>summary{cursor:pointer;color:#475569;font-weight:700;padding:5px;list-style:none}
.sfs-banner-option-details>summary::after{content:" ›";display:inline-block;margin-left:6px;font-size:20px;line-height:1;transition:transform .15s}
.sfs-banner-option-details[open]>summary::after{transform:rotate(90deg)}
.sfs-banner-option-details>summary::-webkit-details-marker{display:none}
.sfs-banner-option-details[open]{grid-column:1 / -1}
.sfs-banner-option-settings{display:grid;gap:10px;padding-top:12px}
@media(max-width:600px){.sfs-banner-option-heading{gap:8px}.sfs-banner-option{padding:10px}}

/* Common page-widget display; embedded controls inherit their container. */
.sfs-document-section.sfs-widget-full-width,
.sfs-document-block.sfs-widget-full-width { width:100%; max-width:none; min-width:0; padding-inline:12px; box-sizing:border-box; }
.sfs-document-section.sfs-widget-full-width > .sfs-document-section-body,
.sfs-document-section.sfs-widget-full-width > .sfs-document-section-top .sfs-paragraph-inner,
.sfs-document-block.sfs-widget-full-width > .sfs-paragraph > .sfs-paragraph-inner { width:100%; max-width:none; min-width:0; }
.sfs-document-block:has(> .sfs-page-widget-order-controls) { position:relative; }
.sfs-widget-full-width > .sfs-page-widget-order-controls { z-index:5; }
.sfs-page-widget-order-button.sfs-widget-display-button { width:auto; padding-inline:.7rem; border-radius:999px; font:inherit; font-size:.85rem; }
.sfs-document-section.is-hidden-in-public,
.sfs-document-block.is-hidden-in-public { outline:2px dashed #94a3b8; outline-offset:-2px; }
