/* Interface de la Bêta 0.3. */
.beta-version { color:#25191b; border-color:#ff7b82; background:linear-gradient(135deg,#ffb5aa,#ff727a); font-weight:800; letter-spacing:.03em; }
.home-section + .home-section { margin-top:34px; }
.home-section-tools { padding-top:28px; border-top:1px solid rgba(255,132,137,.26); }
.home-section-heading { display:flex; align-items:end; justify-content:space-between; gap:22px; margin:0 2px 14px; }
.home-section-heading .eyebrow { margin-bottom:4px; }
.home-section-heading h2 { margin:0; color:var(--cream); font-size:clamp(1.45rem,3vw,2rem); letter-spacing:-.045em; }
.home-section-heading p:last-child { max-width:355px; margin:0; color:var(--muted); font-size:.92rem; line-height:1.45; text-align:right; }
.home-section-tools .category-card { background:linear-gradient(145deg,#1d2028,#19191f); }
body.theme-beta-construction .topbar,body.theme-beta-construction .home-ribbon,body.theme-beta-construction .statistics-panel,body.theme-beta-construction .category-card,body.theme-beta-construction .question-card { backdrop-filter:blur(5px); }
.site-theme-choice { min-height:96px; }
.admin-member-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; margin-left:auto; }.admin-member-actions .text-button { padding:6px 8px; border:1px solid var(--line); border-radius:8px; font-size:.72rem; }.admin-member-actions .text-button:hover { border-color:var(--red-soft); }
.admin-tabs { display:flex; gap:8px; margin:26px 0 20px; padding:7px; overflow-x:auto; border:1px solid var(--line); border-radius:15px; background:rgba(24,26,32,.82); }.admin-tab { flex:1 0 max-content; min-height:42px; padding:9px 15px; border:1px solid transparent; border-radius:10px; color:var(--muted); background:transparent; font:inherit; font-weight:700; cursor:pointer; }.admin-tab:hover { color:var(--cream); background:#22252d; }.admin-tab.is-active { color:#151116; background:linear-gradient(135deg,#ff767c,#ff9e86); box-shadow:0 5px 16px rgba(255,107,123,.2); }.admin-tab-badge { display:inline-grid; place-items:center; min-width:19px; height:19px; margin-left:5px; padding:0 5px; border-radius:99px; color:#fff; background:#a9364b; font-size:.69rem; }.admin-tab.is-active .admin-tab-badge { color:#fff; background:#7c283a; }.admin-pane { animation:admin-pane-in .2s ease both; }.admin-pane[hidden] { display:none; }.admin-pane-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin:0 0 15px; }.admin-pane-heading .eyebrow { margin:0 0 5px; }.admin-pane-heading h2 { margin:0; color:var(--cream); font-size:1.55rem; }.admin-pane-heading p:last-child { margin:6px 0 0; color:var(--muted); }.admin-pane > .statistics-panel { margin-top:16px; }@keyframes admin-pane-in { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }
.admin-publication-panel { display:grid; gap:16px; }.community-post-form { display:grid; gap:11px; padding:16px; border:1px solid var(--line); border-radius:14px; background:#181a20; }.community-post-form label { display:grid; gap:6px; color:var(--cream); font-size:.84rem; font-weight:700; }.community-post-form label small { color:var(--muted); font-weight:400; }.community-post-form input,.community-post-form select { width:100%; padding:10px 11px; border:1px solid var(--line); border-radius:9px; color:var(--text); background:#121419; font:inherit; }.community-editor { overflow:hidden; border:1px solid var(--line); border-radius:9px; background:#121419; }.community-editor:focus-within { border-color:var(--red-soft); }.community-editor-toolbar { display:flex; gap:5px; padding:7px; border-bottom:1px solid var(--line); background:#1d2027; }.community-editor-toolbar button { min-width:32px; height:29px; border:1px solid transparent; border-radius:6px; color:var(--cream); background:#292c34; }.community-editor-toolbar button:hover { border-color:var(--red-soft); color:#fff; }.community-editor-body { min-height:140px; padding:11px; outline:0; color:var(--text); font-weight:400; line-height:1.55; white-space:pre-wrap; }.community-editor-body:empty::before { content:attr(data-placeholder); color:var(--muted); pointer-events:none; }.community-event-fields { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.community-post-message { margin:0; padding:10px 11px; border:1px solid var(--line); border-radius:9px; font-size:.84rem; }.community-post-message.success { border-color:#4c946c; color:#b9efca; background:#183025; }.community-post-message.error { border-color:#b75d66; color:#ffc5c9; background:#352126; }.admin-community-posts { display:grid; gap:8px; }.admin-community-heading { display:flex; justify-content:space-between; gap:14px; align-items:baseline; color:var(--cream); }.admin-community-heading small { color:var(--muted); font-size:.75rem; }.admin-community-post { display:flex; justify-content:space-between; gap:14px; align-items:center; padding:12px; border:1px solid var(--line); border-radius:12px; background:#1b1d23; }.admin-community-post.archived { opacity:.6; }.admin-community-post > div:first-child { display:grid; gap:5px; }.admin-community-post strong { color:var(--cream); }.admin-community-post small { color:var(--muted); font-size:.76rem; }.admin-community-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }.admin-community-actions .text-button { padding:6px 8px; border:1px solid var(--line); border-radius:8px; font-size:.73rem; }.danger-button:hover { border-color:#ef6d73 !important; color:#ffc3c6 !important; }@media (max-width:620px) { .community-event-fields { grid-template-columns:1fr; }.admin-community-post { align-items:flex-start; flex-direction:column; }.admin-community-actions { justify-content:flex-start; } }

.news-article-header { display:grid; gap:18px; margin-top:14px; }.news-author { display:flex; align-items:center; gap:13px; margin:0; }.news-author img { width:64px; height:64px; flex:none; border:3px solid #b7b8bd; border-radius:50%; object-fit:cover; background:#eee; }.news-author p { display:grid; gap:4px; margin:0; }.news-author strong { color:#ff6575; font-size:.96rem; }.news-author span { color:var(--muted); font-size:.85rem; }.news-article-header h2 { margin:0; }.news-article-separator { height:1px; margin:20px 0 22px; background:linear-gradient(90deg,var(--red-soft),rgba(255,137,136,.28) 42%,var(--line)); }.news-article .news-body { margin:0; white-space:normal; }.news-article .news-body br { display:block; content:""; margin-top:.4em; }
@media (max-width:480px) { .news-article { padding:19px 17px; }.news-author img { width:54px; height:54px; }.news-article-header { gap:15px; }.news-article-separator { margin:17px 0 19px; } }
.event-watch-panel { display:grid; gap:12px; }.event-source-link { color:#f2bd69; font-size:.78rem; text-decoration:none; }.event-source-link:hover { text-decoration:underline; }
@media (max-width:580px) { .home-section-heading { align-items:start; flex-direction:column; gap:7px; } .home-section-heading p:last-child { text-align:left; } }

/* Barre d'accueil : actualités à gauche, événements à droite. */
.home-ribbon { overflow:hidden; margin:-35px 0 20px; border:1px solid #3d3743; border-radius:13px; background:linear-gradient(90deg,#20202a,#17191d); box-shadow:0 8px 22px rgba(0,0,0,.13); }
.home-ribbon-summary { display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,.65fr) 44px; align-items:stretch; }
.home-ribbon .news-ticker { width:auto; min-height:44px; margin:0; padding:8px 14px; border:0; border-radius:0; background:transparent; box-shadow:none; font-size:.86rem; }
#newsTickerText { min-width:0; }
.news-ticker-arrow { flex:none; color:#f1d7d7; font-size:1rem; }
.events-summary { display:flex; align-items:center; gap:9px; min-width:0; padding:7px 9px 7px 13px; border-left:1px solid #423a45; background:rgba(255,255,255,.015); }
.events-summary-label { flex:none; padding:3px 7px; border-radius:999px; color:#2c1518; background:#ff5f68; font-size:.62rem; font-weight:800; letter-spacing:.07em; }
.events-summary-text { overflow:hidden; color:#c8c7ce; font-size:.78rem; white-space:nowrap; text-overflow:ellipsis; }
.events-expand-button { align-self:center; width:30px; height:30px; margin:auto; border:1px solid #654047; border-radius:9px; color:#ffd5d5; background:#2a2025; font-size:.9rem; line-height:1; transition:transform .18s,border-color .18s; }
.events-expand-button:hover { border-color:#ff7a80; }
.events-expand-button.expanded { transform:rotate(180deg); }
.ribbon-drawer { display:grid; grid-template-columns:1fr 1fr; gap:19px; padding:15px 16px 17px; border-top:1px solid #423a45; background:rgba(12,13,18,.42); }
.ribbon-drawer[hidden] { display:none; }

/* Communauté et modération de la bêta. */
.admin-card { border-color:rgba(241,189,105,.45); background:linear-gradient(140deg,rgba(74,52,34,.58),rgba(27,29,35,.88)); }
.message-top-button { position:relative; display:grid; place-items:center; width:33px; height:33px; margin-right:10px; border:1px solid var(--line); border-radius:50%; color:var(--cream); background:var(--surface); font-size:1rem; }.message-top-button:hover { border-color:var(--red-soft); color:var(--red-soft); }.message-top-button span { position:absolute; top:-6px; right:-7px; display:grid; place-items:center; min-width:17px; height:17px; padding:0 4px; border-radius:999px; color:#251719; background:var(--red-soft); box-shadow:0 0 0 2px #17191d; font-size:.63rem; font-weight:800; }.message-top-button span[hidden] { display:none; }
.member-directory-button { display:flex; align-items:center; gap:7px; min-height:33px; margin-right:10px; padding:0 11px; border:1px solid var(--line); border-radius:999px; color:var(--cream); background:var(--surface); font:inherit; font-size:.78rem; font-weight:700; }.member-directory-button:hover { border-color:var(--red-soft); color:#fff; }.member-directory-button:disabled { opacity:.45; cursor:not-allowed; }.member-directory-button span { display:grid; place-items:center; min-width:18px; height:18px; padding:0 5px; border-radius:999px; color:#29171a; background:var(--red-soft); font-size:.65rem; }.member-directory-button span[hidden] { display:none; }
.member-directory { position:fixed; z-index:48; inset:0; }.member-directory[hidden] { display:none; }.member-directory-overlay { position:absolute; inset:0; width:100%; height:100%; border:0; background:rgba(5,6,9,.64); backdrop-filter:blur(3px); }.member-directory-panel { position:relative; z-index:1; display:flex; flex-direction:column; width:min(390px,91vw); height:100%; padding:25px 18px; overflow:auto; border-right:1px solid var(--line); background:linear-gradient(150deg,#20232b,#15171d); box-shadow:18px 0 48px rgba(0,0,0,.38); animation:member-directory-in .26s ease both; }.member-directory-panel header { display:flex; justify-content:space-between; gap:15px; padding:0 5px 18px; border-bottom:1px solid var(--line); }.member-directory-panel .eyebrow { margin:0 0 5px; }.member-directory-panel h2 { margin:0; color:var(--cream); font-size:1.4rem; }.member-directory-panel h2 em { color:var(--red-soft); font-style:normal; }.member-directory-panel header p:last-child { margin:7px 0 0; color:var(--muted); font-size:.78rem; line-height:1.4; }.member-directory-close { display:grid; place-items:center; flex:none; width:34px; height:34px; border:1px solid var(--line); border-radius:50%; color:var(--cream); background:#292c34; font-size:1.35rem; }.member-directory-close:hover { border-color:var(--red-soft); color:#fff; }.member-directory-list { display:grid; gap:8px; padding:16px 4px; }.member-directory-member { display:flex; align-items:center; gap:11px; width:100%; padding:10px; border:1px solid transparent; border-radius:13px; color:var(--text); text-align:left; background:#1b1d23; }.member-directory-member:hover { border-color:rgba(255,115,121,.48); background:#282129; transform:translateX(2px); }.member-directory-member > span:nth-child(2) { display:grid; gap:3px; min-width:0; }.member-directory-member strong { overflow:hidden; color:var(--cream); text-overflow:ellipsis; white-space:nowrap; }.member-directory-member small { color:var(--muted); font-size:.74rem; }.member-presence { display:grid; place-items:center; width:25px; height:25px; margin-left:auto; border-radius:50%; color:#d6f5dc; background:#225d3a; font-size:.76rem; }.member-presence.busy { color:#ffe0ae; background:#7a4b27; }.member-directory-empty { margin:12px 5px; color:var(--muted); line-height:1.5; }@keyframes member-directory-in { from { transform:translateX(-100%); } to { transform:none; } }
.member-profile-card { position:relative; overflow:hidden; min-height:300px; border:1px solid var(--line); border-radius:24px; background:#1b1d23; }.member-profile-cover { position:absolute; inset:0; background-position:center; background-size:cover; filter:brightness(.47) saturate(.8); }.member-profile-cover::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(11,12,17,.95),rgba(11,12,17,.48)); }.member-profile-content { position:relative; z-index:1; display:flex; align-items:flex-end; gap:20px; min-height:300px; padding:35px; }.member-profile-avatar { display:grid; flex:none; width:112px; height:112px; overflow:hidden; border:3px solid #fff0e7; border-radius:24px; background:#252831; box-shadow:0 0 0 5px rgba(255,115,121,.16),0 10px 30px rgba(0,0,0,.3); }.member-profile-avatar img { width:100%; height:100%; object-fit:cover; }.member-profile-heading { display:grid; gap:6px; flex:1; }.member-profile-heading .eyebrow { margin:0; }.member-profile-heading h1 { margin:0; color:#fff9f5; font-size:clamp(2rem,5vw,3.4rem); }.member-profile-heading > p:not(.eyebrow) { margin:0; color:#dcd6df; }.member-profile-socials { display:flex; gap:8px; margin-top:4px; }.member-profile-socials a { display:grid; place-items:center; width:28px; height:28px; border:1px solid rgba(255,255,255,.24); border-radius:50%; color:#fff; background:rgba(17,18,23,.5); text-decoration:none; }.member-profile-socials a:hover { border-color:var(--red-soft); color:var(--red-soft); }.member-profile-content .primary-button { flex:none; }.member-profile-about { margin-top:18px; }.member-profile-about h2 { margin-top:0; }.member-profile-about p { margin-bottom:0; color:var(--muted); }
@media (max-width:720px) { .member-directory-button { display:none; }.member-directory-panel { width:min(360px,88vw); padding:20px 13px; }.member-profile-content { align-items:flex-start; flex-direction:column; min-height:365px; padding:25px; }.member-profile-avatar { width:94px; height:94px; }.member-profile-content .primary-button { width:100%; }.member-profile-cover::after { background:linear-gradient(180deg,rgba(11,12,17,.55),rgba(11,12,17,.94)); } }
.messages-shell { display:grid; grid-template-columns:minmax(230px,.8fr) minmax(0,1.5fr); min-height:560px; border:1px solid var(--line); border-radius:20px; overflow:hidden; background:rgba(23,25,30,.88); }
.messages-sidebar { display:flex; flex-direction:column; gap:11px; padding:16px; border-right:1px solid var(--line); background:rgba(18,20,25,.72); }
.member-search-label,.messages-sidebar-heading strong { color:var(--cream); font-size:.86rem; font-weight:700; }
.messages-sidebar input { width:100%; padding:10px; border:1px solid var(--line); border-radius:10px; color:var(--text); background:#15171c; }
.messages-sidebar-heading { display:flex; justify-content:space-between; align-items:center; margin-top:6px; }
.messages-sidebar-heading small { color:var(--red-soft); font-size:.72rem; }
.message-member-results,.conversation-list { display:grid; gap:6px; }
.message-member-results:not(:empty) { padding-bottom:8px; border-bottom:1px solid var(--line); }
.member-search-row,.conversation-row { display:flex; align-items:center; gap:9px; width:100%; padding:9px; border:1px solid transparent; border-radius:10px; color:var(--text); text-align:left; background:transparent; }
.member-search-row:hover,.conversation-row:hover,.conversation-row.selected { border-color:rgba(255,115,121,.45); background:#282129; }
.member-search-row:disabled { cursor:not-allowed; opacity:.5; }
.message-avatar { display:grid; flex:none; overflow:hidden; width:35px; height:35px; border-radius:11px; }
.message-avatar img { width:100%; height:100%; object-fit:cover; }
.member-search-row span,.conversation-row span { display:grid; min-width:0; gap:2px; }
.member-search-row small,.conversation-row small { overflow:hidden; color:var(--muted); text-overflow:ellipsis; white-space:nowrap; font-size:.73rem; }
.conversation-row i { display:grid; place-items:center; min-width:18px; height:18px; margin-left:auto; border-radius:999px; color:#26191b; background:var(--red-soft); font-size:.67rem; font-style:normal; font-weight:800; }
.message-list-empty { margin:6px 0; color:var(--muted); font-size:.82rem; line-height:1.45; }
.conversation-pane { display:flex; min-width:0; min-height:520px; }
.message-empty { display:grid; place-content:center; justify-items:center; width:100%; padding:30px; color:var(--muted); text-align:center; }
.message-empty span { display:grid; place-items:center; width:52px; height:52px; margin-bottom:10px; border:1px solid var(--line); border-radius:16px; color:var(--red-soft); font-size:1.35rem; }
.message-empty h2 { margin:0; color:var(--cream); font-size:1.1rem; }
.message-empty p { max-width:34ch; line-height:1.5; }
#messageConversation { display:flex; flex:1; min-width:0; flex-direction:column; } #messageConversation[hidden],.message-empty[hidden] { display:none; }
.conversation-header { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:16px 18px; border-bottom:1px solid var(--line); }
.conversation-header div { display:grid; gap:3px; }.conversation-header small { color:var(--muted); font-size:.76rem; }
.message-thread { display:flex; flex:1; min-height:340px; flex-direction:column; gap:9px; overflow:auto; padding:17px; }
.message-bubble { max-width:min(78%,530px); padding:10px 12px; border-radius:14px; background:#282b33; }.message-bubble.mine { align-self:flex-end; border-bottom-right-radius:4px; color:#321f21; background:var(--red-soft); }.message-bubble.theirs { align-self:flex-start; border-bottom-left-radius:4px; }
.message-bubble p { margin:0; overflow-wrap:anywhere; line-height:1.45; }.message-bubble small { display:flex; gap:8px; margin-top:6px; color:inherit; opacity:.72; font-size:.68rem; }.report-message-button { padding:0; border:0; color:inherit; background:transparent; text-decoration:underline; font-size:inherit; }
.message-composer { display:flex; align-items:flex-end; gap:10px; padding:13px; border-top:1px solid var(--line); }.message-composer[hidden] { display:none; }.message-composer-input { flex:1; min-width:0; }.message-composer textarea { width:100%; min-height:46px; max-height:120px; resize:vertical; padding:11px; border:1px solid var(--line); border-radius:11px; color:var(--text); background:#15171d; font:inherit; }.message-composer-hint { margin:5px 2px 0; color:var(--muted); font-size:.67rem; }.message-composer .primary-button { flex:none; }.message-emoji-wrap { position:relative; flex:none; }.message-emoji-button { display:grid; place-items:center; width:43px; height:43px; border:1px solid var(--line); border-radius:11px; color:var(--cream); background:#232630; font-size:1.15rem; }.message-emoji-button:hover,.message-emoji-button[aria-expanded="true"] { border-color:var(--red-soft); color:#fff; background:#30252d; }.message-emoji-picker { position:absolute; z-index:20; right:0; bottom:53px; width:242px; padding:10px; border:1px solid var(--line); border-radius:14px; background:#20232b; box-shadow:0 16px 35px rgba(0,0,0,.35); }.message-emoji-picker[hidden] { display:none; }.message-emoji-picker p { margin:0 0 6px; color:var(--muted); font-size:.69rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }.message-emoji-picker p:not(:first-child) { margin-top:10px; }.emoji-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:4px; }.emoji-grid button { display:grid; place-items:center; min-height:30px; padding:0; border:1px solid transparent; border-radius:7px; background:transparent; font-size:1rem; }.emoji-grid button:hover { border-color:var(--line); background:#2b2e38; transform:scale(1.08); }
.message-bubble-alert { position:fixed; z-index:35; right:20px; bottom:22px; display:flex; align-items:center; gap:9px; max-width:250px; padding:6px 11px 6px 6px; border:1px solid rgba(255,115,121,.5); border-radius:999px; background:rgba(27,29,35,.94); box-shadow:0 12px 30px rgba(0,0,0,.38); backdrop-filter:blur(10px); animation:message-alert-in .28s ease both; }.message-bubble-alert[hidden] { display:none; }.message-bubble-alert > button { position:relative; display:grid; place-items:center; width:48px; height:48px; padding:0; overflow:visible; border:0; border-radius:50%; background:transparent; }.message-bubble-avatar { display:grid; width:45px; height:45px; overflow:hidden; border:2px solid #ff7d83; border-radius:50%; background:#252831; box-shadow:0 0 0 3px rgba(255,115,121,.14); }.message-bubble-avatar img { width:100%; height:100%; object-fit:cover; }.message-bubble-count { position:absolute; top:-4px; right:-4px; display:grid; place-items:center; min-width:19px; height:19px; padding:0 4px; border:2px solid #1b1d23; border-radius:99px; color:#251719; background:var(--red-soft); font-size:.65rem; font-weight:800; }.message-bubble-label { overflow:hidden; color:var(--cream); font-size:.78rem; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }.message-bubble-alert:hover { border-color:#ff8f94; transform:translateY(-2px); }.message-bubble-alert:hover .message-bubble-avatar { box-shadow:0 0 0 3px rgba(255,115,121,.22),0 0 17px rgba(255,115,121,.45); }@keyframes message-alert-in { from { opacity:0; transform:translateY(14px) scale(.94); } to { opacity:1; transform:none; } }@media (max-width:620px) { .message-composer { flex-wrap:wrap; }.message-composer-input { order:1; flex-basis:calc(100% - 55px); }.message-emoji-wrap { order:2; }.message-composer > .primary-button { order:3; width:100%; }.message-bubble-alert { right:12px; bottom:14px; max-width:calc(100vw - 24px); } }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.admin-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:11px; margin-bottom:18px; }.admin-summary article { display:grid; gap:5px; padding:16px; border:1px solid var(--line); border-radius:14px; background:rgba(29,32,39,.82); }.admin-summary strong { color:var(--cream); font-size:1.55rem; }.admin-summary span { color:var(--muted); font-size:.8rem; }
.admin-reports,.admin-members { display:grid; gap:10px; }.admin-report { display:flex; justify-content:space-between; gap:16px; padding:14px; border:1px solid var(--line); border-radius:13px; background:#1b1d23; }.admin-report.open { border-color:rgba(255,115,121,.5); }.admin-report > div { display:grid; align-content:start; gap:7px; }.admin-report p { margin:0; color:#dbd9df; line-height:1.45; }.admin-report small { color:var(--muted); }.admin-report > div:last-child { justify-items:end; }.admin-member { display:flex; align-items:center; gap:10px; padding:10px; border:1px solid var(--line); border-radius:12px; background:#1b1d23; }.admin-member div { display:grid; gap:2px; }.admin-member small { color:var(--muted); font-size:.75rem; }.admin-member button { margin-left:auto; color:#ffb4b6; }
@media (max-width:720px) { .messages-shell { grid-template-columns:1fr; }.messages-sidebar { border-right:0; border-bottom:1px solid var(--line); }.conversation-pane { min-height:460px; }.admin-summary { grid-template-columns:repeat(2,1fr); }.admin-report { flex-direction:column; }.admin-report > div:last-child { justify-items:start; } }
.ribbon-list + .ribbon-list { padding-left:19px; border-left:1px solid #423a45; }
.ribbon-list h2 { margin:0 0 9px; color:var(--cream); font-size:.86rem; letter-spacing:.04em; text-transform:uppercase; }
.ribbon-entry { width:100%; display:grid; gap:3px; padding:9px 0; border:0; border-top:1px solid var(--line); color:var(--text); background:transparent; text-align:left; }
.ribbon-entry:first-child { border-top:0; }.ribbon-entry small { color:var(--muted); font-size:.72rem; }.ribbon-entry strong { font-size:.84rem; line-height:1.35; }.ribbon-entry:hover strong { color:var(--red-soft); }
.event-row { display:grid; grid-template-columns:112px minmax(0,1fr); gap:13px; padding:10px 0; border-top:1px solid var(--line); }
.event-row:first-child { padding-top:0; border-top:0; }.event-row:last-child { padding-bottom:0; }
.event-row strong { color:var(--cream); }.event-row p { margin:4px 0 0; color:var(--muted); font-size:.86rem; }.event-date { color:var(--red-soft); font-size:.8rem; font-weight:700; }
@media (max-width:650px) { .home-ribbon { margin:-24px 0 22px; } .home-ribbon-summary { grid-template-columns:minmax(0,1fr) 42px; } .events-summary { grid-column:1 / -1; grid-row:2; border-top:1px solid #423a45; border-left:0; } .events-expand-button { grid-column:2; grid-row:1; } .ribbon-drawer { grid-template-columns:1fr; gap:15px; } .ribbon-list + .ribbon-list { padding-top:15px; padding-left:0; border-top:1px solid #423a45; border-left:0; } }

/* Champ leurre : masqué hors écran mais présent pour détecter les robots qui remplissent tout. */
.bot-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }

/* Un coffre fermé est immobile : l'animation démarre uniquement à l'ouverture. */
.loot-box.loot-chest-asset .loot-chest-lid-art { animation:none !important; }
.loot-box.loot-chest-asset.opening .loot-chest-lid-art { animation:chest-lid-art-open 3.2s cubic-bezier(.18,.82,.22,1) both !important; }

/* Le tableau conserve toutes ses colonnes et reste défilable sur téléphone. */
.table-scroll { width:100%; overflow-x:auto; padding-bottom:4px; }
.conjugation-table { min-width:1280px; }
.conjugation-table .given-form { color:#bdecc9; font-weight:700; white-space:nowrap; }

/* Progression des alphabets : une réussite par caractère suffit à le valider. */
.writing-progress { --writing-progress:0%; display:inline-grid; grid-template-columns:32px auto; grid-template-rows:16px 13px; column-gap:7px; align-items:center; width:max-content; min-height:42px; margin-top:9px; padding:4px 10px 4px 5px; border:1px solid rgba(141,208,255,.4); border-radius:13px; color:#d9efff; background:linear-gradient(135deg,rgba(47,99,134,.38),rgba(49,68,105,.48)); box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 5px 12px rgba(3,10,21,.2); font-weight:800; letter-spacing:.01em; }
.writing-progress::before { grid-row:1 / span 2; width:30px; height:30px; border-radius:50%; background:radial-gradient(circle at center,#202a39 56%,transparent 58%),conic-gradient(#91dcff var(--writing-progress),rgba(255,255,255,.16) 0); box-shadow:0 0 0 2px rgba(233,250,255,.18); content:""; }
.writing-progress span { grid-column:2; color:#f4fbff; font-size:.82rem; line-height:1; }.writing-progress small { grid-column:2; color:#bbd1e3; font-size:.63rem; line-height:1; white-space:nowrap; }

/* Programme L1 : deux semestres et chapitres liés aux fascicules. */
.semester-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.semester-card,.chapter-card { min-height:190px; padding:22px; display:flex; flex-direction:column; align-items:flex-start; border:1px solid var(--line); border-radius:18px; color:var(--text); text-align:left; background:linear-gradient(145deg,#202229,#181a1f); transition:transform .18s,border-color .18s; }
.semester-card:hover,.chapter-card:not(:disabled):hover { transform:translateY(-3px); border-color:var(--red-soft); }
.semester-card span:first-child,.chapter-index { display:grid; place-items:center; width:38px; height:29px; border-radius:8px; color:#201516; background:var(--cream); font-size:.78rem; font-weight:800; }
.semester-card strong,.chapter-card strong { margin:17px 0 8px; color:var(--cream); font-size:1.28rem; }.semester-card small,.chapter-card small { color:var(--muted); line-height:1.45; }.semester-card b { margin-top:auto; color:var(--red-soft); font-size:.84rem; }
.chapter-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }.chapter-card { min-height:155px; padding:17px; }.chapter-card strong { margin-top:13px; font-size:1rem; }.chapter-card b { margin-top:auto; color:#bdecc9; font-size:.78rem; }.chapter-card:disabled { cursor:not-allowed; opacity:.48; }.chapter-card:disabled b { color:var(--muted); }
@media (max-width:680px) { .semester-grid,.chapter-grid { grid-template-columns:1fr; } }

.exam-breakdown { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:10px; }
.curriculum-progress { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }.curriculum-track { padding:14px; border:1px solid var(--line); border-radius:13px; background:#1b1d23; }.curriculum-track strong { display:block; color:var(--cream); }.curriculum-track small { display:block; margin:5px 0 10px; color:var(--muted); }.curriculum-track b { color:#bdecc9; font-size:.82rem; }.curriculum-track .success-rate { margin:8px 0 0; color:#ffc6ca; font-weight:700; }@media (max-width:680px) { .curriculum-progress { grid-template-columns:1fr; } }
.exam-breakdown article { display:grid; gap:5px; padding:14px; border:1px solid var(--line); border-radius:13px; background:#1b1d23; }
.exam-breakdown strong { color:var(--cream); font-size:.92rem; }
.exam-breakdown span { color:#bdecc9; font-size:1.15rem; font-weight:800; }
.exam-breakdown small { color:var(--muted); }
.member-presence.inactive { color:#c2c5ce; background:#42464f; }

/* Cahier de révision : le fond général du site reste volontairement sobre. */
.study-notebook-section { margin-top:34px; }
.study-notebook { position:relative; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); max-width:1030px; margin:0 auto; overflow:hidden; border:1px solid rgba(229,205,168,.48); border-radius:25px; color:#32291f; background:#ede2cb; box-shadow:0 22px 45px rgba(0,0,0,.3),inset 0 0 0 7px rgba(107,51,48,.1); transform-origin:center; }
.study-notebook::before { content:""; position:absolute; z-index:3; top:0; bottom:0; left:50%; width:15px; transform:translateX(-50%); background:linear-gradient(90deg,rgba(66,35,29,.44),rgba(255,248,230,.42) 45%,rgba(66,35,29,.36)); box-shadow:-6px 0 13px rgba(47,28,20,.19),6px 0 13px rgba(47,28,20,.19); pointer-events:none; }
.study-notebook::after { content:""; position:absolute; z-index:4; top:26px; bottom:26px; left:50%; width:3px; transform:translateX(-50%); border-radius:99px; background:repeating-linear-gradient(to bottom,#b64d46 0 9px,#f6d9b6 9px 17px,#b64d46 17px 25px); box-shadow:0 0 0 1px rgba(80,36,31,.28); pointer-events:none; }
.notebook-page { position:relative; min-height:545px; padding:37px 40px 34px; background:repeating-linear-gradient(to bottom,transparent 0 31px,rgba(161,121,70,.17) 32px 33px),linear-gradient(135deg,#fbf4e4,#e6d8bb); }
.notebook-page::before { content:""; position:absolute; top:0; bottom:0; width:1px; background:rgba(176,99,88,.28); }.notebook-revisions::before { left:25px; }.notebook-tools::before { right:25px; }
.notebook-revisions { padding-right:47px; }.notebook-tools { padding-left:47px; }
.notebook-page-heading { position:relative; z-index:1; margin-bottom:23px; }.notebook-page-heading .eyebrow { margin:0 0 5px; color:#b64e4b; }.notebook-page-heading h3 { margin:0; color:#33271d; font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.8rem,3.3vw,2.55rem); }.notebook-page-heading p:last-child { margin:7px 0 0; color:#75675b; font-size:.89rem; line-height:1.45; }
.notebook-progress { display:grid; gap:10px; margin-bottom:22px; }.notebook-progress-row { display:grid; grid-template-columns:minmax(0,1fr) 43px; gap:8px; align-items:center; }.notebook-progress-row strong { color:#4b3a2b; font-size:.82rem; }.notebook-progress-row small { color:#a34a43; text-align:right; font-size:.76rem; font-weight:800; }.notebook-progress-track { grid-column:1/-1; height:7px; overflow:hidden; border-radius:999px; background:rgba(100,79,59,.18); }.notebook-progress-track span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#d85a50,#ed9275); transition:width .35s ease; }
.notebook-subjects { display:grid; gap:10px; }.notebook-subject { display:grid; grid-template-columns:42px minmax(0,1fr) 20px; align-items:center; gap:11px; width:100%; min-height:69px; padding:10px 12px; border:1px solid rgba(143,91,67,.32); border-radius:14px; color:#392b21; text-align:left; background:rgba(255,250,238,.63); box-shadow:0 3px 0 rgba(103,64,39,.12); transition:transform .2s ease,border-color .2s ease,background .2s ease; }.notebook-subject:hover { transform:translateX(4px); border-color:#c65850; background:#fff9eb; }.notebook-subject:focus-visible,.notebook-note:focus-visible,.notebook-tool-panel button:focus-visible { outline:3px solid #3d72b7; outline-offset:3px; }.notebook-subject-icon { display:grid; place-items:center; width:39px; height:39px; border:1px solid rgba(161,84,68,.45); border-radius:50%; color:#a64642; background:#fff7e9; font-family:"Noto Sans JP",sans-serif; font-size:1.15rem; font-weight:700; }.notebook-subject span:nth-child(2) { display:grid; gap:2px; }.notebook-subject strong { font-family:Georgia,"Times New Roman",serif; font-size:1.08rem; }.notebook-subject small { overflow:hidden; color:#76675a; font-size:.72rem; text-overflow:ellipsis; white-space:nowrap; }.notebook-subject b { color:#a64642; font-size:1.7rem; font-weight:400; }.notebook-subject-oral { opacity:.88; }
.notebook-tool-notes { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:16px; align-content:start; min-height:320px; padding:6px 2px 20px; }.notebook-note { position:relative; min-height:126px; padding:19px 14px; border:0; color:#3e3427; text-align:left; box-shadow:3px 7px 10px rgba(62,44,26,.21),inset 0 0 18px rgba(255,255,255,.28); transform:rotate(-1.6deg); transition:transform .22s ease,filter .22s ease,opacity .25s ease; }.notebook-note:nth-child(2) { transform:rotate(1.4deg); }.notebook-note:nth-child(3) { grid-column:1/-1; width:62%; justify-self:center; min-height:106px; transform:rotate(-.8deg); }.notebook-note:hover { transform:translateY(-6px) rotate(0); filter:brightness(1.04); }.notebook-note span { display:block; font-family:Georgia,"Times New Roman",serif; font-size:1.15rem; font-weight:700; line-height:1.07; }.notebook-note small { display:block; margin-top:10px; font-size:.68rem; line-height:1.3; }.notebook-note-statistics { background:#f6dc83; }.notebook-note-smart { background:#bddcbd; }.notebook-note-exam { color:#4a2624; background:#f18a78; }.notebook-note.is-fading span,.notebook-note.is-fading small { animation:note-text-fade .34s ease both; }.notebook-note.is-leaving { pointer-events:none; animation:note-lift .48s cubic-bezier(.2,.85,.34,1) both; }
.notebook-tool-panel { position:relative; z-index:2; min-height:270px; padding:23px; border:1px solid rgba(142,109,77,.34); border-radius:18px; background:rgba(255,250,238,.72); box-shadow:0 8px 17px rgba(82,55,35,.12); animation:notebook-panel-in .32s ease both; }.notebook-tool-panel h4 { margin:0 0 10px; color:#3c2e22; font-family:Georgia,"Times New Roman",serif; font-size:1.45rem; }.notebook-tool-panel p { margin:0; color:#685b4e; line-height:1.5; }.notebook-stat-ring { display:grid; place-items:center; width:104px; height:104px; margin:15px auto; border:10px solid #d89c58; border-left-color:#efe2bc; border-radius:50%; color:#9e443f; font-size:1.38rem; font-weight:800; }.notebook-tool-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }.notebook-tool-actions .secondary-button { color:#442d29; border-color:#b66a5b; background:#fff6df; }.notebook-tool-actions .text-button { color:#8d473e; }.notebook-tool-list { display:grid; gap:8px; margin-top:16px; }.notebook-tool-list span { display:flex; justify-content:space-between; gap:8px; padding-bottom:7px; border-bottom:1px solid rgba(132,97,64,.23); color:#5e4a3b; font-size:.84rem; }.notebook-tool-list b { color:#aa4943; }
.notebook-exam-sheet { position:absolute; z-index:5; right:29px; bottom:22px; left:44px; display:grid; gap:12px; padding:22px 20px 19px; border:1px solid #dbc3ae; color:#352923; background:linear-gradient(145deg,#fffdf6,#eee6d9); box-shadow:0 14px 25px rgba(54,35,29,.28); transform:rotate(-1.4deg); animation:exam-sheet-in .48s cubic-bezier(.18,.84,.28,1) both; }.notebook-exam-sheet .eyebrow { margin:0; color:#b4524a; }.notebook-exam-sheet h4 { margin:0; font-family:Georgia,"Times New Roman",serif; font-size:1.55rem; }.notebook-exam-sheet p:not(.eyebrow) { margin:0; color:#6b5e52; font-size:.85rem; line-height:1.4; }.notebook-sheet-lines { display:grid; gap:8px; margin:3px 0; }.notebook-sheet-lines span { padding:7px 0; border-bottom:1px solid rgba(120,94,74,.32); color:#534336; font-size:.83rem; }.notebook-exam-sheet .primary-button { width:100%; }.notebook-exam-sheet .text-button { justify-self:start; color:#7b4b43; }
.study-notebook.is-turning { animation:notebook-turn .38s cubic-bezier(.3,.7,.26,1) both; }.study-notebook[data-notebook-view="tool"] .notebook-tool-notes { display:none; }.study-notebook[data-notebook-view="tool"] .notebook-page-heading { opacity:.56; }.study-notebook[data-notebook-view="exam"] .notebook-tool-notes { visibility:hidden; }
@keyframes note-text-fade { to { opacity:0; transform:translateY(-5px); } } @keyframes note-lift { to { opacity:0; transform:translate(28px,-82px) rotate(12deg); } } @keyframes notebook-panel-in { from { opacity:0; transform:translateY(11px) scale(.97); } to { opacity:1; transform:none; } } @keyframes exam-sheet-in { from { opacity:0; transform:translateY(34px) rotate(4deg); } to { opacity:1; transform:rotate(-1.4deg); } } @keyframes notebook-turn { 49% { opacity:.63; transform:rotateY(-9deg) scale(.985); } 100% { opacity:1; transform:none; } }
@media (max-width:760px) { .study-notebook-section { margin-top:25px; }.study-notebook { display:block; overflow:visible; border-radius:20px; }.study-notebook::before { top:50%; right:14px; bottom:auto; left:14px; width:auto; height:10px; transform:translateY(-50%); background:linear-gradient(rgba(67,35,29,.37),rgba(255,248,230,.42),rgba(67,35,29,.3)); box-shadow:0 -5px 10px rgba(47,28,20,.15),0 5px 10px rgba(47,28,20,.15); }.study-notebook::after { top:50%; right:22px; bottom:auto; left:22px; width:auto; height:3px; transform:translateY(-50%); background:repeating-linear-gradient(90deg,#b64d46 0 9px,#f6d9b6 9px 17px,#b64d46 17px 25px); }.notebook-page { min-height:auto; padding:29px 28px 31px; }.notebook-revisions { border-radius:20px 20px 0 0; padding-right:28px; }.notebook-tools { min-height:395px; border-radius:0 0 20px 20px; padding-left:28px; }.notebook-page::before { top:18px; bottom:18px; }.notebook-revisions::before { left:17px; }.notebook-tools::before { right:17px; }.notebook-page-heading h3 { font-size:2rem; }.notebook-subject { min-height:65px; }.notebook-tool-notes { min-height:260px; }.notebook-note { min-height:113px; }.notebook-exam-sheet { right:21px; bottom:19px; left:21px; } }
@media (max-width:420px) { .study-notebook { border-radius:16px; }.notebook-page { padding:25px 20px 28px; }.notebook-page-heading p:last-child { font-size:.8rem; }.notebook-progress { gap:8px; }.notebook-subject { grid-template-columns:36px minmax(0,1fr) 15px; gap:8px; min-height:61px; padding:8px 9px; }.notebook-subject-icon { width:34px; height:34px; font-size:1rem; }.notebook-subject strong { font-size:1rem; }.notebook-subject small { font-size:.65rem; }.notebook-tool-notes { gap:11px; }.notebook-note { min-height:104px; padding:15px 10px; }.notebook-note span { font-size:1rem; }.notebook-note small { margin-top:7px; font-size:.62rem; }.notebook-exam-sheet { padding:18px 16px; } }
@media (prefers-reduced-motion:reduce) { .study-notebook,.notebook-note,.notebook-tool-panel,.notebook-exam-sheet,.notebook-note.is-fading span,.notebook-note.is-fading small,.notebook-note.is-leaving { animation:none !important; transition:none !important; } }

/* Le menu du profil doit toujours passer devant Neko-sensei. */
.topbar { position:relative; z-index:40; }
.profile-menu { z-index:41; }
.profile-dropdown { z-index:42; }

/* Le contenu du cahier garde une écriture manuscrite, sans sacrifier la lisibilité. */
.notebook-page { font-family:"Patrick Hand","Comic Sans MS",cursive; letter-spacing:.012em; }
.notebook-page-heading h3,.notebook-subject strong,.notebook-note span,.notebook-tool-panel h4,.notebook-exam-sheet h4 { font-family:"Patrick Hand","Comic Sans MS",cursive; font-weight:400; letter-spacing:.015em; }
.notebook-page-heading h3 { font-size:clamp(2.25rem,4vw,3.25rem); }.notebook-subject strong { font-size:1.38rem; }.notebook-note span { font-size:1.42rem; }.notebook-tool-panel h4,.notebook-exam-sheet h4 { font-size:1.95rem; }
.notebook-page-heading p:last-child,.notebook-subject small,.notebook-note small,.notebook-progress-row strong,.notebook-progress-row small,.notebook-tool-panel p,.notebook-tool-list span,.notebook-exam-sheet p:not(.eyebrow),.notebook-sheet-lines span { font-family:"Patrick Hand","Comic Sans MS",cursive; font-size:1.05rem; }

/* La feuille de contrôle apparaît sous les deux autres post-it ; seul celui d'examen se décolle. */
.study-notebook[data-notebook-view="exam"] .notebook-tool-notes { visibility:visible; pointer-events:none; }.study-notebook[data-notebook-view="exam"] .notebook-note:not(.notebook-note-exam) { opacity:.92; transform:translateY(-2px) rotate(-1deg); }.study-notebook[data-notebook-view="exam"] .notebook-tools { min-height:655px; }.study-notebook[data-notebook-view="exam"] .notebook-exam-sheet { top:352px; bottom:auto; }
@media (max-width:760px) { .study-notebook[data-notebook-view="exam"] .notebook-tools { min-height:630px; }.study-notebook[data-notebook-view="exam"] .notebook-exam-sheet { top:334px; bottom:auto; }.notebook-page-heading h3 { font-size:2.65rem; } }
@media (max-width:420px) { .study-notebook[data-notebook-view="exam"] .notebook-tools { min-height:610px; }.study-notebook[data-notebook-view="exam"] .notebook-exam-sheet { top:315px; }.notebook-note span { font-size:1.23rem; }.notebook-page-heading h3 { font-size:2.35rem; } }

/* Les post-it sont maintenant posés hors du cahier : aucun ne passe derrière une feuille. */
.notebook-tool-placeholder { max-width:25ch; margin:80px auto 0; color:#8a7968; font-family:"Patrick Hand","Comic Sans MS",cursive; font-size:1.25rem; line-height:1.35; text-align:center; }.study-notebook[data-notebook-view="tool"] .notebook-tool-placeholder,.study-notebook[data-notebook-view="exam"] .notebook-tool-placeholder { display:none; }
.notebook-tool-notes-external { display:flex; justify-content:flex-end; width:min(48%,480px); min-height:0; margin:-5px 0 34px auto; padding:0 4px; gap:13px; }.notebook-tool-notes-external .notebook-note { flex:1; min-width:0; min-height:111px; }.notebook-tool-notes-external .notebook-note:nth-child(3) { grid-column:auto; width:auto; min-height:111px; }
.notebook-exam-choices { gap:13px; }.notebook-exam-choices label { display:grid; grid-template-columns:78px minmax(0,1fr); align-items:center; gap:10px; padding:5px 0 9px; border-bottom:1px solid rgba(120,94,74,.32); color:#534336; font-family:"Patrick Hand","Comic Sans MS",cursive; font-size:1.08rem; }.notebook-exam-choices select { width:100%; padding:7px 9px; border:1px solid rgba(137,93,70,.4); border-radius:8px; color:#392b21; background:#fffaf0; font:inherit; }
.study-notebook[data-notebook-view="exam"] .notebook-tools { min-height:545px; }.study-notebook[data-notebook-view="exam"] .notebook-exam-sheet { top:161px; right:29px; bottom:auto; left:44px; }.study-notebook[data-notebook-view="exam"] .notebook-tool-notes { visibility:visible; pointer-events:auto; }.study-notebook[data-notebook-view="exam"] .notebook-note:not(.notebook-note-exam) { opacity:1; transform:none; }
@media (max-width:760px) { .notebook-tool-placeholder { margin:54px auto 0; }.notebook-tool-notes-external { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:100%; margin:18px 0 30px; padding:0 4px; gap:10px; }.notebook-tool-notes-external .notebook-note,.notebook-tool-notes-external .notebook-note:nth-child(3) { width:auto; min-height:108px; padding:14px 8px; }.study-notebook[data-notebook-view="exam"] .notebook-tools { min-height:500px; }.study-notebook[data-notebook-view="exam"] .notebook-exam-sheet { top:150px; right:20px; left:20px; } }
@media (max-width:420px) { .notebook-tool-notes-external { grid-template-columns:1fr; width:min(310px,100%); margin:17px auto 29px; }.notebook-tool-notes-external .notebook-note,.notebook-tool-notes-external .notebook-note:nth-child(3) { min-height:82px; }.notebook-tool-notes-external .notebook-note span { font-size:1.32rem; }.notebook-tool-notes-external .notebook-note small { font-size:.95rem; }.study-notebook[data-notebook-view="exam"] .notebook-tools { min-height:485px; }.study-notebook[data-notebook-view="exam"] .notebook-exam-sheet { top:143px; } }

/* L'examen blanc est la feuille permanente de la page de droite. */
.notebook-tools { min-height:545px; }
.notebook-exam-sheet { top:161px; right:29px; bottom:auto; left:44px; }
@media (max-width:760px) { .notebook-tool-notes-external { grid-template-columns:repeat(2,minmax(0,1fr)); }.notebook-tools { min-height:500px; }.notebook-exam-sheet { top:150px; right:20px; left:20px; } }
@media (max-width:420px) { .notebook-tools { min-height:485px; }.notebook-exam-sheet { top:143px; } }

/* Post-it des outils : lisibles, tactiles et vraiment « collés » au cahier. */
.notebook-tool-notes-external { position:relative; align-items:flex-start; gap:22px; margin-top:18px; padding:10px 12px 26px; }
.notebook-tool-notes-external .notebook-note { isolation:isolate; min-height:145px; padding:31px 20px 18px; overflow:visible; border:1px solid rgba(96,69,38,.17); border-radius:3px 5px 4px 3px; box-shadow:2px 4px 0 rgba(111,79,42,.14),8px 12px 18px rgba(17,12,8,.28); }
.notebook-tool-notes-external .notebook-note::before { content:""; position:absolute; z-index:-1; top:-12px; left:50%; width:78px; height:25px; border:1px solid rgba(255,255,255,.36); background:rgba(255,246,211,.65); box-shadow:0 1px 2px rgba(56,39,20,.14); transform:translateX(-50%) rotate(-3deg); }
.notebook-tool-notes-external .notebook-note::after { content:""; position:absolute; z-index:-1; right:8px; bottom:-8px; left:8px; height:15px; background:linear-gradient(135deg,transparent 0 8px,rgba(81,55,28,.18) 9px,transparent 10px) 0 0 / 16px 15px repeat-x; opacity:.45; }
.notebook-tool-notes-external .notebook-note-statistics { background:linear-gradient(135deg,#ffe898,#f4c950 84%); transform:rotate(-2.4deg); }
.notebook-tool-notes-external .notebook-note-smart { background:linear-gradient(135deg,#d2f0c8,#9bd29d 84%); transform:rotate(2deg); }
.notebook-tool-notes-external .notebook-note:hover { transform:translateY(-8px) rotate(0deg) scale(1.025); box-shadow:3px 5px 0 rgba(111,79,42,.14),11px 19px 25px rgba(17,12,8,.3); }
.notebook-tool-notes-external .notebook-note span { color:#443120; font-size:1.62rem; line-height:.96; }
.notebook-tool-notes-external .notebook-note small { margin-top:12px; color:#67503a; font-family:"Patrick Hand","Comic Sans MS",cursive; font-size:1.08rem; line-height:1.05; }
@media (max-width:760px) { .notebook-tool-notes-external { gap:16px; padding:17px 13px 27px; }.notebook-tool-notes-external .notebook-note { min-height:132px; padding:28px 14px 15px; }.notebook-tool-notes-external .notebook-note span { font-size:1.42rem; }.notebook-tool-notes-external .notebook-note small { font-size:1rem; } }
@media (max-width:420px) { .notebook-tool-notes-external { gap:22px; }.notebook-tool-notes-external .notebook-note { min-height:106px; }.notebook-tool-notes-external .notebook-note span { font-size:1.55rem; } }

/* Illustrations de post-it : images générées, texte restant HTML et accessible. */
.notebook-tool-notes-external .notebook-note { min-height:0; aspect-ratio:1.5 / 1; padding:30% 12% 10%; border:0; border-radius:0; background-position:center; background-size:cover; box-shadow:8px 14px 21px rgba(0,0,0,.38); }
.notebook-tool-notes-external .notebook-note::before,.notebook-tool-notes-external .notebook-note::after { display:none; }
.notebook-tool-notes-external .notebook-note-statistics { background-image:url("assets/rewards/postit-statistics-v1.png"); }
.notebook-tool-notes-external .notebook-note-smart { background-image:url("assets/rewards/postit-smart-review-v1.png"); }
.notebook-tool-notes-external .notebook-note span { color:#463421; text-shadow:0 1px 0 rgba(255,255,255,.28); }
.notebook-tool-notes-external .notebook-note small { color:#66503a; text-shadow:0 1px 0 rgba(255,255,255,.22); }
@media (max-width:760px) { .notebook-tool-notes-external .notebook-note { min-height:0; padding:30% 10% 9%; } }

/* Cartouches : le libellé reste au centre du post-it, jamais hors de l'image. */
.notebook-tool-notes-external .notebook-note { display:block; padding:0; }
.notebook-tool-notes-external .notebook-note span { position:absolute; top:48%; right:10%; left:10%; display:block; box-sizing:border-box; padding:5px 8px; border:1px solid rgba(95,67,36,.28); border-radius:7px; background:rgba(255,252,236,.48); text-align:center; line-height:.95; transform:translateY(-50%); }
.notebook-tool-notes-external .notebook-note small { position:absolute; top:76%; right:11%; left:11%; display:block; box-sizing:border-box; margin:0; padding:3px 6px; border-radius:6px; background:rgba(255,252,236,.35); text-align:center; line-height:1.02; transform:translateY(-50%); }
@media (max-width:760px) { .notebook-tool-notes-external .notebook-note span { top:49%; font-size:1.25rem; }.notebook-tool-notes-external .notebook-note small { top:77%; font-size:.86rem; } }

/* Nouvelle navigation inspirée du rendu validé. */
.app-rail { position:fixed; z-index:65; top:16px; bottom:16px; left:14px; display:flex; flex-direction:column; align-items:center; width:76px; overflow:hidden; border:1px solid rgba(255,255,255,.08); border-radius:20px; background:linear-gradient(180deg,#191b20,#111216); box-shadow:0 16px 42px rgba(0,0,0,.3); }
.app-rail-brand { display:grid; place-items:center; width:100%; height:92px; border:0; border-bottom:1px solid rgba(255,255,255,.07); color:#f4d4c8; background:transparent; font-family:"Noto Sans JP",sans-serif; font-size:1.7rem; }.app-rail-brand span { display:grid; place-items:center; width:43px; height:43px; border-radius:50%; color:#201518; background:linear-gradient(145deg,#ff7b70,#b94442); box-shadow:0 8px 18px rgba(229,82,75,.23); }
.app-rail-links { display:grid; width:100%; gap:5px; padding:18px 11px; }.app-rail-links button { display:grid; place-items:center; width:52px; height:52px; margin:auto; border:1px solid transparent; border-radius:15px; color:#9b9fa8; background:transparent; font-size:1.38rem; transition:color .18s ease,background .18s ease,transform .18s ease; }.app-rail-links button:hover,.app-rail-links button:focus-visible { outline:0; color:#fff5ec; background:rgba(231,75,75,.18); transform:translateX(2px); }.app-rail-links button:focus-visible { box-shadow:0 0 0 3px rgba(255,115,115,.42); }
@media (min-width:900px) {
  /* Centre le contenu dans l'espace réellement disponible à droite du rail. */
  .app-shell {
    width:min(calc(100% - 132px),1260px);
    margin-right:auto;
    margin-left:max(104px,calc((100% - 1184px) / 2));
  }
}

/* Une véritable feuille tourne devant le cahier avant chaque changement de page. */
.study-notebook { isolation:isolate; perspective:1800px; }.notebook-page { z-index:1; }.notebook-page-flip { position:absolute; z-index:8; top:0; bottom:0; left:0; width:50%; pointer-events:none; opacity:0; background:repeating-linear-gradient(to bottom,transparent 0 31px,rgba(161,121,70,.17) 32px 33px),linear-gradient(135deg,#fff8e9,#e6d8bb); box-shadow:7px 1px 18px rgba(50,29,21,.25); transform:rotateY(0deg); transform-origin:right center; }.study-notebook.is-turning { animation:none; }.study-notebook.is-turning .notebook-page-flip { animation:notebook-page-flip .56s cubic-bezier(.32,.05,.18,1) both; }
@keyframes notebook-page-flip { 0% { opacity:0; transform:rotateY(0deg); } 7% { opacity:1; } 48% { opacity:1; transform:rotateY(-88deg); } 100% { opacity:0; transform:rotateY(-179deg); } }
@media (max-width:899px) { .app-shell { width:min(100% - 24px,850px); padding-bottom:96px; }.app-rail { top:auto; right:10px; bottom:10px; left:10px; flex-direction:row; width:auto; height:66px; border-radius:19px; }.app-rail-brand { display:none; }.app-rail-links { display:grid; grid-template-columns:repeat(5,1fr); align-items:center; gap:2px; padding:5px 9px; }.app-rail-links button { width:48px; height:48px; }.app-rail-links button[data-rail-action="events"],.app-rail-links button[data-rail-action="news"] { display:none; }.app-rail-links button:hover { transform:translateY(-2px); }.study-notebook { perspective:1300px; }.notebook-page-flip { top:0; right:0; bottom:auto; width:auto; height:50%; transform-origin:center bottom; }.study-notebook.is-turning .notebook-page-flip { animation:notebook-mobile-page-flip .56s cubic-bezier(.32,.05,.18,1) both; } }

/* La barre supérieure reste utilisable sur téléphone, même avec un profil long. */
@media (max-width:650px) {
  .topbar { flex-wrap:wrap; gap:8px; margin-bottom:34px; }
  .topbar .brand { margin-right:auto; }
  .furigana-toggle { order:2; margin:0; }
  .notification-button { order:2; margin:0; }
  .message-top-button { order:2; }
  .profile-menu { order:2; margin-left:auto; }
  .profile-button span:nth-child(2) { max-width:92px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .member-directory-button { display:none; }
}

@media (max-width:480px) {
  .app-shell { width:calc(100% - 20px); padding-top:14px; }
  .topbar { gap:6px; }
  .topbar .brand > span:last-child { display:none; }
  .furigana-toggle { padding:5px 8px; font-size:.7rem; }
  .home-ribbon { margin-top:-18px; }
  .neko-welcome { position:relative; }
  .neko-welcome > img { width:92px; height:92px; margin-top:-52px; }
  .notebook-page { padding-right:17px; padding-left:17px; }
  .notebook-exam-sheet { right:13px; left:13px; }
  .app-rail { right:6px; bottom:6px; left:6px; height:62px; }
  .app-rail-links { padding:4px 6px; }
  .app-rail-links button { width:44px; height:44px; }
}
@keyframes notebook-mobile-page-flip { 0% { opacity:0; transform:rotateX(0deg); } 7% { opacity:1; } 48% { opacity:1; transform:rotateX(-88deg); } 100% { opacity:0; transform:rotateX(-179deg); } }
@media (prefers-reduced-motion:reduce) { .study-notebook.is-turning .notebook-page-flip { animation:none; } }

/* Icônes dessinées pour reprendre la barre du rendu. */
.app-rail-brand img { width:58px; height:58px; object-fit:cover; border:2px solid rgba(255,241,218,.82); border-radius:50%; box-shadow:0 5px 15px rgba(0,0,0,.3),0 0 0 3px rgba(223,91,94,.2); transition:transform .2s ease,box-shadow .2s ease; }.app-rail-brand:hover img,.app-rail-brand:focus-visible img { transform:scale(1.06); box-shadow:0 7px 18px rgba(0,0,0,.36),0 0 0 4px rgba(255,137,136,.45); }.app-rail-links button svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.55; stroke-linecap:round; stroke-linejoin:round; }.app-rail-links button[data-rail-action="review"] { color:#ff7a70; background:rgba(231,75,75,.19); }.app-rail-links button[data-rail-action="review"]:hover { color:#fff0eb; }

/* Sur ordinateur, le panneau des membres démarre après la barre verticale. */
@media (min-width:900px) { .member-directory { left:104px; } .member-directory-panel { border-radius:0 22px 22px 0; } }

/* Les deux thèmes gardent une ambiance douce, mais ne noient plus l'interface dans le noir. */
body:not(.theme-beta-construction) .topbar,body:not(.theme-beta-construction) .home-ribbon { filter:drop-shadow(0 10px 20px rgba(11,16,27,.14)); }
body.theme-beta-construction .topbar,body.theme-beta-construction .home-ribbon,body.theme-beta-construction .statistics-panel,body.theme-beta-construction .category-card,body.theme-beta-construction .question-card,body.theme-beta-construction .news-card,body.theme-beta-construction .news-article { background-color:rgba(35,45,55,.79); border-color:rgba(197,214,219,.3); }
body.theme-beta-construction .app-rail { background:linear-gradient(180deg,rgba(39,49,58,.96),rgba(25,31,39,.96)); border-color:rgba(236,214,173,.18); }
body.theme-beta-construction .news-ticker { background:linear-gradient(90deg,rgba(47,58,68,.94),rgba(34,43,52,.94)); border-color:rgba(232,190,113,.35); }

/* Le cahier devient un vrai livre ouvert : couverture, tranche et reliure visibles. */
.study-notebook { max-width:1120px; padding:10px; overflow:visible; border:0; border-radius:31px 31px 27px 27px; background:linear-gradient(145deg,#6c3d35,#2a1719 52%,#7a4439); box-shadow:0 12px 0 #160d10,0 27px 44px rgba(0,0,0,.48),inset 0 0 0 2px rgba(255,212,163,.22); }
.notebook-book-cover { position:absolute; z-index:0; inset:0; overflow:hidden; border:1px solid rgba(255,216,164,.3); border-radius:inherit; pointer-events:none; }.notebook-book-cover::before { content:""; position:absolute; inset:8px; border:1px solid rgba(255,222,181,.17); border-radius:24px 24px 20px 20px; }.notebook-book-cover::after { content:""; position:absolute; top:0; bottom:0; left:50%; width:34px; transform:translateX(-50%); background:linear-gradient(90deg,rgba(20,8,10,.65),rgba(180,98,75,.22) 30%,rgba(255,213,160,.28) 50%,rgba(50,16,18,.5) 100%); box-shadow:0 0 22px rgba(0,0,0,.45); }
.notebook-page { z-index:2; min-height:560px; border-top:1px solid rgba(255,255,255,.55); border-bottom:1px solid rgba(105,64,45,.38); box-shadow:inset 0 0 26px rgba(109,75,42,.09); }.notebook-revisions { border-radius:22px 2px 2px 20px; }.notebook-tools { border-radius:2px 22px 20px 2px; }
.notebook-bookmark { position:absolute; z-index:1; bottom:-31px; left:50%; width:20px; height:48px; transform:translateX(-50%); clip-path:polygon(0 0,100% 0,100% 100%,50% 79%,0 100%); background:linear-gradient(90deg,#8f2729,#e06054 48%,#712023); box-shadow:0 7px 8px rgba(0,0,0,.32); }
.study-notebook::before { z-index:5; width:19px; }.study-notebook::after { z-index:6; }.notebook-page-flip { z-index:7; top:10px; bottom:10px; left:10px; width:calc(50% - 10px); }
@media (max-width:760px) { .study-notebook { padding:7px; border-radius:24px 24px 21px 21px; }.notebook-page { min-height:auto; }.notebook-revisions { border-radius:18px 18px 2px 2px; }.notebook-tools { border-radius:2px 2px 18px 18px; }.notebook-page-stack { display:none; }.notebook-bookmark { bottom:-25px; height:39px; }.notebook-page-flip { top:7px; right:7px; left:7px; width:auto; } }

/* Les matières s’ouvrent désormais à l’intérieur du livre. */
.notebook-study-page { position:absolute; z-index:8; inset:10px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:hidden; border-radius:21px; color:#392b21; background:#e6d8bb; box-shadow:inset 0 0 0 1px rgba(109,67,50,.25); }.notebook-study-leaf { min-height:560px; padding:32px 38px; background:repeating-linear-gradient(to bottom,transparent 0 31px,rgba(161,121,70,.17) 32px 33px),linear-gradient(135deg,#fbf4e4,#e6d8bb); }.notebook-study-leaf:first-child { border-radius:20px 2px 2px 20px; }.notebook-study-leaf:last-child { border-radius:2px 20px 20px 2px; }.notebook-study-leaf h3 { margin:3px 0 7px; font-family:"Patrick Hand","Comic Sans MS",cursive; font-size:2.55rem; font-weight:400; }.notebook-study-leaf > p:not(.eyebrow) { margin:0; color:#6d5a4a; font-family:"Patrick Hand","Comic Sans MS",cursive; font-size:1.14rem; line-height:1.2; }.notebook-study-back { margin:0 0 13px; padding:0; border:0; color:#8d4a43; background:transparent; font-family:"Patrick Hand","Comic Sans MS",cursive; font-size:1.1rem; }.notebook-study-back:hover { color:#4e2a27; text-decoration:underline; }.notebook-study-choices { display:grid; gap:10px; margin-top:21px; }.notebook-study-choices button { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 18px; gap:2px 8px; width:100%; min-height:63px; padding:11px 13px; border:1px solid rgba(143,91,67,.31); border-radius:12px; color:#3c2c23; text-align:left; background:rgba(255,250,238,.62); box-shadow:0 3px 0 rgba(103,64,39,.12); transition:transform .18s ease,background .18s ease,border-color .18s ease; }.notebook-study-choices button:hover,.notebook-study-choices button:focus-visible { outline:0; border-color:#b5504a; background:#fff9eb; transform:translateX(4px); }.notebook-study-choices strong { font-family:"Patrick Hand","Comic Sans MS",cursive; font-size:1.34rem; font-weight:400; }.notebook-study-choices small { color:#796758; font-size:.7rem; }.notebook-study-choices b { grid-row:1 / span 2; grid-column:2; align-self:center; color:#a84742; font-size:1.5rem; font-weight:400; }.notebook-study-level { display:flex; flex-direction:column; }.notebook-study-levels { display:grid; gap:12px; margin-top:27px; }.notebook-study-levels button { display:grid; gap:2px; min-height:75px; padding:13px 15px; border:1px solid rgba(143,91,67,.37); border-radius:14px; color:#412d25; text-align:left; background:rgba(255,249,235,.72); box-shadow:0 4px 0 rgba(103,64,39,.13); transition:transform .18s ease,background .18s ease; }.notebook-study-levels button:hover,.notebook-study-levels button:focus-visible { outline:0; background:#fffaf0; transform:translateY(-3px); }.notebook-study-levels strong { font-family:"Patrick Hand","Comic Sans MS",cursive; font-size:1.46rem; font-weight:400; }.notebook-study-levels small { color:#816759; }.notebook-study-level .text-button { align-self:flex-start; margin-top:auto; color:#7b4b43; }
.notebook-study-page[hidden] { display:none !important; }
.study-notebook:has(#notebookStudyPage:not([hidden])) .notebook-page { visibility:hidden; }.study-notebook:has(#notebookStudyPage:not([hidden])) .notebook-page-flip { z-index:12; }
@media (max-width:760px) { .notebook-study-page { inset:7px; display:block; overflow:visible; border-radius:17px; }.notebook-study-leaf { min-height:auto; padding:27px 26px; }.notebook-study-leaf:first-child { border-radius:17px 17px 2px 2px; }.notebook-study-leaf:last-child { min-height:360px; border-radius:2px 2px 17px 17px; }.notebook-study-leaf h3 { font-size:2.25rem; }.notebook-study-choices button { min-height:58px; }.study-notebook:has(#notebookStudyPage:not([hidden])) .notebook-tools { min-height:0; } }

/* Les matières sont inscrites sur les lignes du cahier, pas posées dans des cartes. */
.notebook-subjects { gap:0; margin-top:12px; border-top:1px dashed rgba(142,87,67,.38); }.notebook-subject { min-height:76px; padding:10px 5px 8px; border:0; border-bottom:1px dashed rgba(142,87,67,.38); border-radius:0; background:transparent; box-shadow:none; }.notebook-subject:hover { border-color:rgba(180,80,74,.82); background:rgba(255,250,238,.24); transform:translateX(5px) rotate(-.2deg); }.notebook-subject-icon { width:36px; height:36px; border:0; border-radius:4px; color:#ad4c46; background:transparent; font-family:"Patrick Hand","Comic Sans MS",cursive; font-size:1.6rem; font-weight:400; }.notebook-subject strong { color:#3b2b22; font-family:"Patrick Hand","Comic Sans MS",cursive; font-size:1.72rem; font-weight:400; letter-spacing:.02em; }.notebook-subject small { color:#806a59; font-family:"Patrick Hand","Comic Sans MS",cursive; font-size:1rem; letter-spacing:.01em; }.notebook-subject b { color:#b04b46; font-family:"Patrick Hand","Comic Sans MS",cursive; font-size:2rem; }.notebook-study-choices { gap:0; margin-top:14px; border-top:1px dashed rgba(142,87,67,.38); }.notebook-study-choices button { min-height:71px; padding:10px 5px 8px; border:0; border-bottom:1px dashed rgba(142,87,67,.38); border-radius:0; background:transparent; box-shadow:none; }.notebook-study-choices button:hover,.notebook-study-choices button:focus-visible { border-color:rgba(180,80,74,.82); background:rgba(255,250,238,.24); transform:translateX(5px) rotate(-.2deg); }.notebook-study-choices strong { font-size:1.58rem; }.notebook-study-choices small { font-family:"Patrick Hand","Comic Sans MS",cursive; font-size:.95rem; }.notebook-study-choices b { font-family:"Patrick Hand","Comic Sans MS",cursive; font-size:2rem; }

/* Les deux écritures affichent leur avancement sur leur propre ligne de cahier. */
.notebook-study-choices button:has(.notebook-writing-progress) { min-height:96px; }
.notebook-writing-progress { display:grid; grid-template-columns:27px auto; grid-template-rows:14px 12px; grid-column:1; grid-row:3; column-gap:7px; align-items:center; width:max-content; margin-top:4px; color:#436071; font-family:"DM Sans",sans-serif; text-align:left; }
.notebook-writing-progress i { grid-row:1 / span 2; width:26px; height:26px; border:1px solid rgba(80,118,137,.42); border-radius:50%; background:radial-gradient(circle at center,#fcf5e5 56%,transparent 58%),conic-gradient(#5d9dbe var(--writing-progress),rgba(101,127,141,.19) 0); box-shadow:0 1px 2px rgba(73,51,33,.18); }
.notebook-writing-progress b { grid-column:2; grid-row:1; color:#365c72; font-family:"DM Sans",sans-serif; font-size:.73rem; line-height:1; }.notebook-writing-progress em { grid-column:2; grid-row:2; color:#7a6859; font-family:"Patrick Hand","Comic Sans MS",cursive; font-size:.77rem; font-style:normal; line-height:1; white-space:nowrap; }

/* Post-it final et feuille A4 « Qui suis-je ? ». */
.site-contact-note { position:relative; display:grid; grid-template-columns:1fr auto; width:min(250px,100%); margin:36px 10px 8px auto; padding:26px 24px 21px; overflow:hidden; border:1px solid rgba(88,55,89,.22); border-radius:3px 8px 5px 4px; color:#3f2c45; background:linear-gradient(135deg,#e8c8f1,#c99ad7 88%); box-shadow:4px 5px 0 rgba(89,48,96,.14),10px 15px 25px rgba(4,8,18,.28); text-align:left; transform:rotate(1.5deg); transition:transform .2s ease,box-shadow .2s ease; }
.site-contact-note::before { position:absolute; top:-11px; left:50%; width:82px; height:23px; border:1px solid rgba(255,255,255,.38); background:rgba(255,246,214,.72); box-shadow:0 1px 2px rgba(46,25,53,.16); content:""; transform:translateX(-50%) rotate(-4deg); }.site-contact-note::after { position:absolute; right:-15px; bottom:-15px; width:52px; height:52px; border-radius:50%; background:rgba(255,255,255,.18); content:""; }
.site-contact-note span,.site-contact-note small,.site-contact-note b { position:relative; z-index:1; }.site-contact-note span { grid-column:1; font-family:"Patrick Hand","Comic Sans MS",cursive; font-size:1.75rem; line-height:.9; }.site-contact-note small { grid-column:1; margin-top:8px; color:#62486a; font-family:"Patrick Hand","Comic Sans MS",cursive; font-size:1.04rem; }.site-contact-note b { grid-column:2; grid-row:1 / span 2; align-self:center; color:#7b3d7d; font-size:1.7rem; }.site-contact-note:hover,.site-contact-note:focus-visible { outline:0; transform:translateY(-7px) rotate(0deg); box-shadow:5px 8px 0 rgba(89,48,96,.14),14px 23px 30px rgba(4,8,18,.32); }
.contact-sheet { width:min(780px,100%); min-height:880px; margin:20px auto 46px; padding:66px clamp(28px,7vw,82px); border:1px solid #d5c6a9; border-radius:3px; color:#342a24; background:repeating-linear-gradient(to bottom,transparent 0 34px,rgba(156,116,80,.16) 35px 36px),linear-gradient(135deg,#fffef7,#eee5d5); box-shadow:0 20px 46px rgba(0,0,0,.32),inset 0 0 32px rgba(115,78,45,.07); }.contact-sheet header { padding-bottom:22px; border-bottom:2px solid rgba(166,76,70,.5); }.contact-sheet .eyebrow { color:#b04d48; }.contact-sheet h1 { color:#372a22; font-family:"Patrick Hand","Comic Sans MS",cursive; font-size:clamp(3rem,8vw,4.75rem); font-weight:400; letter-spacing:.01em; }.contact-introduction { display:grid; gap:8px; margin:27px 0 31px; font-family:"Patrick Hand","Comic Sans MS",cursive; font-size:1.42rem; line-height:1.25; }.contact-introduction p { margin:0; }.contact-rule { height:2px; margin:0 -7px 27px; background:linear-gradient(90deg,transparent,#c5655c 10% 90%,transparent); }.contact-form { display:grid; gap:10px; font-family:"Patrick Hand","Comic Sans MS",cursive; font-size:1.18rem; }.contact-form > .eyebrow { margin:0 0 3px; }.contact-form label { display:grid; gap:4px; color:#49382e; }.contact-form label small { color:#816f62; font-family:"DM Sans",sans-serif; font-size:.69rem; }.contact-form select,.contact-form input,.contact-form textarea { width:100%; padding:10px 12px; border:1px solid rgba(139,99,71,.42); border-radius:8px; color:#392d25; background:rgba(255,253,245,.82); font:400 1.05rem "DM Sans",sans-serif; }.contact-form textarea { min-height:154px; resize:vertical; line-height:1.45; }.contact-form select:focus,.contact-form input:focus,.contact-form textarea:focus { outline:3px solid rgba(209,105,96,.25); border-color:#b65049; }.contact-form .primary-button { justify-self:start; min-width:170px; margin-top:9px; }.contact-status { margin:4px 0 0; padding:9px 11px; border:1px solid #a98b72; border-radius:7px; color:#534337; background:rgba(255,250,238,.72); font-family:"DM Sans",sans-serif; font-size:.82rem; }.contact-status.error { border-color:#bf6264; color:#8d3035; background:#fae3e0; }.contact-status.success { border-color:#75a37b; color:#2e6741; background:#e2f3e3; }
@media (max-width:760px) { .site-contact-note { width:min(250px,88%); margin:29px auto 6px; }.contact-sheet { min-height:0; margin-top:12px; padding:42px 22px 48px; }.contact-introduction { font-size:1.28rem; }.contact-form .primary-button { width:100%; } }

/* La feuille part désormais de la page droite et vient se poser à gauche. */
.notebook-page-flip { right:10px; left:50%; width:calc(50% - 10px); transform-origin:left center; }.study-notebook.is-turning .notebook-page-flip { animation-name:notebook-page-turn-right-to-left; }
@keyframes notebook-page-turn-right-to-left { 0% { opacity:0; transform:rotateY(0deg); } 7% { opacity:1; } 48% { opacity:1; transform:rotateY(-88deg); } 100% { opacity:0; transform:rotateY(-179deg); } }
@media (max-width:760px) { .notebook-page-flip { top:7px; right:7px; left:7px; width:auto; transform-origin:center bottom; }.study-notebook.is-turning .notebook-page-flip { animation-name:notebook-mobile-page-flip; } }

/* Correctifs mobiles : le cahier se feuillette horizontalement, sans pages empilées. */
.mobile-notebook-hint { display:none; }
@media (max-width:760px) {
  .mobile-notebook-hint {
    display:block;
    margin:0 2px 10px;
    color:var(--muted);
    font-size:.76rem;
    text-align:right;
  }
  .study-notebook {
    display:flex;
    align-items:stretch;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-behavior:smooth;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    overscroll-behavior-x:contain;
  }
  .study-notebook::-webkit-scrollbar { display:none; }
  .study-notebook::before,.study-notebook::after { display:none; }
  .study-notebook > .notebook-page {
    flex:0 0 100%;
    width:100%;
    min-width:100%;
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }
  .notebook-revisions,.notebook-tools {
    min-height:540px;
    border-radius:18px;
    padding:27px 22px 30px;
  }
  .notebook-revisions { margin-right:7px; }
  .notebook-tools { margin-left:7px; }
  .notebook-revisions::before { left:14px; }
  .notebook-tools::before { right:14px; }
  .notebook-book-cover::after { display:none; }
  .notebook-bookmark { left:28px; transform:none; }

  /* La feuille fait partie du flux de la page : elle ne peut plus sortir du livre. */
  .notebook-exam-sheet,
  .study-notebook[data-notebook-view="exam"] .notebook-exam-sheet {
    position:relative;
    inset:auto;
    width:auto;
    max-width:100%;
    margin:18px 0 0;
    padding:18px 16px;
    transform:none;
  }
  .notebook-tools,
  .study-notebook[data-notebook-view="exam"] .notebook-tools { min-height:0; }
  .notebook-exam-sheet select { min-width:0; max-width:100%; }

  /* Neko reste visible sans recouvrir la navigation du bas. */
  .neko-sensei {
    top:76px;
    right:10px;
    bottom:auto;
    align-items:flex-start;
  }
  .neko-sensei img { width:68px; height:68px; }
  .neko-bubble {
    max-width:min(175px,calc(100vw - 104px));
    padding:9px 11px;
    border-radius:14px 3px 14px 14px;
    font-size:.76rem;
  }
  .neko-sensei > button { top:-7px; right:-3px; }
}

@media (max-width:420px) {
  .notebook-revisions,.notebook-tools { padding:24px 17px 27px; }
  .notebook-exam-sheet,
  .study-notebook[data-notebook-view="exam"] .notebook-exam-sheet { padding:16px 13px; }
  .notebook-exam-sheet h4 { font-size:1.65rem; }
  .notebook-exam-sheet p:not(.eyebrow) { font-size:.94rem; }
  .notebook-exam-choices label { grid-template-columns:64px minmax(0,1fr); }
  .neko-sensei { top:68px; right:7px; }
  .neko-sensei img { width:61px; height:61px; }
  .neko-bubble { max-width:min(155px,calc(100vw - 91px)); font-size:.71rem; }
}

.news-author > .custom-avatar-stack { flex:none; width:64px; height:64px; overflow:hidden; border:3px solid #b7b8bd; border-radius:50%; background:#fffaf6; }
@media (max-width:480px) { .news-author > .custom-avatar-stack { width:54px; height:54px; } }

/* Actualités : une fiche d'identité, puis une fiche de lecture séparée. */
.news-article {
  display:grid;
  gap:20px;
  min-height:0;
  padding:0;
  border:0;
  background:transparent;
}
.news-article-heading-card,.news-article-content-card {
  padding:28px;
  border:1px solid var(--line);
  border-radius:20px;
  background:linear-gradient(140deg,#202229,#17191d);
  box-shadow:0 14px 30px rgba(0,0,0,.18);
}
.news-article-heading-card { display:grid; gap:0; }
.news-article-content-card .news-body { max-width:none; }
.news-article-content-card .news-body > :first-child { margin-top:0; }
.news-article-content-card .news-body > :last-child { margin-bottom:0; }

/* La liste devient un petit tableau de post-it punaisés. */
.news-list { gap:19px; padding:11px 8px 22px; }
.news-card {
  overflow:visible;
  min-height:126px;
  padding:30px 18px 18px;
  border:0;
  border-radius:3px 5px 4px 2px;
  color:#3d3326;
  background:linear-gradient(145deg,#f7e596,#e6c968);
  box-shadow:3px 5px 0 rgba(64,42,20,.2),9px 13px 22px rgba(0,0,0,.25);
  transform:rotate(-1.2deg);
}
.news-card::before {
  content:"";
  position:absolute;
  z-index:2;
  top:8px;
  left:50%;
  width:15px;
  height:15px;
  border:2px solid rgba(96,23,27,.5);
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#ff9b92 0 19%,#c84046 22% 65%,#7e202a 68%);
  box-shadow:0 3px 4px rgba(48,25,20,.35);
  transform:translateX(-50%);
}
.news-card::after {
  content:"";
  position:absolute;
  top:21px;
  left:50%;
  width:1px;
  height:10px;
  background:rgba(76,48,33,.45);
  transform:rotate(8deg);
}
.news-card:nth-child(even) { background:linear-gradient(145deg,#cce2bd,#aeca9e); transform:rotate(1deg); }
.news-card:nth-child(3n) { background:linear-gradient(145deg,#efcfdf,#d9aac2); transform:rotate(-.4deg); }
.news-card small,.news-card span { color:#6f604d; }
.news-card strong { color:#3b2d22; font-family:"Patrick Hand","Comic Sans MS",cursive; font-size:1.28rem; line-height:1.05; }
.news-card:hover,.news-card.selected {
  border:0;
  color:#30251d;
  background:linear-gradient(145deg,#fff0aa,#e9ce6b);
  outline:3px solid rgba(255,117,122,.72);
  transform:translateY(-4px) rotate(0deg);
}

/* L'oral reste visible dans le programme, mais ne peut plus être lancé. */
.notebook-subject-oral:disabled {
  cursor:not-allowed;
  opacity:.52;
  filter:saturate(.55);
}
.notebook-subject-oral:disabled:hover { border-color:rgba(143,91,67,.32); background:rgba(255,250,238,.63); transform:none; }
.notebook-subject-lock { color:#755f4d !important; font-size:1rem !important; }
.exam-subject-locked { cursor:not-allowed; opacity:.5; }

@media (max-width:680px) {
  .news-list {
    display:flex;
    gap:16px;
    padding:10px 8px 18px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
  }
  .news-list::-webkit-scrollbar { display:none; }
  .news-card { flex:0 0 min(235px,78vw); scroll-snap-align:start; }
  .news-article-heading-card,.news-article-content-card { padding:20px 18px; border-radius:17px; }
}

/* Émojis Neko-sensei : grands dans les messages, compacts dans les aperçus. */
.custom-emoji {
  display:inline-block;
  width:2.35em;
  height:2.35em;
  margin:0 .08em;
  object-fit:contain;
  vertical-align:middle;
}
.custom-emoji-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.custom-emoji-grid button { min-height:50px; }
.custom-emoji-grid img { width:44px; height:44px; object-fit:contain; }
.message-emoji-picker { width:280px; max-width:calc(100vw - 24px); }
.message-bubble .custom-emoji { width:48px; height:48px; }
.conversation-row small .custom-emoji { width:20px; height:20px; margin:0; }
.news-comment-list .custom-emoji { width:42px; height:42px; }
.news-comment-emoji-wrap { position:relative; flex:none; }
.news-comment-emoji-picker { right:0; bottom:53px; }
#newsCommentForm {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:end;
}
#newsCommentForm input { height:43px; }
.news-comment-emoji-button { font-size:1.08rem; }

@media (max-width:420px) {
  #newsCommentForm { gap:6px; }
  #newsCommentForm .secondary-button { padding-inline:10px; }
  .news-comment-emoji-picker { right:-76px; }
  .message-bubble .custom-emoji { width:42px; height:42px; }
}

.member-profile-title-badge { z-index:2; top:24px; left:28px; }
@media (max-width:720px) {
  .member-profile-title-badge { top:18px; left:20px; max-width:calc(100% - 40px); }
  .member-profile-content { padding-top:112px; }
}

/* Barre supérieure plus confortable sur ordinateur. */
.member-directory-button { position:relative; }
.member-directory-button .member-directory-icon { display:grid; place-items:center; min-width:0; width:auto; height:auto; padding:0; color:inherit; background:transparent; font-size:1rem; line-height:1; }
.member-directory-button #memberDirectoryCount { position:absolute; top:-6px; right:-7px; }
@media (min-width:900px) {
  .topbar { min-height:64px; gap:11px; margin-bottom:68px; }
  .topbar .brand { gap:13px; font-size:1.2rem; }
  .topbar .brand-mark { width:48px; height:48px; }
  .topbar .furigana-toggle,.topbar .beta-version { display:flex; align-items:center; min-height:48px; padding:0 16px; font-size:.9rem; }
  .topbar .notification-button,.topbar .message-top-button { width:48px; height:48px; margin-right:0; font-size:1.2rem; }
  .topbar .member-directory-button { display:grid; place-items:center; width:48px; height:48px; min-height:48px; margin-right:0; padding:0; gap:0; border-radius:50%; }
  .topbar .member-directory-button .member-directory-icon { font-size:1.18rem; }
  .topbar .profile-button { min-height:48px; gap:11px; padding:5px 14px 5px 5px; }
  .topbar .profile-button > #profileBadge { width:40px; height:40px; }
  .topbar .profile-button > span:nth-child(2) { font-size:.98rem; }
  .topbar .profile-chevron { font-size:1.1rem; }
}
