:root {
    --primary-color: #b23a2f;
    --primary-hover: #8f251f;
    --primary-light: #fff0ed;
    --primary-soft-border: #f4c7c0;
    --accent-color: #2f6f5e;
    --accent-hover: #24584b;
    --accent-light: #eaf6f0;
    --warning-color: #b86b14;
    --warning-light: #fff6df;
    --danger-color: #b42318;
    --danger-light: #fff0ed;
    --info-color: #187084;
    --info-light: #e9f7fa;
    --surface: #ffffff;
    --surface-muted: #f6f8f7;
    --surface-strong: #eef3f1;
    --page-bg: #eef3f1;
    --text-main: #1c2623;
    --text-muted: #65736f;
    --border-color: #d9e2df;
    --border-strong: #bdcbc6;
    --radius: 8px;
    --shadow-sm: 0 1px 2px rgba(28, 38, 35, 0.07);
    --shadow-md: 0 12px 30px rgba(28, 38, 35, 0.11);
    --shadow-lg: 0 24px 60px rgba(28, 38, 35, 0.18);
    --transition-speed: 0.18s;
    --bs-primary: var(--primary-color);
    --bs-primary-rgb: 178, 58, 47;
    --bs-success: var(--accent-color);
    --bs-success-rgb: 47, 111, 94;
    --bs-warning: #f2b84b;
    --bs-warning-rgb: 242, 184, 75;
    --bs-danger: var(--danger-color);
    --bs-danger-rgb: 180, 35, 24;
    --bs-info: var(--info-color);
    --bs-info-rgb: 24, 112, 132;
    --bs-body-color: var(--text-main);
    --bs-body-bg: var(--page-bg);
    --bs-border-color: var(--border-color);
    --bs-link-color-rgb: 178, 58, 47;
    --bs-link-hover-color-rgb: 143, 37, 31;
    --bs-focus-ring-color: rgba(178, 58, 47, 0.24);
}

html {
    background: var(--page-bg);
}

* {
    -webkit-tap-highlight-color: rgba(178, 58, 47, 0.16);
}

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    color: var(--text-main);
    font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.86) 0, rgba(255, 255, 255, 0) 260px),
        var(--page-bg);
    letter-spacing: 0;
}

.app-main {
    width: min(100%, 1180px);
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--text-main);
    letter-spacing: 0;
}

a {
    color: var(--primary-color);
}

a:hover {
    color: var(--primary-hover);
}

.text-muted {
    color: var(--text-muted) !important;
}

.text-primary {
    color: var(--primary-color) !important;
}

.text-success {
    color: var(--accent-color) !important;
}

.text-warning {
    color: var(--warning-color) !important;
}

.text-danger {
    color: var(--danger-color) !important;
}

.text-info {
    color: var(--info-color) !important;
}

.text-warning-emphasis,
.proposal-text {
    color: var(--warning-color) !important;
}

.bg-primary {
    background-color: var(--primary-color) !important;
}

.bg-success {
    background-color: var(--accent-color) !important;
}

.bg-warning {
    background-color: #f2b84b !important;
}

.bg-danger {
    background-color: var(--danger-color) !important;
}

.bg-info {
    background-color: var(--info-color) !important;
}

.bg-primary,
.bg-success,
.bg-danger,
.bg-info {
    color: #fff8f2 !important;
}

.bg-primary h1,
.bg-primary h2,
.bg-primary h3,
.bg-primary h4,
.bg-primary h5,
.bg-primary h6,
.bg-success h1,
.bg-success h2,
.bg-success h3,
.bg-success h4,
.bg-success h5,
.bg-success h6,
.bg-danger h1,
.bg-danger h2,
.bg-danger h3,
.bg-danger h4,
.bg-danger h5,
.bg-danger h6,
.bg-info h1,
.bg-info h2,
.bg-info h3,
.bg-info h4,
.bg-info h5,
.bg-info h6 {
    color: #fff8f2 !important;
}

.bg-primary .text-muted,
.bg-success .text-muted,
.bg-danger .text-muted,
.bg-info .text-muted {
    color: rgba(255, 248, 242, 0.72) !important;
}

.bg-light {
    background-color: var(--surface-muted) !important;
}

.border-primary {
    border-color: rgba(178, 58, 47, 0.38) !important;
}

.border-success {
    border-color: rgba(47, 111, 94, 0.4) !important;
}

.border-warning {
    border-color: rgba(184, 107, 20, 0.42) !important;
}

.footer {
    border-color: var(--border-color) !important;
}

.app-navbar {
    background: rgba(255, 255, 255, 0.94) !important;
    border-bottom: 1px solid rgba(189, 203, 198, 0.78);
    box-shadow: 0 10px 26px rgba(28, 38, 35, 0.06);
    backdrop-filter: blur(14px);
    padding-top: 0.8rem;
    padding-bottom: 0.8rem;
}

.navbar-brand {
    color: var(--text-main) !important;
    font-weight: 800;
    letter-spacing: 0;
}

.app-brand-mark {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: var(--primary-color);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 18px rgba(178, 58, 47, 0.22);
}

.brand-mark-lg {
    width: 48px;
    height: 48px;
}

.brand-mark-xl {
    width: 56px;
    height: 56px;
}

.nav-link {
    border-radius: 8px;
    color: var(--text-muted);
    font-weight: 700;
    padding: 0.55rem 0.75rem !important;
    transition: background-color var(--transition-speed), color var(--transition-speed);
}

.nav-link:hover,
.nav-link.active {
    color: var(--primary-color);
    background: var(--primary-light);
}

.card {
    overflow: hidden;
    border: 1px solid var(--border-color) !important;
    border-radius: var(--radius) !important;
    background: var(--surface);
    box-shadow: var(--shadow-sm);
    transition: box-shadow var(--transition-speed), border-color var(--transition-speed);
}

.card:hover {
    border-color: var(--border-strong) !important;
    box-shadow: var(--shadow-md);
}

.card-header,
.card-footer {
    border-color: var(--border-color) !important;
}

.card-header.bg-primary,
.card-header.bg-warning {
    border-bottom: 0 !important;
}

.admin-card {
    border-radius: var(--radius);
    overflow: hidden;
}

.admin-card-header {
    border-radius: 8px 8px 0 0;
}

.admin-card-body {
    border-radius: 0 0 8px 8px;
}

.sticky-side-panel {
    top: 20px;
}

.btn {
    --bs-btn-focus-shadow-rgb: 178, 58, 47;
    border-radius: 8px;
    padding: 0.62rem 1.05rem;
    font-weight: 800;
    letter-spacing: 0;
    box-shadow: none;
    transition:
        transform var(--transition-speed),
        box-shadow var(--transition-speed),
        background-color var(--transition-speed),
        border-color var(--transition-speed),
        color var(--transition-speed);
}

.btn:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(28, 38, 35, 0.11);
}

.btn-sm {
    padding: 0.42rem 0.76rem;
}

.btn-lg {
    border-radius: 8px;
}

.btn-primary {
    --bs-btn-bg: var(--primary-color);
    --bs-btn-border-color: var(--primary-color);
    --bs-btn-hover-bg: var(--primary-hover);
    --bs-btn-hover-border-color: var(--primary-hover);
    --bs-btn-active-bg: var(--primary-hover);
    --bs-btn-active-border-color: var(--primary-hover);
    --bs-btn-disabled-bg: var(--primary-color);
    --bs-btn-disabled-border-color: var(--primary-color);
    background: var(--primary-color);
    border-color: var(--primary-color);
    color: #fff;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.show > .btn-primary.dropdown-toggle {
    background: var(--primary-hover);
    border-color: var(--primary-hover);
    color: #fff;
}

.btn-light,
.btn-white {
    --bs-btn-active-bg: var(--surface-strong);
    --bs-btn-active-border-color: var(--border-strong);
    background: #fff;
    border-color: var(--border-color);
    color: var(--text-main);
}

.btn-outline-primary {
    --bs-btn-color: var(--primary-color);
    --bs-btn-border-color: rgba(178, 58, 47, 0.42);
    --bs-btn-hover-color: var(--primary-hover);
    --bs-btn-hover-bg: var(--primary-light);
    --bs-btn-hover-border-color: rgba(178, 58, 47, 0.56);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--primary-color);
    --bs-btn-active-border-color: var(--primary-color);
    color: var(--primary-color);
    border-color: rgba(178, 58, 47, 0.42);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
    background: var(--primary-light);
    color: var(--primary-hover);
    border-color: rgba(178, 58, 47, 0.56);
}

.btn-outline-primary:active,
.btn-outline-primary.active,
.btn-check:checked + .btn-outline-primary,
.btn-check:active + .btn-outline-primary,
.show > .btn-outline-primary.dropdown-toggle {
    background: var(--primary-color);
    border-color: var(--primary-color);
    color: #fff;
}

.btn-outline-success {
    --bs-btn-color: var(--accent-color);
    --bs-btn-border-color: rgba(47, 111, 94, 0.42);
    --bs-btn-hover-color: var(--accent-hover);
    --bs-btn-hover-bg: var(--accent-light);
    --bs-btn-hover-border-color: rgba(47, 111, 94, 0.56);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--accent-color);
    --bs-btn-active-border-color: var(--accent-color);
    color: var(--accent-color);
    border-color: rgba(47, 111, 94, 0.42);
}

.btn-outline-success:hover,
.btn-outline-success:focus {
    background: var(--accent-light);
    color: var(--accent-hover);
    border-color: rgba(47, 111, 94, 0.56);
}

