/* Les champs restent volontairement en graisse normale, y compris dans l'administration. */
.active-session-banner { position: sticky; top: 70px; z-index: 19; display: block; width: 100%; margin: 0; padding: .7rem 1rem; color: white; text-align: center; box-shadow: 0 5px 16px rgba(36,29,28,.14); }
.active-session-banner.is-running { background: #318354; }
.active-session-banner.is-paused { background: #d47a00; }
.active-session-banner.is-awaiting { background: #6196c0; }
.active-session-banner + .active-session-banner { top: 114px; }
.active-session-banner:hover { filter: brightness(1.06); }
@media (max-width: 850px) { .active-session-banner { position: static; } }
input, select, textarea, option, label, .choice-grid label, .check-line,
.form-card label, .form-grid label, .editor-form label, .assistant-panel label,
.filter-bar label { font-weight: 400 !important; }

input[type="checkbox"] { font-weight: 400 !important; }
.auth-layout > div h2, .profile-heading h2 { margin: .2em 0; font-family: Georgia, serif; font-size: clamp(2.2rem, 5vw, 4.6rem); line-height: .98; }
.auth-welcome-title span, .auth-welcome-title em { display: block; }
.auth-welcome-title em { color: #b13324; font-weight: 400; }
.friend-code { margin: .1rem 0; color: #6e5f5a; font-size: .86rem; font-weight: 400; }
.brand img { width: 44px; height: 44px; flex: 0 0 44px; object-fit: contain; }
.page-heading { width: 100%; max-width: none; }
.page-heading > h2 { margin: .1em 0 .35em; font-family: Georgia, serif; font-size: clamp(2.2rem, 5vw, 4.6rem); line-height: .98; }
.library-cover { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.game-detail { display: grid; gap: 2rem; }
.game-hero { display: grid; grid-template-columns: minmax(220px, 360px) 1fr; gap: clamp(1.5rem, 4vw, 4rem); align-items: start; }
.game-cover-frame { width: 100%; overflow: hidden; border: 0; padding: 0; border-radius: 26px; background: #6196c0; aspect-ratio: 1; box-shadow: 0 18px 50px rgba(177,51,36,.14); }
button.game-cover-frame { cursor: zoom-in; }
button.game-cover-frame:focus-visible { outline: 3px solid #b13324; outline-offset: 4px; }
.game-cover-frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
.game-cover-frame .cover-placeholder { height: 100%; border: 0; border-radius: 0; }
.game-summary { min-width: 0; }
.game-summary h2 { width: 100%; margin: 0 0 1rem; font-family: Georgia, serif; font-size: clamp(2.5rem, 6vw, 5.5rem); line-height: .95; white-space: nowrap; }
.game-rating-line { display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; margin: 1rem 0; }
.rating-pill { border-radius: 999px; padding: .65rem 1rem; background: #f4eae1; color: #b13324; }
.personal-rating { display: flex; flex-wrap: wrap; gap: .6rem; align-items: end; margin-top: 1.5rem; }
.personal-rating label { display: grid; gap: .35rem; }
.game-admin-editor { margin-top: 1.5rem; border: 1px solid rgba(97,150,192,.4); border-radius: 18px; padding: 1rem; }
.game-admin-editor summary { cursor: pointer; font-weight: 700; }
.game-stars { display: flex; gap: .22rem; line-height: 1; }
.game-stars span { color: transparent; font-size: 1.45rem; -webkit-text-stroke: 1.2px #f2960c; }
.game-stars .is-filled { color: #f2960c; }
.personal-star-rating { display: flex; width: max-content; gap: .22rem; margin-top: .8rem; line-height: 1; }
.personal-star-rating button { border: 0; padding: 0; background: transparent; color: transparent; font-size: 1.45rem; line-height: 1; -webkit-text-stroke: 1.2px #aeb6bf; transition: color .12s ease, transform .12s ease; }
.personal-star-rating button.is-filled { color: #b8c0c9; }
.personal-star-rating.is-previewing button { color: transparent; }
.personal-star-rating.is-previewing button.is-preview { color: #b8c0c9; transform: scale(1.08); }
.personal-star-rating.is-disabled span { color: transparent; font-size: 1.45rem; line-height: 1; -webkit-text-stroke: 1.2px #aeb6bf; }
.personal-star-rating.is-disabled span.is-filled { color: #b8c0c9; }
.personal-rating-row { display: flex; align-items: center; width: max-content; gap: .22rem; }
.delete-personal-rating { display: flex; margin: .8rem 0 0; }
.delete-personal-rating button { display: grid; place-items: center; width: 1.45rem; height: 1.45rem; padding: 0; border: 0; background: transparent; color: #b13324; opacity: 0; transition: opacity .15s ease, transform .15s ease; }
.personal-rating-row:hover .delete-personal-rating button, .delete-personal-rating button:focus-visible { opacity: 1; }
.delete-personal-rating button:hover { transform: scale(1.08); }
.delete-personal-rating svg { width: 1.2rem; height: 1.2rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.type-colored span { background: var(--type-color, #6196c0); color: var(--type-text, white); }
.game-type-tags span, .game-difficulty-tag span { font-weight: 400; }
.game-type-tags { margin-top: 1.2rem; }
.game-difficulty-tag { margin-top: .55rem; }
.game-description { margin-top: 1.35rem; }
.game-description h2 { margin: 0 0 .5rem; font-family: Georgia, serif; font-size: 1.65rem; }
.game-description p { margin: 0; color: #6e5f5a; }
.game-tabs button { display: inline-flex; align-items: center; gap: .45rem; }
.game-tabs button > span { font-size: .85em; }
.game-admin-zone { display: grid; gap: 1rem; margin-top: 2rem; padding-top: 2rem; border-top: 1px solid rgba(28,39,48,.2); }
.game-admin-toggle-row { justify-content: flex-start; }
.game-admin-content { display: grid; gap: 1rem; }
.game-admin-content[hidden] { display: none; }
.game-tabs { position: sticky; top: 0; z-index: 5; display: flex; gap: .4rem; padding: .55rem; overflow-x: auto; border-radius: 18px; background: #f4eae1; }
.game-tabs button { border: 0; border-radius: 13px; padding: .8rem 1.15rem; color: #1c2730; background: transparent; cursor: pointer; white-space: nowrap; }
.game-tabs button[aria-selected="true"] { color: white; background: #b13324; }
.game-tab-panel { display: grid; gap: 1.5rem; }
.game-tab-panel[hidden] { display: none; }
.panel-header { display: flex; justify-content: space-between; gap: 1rem; align-items: center; flex-wrap: wrap; }
.session-cards { display: grid; gap: .75rem; }
.session-card { display: grid; grid-template-columns: 1fr auto; gap: .75rem; padding: 1rem 1.2rem; border: 1px solid rgba(97,150,192,.35); border-radius: 16px; color: inherit; text-decoration: none; }
.session-card small { display: block; margin-top: .35rem; }
.session-history-card { grid-template-columns: 58px minmax(190px, 1fr) minmax(130px, 1fr) minmax(155px, 1fr); gap: 0; min-height: 82px; padding: 0; overflow: hidden; border-color: rgba(28,39,48,.45); border-radius: 16px; background: white; transition: border-color .18s ease, box-shadow .18s ease; }
.session-history-card:hover { border-color: #b13324; box-shadow: 0 0 0 2px rgba(177,51,36,.13), 0 10px 24px rgba(177,51,36,.09); }
.session-history-card[hidden] { display: none; }
.session-number { display: grid; place-items: center; align-self: stretch; background: #b13324; color: white; font-family: Georgia, serif; font-size: 2.1rem; line-height: 1; }
.session-number b { display: block; font: inherit; line-height: 1; transform: translateY(-.06em); }
.session-card-left, .session-card-right { display: flex; flex-direction: column; justify-content: space-between; padding: .85rem 1rem; }
.session-card-left > strong { font-weight: 700; }
.session-card-right > strong { font-weight: 400; }
.session-card-left small, .session-card-right small { margin: .45rem 0 0; }
.session-card-winner { display: flex; align-items: center; justify-content: center; gap: .5rem; padding: .7rem; text-align: center; }
.session-winner-person { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; }
.session-winner-person img, .session-winner-avatar { width: 1.6rem; height: 1.6rem; flex: 0 0 1.6rem; border-radius: 50%; object-fit: cover; }
.session-winner-avatar { display: grid; place-items: center; background: #6196c0; color: white; font-size: .72rem; font-weight: 700; }
.session-winner-person strong { font-size: 1rem; font-weight: 700; }
.session-winner-crown { color: #f2c40c; font-size: 1.6rem; line-height: 1; text-shadow: 0 1px 0 #a66100; }
.session-card-right { text-align: right; }
.session-status { font-weight: 700; }
.session-status.is-completed { color: #b13324; }
.session-status.is-running { color: #318354; }
.session-status.is-paused { color: #d47a00; }
.session-status.is-scheduled { color: #3975a6; }
.session-more-row { display: flex; justify-content: center; }
.session-filter-buttons { margin-bottom: -.5rem; }
.session-list-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: -.5rem; }
.session-list-toolbar .session-filter-buttons { margin-bottom: 0; }
.session-view-switch { display: inline-flex; gap: .35rem; margin-left: auto; }
.session-view-switch button { display: grid; place-items: center; width: 37px; height: 37px; padding: 0; border: 1px solid rgba(28,39,48,.2); border-radius: 10px; background: white; color: #657078; cursor: pointer; }
.session-view-switch button:hover { border-color: #b13324; color: #b13324; }
.session-view-switch button[aria-pressed="true"] { border-color: #b13324; background: #b13324; color: white; }
.session-view-switch svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.session-card-photo, .session-card-grid-number, .session-card-player-names { display: none; }
.session-create-card { display: flex; min-height: 78px; align-items: center; justify-content: center; gap: .55rem; border-color: #b13324; border-style: dashed; color: #b13324; text-align: center; }
.session-create-card > span { font-size: 1.45rem; line-height: 1; }
.session-create-card:hover { border-color: #b13324; background: rgba(177,51,36,.05); }
.session-cards.is-grid-view { grid-template-columns: repeat(5,minmax(0,1fr)); gap: 1rem; align-items: stretch; }
.session-cards.is-grid-view .session-card { min-width: 0; }
.session-cards.is-grid-view .session-create-card { display: grid; place-items: center; align-content: center; height: 340px; min-height: 0; border-width: 2px; border-radius: 18px; }
.session-cards.is-grid-view .session-create-card > span { font-size: 2.2rem; }
.session-cards.is-grid-view .session-history-card { display: grid; grid-template-columns: 1fr auto; grid-template-rows: 136px auto auto auto auto; gap: .35rem .55rem; height: 340px; min-height: 0; padding: 0 0 .7rem; border-radius: 18px; background: white; }
.session-cards.is-grid-view .session-history-card[hidden] { display: none; }
.session-cards.is-grid-view .session-card-photo { display: block; grid-column: 1 / -1; width: 100%; height: 136px; overflow: hidden; background: #e3e7e9; }
.session-cards.is-grid-view .session-card-photo img { width: 100%; height: 100%; object-fit: cover; }
.session-card-photo-placeholder { display: grid; place-items: center; width: 100%; height: 100%; background: linear-gradient(145deg,rgba(97,150,192,.18),rgba(244,234,225,.85)); color: #7392a9; }
.session-card-photo-placeholder svg { width: 54px; height: 54px; fill: none; stroke: currentColor; stroke-width: 1.3; stroke-linecap: round; }
.session-cards.is-grid-view .session-card-grid-number { display: block; grid-column: 1 / -1; padding: .45rem .7rem 0; color: #b13324; font-size: .76rem; font-weight: 700; }
.session-cards.is-grid-view .session-number { display: none; }
.session-cards.is-grid-view .session-card-left { grid-column: 1 / -1; padding: 0 .7rem; }
.session-cards.is-grid-view .session-card-left strong { font-size: .78rem; }
.session-cards.is-grid-view .session-card-left small { margin-top: .15rem; font-size: .7rem; }
.session-cards.is-grid-view .session-card-winner { grid-column: 1 / -1; justify-content: flex-start; min-width: 0; padding: 0 .7rem; }
.session-cards.is-grid-view .session-card-winner:empty::after { content: "Aucun gagnant"; color: #80736e; font-size: .76rem; font-weight: 400; }
.session-cards.is-grid-view .session-winner-person { min-width: 0; }
.session-cards.is-grid-view .session-winner-person strong { overflow: hidden; font-size: .86rem; text-overflow: ellipsis; white-space: nowrap; }
.session-cards.is-grid-view .session-winner-crown { font-size: 1.15rem; }
.session-cards.is-grid-view .session-card-right { grid-column: 1 / -1; grid-row: auto; flex-direction: row; align-items: center; padding: 0 .7rem; text-align: left; }
.session-cards.is-grid-view .session-card-right > strong { font-size: .7rem; }
.session-cards.is-grid-view .session-card-right small { margin: 0 0 0 auto; font-size: .68rem; }
.session-cards.is-grid-view .session-card-player-names { display: grid; grid-column: 1 / -1; min-width: 0; padding: 0 .7rem; }
.session-cards.is-grid-view .session-card-player-names strong { color: #6e5f5a; font-size: .65rem; text-transform: uppercase; letter-spacing: .06em; }
.session-cards.is-grid-view .session-card-player-names small { overflow: hidden; color: #302a28; font-size: .7rem; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 1080px) { .session-cards.is-grid-view { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 700px) { .session-cards.is-grid-view { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 480px) { .session-list-toolbar { align-items: flex-end; } .session-cards.is-grid-view { grid-template-columns: 1fr; } }
.gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .8rem; }
.gallery-item { position: relative; margin: 0; overflow: hidden; border-radius: 14px; background: #f4eae1; }
.gallery-item.is-victory { border: 3px solid #e3b600; background: #fff7c9; }
.gallery-button { display: block; width: 100%; border: 0; padding: 0; overflow: hidden; cursor: zoom-in; background: transparent; }
.gallery-button img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.gallery-item figcaption { position: absolute; inset: auto 0 0; padding: .45rem; pointer-events: none; background: linear-gradient(transparent, rgba(36,29,28,.82)); color: white; font-size: .72rem; font-weight: 700; text-align: center; }
.rules-reading-panel { overflow: hidden; border: 1px solid rgba(36,29,28,.16); border-radius: 20px; background: #fffdfb; box-shadow: 0 14px 34px rgba(78,49,40,.08); }
.rules-reading-heading { display: flex; align-items: center; gap: 1rem; padding: 1.25rem 1.5rem; border-bottom: 1px solid rgba(36,29,28,.12); background: rgba(244,234,225,.55); }
.rules-reading-heading > span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 13px; background: #b13324; color: white; font-size: 1.25rem; }
.rules-reading-heading small { color: #6e5f5a; font-size: .75rem; text-transform: uppercase; letter-spacing: .12em; }
.rules-reading-heading h3 { margin: .1rem 0 0; font-family: Georgia,serif; font-size: 1.35rem; }
.rules-copy { max-width: 82ch; padding: 1.7rem 1.8rem 2rem; white-space: normal; }
.rules-copy { line-height: 1.8; }
.rules-copy p { margin: 0 0 1em; }
.rules-copy p:last-child { margin-bottom: 0; }
.rules-copy ul, .rules-copy ol { margin: .75rem 0 1rem; padding-left: 1.5rem; }
.rules-copy li + li { margin-top: .3rem; }
.rules-empty-state { display: flex; align-items: center; gap: 1rem; padding: 1.35rem 1.5rem; border: 1px dashed rgba(36,29,28,.28); border-radius: 18px; background: rgba(255,253,251,.58); }
.rules-empty-state > span { color: #b13324; font-size: 1.5rem; }
.rules-empty-state p { margin: 0; color: #6e5f5a; }
.rules-documents { display: grid; gap: 1rem; margin-top: .5rem; }
.rules-section-title { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.rules-section-title h3 { margin: 0; font-family: Georgia,serif; font-size: 1.55rem; }
.rules-section-title > span, .rules-section-title > small { color: #6e5f5a; }
.document-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; }
.document-item { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .9rem; padding: 1rem; border: 1px solid rgba(36,29,28,.16); border-radius: 16px; background: #fffdfb; transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
.document-item:hover { transform: translateY(-2px); border-color: #b13324; box-shadow: 0 10px 24px rgba(78,49,40,.09); }
.document-item > span:nth-child(2) { display: grid; min-width: 0; }
.document-item small { color: #6e5f5a; }
.document-pdf-icon { display: grid; place-items: center; width: 44px; height: 48px; border-radius: 10px; background: #b13324; color: white; font-size: .7rem; font-weight: 900; letter-spacing: .05em; }
.document-item svg { width: 20px; height: 20px; fill: none; stroke: #b13324; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.rules-manage-button { padding: .65rem 1rem; }
.rules-admin-modal { width: min(1100px,94vw); }
.rules-modal-heading { padding: .25rem 3rem 1rem .25rem; }
.rules-modal-heading h2 { margin: 0; font-family: Georgia,serif; font-size: 2rem; }
.rules-modal-heading p:last-child { margin-bottom: 0; color: #6e5f5a; }
.rules-modal-tabs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: min(520px,100%); margin: 0 0 1rem; }
.rules-modal-tabs button { width: 100%; }
.rules-admin-modal [data-rules-panel] { width: 100%; }
.rules-admin-grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(280px,.85fr); gap: 1rem; align-items: start; }
.rules-text-form { gap: 1rem; }
.rich-text-editor { overflow: hidden; border: 1px solid rgba(36,29,28,.2); border-radius: 14px; background: white; }
.rich-text-toolbar { display: flex; align-items: center; gap: .35rem; padding: .55rem; overflow-x: auto; border-bottom: 1px solid rgba(36,29,28,.13); background: #f4eae1; }
.rich-text-toolbar > button, .rich-text-toolbar > label { display: grid; min-width: 36px; height: 34px; place-items: center; padding: 0 .55rem; border: 1px solid rgba(36,29,28,.16); border-radius: 8px; background: white; color: #241d1c; cursor: pointer; font: inherit; font-size: .78rem; white-space: nowrap; }
.rich-text-toolbar > button:hover, .rich-text-toolbar > label:hover { border-color: #b13324; color: #b13324; }
.rich-text-toolbar > span { width: 1px; height: 24px; flex: 0 0 1px; margin: 0 .15rem; background: rgba(36,29,28,.18); }
.rich-text-toolbar > label { position: relative; padding: 0; overflow: hidden; font-weight: 800; }
.rich-text-toolbar input[type="color"] { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; opacity: 0; cursor: pointer; }
.rich-highlight-symbol { padding: 0 .2rem; background: #f2960c; }
.rich-text-area { min-height: 360px; padding: 1rem 1.1rem; overflow-y: auto; color: #241d1c; line-height: 1.7; outline: none; }
.rich-text-area:focus { box-shadow: inset 0 0 0 2px rgba(177,51,36,.2); }
.rich-text-area:empty::before { color: #8b7b75; content: attr(data-placeholder); pointer-events: none; }
.rich-text-area p { margin: 0 0 .85rem; }
.rich-text-area ul, .rich-text-area ol { padding-left: 1.5rem; }
.rules-document-admin { display: grid; gap: 1rem; }
.rules-admin-documents { display: grid; gap: .65rem; padding: 1.25rem; border: 1px solid rgba(36,29,28,.16); border-radius: 18px; background: #fffdfb; }
.rules-admin-documents h3 { margin: 0 0 .35rem; }
.rules-admin-documents > div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: .7rem; border-top: 1px solid rgba(36,29,28,.1); }
.rules-admin-documents > div > span { display: grid; min-width: 0; }
.rules-admin-documents small { color: #6e5f5a; }
.expansion-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .9rem; margin-top: 1rem; }
.expansion-card { display: grid; grid-template-rows: 136px 114px; min-width: 0; height: 250px; overflow: hidden; border: 1px solid rgba(97,150,192,.35); border-radius: 18px; background: white; box-shadow: 0 5px 15px rgba(36,29,28,.045); }
.expansion-image-button { display: block; width: 100%; height: 136px; padding: 0; overflow: hidden; border: 0; background: transparent; cursor: zoom-in; }
.expansion-image-button img, .expansion-cover-placeholder { width: 100%; height: 100%; min-height: 0; object-fit: cover; }
.expansion-cover-placeholder { display: grid; place-items: center; background: linear-gradient(145deg,#6196c0,#315f83); color: white; font-family: Georgia,serif; font-size: 2.5rem; }
.expansion-card-body { display: grid; grid-template-rows: minmax(1.35em,auto) auto 1fr; gap: .25rem; min-width: 0; padding: .55rem .7rem; }
.expansion-card-body h3 { display: -webkit-box; overflow: hidden; margin: 0; color: #b13324; font-size: .98rem; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.expansion-card-body small { color: #6e5f5a; font-weight: 400; }
.expansion-card-actions { display: flex; gap: .35rem; align-items: end; align-self: end; }
.expansion-card-actions form { margin: 0; }
.expansion-card-actions button { display: grid; place-items: center; width: 31px; height: 31px; padding: 0; border: 1px solid rgba(97,150,192,.4); border-radius: 9px; background: white; color: #315f83; cursor: pointer; }
.expansion-card-actions button:hover { border-color: #315f83; background: rgba(97,150,192,.1); }
.expansion-card-actions button.is-danger { color: #b13324; }
.expansion-card-actions button.is-danger:hover { border-color: #b13324; background: rgba(177,51,36,.08); }
.expansion-card-actions svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.expansion-add-card { grid-template-rows: 1fr; place-items: center; align-content: center; gap: .45rem; border: 2px dashed #b13324; background: rgba(177,51,36,.025); color: #b13324; font: inherit; cursor: pointer; }
.expansion-add-card span { font-size: 2rem; line-height: 1; }
.expansion-add-card strong { color: #b13324; font-size: .9rem; }
.expansion-add-card:hover { background: rgba(177,51,36,.08); }
.extension-form { display: grid; gap: 1rem; margin-top: 1rem; }
.extension-form-fields { display: grid; grid-template-columns: 2fr 1fr; gap: 1rem; }
.extension-form-fields label { display: grid; gap: .4rem; font-size: .82rem; font-weight: 400; }
.extension-form-fields input { width: 100%; padding: .7rem; border: 1px solid rgba(36,29,28,.18); border-radius: 10px; background: white; font: inherit; font-weight: 400; }
.extension-cover-drop-zone { min-height: 150px; }
.extension-edit-modal { width: min(1050px, 94vw); max-height: 92vh; overflow: auto; padding: 1.25rem; border: 0; border-radius: 20px; background: #f4eae1; box-shadow: 0 24px 70px rgba(0,0,0,.32); }
.extension-edit-modal::backdrop { background: rgba(18,22,26,.72); }
.extension-edit-modal .extension-form { margin: 0; }
.extension-modal-close { position: sticky; z-index: 3; top: 0; float: right; display: grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%; background: #241d1c; color: white; font-size: 1.3rem; cursor: pointer; }
.statistics-caption { max-width: 390px; margin: 0; color: #6e5f5a; font-size: .9rem; text-align: right; }
.game-stat-overview { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; }
.game-stat-overview article { position: relative; display: grid; gap: .15rem; overflow: hidden; min-height: 150px; padding: 1.35rem; border: 1px solid rgba(36,29,28,.16); border-radius: 18px; background: #fffdfb; box-shadow: 0 12px 30px rgba(78,49,40,.06); }
.game-stat-overview article::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 4px; background: #b13324; }
.game-stat-overview article:nth-child(2)::before { background: #f2960c; }
.game-stat-overview article:nth-child(3)::before { background: #a14456; }
.game-stat-overview article:nth-child(4)::before { background: #d4a514; }
.game-stat-overview article > span { color: #6e5f5a; font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .09em; }
.game-stat-overview article > strong { align-self: end; font-family: Georgia,serif; font-size: clamp(2.1rem,4vw,3.25rem); line-height: 1; color: #241d1c; }
.game-stat-overview article > small { color: #6e5f5a; }
.game-stat-details, .game-player-ranking { display: grid; gap: 1.2rem; padding: 1.4rem; border: 1px solid rgba(36,29,28,.16); border-radius: 20px; background: #fffdfb; }
.game-stat-details dl { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 0; }
.game-stat-details dl > div { display: grid; gap: .2rem; padding: .9rem 1rem; border-right: 1px solid rgba(36,29,28,.11); border-bottom: 1px solid rgba(36,29,28,.11); }
.game-stat-details dl > div:nth-child(3n) { border-right: 0; }
.game-stat-details dl > div:nth-last-child(-n+3) { border-bottom: 0; }
.game-stat-details dt { color: #6e5f5a; font-size: .8rem; }
.game-stat-details dd { margin: 0; font-family: Georgia,serif; font-size: 1.25rem; font-weight: 700; }
.stats-table-wrap { overflow-x: auto; }
.stats-table { width: 100%; min-width: 650px; border-collapse: collapse; }
.stats-table th, .stats-table td { padding: .85rem; text-align: left; border-bottom: 1px solid rgba(36,29,28,.12); }
.stats-table th { color: #6e5f5a; font-size: .76rem; text-transform: uppercase; letter-spacing: .07em; }
.stats-table tbody tr:last-child td { border-bottom: 0; }
.stats-table td:first-child { display: flex; align-items: center; gap: .7rem; }
.stats-player-rank { width: 22px; color: #b13324; font-weight: 900; text-align: center; }
.stats-player-avatar { display: grid; place-items: center; overflow: hidden; width: 36px; height: 36px; flex: 0 0 auto; border-radius: 50%; background: #f4eae1; color: #b13324; font-weight: 900; }
.stats-player-avatar img { width: 100%; height: 100%; object-fit: cover; }
.stats-table td:last-child { display: grid; grid-template-columns: minmax(90px,1fr) auto; align-items: center; gap: .7rem; }
.stats-win-rate { display: block; overflow: hidden; height: 7px; border-radius: 999px; background: #eadfda; }
.stats-win-rate > span { display: block; width: var(--win-rate); height: 100%; border-radius: inherit; background: linear-gradient(90deg,#a14456,#b13324); }
.statistics-empty { display: flex; align-items: center; gap: 1rem; padding: 1.3rem 1.4rem; border: 1px dashed rgba(177,51,36,.35); border-radius: 18px; background: rgba(255,253,251,.58); }
.statistics-empty > span { color: #b13324; font-size: 1.8rem; }
.statistics-empty p { margin: .15rem 0 0; color: #6e5f5a; }
.game-modal { width: min(92vw, 900px); border: 0; padding: 0; border-radius: 18px; background: #101820; }
.game-modal::backdrop { background: rgba(0,0,0,.78); }
.game-modal img { display: block; max-width: 100%; max-height: 82vh; margin: auto; }
.game-modal button { position: absolute; top: .75rem; right: .75rem; border: 0; border-radius: 999px; width: 2.5rem; height: 2.5rem; cursor: pointer; }
@media (max-width: 760px) { .game-hero { grid-template-columns: 1fr; } .game-cover-frame { max-width: 420px; } .session-card { grid-template-columns: 1fr; } .session-history-card { grid-template-columns: 48px 1fr auto; } .session-number { grid-row: 1 / 3; } .session-card-left { grid-column: 2; } .session-card-winner { grid-column: 2; justify-content: flex-start; padding-top: 0; } .session-card-right { grid-column: 3; grid-row: 1 / 3; } }
@media (max-width: 520px) { .session-history-card { grid-template-columns: 44px 1fr; } .session-number { grid-row: 1 / 4; } .session-card-left, .session-card-winner, .session-card-right { grid-column: 2; text-align: left; } .session-card-right { grid-row: auto; padding-top: 0; } .session-card-winner { justify-content: flex-start; } }

/* Administration directe de la couverture */
.game-cover-edit-wrap { position: relative; width: 100%; }
.game-cover-edit-button { position: absolute; right: 14px; bottom: 14px; z-index: 2; display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(177,51,36,.35); border-radius: 50%; opacity: 0; color: #b13324; background: white; box-shadow: 0 7px 20px rgba(36,29,28,.2); transition: opacity .18s ease, transform .18s ease; }
.game-cover-edit-button svg, .session-information-edit svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.game-cover-edit-wrap:hover .game-cover-edit-button, .game-cover-edit-button:focus-visible { opacity: 1; transform: translateY(-2px); }
.game-cover-edit-modal { width: min(1100px,94vw); }
.game-admin-editor .field-wide:has(> [data-cover-mode-control]) { display: none; }

/* Cartes de parties : informations essentielles */
.session-cards.is-grid-view .session-create-card { height: 320px; }
.session-cards.is-grid-view .session-history-card { grid-template-columns: 1fr; grid-template-rows: repeat(4,auto); align-content: center; gap: .65rem; height: 320px; padding: 1rem; background: white; text-align: center; }
.session-cards.is-grid-view .session-card-grid-number,
.session-cards.is-grid-view .session-number,
.session-cards.is-grid-view .session-card-player-names,
.session-cards.is-grid-view .session-card-left small { display: none; }
.session-cards.is-grid-view .session-card-winner { grid-column: 1; grid-row: 1; justify-content: center; padding: 0; }
.session-cards.is-grid-view .session-card-photo { display: block; grid-column: 1; grid-row: 2; width: 100%; height: 130px; overflow: hidden; border-radius: 13px; background: #f4eae1; }
.session-cards.is-grid-view .session-card-photo img { width: 100%; height: 100%; object-fit: cover; }
.session-cards.is-grid-view .session-card-left { grid-column: 1; grid-row: 3; align-items: center; padding: 0; text-align: center; }
.session-cards.is-grid-view .session-card-left strong { font-size: .8rem; }
.session-cards.is-grid-view .session-card-right { grid-column: 1; grid-row: 4; display: grid; justify-items: center; gap: .35rem; padding: 0; text-align: center; }
.session-cards.is-grid-view .session-card-right > strong { font-size: .75rem; }
.session-cards.is-grid-view .session-card-right small { margin: 0; font-size: .72rem; }

/* En-tête et édition des informations d’une partie */
.session-heading h2 { display: flex; align-items: center; gap: .65rem; margin: 1rem 0 .4rem; font-family: Georgia,serif; font-size: clamp(2.2rem,5vw,4rem); }
.session-heading-cover { width: 1.08em; height: 1.08em; flex: 0 0 1.08em; border-radius: .22em; object-fit: contain; background: white; box-shadow: 0 5px 14px rgba(36,29,28,.12); }
.session-information-heading { display: flex; align-items: center; gap: .6rem; }
.session-information-heading h2 { margin: 0; }
.session-information-edit { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid rgba(177,51,36,.25); border-radius: 50%; color: #b13324; background: white; }
.session-information-edit:hover { border-color: #b13324; background: rgba(177,51,36,.06); }
.session-information-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.session-information-form-grid label { display: grid; gap: .4rem; font-weight: 700; }
.session-information-form-grid input { width: 100%; padding: .75rem; border: 1px solid rgba(36,29,28,.2); border-radius: 10px; background: white; }
.session-information-expansion-editor { margin: 0; padding: 1rem; border: 1px solid rgba(36,29,28,.14); border-radius: 14px; }
.session-information-expansion-editor legend { padding: 0 .4rem; font-weight: 700; }
.session-information-expansion-choices { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .6rem; }
.session-information-expansion-choices > span > button { width: 100%; min-height: 72px; display: grid; grid-template-columns: 44px minmax(0,1fr); grid-template-rows: auto auto; align-items: center; gap: 0 .55rem; text-align: left; }
.session-information-expansion-choices img { grid-row: 1 / 3; width: 44px; height: 44px; border-radius: 8px; object-fit: cover; }
.session-information-expansion-choices button > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.session-information-expansion-choices small { font-weight: 400; }
@media (max-width: 700px) { .session-information-form-grid, .session-information-expansion-choices { grid-template-columns: 1fr; } }

/* Statistiques des jeux et des profils */
.statistics-panel { display: grid; gap: 1.25rem; padding: 1.4rem; border: 1px solid rgba(36,29,28,.16); border-radius: 20px; background: #fffdfb; box-shadow: 0 10px 28px rgba(78,49,40,.045); }
.statistics-summary-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; }
.statistics-summary-grid article { position: relative; display: grid; gap: .2rem; min-height: 132px; padding: 1.25rem; overflow: hidden; border: 1px solid rgba(36,29,28,.15); border-radius: 18px; background: #fffdfb; }
.statistics-summary-grid article::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 4px; background: #b13324; }
.statistics-summary-grid article:nth-child(3n+2)::before { background: #f2960c; }
.statistics-summary-grid article:nth-child(3n)::before { background: #a14456; }
.statistics-summary-grid article > span, .statistics-record-grid article > span, .account-encounter-grid article > span, .account-current-form > span { color: #6e5f5a; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.statistics-summary-grid article > strong { align-self: end; color: #241d1c; font-family: Georgia,serif; font-size: clamp(1.65rem,3vw,2.65rem); line-height: 1.05; }
.statistics-summary-grid article > small { color: #6e5f5a; font-size: .76rem; }
.statistics-month-chart { display: grid; grid-template-columns: repeat(12,minmax(34px,1fr)); gap: .55rem; align-items: end; min-height: 205px; padding-top: .5rem; }
.statistics-month-chart > div { display: grid; grid-template-rows: 130px auto auto; gap: .3rem; min-width: 0; text-align: center; }
.statistics-month-chart > div > span { position: relative; display: flex; align-items: end; justify-content: center; overflow: hidden; border-radius: 8px 8px 3px 3px; background: rgba(177,51,36,.055); }
.statistics-month-chart i { display: block; width: min(62%,36px); height: max(3px,var(--stat-value)); border-radius: 7px 7px 2px 2px; background: linear-gradient(180deg,#a14456,#b13324); }
.statistics-month-chart strong { font-size: .78rem; }
.statistics-month-chart small { overflow: hidden; color: #6e5f5a; font-size: .62rem; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }
.statistics-tab-buttons { display: flex; flex-wrap: wrap; gap: .45rem; }
.statistics-tab-buttons button { min-width: 82px; }
.performance-table { min-width: 830px; }
.performance-table td:last-child { display: table-cell; }
.performance-table td:first-child { min-width: 220px; flex-wrap: wrap; }
.performance-table td:first-child > strong { min-width: 90px; }
.statistics-provisional { flex: 1 0 100%; margin-left: 94px; color: #a45d00; font-size: .66rem; font-weight: 700; }
.statistics-form-sequence { display: inline-flex; align-items: center; gap: .28rem; white-space: nowrap; }
.statistics-form-sequence i, .statistics-form-sequence > span, .account-recent-results > li > i, .account-recent-results > li > span { display: grid; place-items: center; width: 25px; height: 25px; flex: 0 0 25px; border-radius: 50%; color: white; font-size: .68rem; font-style: normal; font-weight: 900; }
.statistics-form-sequence .is-win, .account-recent-results .is-win { background: #318354; }
.statistics-form-sequence .is-loss, .account-recent-results .is-loss { background: #b13324; }
.statistics-form-sequence.is-large i { width: 34px; height: 34px; font-size: .78rem; }
.statistics-record-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .8rem; }
.statistics-record-grid article { display: grid; gap: .35rem; min-width: 0; padding: 1rem; border: 1px solid rgba(177,51,36,.18); border-radius: 15px; background: rgba(244,234,225,.34); }
.statistics-record-grid article > strong { overflow-wrap: anywhere; color: #b13324; font-family: Georgia,serif; font-size: 1.55rem; line-height: 1.1; }
.statistics-record-grid article > small { color: #6e5f5a; font-size: .72rem; font-weight: 400; }
.statistics-best-label { display: block; margin-top: .2rem; color: #9a7100; font-size: .62rem; text-transform: uppercase; letter-spacing: .06em; }

.account-statistics-dashboard { display: grid; gap: 1.25rem; }
.account-stat-summary { grid-template-columns: repeat(3,minmax(0,1fr)); }
.account-signature-games { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.account-signature-game { display: grid; align-content: start; min-width: 0; padding: 1.15rem; border: 1px solid rgba(36,29,28,.14); border-radius: 18px; background: #fffdfb; text-align: center; }
.account-signature-game.is-success { border-color: rgba(49,131,84,.4); }
.account-signature-game.is-nemesis { border-color: rgba(177,51,36,.38); }
.account-signature-game > .eyebrow { margin-bottom: .8rem; }
.account-signature-game > a { display: grid; justify-items: center; gap: .5rem; color: inherit; text-decoration: none; }
.account-signature-game img, .account-signature-placeholder { display: grid; width: min(180px,70%); aspect-ratio: 1; place-items: center; border-radius: 16px; object-fit: contain; background: white; box-shadow: 0 10px 24px rgba(36,29,28,.12); }
.account-signature-placeholder { background: #6196c0; color: white; font-family: Georgia,serif; font-size: 3rem; }
.account-signature-game strong { color: #b13324; font-family: Georgia,serif; font-size: 1.2rem; }
.account-signature-game small { color: #6e5f5a; font-size: .76rem; font-weight: 400; }
.account-performance-highlights { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .8rem; }
.account-performance-highlights > div { min-width: 0; padding: 1rem; border: 1px solid rgba(36,29,28,.14); border-radius: 15px; background: #fffdfb; }
.account-performance-highlights h3 { margin-top: 0; }
.account-performance-highlights .account-game-ranking small { padding-right: .35rem; }
.account-performance-highlights > article { border-color: rgba(36,29,28,.14); }
.account-performance-highlights .account-insight-heading > span { background: #a14456; }
.account-game-performance-table { margin-top: .25rem; }
.account-performance-table-wrap { overflow: hidden; border: 1px solid rgba(36,29,28,.13); border-radius: 17px; background: white; }
.account-performance-table { width: 100%; min-width: 720px; border-collapse: separate; border-spacing: 0; }
.account-performance-table th { padding: .8rem 1rem; background: #f4eae1; color: #6e5f5a; font-size: .69rem; text-align: center; text-transform: uppercase; letter-spacing: .06em; }
.account-performance-table th:first-child { text-align: left; }
.account-performance-table td { padding: .75rem 1rem; border-bottom: 1px solid rgba(36,29,28,.09); text-align: center; }
.account-performance-table tbody tr:last-child td { border-bottom: 0; }
.account-performance-table tbody tr:hover { background: rgba(177,51,36,.035); }
.account-performance-table td:first-child { display: table-cell; min-width: 250px; text-align: left; }
.account-performance-game { display: flex; align-items: center; gap: .7rem; color: inherit; text-decoration: none; }
.account-performance-game img, .account-performance-game > i { display: grid; width: 46px; height: 46px; flex: 0 0 46px; place-items: center; border-radius: 9px; object-fit: cover; background: #6196c0; color: white; font-style: normal; }
.account-performance-game > span { display: grid; min-width: 0; }
.account-performance-game strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-rate-pill, .account-index-value { display: inline-flex; justify-content: center; min-width: 68px; padding: .32rem .55rem; border-radius: 999px; background: #f4eae1; font-size: .76rem; font-weight: 700; }
.account-index-value { background: rgba(177,51,36,.1); color: #b13324; }
.account-form-layout { display: grid; grid-template-columns: minmax(260px,.7fr) minmax(0,1.3fr); gap: 1rem; align-items: stretch; }
.account-current-form { display: grid; align-content: center; gap: .45rem; padding: 1.25rem; border: 1px solid rgba(177,51,36,.2); border-radius: 17px; background: rgba(244,234,225,.35); }
.account-current-form > strong { color: #b13324; font-family: Georgia,serif; font-size: 1.8rem; }
.account-current-form > small, .account-current-form p { margin: 0; color: #6e5f5a; font-size: .78rem; font-weight: 400; }
.account-record-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; }
.account-record-grid > div { display: grid; gap: .25rem; padding: .9rem; border: 1px solid rgba(36,29,28,.12); border-radius: 13px; background: #fffdfb; }
.account-record-grid > div > span { color: #6e5f5a; font-size: .7rem; }
.account-recent-results { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: .55rem; margin: 0; padding: 0; list-style: none; }
.account-recent-results li { display: flex; align-items: center; gap: .5rem; min-width: 0; padding: .55rem; border: 1px solid rgba(36,29,28,.12); border-radius: 12px; }
.account-recent-results a { display: grid; min-width: 0; }
.account-recent-results time { margin-left: auto; color: #6e5f5a; font-size: .65rem; white-space: nowrap; }
.account-recent-results strong, .account-recent-results small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-recent-results strong { font-size: .72rem; }
.account-recent-results small { color: #6e5f5a; font-size: .62rem; font-weight: 400; }
.account-score-records { display: grid; gap: .7rem; }
.account-score-records > p { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin: 0; padding: .75rem; border: 1px solid rgba(36,29,28,.12); border-radius: 12px; }
.account-score-records h4 { margin: 0; font-family: Georgia,serif; font-size: 1.15rem; }
.account-score-records > div { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .65rem; }
.account-score-records a { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .2rem .6rem; padding: .75rem; border: 1px solid rgba(36,29,28,.12); border-radius: 12px; }
.account-score-records span { overflow: hidden; font-size: .72rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.account-score-records strong { color: #b13324; }
.account-score-records small { grid-column: 1 / -1; color: #6e5f5a; font-size: .62rem; font-weight: 400; }
.account-encounter-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .8rem; }
.account-encounter-grid > div { display: grid; justify-items: center; gap: .55rem; padding: 1rem; border: 1px solid rgba(36,29,28,.13); border-radius: 15px; text-align: center; }
.account-encounter-grid > div > span, .account-encounter-grid > div > small { color: #6e5f5a; font-size: .72rem; }
.account-encounter-grid article { display: grid; gap: .7rem; padding: 1rem; border: 1px solid rgba(36,29,28,.13); border-radius: 15px; }
.account-encounter-grid article > a { display: flex; align-items: center; gap: .6rem; }
.account-encounter-avatar { display: grid; place-items: center; overflow: hidden; width: 42px; height: 42px; flex: 0 0 42px; border-radius: 50%; background: #a14456; color: white; font-weight: 800; }
.account-encounter-avatar img { width: 100%; height: 100%; object-fit: cover; }
.account-encounter-grid article > small { color: #b13324; font-weight: 700; }
.account-activity-facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 0; border-top: 1px solid rgba(36,29,28,.12); }
.account-activity-facts > p { display: grid; gap: .25rem; margin: 0; padding: 1rem; border-right: 1px solid rgba(36,29,28,.12); }
.account-activity-facts > p:last-child { border-right: 0; }
.account-activity-facts > p > span { color: #6e5f5a; font-size: .72rem; }
.account-activity-facts > div { display: grid; gap: .2rem; padding: 1rem; border-right: 1px solid rgba(36,29,28,.12); }
.account-activity-facts > div:last-child { border-right: 0; }
.account-activity-facts dt { color: #6e5f5a; font-size: .72rem; }
.account-activity-facts dd { margin: 0; font-family: Georgia,serif; font-weight: 700; }
@media (max-width: 900px) { .statistics-summary-grid, .account-stat-summary { grid-template-columns: repeat(2,minmax(0,1fr)); } .statistics-record-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .account-performance-highlights { grid-template-columns: repeat(2,minmax(0,1fr)); } .account-form-layout { grid-template-columns: 1fr; } .account-recent-results { grid-template-columns: repeat(2,minmax(0,1fr)); } .account-score-records > div { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 650px) { .statistics-summary-grid, .account-stat-summary, .statistics-record-grid, .account-record-grid, .account-encounter-grid, .account-activity-facts, .account-signature-games, .account-performance-highlights { grid-template-columns: 1fr; } .statistics-month-chart { gap: .22rem; overflow-x: auto; } .statistics-month-chart > div { min-width: 34px; } .account-recent-results, .account-score-records > div { grid-template-columns: 1fr; } .account-activity-facts > div { border-right: 0; border-bottom: 1px solid rgba(36,29,28,.12); } .account-activity-facts > div:last-child { border-bottom: 0; } }

.library-filters { display: grid; gap: 1rem; padding-bottom: 1.5rem; margin-bottom: 1.5rem; border-bottom: 1px solid rgba(28,39,48,.2); }
.search-filter { width: min(100%, 620px); }
.search-filter > input[type="search"] { width: 100%; min-height: 46px; padding: .75rem 1rem; border: 1px solid rgba(28,39,48,.24); border-radius: 12px; background: rgba(255,255,255,.72); font: inherit; }
.search-filter > input[type="search"]:focus { border-color: #b13324; outline: 2px solid rgba(177,51,36,.15); }
.filter-group { display: grid; gap: .45rem; }
.filter-group > small { color: #1c2730; font-size: .74rem; font-weight: 400; text-transform: uppercase; letter-spacing: .09em; }
.compact-choice-grid { display: flex; flex-wrap: wrap; gap: .45rem; }
.compact-choice-grid button { border: 1px solid rgba(28,39,48,.18); border-radius: 999px; padding: .42rem .72rem; background: #dedbd7; color: #5d6266; font: inherit; font-size: .78rem; font-weight: 400; cursor: pointer; transition: color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease; }
.compact-choice-grid button:hover { transform: translateY(-1px); border-color: #b13324; }
.compact-choice-grid button[aria-pressed="true"] { border-color: #b13324; background: #b13324; color: white; }
.difficulty-choice-grid button[aria-pressed="true"] { border-color: var(--difficulty-color, #b13324); background: var(--difficulty-color, #b13324); color: var(--difficulty-text, #241d1c); }
.type-choice-grid button[aria-pressed="true"] { border-color: var(--type-color, #6196c0); background: var(--type-color, #6196c0); color: var(--type-text, white); }
.compact-game-grid { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 1rem; }
.admin-add-game-card { grid-column: 1 / -1; justify-self: center; width: 100%; display: flex; align-items: center; justify-content: center; gap: .55rem; color: #b13324; background: transparent; }
.compact-game-card.admin-add-game-card { width: 100%; height: auto; min-height: 78px; display: flex; align-items: center; justify-content: center; gap: .55rem; border: 1px dashed #b13324; border-radius: 16px; box-shadow: none; color: #b13324; text-align: center; }
.compact-game-card.admin-add-game-card strong, .compact-game-card.admin-add-game-card > span { color: #b13324; }
.admin-add-game-card > span { font-size: 2rem; line-height: 1; }
.admin-add-game-card:hover { border-color: #b13324; background: rgba(177,51,36,.06); }
.compact-game-card.admin-add-game-card:hover { transform: none; border-color: #b13324; box-shadow: none; }
@media (min-width: 476px) { .admin-add-game-card { width: calc((100% - 1rem) / 2); } }
@media (min-width: 702px) { .admin-add-game-card { width: calc((100% - 2rem) / 3); } }
@media (min-width: 928px) { .admin-add-game-card { width: calc((100% - 3rem) / 4); } }
@media (min-width: 1154px) { .admin-add-game-card { width: calc((100% - 4rem) / 5); } }
.compact-game-card { display: block; height: 340px; overflow: hidden; color: inherit; text-decoration: none; border: 1px solid rgba(28,39,48,.12); border-radius: 18px; background: rgba(255,255,255,.55); box-shadow: 0 5px 16px rgba(28,39,48,.05); transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.compact-game-card:hover { transform: translateY(-6px) rotate(-.35deg); border-color: rgba(177,51,36,.45); box-shadow: 0 18px 35px rgba(177,51,36,.14); }
.compact-game-card:focus-visible { outline: 3px solid #b13324; outline-offset: 3px; }
.compact-game-card .library-cover, .compact-game-card .cover-placeholder { width: 100%; height: 136px; aspect-ratio: auto; object-fit: cover; }
.compact-game-body { display: grid; height: 204px; align-content: start; gap: .55rem; padding: .85rem; }
.compact-tags { gap: .3rem; }
.compact-tags span { padding: .25rem .45rem; font-size: .66rem; font-weight: 400 !important; }
.compact-game-card h2 { display: -webkit-box; min-height: 2.3em; margin: 0; overflow: hidden; color: #b13324; font-size: 1.18rem; line-height: 1.15; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.card-stars { display: flex; gap: .14rem; min-height: 1rem; color: transparent; font-size: .92rem; line-height: 1; }
.card-stars span { -webkit-text-stroke: 0; }
.card-stars .is-filled { color: #f2960c; }
.card-type-tags, .card-difficulty-tag { display: flex; }
.card-difficulty-tag { margin-top: -.2rem; }
.difficulty-colored span { background: var(--difficulty-color, #b13324); color: var(--difficulty-text, #241d1c); }
.footer-inner { justify-content: center !important; text-align: center; }

.custom-fields-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin-top: 1.25rem; }
.custom-fields-grid fieldset { min-width: 0; border: 1px solid rgba(97,150,192,.35); border-radius: 16px; padding: 1rem; }
.custom-fields-grid legend { padding: 0 .35rem; font-size: .78rem; font-weight: 400; text-transform: uppercase; letter-spacing: .08em; }
.scoring-mode-fieldset { min-width: 0; margin: 1.25rem 0 0; padding: 1rem; border: 1px solid rgba(97,150,192,.35); border-radius: 16px; }
.scoring-mode-fieldset legend { padding: 0 .35rem; font-size: .78rem; font-weight: 400; text-transform: uppercase; letter-spacing: .08em; }
.scoring-mode-choice-grid button[aria-pressed="true"] { border-color: #b13324; background: #b13324; color: white; }
.custom-fields-grid .compact-choice-grid > span { display: inline-flex; }
.game-create-actions { display: flex; justify-content: flex-end; gap: .75rem; flex-wrap: wrap; }
.cover-crop-grid { display: grid; gap: 1.35rem; margin-top: 1rem; }
.cover-cropper { display: grid; grid-template-columns: minmax(240px, 520px) minmax(190px, 1fr); gap: 1.5rem; align-items: center; padding: 1rem; border: 1px solid rgba(97,150,192,.28); border-radius: 18px; background: rgba(255,255,255,.55); }
.cover-cropper[hidden] { display: none; }
.cover-drop-zone { width: 100%; min-height: 190px; display: grid; place-items: center; align-content: center; gap: .55rem; padding: 1.5rem; border: 2px dashed rgba(97,150,192,.65); border-radius: 18px; background: rgba(97,150,192,.08); color: #6196c0; text-align: center; transition: background .18s ease, border-color .18s ease, transform .18s ease; }
.cover-drop-zone:hover, .cover-drop-zone.is-dragging { border-color: #b13324; background: rgba(177,51,36,.08); color: #b13324; transform: translateY(-2px); }
.cover-drop-zone svg { width: 75px; height: 75px; }
.cover-drop-zone strong, .cover-drop-zone small { display: block; font-weight: 400; }
.cover-drop-zone strong { font-size: 1rem; }
.cover-drop-zone small { color: #6e5f5a; font-size: .8rem; }
.crop-preview { display: grid; gap: .45rem; }
.crop-preview h3, .crop-preview p { margin: 0; }
.crop-preview h3 { color: #6196c0; font-size: 1rem; }
.crop-preview p { color: #6e5f5a; font-size: .82rem; }
.cover-cropper canvas { display: block; width: min(100%, 520px); height: auto; aspect-ratio: 1; border-radius: 18px; background: #e1e1e1; cursor: grab; touch-action: none; box-shadow: 0 10px 28px rgba(28,39,48,.12); }
.cover-cropper[data-cover-variant="card"] canvas { aspect-ratio: 700 / 438; }
.cover-cropper canvas:active { cursor: grabbing; }
.crop-controls { display: grid; gap: .75rem; }
.crop-controls label { display: grid; gap: .4rem; }
.crop-controls input[type="range"] { width: 100%; accent-color: #b13324; }
.game-archive-action { display: flex; justify-content: flex-end; margin-top: 1rem; }
.admin-save-row { display: flex; justify-content: center; }
.game-danger-zone { display: flex; justify-content: space-between; align-items: center; gap: 1.25rem; padding: 1.25rem; border: 1px solid rgba(177,51,36,.58); border-radius: 18px; background: rgba(177,51,36,.07); }
.game-danger-zone p { margin: .25rem 0 0; color: #6e5f5a; }
.game-danger-actions { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.game-danger-actions form { margin: 0; }
.difficulty-create-row { display: grid; grid-template-columns: minmax(120px,1fr) auto auto; gap: .65rem; align-items: start; }
.difficulty-create-row > input { min-height: 46px; padding: 11px 13px; border: 1px solid rgba(36,29,28,.16); border-radius: 9px; }
.color-picker { position: relative; }
.color-picker summary { display: grid; place-items: center; width: 46px; min-height: 46px; padding: .55rem; border: 1px solid rgba(36,29,28,.16); border-radius: 10px; background: white; cursor: pointer; list-style: none; }
.color-picker summary::-webkit-details-marker { display: none; }
.color-picker summary span { width: 24px; height: 24px; border-radius: 7px; background: var(--swatch); box-shadow: inset 0 0 0 1px rgba(0,0,0,.15); }
.color-swatch-grid { position: absolute; z-index: 12; right: 0; width: 272px; display: grid; grid-template-columns: repeat(6, 1fr); gap: .45rem; margin-top: .4rem; padding: .65rem; border: 1px solid rgba(36,29,28,.16); border-radius: 12px; background: white; box-shadow: 0 12px 30px rgba(36,29,28,.16); }
.color-swatch-grid button { width: 34px; height: 34px; padding: 0; border: 2px solid transparent; border-radius: 9px; background: var(--swatch); }
.color-swatch-grid button[aria-pressed="true"] { border-color: #241d1c; box-shadow: 0 0 0 2px white inset; }
.difficulty-config-row { grid-template-columns: minmax(110px,1fr) auto auto auto auto; }
.compact-config-row { grid-template-columns: minmax(110px,1fr) auto auto auto; }
.status-toggle { min-width: 46px; border: 0; border-radius: 999px; padding: .45rem .65rem; color: white; font-size: .72rem; font-weight: 800; }
.status-toggle.is-on { background: #318354; }
.status-toggle.is-off { background: #b13324; }
.config-icon { display: grid; place-items: center; width: 34px; height: 34px; border: 0; border-radius: 9px; font-size: 1.1rem; font-weight: 800; }
.config-save-icon { background: #6196c0; color: white; }
.config-delete-icon { background: rgba(177,51,36,.1); color: #b13324; }
.account-search-row { display: grid; grid-template-columns: 1fr auto; gap: .75rem; align-items: center; }
.account-search-row input { width: 100%; min-height: 46px; padding: .75rem 1rem; border: 1px solid rgba(36,29,28,.2); border-radius: 12px; background: white; }
.account-search-row span { min-width: 38px; text-align: center; color: #6e5f5a; }
.admin-sessions-page { max-width: 1180px; }
.admin-session-filters { display: grid; grid-template-columns: minmax(360px, 1.6fr) minmax(160px, .55fr) minmax(190px, .7fr) minmax(210px, .75fr) auto; gap: 1rem; align-items: end; margin-bottom: 1.25rem; padding: 1.15rem; border: 1px solid rgba(97,150,192,.3); border-radius: 16px; background: rgba(255,255,255,.72); }
.admin-session-filters .filter-group { display: grid; gap: .45rem; }
.admin-session-filter-field { position: relative; display: grid; gap: .45rem; color: #524946; font-size: .78rem; font-weight: 400; }
.admin-session-filter-field input, .admin-session-filter-field select { width: 100%; min-height: 43px; padding: .65rem .8rem; border: 1px solid rgba(36,29,28,.2); border-radius: 11px; background: white; color: #241d1c; font: inherit; font-size: .9rem; font-weight: 400; }
.admin-session-reset { min-height: 34px; padding: .38rem .62rem; font-size: .72rem; }
.admin-session-creator-suggestions { position: absolute; z-index: 12; top: calc(100% + .35rem); right: 0; left: 0; display: grid; overflow: hidden; border: 1px solid rgba(97,150,192,.45); border-radius: 12px; background: white; box-shadow: 0 12px 28px rgba(36,29,28,.16); }
.admin-session-creator-suggestions[hidden] { display: none; }
.admin-session-creator-suggestions button { padding: .7rem .85rem; border: 0; border-bottom: 1px solid rgba(36,29,28,.08); background: white; color: #241d1c; font: inherit; font-size: .85rem; font-weight: 400; text-align: left; cursor: pointer; }
.admin-session-creator-suggestions button:last-child { border-bottom: 0; }
.admin-session-creator-suggestions button:hover, .admin-session-creator-suggestions button:focus { background: rgba(97,150,192,.13); color: #244f72; }
.admin-session-results-heading { display: flex; gap: .35rem; align-items: baseline; margin: .4rem 0 .75rem; color: #6e5f5a; font-size: .85rem; }
.admin-session-results-heading strong { color: #b13324; font-size: 1rem; }
.admin-session-grid { display: grid; gap: .7rem; }
.admin-session-card { display: grid; grid-template-columns: 66px minmax(0,1fr) auto; gap: 1rem; align-items: center; min-height: 88px; padding: .7rem 1rem .7rem .7rem; border: 1px solid rgba(97,150,192,.34); border-radius: 16px; background: white; color: #241d1c; text-decoration: none; box-shadow: 0 4px 12px rgba(36,29,28,.035); transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.admin-session-card:hover { border-color: #b13324; box-shadow: 0 8px 22px rgba(177,51,36,.12); transform: translateY(-1px); }
.admin-session-card[hidden] { display: none; }
.admin-session-card.is-forgotten { border-color: #b13324; box-shadow: 0 0 0 2px rgba(177,51,36,.08), 0 7px 20px rgba(177,51,36,.1); }
.admin-session-game-thumb { display: grid; place-items: center; width: 66px; height: 66px; overflow: hidden; border-radius: 12px; background: #6196c0; color: white; }
.admin-session-game-thumb img { width: 100%; height: 100%; object-fit: cover; }
.admin-session-game-thumb b { font-family: Georgia,serif; font-size: 1.65rem; }
.admin-session-card-main { display: grid; gap: .45rem; min-width: 0; }
.admin-session-card-title { display: flex; gap: .65rem; align-items: baseline; min-width: 0; }
.admin-session-card-title strong { overflow: hidden; color: #b13324; font-size: 1rem; text-overflow: ellipsis; white-space: nowrap; }
.admin-session-card-title small { flex: 0 0 auto; color: #6e5f5a; font-weight: 400; }
.admin-session-card-meta { display: flex; flex-wrap: wrap; gap: .35rem 1.2rem; color: #625754; font-size: .77rem; }
.admin-session-card-meta strong { font-weight: 700; }
.admin-session-card-state { display: grid; justify-items: end; gap: .45rem; }
.admin-session-status, .admin-session-forgotten { display: inline-flex; border-radius: 999px; padding: .35rem .62rem; font-size: .72rem; font-style: normal; font-weight: 700; white-space: nowrap; }
.admin-session-status.is-terminee { background: rgba(177,51,36,.12); color: #9d2d21; }
.admin-session-status.is-agendee { background: rgba(97,150,192,.17); color: #315f83; }
.admin-session-status.is-en-cours { background: rgba(49,131,84,.15); color: #237044; }
.admin-session-status.is-en-pause { background: rgba(242,150,12,.2); color: #985a00; }
.admin-session-forgotten { background: #b13324; color: white; }
@media (max-width: 980px) { .admin-session-filters { grid-template-columns: 1fr 1fr; } .admin-session-filters .filter-group { grid-column: 1 / -1; } }
@media (max-width: 620px) { .admin-session-filters { grid-template-columns: 1fr; } .admin-session-filters .filter-group { grid-column: auto; } .admin-session-card { grid-template-columns: 56px 1fr; } .admin-session-game-thumb { width: 56px; height: 56px; } .admin-session-card-state { grid-column: 2; grid-row: 2; justify-items: start; grid-auto-flow: column; justify-content: start; } .admin-session-card-meta { display: grid; gap: .25rem; } }
.account-summary-badges { display: flex; align-items: center; justify-content: flex-end; gap: .55rem; flex-wrap: wrap; }
.account-status { border-radius: 999px; padding: .3rem .58rem; font-size: .7rem; font-style: normal; font-weight: 700; white-space: nowrap; }
.account-status.is-active { background: rgba(49,131,84,.13); color: #21613d; }
.account-status.is-inactive { background: rgba(177,51,36,.12); color: #8d271d; }
.account-status.is-pending { background: rgba(242,150,12,.16); color: #8a5300; }
.account-test-toggle { justify-self: start; border: 1px solid rgba(28,39,48,.18); border-radius: 999px; padding: .48rem .8rem; background: #dedbd7; color: #5d6266; font-weight: 400; }
.account-test-toggle[aria-pressed="true"] { border-color: #b13324; background: #b13324; color: white; }
.form-hint { margin: 0; padding: .7rem .85rem; border-radius: 10px; background: rgba(97,150,192,.12); color: #6e5f5a; }
.player-range-fields { display: grid; grid-template-columns: auto minmax(70px,110px) auto minmax(70px,110px); align-items: center; justify-content: start; gap: .65rem; }
.player-range-fields > span:first-child { margin-right: .4rem; font-size: .86rem; font-weight: 400; }
.player-range-fields label { display: block; }
.search-filter-row { display: flex; align-items: end; gap: .75rem; }
.archive-filter-button { display: inline-flex; align-items: center; min-height: 46px; margin-bottom: 0; padding: .42rem .85rem; border: 1px solid rgba(28,39,48,.18); border-radius: 999px; background: #dedbd7; color: #5d6266; font-size: .78rem; }
.archive-filter-button[aria-pressed="true"] { border-color: #b13324; background: #b13324; color: white; }
.archived-game-notice { margin: 1.25rem 0 2rem; }
@media (max-width: 760px) { .game-danger-zone { align-items: flex-start; flex-direction: column; } .difficulty-create-row, .difficulty-config-row { grid-template-columns: 1fr; } .color-swatch-grid { left: 0; right: auto; } }
@media (max-width: 760px) { .custom-fields-grid, .cover-cropper { grid-template-columns: 1fr; } .game-create-actions .button { flex: 1 1 100%; } }

/* Création et suivi des parties */
.session-builder { display: grid; gap: 1.4rem; max-width: 920px; }
.session-step { display: grid; gap: 1.25rem; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid rgba(36,29,28,.16); border-radius: 20px; background: #fffdfb; box-shadow: 0 18px 50px rgba(78,49,40,.08); }
.session-step-heading { display: flex; align-items: flex-start; gap: 1rem; }
.session-step-heading > span { display: grid; place-items: center; flex: 0 0 38px; width: 38px; height: 38px; border-radius: 50%; background: #6196c0; color: white; font-size: .8rem; font-weight: 800; }
.session-step-heading h2, .session-step-heading p { margin: 0; }
.session-step-heading h2 { font-family: Georgia, serif; font-size: clamp(1.7rem, 3vw, 2.35rem); }
.session-step-heading p { margin-top: .25rem; color: #6e5f5a; }
.session-step fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.session-step legend { margin-bottom: .65rem; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.session-date-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 240px)); gap: 1rem; }
.session-date-fields label, [data-manual-game-picker] > label { display: grid; gap: .45rem; font-weight: 400; }
.session-date-fields input, [data-manual-game-picker] input { width: 100%; min-height: 46px; padding: .7rem .85rem; border: 1px solid rgba(36,29,28,.2); border-radius: 10px; background: white; }
.session-date-hint { margin: -.5rem 0 0; color: #6e5f5a; font-size: .86rem; }
.assistant-panel { display: grid; grid-template-columns: minmax(0,1fr); gap: 1rem; align-items: stretch; padding: 1rem; border: 1px solid rgba(177,51,36,.24); border-radius: 16px; background: white; }
.assistant-panel label { display: grid; gap: .4rem; min-width: 0; color: #6e5f5a; font-size: .8rem; }
.assistant-panel select { width: 100%; min-height: 42px; padding: .6rem 2.2rem .6rem .75rem; border: 1px solid rgba(177,51,36,.45); border-radius: 10px; appearance: none; background-color: white; background-image: linear-gradient(45deg, transparent 50%, #b13324 50%), linear-gradient(135deg, #b13324 50%, transparent 50%); background-position: calc(100% - 16px) 50%, calc(100% - 11px) 50%; background-repeat: no-repeat; background-size: 5px 5px, 5px 5px; color: #241d1c; font: inherit; font-size: .9rem; accent-color: #b13324; }
.assistant-panel select option:checked { background: #b13324; color: white; }
.assistant-panel select:focus { border-color: #b13324; outline: 3px solid rgba(177,51,36,.12); }
.assistant-recommend-button { min-height: 42px; justify-self: start; padding: .55rem .9rem; white-space: nowrap; }
.assistant-recommend-button.random-button { width: 42px; height: 42px; min-height: 42px; padding: .45rem; }
.session-game-results { display: grid; gap: .5rem; margin-top: .5rem; }
.session-game-result, .selected-session-game-card { display: grid; grid-template-columns: 58px 1fr; gap: .8rem; align-items: center; width: 100%; padding: .6rem; border: 1px solid rgba(97,150,192,.35); border-radius: 13px; background: white; color: #241d1c; text-align: left; }
.session-game-result:hover { border-color: #b13324; transform: translateY(-1px); }
.session-game-result img, .selected-session-game-card img, .session-game-placeholder { width: 58px; height: 58px; border-radius: 10px; object-fit: cover; }
.session-game-placeholder { display: grid; place-items: center; background: #6196c0; color: white; font-family: Georgia, serif; font-size: 1.7rem; }
.session-game-result span:last-child, .selected-session-game-card span:last-child { display: grid; }
.session-game-result small, .selected-session-game-card small { color: #6e5f5a; }
.session-game-result-line { display: flex !important; align-items: center; gap: .55rem; min-width: 0; white-space: nowrap; }
.session-game-result-line strong { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.session-game-result-line small { flex: 0 0 auto; }
.session-game-inline-tags { display: inline-flex !important; align-items: center; gap: .3rem; min-width: 0; overflow: hidden; }
.session-game-inline-tags > .session-game-type-tag,
.session-game-inline-tags > .session-game-difficulty-tag { display: inline-flex !important; align-items: center; flex: 0 0 auto; padding: .2rem .42rem; border-radius: 999px; background: var(--type-color, var(--difficulty-color, #6196c0)); color: var(--type-text, var(--difficulty-text, white)); font-size: .62rem; font-style: normal; font-weight: 400; line-height: 1.2; }
.session-game-tag-row { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; margin-top: .45rem; }
.session-game-tag-row > span { border-radius: 999px; padding: .22rem .45rem; font-size: .65rem; font-weight: 400; line-height: 1.2; }
.session-game-type-tag { background: var(--type-color, #6196c0); color: var(--type-text, white); }
.session-game-difficulty-tag { background: var(--difficulty-color, #b13324); color: var(--difficulty-text, white); }
.selected-session-game { display: grid; }
.selected-session-game-card { border: 2px solid #b13324; background: rgba(177,51,36,.06); }
.session-compatibility-error { padding: 1rem 1.1rem; border: 1px solid #b13324; border-radius: 13px; background: rgba(177,51,36,.09); color: #7c2019; }
.session-builder .play-order-editor { display: grid; gap: .75rem; }
.session-builder .play-order-editor h3 { display: flex; align-items: center; gap: .45rem; margin: 0; }
.random-button { display: inline-grid; place-items: center; width: 2rem; height: 2rem; padding: .25rem; border: 1px solid rgba(177,51,36,.3); border-radius: 50%; background: white; color: #b13324; }
.random-button:hover { border-color: #b13324; background: rgba(177,51,36,.08); }
.random-button svg { width: 1.25rem; height: 1.25rem; fill: currentColor; }
.session-builder .play-order-editor li { grid-template-columns: auto 1fr; }
.session-expansion-picker { min-width: 0; padding: 1rem; border: 1px solid rgba(97,150,192,.35) !important; border-radius: 16px; }
.session-expansion-picker legend { padding: 0 .35rem; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.session-expansion-choice-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: .6rem; }
.session-expansion-choice { min-width: 0; }
.session-expansion-choice > button { display: grid; grid-template-columns: 50px minmax(0,1fr); gap: .55rem; align-items: center; width: 100%; min-width: 0; padding: .42rem; border: 1px solid rgba(28,39,48,.18); border-radius: 13px; background: #dedbd7; color: #5d6266; text-align: left; cursor: pointer; transition: background .18s ease,border-color .18s ease,transform .18s ease; }
.session-expansion-choice > button:hover { border-color: #b13324; transform: translateY(-1px); }
.session-expansion-choice > button[aria-pressed="true"] { border-color: #b13324; background: rgba(177,51,36,.13); color: #241d1c; box-shadow: inset 0 0 0 1px #b13324; }
.session-expansion-choice img, .session-expansion-placeholder { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 9px; object-fit: cover; }
.session-expansion-placeholder { background: #6196c0; color: white; font-family: Georgia,serif; font-size: 1.2rem; }
.session-expansion-choice button > span:last-child { display: grid; min-width: 0; gap: .15rem; }
.session-expansion-choice strong { overflow: hidden; font-size: .76rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.session-expansion-choice small { color: inherit; font-size: .66rem; font-weight: 400; }
@media (max-width: 1050px) { .expansion-grid, .session-expansion-choice-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 700px) { .expansion-grid, .session-expansion-choice-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .extension-form-fields { grid-template-columns: 1fr; } }
@media (max-width: 430px) { .expansion-grid, .session-expansion-choice-grid { grid-template-columns: 1fr; } }
.play-order-editor ol { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1.25rem; }
.session-builder .play-order-editor li.play-order-card { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: .65rem; min-height: 185px; padding: .65rem; background: transparent; text-align: center; }
.play-order-card { position: relative; }
.play-order-card > .play-order-position { position: absolute; z-index: 2; top: 0; left: calc(50% - 72px); display: grid; width: 44px; height: 44px; place-items: center; border-radius: 50%; background: #a14456; color: white; font-size: 1rem; font-weight: 400; }
.play-order-editor .play-order-avatar { display: grid; place-items: center; width: 118px; height: 118px; overflow: hidden; border-radius: 50%; background: #6196c0; color: white; font-family: inherit; font-size: 3rem; font-weight: 400; }
.play-order-avatar img { width: 100%; height: 100%; object-fit: cover; }
.play-order-card .play-order-name { max-width: 100%; color: #241d1c; font-size: 1rem; font-weight: 600; line-height: 1.15; text-align: center; }
.session-page { display: grid; gap: 1.5rem; }
.session-heading h2 { margin: 0; font-family: Georgia, serif; font-size: clamp(2.2rem, 5vw, 4.6rem); line-height: .98; }
.session-control-panel { display: grid; gap: 1.2rem; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid rgba(97,150,192,.42); border-radius: 20px; background: #fffdfb; box-shadow: 0 18px 50px rgba(78,49,40,.08); }
.session-control-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.session-control-heading h2 { margin: 0; font-size: clamp(1.35rem, 3vw, 2rem); }
.session-live-timer { font-variant-numeric: tabular-nums; font-size: clamp(1.8rem, 4vw, 3rem); font-weight: 800; color: #b13324; }
.session-control-actions { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; }
.session-control-actions form { margin: 0; }
.session-started-button { border-color: #318354; background: rgba(49,131,84,.12); color: #318354; opacity: 1; }
.session-pause-button { border: 1px solid #f2960c; border-radius: 999px; padding: 11px 18px; background: transparent; color: #a66100; font-weight: 700; }
.session-pause-button[aria-pressed="true"] { background: #f2960c; color: #241d1c; }
.session-participant-list li { grid-template-columns: auto 1fr auto auto; }
.session-finish-modal { width: min(680px, calc(100% - 24px)); max-height: 88vh; padding: 0; overflow: auto; border: 0; border-radius: 20px; background: #fffdfb; box-shadow: 0 28px 80px rgba(36,29,28,.28); }
.session-finish-modal[data-finish-session-modal] { width: min(940px, calc(100% - 24px)); }
.session-finish-modal::backdrop { background: rgba(36,29,28,.65); backdrop-filter: blur(3px); }
.session-finish-form { display: grid; gap: 1.25rem; padding: clamp(1.25rem, 4vw, 2rem); }
.session-modal-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.session-modal-heading h2, .session-modal-heading p { margin-top: 0; }
.session-modal-close { border: 0; background: transparent; font-size: 2rem; line-height: 1; }
.finish-slides { min-height: 330px; overflow: hidden; }
.finish-player-slide { display: grid; justify-items: center; gap: 1.15rem; padding: .6rem 0; }
.finish-player-slide[hidden], .finish-recap[hidden] { display: none !important; }
.finish-player-card { position: relative; display: grid; justify-items: center; gap: .7rem; min-width: 180px; padding-top: .5rem; }
.finish-player-avatar { display: grid; width: 132px; height: 132px; place-items: center; overflow: hidden; border-radius: 50%; background: #6196c0; color: white; font-family: inherit; font-size: 3.25rem; object-fit: cover; }
.finish-player-position { position: absolute; z-index: 2; top: 0; left: calc(50% - 83px); display: grid; width: 46px; height: 46px; place-items: center; border-radius: 50%; background: #a14456; color: white; font-size: 1.05rem; }
.finish-player-card strong { color: #241d1c; font-size: 1.15rem; }
.finish-score-field { display: grid; width: min(260px, 100%); gap: .4rem; color: #6e5f5a; font-size: .82rem; font-weight: 400; }
.finish-score-field input { width: 100%; padding: .8rem 1rem; border: 2px solid #b13324; border-radius: 12px; background: white; color: #b13324; font: inherit; font-size: clamp(1.8rem,5vw,2.7rem); font-weight: 800; line-height: 1; text-align: center; -moz-appearance: textfield; }
.finish-score-field input::-webkit-inner-spin-button, .finish-score-field input::-webkit-outer-spin-button { margin: 0; -webkit-appearance: none; }
.finish-score-field input:focus { outline: 3px solid rgba(177,51,36,.16); outline-offset: 2px; }
.finish-outcome-field { display: grid; width: min(300px, 100%); gap: .45rem; padding: 0; border: 0; }
.finish-outcome-field legend { margin: 0 auto .25rem; color: #6e5f5a; font-size: .82rem; }
.finish-recap { display: grid; gap: .7rem; }
.finish-recap h3, .finish-recap p { margin: 0; }
.finish-scoring-notice { display: flex; align-items: center; gap: .65rem; max-width: 100%; padding: .65rem .85rem; overflow-x: auto; border: 1px solid rgba(97,150,192,.34); border-radius: 11px; background: rgba(97,150,192,.13); color: #315f83; white-space: nowrap; scrollbar-width: thin; }
.finish-scoring-notice strong { flex: 0 0 auto; }
.finish-scoring-notice span { font-size: clamp(.68rem, 1.25vw, .82rem); }
.finish-recap ol { display: grid; gap: .5rem; margin: .5rem 0 0; padding: 0; list-style: none; }
.finish-recap li { display: grid; grid-template-columns: 42px 36px minmax(0,1fr) auto auto; align-items: center; gap: .75rem; padding: .75rem .85rem; border: 1px solid rgba(36,29,28,.14); border-radius: 11px; background: white; }
.finish-recap li.is-winner { border-color: #d4a514; background: #fff4be; }
.finish-recap-rank { color: #241d1c; font-weight: 800; }
.finish-recap-avatar { display: grid; width: 34px; height: 34px; place-items: center; overflow: hidden; border-radius: 50%; background: #6196c0; color: white; font-family: inherit; object-fit: cover; }
.finish-recap-score { color: #6e5f5a; text-align: right; }
.finish-tie-button { padding: .45rem .7rem; border: 1px solid #6196c0; border-radius: 999px; background: white; color: #467ba3; cursor: pointer; font: inherit; font-size: .76rem; font-weight: 600; white-space: nowrap; }
.finish-tie-button[aria-pressed="true"] { background: #6196c0; color: white; box-shadow: 0 0 0 3px rgba(97,150,192,.15); }
.finish-tie-button[data-place="1"] { border-color: #d4a514; color: #8a6500; }
.finish-tie-button[data-place="1"][aria-pressed="true"] { background: #e3b600; color: #241d1c; box-shadow: 0 0 0 3px rgba(227,182,0,.18); }
.finish-tie-button[data-place="2"] { border-color: #9aa3ad; color: #66717b; }
.finish-tie-button[data-place="2"][aria-pressed="true"] { background: #cbd0d6; color: #241d1c; box-shadow: 0 0 0 3px rgba(154,163,173,.18); }
.finish-tie-button[data-place="3"] { border-color: #b87846; color: #8a4f28; }
.finish-tie-button[data-place="3"][aria-pressed="true"] { background: #d9a276; color: #241d1c; box-shadow: 0 0 0 3px rgba(184,120,70,.18); }
.finish-manual-winner-button { padding: .45rem .75rem; border: 1px solid #d4a514; border-radius: 999px; background: white; color: #8a6500; cursor: pointer; font: inherit; font-size: .76rem; font-weight: 600; }
.finish-manual-winner-button[aria-pressed="true"] { background: #e3b600; color: #241d1c; box-shadow: 0 0 0 3px rgba(227,182,0,.18); }
.finish-manual-order-controls { display: inline-flex; gap: .3rem; }
.finish-manual-order-controls button { display: grid; width: 30px; height: 30px; place-items: center; padding: 0; border: 1px solid rgba(97,150,192,.45); border-radius: 8px; background: white; color: #315f83; cursor: pointer; font: inherit; font-weight: 800; }
.finish-manual-order-controls button:disabled { cursor: default; opacity: .28; }
.slide-from-right { animation: finish-slide-from-right .24s ease-out; }
.slide-from-left { animation: finish-slide-from-left .24s ease-out; }
@keyframes finish-slide-from-right { from { opacity: 0; transform: translateX(34px); } to { opacity: 1; transform: translateX(0); } }
@keyframes finish-slide-from-left { from { opacity: 0; transform: translateX(-34px); } to { opacity: 1; transform: translateX(0); } }
.session-modal-actions { display: flex; justify-content: flex-end; gap: .7rem; flex-wrap: wrap; }
@media (max-width: 760px) { .assistant-panel { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .session-date-fields, .winner-choice-grid, .assistant-panel { grid-template-columns: 1fr; } .assistant-recommend-button { width: auto; } .session-control-actions > *, .session-control-actions form, .session-control-actions button { width: 100%; } .session-participant-list li { grid-template-columns: auto 1fr; } .finish-recap li { grid-template-columns: 38px 34px minmax(0,1fr) auto; } .finish-recap-score { grid-column: 3 / -1; justify-self: start; } .finish-tie-button, .finish-manual-winner-button, .finish-manual-order-controls { grid-column: 3 / -1; justify-self: start; } }

/* Détail d'une partie */
.session-heading p { margin: .6rem 0 0; color: #6e5f5a; font-size: 1.05rem; }
.session-control-panel { position: relative; justify-items: center; min-height: 210px; text-align: center; }
.session-control-panel > .eyebrow { justify-self: start; }
.session-control-panel.is-running { border: 2px solid #318354; animation: session-green-glow 2.8s ease-in-out infinite; }
.session-control-panel.is-paused { border: 2px solid #f2960c; }
.session-control-panel.is-completed { border: 2px solid #b13324; box-shadow: 0 18px 50px rgba(177,51,36,.13); }
.session-completed-title { margin: 0; color: #b13324; font-family: Georgia, serif; font-size: clamp(1.45rem, 3vw, 2.1rem); }
.session-live-timer { align-self: center; justify-self: center; line-height: 1; }
.session-live-timer .timer-colon { display: inline-block; }
.session-live-timer.is-ticking .timer-colon { animation: timer-colon-blink 1s steps(1, end) infinite; }
.session-live-timer.is-temporarily-paused .timer-colon { animation-play-state: paused; opacity: 1; }
@keyframes timer-colon-blink { 0%,49% { opacity: 1; } 50%,100% { opacity: .12; } }
.session-control-panel.is-running .session-live-timer { color: #318354; }
.session-control-panel.is-paused .session-live-timer { color: #a66100; }
.session-control-actions { justify-content: center; }
.session-control-waiting { margin: auto; color: #6e5f5a; font-size: 1rem; }
@keyframes session-green-glow { 0%,100% { box-shadow: 0 0 0 0 rgba(49,131,84,.05), 0 18px 50px rgba(49,131,84,.10); } 50% { box-shadow: 0 0 0 8px rgba(49,131,84,.08), 0 20px 58px rgba(49,131,84,.22); } }
.session-winner-panel { padding: clamp(1.5rem, 4vw, 2.5rem); border: 4px solid #d4a514; border-radius: 20px; background: linear-gradient(145deg, #fffdfb, #fff4be); text-align: center; }
.session-winner-panel h2 { margin: 0 0 1rem; color: #9a7100; font-family: Georgia, serif; }
.session-winner-people { display: flex; justify-content: center; gap: 2rem; flex-wrap: wrap; }
.session-winner-people > div { display: grid; justify-items: center; gap: .65rem; }
.session-winner-avatar-large { display: grid; place-items: center; width: 100px; height: 100px; border: 3px solid #d4a514; border-radius: 50%; object-fit: cover; background: #6196c0; color: white; font-family: Georgia, serif; font-size: 2.5rem; }
.session-victory-preview { width: min(100%, 560px); margin: 0 auto 1rem; padding: 0; overflow: hidden; border: 4px solid #e3b600; border-radius: 18px; background: #fff7c9; cursor: zoom-in; }
.session-victory-preview img { display: block; width: 100%; max-height: 430px; object-fit: cover; }
.session-winner-people.has-victory-photo { gap: .75rem; }
.session-winner-name { display: inline-flex; align-items: center; gap: .5rem; }
.session-winner-avatar-small { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; object-fit: cover; background: #6196c0; color: white; font-family: Georgia, serif; }
.session-winner-duration { margin: .65rem 0 0; font-weight: 700; text-align: center; }
.session-victory-cards { display: flex; justify-content: center; gap: 2rem; padding: 1rem 0 2rem; flex-wrap: wrap; }
.session-victory-card { width: min(364px, 86vw); }
.session-victory-card.tilt-left { transform: rotate(-2deg); }
.session-victory-card.tilt-right { transform: rotate(2deg); }
.session-victory-card-surface { display: grid; gap: .65rem; padding: .8rem .8rem 1.1rem; border: 2px solid #d4a514; border-radius: 18px; background: #fffdfb; box-shadow: 12px 12px 0 #f2960c, 0 12px 28px rgba(36,29,28,.12); text-align: center; }
.session-victory-card-media-wrap { position: relative; }
.session-victory-card-media { display: block; width: 100%; aspect-ratio: 1; padding: 0; overflow: hidden; border: 0; border-radius: 13px; background: #f4eae1; cursor: zoom-in; }
.session-victory-card-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.session-victory-edit { position: absolute; z-index: 2; right: .65rem; bottom: .65rem; display: grid; width: 38px; height: 38px; place-items: center; padding: 0; border: 1px solid rgba(177,51,36,.25); border-radius: 50%; background: white; color: #b13324; box-shadow: 0 4px 14px rgba(36,29,28,.18); cursor: pointer; }
.session-victory-edit:hover { border-color: #b13324; background: #fff3f0; }
.session-victory-edit svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.session-victory-card-avatar { display: grid; width: 100%; aspect-ratio: 1; place-items: center; border-radius: 13px; background: #f4eae1; }
.session-victory-avatar { display: grid; width: 78%; height: 78%; place-items: center; overflow: hidden; border: 4px solid white; border-radius: 50%; background: #6196c0; color: white; font-family: inherit; font-size: 4rem; object-fit: cover; box-shadow: 0 8px 24px rgba(36,29,28,.14); }
.session-victory-card-surface > strong { color: #9a7100; font-family: Georgia,serif; font-size: 1.15rem; }
.session-victory-card-surface > small { color: #b13324; font-size: .72rem; font-weight: 900; letter-spacing: .16em; }
.session-victory-crop-modal { width: min(820px, calc(100% - 24px)); }
.session-victory-crop-workspace { display: grid; grid-template-columns: minmax(0,1fr) 180px; gap: 1.25rem; align-items: start; }
.session-victory-crop-workspace > div { display: grid; gap: .7rem; }
.session-victory-crop-workspace canvas { display: block; width: min(100%, 540px); aspect-ratio: 1; margin: auto; border: 2px solid #d4a514; border-radius: 16px; background: #fffdfb; box-shadow: 10px 10px 0 #f2960c; cursor: grab; touch-action: none; }
.session-victory-crop-workspace canvas:active { cursor: grabbing; }
.session-victory-crop-workspace label { display: grid; grid-template-columns: auto minmax(0,1fr); gap: .75rem; align-items: center; color: #6e5f5a; font-size: .82rem; }
.session-victory-crop-workspace input[type="range"] { width: 100%; accent-color: #b13324; }
.session-victory-crop-workspace aside { display: grid; gap: .45rem; color: #6e5f5a; font-size: .76rem; }
.session-victory-crop-workspace aside img { width: 100%; aspect-ratio: 1; border: 2px solid #d4a514; border-radius: 13px; object-fit: cover; }
.session-completed-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; align-items: start; }
.session-information-panel h2, .session-information-panel h3 { margin-top: 0; }
.session-information-panel dl { display: grid; gap: .65rem; margin: 0 0 1.25rem; }
.session-information-panel dl > div { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: .55rem; border-bottom: 1px solid rgba(36,29,28,.1); }
.session-information-panel dt { color: #6e5f5a; }
.session-information-panel dd { margin: 0; font-weight: 700; text-align: right; }
.session-information-expansion-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .55rem; }
.session-information-expansion-grid article { display: grid; grid-template-columns: 42px minmax(0,1fr); gap: .5rem; align-items: center; min-width: 0; padding: .4rem; border: 1px solid rgba(97,150,192,.28); border-radius: 11px; background: white; }
.session-information-expansion-grid img, .session-information-expansion-grid article > span { display: grid; grid-row: 1 / span 2; width: 42px; height: 42px; place-items: center; border-radius: 8px; object-fit: cover; background: #6196c0; color: white; }
.session-information-expansion-grid strong { overflow: hidden; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.session-information-expansion-grid small { color: #6e5f5a; font-size: .68rem; }
@media (max-width: 850px) { .session-completed-summary { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .session-victory-crop-workspace { grid-template-columns: 1fr; } .session-victory-crop-workspace aside { display: none; } }
.session-results-panel > h2 { margin-top: 0; font-family: Georgia, serif; }
.session-results-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.session-results-heading h2 { margin: 0; font-family: Georgia, serif; }
.session-edit-results-button { flex: 0 0 auto; padding: .55rem .85rem; font-size: .76rem; }
.session-player-order-hint { margin: -.5rem 0 1.25rem; color: #6e5f5a; }
.session-current-player-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .9rem; }
.session-current-player-grid article { display: grid; justify-items: center; gap: .65rem; min-height: 155px; align-content: center; padding: 1rem; border: 1px solid rgba(97,150,192,.3); border-radius: 16px; background: #f4eae1; text-align: center; }
.session-current-player-avatar { display: grid; place-items: center; width: 76px; height: 76px; overflow: hidden; border-radius: 50%; object-fit: cover; background: #6196c0; color: white; font-family: Georgia, serif; font-size: 1.7rem; }
.session-participant-list li { grid-template-columns: auto auto 1fr auto; min-height: 58px; }
.session-player-avatar { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; object-fit: cover; background: #6196c0; color: white; font-family: Georgia, serif; font-weight: 800; }
.session-participant-list li > small { justify-self: end; color: #241d1c; font-weight: 700; }
.session-participant-list.is-ranked li.is-winner { background: #f6dc74; }
.session-participant-list.is-ranked li.is-second { background: #dfe3e8; }
.session-participant-list.is-ranked li.is-third { background: #d9a276; }
.session-participant-list.is-ranked li.is-winner > span { background: #9a7100; }
.session-photo-settings { margin-top: 24px; }
.photo-settings-form { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)) auto; gap: 1rem; align-items: end; }
.photo-settings-form label { display: grid; gap: .4rem; font-size: .82rem; font-weight: 400; }
.photo-settings-form input { width: 100%; padding: .7rem; border: 1px solid rgba(36,29,28,.16); border-radius: 9px; background: white; }
.session-photo-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.session-photo-card { position: relative; aspect-ratio: 4/3; margin: 0; overflow: hidden; border-radius: 16px; background: #f4eae1; }
.session-photo-card img { width: 100%; height: 100%; object-fit: cover; }
.session-photo-card.is-victory { border: 4px solid #e3b600; background: #fff7c9; }
.session-photo-view { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.session-photo-view img { width: 100%; height: 100%; object-fit: cover; }
.session-photo-card figcaption { position: absolute; inset: auto 0 0; padding: .65rem; background: linear-gradient(transparent, rgba(36,29,28,.82)); color: white; font-weight: 800; text-align: center; }
.session-photo-add { display: grid; place-items: center; align-content: center; gap: .35rem; aspect-ratio: 4/3; border: 2px dashed #b13324; border-radius: 16px; background: rgba(177,51,36,.03); color: #b13324; }
.session-photo-add.is-victory { border-color: #d4a514; background: rgba(212,165,20,.06); color: #9a7100; }
.session-photo-add span { font-size: 2rem; line-height: 1; }
.session-photo-dropzone { min-height: 230px; cursor: pointer; }
.session-photo-dropzone.is-victory { border-color: #e3b600; background: #fff9dc; color: #9a7100; }
.session-photo-dropzone.is-victory:hover, .session-photo-dropzone.is-victory.is-dragging { border-color: #b13324; background: rgba(177,51,36,.08); color: #b13324; }
.session-photo-dropzone span { font-size: 2.4rem; line-height: 1; }
.session-photo-dropzone small { color: #6e5f5a; }
.session-preupload-grid { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .75rem; }
.session-preupload-item { position: relative; display: block; width: 62px; height: 48px; padding: 0; overflow: hidden; border: 1px solid rgba(97,150,192,.5); border-radius: 8px; background: white; cursor: pointer; }
.session-preupload-item img { display: block; width: 100%; height: 100%; object-fit: cover; }
.session-preupload-item::after { content: ''; position: absolute; inset: 0; background: rgba(177,51,36,.48); opacity: 0; transition: opacity .15s ease; }
.session-preupload-item span { position: absolute; z-index: 2; inset: 50% auto auto 50%; display: grid; width: 25px; height: 25px; place-items: center; border-radius: 50%; background: white; color: #b13324; font-size: 1.25rem; font-weight: 900; line-height: 1; opacity: 0; transform: translate(-50%,-50%) scale(.8); transition: opacity .15s ease, transform .15s ease; }
.session-preupload-item:hover::after, .session-preupload-item:focus-visible::after { opacity: 1; }
.session-preupload-item:hover span, .session-preupload-item:focus-visible span { opacity: 1; transform: translate(-50%,-50%) scale(1); }
.session-photo-actions { position: absolute; z-index: 3; top: .55rem; right: .55rem; display: flex; gap: .4rem; opacity: 0; transform: translateY(-3px); transition: opacity .15s ease, transform .15s ease; }
.session-photo-card:hover .session-photo-actions, .session-photo-actions:focus-within { opacity: 1; transform: none; }
.session-photo-edit { display: grid; width: 34px; height: 34px; place-items: center; padding: 0; border: 0; border-radius: 50%; background: white; color: #b13324; box-shadow: 0 4px 14px rgba(36,29,28,.22); cursor: pointer; }
.session-photo-edit svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.session-photo-actions .session-photo-delete { position: static; opacity: 1; transform: none; }
.session-photo-delete { position: absolute; z-index: 3; top: .55rem; right: .55rem; margin: 0; opacity: 0; transform: translateY(-3px); transition: opacity .15s ease, transform .15s ease; }
.session-photo-card:hover .session-photo-delete, .gallery-item:hover .session-photo-delete, .session-photo-delete:focus-within { opacity: 1; transform: none; }
.session-photo-delete button { display: grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%; background: white; color: #b13324; font-size: 0; font-weight: 900; box-shadow: 0 4px 14px rgba(36,29,28,.22); }
.session-photo-delete button::before { content: "🗑"; font-size: 1rem; filter: grayscale(1) sepia(1) saturate(7) hue-rotate(325deg); }
.session-gallery-crop-modal .session-victory-crop-workspace { grid-template-columns: 1fr; }
.session-gallery-crop-modal .session-victory-crop-workspace canvas { aspect-ratio: 4 / 3; }
.session-delete-management { display: grid; justify-items: start; gap: 1rem; }
.session-delete-management .session-delete-zone { width: 100%; margin: 0; }
.session-delete-actions { display: flex; align-items: center; justify-content: flex-end; gap: .7rem; flex: 0 0 auto; }
.account-dashboard { position: relative; display: grid; gap: 2rem; }
.account-profile-hero { display: grid; grid-template-columns: 132px minmax(0,1fr); gap: 1.5rem; align-items: center; min-height: 186px; padding: 1.5rem 330px 1.5rem 1.5rem; border: 1px solid rgba(97,150,192,.32); border-radius: 22px; background: white; }
.account-profile-hero h2 { margin: 0; color: #b13324; font-family: Georgia,serif; font-size: clamp(2rem,4vw,3.6rem); line-height: 1; }
.account-profile-hero p:last-child { margin: .55rem 0 0; color: #6e5f5a; }
.account-avatar-editor { position: relative; display: grid; justify-items: center; width: 132px; padding: 0 0 24px; border: 0; background: transparent; color: #b13324; }
.account-avatar-editor.is-static { padding-bottom: 0; cursor: default; }
.account-avatar-image { display: grid; place-items: center; width: 112px; height: 112px; overflow: hidden; border: 4px solid white; border-radius: 50%; background: #6196c0; color: white; font-family: Georgia,serif; font-size: 3rem; box-shadow: 0 9px 24px rgba(36,29,28,.15); }
.account-avatar-image img { width: 100%; height: 100%; object-fit: cover; }
.account-avatar-edit-label { position: absolute; bottom: 0; display: inline-flex; align-items: center; gap: .3rem; padding: .25rem .5rem; border-radius: 999px; background: white; color: #b13324; font-size: .7rem; font-weight: 700; opacity: 0; transform: translateY(-4px); box-shadow: 0 4px 12px rgba(36,29,28,.13); transition: opacity .16s ease,transform .16s ease; }
.account-avatar-editor:hover .account-avatar-edit-label, .account-avatar-editor:focus-visible .account-avatar-edit-label { opacity: 1; transform: none; }
.account-avatar-edit-label svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.account-password-toggle { justify-content: end; }
.account-password-panel { width: min(100%,720px); margin-left: auto; }
.account-password-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.account-insight-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.account-section-title { grid-column: 1 / -1; margin-bottom: -.35rem; }
.account-insight-grid > article { min-width: 0; padding: 1.2rem; border: 1px solid rgba(97,150,192,.32); border-radius: 18px; background: white; box-shadow: 0 6px 18px rgba(36,29,28,.045); }
.account-insight-heading { display: flex; gap: .75rem; align-items: center; margin-bottom: 1rem; }
.account-insight-heading > span { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 42px; border-radius: 12px; background: #6196c0; color: white; font-size: 1.3rem; }
.account-insight-heading .eyebrow { margin-bottom: .15rem; }
.account-insight-heading h2 { margin: 0; color: #241d1c; font-family: Georgia,serif; font-size: 1.35rem; }
.account-game-ranking { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.account-game-ranking li { display: grid; grid-template-columns: 24px minmax(0,1fr); gap: .5rem; align-items: center; }
.account-game-ranking li > span { color: #b13324; font-family: Georgia,serif; font-size: 1.1rem; font-weight: 700; text-align: center; }
.account-game-ranking a { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; gap: .55rem; align-items: center; min-width: 0; padding: .35rem; border-radius: 11px; }
.account-game-ranking a:hover { background: rgba(97,150,192,.1); }
.account-game-ranking img, .account-game-ranking i, .account-nemesis-game > img, .account-nemesis-game > i { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 9px; object-fit: cover; background: #6196c0; color: white; font-family: Georgia,serif; font-style: normal; }
.account-game-ranking strong { overflow: hidden; font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }
.account-game-ranking small { color: #6e5f5a; font-size: .68rem; font-weight: 400; white-space: nowrap; }
.account-insight-empty { margin: 0; color: #6e5f5a; font-size: .82rem; }
.account-nemesis { border-color: rgba(177,51,36,.35) !important; }
.account-nemesis .account-insight-heading > span { background: #b13324; }
.account-nemesis-game { display: grid; grid-template-columns: 72px minmax(0,1fr); gap: .75rem; align-items: center; padding: .5rem; border-radius: 13px; background: rgba(177,51,36,.06); }
.account-nemesis-game > img, .account-nemesis-game > i { width: 72px; height: 72px; }
.account-nemesis-game span { display: grid; min-width: 0; }
.account-nemesis-game strong { overflow: hidden; color: #b13324; text-overflow: ellipsis; white-space: nowrap; }
.account-nemesis-game small { color: #6e5f5a; font-size: .72rem; font-weight: 400; }
.account-victory-section { margin-top: .5rem; }
.account-victory-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 1rem; }
.account-victory-grid article { overflow: hidden; border: 3px solid #d4a514; border-radius: 16px; background: white; }
.account-victory-grid article > button { display: block; width: 100%; height: 150px; padding: 0; border: 0; background: #eee; cursor: zoom-in; }
.account-victory-grid article img { width: 100%; height: 100%; object-fit: cover; }
.account-victory-grid article > div { display: grid; gap: .1rem; padding: .65rem; }
.account-victory-grid a { overflow: hidden; color: #9a7100; font-size: .8rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.account-victory-grid small { color: #6e5f5a; font-size: .7rem; font-weight: 400; }
.account-victory-more { display: flex; justify-content: center; margin-top: 1rem; }
.account-champion-card { position: absolute; z-index: 2; top: .5rem; right: 4.25rem; width: 260px; margin: 0; transform: rotate(-2deg); }
.account-champion-card + .account-insight-grid { margin-top: 4rem; }
.account-champion-card + .account-upcoming-sessions { margin-top: 4rem; }
.account-champion-card a { display: grid; gap: .75rem; padding: .8rem .8rem 1.1rem; border: 2px solid #d4a514; border-radius: 18px; background: #fffdfb; box-shadow: 12px 12px 0 #f2960c, 0 12px 28px rgba(36,29,28,.12); text-align: center; transition: transform .18s ease; }
.account-champion-card a:hover { transform: translateY(-3px) rotate(1deg); }
.account-champion-card img, .account-champion-card a > span { display: grid; place-items: center; width: 100%; aspect-ratio: 1; border-radius: 13px; object-fit: cover; background: #6196c0; color: white; font-family: Georgia,serif; font-size: 4rem; }
.account-champion-card strong { color: #9a7100; font-family: Georgia,serif; font-size: 1rem; line-height: 1.25; }
.account-upcoming-sessions { display: grid; width: 100%; gap: .5rem; }
.account-upcoming-grid { display: grid; grid-template-columns: 1fr; gap: .45rem; width: 100%; }
.account-upcoming-card { display: flex; align-items: center; gap: .65rem; width: 100%; min-width: 0; padding: .48rem .65rem; border: 1px solid #6196c0; border-radius: 12px; background: white; box-shadow: 0 3px 10px rgba(36,29,28,.035); transition: border-color .16s ease,box-shadow .16s ease,transform .16s ease; }
.account-upcoming-card.is-waiting { border-color: #f2960c; }
.account-upcoming-card.is-running { border-color: #318354; box-shadow: 0 0 0 2px rgba(49,131,84,.08), 0 5px 16px rgba(36,29,28,.045); }
.account-upcoming-card:hover { border-color: #b13324; box-shadow: 0 5px 15px rgba(177,51,36,.1); transform: translateY(-1px); }
.account-upcoming-card > img, .account-upcoming-card > span { display: grid; place-items: center; flex: 0 0 34px; width: 34px; height: 34px; border-radius: 7px; object-fit: cover; background: #6196c0; color: white; font-family: Georgia,serif; font-size: .9rem; }
.account-upcoming-card strong { overflow: hidden; flex: 0 1 auto; color: #b13324; font-size: .86rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.account-upcoming-card small { flex: 0 0 auto; color: #81736e; font-size: .72rem; font-weight: 400; }
.account-upcoming-card em { flex: 0 0 auto; margin-left: auto; padding: .22rem .58rem; border-radius: 999px; font-size: .66rem; font-style: normal; font-weight: 800; white-space: nowrap; }
.account-upcoming-card.is-waiting em { background: #fff0d8; color: #a45d00; }
.account-upcoming-card.is-planned em { background: #e5eff6; color: #356b95; }
.account-upcoming-card.is-running em { background: #daf0e3; color: #185438; }
.account-settings { display: grid; gap: 1rem; padding-top: .5rem; }
.account-settings[open] { display: grid; }
.account-settings > summary { display: flex; justify-content: flex-start; align-items: center; gap: .45rem; width: max-content; margin-bottom: 0; cursor: pointer; list-style: none; }
.account-settings > summary::-webkit-details-marker { display: none; }
.account-settings > summary .eyebrow { margin: 0; }
.account-settings-chevron { color: #a14456; font-size: 1.15rem; font-weight: 900; line-height: 1; transition: transform .16s ease; }
.account-settings[open] .account-settings-chevron { transform: rotate(90deg); }
.account-settings[open] > summary { margin-bottom: 1rem; }
.account-settings-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.account-setting-card { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; min-width: 0; padding: 1.25rem; border: 1px solid rgba(97,150,192,.32); border-radius: 18px; background: white; box-shadow: 0 6px 18px rgba(36,29,28,.045); }
.account-setting-card h3 { margin: 0 0 .35rem; color: #b13324; font-family: Georgia,serif; font-size: 1.25rem; }
.account-setting-card p { margin: 0; color: #6e5f5a; font-size: .82rem; }
.account-setting-card small { display: block; margin-top: .35rem; color: #a14456; font-size: .72rem; }
.account-private-summary { align-items: start; }
.account-private-summary p + p { margin-top: .35rem; }
.account-setting-card > .button { flex: 0 0 auto; }
.account-preferences-form { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr; align-items: stretch; }
.account-preferences-heading { margin-bottom: .2rem; }
.account-preference-row { display: grid; grid-template-columns: minmax(280px,.9fr) minmax(220px,1.1fr); gap: 1rem; align-items: center; width: 100%; padding: .7rem 0; border-top: 1px solid rgba(97,150,192,.2); }
.account-preference-row.is-gender { grid-template-columns: minmax(120px,.4fr) minmax(360px,1fr) minmax(280px,1.15fr); }
.account-preference-label { color: #241d1c !important; font-size: .8rem !important; font-weight: 700; }
.account-preference-help { color: #6e5f5a; font-size: .76rem !important; line-height: 1.45; }
.preferred-player-count-choice button { min-width: 46px; }
.account-preferences-form .compact-choice-grid { gap: .45rem; }
.account-preferences-form > .button { justify-self: center; margin-top: .35rem; }
.account-settings-modal { width: min(590px,94vw); max-height: 92vh; overflow: auto; padding: 1.25rem; border: 0; border-radius: 20px; background: #f4eae1; box-shadow: 0 24px 70px rgba(0,0,0,.32); }
.account-settings-modal::backdrop { background: rgba(18,22,26,.72); }
.account-settings-modal .form-card { margin: 0; }
.account-settings-modal .form-card > p { margin: 0; color: #6e5f5a; font-size: .82rem; }
.account-settings-modal input[readonly] { background: #eee7e1; color: #6e5f5a; }
.account-avatar-modal { width: min(760px,94vw); max-height: 92vh; overflow: auto; padding: 1.25rem; border: 0; border-radius: 20px; background: #f4eae1; box-shadow: 0 24px 70px rgba(0,0,0,.32); }
.account-avatar-modal::backdrop { background: rgba(18,22,26,.72); }
.account-avatar-form { margin: 0; }
.account-avatar-cropper { display: grid; grid-template-columns: minmax(220px,330px) 1fr; gap: 1.25rem; align-items: center; }
.account-avatar-cropper canvas { display: block; width: min(100%,330px); height: auto; border: 5px solid white; border-radius: 50%; background: #dfe5e8; cursor: grab; touch-action: none; box-shadow: 0 10px 28px rgba(28,39,48,.16); }
.account-avatar-cropper canvas:active { cursor: grabbing; }
.account-avatar-cropper label { display: grid; gap: .45rem; font-weight: 400; }
.account-avatar-cropper input[type="range"] { width: 100%; accent-color: #b13324; }
.account-avatar-cropper p { color: #6e5f5a; font-size: .8rem; }
@media (max-width: 900px) { .account-profile-hero { padding-right: 290px; } .account-champion-card { right: 2rem; width: 235px; } .account-champion-card + .account-insight-grid, .account-champion-card + .account-upcoming-sessions { margin-top: 3rem; } .account-upcoming-grid { grid-template-columns: 1fr; } .account-insight-grid { grid-template-columns: 1fr; } .account-victory-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } .account-preference-row, .account-preference-row.is-gender { grid-template-columns: minmax(200px,.8fr) minmax(0,1.2fr); } .account-preference-row.is-gender .account-preference-help { grid-column: 1 / -1; } }
@media (max-width: 650px) { .account-profile-hero { grid-template-columns: 1fr; justify-items: center; padding-right: 1.5rem; text-align: center; } .account-champion-card { position: relative; top: auto; right: auto; width: min(260px,85vw); margin: -.75rem auto .5rem; } .account-champion-card + .account-insight-grid, .account-champion-card + .account-upcoming-sessions { margin-top: 0; } .account-password-fields, .account-avatar-cropper, .account-settings-grid, .account-preferences-form, .account-preference-row, .account-preference-row.is-gender { grid-template-columns: 1fr; } .account-preferences-form { grid-column: auto; } .account-victory-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .account-setting-card { align-items: stretch; flex-direction: column; } .account-setting-card > .button { align-self: start; } .account-preferences-form > .button { align-self: auto; justify-self: center; } }

@media (max-width: 900px) {
  .game-stat-overview { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .rules-admin-grid { grid-template-columns: 1fr; }
}

@media (max-width: 650px) {
  .document-list, .game-stat-overview, .game-stat-details dl { grid-template-columns: 1fr; }
  .game-stat-details dl > div, .game-stat-details dl > div:nth-child(3n), .game-stat-details dl > div:nth-last-child(-n+3) { border-right: 0; border-bottom: 1px solid rgba(36,29,28,.11); }
  .game-stat-details dl > div:last-child { border-bottom: 0; }
  .statistics-caption { text-align: left; }
  .rules-reading-heading, .rules-copy { padding-inline: 1.1rem; }
}
@media (max-width: 650px) { .account-upcoming-card { flex-wrap: wrap; } .account-upcoming-card strong { flex: 1 1 calc(100% - 50px); } .account-upcoming-card small { order: 3; margin-left: 42px; } .account-upcoming-card em { order: 4; } }
@media (max-width: 420px) { .account-victory-grid { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .photo-settings-form { grid-template-columns: repeat(2, 1fr); } .photo-settings-form .button { grid-column: 1 / -1; } }
@media (max-width: 700px) { .session-photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .session-photo-grid, .photo-settings-form { grid-template-columns: 1fr; } .session-participant-list li { grid-template-columns: auto auto 1fr; } .session-participant-list li > small { grid-column: 3; justify-self: start; } }

.notification-menu-link { position: relative; display: grid !important; place-items: center; width: 34px; height: 34px; padding: 0 !important; border-radius: 50%; background: #6196c0 !important; color: white !important; }
.notification-menu-link svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.notification-menu-link.has-unread { color: #b13324 !important; box-shadow: 0 0 0 0 rgba(177,51,36,.6); animation: notification-pulse 1.8s ease-out infinite; }
.notification-menu-link > span { position: absolute; top: -6px; right: -7px; display: grid; place-items: center; min-width: 19px; height: 19px; padding: 0 4px; border: 2px solid #f4eae1; border-radius: 999px; background: #b13324; color: white; font-size: .62rem; font-weight: 800; line-height: 1; }
@keyframes notification-pulse { 0% { box-shadow: 0 0 0 0 rgba(177,51,36,.6); } 65%,100% { box-shadow: 0 0 0 11px rgba(177,51,36,0); } }
.notification-toast { position: fixed; z-index: 45; top: 92px; right: 24px; display: flex; align-items: center; width: min(390px,calc(100vw - 32px)); border: 1px solid #d4a514; border-radius: 15px; background: white; box-shadow: 0 16px 42px rgba(36,29,28,.2); animation: notification-toast-in .28s ease-out both; }
.notification-toast-main { display: flex; align-items: center; gap: .75rem; min-width: 0; flex: 1; padding: .9rem 1rem; }
.notification-toast-icon { display: grid; place-items: center; width: 38px; height: 38px; flex: 0 0 38px; border-radius: 50%; background: #f2960c; color: white; font-size: 1.15rem; }
.notification-toast-main > span:last-child { display: grid; }
.notification-toast strong { color: #b13324; font-size: .88rem; }
.notification-toast small { color: #6e5f5a; font-size: .7rem; }
.notification-toast-close { display: grid; place-items: center; width: 31px; height: 31px; flex: 0 0 31px; margin-right: .65rem; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #6e5f5a; font-size: 1.25rem; line-height: 1; }
.notification-toast-close:hover { background: rgba(177,51,36,.09); color: #b13324; }
@keyframes notification-toast-in { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: none; } }
.notification-page { display: grid; gap: 1.5rem; }
.notification-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; max-width: none; margin-bottom: .5rem; }
.notification-heading h2 { margin: 0; color: #b13324; font-family: Georgia,serif; font-size: clamp(2.4rem,5vw,4.8rem); line-height: 1; }
.notification-heading p:last-child { margin: .6rem 0 0; color: #6e5f5a; }
.notification-list { display: grid; gap: .85rem; }
.notification-card { position: relative; display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 1rem; align-items: center; padding: 1rem 1.15rem; border: 1px solid rgba(97,150,192,.34); border-radius: 17px; background: white; box-shadow: 0 5px 16px rgba(36,29,28,.04); }
.notification-card.is-unread { border-color: #f2960c; box-shadow: 0 0 0 2px rgba(242,150,12,.12), 0 8px 22px rgba(36,29,28,.08); }
.notification-card:target { border-color: #b13324; background: #fff8ec; animation: notification-highlight 1.1s ease-out 2; scroll-margin-top: 130px; }
@keyframes notification-highlight { 50% { box-shadow: 0 0 0 7px rgba(242,150,12,.24), 0 10px 28px rgba(36,29,28,.1); } }
.notification-card.is-read { opacity: .72; }
.notification-card-icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 13px; background: #6196c0; color: white; }
.notification-card.is-unread .notification-card-icon { background: #f2960c; }
.notification-card-icon svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.notification-card-content { min-width: 0; }
.notification-card-title { display: flex; align-items: center; gap: .6rem; }
.notification-card-title h3 { margin: 0; color: #241d1c; font-family: Georgia,serif; font-size: 1.15rem; }
.notification-card-title span { padding: .18rem .48rem; border-radius: 999px; background: #b13324; color: white; font-size: .62rem; font-weight: 800; text-transform: uppercase; }
.notification-card-content p { margin: .2rem 0; color: #6e5f5a; font-size: .82rem; }
.notification-card-content small { color: #8b7b75; font-size: .68rem; }
.notification-card-actions { display: flex; align-items: center; justify-content: end; gap: .55rem; }
.notification-card-actions form { margin: 0; }
.notification-card-actions .button { padding: .65rem .9rem; font-size: .75rem; }
.notification-accept-button { border-color: #318354; background: #318354; color: white; }
.notification-accept-button:hover { background: #246d45; }
.notification-card.is-read { padding-right: 3.6rem; }
.notification-delete-form { position: absolute; z-index: 2; top: 50%; right: 1rem; margin: 0; transform: translateY(-50%); }
.notification-delete-form button { display: grid; place-items: center; width: 30px; height: 30px; padding: 0; border: 0; border-radius: 50%; background: #b13324; color: white; font-size: 1.2rem; font-weight: 800; line-height: 1; }
.notification-delete-form button:hover { background: #8f281c; }
.session-invitation-warning { margin: .9rem 0 0; padding: .7rem 1rem; border: 1px solid rgba(242,150,12,.55); border-radius: 11px; background: #fff4df; color: #7a4b00; font-size: .8rem; text-align: center; }
.session-control-actions .button:disabled { opacity: .45; cursor: not-allowed; }
.session-current-player-grid article.is-present { border-color: #318354; background: #edf8f1; }
.session-current-player-grid article.is-pending { border-color: #f2960c; background: #fff4df; }
.session-presence-badge { padding: .22rem .55rem; border-radius: 999px; font-size: .68rem; font-weight: 700; }
.session-current-player-grid article.is-present .session-presence-badge { background: #318354; color: white; }
.session-current-player-grid article.is-pending .session-presence-badge { background: #f2960c; color: #241d1c; }
@media (max-width: 720px) { .notification-toast { top: 18px; right: 16px; } .notification-heading { align-items: start; flex-direction: column; } .notification-card { grid-template-columns: auto minmax(0,1fr); } .notification-card-actions { grid-column: 1 / -1; justify-content: start; padding-left: 60px; } }

.site-header.menu-v2 { background: white; }
.menu-v2 .header-inner { min-height: 70px; }
.menu-v2 nav { gap: .45rem; }
.menu-v2 .menu-text-link { padding: .5rem .8rem; border-radius: 999px; color: #241d1c; transition: background-color .16s ease,color .16s ease; }
.menu-v2 .menu-text-link:hover { background: rgba(177,51,36,.08); color: #b13324; }
.menu-v2 .menu-text-link.is-active { background: #b13324; color: white; }
.menu-profile-link { display: grid !important; place-items: center; width: 38px; height: 38px; padding: 3px !important; overflow: hidden; border: 1px solid rgba(36,29,28,.18); border-radius: 50%; background: white; color: #241d1c; }
.menu-profile-link img, .menu-profile-link > span { display: grid; place-items: center; width: 100%; height: 100%; border-radius: 50%; object-fit: cover; color: white; font-family: Georgia,serif; font-size: .9rem; font-weight: 800; }
.menu-profile-link img { background: white; }
.menu-profile-link > span { background: #6196c0; }
.menu-profile-link.is-active { border-color: #b13324; background: #b13324; }
.menu-v2 .notification-menu-link { width: 38px; height: 38px; border: 1px solid rgba(36,29,28,.12); background: white !important; color: #241d1c !important; }
.menu-v2 .notification-menu-link:hover { border-color: #b13324; color: #b13324 !important; }
.menu-v2 .notification-menu-link.has-unread { color: #b13324 !important; }
.menu-v2 .notification-menu-link.is-active { border-color: #b13324; background: #b13324 !important; color: white !important; }
.menu-v2 .notification-menu-link.is-active.has-unread { color: white !important; }
.menu-v2 .notification-menu-link > span { border-color: white; }
.menu-logout-button { display: grid; place-items: center; width: 38px; height: 38px; padding: 8px !important; border: 0; border-radius: 50%; background: transparent !important; color: #8a8582 !important; }
.menu-logout-button:hover { background: rgba(36,29,28,.07) !important; color: #5f5a57 !important; }
.menu-logout-button svg { width: 21px; height: 21px; fill: currentColor; }
.menu-admin-button { display: grid !important; place-items: center; width: 38px; height: 38px; padding: 8px !important; border: 0; border-radius: 50%; background: transparent; color: #241d1c !important; }
.menu-admin-button:hover { background: rgba(177,51,36,.08); color: #b13324 !important; }
.menu-admin-button.is-active { background: #b13324; color: white !important; }
.menu-admin-button svg { width: 22px; height: 22px; fill: currentColor; }
@media (max-width: 850px) { .menu-v2 nav { gap: .35rem; } .menu-v2 .menu-text-link { padding-inline: .65rem; } }
