/* TSSR HUB : source des tokens et des composants communs. Les mises en page métier sont conservées. */
@font-face{font-family:HubReading;src:url('../fonts/source-sans-3.woff2') format('woff2');font-weight:200 900;font-display:swap}
@font-face{font-family:HubCode;src:url('../fonts/ibm-plex-mono.woff2') format('woff2');font-weight:400;font-display:swap}
html:root {
 --hub-bg:#101621;--hub-surface:#18212f;--hub-surface-raised:#1d2839;--hub-surface-soft:#131c29;
 --hub-text:#edf0f5;--hub-muted:#b1bdd0;--hub-border:#455269;--hub-control-border:#71819a;--hub-accent:#bbb5e9;--hub-on-accent:#151d2d;
 --hub-info:#a7c2ed;--hub-success:#9acbb0;--hub-warning:#e7c489;--hub-error:#ed9eaa;
 --hub-font:HubReading,'Segoe UI',system-ui,sans-serif;--hub-heading:'Segoe UI',system-ui,sans-serif;--hub-code:HubCode,Consolas,monospace;
 --hub-radius:10px;--hub-button-radius:8px;--hub-space-1:4px;--hub-space-2:8px;--hub-space-3:12px;--hub-space-4:16px;--hub-space-6:24px;--hub-space-8:32px;
 --bg:var(--hub-bg);--panel:var(--hub-surface);--panel2:var(--hub-surface-raised);--panel3:#253249;--panel-2:var(--panel2);--panel-3:var(--panel3);
 --text:var(--hub-text);--muted:var(--hub-muted);--line:var(--hub-border);--accent:var(--hub-accent);--violet:var(--hub-accent);--pink:var(--hub-accent);
 --blue:var(--hub-info);--cyan:var(--hub-info);--green:var(--hub-success);--amber:var(--hub-warning);--warn:var(--hub-warning);--red:var(--hub-error);
 --radius:var(--hub-radius);--ux-radius:var(--hub-radius);--ux-rail:236px;--shadow:0 8px 24px #0002;
 --account-bg:var(--hub-bg);--account-panel:var(--hub-surface);--account-panel-soft:var(--hub-surface-raised);--account-line:var(--hub-border);--account-text:var(--hub-text);--account-muted:var(--hub-muted);--account-violet:var(--hub-accent);--account-pink:var(--hub-accent);--account-cyan:var(--hub-info);--account-green:var(--hub-success);--account-danger:var(--hub-error);
 color-scheme:dark;background:var(--hub-bg);
}
body.hub-identity {background:var(--hub-bg);color:var(--hub-text);font-family:var(--hub-font);font-size:17px;line-height:1.65}
body.hub-identity.ux-platform{margin:0}
.hub-identity .ux-member-header{position:sticky;top:0;z-index:45;display:flex;justify-content:flex-start;align-items:center;gap:8px;height:68px;min-height:68px;padding:0 32px;box-sizing:border-box;border-bottom:1px solid var(--hub-border);background:var(--hub-bg)}
.hub-identity .ux-member-header .ux-account-actions{display:flex;justify-content:flex-start;align-items:center;flex-wrap:nowrap;flex:0 0 auto;gap:8px;margin:0;padding:0;order:0}
body.hub-identity .ux-member-header .ux-account-actions>:is(a,button){display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;flex:0 0 auto;width:auto;min-width:0;height:44px;min-height:44px;margin:0;padding:8px 14px;font:650 .87rem/1.4 var(--hub-font);text-decoration:none}
.hub-identity .ux-secondary-header{top:68px!important}
.hub-identity .ux-empty-header{display:none!important}
@media(max-width:900px){.hub-identity .ux-member-header{top:64px;padding:0 14px}.hub-identity.ux-platform .ux-secondary-header{top:132px!important}.hub-identity .ux-member-header>.ux-back-button{min-width:44px;width:44px;padding:8px}.hub-identity .ux-member-header>.ux-back-button span:last-child{display:none}}
.hub-identity :is(h1,h2,h3,h4,h5,h6){font-family:var(--hub-heading);letter-spacing:-.025em;line-height:1.3;color:var(--hub-text)}
.hub-identity :is(h1),.hub-identity .bank-hero h1{font-size:clamp(1.9rem,3.2vw,3.2rem)!important;font-weight:750;line-height:1.16!important}
.hub-identity :is(h2){font-size:clamp(1.35rem,2vw,1.85rem);font-weight:700}
.hub-identity :is(h3){font-size:1.18rem;font-weight:650}
.hub-identity :is(button,input,textarea,select){font-family:var(--hub-font)!important}
.hub-identity :is(code,pre,kbd,samp){font-family:var(--hub-code)}
.hub-identity :is(button,.btn,.button,.navbtn,.tab,.chip){border-radius:var(--hub-button-radius)!important}
.hub-identity :is(.btn,.button,.navbtn,.tab){font-weight:650;line-height:1.5;transition:background-color .16s,border-color .16s,color .16s;box-shadow:none}
.hub-identity :is(.btn,.button){min-height:44px;padding:10px 16px;border:1px solid var(--hub-control-border);background:var(--hub-surface-raised);color:var(--hub-text)}
.hub-identity :is(.btn.primary,.button.primary,.btn-primary,.training-primary){background:var(--hub-accent);border-color:var(--hub-accent);color:var(--hub-on-accent)}
.hub-identity :is(.btn,.button):hover{border-color:var(--hub-accent)}
.hub-identity :is(.panel,.card,.hero,.library-hero,.quick-card,.subject-card,.category,.account-card,.account-panel,.learning-subject,.training-context,.network-diagram){border-color:var(--hub-border);border-radius:var(--hub-radius);box-shadow:none;background-color:var(--hub-surface)}
.hub-identity :is(.hero,.library-hero,.glossary-hero){background-image:none}
.hub-identity :is(.topbar,.top,.resource-nav){background:var(--hub-bg);border-color:var(--hub-border)}
.hub-identity :is(.muted,.sub,.subtitle,.lead,.intro){color:var(--hub-muted)}
.hub-identity :is(a,button,summary,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--hub-info);outline-offset:3px}
.hub-identity :is(input,select,textarea){accent-color:var(--hub-accent)}
.hub-identity :is(input:not([type=checkbox]):not([type=radio]),select,textarea){border-color:var(--hub-control-border)}
.hub-identity :is(input,textarea)::placeholder{color:#a5b4ca;opacity:1}
.hub-identity details>summary{position:relative;cursor:pointer;list-style:none;padding:14px 42px 14px 16px;min-height:44px;width:100%;box-sizing:border-box;border-radius:var(--hub-button-radius);transition:background-color .16s}
.hub-identity :is(.glossary-hero,.glossary-command,.glossary-card,.glossary-reference-audit,.glossary-theme-card,.glossary-cat-group,.glossary-home-card,.glossary-confusion-panel){background-color:var(--hub-surface);border-color:var(--hub-border);border-radius:var(--hub-radius);box-shadow:none}
.hub-identity .glossary-workspace{--gl-bg:var(--hub-bg);--gl-panel:var(--hub-surface);--gl-line:var(--hub-border);--gl-text:var(--hub-text);--gl-muted:var(--hub-muted);--gl-accent:var(--hub-accent);--glossary-panel:var(--hub-surface);--glossary-panel2:var(--hub-surface-raised);--glossary-line:var(--hub-border);--glossary-muted:var(--hub-muted);--glossary-pink:var(--hub-accent);--glossary-violet:var(--hub-accent);--glossary-cyan:var(--hub-info);--glossary-green:var(--hub-success)}
.hub-identity .glossary-workspace :is(.glossary-sidebar,.glossary-start-panel,.glossary-entry){background:var(--hub-surface);border-color:var(--hub-border);border-radius:var(--hub-radius)}
.hub-identity details>summary::-webkit-details-marker{display:none}
.hub-identity details>summary::after{content:'';position:absolute;right:18px;top:21px;width:7px;height:7px;border-right:2px solid var(--hub-accent);border-bottom:2px solid var(--hub-accent);transform:rotate(45deg);transition:transform .16s}
.hub-identity details[open]>summary::after{transform:rotate(225deg);top:24px}
.hub-identity details>summary:hover{background:#bbb5e90a}
.hub-identity details>summary :is(.chevron,.category-chevron){display:none}
.hub-identity details[open]>:not(summary){animation:hub-reveal .16s ease-out}
@keyframes hub-reveal{from{opacity:.65;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}
.hub-logo {display:block;width:184px;height:auto;max-width:100%;object-fit:contain}
.hub-identity .brand.hub-brand,.hub-identity .account-brand.hub-brand{display:inline-flex;align-items:center;padding:4px 0;line-height:1;text-decoration:none;background:none}
.hub-identity .brand.hub-brand:before,.hub-identity .brand.hub-brand:after{display:none}
.hub-identity.ux-platform header .hub-brand{display:none}
body.hub-identity.ux-platform .ux-rail {inset:0 auto 0 0;width:var(--ux-rail);height:100dvh;padding:20px 14px;box-sizing:border-box;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;background:var(--hub-bg);border:0;border-right:1px solid var(--hub-border);z-index:120;font-family:var(--hub-heading)}
body.hub-identity.ux-platform .ux-rail-brand{display:flex;align-items:center;justify-content:flex-start;min-height:62px;padding:7px;margin:0 0 24px;background:transparent;border:1px solid transparent;border-radius:var(--hub-radius);box-shadow:none}
.hub-identity .ux-rail-brand:after{display:none}
body.hub-identity.ux-platform .ux-rail .ux-rail-nav{display:grid!important;grid-template-columns:minmax(0,1fr);height:auto;gap:8px;overflow:visible;flex:none;scroll-snap-type:none}
body.hub-identity.ux-platform .ux-rail :is(a.ux-rail-link,button.ux-rail-link,.ux-nav-group>summary){display:flex!important;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;flex:none;width:100%;max-height:none;min-height:48px;padding:11px 13px;border:1px solid var(--hub-border);border-radius:var(--hub-button-radius);background:var(--hub-surface-soft);color:var(--hub-muted);font-size:.87rem!important;font-weight:550;line-height:1.5;text-decoration:none;white-space:normal;box-sizing:border-box;text-align:left;transition:background-color .16s,border-color .16s,color .16s}
body.hub-identity.ux-platform .ux-rail :is(.ux-rail-link,.ux-nav-group>summary):hover{background:var(--hub-surface-raised);color:var(--hub-text);border-color:#8c8ab5}
body.hub-identity.ux-platform .ux-rail .ux-rail-link[aria-current=page]{background:#bbb5e91a;border-color:var(--hub-accent);color:var(--hub-text);box-shadow:inset 3px 0 var(--hub-accent)}
body.hub-identity.ux-platform .ux-rail .ux-rail-link span{display:block!important;font-size:inherit!important}
body.hub-identity.ux-platform .ux-rail .ux-rail-link span:after{content:none!important}
.hub-nav-icon{width:24px;height:24px;object-fit:contain;flex:0 0 24px;image-rendering:auto}
body.hub-identity.ux-platform .ux-rail .ux-nav-group{display:block!important;margin:0;padding:0;border:0}
body.hub-identity.ux-platform .ux-rail .ux-nav-group>summary{padding-right:38px;color:var(--hub-text)}
.hub-identity .ux-nav-group>summary i{display:none}
.hub-identity .ux-nav-group.has-active>summary{border-color:#8c8ab5;background:#bbb5e90c}
body.hub-identity.ux-platform .ux-rail .ux-nav-sub{display:grid;gap:7px;margin:8px 0 0 12px;padding:0 0 0 9px;border-left:1px solid var(--hub-border)}
body.hub-identity.ux-platform .ux-rail .ux-nav-sub .ux-rail-link{min-height:44px;padding:9px;font-size:.8rem!important;gap:9px}
.hub-identity .ux-nav-sub .hub-nav-icon{width:21px;height:21px;flex-basis:21px}
body.hub-identity.ux-platform .ux-rail .ux-rail-search{display:grid;margin:0 0 20px;gap:8px}
.hub-identity .ux-rail-search label{font-size:.72rem;color:var(--hub-muted)}
.hub-identity .ux-rail-search input{height:44px;border:1px solid var(--hub-border);border-radius:var(--hub-button-radius);background:var(--hub-surface-soft);font-size:.8rem}
body.hub-identity.ux-platform .ux-rail .ux-mobile-search{display:none!important}
.hub-identity .ux-rail-bottom{display:block;margin-top:auto;padding-top:24px}
.hub-mobile-bar,.hub-drawer-backdrop,.hub-drawer-close{display:none}
.hub-identity .ux-tools-panel{background:var(--hub-surface);border-color:var(--hub-border)}
.hub-identity .note-format-toolbar{background:var(--hub-surface);border-color:var(--hub-border)}
.hub-identity .note-format-button{background:var(--hub-surface-raised);color:var(--hub-text);border-color:var(--hub-control-border)}
@media(max-width:1200px){.hub-identity .note-format-typography{grid-template-columns:repeat(2,minmax(0,1fr))}}
.hub-identity .subnet-training{grid-template-columns:minmax(0,1fr)}
.hub-identity .subnet-training>*{min-width:0}
.hub-identity .subnet-training .sub-stack{grid-template-columns:minmax(0,1fr);min-width:0}
.hub-identity .subnet-training .sub-panel{min-width:0;max-width:100%}
.hub-identity .review-hub-review{grid-template-columns:minmax(0,1fr)}
.hub-identity :is(.review-hub-review,.review-review-toolbar,.review-review-filters)>*{min-width:0;max-width:100%}
.hub-identity .review-hub-review .btn{white-space:normal;overflow-wrap:anywhere}
.hub-identity .windows-workshop-shell{grid-template-columns:minmax(0,1fr)}
.hub-identity :is(.windows-workshop-shell,.windows-workshop-workspace)>*{min-width:0;max-width:100%}
.hub-identity .windows-workshop-actions .btn{white-space:normal;overflow-wrap:anywhere}
@media(min-width:901px){.hub-identity.ux-platform{padding-left:var(--ux-rail)}.hub-identity .ux-search-panel,.hub-identity .ux-tools-panel{left:calc(var(--ux-rail) + 12px)}body.hub-identity .ux-rail[aria-modal]{visibility:visible}}
@media(max-width:900px){
 body.hub-identity.ux-platform{padding-left:0;padding-top:64px;padding-bottom:20px}
 .hub-identity .hub-mobile-bar{display:flex;position:fixed;inset:0 0 auto;height:64px;z-index:60;padding:8px 14px;align-items:center;justify-content:space-between;gap:12px;background:var(--hub-bg);border-bottom:1px solid var(--hub-border);box-sizing:border-box}
 .hub-identity.ux-platform :is(.topbar,.resource-nav,.top){top:64px!important;z-index:40!important}html{scroll-padding-top:144px}
 .hub-mobile-bar .hub-logo{width:164px}.hub-mobile-bar>a{display:block;line-height:1}
 .hub-identity .hub-menu-toggle,.hub-identity .hub-drawer-close{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:9px 12px;background:var(--hub-surface);border:1px solid var(--hub-border);border-radius:var(--hub-button-radius);color:var(--hub-text);font-size:.85rem}
 body.hub-identity.ux-platform .ux-rail{width:min(310px,calc(100vw - 40px));transform:translateX(-105%);visibility:hidden;transition:transform .2s,visibility .2s;padding-top:14px;border-right:1px solid var(--hub-border)}
 body.hub-identity.hub-menu-open .ux-rail{transform:translateX(0);visibility:visible}
 body.hub-identity:not(.hub-menu-open) .ux-rail{display:none}
 body.hub-identity.hub-menu-open .ux-rail{animation:hub-drawer-enter .2s ease-out}
 .hub-identity .hub-drawer-close{display:flex;margin:0 0 12px auto;width:44px;padding:9px;flex-shrink:0}
 .hub-identity .hub-drawer-backdrop:not([hidden]){display:block;position:fixed;inset:0;background:#060c18c9;backdrop-filter:blur(2px);z-index:110}
 body.hub-menu-open{overflow:hidden}
 body.hub-menu-open .member-chat{visibility:hidden}
 .hub-identity .ux-rail-bottom{display:block}
 .hub-identity .ux-tools-panel{position:static;width:auto;margin:12px 0;max-height:none;box-shadow:none}
 .hub-identity .ux-search-panel{inset:76px 12px 12px;width:auto;max-height:calc(100dvh - 88px);z-index:130}
 body.hub-identity.ux-platform .member-chat{bottom:16px}body.hub-identity.ux-platform .member-chat .chat-panel{bottom:76px}
}
@keyframes hub-drawer-enter{from{transform:translateX(-100%)}to{transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.hub-identity *,.hub-identity *:before,.hub-identity *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Apprendre : accordéons et cartes alignés sur les composants communs. */
.hub-identity .home .hub-accordion-grid{gap:16px}
.hub-identity .home .hub-category{background:var(--hub-surface);border:1px solid var(--hub-border);border-radius:var(--hub-radius);box-shadow:none}
.hub-identity .home .hub-category-toggle{grid-template-columns:36px minmax(0,1fr) auto 24px;gap:16px;min-height:88px;padding:20px;background:transparent;border-radius:0!important}
.hub-identity .home .hub-category-toggle:hover,.hub-identity .home .hub-category-toggle[aria-expanded=true]{background:var(--hub-surface-raised)}
.hub-identity .home .hub-category-index{width:36px;height:36px;background:var(--hub-surface-soft);border:1px solid var(--hub-border);border-radius:8px;color:var(--hub-accent);box-shadow:none}
.hub-identity .home .hub-category-title{font-family:var(--hub-heading);font-size:1rem;font-weight:650;line-height:1.45;color:var(--hub-text);letter-spacing:-.01em}
.hub-identity .home .hub-category-desc{font-size:.85rem;line-height:1.65;margin-top:6px;color:var(--hub-muted)}
.hub-identity .home .hub-category-count{padding:6px 10px;background:var(--hub-surface-soft);border:1px solid var(--hub-border);border-radius:8px;color:var(--hub-muted);font-size:.75rem;line-height:1.5}
.hub-identity .home .hub-category-chevron{width:24px;height:24px;border:0;background:none;color:var(--hub-accent);font-size:0;box-shadow:none}
.hub-identity .home .hub-category-chevron:after{content:'';width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg)}
.hub-identity .home .hub-category.open .hub-category-chevron{background:none;color:var(--hub-accent)}
.hub-identity .home .hub-resource-list{padding:18px;gap:14px}
.hub-identity .home .hub-resource:nth-child(n){padding:0;margin:0;border:1px solid var(--hub-border);border-radius:var(--hub-button-radius);background:var(--hub-surface-soft)}
.hub-identity .home .hub-resource-open{min-height:132px;padding:18px;gap:14px;background:transparent;grid-template-columns:38px minmax(0,1fr) 20px}
.hub-identity .home .hub-resource-open:hover{background:var(--hub-surface-raised);transform:none}
.hub-identity .home .hub-resource-main{display:grid;gap:8px}
.hub-identity .home .hub-resource-title{font-family:var(--hub-heading);font-size:.95rem;line-height:1.5}
.hub-identity .home .hub-resource-desc{font-size:.85rem;line-height:1.65;margin:0}
.hub-identity .home .hub-resource-meta{display:flex;flex-wrap:wrap;gap:8px 12px;margin:0;line-height:1.6}
.hub-identity .home .hub-resource-icon{background:var(--hub-surface);border-color:var(--hub-border);border-radius:8px}
.hub-identity .home .training-home-links{gap:16px;border:0;border-radius:0;background:none;overflow:visible;margin:28px 0}
.hub-identity .home .training-home-links>a{display:grid;gap:12px;padding:24px;border:1px solid var(--hub-border);border-radius:var(--hub-radius);background:var(--hub-surface)}
.hub-identity .home .training-home-links>a span{line-height:1.7}
.hub-identity .home .training-history{margin:28px 0 32px}
.hub-identity .home .library-section-head{margin-bottom:24px}
.hub-identity .home .library-section-head h2{margin:12px 0}
.hub-identity .home .library-section-head p{line-height:1.75}
.hub-identity .home .hub-toolbar{padding-bottom:24px}
.hub-identity .home .hub-toolbar-summary{display:grid;gap:6px}
.hub-identity.public-formation .hero{background:transparent;border:0;border-radius:0;box-shadow:none}
@media(max-width:900px){.hub-identity .home .training-home-links{grid-template-columns:minmax(0,1fr)}}
@media(max-width:650px){
 .hub-identity .home .hub-category-toggle{grid-template-columns:32px minmax(0,1fr) 24px;gap:10px 12px;padding:18px;min-height:88px}
 .hub-identity .home .hub-category-index{width:32px;height:32px}
 .hub-identity .home .hub-category-count{grid-column:2;grid-row:2;justify-self:start;margin:0}
 .hub-identity .home .hub-category-chevron{grid-column:3;grid-row:1}
 .hub-identity .home .hub-resource-list{padding:14px;gap:12px}
 .hub-identity .home .hub-resource-open{padding:16px;grid-template-columns:minmax(0,1fr) 20px;gap:12px;min-height:0}
 .hub-identity .home .hub-resource-icon{display:none}
 .hub-identity .home .training-home-links>a{padding:20px}
}
.hub-identity [data-pm-unread]{display:inline-flex;justify-content:center;align-items:center;margin-left:auto;min-width:22px;height:22px;padding:1px 5px;box-sizing:border-box;border-radius:6px;background:var(--hub-accent);color:var(--hub-on-accent);font-size:.72rem;line-height:1.2}
.hub-identity [data-pm-unread][hidden]{display:none!important}
.hub-identity .ux-tools-panel a[data-ux-private]{display:flex;align-items:center;gap:12px}
.hub-identity .ux-tools-panel a[aria-current=page]{background:#bbb5e91a;border:1px solid var(--hub-accent);color:var(--hub-text)}
.hub-identity .course-note{padding:24px}
.hub-identity .course-note h2{margin:0 0 14px}
.hub-identity .course-note p{margin:0;line-height:1.8}

/* Direction artistique du 4 novembre : repères éditoriaux et icônes fonctionnelles. */
.hub-identity .home .hub-resource-list{display:block;padding:0 20px}
.hub-identity .home .hub-resource:nth-child(n){border:0;border-top:1px solid var(--hub-border);border-radius:0;background:transparent}
.hub-identity .home .hub-resource:first-child{border-top:0}
.hub-identity .home .hub-resource-open{grid-template-columns:minmax(0,1fr) 20px;min-height:0;padding:22px 4px}
.hub-identity .home .hub-resource-main{gap:6px}
.hub-identity .home .hub-resource-number{font-family:var(--hub-code,monospace);color:var(--hub-accent);font-size:.75rem;letter-spacing:.08em}
.hub-identity .home .hub-resource-title{font-size:1.05rem}
.hub-identity .home .training-home-links{display:block;border-block:1px solid var(--hub-border)}
.hub-identity .home .training-home-links>a{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 32px;border:0;border-bottom:1px solid var(--hub-border);border-radius:0;padding:22px 4px;background:transparent}
.hub-identity .home .training-home-links>a:last-child{border-bottom:0}
.hub-identity .home .training-home-links>a span{text-align:right}
.hub-identity .home .training-home-links>a:hover{background:var(--hub-surface-raised)}
.training-route-repere{margin:28px 0;border-block:1px solid var(--hub-border);padding:0 4px}
.training-route-repere>summary{padding:20px 0;cursor:pointer;font-weight:600;color:var(--hub-accent);line-height:1.6}
.training-route-body{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:32px;padding:8px 0 28px;align-items:center}
.training-route-body figure{margin:0}.training-route-body img{display:block;width:100%;height:auto}
.training-route-body figcaption{font-size:.8rem;color:var(--hub-muted);line-height:1.6;margin-top:12px}
.training-route-body h2{font-size:1.5rem;line-height:1.4}.training-route-body li{margin:12px 0;line-height:1.75}.training-route-body p{line-height:1.75}
.hub-identity .account-resource-card{grid-template-columns:minmax(0,1fr) 24px}
.hub-identity .topbar .nav-menu-item{grid-template-columns:minmax(0,1fr)}
.hub-identity .subject-id{min-width:32px;justify-content:center}
.hub-identity .extra-collection-summary{grid-template-columns:minmax(0,1fr) auto}
body.hub-identity.bank-refresh .quick-card{--quick:var(--hub-accent);display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:8px;min-height:0;border:1px solid var(--hub-border);border-top:2px solid var(--hub-accent);border-radius:8px;padding:24px 20px;background:var(--hub-surface)}
body.hub-identity.bank-refresh .quick-card strong,body.hub-identity.bank-refresh .quick-card small{margin:0}
body.hub-identity.bank-refresh .subject-id b{grid-row:1}
.hub-identity .story-icon svg,.hub-identity .story-avatar svg{width:28px;height:28px;vertical-align:middle}
.hub-identity .chat-toggle>svg{flex:none;width:22px;height:22px}
.hub-identity #app .app-head{background:transparent;border:0;border-bottom:1px solid var(--hub-border);border-radius:0;box-shadow:none;padding:12px 0 24px}
.hub-identity #app .app-title{min-width:0}.hub-identity #app #appDesc{max-width:72ch;line-height:1.7}
@media(max-width:650px){.hub-identity .home .hub-resource-list{padding:0 16px}.hub-identity .home .training-home-links>a{grid-template-columns:minmax(0,1fr);gap:6px}.hub-identity .home .training-home-links>a span{text-align:left}.training-route-body{grid-template-columns:minmax(0,1fr);gap:20px}.training-route-body figure{max-width:360px;margin:auto}.hub-identity .extra-collection-summary{grid-template-columns:minmax(0,1fr)}.hub-identity .extra-collection-meta{justify-content:flex-start}}

/* Ajustements demandés : cartes côte à côte, contraste et encadrés cohérents. */
.hub-identity .home .hub-resource-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:20px}
.hub-identity .home .hub-resource:nth-child(n){margin:0;border:1px solid #71819a;border-radius:10px;background:#233247}
.hub-identity .home .hub-resource:first-child{border-top:1px solid #71819a}
.hub-identity .home .hub-resource-open{height:100%;min-height:170px;padding:20px;grid-template-columns:minmax(0,1fr) 20px;background:transparent;border-radius:10px;text-align:left}
.hub-identity .home .hub-resource-open:hover{background:#2c3d55}
.hub-identity .home .hub-resource-open:focus-visible{outline:3px solid var(--hub-accent);outline-offset:3px;background:#2c3d55}
.hub-identity .home .hub-resource-title{color:#f5f6fa;font-size:1.06rem;line-height:1.45}
.hub-identity .home .hub-resource-desc{color:#d0daea;line-height:1.7}
.hub-identity .home .hub-resource-arrow{color:#d0c9ff}
.hub-identity .home .hub-category{border-color:#71819a}
.hub-identity .home .hub-category-toggle{background:#1b2739}
.hub-identity .home .training-home-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;border:0}
.hub-identity .home .training-home-links>a{display:flex;flex-direction:column;gap:12px;padding:22px;border:1px solid #71819a;border-radius:10px;background:#233247}
.hub-identity .home .training-home-links>a:last-child{border-bottom:1px solid #71819a}
.hub-identity .home .training-home-links>a span{text-align:left;color:#d0daea}
/* Conteneurs : 10 px ; contrôles : 8 px. Les badges et dessins gardent leur fonction. */
body.hub-identity :is(.panel,.card,.hero,.library-hero,.bank-hero,.category,.quick-card,.subject-card,.subject-explorer,.module-card,.account-card,.account-panel,.account-resource-card,.training-context,.training-reference,.learning-subject,.learning-quiz,.learning-callout,.network-diagram,.extra-collection,.extra-resource,.wrong-item,.result-item,.feedback,.quiz-card,.quiz-side,.quiz-summary,.prof-progress-card,.subgroup,.ref-item,.glossary-hero,.glossary-card,.glossary-entry,.glossary-command,.glossary-theme-card,.glossary-cat-group,.glossary-home-card,.glossary-confusion-panel,.glossary-practice,.glossary-start-panel,.glossary-reference-audit,.gr-audit,.gr-visual,.gr-course-tile,.gr-reference,.gr-answer,.diag-mode-card,.diag-landing-hero){border-radius:10px!important;border-color:var(--hub-control-border)}
body.hub-identity #appBody :is(.gr-shell .panel,.gr-today,.gr-course-tile,.gr-answer,.gr-pedagogy>div,.gr-diagrams a,.glossary-entry,.glossary-cat-group,.glossary-home-card){border-radius:10px!important}
body.hub-identity :is(.mini,.goal,.note,.warning,.memo,.course-note,.learning-example,.learning-recap,.story-step,.story-rule,.story-recall,.story-technical,.story-flow){border-radius:10px!important}
body.hub-identity :is(button,select,textarea,.btn,.button,.primary-btn,.secondary-btn,.tiny-btn,.navlink){border-radius:8px!important}
body.hub-identity input:not([type=checkbox]):not([type=radio]){border-radius:8px!important}
body.hub-identity :is(button.quick-card,button.subject-compact,button.diag-mode-card){border-radius:10px!important}
body.hub-identity .extra-collection-toggle{border-radius:8px!important}
@media(max-width:1100px){.hub-identity .home .training-home-links{grid-template-columns:minmax(0,1fr)}}
@media(max-width:650px){.hub-identity .home .hub-resource-list{grid-template-columns:minmax(0,1fr);padding:16px;gap:14px}.hub-identity .home .hub-resource-open{min-height:0;padding:18px}}

/* Surfaces communes : référence Apprendre, sans ombre ni illustration décorative. */
body.hub-identity{--hub-card-bg:#233247;--hub-card-border:#71819a;--shadow-panel:none}
body.hub-identity .quick-card{border-width:1px!important}
body.hub-identity :is(.panel,.card,.hero,.library-hero,.bank-hero,.hero-card,.category,.hub-category,.hub-resource,.module-card,.quick-card,.subject-card,.subject-explorer,.training-context,.training-reference,.account-card,.account-panel,.account-resource-card,.learning-subject,.learning-quiz,.learning-callout,.mini,.course-note,.network-diagram,.extra-collection,.extra-resource,.wrong-item,.result-item,.feedback,.quiz-card,.quiz-side,.quiz-summary,.prof-progress-card,.subgroup,.ref-item,.glossary-hero,.glossary-card,.glossary-entry,.glossary-command,.glossary-theme-card,.glossary-cat-group,.glossary-home-card,.glossary-confusion-panel,.glossary-practice,.glossary-start-panel,.glossary-reference-drawer,.glossary-welcome-card,.glossary-learning-path,.gr-audit,.gr-visual,.gr-course-tile,.gr-reference,.gr-answer,.diag-mode-card,.diag-landing-hero,.cheat-cheatsheet-intro,.cheat-cheatsheet-total,.memo-filter-drawer,.memo-browse-drawer,.cheat-needs,.cheat-section,.cheat-entry,.cyber-guide-index){box-shadow:none!important;border-radius:10px!important;border-color:var(--hub-card-border)!important;background-image:none!important}
body.hub-identity #app #appBody :is(.panel,.hero-card,.cheat-section,.cheat-cheatsheet-intro,.cheat-entry,.glossary-hero,.glossary-entry,.glossary-theme-card,.glossary-practice,.glossary-start-panel,.glossary-command,.gr-course-tile,.gr-answer,.gr-pedagogy>div,.gr-visual){box-shadow:none!important;border-radius:10px!important;border-color:var(--hub-card-border)!important;background-image:none!important}
body.hub-identity :is(.hub-resource,.module-card,.quick-card,.subject-card,.extra-resource,.glossary-entry,.glossary-theme-card,.glossary-home-card,.glossary-practice,.cheat-entry,.gr-course-tile){background-color:var(--hub-card-bg)!important}
body.hub-identity :is(button.quick-card,button.glossary-theme-card):is(:hover,:focus-visible){background-color:#2c3d55!important;border-color:var(--hub-accent)!important}
body.hub-identity #app #appBody :is(.cheat-cheatsheet-intro,.cheat-section,.memo-filter-drawer,.memo-browse-drawer,.cheat-needs,.glossary-hero,.glossary-command,.glossary-start-panel,.glossary-confusion-panel){background-color:var(--hub-surface)!important}
body.hub-identity #app #appBody .cheat-entry{background-color:var(--hub-card-bg)!important}
body.hub-identity #app #appBody :is(.cheat-section-toggle,.glossary-entry-head){background:#1b2739!important;box-shadow:none!important}
body.hub-identity #app #appBody .cheat-entry-grid{padding:20px;gap:16px;background:transparent}
@media(max-width:650px){body.hub-identity #app #appBody .cheat-entry-grid{padding:16px;gap:14px}}
body.hub-identity :is(.cheat-cheatsheet-intro,.cheat-section,.cheat-entry,.cheat-needs,.glossary-entry,.glossary-practice,.glossary-theme-card,.gr-course-tile){border-width:1px!important;border-style:solid}
body.hub-identity :is(.cheat-entry>p,.cheat-entry-detail,.glossary-definition,.glossary-practice p){color:#d0daea}
body.hub-identity .glossary-workspace .glossary-hero-copy{padding-right:0;max-width:74ch}
body.hub-identity :is(.glossary-hero,.cheat-cheatsheet-intro,.bank-hero,.library-hero)::after{content:none!important;box-shadow:none!important;filter:none!important;background:none!important}
body.hub-identity :is(.glossary-hero,.cheat-cheatsheet-intro,.bank-hero,.library-hero)::before{box-shadow:none!important;filter:none!important;background-image:none!important}

/* Hiérarchie commune : page, section, carte. La fonction prime sur la balise historique. */
body.hub-identity{--hub-title-page:2.5rem;--hub-title-section:1.625rem;--hub-title-card:1.25rem}
body.hub-identity h1,body.hub-identity .bank-hero h1,body.hub-identity .training-home-hero h1,body.hub-identity #app #appTitle{font-family:var(--hub-heading)!important;font-size:var(--hub-title-page)!important;font-weight:750!important;line-height:1.2!important;letter-spacing:-.025em!important;overflow-wrap:anywhere;text-wrap:pretty}
body.hub-identity h2{font-family:var(--hub-heading);font-size:var(--hub-title-section)!important;font-weight:700!important;line-height:1.3!important;letter-spacing:-.025em;overflow-wrap:anywhere}
body.hub-identity :is(h3,.card h3){font-size:var(--hub-title-card);font-weight:650;line-height:1.4;overflow-wrap:anywhere}
body.hub-identity #app #appBody :is(.glossary-hero-copy h3,.cheat-cheatsheet-head h3,.gr-hero h3){font-family:var(--hub-heading)!important;font-size:var(--hub-title-section)!important;font-weight:700!important;line-height:1.3!important;letter-spacing:-.025em!important;overflow-wrap:anywhere}
body.hub-identity:has(.glossary-workspace) #app .app-title{display:block}
body.hub-identity:has(.glossary-workspace) #app #appDesc{font-size:1rem;line-height:1.7;margin-top:12px}
@media(max-width:1100px){body.hub-identity{--hub-title-page:2.25rem;--hub-title-section:1.5rem}}
@media(max-width:650px){body.hub-identity{--hub-title-page:1.875rem;--hub-title-section:1.375rem;--hub-title-card:1.125rem}}

/* Menus latéraux flottants : ils ne déplacent pas les rubriques. */
body.hub-identity.ux-platform .ux-rail .ux-nav-sub.ux-nav-popover{display:none!important;position:fixed;inset:auto;margin:0;padding:10px;width:272px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto;box-sizing:border-box;border:1px solid var(--hub-control-border);border-radius:10px;background:var(--hub-surface);color:var(--hub-text);box-shadow:none;z-index:2100;animation:none!important;transform:none!important}
body.hub-identity.ux-platform .ux-rail .ux-nav-sub.ux-nav-popover.is-open{display:grid!important;gap:6px}
body.hub-identity.ux-platform .ux-rail .ux-nav-popover .ux-rail-link{min-height:44px;margin:0}
body.hub-identity.ux-platform .ux-rail.has-popup-fallback,body.hub-identity.ux-platform .ux-rail.has-popup-fallback .ux-rail-nav{overflow:visible!important}

/* Présence authentifiée : même point vert réel sur toutes les pages. */
body.hub-identity .ux-member-header [data-account-link]:has([data-account-presence])::before{content:none!important}
body.hub-identity .ux-member-header [data-account-link]>[data-account-presence]:not([hidden]){display:inline-block!important;flex:0 0 7px;width:7px;height:7px;min-width:7px;border-radius:50%;background:#17633e}
body.hub-identity .ux-member-header [data-account-presence][hidden]{display:none!important}
/* Barre commune : les trois commandes gardent leur libellé sur mobile. */
body.hub-identity .ux-member-header>.ux-back-button{display:inline-flex;align-items:center;justify-content:center;min-width:60px;width:auto;min-height:44px;padding:8px 12px;box-sizing:border-box}
@media(max-width:380px){body.hub-identity .ux-member-header{gap:6px;padding-inline:12px}body.hub-identity .ux-member-header .ux-account-actions{gap:6px}body.hub-identity .ux-member-header .ux-account-actions>:is(a,button){padding-inline:8px}body.hub-identity .ux-member-header>.ux-back-button{padding-inline:8px;min-width:0;flex:0 0 auto}}