.btn-outline-success:active,
.btn-outline-success.active,
.btn-check:checked + .btn-outline-success,
.btn-check:active + .btn-outline-success,
.show > .btn-outline-success.dropdown-toggle {
    background: var(--accent-color);
    border-color: var(--accent-color);
    color: #fff;
}

.btn-outline-danger {
    --bs-btn-color: var(--danger-color);
    --bs-btn-border-color: rgba(180, 35, 24, 0.42);
    --bs-btn-hover-color: var(--danger-color);
    --bs-btn-hover-bg: var(--danger-light);
    --bs-btn-hover-border-color: rgba(180, 35, 24, 0.56);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--danger-color);
    --bs-btn-active-border-color: var(--danger-color);
}

.btn-outline-danger:hover,
.btn-outline-danger:focus {
    background: var(--danger-light);
    color: var(--danger-color);
    border-color: rgba(180, 35, 24, 0.56);
}

.btn-outline-danger:active,
.btn-outline-danger.active,
.btn-check:checked + .btn-outline-danger,
.btn-check:active + .btn-outline-danger,
.show > .btn-outline-danger.dropdown-toggle {
    background: var(--danger-color);
    border-color: var(--danger-color);
    color: #fff;
}

.btn:focus,
.btn:focus-visible,
.btn-check:focus + .btn,
.btn-check:focus-visible + .btn {
    box-shadow: 0 0 0 0.2rem rgba(178, 58, 47, 0.18);
}

.btn-success {
    background: var(--accent-color);
    border-color: var(--accent-color);
}

.btn-circle,
.btn-circle-sm,
.btn-circle-xs {
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px !important;
    aspect-ratio: 1 / 1;
    flex-shrink: 0;
}

.btn-circle,
.btn-circle-sm {
    width: 32px;
    height: 32px;
}

.btn-circle-xs {
    width: 28px;
    height: 28px;
}

.btn-circle-xxs {
    width: 30px;
    height: 30px;
}

.btn-disabled-muted {
    opacity: 0.3;
    cursor: default;
}

.form-label {
    color: var(--text-muted);
    font-weight: 800;
}

.form-control,
.form-select,
.input-group-text {
    border-radius: 8px;
    border-color: var(--border-color);
    color: var(--text-main);
    background-color: #fff;
}

.form-control,
.form-select {
    padding: 0.72rem 0.9rem;
}

.form-control::placeholder {
    color: #98a29f;
}

.form-control:focus,
.form-select:focus {
    border-color: rgba(178, 58, 47, 0.62);
    box-shadow: 0 0 0 4px rgba(178, 58, 47, 0.12);
}

.input-group > .form-control,
.input-group > .form-select,
.input-group > .input-group-text {
    box-shadow: none !important;
}

.form-check-input:checked {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
}

.form-check-input:focus {
    border-color: rgba(178, 58, 47, 0.62);
    box-shadow: 0 0 0 0.2rem rgba(178, 58, 47, 0.16);
}

.form-check-input:active {
    background-color: var(--primary-light);
    filter: none;
}

.switch-sm {
    width: 2.5em !important;
    height: 1.25em;
    cursor: pointer;
}

.form-icon-wrapper {
    position: relative;
}

.form-icon-wrapper i {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-muted);
}

.form-icon-wrapper .form-control {
    padding-left: 35px;
}

.form-label-clickable,
.clickable-label {
    cursor: pointer;
}

.table {
    --bs-table-color: var(--text-main);
    --bs-table-bg: transparent;
}

.table thead,
.table-head-compact {
    background: var(--surface-muted) !important;
    color: var(--text-muted) !important;
    border-bottom: 1px solid var(--border-color);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0;
}

.table-head-sm {
    font-size: 0.8rem;
}

.table-head-sticky {
    position: sticky;
    top: 0;
    z-index: 10;
}

.table thead th {
    font-size: 0.76rem;
    letter-spacing: 0;
    font-weight: 800;
}

.table tbody td {
    border-color: #ecf1ef;
}

.table-custom-hover tbody tr {
    transition: background-color var(--transition-speed);
}

.table-custom-hover tbody tr:hover {
    background-color: #fbf8f6 !important;
    transform: none !important;
    box-shadow: none !important;
}

.table-scroll-restaurants {
    max-height: 850px;
}

.table-min-600 {
    min-width: 600px;
}

.table-min-620 {
    min-width: 620px;
}

.table-min-900 {
    min-width: 900px;
}

.nav-pills {
    background: #fff;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 0.35rem;
    box-shadow: var(--shadow-sm);
    display: inline-flex;
}

.nav-pills .nav-link {
    color: var(--text-muted);
    border-radius: 7px;
    font-weight: 800;
}

.nav-pills .nav-link.active {
    background: var(--primary-color);
    color: #fff;
    box-shadow: 0 8px 18px rgba(178, 58, 47, 0.18);
}

.nav-pills .nav-link.active .badge {
    color: var(--primary-color) !important;
}

.modal-content {
    border: 1px solid var(--border-color);
    border-radius: 8px !important;
    box-shadow: var(--shadow-lg);
}

.modal-header,
.modal-footer {
    background: var(--surface-muted) !important;
    border-color: var(--border-color) !important;
}

.modal-title {
    font-weight: 800;
}

.alert {
    border-radius: 8px;
    border-color: var(--border-color);
    box-shadow: var(--shadow-sm);
}

.badge {
    border-radius: 999px;
    font-weight: 800;
    padding: 0.42em 0.7em;
    letter-spacing: 0;
}

.bg-primary-soft {
    background-color: var(--primary-light) !important;
    color: var(--primary-color) !important;
}

.bg-success-soft {
    background-color: var(--accent-light) !important;
    color: var(--accent-color) !important;
}

.bg-danger-soft {
    background-color: var(--danger-light) !important;
    color: var(--danger-color) !important;
}

.bg-warning-soft {
    background-color: var(--warning-light) !important;
    color: var(--warning-color) !important;
}

.bg-info-soft {
    background-color: var(--info-light) !important;
    color: var(--info-color) !important;
}

.shadow-primary {
    box-shadow: 0 14px 30px rgba(178, 58, 47, 0.22) !important;
}

.auth-shell {
    min-height: 62vh;
}

.error-shell {
    min-height: 64vh;
}

.min-w-0 {
    min-width: 0;
}

.cell-max-250 {
    max-width: 250px;
}

.text-max-200 {
    max-width: 200px;
}

.text-max-300,
.event-chip-list {
    max-width: 300px;
}

.badge-max-140 {
    max-width: 140px;
    font-weight: 600;
}

.share-link-group {
    max-width: 220px;
}

.share-link-group .form-control {
    font-size: 0.75rem;
}

.user-added-card {
    border: 1px solid rgba(184, 107, 20, 0.42) !important;
}

.text-xs {
    font-size: 0.75rem;
}

.text-xxs {
    font-size: 0.7rem;
}

.text-compact {
    letter-spacing: 0;
    font-size: 0.75rem;
}

.text-compact-sm {
    letter-spacing: 0;
    font-size: 0.7rem;
}

.text-sm {
    font-size: 0.8rem;
}

.badge-xs {
    font-size: 0.65rem;
}

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

.iframe-borderless {
    border: 0;
}

.empty-state-icon {
    width: 80px;
    height: 80px;
}

.custom-scrollbar::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

.custom-scrollbar::-webkit-scrollbar-track {
    background: #edf3f0;
    border-radius: 8px;
}

.custom-scrollbar::-webkit-scrollbar-thumb {
    background: #b7c6c1;
    border-radius: 8px;
}

.custom-scrollbar::-webkit-scrollbar-thumb:hover {
    background: #93a59f;
}

.date-badge {
    border: 1px solid var(--border-color) !important;
    border-radius: 8px !important;
    text-align: center;
    overflow: hidden;
    width: 65px;
    background: #fff;
    box-shadow: var(--shadow-sm) !important;
}

.date-badge .month {
    background: var(--danger-light) !important;
    color: var(--danger-color) !important;
    border-color: var(--primary-soft-border) !important;
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    padding: 2px 0;
    border-bottom: 1px solid var(--primary-soft-border);
}

.date-badge .day {
    font-size: 1.3rem;
    font-weight: 800;
    color: var(--text-main);
    line-height: 1.2;
    padding: 4px 0;
}

.avatar,
.avatar-sm {
    background: var(--primary-light) !important;
    color: var(--primary-color) !important;
    border: 1px solid rgba(178, 58, 47, 0.18);
}

.avatar {
    width: 36px;
    height: 36px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 14px;
    margin-right: 10px;
    text-transform: uppercase;
}

.avatar-sm {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 800;
}

.selector-item {
    position: relative;
    width: 100%;
    margin-bottom: 0.75rem;
}

.selector-item-input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.selector-item-label {
    display: flex;
    align-items: center;
    min-height: 100%;
    padding: 1rem;
    background: #fff;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    cursor: pointer;
    transition:
        border-color var(--transition-speed),
        background-color var(--transition-speed),
        box-shadow var(--transition-speed);
    box-shadow: var(--shadow-sm);
}

.selector-item-label:hover {
    border-color: var(--border-strong);
    box-shadow: var(--shadow-md);
    transform: none;
}

.selector-item-input:checked + .selector-item-label {
    border-color: rgba(178, 58, 47, 0.62);
    background-color: var(--primary-light);
    color: var(--primary-color);
}

.selector-item-input:checked + .selector-item-label .text-muted {
    color: #596964 !important;
}

.selector-item-input:checked + .selector-item-label i {
    color: var(--primary-color);
}

.check-icon {
    width: 24px;
    height: 24px;
    border: 2px solid var(--border-strong);
    border-radius: 999px;
    margin-right: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--transition-speed);
    flex-shrink: 0;
}

.selector-item-input:checked + .selector-item-label .check-icon {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
    color: #fff;
}

.check-icon::after {
    content: "\f00c";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 14px;
    opacity: 0;
    transform: scale(0);
    transition: all var(--transition-speed);
}

.selector-item-input:checked + .selector-item-label .check-icon::after {
    opacity: 1;
    transform: scale(1);
}

.suggestion-container,
.selection-error {
    display: none;
}

.suggestion-container.is-visible,
.selection-error.is-visible {
    display: block;
}

.custom-suggestion-card {
    border: 2px solid var(--primary-light) !important;
    border-radius: 8px;
}

.other-place-card {
    transition: all 0.2s;
}

.other-place-card:hover {
    border-color: var(--primary-soft-border) !important;
    background: #fff !important;
}

.other-place-label {
    cursor: pointer;
    min-width: 0;
}

.other-place-name {
    font-size: 0.9rem;
}

.other-place-address {
    font-size: 0.75rem;
}

.choice-note {
    font-size: 0.8em;
}

.live-refresh-btn {
    width: 28px;
    height: 28px;
}

.live-summary-card {
    background: var(--primary-color) !important;
}

.event-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: stretch;
    padding: clamp(0.9rem, 1.8vw, 1.2rem);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(178, 58, 47, 0.1), rgba(47, 111, 94, 0.08)),
        #fff;
    box-shadow: var(--shadow-sm);
}

.event-hero-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.event-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    width: fit-content;
    margin-bottom: 0.5rem;
    padding: 0.28rem 0.58rem;
    border-radius: 999px;
    background: var(--primary-light);
    color: var(--primary-color);
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.event-title {
    max-width: 840px;
    margin: 0;
    font-size: clamp(1.35rem, 2.15vw, 1.85rem);
    line-height: 1.12;
    font-weight: 800;
    color: var(--text-main);
}

.event-title i {
    color: var(--primary-color);
}

.event-meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-top: 0.75rem;
}

.event-meta-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    min-height: 1.8rem;
    padding: 0.32rem 0.62rem;
    border: 1px solid var(--border-color);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.78);
    color: var(--text-main);
    font-size: 0.82rem;
    font-weight: 800;
}

.event-meta-pill i {
    color: var(--primary-color);
}

.event-description {
    display: flex;
    gap: 0.7rem;
    max-width: 780px;
    margin-top: 0.75rem;
    padding: 0.7rem 0.85rem;
    border-left: 3px solid var(--accent-color);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.68);
    color: var(--text-muted);
    font-size: 0.88rem;
}

.event-description i {
    color: var(--accent-color);
    padding-top: 0.15rem;
}

.event-hero-side {
    min-width: 122px;
    display: grid;
    align-content: center;
    gap: 0.75rem;
}

.event-date-card {
    display: grid;
    place-items: center;
    min-height: 110px;
    padding: 0.7rem;
    border: 1px solid var(--primary-soft-border);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--shadow-sm);
}

.event-date-month,
.event-date-time {
    color: var(--primary-color);
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
}

.event-date-day {
    color: var(--text-main);
    font-size: 2.35rem;
    line-height: 1;
    font-weight: 800;
}

.event-layout {
    margin-top: 0.25rem;
}

.event-results-column {
    position: sticky;
    top: 92px;
}

.vote-confirmation-card .card-body {
    background: linear-gradient(180deg, #fff 0%, var(--accent-light) 100%);
}

.restaurant-list .card,
.restaurant-choice-list .selector-item-label {
    border-color: var(--border-color) !important;
}

.vote-card {
    border-color: rgba(178, 58, 47, 0.18) !important;
}

.vote-card-header {
    padding: 1.25rem 1.25rem 0.5rem;
}

.vote-card-body {
    padding: 0.75rem 1.25rem 1.25rem;
}

.guest-fields {
    padding: 1rem;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background: var(--surface-muted);
}

.attendance-options .btn {
    min-height: 88px;
    display: grid;
    align-content: center;
}

.restaurant-choice-list {
    padding: 0.35rem;
    border-radius: 8px;
    background: var(--surface-muted);
}

.live-toolbar {
    min-height: 2rem;
}

.event-summary-card {
    overflow: hidden;
}

.event-summary-body {
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0)),
        var(--primary-color);
}

.event-summary-card h2,
.event-summary-card .fs-5,
.event-summary-card .fw-bold {
    color: #fff8f2;
}

.event-summary-card .text-white-50 {
    color: rgba(255, 248, 242, 0.72) !important;
}

.event-summary-card .badge.bg-white {
    color: var(--primary-color) !important;
}

.trend-accordion {
    --bs-accordion-bg: transparent;
    --bs-accordion-border-color: rgba(255, 248, 242, 0.2);
    --bs-accordion-btn-focus-box-shadow: 0 0 0 0.18rem rgba(255, 248, 242, 0.18);
    text-align: left;
}

.trend-accordion .accordion-item {
    overflow: hidden;
    border: 1px solid rgba(255, 248, 242, 0.24);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.08);
}

.trend-accordion .accordion-button {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 0.9rem;
    background: rgba(255, 255, 255, 0.1);
    color: #fff8f2;
    font-size: 0.88rem;
    font-weight: 800;
    box-shadow: none;
}

.trend-accordion .accordion-button:not(.collapsed) {
    background: rgba(255, 255, 255, 0.15);
    color: #fff8f2;
}

.trend-accordion .accordion-button::after {
    filter: brightness(0) invert(1);
    opacity: 0.82;
}

.trend-count-badge {
    min-width: 1.6rem;
    height: 1.45rem;
    padding: 0 0.45rem;
    border-radius: 999px;
    background: rgba(255, 248, 242, 0.18);
    color: #fff8f2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    flex-shrink: 0;
}

.trend-accordion .accordion-body {
    padding: 0.45rem;
}

.trend-list {
    display: grid;
    gap: 0.35rem;
}

.trend-list-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.55rem 0.65rem;
    border-radius: 8px;
    background: rgba(255, 248, 242, 0.12);
}

.trend-name {
    min-width: 0;
    color: #fff8f2;
    font-weight: 800;
}

.trend-votes {
    flex-shrink: 0;
    color: rgba(255, 248, 242, 0.78);
    font-size: 0.8rem;
    font-weight: 800;
}

.summary-stat h2 {
    font-size: 2.15rem;
}

.participants-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.participants-accordion {
    --bs-accordion-bg: var(--surface);
    --bs-accordion-border-color: var(--border-color);
    --bs-accordion-btn-focus-border-color: var(--primary-soft-border);
    --bs-accordion-btn-focus-box-shadow: 0 0 0 0.18rem rgba(178, 58, 47, 0.14);
    --bs-accordion-active-bg: var(--primary-light);
    --bs-accordion-active-color: var(--primary-color);
    --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%231c2623' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");
    --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23b23a2f' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");
}

.participants-accordion .accordion-item {
    border: 0;
    border-top: 1px solid var(--border-color);
    border-radius: 0;
}

.participants-accordion .accordion-item:first-child {
    border-top: 0;
}

.participants-accordion .accordion-button {
    min-height: 3.2rem;
    padding: 0.9rem 1rem;
    gap: 0.75rem;
    color: var(--text-main);
    background: var(--surface);
    font-weight: 800;
    box-shadow: none;
}

.participants-accordion .accordion-button:not(.collapsed) {
    color: var(--primary-color);
    background: var(--primary-light);
    box-shadow: inset 0 -1px 0 var(--primary-soft-border);
}

.participants-accordion .accordion-button::after {
    width: 0.95rem;
    height: 0.95rem;
    background-size: 0.95rem;
}

.participant-group-title {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    min-width: 0;
}

.participant-group-title i {
    width: 1rem;
    text-align: center;
}

.participants-accordion .accordion-item:first-child .participant-group-title i {
    color: var(--accent-color);
}

.participants-accordion .accordion-item:last-child .participant-group-title i {
    color: var(--danger-color);
}

.participant-group-count {
    min-width: 2rem;
    height: 1.55rem;
    margin-left: auto;
    margin-right: 0.45rem;
    padding: 0 0.55rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--primary-color);
    background: #fff8f2;
    font-size: 0.82rem;
    font-weight: 900;
    line-height: 1;
    border: 1px solid var(--primary-soft-border);
}

.participants-accordion .accordion-body {
    background: var(--surface);
}

.participant-empty-state {
    padding: 1.25rem 1rem;
    color: var(--text-muted);
    font-size: 0.92rem;
    text-align: center;
}

.participant-row {
    transition: background-color var(--transition-speed);
}

.participant-row:hover {
    background: var(--surface-muted);
}

.vote-section {
    transition: opacity 0.3s ease;
}

.vote-section.is-fading {
    opacity: 0;
}

.clipboard-buffer {
    position: fixed;
    top: 0;
    left: 0;
    opacity: 0;
    pointer-events: none;
}

.recipient-toggle-label {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
}

.recipient-count-badge {
    min-width: 2.25rem;
    height: 1.75rem;
    padding: 0 0.65rem;
    border-radius: 999px;
    background: var(--primary-color);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1;
    box-shadow: 0 0 0 3px rgba(178, 58, 47, 0.14);
}

.manual-recipient-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.manual-recipient-card {
    background: #fff;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 0.9rem;
    box-shadow: var(--shadow-sm);
}

.manual-recipient-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.manual-recipient-index {
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 999px;
    background: var(--primary-light);
    color: var(--primary-color);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.78rem;
    font-weight: 800;
    border: 1px solid rgba(178, 58, 47, 0.24);
}

.planner-section {
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
}

.planner-section + .planner-section {
    margin-top: 0.9rem;
}

.planner-section.is-open {
    border-color: rgba(178, 58, 47, 0.26);
    box-shadow: var(--shadow-sm);
}

.planner-section-toggle {
    width: 100%;
    border: 0;
    background: var(--surface-muted);
    color: inherit;
    text-align: left;
    padding: 1rem;
    cursor: pointer;
    transition: background-color 0.18s ease;
}

.planner-section-toggle:hover {
    background: #fbf4f2;
}

.planner-section.is-open .planner-section-toggle {
    background: #fff;
}

.planner-section-panel {
    padding: 0 1rem 1.15rem;
}

.section-heading {
    display: flex;
    align-items: center;
    gap: 0.9rem;
}

.section-heading-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
}

.restaurant-action-bar {
    display: grid;
    grid-template-columns: repeat(3, max-content);
    gap: 0.5rem;
    justify-content: end;
    align-items: center;
    margin: 0 0 1rem auto;
}

.restaurant-action-bar .btn {
    min-width: 112px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
}

.restaurant-action-bar [data-restaurant-action="none"] {
    min-width: 82px;
}

.step-badge {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: var(--primary-color);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    flex-shrink: 0;
    box-shadow: 0 8px 18px rgba(178, 58, 47, 0.18);
}

.section-chevron {
    color: var(--text-muted);
    flex-shrink: 0;
    transition: transform 0.18s ease;
}

.date-time-panel {
    background: var(--surface-muted);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 1rem;
}

.date-compact-input .input-group-text {
    width: 46px;
    justify-content: center;
    padding-left: 0.75rem;
    padding-right: 0.55rem;
}

.date-compact-input .form-control {
    min-width: 0;
    padding-right: 0.45rem;
}

.date-compact-input input[type="date"]::-webkit-calendar-picker-indicator,
.date-compact-input input[type="time"]::-webkit-calendar-picker-indicator {
    margin-left: 0.15rem;
    padding: 0;
}

.date-preview {
    border: 1px solid var(--primary-soft-border);
    background: #fff;
    border-radius: 8px;
    color: var(--text-main);
    font-weight: 800;
    padding: 0.85rem 1rem;
    transition: box-shadow 0.3s, border-color 0.3s;
}

.date-preview.is-ready {
    color: var(--accent-hover);
    border-color: rgba(47, 111, 94, 0.34);
    background: var(--accent-light);
}

.date-preview.is-highlighted {
    box-shadow: 0 0 0 0.25rem rgba(47, 111, 94, 0.18);
}

.date-shortcuts {
    background: #fff;
    border-left: 3px solid var(--primary-color);
    padding-left: 1rem;
}

.preset-btn {
    transition: all 0.2s;
}

.preset-btn:hover {
    transform: translateY(-1px);
}

.preset-btn.is-active {
    border-color: var(--primary-color) !important;
    box-shadow: 0 0 0 0.2rem rgba(178, 58, 47, 0.12);
}

.restaurant-search-box:has(.restaurant-results:not(.d-none)),
.restaurant-search-box:has(.dropdown-menu.show) {
    position: relative;
    z-index: 51;
}

.card:has(.restaurant-results:not(.d-none)),
.admin-card:has(.restaurant-results:not(.d-none)),
.planner-section:has(.restaurant-results:not(.d-none)),
.card:has(.dropdown-menu.show),
.admin-card:has(.dropdown-menu.show),
.planner-section:has(.dropdown-menu.show) {
    position: relative;
    z-index: 50;
    overflow: visible !important;
}

.restaurant-results {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    z-index: 52;
    max-height: 320px;
    overflow-y: auto;
    background: #fff;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    box-shadow: var(--shadow-md);
}

.restaurant-result-btn,
.selected-restaurant-item {
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background: #fff;
}

.restaurant-result-btn {
    width: 100%;
    text-align: left;
    padding: 0.85rem 1rem;
    border-width: 0 0 1px 0;
    border-radius: 0;
    box-shadow: none;
}

.restaurant-result-btn:last-child {
    border-bottom: 0;
}

.restaurant-result-btn:hover {
    background: #fbf8f6;
    transform: none;
}

.selected-restaurants {
    min-height: 160px;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.selected-restaurant-item {
    padding: 0.85rem 1rem;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.empty-selection {
    min-height: 160px;
    border: 1px dashed var(--border-strong);
    border-radius: 8px;
    background: var(--surface-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 1.5rem;
}

.all-restaurants-list {
    max-height: min(60vh, 520px);
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding-right: 0.2rem;
}

.all-restaurant-item {
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background: #fff;
    padding: 0.85rem 1rem;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.event-edit-modal {
    max-width: min(1180px, calc(100vw - 2rem));
}

.event-edit-modal .modal-content {
    border-radius: 8px;
}

.event-edit-modal .modal-body {
    max-height: calc(100vh - 210px);
    overflow-y: auto;
}

.restaurant-select-scroll {
    max-height: 300px;
    overflow-y: auto;
}

.participants-scroll {
    max-height: 60vh;
    overflow-y: auto;
}

.mailing-hero {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.mailing-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(120px, 1fr));
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.mailing-stat {
    background: #fff;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 1rem;
    box-shadow: var(--shadow-sm);
}

.mailing-stat-value {
    color: var(--text-main);
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1;
}

.mailing-toolbar {
    background: #fff;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 1rem;
    margin-bottom: 1rem;
}

.mailing-list-card {
    border-radius: 8px;
    overflow: hidden;
}

.mailing-list-card.is-hidden {
    display: none;
}

.mailing-empty-filter {
    display: none;
}

.mailing-empty-filter.is-visible {
    display: block;
}

.contact-add-panel {
    background: var(--surface-muted);
    border-top: 1px solid var(--border-color);
    padding: 1rem;
}

.icon-btn {
    width: 34px;
    height: 34px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
}

@media (max-width: 991.98px) {
    .navbar-nav {
        padding-top: 0.8rem;
        gap: 0.35rem;
    }

    .nav-link {
        width: 100%;
    }

    .section-heading-actions {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .restaurant-action-bar {
        width: 100%;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        justify-content: stretch;
    }

    .restaurant-action-bar .btn,
    .restaurant-action-bar [data-restaurant-action="none"] {
        min-width: 0;
    }

    .event-hero {
        grid-template-columns: 1fr;
    }

    .event-hero-side {
        grid-template-columns: auto minmax(0, 1fr);
        align-items: center;
        min-width: 0;
    }

    .event-date-card {
        min-height: 92px;
        min-width: 96px;
    }

    .event-date-day {
        font-size: 2.05rem;
    }

    .event-results-column {
        position: static;
    }
}

@media (max-width: 767.98px) {
    .section-heading,
    .section-heading-actions {
        align-items: flex-start;
    }

    .all-restaurant-item {
        flex-direction: column;
    }

    .all-restaurant-item .btn {
        width: 100%;
    }

    .mailing-hero {
        align-items: flex-start;
    }

    .mailing-stats {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .app-main {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .manual-recipient-header,
    .manual-recipient-card-header {
        flex-direction: column;
        align-items: stretch;
    }

    .restaurant-action-bar {
        grid-template-columns: 1fr;
    }

    .restaurant-action-bar .btn {
        width: 100%;
    }

    .btn {
        white-space: normal;
    }

    .event-hero {
        padding: 0.85rem;
    }

    .event-title {
        font-size: 1.32rem;
    }

    .event-hero-side {
        grid-template-columns: 1fr;
    }

    .event-date-card {
        min-height: auto;
        grid-template-columns: auto 1fr auto;
        justify-items: start;
        gap: 0.8rem;
    }

    .event-date-day {
        font-size: 1.75rem;
    }

    .event-meta-pill {
        width: 100%;
    }

    .guest-fields {
        padding: 0.8rem;
    }
}

/* --------------------------------------------------------------------------
   Expérience visuelle 2026 — accueil et finitions globales
   -------------------------------------------------------------------------- */
:root {
    --radius: 14px;
    --radius-sm: 10px;
    --radius-lg: 24px;
    --page-bg: #f5f2ec;
    --surface-muted: #f8f6f1;
    --surface-strong: #eee9df;
    --border-color: #e4ded3;
    --border-strong: #cfc5b7;
    --text-main: #22241f;
    --text-muted: #6d7169;
    --shadow-sm: 0 2px 10px rgba(45, 38, 29, 0.06);
    --shadow-md: 0 18px 44px rgba(45, 38, 29, 0.11);
    --shadow-lg: 0 28px 70px rgba(45, 38, 29, 0.16);
}

html {
    scroll-behavior: smooth;
}

body {
    background:
        radial-gradient(circle at 8% 0%, rgba(178, 58, 47, 0.08), transparent 28rem),
        linear-gradient(180deg, #fbfaf7 0, var(--page-bg) 36rem);
    line-height: 1.6;
}

.app-main > .container {
    max-width: none;
    padding-right: 0;
    padding-left: 0;
}

.app-navbar {
    border-bottom-color: rgba(207, 197, 183, 0.72);
    box-shadow: 0 8px 32px rgba(45, 38, 29, 0.055);
}

.app-brand-mark {
    border-radius: 11px;
    background: linear-gradient(145deg, #c14b3e, var(--primary-color));
}

.card,
.modal-content,
.planner-section,
.mailing-stat,
.mailing-toolbar {
    border-radius: var(--radius) !important;
}

.form-control,
.form-select,
.input-group-text,
.btn,
.alert {
    border-radius: var(--radius-sm);
}

.form-control,
.form-select {
    min-height: 46px;
}

.btn {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
}

.btn-sm {
    min-height: 38px;
}

.btn-circle,
.btn-circle-sm,
.btn-circle-xs,
.icon-btn {
    min-height: unset;
}

.home-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    margin-top: 0.5rem;
    padding: clamp(2.3rem, 6vw, 5.4rem) clamp(1.25rem, 4.5vw, 4.5rem);
    border: 1px solid rgba(207, 197, 183, 0.78);
    border-radius: 30px;
    background:
        linear-gradient(120deg, rgba(255, 255, 255, 0.98), rgba(250, 246, 239, 0.94)),
        #fff;
    box-shadow: 0 28px 80px rgba(55, 44, 31, 0.11);
}

.home-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    opacity: 0.35;
    background-image: radial-gradient(rgba(178, 58, 47, 0.18) 0.75px, transparent 0.75px);
    background-size: 18px 18px;
    mask-image: linear-gradient(90deg, transparent, #000 65%);
}

.home-hero-glow {
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    filter: blur(2px);
    pointer-events: none;
}

.home-hero-glow-one {
    width: 320px;
    height: 320px;
    right: -100px;
    top: -150px;
    background: rgba(178, 58, 47, 0.13);
}

.home-hero-glow-two {
    width: 230px;
    height: 230px;
    right: 29%;
    bottom: -160px;
    background: rgba(47, 111, 94, 0.12);
}

.home-eyebrow {
    width: fit-content;
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 1.35rem;
    padding: 0.45rem 0.8rem 0.45rem 0.5rem;
    border: 1px solid var(--primary-soft-border);
    border-radius: 999px;
    background: rgba(255, 240, 237, 0.72);
    color: var(--primary-color);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.045em;
    text-transform: uppercase;
}

.home-eyebrow-icon {
    width: 29px;
    height: 29px;
    display: inline-grid;
    place-items: center;
    border-radius: 50%;
    background: var(--primary-color);
    color: #fff;
}

.home-title {
    max-width: 760px;
    margin: 0;
    font-size: clamp(2.45rem, 5.4vw, 4.9rem);
    line-height: 0.99;
    letter-spacing: -0.055em;
    font-weight: 800;
}

.home-title span {
    color: var(--primary-color);
}

.home-lead {
    max-width: 660px;
    margin: 1.6rem 0 0;
    color: var(--text-muted);
    font-size: clamp(1rem, 1.3vw, 1.15rem);
    line-height: 1.75;
}

.home-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.25rem;
    margin-top: 2rem;
}

.home-primary-cta {
    min-height: 54px;
    gap: 0.8rem;
    padding-right: 1.3rem;
    padding-left: 1.3rem;
    border-radius: 13px;
    box-shadow: 0 14px 28px rgba(178, 58, 47, 0.23);
}

.home-action-note {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--text-muted);
    font-size: 0.84rem;
    font-weight: 700;
}

.home-action-note i {
    color: var(--accent-color);
}

.home-proof {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem 1.25rem;
    margin-top: 1.8rem;
    color: #545b54;
    font-size: 0.82rem;
    font-weight: 700;
}

.home-proof span {
    display: inline-flex;
    align-items: center;
    gap: 0.42rem;
}

.home-proof i {
    width: 19px;
    height: 19px;
    display: inline-grid;
    place-items: center;
    border-radius: 50%;
    background: var(--accent-light);
    color: var(--accent-color);
    font-size: 0.65rem;
}

.home-preview {
    position: relative;
    padding: 1.25rem;
    border: 1px solid rgba(207, 197, 183, 0.86);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 26px 54px rgba(45, 38, 29, 0.15);
    transform: rotate(1deg);
}

.home-preview::before {
    content: "";
    position: absolute;
    inset: 9px -9px -9px 9px;
    z-index: -1;
    border-radius: 24px;
    background: #eadfd5;
}

.home-preview-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--border-color);
}

.home-preview-label {
    color: var(--text-muted);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.home-preview h2 {
    margin: 0.25rem 0 0;
    font-size: 1.25rem;
    font-weight: 800;
}

.home-preview-date {
    width: 58px;
    min-width: 58px;
    height: 62px;
    display: grid;
    place-content: center;
    text-align: center;
    border-radius: 13px;
    background: var(--primary-color);
    color: #fff;
    box-shadow: 0 10px 20px rgba(178, 58, 47, 0.22);
}

.home-preview-date strong {
    font-size: 1.45rem;
    line-height: 1;
}

.home-preview-date span {
    margin-top: 0.2rem;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.1em;
}

.home-preview-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    padding: 0.9rem 0;
}

.home-preview-meta span {
    padding: 0.34rem 0.58rem;
    border-radius: 999px;
    background: var(--surface-muted);
    color: var(--text-muted);
    font-size: 0.74rem;
    font-weight: 700;
}

.home-preview-meta i {
    margin-right: 0.3rem;
    color: var(--primary-color);
}

.home-choice-list {
    display: grid;
    gap: 0.6rem;
}

.home-choice {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
    padding: 0.8rem;
    border: 1px solid var(--border-color);
    border-radius: 13px;
    background: #fff;
}

.home-choice.is-leading {
    border-color: rgba(47, 111, 94, 0.35);
    background: linear-gradient(90deg, var(--accent-light), #fff 75%);
}

.home-choice-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: var(--primary-light);
    color: var(--primary-color);
}

.home-choice.is-leading .home-choice-icon {
    background: var(--accent-color);
    color: #fff;
}

.home-choice-copy {
    min-width: 0;
    display: grid;
}

.home-choice-copy strong {
    overflow: hidden;
    color: var(--text-main);
    font-size: 0.85rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-choice-copy small {
    color: var(--text-muted);
    font-size: 0.7rem;
}

.home-choice-score {
    min-width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    background: var(--surface-muted);
    color: var(--text-main);
    font-size: 0.8rem;
    font-weight: 900;
}

.home-preview-footer {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border-color);
}

.home-avatars {
    display: flex;
}

.home-avatars span {
    width: 29px;
    height: 29px;
    display: grid;
    place-items: center;
    margin-left: -7px;
    border: 2px solid #fff;
    border-radius: 50%;
    background: #e9dfd4;
    color: #6b5749;
    font-size: 0.56rem;
    font-weight: 900;
}

.home-avatars span:first-child {
    margin-left: 0;
}

.home-preview-footer > div:nth-child(2) {
    display: grid;
}

.home-preview-footer strong {
    font-size: 0.76rem;
}

.home-preview-footer small {
    color: var(--text-muted);
    font-size: 0.66rem;
}

.home-preview-footer > i {
    color: var(--accent-color);
    font-size: 1.15rem;
}

.home-steps {
    padding: clamp(3.5rem, 7vw, 6rem) 0 2rem;
}

.home-section-heading {
    max-width: 650px;
    margin: 0 auto 2rem;
    text-align: center;
}

.home-section-heading span {
    color: var(--primary-color);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.home-section-heading h2 {
    margin: 0.45rem 0 0;
    font-size: clamp(1.75rem, 3.2vw, 2.55rem);
    letter-spacing: -0.035em;
    font-weight: 800;
}

.home-step-card {
    position: relative;
    height: 100%;
    min-height: 250px;
    padding: 1.5rem;
    overflow: hidden;
    border: 1px solid var(--border-color);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.8);
    box-shadow: var(--shadow-sm);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.home-step-card:hover {
    transform: translateY(-5px);
    border-color: var(--border-strong);
    box-shadow: var(--shadow-md);
}

.home-step-number {
    position: absolute;
    right: 1.2rem;
    top: 0.9rem;
    color: rgba(178, 58, 47, 0.1);
    font-size: 3.2rem;
    line-height: 1;
    font-weight: 900;
}

.home-step-icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    margin-bottom: 2rem;
    border-radius: 13px;
    background: var(--primary-light);
    color: var(--primary-color);
    font-size: 1.2rem;
}

.home-steps .col-md-4:nth-child(2) .home-step-icon {
    background: var(--accent-light);
    color: var(--accent-color);
}

.home-step-card h3 {
    margin-bottom: 0.55rem;
    font-size: 1.08rem;
    font-weight: 800;
}

.home-step-card p {
    margin: 0;
    color: var(--text-muted);
    font-size: 0.9rem;
}

.footer {
    background: transparent !important;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

@media (max-width: 991.98px) {
    .home-hero {
        padding: 3rem 2rem;
    }

    .home-preview {
        max-width: 560px;
        margin: 0 auto;
        transform: none;
    }
}

@media (max-width: 575.98px) {
    .home-hero {
        margin-top: 0;
        padding: 2.1rem 1.15rem;
        border-radius: 20px;
    }

    .home-title {
        font-size: clamp(2.25rem, 12vw, 3.2rem);
    }

    .home-actions,
    .home-primary-cta {
        width: 100%;
    }

    .home-action-note {
        width: 100%;
        justify-content: center;
    }

    .home-proof {
        display: grid;
        grid-template-columns: 1fr;
    }

    .home-preview {
        padding: 1rem;
        border-radius: 18px;
    }

    .home-preview::before {
        display: none;
    }

    .home-preview-footer {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .home-avatars {
        display: none;
    }

    .home-step-card {
        min-height: 220px;
    }
}

/* --------------------------------------------------------------------------
   Parcours de vote — progression, sélection et validation
   -------------------------------------------------------------------------- */
.vote-progress {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    margin: 0 0 1.75rem;
    padding: 0;
    list-style: none;
}

.vote-progress::before {
    content: "";
    position: absolute;
    top: 17px;
    right: 16.66%;
    left: 16.66%;
    height: 2px;
    background: linear-gradient(90deg, var(--primary-color), var(--accent-color));
    opacity: 0.25;
}

.vote-progress li {
    position: relative;
    z-index: 1;
    display: grid;
    justify-items: center;
    gap: 0.35rem;
    color: var(--text-muted);
}

.vote-progress li > span {
    width: 35px;
    height: 35px;
    display: grid;
    place-items: center;
    border: 2px solid var(--primary-soft-border);
    border-radius: 50%;
    background: #fff;
    color: var(--primary-color);
    font-size: 0.78rem;
    font-weight: 900;
    box-shadow: 0 4px 12px rgba(45, 38, 29, 0.08);
}

.vote-progress li:nth-child(2) > span {
    border-color: rgba(47, 111, 94, 0.24);
    color: var(--accent-color);
}

.vote-progress small {
    font-size: 0.7rem;
    font-weight: 800;
}

.vote-section-heading {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}

.vote-section-number {
    width: 29px;
    height: 29px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    background: var(--primary-light);
    color: var(--primary-color);
    font-size: 0.74rem;
    font-weight: 900;
}

.vote-section-heading h3 {
    margin: 0;
    color: var(--text-main);
    font-size: 1rem;
    line-height: 1.25;
    font-weight: 800;
}

.vote-section-heading p {
    margin: 0.15rem 0 0;
    color: var(--text-muted);
    font-size: 0.78rem;
    line-height: 1.45;
}

.vote-attendance-section,
.vote-section {
    padding-top: 0.25rem;
}

.attendance-options .btn {
    min-height: 94px;
    border-color: var(--border-color);
    border-radius: 14px;
    background: #fff;
    color: var(--text-muted);
    box-shadow: var(--shadow-sm);
    transition: transform 0.18s ease, border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}

.attendance-options .btn:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.attendance-options .btn-check:checked + .btn-outline-success {
    border-color: rgba(47, 111, 94, 0.55);
    background: var(--accent-light);
    color: var(--accent-color);
    box-shadow: 0 0 0 3px rgba(47, 111, 94, 0.09);
}

.attendance-options .btn-check:checked + .btn-outline-danger {
    border-color: rgba(178, 58, 47, 0.5);
    background: var(--primary-light);
    color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(178, 58, 47, 0.08);
}

.vote-preferences-heading {
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
}

.vote-multiple-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.58rem;
    border-radius: 999px;
    background: var(--accent-light);
    color: var(--accent-color);
    font-size: 0.68rem;
    font-weight: 800;
    white-space: nowrap;
}

.restaurant-choice-list {
    gap: 0.6rem !important;
    padding: 0.65rem;
    border: 1px solid var(--border-color);
    border-radius: 15px;
    background: rgba(248, 246, 241, 0.8);
}

.restaurant-choice-list .selector-item {
    margin-bottom: 0;
}

.restaurant-choice-list .selector-item-label {
    position: relative;
    min-height: 76px;
    border-radius: 12px;
    box-shadow: none;
}

.restaurant-choice-list .selector-item-label:hover {
    border-color: var(--primary-soft-border) !important;
    background: #fffaf8;
    box-shadow: 0 8px 22px rgba(45, 38, 29, 0.08);
}

.restaurant-choice-list .selector-item-input:checked + .selector-item-label {
    border-color: var(--primary-color) !important;
    background: linear-gradient(90deg, var(--primary-light), #fff 82%);
    box-shadow: 0 0 0 3px rgba(178, 58, 47, 0.09);
}

.restaurant-choice-list .selector-item-input:focus-visible + .selector-item-label {
    outline: 3px solid rgba(178, 58, 47, 0.2);
    outline-offset: 2px;
}

.restaurant-choice-list .check-icon {
    width: 28px;
    height: 28px;
    margin-right: 0.85rem;
    border-radius: 9px;
}

.other-place-card:has(.form-check-input:checked) {
    border-color: var(--primary-color) !important;
    background: var(--primary-light) !important;
    box-shadow: 0 0 0 2px rgba(178, 58, 47, 0.08);
}

.selection-error.is-visible {
    padding: 0.7rem;
    border: 1px solid rgba(178, 58, 47, 0.24);
    border-radius: 10px;
    background: var(--primary-light);
    font-weight: 700;
}

.vote-submit-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, auto);
    align-items: center;
    gap: 1rem;
    padding: 0.85rem;
    border: 1px solid var(--border-color);
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(45, 38, 29, 0.1);
}

.vote-selection-summary {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 0.7rem;
}

.vote-selection-icon {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: var(--primary-light);
    color: var(--primary-color);
}

.vote-selection-summary > span:last-child {
    min-width: 0;
    display: grid;
}

.vote-selection-summary strong {
    overflow: hidden;
    color: var(--text-main);
    font-size: 0.82rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vote-selection-summary small {
    color: var(--text-muted);
    font-size: 0.68rem;
}

.vote-selection-summary.is-absent .vote-selection-icon {
    background: #fff0ee;
    color: var(--danger-color);
}

.vote-submit-panel .btn {
    min-height: 52px;
    border-radius: 12px;
    white-space: nowrap;
}

.vote-submit-panel .btn:disabled {
    cursor: wait;
}

@media (max-width: 575.98px) {
    .vote-card-header {
        padding: 1rem 1rem 0.4rem;
    }

    .vote-card-body {
        padding: 0.6rem 1rem 1rem;
    }

    .vote-progress {
        margin-bottom: 1.35rem;
    }

    .vote-progress small {
        font-size: 0.64rem;
    }

    .vote-preferences-heading {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .vote-multiple-badge {
        grid-column: 2;
        width: fit-content;
        margin-top: 0.35rem;
    }

    .attendance-options .btn {
        min-height: 82px;
        padding-right: 0.5rem !important;
        padding-left: 0.5rem !important;
        font-size: 0.86rem;
    }

    .restaurant-choice-list {
        margin-right: -0.2rem;
        margin-left: -0.2rem;
        padding: 0.4rem;
    }

    .restaurant-choice-list .selector-item-label {
        min-height: 70px;
        padding: 0.75rem !important;
    }

    .restaurant-choice-list .check-icon {
        width: 25px;
        height: 25px;
        margin-right: 0.65rem;
    }

    .vote-submit-panel {
        position: sticky;
        bottom: 0.5rem;
        z-index: 20;
        grid-template-columns: 1fr;
        gap: 0.65rem;
        padding: 0.7rem;
        background: rgba(255, 255, 255, 0.96);
        backdrop-filter: blur(12px);
    }

    .vote-submit-panel .btn {
        width: 100%;
    }
}

/* --------------------------------------------------------------------------
   Événement — direction visuelle pro, intuitive et joyeuse
   -------------------------------------------------------------------------- */

html {
    scroll-behavior: smooth;
}

#event-response,
#live-zone {
    scroll-margin-top: 6rem;
}

.event-hero {
    isolation: isolate;
    overflow: hidden;
    border-color: rgba(178, 58, 47, 0.14);
    background:
        radial-gradient(circle at 86% 16%, rgba(255, 191, 105, 0.2), transparent 25%),
        radial-gradient(circle at 6% 100%, rgba(47, 111, 94, 0.1), transparent 28%),
        linear-gradient(135deg, #fffdf9 0%, #fff5ed 100%);
    box-shadow: 0 18px 55px rgba(77, 39, 27, 0.1);
}

.event-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: 0.45;
    pointer-events: none;
    background-image:
        radial-gradient(circle, rgba(178, 58, 47, 0.28) 0 2px, transparent 2.5px),
        radial-gradient(circle, rgba(47, 111, 94, 0.22) 0 2px, transparent 2.5px);
    background-position: 94% 18%, 88% 76%;
    background-size: 42px 42px, 58px 58px;
    mask-image: linear-gradient(90deg, transparent 54%, #000 100%);
}

.event-kicker {
    border: 1px solid rgba(178, 58, 47, 0.16);
    background: rgba(255, 255, 255, 0.8);
    box-shadow: 0 6px 18px rgba(178, 58, 47, 0.08);
}

.event-hero-lead {
    max-width: 650px;
    margin: 0.5rem 0 0;
    color: #66736f;
    font-size: 1rem;
    line-height: 1.6;
}

.event-social-proof {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.1rem;
    color: #5b6864;
    font-size: 0.86rem;
}

.event-social-proof strong {
    color: var(--text-main);
}

.event-avatar-stack {
    display: flex;
    padding-left: 0.35rem;
}

.event-avatar-stack > span {
    width: 34px;
    height: 34px;
    margin-left: -0.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 3px solid #fff;
    border-radius: 50%;
    background: #fff0e5;
    color: var(--primary-color);
    font-size: 0.68rem;
    font-weight: 900;
    box-shadow: 0 4px 10px rgba(60, 35, 24, 0.12);
}

.event-avatar-stack > span:nth-child(even) {
    background: #e5f4ee;
    color: var(--accent-color);
}

.event-avatar-stack .event-avatar-more {
    background: var(--text-main);
    color: #fff;
}

.event-first-response {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--primary-color);
}

.event-date-card {
    position: relative;
    border-color: rgba(178, 58, 47, 0.2);
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 14px 32px rgba(178, 58, 47, 0.13);
    transform: rotate(1.5deg);
}

.event-date-star {
    position: absolute;
    top: -0.5rem;
    right: -0.45rem;
    width: 1.65rem;
    height: 1.65rem;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #ffbd59;
    color: #7d4900;
    font-size: 0.68rem;
    box-shadow: 0 5px 14px rgba(125, 73, 0, 0.2);
}

.event-hero-side .btn {
    background: rgba(255, 255, 255, 0.82);
    backdrop-filter: blur(8px);
}

.event-quick-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.event-quick-link {
    min-width: 0;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.8rem;
    padding: 0.8rem 1rem;
    border: 1px solid var(--border-color);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.88);
    color: var(--text-main);
    text-decoration: none;
    box-shadow: var(--shadow-sm);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.event-quick-link:hover {
    color: var(--text-main);
    border-color: rgba(178, 58, 47, 0.28);
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

.event-quick-link.is-primary {
    border-color: rgba(178, 58, 47, 0.18);
    background: linear-gradient(135deg, #fff 0%, #fff1e8 100%);
}

.event-quick-icon {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: var(--primary-light);
    color: var(--primary-color);
}

.event-quick-link:not(.is-primary) .event-quick-icon {
    background: var(--accent-light);
    color: var(--accent-color);
}

.event-quick-link strong,
.event-quick-link small {
    display: block;
}

.event-quick-link strong {
    font-size: 0.9rem;
}

.event-quick-link small {
    margin-top: 0.1rem;
    color: var(--text-muted);
    font-size: 0.73rem;
}

.event-quick-arrow {
    color: #a6afac;
    font-size: 0.8rem;
}

.event-results-kicker {
    width: fit-content;
    margin: 0 auto 1rem;
    padding: 0.38rem 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.69rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.event-summary-body {
    position: relative;
    background:
        radial-gradient(circle at 90% 8%, rgba(255, 189, 89, 0.23), transparent 28%),
        linear-gradient(145deg, #b8362c 0%, #8f2925 100%);
}

.event-summary-body::after {
    content: "";
    position: absolute;
    right: -2rem;
    bottom: -3rem;
    width: 9rem;
    height: 9rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 50%;
    pointer-events: none;
}

.trend-trophy {
    width: 42px;
    height: 42px;
    margin: -0.1rem auto 0.65rem;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 14px;
    background: linear-gradient(145deg, #ffd47c, #ffad36);
    color: #713d00;
    box-shadow: 0 8px 22px rgba(63, 25, 10, 0.23);
    transform: rotate(-3deg);
}

.summary-stat h2 {
    text-shadow: 0 2px 10px rgba(47, 16, 11, 0.25);
}

.participants-card {
    border-color: rgba(47, 111, 94, 0.14);
}

.participants-card-header {
    background: linear-gradient(135deg, #fff 0%, #f5fbf8 100%) !important;
}

.participants-card-header .badge {
    min-width: 2rem;
    padding: 0.45rem 0.65rem;
    font-weight: 900;
}

.participant-row .avatar {
    transition: transform 0.18s ease;
}

.participant-row:hover .avatar {
    transform: rotate(-4deg) scale(1.06);
}

.restaurant-choice-list .selector-item-input:checked + .selector-item-label {
    animation: choice-pop 0.24s ease-out;
}

.restaurant-choice-list .selector-item-label:hover .check-icon {
    border-color: rgba(178, 58, 47, 0.5);
}

@keyframes choice-pop {
    0% { transform: scale(0.985); }
    70% { transform: scale(1.008); }
    100% { transform: scale(1); }
}

@media (max-width: 767.98px) {
    .event-hero::before {
        opacity: 0.3;
        mask-image: linear-gradient(180deg, transparent 36%, #000 100%);
    }

    .event-hero-lead {
        font-size: 0.9rem;
    }

    .event-hero-side {
        gap: 0.8rem;
    }

    .event-date-card {
        transform: rotate(0.8deg);
    }

    .event-quick-nav {
        gap: 0.55rem;
    }

    .event-quick-link {
        padding: 0.72rem;
        gap: 0.6rem;
    }

    .event-quick-icon {
        width: 36px;
        height: 36px;
        border-radius: 10px;
    }

    .event-quick-link small {
        display: none;
    }
}

@media (max-width: 420px) {
    .event-social-proof {
        align-items: flex-start;
        font-size: 0.78rem;
    }

    .event-quick-link {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .event-quick-arrow {
        display: none;
    }

    .event-quick-link strong {
        font-size: 0.78rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    .restaurant-choice-list .selector-item-input:checked + .selector-item-label {
        animation: none;
    }
}

/* --------------------------------------------------------------------------
   Votre réponse — parcours guidé étape par étape
   -------------------------------------------------------------------------- */

.vote-wizard-status,
.vote-wizard-actions,
.vote-final-back {
    display: none;
}

.vote-wizard-enabled .vote-wizard-step {
    display: none;
}

.vote-wizard-enabled .vote-wizard-step.is-active {
    display: block;
    animation: vote-step-in 0.28s ease-out;
}

.vote-wizard-enabled .vote-wizard-status,
.vote-wizard-enabled .vote-wizard-actions,
.vote-wizard-enabled .vote-final-back {
    display: flex;
}

.vote-wizard-status {
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: -0.4rem 0 1.35rem;
    padding: 0.55rem 0.75rem;
    border-radius: 10px;
    background: #f7f4ef;
    color: var(--text-muted);
    font-size: 0.72rem;
    font-weight: 700;
}

.vote-wizard-status span:last-child {
    color: var(--text-main);
}

.vote-wizard-enabled .vote-progress li.is-active span {
    color: #fff;
    border-color: var(--primary-color);
    background: var(--primary-color);
    box-shadow: 0 0 0 5px rgba(178, 58, 47, 0.1);
    transform: scale(1.06);
}

.vote-wizard-enabled .vote-progress li.is-active small {
    color: var(--primary-color);
    font-weight: 900;
}

.vote-wizard-enabled .vote-progress li.is-complete span {
    color: #fff;
    border-color: var(--accent-color);
    background: var(--accent-color);
}

.vote-wizard-enabled .vote-progress li.is-complete span::before {
    content: "\f00c";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
}

.vote-wizard-enabled .vote-progress li.is-complete span {
    font-size: 0;
}

.vote-wizard-enabled .vote-progress li.is-complete span::before {
    font-size: 0.72rem;
}

.vote-wizard-enabled .guest-fields,
.vote-wizard-enabled .vote-attendance-section {
    min-height: 145px;
}

.vote-wizard-actions {
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    margin-top: 1.2rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border-color);
}

.vote-wizard-actions .btn {
    min-width: 132px;
    min-height: 46px;
    border-radius: 11px;
    font-weight: 800;
}

.vote-wizard-help {
    color: var(--text-muted);
    font-size: 0.72rem;
}

.vote-wizard-help i {
    margin-right: 0.3rem;
    color: var(--accent-color);
}

.vote-absence-review {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1.2rem;
    border: 1px solid rgba(178, 58, 47, 0.16);
    border-radius: 14px;
    background: linear-gradient(135deg, #fff 0%, #fff4ef 100%);
}

.vote-absence-icon {
    width: 46px;
    height: 46px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: #fff0ee;
    color: var(--danger-color);
    font-size: 1.05rem;
}

.vote-absence-review h3 {
    margin: 0 0 0.25rem;
    color: var(--text-main);
    font-size: 1rem;
    font-weight: 900;
}

.vote-absence-review p {
    margin: 0;
    color: var(--text-muted);
    font-size: 0.8rem;
    line-height: 1.5;
}

.vote-final-back {
    width: fit-content;
    align-items: center;
    margin: 0.85rem 0 0;
    padding: 0.3rem 0;
    color: var(--text-muted);
    font-size: 0.76rem;
    font-weight: 700;
    text-decoration: none;
}

.vote-final-back:hover {
    color: var(--primary-color);
}

@keyframes vote-step-in {
    from { opacity: 0; transform: translateX(10px); }
    to { opacity: 1; transform: translateX(0); }
}

@media (max-width: 575.98px) {
    .vote-wizard-status {
        margin-bottom: 1rem;
    }

    .vote-wizard-enabled .guest-fields,
    .vote-wizard-enabled .vote-attendance-section {
        min-height: 0;
    }

    .vote-wizard-actions {
        align-items: stretch;
    }

    .vote-wizard-actions .btn {
        min-width: 112px;
    }

    .vote-wizard-help {
        max-width: 135px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .vote-wizard-enabled .vote-wizard-step.is-active {
        animation: none;
    }
}

.trend-distribution-note {
    width: fit-content;
    max-width: 100%;
    margin: 0.75rem auto 0;
    padding: 0.42rem 0.65rem;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.09);
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.66rem;
    font-weight: 700;
    line-height: 1.4;
}

.trend-distribution-note i {
    margin-right: 0.3rem;
    color: #ffd47c;
}

/* --------------------------------------------------------------------------
   Événement compact — informations essentielles sans doublon
   -------------------------------------------------------------------------- */

.app-main:has(.event-page-shell) {
    max-width: 1280px;
    padding-top: 0.75rem !important;
    padding-bottom: 1rem !important;
}

.event-page-shell .event-hero-compact {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    padding: 0.85rem 1.1rem;
    border-radius: 14px;
    box-shadow: 0 8px 26px rgba(77, 39, 27, 0.08);
}

.event-hero-compact::before {
    opacity: 0.22;
}

.event-hero-compact .event-hero-main {
    gap: 0.2rem;
}

.event-hero-compact .event-kicker {
    width: fit-content;
    padding: 0.28rem 0.55rem;
    font-size: 0.62rem;
    box-shadow: none;
}

.event-hero-compact .event-title {
    margin: 0.1rem 0 0;
    font-size: clamp(1.25rem, 2.1vw, 1.75rem);
    line-height: 1.15;
}

.event-title-time {
    color: var(--primary-color);
    font-size: 0.72em;
    font-weight: 800;
    white-space: nowrap;
}

.event-hero-compact .event-description {
    max-width: 820px;
    margin-top: 0.35rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--text-muted);
    font-size: 0.78rem;
    line-height: 1.4;
}

.event-hero-compact .event-description i {
    display: none;
}

.event-hero-compact .event-hero-side {
    min-width: auto;
}

.event-hero-compact .event-hero-side .btn {
    min-height: 38px;
    background: #fff;
    white-space: nowrap;
}

.event-view-switcher {
    display: none;
}

.event-page-shell .event-layout {
    margin-top: 0;
}

.event-page-shell .event-results-column {
    top: 0.75rem;
}

.event-page-shell .live-toolbar {
    min-height: 26px;
    margin-bottom: 0.35rem !important;
}

.event-page-shell .vote-card-header {
    padding: 0.8rem 1rem 0.35rem;
}

.event-page-shell .vote-card-body {
    padding: 0.35rem 1rem 1rem;
}

.event-page-shell .vote-progress {
    margin: 0.25rem 0 1rem;
}

.event-page-shell .vote-section-heading {
    margin-bottom: 0.8rem;
}

.event-page-shell .vote-wizard-step[data-vote-step="1"] .vote-section-heading {
    margin-bottom: 1.5rem;
}

.event-page-shell .vote-section-heading p {
    margin-top: 0.08rem;
    font-size: 0.72rem;
}

.event-page-shell .guest-fields {
    min-height: 0;
    margin-bottom: 0.75rem !important;
    padding: 0.75rem;
}

.event-page-shell .guest-fields .mb-3,
.event-page-shell .guest-fields .mb-4 {
    margin-bottom: 0.65rem !important;
}

.event-page-shell .vote-wizard-actions {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
}

.event-page-shell .vote-wizard-actions .btn {
    min-height: 42px;
}

.event-page-shell .event-summary-card {
    margin-bottom: 0.75rem !important;
}

.event-page-shell .event-summary-body {
    padding: 1rem !important;
}

.event-page-shell .event-results-kicker {
    margin-bottom: 0.65rem;
    padding: 0.3rem 0.6rem;
}

.event-page-shell .summary-stat h2 {
    font-size: 1.55rem;
}

.event-page-shell .event-summary-body hr {
    margin-top: 0.75rem !important;
    margin-bottom: 0.75rem !important;
}

.event-page-shell .trend-trophy {
    width: 34px;
    height: 34px;
    margin-bottom: 0.4rem;
    border-radius: 10px;
}

.event-page-shell .trend-distribution-note {
    margin-top: 0.5rem;
    padding: 0.32rem 0.5rem;
}

.event-page-shell .trend-accordion {
    margin-top: 0.6rem !important;
}

.event-page-shell .participants-card-header {
    padding: 0.65rem 0.85rem !important;
}

.event-page-shell .participants-card-header small {
    display: none;
}

.event-page-shell .participants-accordion .accordion-button {
    min-height: 42px;
    padding: 0.6rem 0.8rem;
}

.event-secondary-details {
    border: 1px solid var(--border-color);
    border-radius: 12px;
    background: #fff;
}

.event-secondary-details > summary {
    padding: 0.8rem 1rem;
    color: var(--text-main);
    cursor: pointer;
    font-size: 0.82rem;
    font-weight: 800;
    list-style: none;
}

.event-secondary-details > summary::-webkit-details-marker {
    display: none;
}

.event-secondary-details > summary::after {
    content: "+";
    float: right;
    color: var(--primary-color);
    font-size: 1.1rem;
}

.event-secondary-details[open] > summary::after {
    content: "−";
}

.event-secondary-details > summary i {
    margin-right: 0.5rem;
    color: var(--primary-color);
}

.event-secondary-details .restaurant-list {
    margin: 0 !important;
    padding: 0 0.75rem 0.75rem;
}

@media (max-width: 991.98px) {
    .app-main:has(.event-page-shell) {
        padding-top: 0.5rem !important;
    }

    .event-page-shell .event-hero-compact {
        padding: 0.7rem 0.8rem;
    }

    .event-hero-compact .event-title {
        font-size: 1.15rem;
    }

    .event-hero-compact .event-description {
        display: -webkit-box;
        overflow: hidden;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .event-hero-compact .event-hero-side .btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 38px;
        padding: 0 !important;
        overflow: hidden;
        color: var(--primary-color);
        font-size: 0;
    }

    .event-hero-compact .event-hero-side .btn i {
        display: inline-block;
        margin: 0 !important;
        color: var(--primary-color);
        font-size: 0.82rem;
    }

    .event-view-switcher {
        position: sticky;
        top: 0.4rem;
        z-index: 30;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.3rem;
        margin-bottom: 0.65rem;
        padding: 0.28rem;
        border: 1px solid var(--border-color);
        border-radius: 12px;
        background: rgba(255, 255, 255, 0.94);
        box-shadow: 0 7px 20px rgba(45, 38, 29, 0.1);
        backdrop-filter: blur(12px);
    }

    .event-view-tab {
        min-height: 40px;
        border: 0;
        border-radius: 9px;
        background: transparent;
        color: var(--text-muted);
        font-size: 0.78rem;
        font-weight: 800;
    }

    .event-view-tab i {
        margin-right: 0.35rem;
    }

    .event-view-tab small {
        margin-left: 0.35rem;
        padding: 0.12rem 0.4rem;
        border-radius: 999px;
        background: #ece8e2;
        font-size: 0.64rem;
    }

    .event-view-tab.is-active {
        background: var(--primary-color);
        color: #fff;
        box-shadow: 0 4px 12px rgba(178, 58, 47, 0.2);
    }

    .event-mobile-tabs-enabled .event-layout [data-event-view] {
        display: none;
    }

    .event-mobile-tabs-enabled .event-layout[data-active-view="response"] [data-event-view="response"],
    .event-mobile-tabs-enabled .event-layout[data-active-view="results"] [data-event-view="results"] {
        display: block;
    }

    .event-page-shell .event-results-column {
        position: static;
    }
}

@media (max-width: 575.98px) {
    .event-page-shell .vote-card-header {
        padding-top: 0.7rem;
    }

    .event-page-shell .vote-card-body {
        padding: 0.25rem 0.8rem 0.8rem;
    }
}

/* Outing decisions, safe reminders, and compact personal state — 2026-10 */
.outing-decision{padding:1.25rem;border:1px solid #90c9af;border-left:4px solid #198754;border-radius:16px;background:#f1faf5;animation:outing-arrive .24s ease-out}
.outing-links{display:flex;flex-wrap:wrap;gap:.5rem}.outing-links .btn,.outing-admin .btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.outing-ranking li{text-align:left;border-bottom:1px solid rgba(255,255,255,.2)}.outing-ranking li span{overflow-wrap:anywhere;min-width:0}.outing-ranking small{display:block;text-align:left;opacity:.92;font-size:.75rem;line-height:1.5}
.outing-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.outing-counts div{background:#f3f6fa;border-radius:10px;padding:.65rem}.outing-counts dt{font-size:.75rem;color:#536176;font-weight:500}.outing-counts dd{font-size:1.25rem;font-weight:700;margin:0}
.outing-preview{padding:1rem;border:1px solid #c5d5ed;border-radius:12px;background:#f8faff}.outing-preview li{overflow-wrap:anywhere}.outing-duplicate{max-width:32rem}.restaurant-detail{font-size:.75rem;font-weight:400;white-space:normal}.personal-response{max-width:100%;overflow-wrap:anywhere}
.outing-admin .card{border-radius:16px;overflow:hidden}.outing-admin input,.outing-admin select{min-height:44px}.outing-admin summary{cursor:pointer;min-height:44px;padding:.65rem 0}
@keyframes outing-arrive{from{opacity:.5;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(max-width:575.98px){.outing-links .btn{flex:1 1 auto}.outing-admin .card-body{padding:1rem}.outing-counts{gap:.3rem}.outing-counts div{padding:.5rem}.outing-counts dt{font-size:.7rem}.outing-admin button{max-width:100%;white-space:normal}.outing-decision{padding:1rem}}
@media(prefers-reduced-motion:reduce){.outing-decision{animation:none}}

@media(max-width:767.98px){table.table-min-900{min-width:0!important;display:block}table.table-min-900 thead{display:none}table.table-min-900 tbody{display:block;padding:.5rem}table.table-min-900 tr.event-row:not(.d-none){display:grid;grid-template-columns:1fr 1fr;margin-bottom:1rem;border:1px solid #dce3ec!important;border-radius:14px;padding:.5rem}table.table-min-900 tr.event-row td{padding:.65rem!important;border:0;min-width:0}table.table-min-900 tr.event-row td:nth-child(2){grid-column:1/-1;grid-row:2}table.table-min-900 tr.event-row td:nth-child(3){grid-column:2;grid-row:1}table.table-min-900 tr.event-row td:nth-child(4),table.table-min-900 tr.event-row td:nth-child(5){grid-column:1/-1;text-align:left!important}table.table-min-900 tr.event-row td:nth-child(5)>.btn{width:100%;min-height:44px}table.table-min-900 tr.event-row td:nth-child(5) .d-flex{justify-content:space-between!important}table.table-min-900 .btn-circle-sm{width:44px;height:44px}}
