/* CFA360 20260608-priorite2-v100 - bundle CSS pour index.html.
   Contenu concatene dans l ordre exact des anciens <link>. */


/* ===== SOURCE: style.css ===== */
@charset "UTF-8";
:root{
  --bg:#edf2fb;
  --panel:#ffffff;
  --line:#d9e2f0;
  --text:#17365f;
  --muted:#647b99;
  --blue:#245fca;
  --blue-dark:#173b75;
  --orange:#f28c1b;
  --shadow:0 24px 60px rgba(23,54,95,.12);
  --radius-xl:32px;
  --radius-lg:22px;
  --radius-md:16px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:"Segoe UI",Inter,Roboto,Arial,Helvetica,sans-serif;color:var(--text);background:radial-gradient(circle at top left, rgba(242,140,27,.09), transparent 22%),radial-gradient(circle at bottom right, rgba(36,95,202,.1), transparent 22%),var(--bg);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
a{color:inherit}
button,input,select,textarea{font:inherit}
.shell{min-height:100vh;display:grid;place-items:center;padding:28px}
.auth-card{width:min(1080px,100%);min-height:640px;display:grid;grid-template-columns:1.05fr .95fr;background:var(--panel);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow)}
.brand-panel{position:relative;padding:34px;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(145deg, rgba(23,59,117,.98) 0%, rgba(36,95,202,.94) 60%, rgba(242,140,27,.92) 100%);color:#fff}
.brand-line{position:absolute;top:0;left:0;right:0;height:8px;background:linear-gradient(90deg,#fff,rgba(255,255,255,.2))}
.logo-box{background:rgba(255,255,255,.98);border-radius:26px;padding:22px;box-shadow:0 18px 40px rgba(0,0,0,.14);width:100%;max-width:520px}
.brand-logo,.sidebar-logo{display:block;width:100%;height:auto;object-fit:contain}
.eyebrow{margin:0 0 10px;color:var(--blue);text-transform:uppercase;letter-spacing:.15em;font-size:.8rem;font-weight:800}
.eyebrow.light{color:#fff}
.brand-copy h1{margin:0;font-size:clamp(2.7rem,4vw,4.4rem);line-height:1;font-weight:800}
.subtitle{margin:14px 0 0;font-size:1.28rem;color:rgba(255,255,255,.92);font-weight:700}
.chips{display:flex;gap:12px;flex-wrap:wrap}
.chips span{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);color:#fff;border-radius:999px;padding:10px 16px;font-weight:700}
.form-panel{padding:52px 40px;display:flex;flex-direction:column;justify-content:center}
.form-panel h2,.dashboard-header h2{margin:0 0 28px;font-size:clamp(2rem,3.2vw,3rem);line-height:1.08}
.login-form{display:grid;gap:18px}
.field-group{display:grid;gap:10px}
label{font-size:.96rem;font-weight:800}
select,input{width:100%;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;color:var(--text);padding:17px 18px;font-size:1rem;outline:none}
select:focus,input:focus{border-color:rgba(36,95,202,.55);box-shadow:0 0 0 4px rgba(36,95,202,.12)}
.primary-btn,.logout-btn,.download-link,.secondary-btn{border:none;border-radius:18px;padding:18px 22px;font-size:1.05rem;font-weight:800;color:#fff;cursor:pointer;text-decoration:none;text-align:center;background:linear-gradient(90deg,var(--blue) 0%,#3d79ee 62%,var(--orange) 100%);box-shadow:0 18px 36px rgba(36,95,202,.24)}
.secondary-btn{background:#fff;color:var(--blue-dark);border:1px solid var(--line);box-shadow:none}
.compact-btn{padding:16px 22px}
.inline-btn{display:inline-block;width:auto;max-width:180px}
.download-link{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;font-size:.95rem}
.message{min-height:24px;margin:0;font-weight:700}
.message.error{color:#b42318}
.message.success{color:#157347}
.inline-message{margin-top:14px}
.small-muted{font-size:.95rem;color:var(--muted)}
.auth-hidden{display:none !important}
.hint-box,.info-box{margin-top:20px;background:#fff7ef;border:1px solid #ffdcb6;border-radius:18px;padding:16px 18px}
.hint-box p,.info-box p{margin:8px 0;color:var(--text)}
.hint-box code{background:#fff;border:1px solid var(--line);padding:2px 8px;border-radius:999px;font-family:Arial,Helvetica,sans-serif;font-weight:700}
.admin-card{width:min(1340px,100%);min-height:780px;display:grid;grid-template-columns:320px 1fr;background:var(--panel);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow)}
.sidebar{padding:28px;background:linear-gradient(180deg,#173b75 0%,#245fca 66%,#2f73eb 100%);color:#fff;display:flex;flex-direction:column;gap:28px}
.sidebar-top{display:grid;gap:18px}
.sidebar-logo-box{background:#fff;border-radius:22px;padding:18px;box-shadow:0 14px 34px rgba(0,0,0,.16)}
.sidebar-title{margin:0;font-size:2.2rem;line-height:1}
.sidebar-subtitle{margin:10px 0 0;color:rgba(255,255,255,.88);font-weight:700}
.side-nav{display:grid;gap:12px}
.nav-item{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff;text-align:left;padding:14px 16px;border-radius:16px;font-size:1rem;font-weight:700;text-decoration:none}
.nav-item.active{background:linear-gradient(90deg, rgba(255,255,255,.18), rgba(242,140,27,.34))}
.logout-btn{margin-top:auto;background:linear-gradient(90deg,#244f98 0%,#2e66c5 60%,var(--orange) 100%)}
.dashboard{padding:34px;background:linear-gradient(180deg,#f8fbff 0%,#eef4fc 100%);display:grid;align-content:start;gap:24px}
.header-text,.panel-subtext{margin:0;color:var(--muted);font-size:1.05rem;max-width:760px}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}
.stat-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:0 10px 28px rgba(23,54,95,.06)}
.accent-blue{border-top:5px solid var(--blue)}
.accent-orange{border-top:5px solid var(--orange)}
.accent-red{border-top:5px solid #e05a54}
.stat-label{margin:0 0 14px;color:var(--muted);font-weight:700}
.stat-value{margin:0;font-size:2.1rem;font-weight:800;color:var(--blue-dark)}
.small-stat{font-size:1.1rem !important;line-height:1.35;word-break:break-word}
.panel{background:#fff;border:1px solid var(--line);border-radius:24px;padding:22px}
.panel-head{display:flex;flex-direction:column;gap:8px}
.panel-head.between{flex-direction:row;justify-content:space-between;align-items:flex-start;gap:16px}
.panel-head h3,.mini-card h4{margin:0}
.import-grid{display:grid;grid-template-columns:1fr auto;gap:14px;margin-top:18px}
.file-input{background:#fff}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse}
th,td{padding:15px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{color:var(--blue-dark);font-size:.95rem}
td{color:var(--text)}
.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.mini-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:0 10px 28px rgba(23,54,95,.06)}
.mini-card p{margin:10px 0 14px;color:var(--muted)}
.text-link{color:var(--blue);font-weight:800;text-decoration:none}
.filters-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:14px;align-items:end}
.tag{display:inline-block;padding:6px 10px;border-radius:999px;background:#eef4ff;color:var(--blue-dark);font-size:.88rem;font-weight:700}
.kicker{font-size:.88rem;color:var(--muted)}
.empty-state{padding:20px;border:1px dashed var(--line);border-radius:18px;color:var(--muted)}
.actions-inline{display:flex;gap:10px;flex-wrap:wrap}
@media (max-width:1200px){.stats-grid{grid-template-columns:repeat(2,1fr)}.filters-grid{grid-template-columns:1fr 1fr}}
@media (max-width:1024px){.auth-card,.admin-card{grid-template-columns:1fr}}
@media (max-width:760px){.shell{padding:16px}.brand-panel,.form-panel,.sidebar,.dashboard{padding:24px}.stats-grid,.cards-grid,.filters-grid{grid-template-columns:1fr}.import-grid{grid-template-columns:1fr}.panel-head.between{flex-direction:column}}

.table-input{width:100%;min-width:140px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:.95rem;background:#fff;color:var(--text)}

.login-intro{margin:-8px 0 8px}
.brand-note{margin:18px 0 0;color:rgba(255,255,255,.88);max-width:500px;line-height:1.6;font-weight:600}
.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.role-card{appearance:none;border:1px solid var(--line);background:#fff;border-radius:22px;padding:18px;text-align:left;cursor:pointer;display:grid;gap:6px;color:var(--text);box-shadow:0 10px 28px rgba(23,54,95,.05);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.role-card strong{font-size:1rem}
.role-card small{color:var(--muted);font-size:.9rem;line-height:1.4}
.role-card:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(23,54,95,.09)}
.role-card.active{border-color:rgba(36,95,202,.5);background:linear-gradient(180deg,#ffffff 0%,#eef4ff 100%);box-shadow:0 18px 36px rgba(36,95,202,.14)}
.role-badge{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--blue) 0%,#4c84ef 100%);color:#fff;font-weight:800;font-size:.9rem}
.credentials-box{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.test-box{background:#fff8f1}
@media (max-width:760px){.role-grid,.credentials-box{grid-template-columns:1fr}}


.import-details{margin-top:14px;padding:14px 16px;border:1px solid #dbe4f1;border-radius:18px;background:rgba(240,245,252,.7)}
.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.detail-card{background:#fff;border:1px solid #e4ecf8;border-radius:16px;padding:12px 14px;box-shadow:0 8px 22px rgba(32,71,134,.06)}
.detail-label{display:block;font-size:12px;font-weight:700;color:#5b77a5;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}
.detail-card strong{font-size:22px;color:#153b78}
.detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.tag-cloud{display:flex;flex-wrap:wrap;gap:8px;min-height:32px}
.mini-tag{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#eef4ff;color:#163f7e;font-size:12px;font-weight:700}
.mini-tag.warning{background:#fff5df;color:#9a6100}
.comp-meta{margin-top:6px;color:#5c7091;font-size:12px;line-height:1.4}
.comp-meta strong{color:#173c77}
@media (max-width: 900px){
  .detail-grid{grid-template-columns:1fr 1fr}
  .detail-columns{grid-template-columns:1fr}
}

.form-panel{position:relative;background:linear-gradient(180deg,#fbfdff 0%,#f3f7fd 100%)}
.form-panel::before{content:"";position:absolute;top:28px;right:24px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle, rgba(36,95,202,.08) 0%, rgba(36,95,202,0) 70%);pointer-events:none}
.form-panel-inner{position:relative;display:grid;gap:18px;max-width:460px;width:100%;margin:0 auto}
.login-top{display:grid;gap:10px}
.login-top h2{margin-bottom:8px}
.login-section{background:rgba(255,255,255,.88);border:1px solid rgba(217,226,240,.95);border-radius:24px;padding:18px 18px 20px;box-shadow:0 14px 34px rgba(23,54,95,.06);backdrop-filter:blur(6px)}
.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}
.section-head p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.45;max-width:260px}
.section-kicker{display:inline-flex;align-items:center;padding:7px 12px;border-radius:999px;background:#eef4ff;color:var(--blue-dark);font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.role-grid{gap:12px}
.role-card{border-radius:20px;padding:16px;min-height:132px;align-content:start}
.role-card strong{font-size:1.02rem;line-height:1.35}
.role-card small{font-size:.92rem}
.role-card.active{background:linear-gradient(180deg,#ffffff 0%,#edf4ff 100%);border-color:rgba(36,95,202,.55);box-shadow:0 18px 36px rgba(36,95,202,.15)}
.role-card.active strong{color:var(--blue-dark)}
.credentials-section .primary-btn{margin-top:6px}
.credentials-box{gap:14px}
input,select{background:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.75)}
.test-box{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:flex-start;background:linear-gradient(180deg,#fff9f2 0%,#fff5ea 100%);border-color:#ffd7ad;margin-top:4px}
.hint-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:12px;background:linear-gradient(135deg,var(--blue) 0%,#4a83ef 100%);color:#fff;font-weight:800;box-shadow:0 10px 20px rgba(36,95,202,.18)}
.test-box p{margin:0 0 8px}
.test-box p:last-child{margin-bottom:0}
@media (max-width:760px){.form-panel-inner{max-width:100%}.section-head{flex-direction:column}.test-box{grid-template-columns:1fr}.hint-icon{display:none}}


/* Premium minimal login */
.form-panel{padding:56px 44px;background:linear-gradient(180deg,#fcfdff 0%,#f4f7fc 100%)}
.form-panel-inner{max-width:470px;gap:22px}
.login-top{gap:8px;margin-bottom:2px}
.login-top h2{margin:0;font-size:clamp(2.2rem,3vw,3.2rem);letter-spacing:-.03em}
.login-intro{margin:0;color:#6b7f9e;max-width:42ch;line-height:1.55}
.login-section{background:rgba(255,255,255,.78);border:1px solid rgba(214,225,241,.95);border-radius:28px;padding:20px 20px 22px;box-shadow:0 18px 40px rgba(23,54,95,.05);backdrop-filter:blur(10px)}
.premium-role-section{padding:18px 18px 18px}
.section-head-compact{align-items:center;margin-bottom:14px}
.section-head-compact p{max-width:210px;font-size:.92rem}
.minimal-title{margin:8px 0 0;font-size:1.22rem;color:var(--blue-dark);letter-spacing:-.02em}
.role-pills{display:grid;gap:10px}
.role-pill{appearance:none;position:relative;overflow:hidden;display:grid;grid-template-columns:54px 1fr;align-items:center;gap:14px;width:100%;padding:14px 16px;border-radius:18px;border:1px solid rgba(201,214,235,.95);background:linear-gradient(180deg,rgba(255,255,255,.94) 0%,rgba(247,250,255,.94) 100%);cursor:pointer;transition:all .18s ease;text-align:left}
.role-pill:hover{transform:translateY(-1px);border-color:rgba(36,95,202,.35);box-shadow:0 12px 26px rgba(36,95,202,.08)}
.role-pill.active{border-color:rgba(229,136,26,.28);background:linear-gradient(90deg,rgba(255,248,238,.98) 0%,rgba(255,235,208,.96) 42%,rgba(242,140,27,.22) 100%);box-shadow:inset 0 0 0 1px rgba(229,136,26,.22),0 16px 30px rgba(242,140,27,.14)}
.role-pill.active .pill-copy strong{color:#8d4c05}
.role-pill.active .pill-copy small{color:#b46613}
.pill-index{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--blue) 0%,#4f85ee 100%);color:#fff;font-weight:800;font-size:.92rem;box-shadow:0 10px 18px rgba(36,95,202,.18)}
.role-pill.active .pill-index{background:linear-gradient(135deg,#d97706 0%,#f28c1b 52%,#ffb65c 100%);box-shadow:0 10px 22px rgba(242,140,27,.28)}
.role-pill.active::after{content:"";position:absolute;inset:0;border-radius:18px;pointer-events:none;background:linear-gradient(90deg,rgba(242,140,27,.04),rgba(255,255,255,0) 55%)}
.pill-copy{display:grid;gap:3px;min-width:0}
.pill-copy strong{font-size:1rem;color:var(--blue-dark);line-height:1.2}
.pill-copy small{font-size:.9rem;color:#647b99;line-height:1.35}
.credentials-section{padding-top:18px}
.credentials-section .section-head{margin-bottom:12px}
.credentials-box{grid-template-columns:1fr;gap:12px}
.credentials-section label{font-size:.9rem;color:#35527f}
.credentials-section input{height:56px;border-radius:16px;border-color:#d7e1f0;background:rgba(255,255,255,.96);padding:0 18px;font-size:1rem;box-shadow:0 8px 18px rgba(23,54,95,.04)}
.credentials-section input:focus{box-shadow:0 0 0 4px rgba(36,95,202,.10),0 8px 18px rgba(23,54,95,.04)}
.primary-btn{margin-top:8px;height:58px;border-radius:18px;font-size:1rem;letter-spacing:.01em;box-shadow:0 20px 36px rgba(36,95,202,.2)}
.test-box{margin-top:0;border-radius:22px;padding:18px 18px;background:linear-gradient(180deg,#fffaf4 0%,#fff4e8 100%);box-shadow:0 12px 26px rgba(242,140,27,.08)}
.hint-icon{width:34px;height:34px;border-radius:11px}
#contextWrap{padding:16px 18px 18px}
#contextWrap label{font-size:.9rem;color:#35527f}
#contextSelect{height:54px;border-radius:16px}
@media (max-width:760px){.form-panel{padding:34px 22px}.section-head-compact{align-items:flex-start}.role-pill{grid-template-columns:48px 1fr;padding:13px 14px}}

.pedagogical-filters{grid-template-columns:1.4fr 1.2fr 1fr}
.field-readonly{height:54px;border:1px solid var(--line);border-radius:16px;padding:14px 16px;background:#fff;color:var(--text);display:flex;align-items:center}
.alert-card{padding:10px 12px;border-radius:14px;margin:8px 0;font-weight:700;border:1px solid var(--line);background:#f7faff}
.alert-card.warning{background:#fff6e8;border-color:#ffd8a3;color:#8c5b00}
.alert-card.info{background:#eef4ff;border-color:#cfe0ff;color:#173b75}
.status-badge{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;font-size:.84rem;font-weight:800;border:1px solid transparent}
.status-not-started{background:#f2f5fb;color:#5f7393;border-color:#dbe5f2}
.status-to-improve{background:#fff3e9;color:#a65b00;border-color:#ffd5ad}
.status-in-progress{background:#eef4ff;color:#18458c;border-color:#cfe0ff}
.status-validated{background:#ecfbf2;color:#15603b;border-color:#bfe9cf}
.status-not-applicable{background:#f4efff;color:#5c3f9c;border-color:#ddd0ff}
.level-pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:12px;background:#eef4ff;color:var(--blue-dark);font-weight:700;margin-bottom:4px}
.editor-stack{display:grid;gap:8px;min-width:220px}
.tiny-muted{font-size:.78rem;color:var(--muted);line-height:1.35}
.comment-box{display:grid;gap:10px;margin-bottom:14px}
.comment-box textarea{width:100%;border:1px solid var(--line);border-radius:16px;padding:14px 16px;font-family:inherit;font-size:.95rem;resize:vertical;min-height:110px;background:#fff;color:var(--text)}
.note-card,.resource-card,.timeline-item{border:1px solid var(--line);border-radius:18px;padding:14px 16px;background:#fff;margin-bottom:12px}
.note-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;color:var(--blue-dark)}
.note-head span{font-size:.82rem;color:var(--muted);font-weight:700}
.soft-panel{padding:20px}
.two-columns{grid-template-columns:1.2fr .8fr}
#alertsWrap .empty-state,#notesList .empty-state,#timelineWrap .empty-state{padding:14px}
@media (max-width:1024px){.two-columns,.pedagogical-filters{grid-template-columns:1fr}}


/* --- Index page enhancement --- */
.shell-login-enhanced{padding:24px}
.auth-card-enhanced{width:min(1120px,100%);min-height:690px;grid-template-columns:1.02fr .98fr}
.brand-panel-enhanced{padding:26px 26px 22px;align-items:flex-start}
.brand-main{display:grid;gap:22px;width:100%}
.logo-box-enhanced{max-width:390px;padding:18px 20px;border-radius:24px}
.brand-copy-enhanced{max-width:430px}
.brand-note{margin:18px 0 0;color:rgba(255,255,255,.92);font-size:1.05rem;line-height:1.55;max-width:420px}
.brand-feature-grid{display:grid;gap:14px;width:100%;max-width:430px}
.brand-feature-card{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);border-radius:22px;padding:18px 18px 16px;backdrop-filter:blur(6px);box-shadow:0 18px 34px rgba(10,26,62,.12)}
.brand-feature-card strong{display:block;font-size:1.02rem;margin:6px 0 8px}
.brand-feature-card p{margin:0;color:rgba(255,255,255,.86);line-height:1.45;font-size:.94rem}
.feature-tag{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.15);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.brand-bottom-zone{margin-top:auto;display:grid;gap:14px;align-items:flex-start;width:100%}
.chips-soft span{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.18);padding:9px 14px;font-size:.92rem}
.admin-access-box{width:fit-content;max-width:280px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:22px;padding:14px 14px 12px;box-shadow:0 16px 34px rgba(0,0,0,.08)}
.admin-access-label{margin:0 0 10px;color:#fff;font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}
.admin-access-list{display:grid;gap:9px}
.admin-access-btn{appearance:none;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#fff;border-radius:14px;padding:10px 12px;font-size:.8rem;font-weight:800;text-align:left;cursor:pointer;transition:all .18s ease}
.admin-access-btn:hover,.admin-access-btn.active{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.36);transform:translateY(-1px)}
.form-panel-enhanced{padding:36px 34px;background:linear-gradient(180deg,#fcfdff 0%,#f5f8fe 100%)}
.enhanced-layout{display:grid;gap:18px}
.login-top-enhanced{display:grid;gap:10px}
.login-top-enhanced h2{margin-bottom:0}
.login-form-enhanced{gap:16px}
.access-card-main{padding:20px 20px 16px}
.section-head-access{margin-bottom:14px}
.role-pills-main{gap:12px}
.login-grid-two{display:grid;grid-template-columns:1.08fr .92fr;gap:16px;align-items:start}
.compact-card{border-radius:24px;background:#fff;border:1px solid var(--line);box-shadow:0 14px 30px rgba(23,54,95,.06)}
.compact-context-card{padding:18px 18px 16px;min-height:100%}
.credentials-card-enhanced{padding:18px}
.section-head-inline{margin-bottom:10px}
.section-head-inline p{margin:6px 0 0;color:var(--muted)}
.test-box-enhanced{display:grid;grid-template-columns:34px 1fr;align-items:flex-start;gap:14px;border-radius:24px}
@media (max-width:1024px){
  .auth-card-enhanced{grid-template-columns:1fr}
  .brand-panel-enhanced{min-height:unset}
  .brand-feature-grid{max-width:none}
}
@media (max-width:760px){
  .shell-login-enhanced{padding:14px}
  .form-panel-enhanced{padding:22px 18px}
  .login-grid-two{grid-template-columns:1fr}
  .admin-access-box{max-width:none;width:100%}
  .brand-copy h1{font-size:2.8rem}
}


/* v4 login adjustments */
.login-grid-single{display:block}
.credentials-card-wide{max-width:none;width:100%}
.admin-access-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.admin-access-btn{text-align:center;white-space:nowrap}
@media (max-width: 720px){
  .admin-access-list{grid-template-columns:1fr}
}


/* v5 admin access + login fixes */
.admin-access-box{
  width:100%;
  max-width:420px;
  background:linear-gradient(180deg,rgba(255,255,255,.10) 0%,rgba(255,255,255,.07) 100%);
  border:1px solid rgba(255,255,255,.18);
  border-radius:24px;
  padding:16px 16px 14px;
}
.admin-access-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.admin-access-btn{
  min-height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1.25;
  padding:10px 12px;
  font-size:.84rem;
  border-radius:16px;
  background:linear-gradient(180deg,rgba(255,255,255,.12) 0%,rgba(255,255,255,.08) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
}
.admin-access-btn:hover,.admin-access-btn.active{
  background:linear-gradient(135deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,.12) 55%,rgba(242,140,27,.14) 100%);
  border-color:rgba(255,255,255,.34);
  box-shadow:0 12px 24px rgba(8,24,56,.14), inset 0 1px 0 rgba(255,255,255,.18);
}
@media (max-width:760px){
  .admin-access-list{grid-template-columns:1fr;}
}


/* v6 apprenti page refinements */
.dashboard-header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}
.dashboard-header h2{letter-spacing:-.03em;margin-bottom:10px}
.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.stat-card{min-height:112px;display:flex;flex-direction:column;justify-content:space-between}
.stat-label{font-size:.92rem;letter-spacing:.01em}
.stat-value{font-size:2rem;line-height:1.08;letter-spacing:-.03em}
.medium-stat{font-size:1.55rem !important;line-height:1.18;letter-spacing:-.02em}
.small-stat{font-size:1.35rem !important;line-height:1.22;word-break:break-word}
.panel,.mini-card{background:rgba(255,255,255,.96)}
.cards-grid{align-items:stretch}
.mini-card{display:flex;flex-direction:column;gap:10px}
.mini-card p{margin:0;line-height:1.5}
.panel-head h3,.mini-card h4{font-size:1.15rem;color:var(--blue-dark)}
.panel-subtext{font-size:.96rem}
.pedagogical-filters{grid-template-columns:1.25fr 1.1fr .9fr;gap:16px}
.field-group label{color:#35527f}
.field-readonly,.credentials-section input,select,input,.comment-box textarea{background:#fff}
.table-wrap table{min-width:920px}
th{position:sticky;top:0;background:#fff;z-index:1}
.note-card,.resource-card,.timeline-item{box-shadow:0 8px 20px rgba(23,54,95,.04)}
.resource-card strong,.timeline-item strong,.note-card strong{color:var(--blue-dark)}
.comment-box textarea{line-height:1.5}
.kpi-chip-row{display:flex;flex-wrap:wrap;gap:8px}
.kpi-chip-row .tag{padding:8px 12px}
.sidebar{position:relative}
.side-nav{margin-top:6px}
.logout-btn{position:sticky;bottom:0}
@media (max-width:1200px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.dashboard-header{align-items:flex-start}.stats-grid{grid-template-columns:1fr}.medium-stat,.small-stat,.stat-value{font-size:1.35rem !important}.table-wrap table{min-width:780px}}


/* V8/V9 - navigation rapide des compétences */
.competence-pilot{display:grid;gap:16px;background:linear-gradient(180deg,#ffffff 0%,#f9fbff 100%)}
.navigator-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:14px}
.roulette-actions{display:flex;gap:10px}
.roulette-nav-btn{padding:12px 16px;min-width:56px;border-radius:16px}
.roulette-track{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.roulette-chip{appearance:none;text-align:left;border:1px solid var(--line);background:#fff;border-radius:18px;padding:14px 14px 12px;display:grid;gap:6px;cursor:pointer;transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;background:linear-gradient(180deg,#ffffff 0%,#f6f9ff 100%)}
.roulette-chip:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(23,54,95,.08);border-color:rgba(36,95,202,.28)}
.roulette-chip.active{border-color:rgba(36,95,202,.35);box-shadow:0 18px 32px rgba(36,95,202,.12);background:linear-gradient(90deg,rgba(36,95,202,.07) 0%,rgba(61,121,238,.08) 55%,rgba(242,140,27,.10) 100%)}
.roulette-code{display:inline-flex;align-items:center;justify-content:center;width:fit-content;padding:6px 10px;border-radius:999px;background:#eef4ff;color:var(--blue-dark);font-size:.78rem;font-weight:800}
.roulette-chip strong{font-size:.98rem;color:var(--blue-dark);line-height:1.35}
.roulette-chip small{color:var(--muted);font-size:.82rem;line-height:1.35}
.competence-link{appearance:none;border:none;background:transparent;padding:0;color:var(--blue-dark);font-weight:800;cursor:pointer;text-align:left;line-height:1.4}
.competence-link:hover{text-decoration:underline}
.selected-row{background:linear-gradient(90deg,rgba(36,95,202,.05) 0%,rgba(242,140,27,.05) 100%)}
.selected-row td:first-child{border-left:4px solid var(--orange)}
.history-mini-btn{border:none;background:#eef4ff;color:var(--blue-dark);font-weight:800;border-radius:12px;padding:9px 12px;cursor:pointer}
.history-mini-btn:hover{background:#e1ecff}
.history-entry{border:1px solid var(--line);border-radius:16px;padding:14px 16px;background:#fff;margin-bottom:12px}
.history-entry-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;color:var(--blue-dark)}
.history-entry-head span{color:var(--muted);font-size:.82rem;font-weight:700}
#competenceHistoryWrap{max-height:360px;overflow:auto;padding-right:4px}
@media (max-width:1024px){.navigator-grid{grid-template-columns:1fr}.roulette-track{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.roulette-track{grid-template-columns:1fr}.roulette-actions{width:100%;justify-content:flex-end}}

/* --- Tuteur V9: vue simplifiée et conviviale --- */
.tutor-card{min-height:860px}
.tutor-dashboard{gap:20px}
.tutor-header h2{margin-bottom:12px}
.tutor-side-nav{margin-bottom:8px}
.tutor-sidebar-note{margin-top:auto;padding:16px;border:1px solid rgba(255,255,255,.16);border-radius:18px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.92);line-height:1.5}
.tiny-eyebrow{font-size:.72rem;margin-bottom:8px}
.tutor-top-panel,.tutor-wheel-panel,.tutor-focus-panel,.compact-side-panel{box-shadow:0 12px 28px rgba(23,54,95,.05)}
.tutor-top-grid{display:grid;grid-template-columns:1.25fr .8fr 1.2fr .9fr;gap:14px;align-items:end}
.tutor-apprenti-strip{margin-top:16px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.strip-item{padding:14px 16px;border-radius:18px;background:linear-gradient(180deg,#ffffff 0%,#f7faff 100%);border:1px solid var(--line);display:grid;gap:6px}
.strip-item span{font-size:.8rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.strip-item strong{font-size:1rem;color:var(--blue-dark);line-height:1.35}
.compact-head{gap:10px}
.tutor-roulette{grid-template-columns:repeat(5,minmax(0,1fr))}
.tutor-roulette-chip{min-height:126px;padding:16px}
.tutor-main-grid{display:grid;grid-template-columns:minmax(0,1.25fr) 380px;gap:18px}
.focus-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px}
.focus-kicker{margin:0 0 8px;color:var(--orange);font-size:.82rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.focus-nav{display:flex;gap:10px;flex-wrap:wrap}
.compact-chip-btn{padding:12px 14px;border-radius:14px;font-size:.92rem}
.triptych-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}
.status-mini-card{padding:16px;border-radius:18px;border:1px solid var(--line);background:linear-gradient(180deg,#ffffff 0%,#f7faff 100%);display:grid;gap:8px}
.status-mini-card span{font-size:.82rem;font-weight:800;color:var(--muted)}
.status-mini-card strong{font-size:1.05rem;color:var(--blue-dark);line-height:1.3}
.status-mini-card small{color:var(--muted);font-size:.82rem}
.tutor-status-highlight{border-color:rgba(242,140,27,.38);background:linear-gradient(180deg,#fffdf8 0%,#fff7ee 100%)}
.quick-eval-box{display:grid;gap:16px;padding:20px;border-radius:22px;border:1px solid #e5ecf7;background:linear-gradient(180deg,#fbfdff 0%,#f6faff 100%)}
.quick-eval-box h4{margin:0 0 6px}
.level-choice-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.level-choice{appearance:none;border:1px solid var(--line);background:#fff;color:var(--blue-dark);border-radius:16px;padding:16px 10px;font-weight:800;cursor:pointer;transition:all .18s ease;min-height:66px}
.level-choice:hover{transform:translateY(-1px);border-color:rgba(36,95,202,.35);box-shadow:0 10px 24px rgba(36,95,202,.08)}
.level-choice.active{border-color:transparent;background:linear-gradient(90deg,rgba(36,95,202,.14) 0%,rgba(61,121,238,.12) 58%,rgba(242,140,27,.16) 100%);box-shadow:inset 0 0 0 1px rgba(58,111,221,.16),0 14px 28px rgba(36,95,202,.1)}
#tuteurComment{width:100%;border:1px solid var(--line);border-radius:16px;padding:14px 16px;font-family:inherit;font-size:.96rem;background:#fff;color:var(--text);resize:vertical;min-height:112px}
.save-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.tutor-side-stack{display:grid;gap:18px;align-content:start}
.quick-kpi-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}
.quick-kpi{padding:14px;border-radius:18px;background:#f7faff;border:1px solid var(--line);display:grid;gap:8px}
.quick-kpi span{font-size:.8rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.quick-kpi strong{font-size:1.15rem;color:var(--blue-dark)}
.bloc-pill-wrap{display:grid;gap:10px}
.bloc-pill{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:14px 16px;border-radius:18px;border:1px solid var(--line);background:linear-gradient(180deg,#ffffff 0%,#f7faff 100%);cursor:pointer}
.bloc-pill:hover{border-color:rgba(36,95,202,.32)}
.bloc-pill strong{font-size:.95rem;color:var(--blue-dark)}
.bloc-pill span,.bloc-pill em{font-size:.84rem;color:var(--muted);font-style:normal;font-weight:700}
.history-entry{border:1px solid var(--line);border-radius:18px;padding:14px 16px;background:#fff;margin-bottom:12px}
.history-entry-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px;color:var(--blue-dark)}
.history-entry-head span{font-size:.8rem;color:var(--muted);font-weight:700}
@media (max-width:1180px){.tutor-main-grid{grid-template-columns:1fr}.tutor-top-grid,.tutor-apprenti-strip,.triptych-status-grid,.level-choice-grid,.quick-kpi-row{grid-template-columns:1fr 1fr}.tutor-roulette{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.tutor-top-grid,.tutor-apprenti-strip,.triptych-status-grid,.level-choice-grid,.quick-kpi-row,.tutor-roulette{grid-template-columns:1fr}.focus-head,.save-row{flex-direction:column;align-items:flex-start}}

/* --- V10: courbe de progression --- */
.progression-card{min-height:860px}
.progression-dashboard{gap:20px}
.progression-note{margin-top:auto}
.progression-filter-panel,.chart-panel{box-shadow:0 12px 28px rgba(23,54,95,.05)}
.progression-filters-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr 1.35fr;gap:14px;align-items:end}
.progression-strip{margin-top:16px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.progression-kpis .stat-value{line-height:1.2}
.progress-chart-wrap{padding:10px 6px 4px}
.chart-shell{display:grid;grid-template-columns:140px minmax(0,1fr);gap:14px;align-items:stretch}
.chart-y-side{position:relative;border-radius:22px;background:linear-gradient(180deg,#ffffff 0%,#f7faff 100%);border:1px solid var(--line);min-height:420px;padding:18px 16px}
.chart-y-side span{position:absolute;left:16px;transform:translateY(-50%);font-size:.84rem;font-weight:800;color:var(--blue-dark);white-space:nowrap}
.chart-canvas-wrap{position:relative}
.progress-chart{width:100%;height:auto;display:block}
.chart-grid-line{stroke:#dfe8f6;stroke-width:1}
.chart-axis-line{stroke:#9fb3d9;stroke-width:1.5}
.chart-axis-label{fill:#5f7699;font-size:11px;font-weight:700}
.chart-point{cursor:pointer;transition:transform .15s ease, r .15s ease, filter .15s ease}
.chart-point:hover,.chart-point:focus{transform:scale(1.08);filter:drop-shadow(0 8px 16px rgba(23,54,95,.18));outline:none}
.chart-tooltip{position:absolute;z-index:5;max-width:280px;padding:14px 16px;border-radius:18px;background:#fff;border:1px solid #d9e5f6;box-shadow:0 16px 44px rgba(23,54,95,.18);display:grid;gap:6px}
.chart-tooltip-role{font-size:.76rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.chart-tooltip strong{font-size:1rem;color:var(--blue-dark)}
.chart-tooltip p{margin:0;color:#5d7293;line-height:1.42;font-size:.88rem}
.chart-legend{display:flex;gap:10px;flex-wrap:wrap}
.legend-chip{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;border:1px solid var(--line);font-weight:800;font-size:.88rem;background:#fff;color:var(--blue-dark)}
.legend-chip::before{content:'';width:10px;height:10px;border-radius:50%;display:inline-block}
.legend-apprenti::before{background:#2f6df6}
.legend-tuteur::before{background:#f28c1b}
.legend-formateur::before{background:#e05a54}
.progression-bottom-grid{display:grid;grid-template-columns:340px minmax(0,1fr);gap:18px}
.reading-grid{display:grid;gap:12px}
.reading-card{padding:16px;border-radius:18px;border:1px solid var(--line);background:linear-gradient(180deg,#ffffff 0%,#f7faff 100%);display:grid;gap:8px}
.reading-card span{font-size:.8rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.reading-card strong{font-size:1.05rem;color:var(--blue-dark)}
.reading-card small{color:var(--muted);font-size:.84rem;line-height:1.45}
.progress-history-wrap{max-height:420px;overflow:auto;padding-right:4px}
.compact-history-entry .level-pill{margin-bottom:8px}
.history-competence-label{font-weight:800;color:var(--blue-dark);margin:0 0 6px}
@media (max-width:1180px){.progression-filters-grid,.progression-strip{grid-template-columns:1fr 1fr}.progression-bottom-grid{grid-template-columns:1fr}}
@media (max-width:760px){.progression-filters-grid,.progression-strip{grid-template-columns:1fr}.chart-legend{width:100%}.chart-zone-labels{position:relative;left:auto;top:auto;bottom:auto;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 10px}.y-step,.y-step-inline{position:relative;left:auto;top:auto !important;transform:none}}


/* --- Tutor page v11 simplification --- */
.tutor-top-grid-simple{grid-template-columns:minmax(320px,520px)}
.tutor-apprenti-strip-simple{grid-template-columns:repeat(3,minmax(0,1fr))}
.level-choice-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.level-choice{display:grid;gap:6px;align-content:start;text-align:left;padding:14px 14px 12px;min-height:94px;border-width:2px}
.level-choice-title{font-size:1rem;font-weight:800;line-height:1.2}
.level-choice-help{display:block;font-size:.78rem;line-height:1.35;opacity:.92;font-weight:600}
.level-choice.level-neutral{background:#fff;color:var(--blue-dark);border-color:var(--line)}
.level-choice.level-danger{background:#fff1f0;color:#9f1d1d;border-color:#f3b1ae}
.level-choice.level-warning{background:#fff6ea;color:#9a5a00;border-color:#ffd49a}
.level-choice.level-success{background:#edf9f0;color:#17603b;border-color:#b9e3c5}
.level-choice.level-info{background:#edf4ff;color:#18458c;border-color:#bfd5ff}
.level-choice.level-neutral.active{box-shadow:0 0 0 4px rgba(36,95,202,.12),0 16px 28px rgba(23,54,95,.08);transform:translateY(-1px)}
.level-choice.level-danger.active{box-shadow:0 0 0 4px rgba(217,70,70,.12),0 16px 28px rgba(159,29,29,.10);transform:translateY(-1px)}
.level-choice.level-warning.active{box-shadow:0 0 0 4px rgba(242,140,27,.15),0 16px 28px rgba(154,90,0,.10);transform:translateY(-1px)}
.level-choice.level-success.active{box-shadow:0 0 0 4px rgba(34,197,94,.12),0 16px 28px rgba(21,96,59,.10);transform:translateY(-1px)}
.level-choice.level-info.active{box-shadow:0 0 0 4px rgba(59,130,246,.14),0 16px 28px rgba(24,69,140,.10);transform:translateY(-1px)}
.level-pill.level-neutral{background:#f2f5fb;color:#5f7393;border-color:#dbe5f2}
.level-pill.level-danger{background:#fff1f0;color:#9f1d1d;border:1px solid #f3b1ae}
.level-pill.level-warning{background:#fff6ea;color:#9a5a00;border:1px solid #ffd49a}
.level-pill.level-success{background:#edf9f0;color:#17603b;border:1px solid #b9e3c5}
.level-pill.level-info{background:#edf4ff;color:#18458c;border:1px solid #bfd5ff}
@media (max-width:1180px){.tutor-apprenti-strip-simple,.level-choice-grid{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.tutor-top-grid-simple,.tutor-apprenti-strip-simple,.level-choice-grid{grid-template-columns:1fr}}


/* --- V12: page tuteur plus épurée avec fenêtre d'évaluation --- */
.tutor-card-v12{min-height:880px}
.tutor-dashboard-v12{gap:18px}
.tutor-header-v12{align-items:flex-start}
.tutor-top-panel-v12,.tutor-wheel-panel-v12,.tutor-focus-panel-v12,.compact-side-panel-v12{box-shadow:0 14px 32px rgba(23,54,95,.05)}
.tutor-sidebar-note-v12{background:linear-gradient(180deg,rgba(255,255,255,.1) 0%,rgba(255,255,255,.07) 100%)}
.tutor-wheel-panel-v12 .panel-head{align-items:center}
.tutor-roulette-v12{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.tutor-roulette-chip-v12{min-height:132px;padding:18px;border-radius:22px}
.tutor-roulette-chip-v12 strong{font-size:1.02rem}
.tutor-main-grid-v12{grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}
.tutor-focus-panel-v12{padding:22px 22px 20px}
.focus-head-v12{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start}
.competence-focus-card{padding:20px;border-radius:22px;border:1px solid var(--line);background:linear-gradient(180deg,#ffffff 0%,#f7faff 100%)}
.focus-actions-v12{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.triptych-status-grid-v12{margin-top:2px;margin-bottom:18px}
.tutor-summary-band{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}
.summary-band-card{padding:16px 18px;border-radius:18px;border:1px solid var(--line);background:#f8fbff;display:grid;gap:6px}
.summary-band-card span{font-size:.8rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.summary-band-card strong{font-size:1.2rem;color:var(--blue-dark)}
.bloc-summary-simple{display:grid;gap:12px}
.bloc-summary-simple h4{margin:0;color:var(--blue-dark)}
.bloc-pill-wrap-v12{grid-template-columns:1fr;gap:10px}
.bloc-pill-v12{cursor:default}
.compact-side-panel-v12{padding:20px}
.history-entry-v12{border-radius:20px;box-shadow:0 8px 20px rgba(23,54,95,.04)}
.level-choice-v12{display:grid;gap:6px;align-content:start;text-align:left;padding:16px 14px 14px;min-height:92px;border-radius:18px;border:1px solid #d9e1ef;background:#ffffff;color:var(--blue-dark);transition:all .18s ease}
.level-choice-v12:hover{transform:translateY(-1px);background:#f6f9ff;border-color:#b9c8e3;box-shadow:0 12px 24px rgba(23,54,95,.06)}
.level-choice-v12.active{background:#eef4ff;border-color:#2f5fd0;box-shadow:0 0 0 3px rgba(47,95,208,.12)}
.level-choice-v12 .level-choice-help{color:#6a7e9e}
.modal-backdrop{position:fixed;inset:0;background:rgba(11,24,55,.38);display:flex;align-items:center;justify-content:center;padding:24px;z-index:2000}
.modal-card{width:min(760px,100%);background:#fff;border-radius:28px;border:1px solid rgba(205,217,237,.85);box-shadow:0 28px 80px rgba(12,26,58,.24);overflow:hidden}
.modal-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:24px 24px 18px;border-bottom:1px solid #e8eef8;background:linear-gradient(180deg,#ffffff 0%,#f7faff 100%)}
.modal-head h3{margin:8px 0 6px;color:var(--blue-dark)}
.modal-close-btn{appearance:none;border:none;background:#eff4ff;color:var(--blue-dark);width:42px;height:42px;border-radius:14px;font-size:1.1rem;font-weight:800;cursor:pointer}
.modal-close-btn:hover{background:#dfe9ff}
.eval-modal-body{display:grid;gap:18px;padding:22px 24px 24px}
.eval-guide-card{padding:16px 18px;border-radius:18px;border:1px solid #e3ebf8;background:#f8fbff;display:grid;gap:6px}
.eval-guide-card span{font-size:.82rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.eval-guide-card p{margin:0;color:#5c7396;line-height:1.5}
.level-choice-grid-v12{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.save-row-v12{align-items:flex-end}
.modal-actions{display:flex;gap:10px;flex-wrap:wrap}
body.modal-open{overflow:hidden}
@media (max-width:1180px){.tutor-main-grid-v12{grid-template-columns:1fr}.tutor-summary-band,.triptych-status-grid-v12,.level-choice-grid-v12{grid-template-columns:1fr 1fr}.focus-head-v12{grid-template-columns:1fr}}
@media (max-width:760px){.tutor-roulette-v12,.tutor-apprenti-strip-simple,.tutor-summary-band,.triptych-status-grid-v12,.level-choice-grid-v12{grid-template-columns:1fr}.focus-actions-v12,.modal-actions{width:100%}.modal-backdrop{padding:14px}.modal-head,.eval-modal-body{padding-left:18px;padding-right:18px}}


/* V13 tutor page refinements */
.tutor-header-v12 h2{font-size:clamp(2rem,3.4vw,3.2rem);line-height:1.02}
.tutor-header-v12 .header-text{max-width:900px}
.tutor-wheel-panel-v12{padding:20px 22px}
.tutor-wheel-panel-v12 .panel-head{margin-bottom:14px}
.tutor-roulette-v12{grid-template-columns:repeat(3,minmax(220px,1fr));align-items:stretch}
.tutor-roulette-chip-v12{min-height:118px;padding:18px 18px 16px;border-radius:24px;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);box-shadow:0 10px 24px rgba(23,54,95,.04)}
.tutor-roulette-chip-v12.active{border-color:#2f5fd0;box-shadow:0 14px 30px rgba(47,95,208,.12);transform:translateY(-1px)}
.tutor-main-grid-v12{grid-template-columns:minmax(0,1fr) 330px;gap:20px}
.tutor-focus-panel-v12{padding:24px;border-radius:28px}
.focus-head-v12{grid-template-columns:1fr;gap:14px}
.competence-focus-card{display:grid;grid-template-columns:180px minmax(0,1fr);gap:18px;align-items:start;padding:22px 22px 18px;border-radius:24px;border:1px solid rgba(47,95,208,.18);background:linear-gradient(135deg,#ffffff 0%,#f7fbff 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.75)}
.focus-kicker{display:inline-flex;align-items:flex-start;justify-content:flex-start;min-height:100%;padding:0 18px 0 0;margin:0;border-right:1px solid rgba(47,95,208,.12);font-size:.88rem;line-height:1.35;color:var(--orange);font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.competence-focus-card h3{margin:0;font-size:2rem;line-height:1.1;max-width:680px}
.competence-focus-card .panel-subtext{margin-top:10px;font-size:1rem}
.focus-actions-v12{justify-content:flex-start;padding-left:2px}
.compact-chip-btn,.focus-actions-v12 .primary-btn{min-height:48px;border-radius:16px;padding:0 18px}
.triptych-status-grid-v12{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.status-mini-card{min-height:112px;border-radius:20px;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);box-shadow:0 10px 24px rgba(23,54,95,.04)}
.status-mini-card strong{display:block;margin-top:8px;font-size:1.35rem;line-height:1.1}
.status-mini-card small{display:block;margin-top:8px}
.tutor-summary-band{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.summary-band-card{min-height:92px;border-radius:20px;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);box-shadow:0 10px 24px rgba(23,54,95,.04)}
.summary-band-card strong{font-size:1.65rem}
.bloc-summary-simple{margin-top:18px;padding-top:18px;border-top:1px solid rgba(47,95,208,.10)}
.bloc-pill-wrap-v12{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.bloc-pill-v12{padding:14px 16px;border-radius:18px;background:#f8fbff;border:1px solid rgba(47,95,208,.10)}
.compact-side-panel-v12{padding:22px;border-radius:28px;position:sticky;top:20px}
.history-entry-v12{padding:16px 16px 14px;border:1px solid rgba(47,95,208,.12);background:linear-gradient(180deg,#ffffff 0%,#fbfcff 100%)}
.history-entry-v12 p{margin:12px 0 0;line-height:1.45;color:#3a517a}
.level-pill{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 12px;border-radius:999px;font-weight:800}
.level-choice-grid-v12{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.level-choice-v12{position:relative;overflow:hidden;min-height:118px;border-width:2px;border-radius:20px;display:flex;flex-direction:column;justify-content:space-between;padding:16px 14px 14px}
.level-choice-v12::after{content:'';position:absolute;left:0;right:0;bottom:0;height:5px;opacity:.95}
.level-choice-v12 .level-choice-title{font-size:1.02rem}
.level-choice-v12 .level-choice-help{font-size:.8rem;line-height:1.35}
.level-choice-v12.level-neutral{background:linear-gradient(180deg,#ffffff 0%,#f5f7fb 100%);border-color:#d5dce8;color:#27406d}
.level-choice-v12.level-neutral::after{background:#a8b4c7}
.level-choice-v12.level-danger{background:linear-gradient(180deg,#fff4f3 0%,#ffe6e3 100%);border-color:#f0b3ad;color:#8f1f1f}
.level-choice-v12.level-danger::after{background:#d94b41}
.level-choice-v12.level-warning{background:linear-gradient(180deg,#fff7ee 0%,#ffecd3 100%);border-color:#ffd39a;color:#9a5c00}
.level-choice-v12.level-warning::after{background:#f28c1b}
.level-choice-v12.level-success{background:linear-gradient(180deg,#f2fcf4 0%,#ddf3e1 100%);border-color:#b8dfc1;color:#1e6a40}
.level-choice-v12.level-success::after{background:#24a05a}
.level-choice-v12.level-info{background:linear-gradient(180deg,#eef5ff 0%,#dce9ff 100%);border-color:#bdd2ff;color:#1f4e9a}
.level-choice-v12.level-info::after{background:#2f5fd0}
.level-choice-v12:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(23,54,95,.08)}
.level-choice-v12.active{transform:translateY(-2px)}
.level-choice-v12.level-neutral.active{box-shadow:0 0 0 4px rgba(168,180,199,.18),0 16px 28px rgba(23,54,95,.08)}
.level-choice-v12.level-danger.active{box-shadow:0 0 0 4px rgba(217,75,65,.18),0 16px 28px rgba(159,29,29,.12)}
.level-choice-v12.level-warning.active{box-shadow:0 0 0 4px rgba(242,140,27,.18),0 16px 28px rgba(154,90,0,.12)}
.level-choice-v12.level-success.active{box-shadow:0 0 0 4px rgba(36,160,90,.18),0 16px 28px rgba(21,96,59,.12)}
.level-choice-v12.level-info.active{box-shadow:0 0 0 4px rgba(47,95,208,.18),0 16px 28px rgba(24,69,140,.12)}
.eval-guide-card{border-radius:20px;padding:16px 18px;background:linear-gradient(180deg,#f7fbff 0%,#eef5ff 100%);border:1px solid rgba(47,95,208,.12)}
.eval-guide-card span{display:block;margin-bottom:6px;font-weight:800;color:var(--blue-dark)}
.eval-guide-card p{margin:0;line-height:1.45;color:#526b92}
.eval-modal-card{max-width:980px;border-radius:30px}
.modal-head{padding-bottom:18px;border-bottom:1px solid rgba(47,95,208,.08)}
.eval-modal-body{padding-top:18px}
@media (max-width:1180px){
  .tutor-main-grid-v12{grid-template-columns:1fr}
  .compact-side-panel-v12{position:static}
  .competence-focus-card{grid-template-columns:1fr}
  .focus-kicker{border-right:0;padding-right:0}
  .bloc-pill-wrap-v12,.triptych-status-grid-v12,.tutor-summary-band,.level-choice-grid-v12{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .tutor-roulette-v12,.tutor-apprenti-strip-simple,.bloc-pill-wrap-v12,.triptych-status-grid-v12,.tutor-summary-band,.level-choice-grid-v12{grid-template-columns:1fr}
  .tutor-wheel-panel-v12,.tutor-focus-panel-v12,.compact-side-panel-v12{padding:18px}
  .focus-actions-v12{flex-direction:column;align-items:stretch}
  .compact-chip-btn,.focus-actions-v12 .primary-btn{width:100%}
  .competence-focus-card h3{font-size:1.55rem}
}


/* --- V13.1: corrections popup évaluation tuteur --- */
.eval-guide-card-v13{padding:14px 18px;background:linear-gradient(180deg,#f8fbff 0%,#f2f7ff 100%)}
.eval-guide-card-v13 span{margin-bottom:0;font-size:1rem;letter-spacing:.01em}
.eval-guide-card-v13 p{display:none}
.level-choice-v12{min-height:124px;padding:16px 14px 16px;box-shadow:inset 0 -1px 0 rgba(255,255,255,.4)}
.level-choice-v12 .level-choice-title{font-size:1.04rem;font-weight:800}
.level-choice-v12 .level-choice-help{margin-top:8px;font-weight:600;opacity:.92}
.level-choice-v12.level-neutral{background:linear-gradient(180deg,#ffffff 0%,#eef3f9 100%);border-color:#cbd6e7;color:#27406d}
.level-choice-v12.level-neutral::after{background:#95a5bf}
.level-choice-v12.level-danger{background:linear-gradient(180deg,#fff1ef 0%,#ffdcd6 100%);border-color:#ef9c92;color:#8b1717}
.level-choice-v12.level-danger::after{background:#da3d30}
.level-choice-v12.level-warning{background:linear-gradient(180deg,#fff8ef 0%,#ffe3b5 100%);border-color:#f3bf67;color:#8c5400}
.level-choice-v12.level-warning::after{background:#ee8a10}
.level-choice-v12.level-success{background:linear-gradient(180deg,#f1fff5 0%,#d0f0db 100%);border-color:#8fd0a8;color:#135f37}
.level-choice-v12.level-success::after{background:#1fa35b}
.level-choice-v12.level-info{background:linear-gradient(180deg,#eef5ff 0%,#cfe0ff 100%);border-color:#86aef8;color:#143f87}
.level-choice-v12.level-info::after{background:#2d67da}
.level-choice-v12:hover{transform:translateY(-2px) scale(1.01);box-shadow:0 16px 30px rgba(23,54,95,.10)}
.save-row-v12{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
.save-row-v12 .inline-message{flex:1;min-width:180px;margin:0;padding-right:8px}
.save-row-v12 .modal-actions{justify-content:flex-end;align-items:center;flex-wrap:nowrap}
.save-row-v12 .secondary-btn{min-width:140px;height:60px;padding:0 22px;white-space:nowrap}
.save-row-v12 .primary-btn.inline-btn{min-width:280px;max-width:none;height:60px;padding:0 28px;border-radius:18px;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;line-height:1.1}
@media (max-width:760px){.save-row-v12{flex-direction:column;align-items:stretch}.save-row-v12 .modal-actions{width:100%;flex-wrap:wrap}.save-row-v12 .primary-btn.inline-btn,.save-row-v12 .secondary-btn{width:100%;min-width:0}}


.chart-panel-head-v15{align-items:flex-start;gap:18px}
.progress-chart-wrap-v15{padding-top:2px}
.chart-legend-rich{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:10px;min-width:min(100%,560px)}
.legend-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:18px;border:1px solid var(--line);background:linear-gradient(180deg,#fff 0%,#f7faff 100%);box-shadow:0 10px 24px rgba(23,54,95,.04)}
.legend-line{width:34px;height:0;border-top:4px solid var(--legend);position:relative;display:inline-block;flex:0 0 auto}
.legend-line::after{content:'';position:absolute;right:-1px;top:-7px;width:12px;height:12px;border-radius:50%;background:var(--legend);border:3px solid #fff;box-shadow:0 4px 10px rgba(23,54,95,.12)}
.legend-card strong{display:block;color:var(--blue-dark);font-size:.95rem}
.legend-card small{display:block;color:#617896;font-size:.82rem;line-height:1.35;margin-top:2px}
.chart-shell{grid-template-columns:156px minmax(0,1fr);gap:16px}
.chart-y-side{position:relative;border-radius:24px;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);border:1px solid var(--line);min-height:470px;padding:18px 16px;overflow:hidden}
.chart-y-side::before{content:'';position:absolute;inset:12px;background:linear-gradient(180deg,rgba(47,109,246,.05) 0%,rgba(47,109,246,0) 24%,rgba(242,140,27,.04) 56%,rgba(23,63,130,.04) 100%);border-radius:18px}
.chart-y-side span{display:flex;align-items:center;gap:10px;font-size:.9rem;font-weight:900;color:var(--blue-dark);z-index:1}
.chart-y-side span::before{content:'';width:10px;height:10px;border-radius:50%;background:#c9d6ea;box-shadow:0 0 0 5px rgba(201,214,234,.24);flex:0 0 auto}
.chart-y-side span:nth-child(1)::before{background:#2f6df6;box-shadow:0 0 0 5px rgba(47,109,246,.16)}
.chart-y-side span:nth-child(2)::before{background:#2ca85d;box-shadow:0 0 0 5px rgba(44,168,93,.14)}
.chart-y-side span:nth-child(3)::before{background:#f28c1b;box-shadow:0 0 0 5px rgba(242,140,27,.15)}
.chart-y-side span:nth-child(4)::before{background:#e0544f;box-shadow:0 0 0 5px rgba(224,84,79,.14)}
.chart-y-side span:nth-child(5)::before{background:#8ea3c5;box-shadow:0 0 0 5px rgba(142,163,197,.15)}
.chart-canvas-wrap{position:relative;border-radius:26px;padding:16px 16px 10px;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);border:1px solid #dbe6f6;box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 16px 34px rgba(23,54,95,.05)}
.chart-caption-row{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;margin:0 8px 8px;color:#6c82a1;font-size:.8rem;font-weight:700}
.chart-caption-row span:nth-child(2){justify-self:center;color:var(--blue-dark)}
.chart-caption-row span:last-child{justify-self:end}
.chart-grid-line{stroke:#e3ebf7;stroke-width:1.2;stroke-dasharray:0}
.chart-axis-line{stroke:#a5b7d6;stroke-width:1.6}
.chart-axis-label{fill:#6a82a2;font-size:12px;font-weight:800}
.chart-axis-time{font-size:10px;fill:#93a5c2}
.chart-point{cursor:pointer;transition:transform .15s ease, r .15s ease, filter .15s ease}
.chart-hit-area{cursor:pointer}
.chart-point:hover,.chart-point:focus{transform:scale(1.16);filter:drop-shadow(0 10px 18px rgba(23,54,95,.2));outline:none}
.chart-hover-guide{position:absolute;top:38px;bottom:24px;width:2px;background:linear-gradient(180deg,rgba(47,109,246,.08) 0%,rgba(47,109,246,.28) 34%,rgba(47,109,246,.08) 100%);transform:translateX(-50%);pointer-events:none}
.chart-tooltip{position:absolute;z-index:5;max-width:320px;padding:16px 18px;border-radius:20px;background:#fff;border:1px solid #d9e5f6;box-shadow:0 18px 46px rgba(23,54,95,.2);display:grid;gap:8px}
.chart-tooltip-role{font-size:.76rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.chart-tooltip strong{font-size:1.05rem;color:var(--blue-dark)}
.chart-tooltip p{margin:0;color:#5d7293;line-height:1.45;font-size:.88rem;display:grid;gap:3px}
.chart-tooltip p span{font-size:.72rem;text-transform:uppercase;font-weight:900;letter-spacing:.05em;color:#8ca0bf}
.tooltip-competence{color:var(--blue-dark) !important;font-weight:700}
@media (max-width:1180px){.chart-legend-rich{grid-template-columns:1fr}.chart-shell{grid-template-columns:120px minmax(0,1fr)}}
@media (max-width:760px){.chart-panel-head-v15{flex-direction:column}.chart-caption-row{grid-template-columns:1fr;gap:4px}.chart-caption-row span,.chart-caption-row span:last-child,.chart-caption-row span:nth-child(2){justify-self:start}.chart-legend-rich{grid-template-columns:1fr}.chart-shell{grid-template-columns:1fr}.chart-y-side{min-height:auto;padding:16px}.chart-y-side::before{display:none}.chart-y-side span{position:relative;left:auto;top:auto !important;transform:none;margin-bottom:10px}}


/* V16 progression chart */
.chart-panel-head-v15{align-items:flex-start;gap:22px}
.chart-legend-rich{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;min-width:0}
.legend-chip{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:18px;border:1px solid #d9e5f6;background:#fff;box-shadow:0 10px 24px rgba(23,54,95,.06)}
.legend-dot{width:12px;height:12px;border-radius:50%;background:var(--legend);box-shadow:0 0 0 6px color-mix(in srgb, var(--legend) 18%, white)}
.legend-chip strong{display:block;color:var(--blue-dark);font-size:.95rem;line-height:1.1}
.legend-chip small{display:block;color:#6f84a3;font-size:.8rem;margin-top:3px}
.legend-chip em{font-style:normal;font-weight:900;color:var(--blue-dark);background:#f5f8fe;border:1px solid #d9e5f6;border-radius:999px;padding:6px 10px;white-space:nowrap}
.chart-shell-v16{display:grid;grid-template-columns:130px minmax(0,1fr);gap:18px;align-items:stretch}
.chart-y-side-v16{position:relative;min-height:520px;border:none;background:transparent;padding:18px 0;overflow:visible}
.chart-y-side-v16 span{position:absolute;left:0;transform:translateY(-50%);display:flex;align-items:center;gap:10px;font-size:.96rem;font-weight:900;color:var(--blue-dark);white-space:nowrap}
.chart-y-side-v16 span i{display:inline-block;width:12px;height:12px;border-radius:50%;background:#bccbe3;box-shadow:0 0 0 7px rgba(188,203,227,.18)}
.chart-y-side-v16 span:nth-child(1) i{background:#2d67da;box-shadow:0 0 0 7px rgba(45,103,218,.12)}
.chart-y-side-v16 span:nth-child(2) i{background:#1fa35b;box-shadow:0 0 0 7px rgba(31,163,91,.12)}
.chart-y-side-v16 span:nth-child(3) i{background:#ee8a10;box-shadow:0 0 0 7px rgba(238,138,16,.12)}
.chart-y-side-v16 span:nth-child(4) i{background:#e0544f;box-shadow:0 0 0 7px rgba(224,84,79,.12)}
.chart-y-side-v16 span:nth-child(5) i{background:#8aa1c5;box-shadow:0 0 0 7px rgba(138,161,197,.12)}
.chart-canvas-wrap-v16{position:relative;border-radius:28px;padding:18px 18px 12px;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);border:1px solid #dce7f6;box-shadow:0 18px 38px rgba(23,54,95,.06), inset 0 1px 0 rgba(255,255,255,.9)}
.chart-caption-row-v16{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;margin:0 10px 10px;color:#6f84a3;font-size:.8rem;font-weight:800}
.chart-caption-row-v16 span:nth-child(2){justify-self:center;color:var(--blue-dark)}
.chart-caption-row-v16 span:last-child{justify-self:end}
.progress-chart-v16{width:100%;height:auto;display:block}
.chart-grid-line{stroke:#dde7f4;stroke-width:1.2}
.chart-axis-line{stroke:#a7bbd8;stroke-width:1.5}
.chart-axis-left{opacity:.4}
.chart-axis-label{fill:#6f84a3;font-size:12px;font-weight:800}
.chart-axis-time{fill:#9caecc;font-size:10px}
.chart-hover-guide{position:absolute;top:56px;bottom:28px;width:2px;background:linear-gradient(180deg,rgba(47,109,246,.04) 0%,rgba(47,109,246,.3) 50%,rgba(47,109,246,.04) 100%);transform:translateX(-50%);pointer-events:none;border-radius:999px}
.chart-tooltip{position:absolute;z-index:5;max-width:340px;padding:16px 18px;border-radius:18px;background:#fff;border:1px solid #d8e4f5;box-shadow:0 18px 48px rgba(23,54,95,.18);display:grid;gap:8px}
.chart-tooltip-role{font-size:.75rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#7b8eac}
.chart-tooltip strong{font-size:1.08rem;color:var(--blue-dark)}
.chart-tooltip p{margin:0;color:#607898;line-height:1.42;font-size:.88rem;display:grid;gap:3px}
.chart-tooltip p span{font-size:.72rem;text-transform:uppercase;font-weight:900;letter-spacing:.05em;color:#8ca0bf}
.tooltip-competence{color:var(--blue-dark)!important;font-weight:800}
@media (max-width:1180px){.chart-panel-head-v15{flex-direction:column}.chart-legend-rich{justify-content:flex-start}.chart-shell-v16{grid-template-columns:110px minmax(0,1fr)}}
@media (max-width:760px){.chart-shell-v16{grid-template-columns:1fr}.chart-y-side-v16{min-height:auto;padding:0 0 8px}.chart-y-side-v16 span{position:relative;left:auto;top:auto!important;transform:none;margin-bottom:10px}.chart-caption-row-v16{grid-template-columns:1fr;gap:4px}.chart-caption-row-v16 span,.chart-caption-row-v16 span:last-child,.chart-caption-row-v16 span:nth-child(2){justify-self:start}}


/* V17 progression refinement */
.chart-panel-head-v15{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px}
.chart-legend-rich{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}
.legend-mini{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid #dbe5f3;border-radius:16px;background:rgba(255,255,255,.82);box-shadow:none;backdrop-filter:blur(8px)}
.legend-line{width:22px;height:0;border-top:3px solid var(--legend);position:relative;display:inline-block;flex:0 0 auto}
.legend-line::after{content:'';position:absolute;right:-1px;top:-5px;width:9px;height:9px;border-radius:50%;background:var(--legend);box-shadow:0 0 0 2px #fff}
.legend-mini-text{display:grid;gap:1px;min-width:72px}
.legend-mini strong{font-size:.92rem;color:var(--blue-dark);line-height:1}
.legend-mini small{font-size:.76rem;color:#6c82a4}
.legend-level{padding:4px 8px;border-radius:999px;background:#f4f7fc;color:#567095;font-size:.76rem;font-weight:800;white-space:nowrap}
.chart-shell-v17{display:grid;grid-template-columns:118px minmax(0,1fr);gap:16px;align-items:stretch}
.chart-y-side-v17{position:relative;min-height:460px;padding:8px 0;background:transparent;border:none}
.chart-scale-rail{position:absolute;left:28px;top:24px;bottom:78px;width:2px;border-radius:999px;background:linear-gradient(180deg,#d7e4f6 0%,#eaf0f8 100%)}
.chart-y-side-v17 span{position:absolute;left:0;transform:translateY(-50%);display:flex;align-items:center;gap:10px;color:var(--blue-dark);font-weight:800;font-size:.9rem;white-space:nowrap}
.chart-y-side-v17 span i{width:10px;height:10px;border-radius:50%;display:inline-block;background:#b6c6dd;box-shadow:0 0 0 4px rgba(182,198,221,.16)}
.chart-y-side-v17 span:nth-child(2) i{background:#2d67da;box-shadow:0 0 0 4px rgba(45,103,218,.14)}
.chart-y-side-v17 span:nth-child(3) i{background:#23a45f;box-shadow:0 0 0 4px rgba(35,164,95,.14)}
.chart-y-side-v17 span:nth-child(4) i{background:#ef911e;box-shadow:0 0 0 4px rgba(239,145,30,.14)}
.chart-y-side-v17 span:nth-child(5) i{background:#df5b54;box-shadow:0 0 0 4px rgba(223,91,84,.14)}
.chart-y-side-v17 span:nth-child(6) i{background:#8aa1c5;box-shadow:0 0 0 4px rgba(138,161,197,.14)}
.chart-canvas-wrap-v17{position:relative;padding:14px 16px 8px;border-radius:24px;background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);border:1px solid #dce5f2;box-shadow:0 10px 30px rgba(23,54,95,.05)}
.chart-caption-row-v17{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;padding:0 6px 8px;color:#7b8eac;font-size:.76rem;font-weight:800;letter-spacing:.01em}
.chart-caption-row-v17 span:nth-child(2){justify-self:center;color:var(--blue-dark)}
.chart-caption-row-v17 span:last-child{justify-self:end}
.progress-chart-v17{width:100%;height:auto;display:block}
.chart-grid-line{stroke:#dfe7f2;stroke-width:1}
.chart-axis-line{stroke:#b6c7de;stroke-width:1.2}
.chart-axis-left{opacity:.55}
.chart-axis-label{fill:#7f91ac;font-size:11px;font-weight:700}
.chart-point{transition:transform .15s ease, filter .15s ease}
.chart-point:hover,.chart-point:focus{transform:scale(1.12);filter:drop-shadow(0 8px 14px rgba(23,54,95,.16))}
.chart-hover-guide{position:absolute;top:42px;bottom:24px;width:1px;background:linear-gradient(180deg,rgba(47,109,246,.02),rgba(47,109,246,.22),rgba(47,109,246,.02));transform:translateX(-50%);pointer-events:none}
.chart-tooltip{max-width:300px;padding:14px 16px;border-radius:16px;border:1px solid #dce5f3;box-shadow:0 18px 40px rgba(23,54,95,.14)}
.chart-tooltip strong{font-size:1rem}
@media (max-width:1180px){.chart-panel-head-v15{grid-template-columns:1fr}.chart-legend-rich{justify-content:flex-start}.chart-shell-v17{grid-template-columns:100px minmax(0,1fr)}}
@media (max-width:760px){.chart-shell-v17{grid-template-columns:1fr}.chart-y-side-v17{min-height:auto;padding:0 0 8px}.chart-scale-rail{display:none}.chart-y-side-v17 span{position:relative;left:auto;top:auto!important;transform:none;margin-bottom:8px}.chart-caption-row-v17{grid-template-columns:1fr;gap:4px}.chart-caption-row-v17 span,.chart-caption-row-v17 span:last-child,.chart-caption-row-v17 span:nth-child(2){justify-self:start}}

/* V18 progression premium */
.chart-panel{overflow:hidden}
.chart-panel-head-v15{align-items:flex-start;gap:18px}
.chart-legend-rich{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;min-width:0}
.premium-legend-chip{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:10px;row-gap:2px;align-items:center;padding:10px 14px;border:1px solid #dbe5f3;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(23,54,95,.05)}
.premium-legend-chip .legend-dot{grid-row:1 / span 2;width:10px;height:10px;border-radius:50%;background:var(--legend);box-shadow:0 0 0 6px color-mix(in srgb, var(--legend) 14%, white)}
.premium-legend-chip .legend-name{font-weight:800;color:var(--blue-dark);line-height:1}
.premium-legend-chip .legend-stats{font-size:.77rem;color:#7d92b2;line-height:1}
.premium-legend-chip .legend-current{grid-column:2;justify-self:start;font-size:.78rem;padding:3px 8px;border-radius:999px;background:#f4f7fb;color:#5f7698;font-weight:700}

.chart-shell-v18{display:block}
.y-step{position:absolute;left:18px;transform:translateY(-50%);display:flex;align-items:center;justify-content:flex-start;gap:8px;z-index:3;pointer-events:none}
.y-step-dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:var(--level-color);box-shadow:0 0 0 5px var(--level-ring);flex:0 0 auto}
.y-step-content{display:flex;align-items:center;justify-content:flex-start;gap:6px;min-width:0;padding:5px 8px 5px 10px;border-radius:999px;border:1px solid color-mix(in srgb, var(--level-color) 14%, #d8e2f0);background:linear-gradient(180deg,#ffffff 0%, color-mix(in srgb, var(--level-surface) 85%, white) 100%);box-shadow:0 6px 16px rgba(23,54,95,.05)}
.y-step-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:22px;padding:0 6px;border-radius:999px;background:var(--level-color);color:#fff;font-size:.66rem;font-weight:900;letter-spacing:.04em;flex:0 0 auto}
.y-step-label{font-size:.76rem;font-weight:800;color:var(--blue-dark);line-height:1.1;white-space:normal;text-align:left;max-width:86px}
.chart-canvas-wrap-v18{position:relative;padding:18px 20px 12px;border-radius:26px;background:linear-gradient(180deg,#ffffff 0%,#fcfdff 100%);border:1px solid #dde6f3;box-shadow:0 12px 32px rgba(23,54,95,.06)}
.chart-zone-labels{position:absolute;left:0;top:48px;bottom:18px;width:170px;z-index:2}
.y-step-inline{left:22px}

.chart-caption-row-v18{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin:0 0 10px;color:#7388a8;font-size:.8rem;font-weight:700}
.chart-caption-row-v18 span:nth-child(2){justify-self:center;color:var(--blue-dark)}
.chart-caption-row-v18 span:last-child{justify-self:end}
.progress-chart-v18{width:100%;height:auto;display:block}
.premium-grid{stroke:#d9e4f3;stroke-width:1}
.premium-axis-line{stroke:#c7d5e8;stroke-width:1.3}
.premium-axis-label{fill:#7f94b2;font-size:11px;font-weight:700}
.chart-point-ring{transition:transform .18s ease, opacity .18s ease}
.chart-point-group:hover .chart-point-ring,.chart-point-group:focus .chart-point-ring{transform:scale(1.12)}
.chart-hover-guide{position:absolute;top:48px;bottom:16px;width:1px;background:linear-gradient(180deg,rgba(47,109,246,.0) 0%,rgba(47,109,246,.18) 15%,rgba(47,109,246,.18) 85%,rgba(47,109,246,.0) 100%);pointer-events:none}
@media (max-width:1180px){.chart-panel-head-v15{flex-direction:column}.chart-legend-rich{justify-content:flex-start}.chart-shell-v18{grid-template-columns:92px minmax(0,1fr)}.y-step-label{max-width:38px;font-size:.72rem}}
@media (max-width:760px){.chart-shell-v18{grid-template-columns:1fr}.chart-y-side-v18{min-height:auto;padding:12px}.chart-scale-rail-v19{display:none}.y-step{position:relative;right:auto;transform:none;justify-content:flex-start;width:100%;margin-bottom:8px}.y-step-content{justify-content:flex-start}.y-step-label{max-width:none;text-align:left;font-size:.8rem;white-space:nowrap}.chart-caption-row-v18{grid-template-columns:1fr;gap:4px}.chart-caption-row-v18 span,.chart-caption-row-v18 span:last-child,.chart-caption-row-v18 span:nth-child(2){justify-self:start}}


/* --- V32 PDF export --- */
.header-actions{display:flex;align-items:flex-start;justify-content:flex-end}
.pdf-export-btn{min-height:48px;padding:0 18px;white-space:nowrap}
.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.42);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:1200}
.modal-card{width:min(760px,100%);background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:0 24px 64px rgba(15,23,42,.18);padding:24px}
.pdf-modal-card{display:grid;gap:18px}
.icon-btn{appearance:none;border:1px solid var(--line);background:#fff;color:var(--blue-dark);border-radius:14px;width:40px;height:40px;font-size:1rem;font-weight:800;cursor:pointer}
.pdf-export-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:14px}
.check-row{display:flex;align-items:center;gap:10px;color:var(--text);font-weight:600}
.check-row input{width:18px;height:18px}
.pdf-modal-hint{padding:14px 16px;border-radius:16px;background:#f7faff;border:1px solid #dbe8fb;color:#4b6286;font-size:.94rem;line-height:1.5}
.modal-actions{display:flex;justify-content:flex-end;gap:12px}
@media (max-width:900px){
  .dashboard-header{display:grid;gap:14px}
  .header-actions{justify-content:flex-start}
  .pdf-export-grid{grid-template-columns:1fr}
  .modal-card{padding:18px}
}


/* --- V34 chart rendering fixes --- */
.chart-canvas-wrap-v18{padding:18px 20px 16px;border-radius:26px;overflow:hidden}
.chart-zone-labels{position:absolute;left:28px;top:68px;width:170px;height:336px;z-index:3;pointer-events:none}
.y-step{position:absolute;left:0;transform:translateY(-50%);display:flex;align-items:center;gap:8px;max-width:160px}
.y-step-dot{display:none}
.y-step-content{display:none}
.y-step-inline{left:0}
.y-step-badge{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:26px;padding:0 10px;border-radius:999px;background:var(--level-color);color:#fff;font-size:.72rem;font-weight:900;letter-spacing:.03em;box-shadow:0 4px 10px rgba(23,54,95,.10);flex:0 0 auto}
.y-step-label{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;border:1px solid color-mix(in srgb, var(--level-color) 24%, #d8e2f0);background:#fff;color:var(--level-color);font-size:.82rem;font-weight:800;line-height:1;white-space:nowrap;box-shadow:0 4px 12px rgba(23,54,95,.06)}
.progress-chart-v18{overflow:visible}
.premium-legend-chip[data-role="apprenti"], .legend-chip[data-role="apprenti"]{border-color:rgba(47,109,246,.22)}
.premium-legend-chip[data-role="tuteur"], .legend-chip[data-role="tuteur"]{border-color:rgba(242,140,27,.24)}
.premium-legend-chip[data-role="formateur"], .legend-chip[data-role="formateur"]{border-color:rgba(224,90,84,.24)}
#kpiApprenti{color:#2f6df6}
#kpiTuteur{color:#f28c1b}
#kpiFormateur{color:#e05a54}
@media (max-width:1180px){
  .chart-zone-labels{left:18px;width:140px}
  .y-step-label{font-size:.76rem;padding:0 8px}
}
@media (max-width:760px){
  .chart-zone-labels{position:relative;left:auto;top:auto;width:100%;height:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px}
  .y-step{position:relative;transform:none;max-width:none}
  .y-step-label{white-space:normal;line-height:1.15;padding:6px 10px}
}


/* V36 chart alignment fix */
.chart-canvas-wrap-v18{position:relative;padding:18px 20px 16px;border-radius:26px;overflow:hidden}
.chart-zone-labels{position:absolute;left:22px;top:86px;width:132px;height:252px;z-index:4;pointer-events:none}
.y-step,.y-step-inline{position:absolute;left:0;transform:translateY(-50%);display:flex;align-items:center;gap:8px;max-width:132px}
.y-step-dot,.y-step-content{display:none !important}
.y-step-badge{display:inline-flex !important;align-items:center;justify-content:center;min-width:34px;height:26px;padding:0 10px;border-radius:999px;background:var(--level-color);color:#fff;font-size:.72rem;font-weight:900;letter-spacing:.03em;box-shadow:0 4px 10px rgba(23,54,95,.10);flex:0 0 auto}
.y-step-label{display:inline-flex !important;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;border:1px solid color-mix(in srgb, var(--level-color) 24%, #d8e2f0);background:rgba(255,255,255,.96);color:var(--level-color);font-size:.82rem;font-weight:800;line-height:1;white-space:nowrap;box-shadow:0 4px 12px rgba(23,54,95,.06)}
.progress-chart-v18{overflow:visible}
.chart-axis-label.premium-axis-label{font-size:.7rem}
#chartLegend .legend-chip[data-role="apprenti"] .legend-dot{--legend:#2f6df6}
#chartLegend .legend-chip[data-role="tuteur"] .legend-dot{--legend:#f28c1b}
#chartLegend .legend-chip[data-role="formateur"] .legend-dot{--legend:#e05a54}
@media (max-width: 900px){
  .chart-zone-labels{position:relative;left:auto;top:auto;width:100%;height:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px}
  .y-step,.y-step-inline{position:relative;transform:none;max-width:none}
  .y-step-label{white-space:normal;line-height:1.15;padding:6px 10px}
}


/* V38 dynamic chart polish */
.chart-canvas-wrap-v18{padding:18px 24px 18px;border-radius:26px;overflow:hidden}
.chart-zone-labels{position:absolute;left:18px;top:84px;width:166px;height:258px;z-index:4;pointer-events:none}
.y-step,.y-step-inline{position:absolute;left:0;transform:translateY(-50%);display:flex;align-items:center;gap:8px;max-width:166px}
.y-step-badge{min-width:38px;height:28px;padding:0 11px;font-size:.74rem;box-shadow:0 5px 12px rgba(23,54,95,.10)}
.y-step-label{min-height:28px;padding:0 12px;font-size:.84rem;border-width:1px;box-shadow:0 5px 14px rgba(23,54,95,.06)}
.progress-chart-v18{width:100%;height:auto;display:block}
.chart-axis-label.premium-axis-label{font-size:.66rem}
@media (max-width: 900px){
  .chart-zone-labels{position:relative;left:auto;top:auto;width:100%;height:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px}
  .y-step,.y-step-inline{position:relative;transform:none;max-width:none}
  .y-step-label{white-space:normal;line-height:1.15;padding:6px 10px}
}


/* --- V39 labels texte seul centrés par zone --- */
.chart-zone-labels{
  position:absolute;
  left:0;
  top:48px;
  bottom:18px;
  width:152px;
  z-index:2;
}
.y-step,
.y-step-inline{
  position:absolute;
  left:28px;
  width:112px;
  transform:translateY(-50%);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  z-index:3;
  pointer-events:none;
}
.y-step-badge,
.y-step-dot,
.y-step-content{
  display:none !important;
}
.y-step-label,
.y-step-label-only{
  display:block;
  width:100%;
  max-width:none;
  text-align:center;
  font-size:.95rem;
  line-height:1.1;
  font-weight:800;
  white-space:normal;
  color:var(--level-color);
  text-shadow:0 1px 0 rgba(255,255,255,.72);
  background:transparent;
  box-shadow:none;
  padding:0;
}
.chart-canvas-wrap-v18{
  padding-left:20px;
}
@media (max-width:1180px){
  .chart-zone-labels{width:136px}
  .y-step,.y-step-inline{left:18px;width:104px}
  .y-step-label,.y-step-label-only{font-size:.86rem}
}
@media (max-width:760px){
  .chart-zone-labels{
    position:relative;
    inset:auto;
    width:100%;
    display:grid;
    gap:8px;
    margin:0 0 12px;
  }
  .y-step,.y-step-inline{
    position:relative;
    left:auto;
    width:auto;
    transform:none;
    justify-content:flex-start;
  }
  .y-step-label,.y-step-label-only{
    text-align:left;
  }
}



/* --- V41 UX polish : labels centrés, ligne 0 exacte, animations légères --- */
.chart-canvas-wrap-v18{
  position:relative;
  padding:18px 24px 22px;
  border-radius:26px;
  overflow:hidden;
}
.chart-zone-labels{
  position:absolute;
  left:18px;
  top:84px;
  height:258px;
  width:140px;
  z-index:4;
  pointer-events:none;
}
.y-step,
.y-step-inline{
  position:absolute;
  left:0;
  width:124px;
  transform:translateY(-50%);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:3;
  opacity:0;
  animation:v41FadeLabel .38s ease-out forwards;
  animation-delay:var(--step-delay,0ms);
}
.y-step-baseline{
  transform:translateY(-50%);
}
.y-step-badge,
.y-step-dot,
.y-step-content{
  display:none !important;
}
.y-step-label,
.y-step-label-only{
  display:flex !important;
  align-items:center;
  justify-content:center;
  width:124px;
  min-height:30px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid color-mix(in srgb, var(--level-color) 28%, #dbe5f1);
  background:rgba(255,255,255,.94);
  color:var(--level-color);
  font-size:.82rem;
  font-weight:800;
  line-height:1;
  text-align:center;
  white-space:nowrap;
  box-shadow:0 6px 14px rgba(23,54,95,.08);
  backdrop-filter:blur(3px);
  text-shadow:none;
}
.chart-point-group{
  animation:v41FadePoint .32s ease-out forwards;
}
.chart-point-ring,
.chart-point{
  transition:transform .18s ease, filter .18s ease;
}
.chart-point-group:hover .chart-point-ring,
.chart-point-group:hover .chart-point{
  transform:scale(1.08);
  filter:brightness(1.03);
}
.chart-axis-label.premium-axis-label{
  font-size:.64rem;
}
@keyframes v41FadeLabel{
  from{opacity:0; transform:translateY(calc(-50% + 6px));}
  to{opacity:1; transform:translateY(-50%);}
}
@keyframes v41FadePoint{
  from{opacity:0;}
  to{opacity:1;}
}
@media (max-width:1180px){
  .chart-zone-labels{
    width:128px;
    left:14px;
  }
  .y-step,
  .y-step-inline,
  .y-step-label,
  .y-step-label-only{
    width:114px;
  }
  .y-step-label,
  .y-step-label-only{
    font-size:.78rem;
    min-height:28px;
    padding:0 10px;
  }
}
@media (max-width:760px){
  .chart-zone-labels{
    position:relative;
    inset:auto;
    width:100%;
    height:auto;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin:0 0 12px;
  }
  .y-step,
  .y-step-inline{
    position:relative;
    left:auto;
    width:auto;
    transform:none !important;
    animation:none;
    opacity:1;
  }
  .y-step-label,
  .y-step-label-only{
    width:100%;
    white-space:normal;
    line-height:1.15;
    min-height:36px;
    padding:6px 10px;
  }
}


/* --- V42 label alignment fine-tune --- */
.chart-zone-labels{
  position:absolute;
  left:22px;
  top:70px;
  height:336px;
  width:148px;
  z-index:4;
  pointer-events:none;
}
.y-step,
.y-step-inline{
  position:absolute;
  left:0;
  width:132px;
  transform:translateY(-50%);
  display:flex;
  align-items:center;
  justify-content:center;
}
.y-step-label,
.y-step-label-only{
  display:flex !important;
  align-items:center;
  justify-content:center;
  width:132px;
  min-height:34px;
  padding:0 14px;
  border-radius:999px;
  line-height:1.1;
  text-align:center;
}
.y-step-baseline{
  transform:translateY(-50%);
}
@media (max-width:1180px){
  .chart-zone-labels{left:18px; width:136px;}
  .y-step,.y-step-inline,.y-step-label,.y-step-label-only{width:122px;}
}
@media (max-width:760px){
  .chart-zone-labels{position:relative; inset:auto; width:100%; height:auto; display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:0 0 12px;}
  .y-step,.y-step-inline{position:relative; left:auto; width:auto; transform:none !important;}
  .y-step-label,.y-step-label-only{width:100%; min-height:36px; padding:6px 10px;}
}


/* --- V44 dynamic label alignment on real chart scale --- */
.chart-canvas-wrap-v18{
  position:relative;
  padding:18px 24px 22px;
  border-radius:26px;
  overflow:hidden;
}
.chart-zone-labels{
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
}
.y-step,
.y-step-inline{
  position:absolute;
  left:22px;
  width:136px;
  transform:translateY(-50%);
  display:flex;
  align-items:center;
  justify-content:center;
}
.y-step-baseline{
  transform:translateY(-100%);
}
.y-step-label,
.y-step-label-only{
  display:flex !important;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:30px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid color-mix(in srgb, var(--level-color) 28%, #dbe5f1);
  background:rgba(255,255,255,.94);
  color:var(--level-color);
  font-size:.82rem;
  font-weight:800;
  line-height:1;
  text-align:center;
  white-space:nowrap;
  box-shadow:0 6px 14px rgba(23,54,95,.08);
}
@media (max-width:1180px){
  .y-step,
  .y-step-inline{left:16px;width:124px;}
  .y-step-label,
  .y-step-label-only{font-size:.78rem;min-height:28px;}
}
@media (max-width:760px){
  .chart-zone-labels{position:relative;inset:auto;width:100%;height:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px;}
  .y-step,.y-step-inline{position:relative;left:auto;width:auto;transform:none !important;animation:none;opacity:1;}
  .y-step-label,.y-step-label-only{width:100%;white-space:normal;line-height:1.15;min-height:36px;padding:6px 10px;}
}


/* --- V45 final: SVG badges aligned inside chart --- */
.chart-zone-labels{display:none !important;}
.chart-canvas-wrap-v18{
  overflow:hidden !important;
}
.progress-chart-v18{
  overflow:visible;
}
.chart-zone-badge rect{
  filter:url(#zoneBadgeShadow);
}
.chart-zone-badge-text{
  font-size: 22px;
  font-weight: 800;
  font-family: Inter, Arial, sans-serif;
}
@media (max-width:1180px){
  .chart-zone-badge-text{font-size:20px;}
}


/* --- V47: badges fit better + dark theme --- */
.chart-zone-badge-text{
  font-size: 18px !important;
  font-weight: 800;
  letter-spacing: -0.01em;
}
.theme-toggle-btn{
  min-height:48px;
  padding:0 16px;
  white-space:nowrap;
}

body.dark-theme{
  --shell-bg:#0f172a;
  --card:#111c32;
  --card-soft:#16233f;
  --line:#2a3a5f;
  --line-strong:#3a4a71;
  --text:#e7eefc;
  --muted:#a8b8da;
  --blue-dark:#eef4ff;
  background:linear-gradient(180deg,#0c1630 0%, #13254d 100%);
}
body.dark-theme .shell,
body.dark-theme .dashboard,
body.dark-theme .admin-card,
body.dark-theme .panel,
body.dark-theme .stat-card,
body.dark-theme .sidebar,
body.dark-theme .strip-item,
body.dark-theme .legend-chip,
body.dark-theme .reading-card,
body.dark-theme .history-entry,
body.dark-theme .pdf-modal-card{
  background:var(--card);
  color:var(--text);
  border-color:var(--line);
}
body.dark-theme .sidebar{
  background:linear-gradient(180deg,#16346e 0%, #204f9e 100%);
}
body.dark-theme .header-text,
body.dark-theme .panel-subtext,
body.dark-theme .reading-card small,
body.dark-theme .strip-item span,
body.dark-theme .stat-label,
body.dark-theme .pdf-modal-hint{
  color:var(--muted);
}
body.dark-theme .secondary-btn,
body.dark-theme .file-input,
body.dark-theme .icon-btn{
  background:#0f1b34;
  color:var(--text);
  border-color:var(--line-strong);
}
body.dark-theme .pdf-modal-hint{
  background:#0f1b34;
  border-color:var(--line);
}
body.dark-theme .chart-zone-badge-text{filter:none;}
body.dark-theme .chart-zone-badge rect{
  fill:#13213d !important;
  fill-opacity:0.98 !important;
  stroke:rgba(255,255,255,.08) !important;
}
body.dark-theme .chart-canvas-wrap-v18{
  background:#0f1b34;
}
body.dark-theme .premium-axis-line{
  stroke:#5d75a8;
}
body.dark-theme .premium-axis-label{
  fill:#a8b8da !important;
}


/* ===== V48 Messagerie tripartite ===== */
.messages-panel{margin-top:18px;border:1px solid rgba(37,99,235,.12);box-shadow:0 12px 28px rgba(15,23,42,.05);}
.messages-layout{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:18px;align-items:start}
.message-compose-card,.message-thread-card{background:rgba(255,255,255,.72);border:1px solid rgba(148,163,184,.18);border-radius:22px;padding:18px}
.message-compose-card textarea{width:100%;border-radius:16px;border:1px solid rgba(148,163,184,.28);padding:12px 14px;background:#fff;color:#163b74;resize:vertical;min-height:132px;font-family:inherit}
.message-compose-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:12px}
.message-thread-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.message-thread{display:flex;flex-direction:column;gap:12px;max-height:460px;overflow:auto;padding-right:4px}
.message-card{border-radius:18px;padding:14px 16px;background:#fff;border:1px solid rgba(148,163,184,.22);box-shadow:0 10px 24px rgba(15,23,42,.05)}
.message-card.unread{box-shadow:0 0 0 2px rgba(245,158,11,.28),0 14px 28px rgba(15,23,42,.08)}
.message-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}
.message-meta-role{display:inline-flex;margin-left:8px;padding:2px 8px;border-radius:999px;background:rgba(37,99,235,.08);font-size:11px;color:#5c739d;text-transform:capitalize}
.message-subject{font-weight:800;color:#123d7a;margin-bottom:6px}
.message-card p{margin:0;color:#47668f;line-height:1.5}
.message-card-footer{margin-top:8px;font-size:12px;color:#7186aa}
.sender-tuteur{border-left:4px solid #f08b1f}
.sender-formateur{border-left:4px solid #e25c5c}
.sender-apprenti{border-left:4px solid #3f76f6}
.messages-head-right{display:flex;align-items:center;gap:10px}
.messages-unread-chip{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;background:linear-gradient(135deg,rgba(37,99,235,.12),rgba(240,139,31,.12));color:#123d7a;font-weight:800}
.message-fab{position:fixed;right:22px;bottom:22px;z-index:30;border:none;border-radius:999px;padding:14px 18px;background:linear-gradient(135deg,#1f4f9c,#3f76f6);color:#fff;display:flex;align-items:center;gap:10px;box-shadow:0 18px 34px rgba(31,79,156,.34);cursor:pointer;transition:transform .2s ease, box-shadow .2s ease}
.message-fab:hover{transform:translateY(-2px);box-shadow:0 22px 40px rgba(31,79,156,.42)}
.message-fab.has-unread{animation:messagePulse 1.6s infinite}
.message-fab-badge{min-width:26px;height:26px;padding:0 7px;border-radius:999px;background:#ffeaef;color:#c93449;font-weight:900;display:inline-flex;align-items:center;justify-content:center}
.message-toast{position:fixed;right:24px;bottom:92px;z-index:35;transform:translateY(24px);opacity:0;background:#123d7a;color:#fff;padding:12px 16px;border-radius:14px;box-shadow:0 16px 30px rgba(18,61,122,.28);transition:all .25s ease}
.message-toast.show{transform:translateY(0);opacity:1}
@keyframes messagePulse{0%{box-shadow:0 0 0 0 rgba(240,139,31,.45),0 18px 34px rgba(31,79,156,.34)}70%{box-shadow:0 0 0 14px rgba(240,139,31,0),0 18px 34px rgba(31,79,156,.34)}100%{box-shadow:0 0 0 0 rgba(240,139,31,0),0 18px 34px rgba(31,79,156,.34)}}
@media (max-width: 980px){
  .messages-layout{grid-template-columns:1fr}
  .message-compose-actions{flex-direction:column;align-items:stretch}
  .message-fab-label{display:none}
}



/* --- V49: pages apprenti / formateur alignées sur la base tuteur --- */
.role-eval-card .sidebar-subtitle{word-break:break-word}
.status-highlight-tuteur{border-color:rgba(242,140,27,.38);background:linear-gradient(180deg,#fffdf8 0%,#fff7ee 100%)}
.status-highlight-formateur{border-color:rgba(229,62,62,.28);background:linear-gradient(180deg,#fff9f9 0%,#fff1f1 100%)}
.status-highlight-apprenti{border-color:rgba(36,95,202,.26);background:linear-gradient(180deg,#f8fbff 0%,#eff5ff 100%)}
#roleComment{width:100%;border:1px solid var(--line);border-radius:16px;padding:14px 16px;font-family:inherit;font-size:.96rem;background:#fff;color:var(--text);resize:vertical;min-height:112px}
#roleComment:focus{border-color:rgba(36,95,202,.55);box-shadow:0 0 0 4px rgba(36,95,202,.12);outline:none}
body[data-role="apprenti"] #apprentiSelect[disabled]{background:#f6f8fc;color:#536b8a;cursor:not-allowed}
body[data-role="formateur"] .tutor-sidebar-note-v12,
body[data-role="apprenti"] .tutor-sidebar-note-v12{border:1px solid rgba(255,255,255,.12)}



/* ===== V53 Messagerie globale en fenêtre dédiée ===== */
.messages-launcher{
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:1200;
  border:none;
  border-radius:999px;
  background:linear-gradient(135deg,#111827,#1f2937);
  color:#fff;
  display:flex;
  align-items:center;
  gap:10px;
  padding:14px 18px;
  box-shadow:0 18px 40px rgba(17,24,39,.24);
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease;
}
.messages-launcher:hover{
  transform:translateY(-2px);
  box-shadow:0 22px 46px rgba(17,24,39,.28);
}
.messages-launcher-icon{font-size:18px;}
.messages-launcher-text{font-weight:700;font-size:14px;}
.messages-launcher-badge{
  min-width:24px;height:24px;padding:0 6px;
  border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;
  background:#ef4444;color:#fff;font-size:12px;font-weight:800;
  box-shadow:0 0 0 4px rgba(239,68,68,.18);
}
.messages-launcher-badge.is-hidden{display:none;}

.messages-window-body{
  margin:0;
  min-height:100vh;
  background:#f3f4f6;
  color:#111827;
}
.messages-window-shell{
  min-height:100vh;
  padding:20px;
}
.messages-window-card{
  min-height:calc(100vh - 40px);
  background:#fff;
  border-radius:28px;
  box-shadow:0 25px 80px rgba(15,23,42,.14);
  display:grid;
  grid-template-columns:360px 1fr;
  overflow:hidden;
}
.messages-window-sidebar{
  background:linear-gradient(180deg,#f8fafc 0%, #eef2ff 100%);
  border-right:1px solid rgba(15,23,42,.08);
  padding:24px;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.messages-window-brand h1{
  margin:4px 0 6px;
  font-size:28px;
}
.messages-window-section{display:flex;flex-direction:column;gap:8px;}
.messages-window-section.grow{flex:1;}
.messages-window-sidebar textarea{
  resize:vertical;
  min-height:180px;
}
.messages-window-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.messages-window-main{
  display:flex;
  flex-direction:column;
  min-height:0;
}
.messages-thread-head{
  padding:24px 24px 12px;
  border-bottom:1px solid rgba(15,23,42,.08);
}
.messages-thread-list{
  flex:1;
  overflow:auto;
  padding:20px 24px 30px;
  background:
    radial-gradient(circle at top right, rgba(59,130,246,.06), transparent 34%),
    radial-gradient(circle at bottom left, rgba(239,68,68,.06), transparent 28%),
    #ffffff;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.message-bubble{
  border-radius:20px;
  padding:14px 16px;
  max-width:78%;
  box-shadow:0 10px 24px rgba(15,23,42,.08);
  border:1px solid rgba(15,23,42,.05);
}
.message-bubble.sender-apprenti{align-self:flex-start;background:#dbeafe;}
.message-bubble.sender-tuteur{align-self:flex-end;background:#ffedd5;}
.message-bubble.sender-formateur{align-self:flex-start;background:#fee2e2;}
.message-bubble.unread{
  box-shadow:0 0 0 3px rgba(99,102,241,.12), 0 12px 28px rgba(15,23,42,.09);
}
.message-bubble-top{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
  margin-bottom:8px;
}
.message-meta-role{
  display:inline-flex;
  margin-left:8px;
  font-size:12px;
  color:#6b7280;
}
.message-subject{
  font-weight:700;
  margin-bottom:6px;
}
.message-date{
  font-size:12px;
  color:#6b7280;
  white-space:nowrap;
}
.message-card-footer{
  margin-top:10px;
  font-size:12px;
  color:#6b7280;
}
@media (max-width: 900px){
  .messages-window-card{grid-template-columns:1fr;}
  .messages-window-sidebar{border-right:none;border-bottom:1px solid rgba(15,23,42,.08);}
  .message-bubble{max-width:100%;}
}


/* v6 login clean */
.shell-login-v6-clean{padding:18px;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}
.auth-card-v6-clean{width:min(1360px,100%);height:min(940px,calc(100vh - 36px));min-height:0;display:grid;grid-template-columns:minmax(480px,1.1fr) minmax(460px,.9fr);border-radius:32px;overflow:hidden;background:rgba(255,255,255,.92);box-shadow:0 18px 50px rgba(17,40,79,.14)}
.brand-panel-v6-clean{position:relative;display:grid;grid-template-rows:auto auto auto 1fr;gap:20px;padding:24px 26px 26px;background:linear-gradient(145deg,#2558bf 0%,#3167d1 48%,#6f88cf 78%,#ea9724 120%);min-height:0;overflow:hidden}
.logo-box-v6-clean{width:min(360px,100%);padding:18px 20px;border-radius:24px;background:rgba(255,255,255,.96);box-shadow:0 12px 28px rgba(10,24,54,.14)}
.brand-copy-v6-clean{display:grid;gap:8px;max-width:620px}
.brand-copy-v6-clean h1{margin:0;font-size:clamp(3.2rem,5vw,5.2rem);line-height:.95}
.brand-copy-v6-clean .subtitle{margin:0;font-size:clamp(2rem,2vw,2.35rem);font-weight:800;color:#fff}
.brand-copy-v6-clean .brand-note{margin:6px 0 0;max-width:32ch;font-size:1.05rem;line-height:1.55;color:rgba(255,255,255,.95)}
.brand-metrics-v6{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:560px}
.metric-card-v6{padding:14px 16px;border-radius:22px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}
.metric-card-v6 strong{display:block;font-size:2rem;line-height:1;color:#fff;margin-bottom:8px}
.metric-card-v6 span{display:block;font-size:.98rem;font-weight:700;color:rgba(255,255,255,.92);text-transform:uppercase;line-height:1.2}
.brand-feature-grid-v6{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch;min-height:0}
.brand-feature-card-v6{padding:18px 16px 16px;border-radius:24px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(10px);display:grid;align-content:start;gap:10px;min-height:0}
.brand-feature-card-v6 strong{font-size:1.35rem;line-height:1.15;color:#fff}
.brand-feature-card-v6 p{margin:0;color:rgba(255,255,255,.92);line-height:1.5;font-size:1rem}
.form-panel-v6-clean{padding:24px 28px 24px;background:linear-gradient(180deg,#f9fbff 0%,#f2f6fc 100%);overflow:hidden}
.form-panel-inner-v6-clean{height:100%;display:grid;grid-template-rows:auto auto 1fr;gap:16px;min-height:0}
.login-top-v6-clean{gap:10px;padding:4px 4px 0}
.login-top-v6-clean h2{font-size:clamp(2.6rem,3vw,4rem);line-height:1;letter-spacing:-.04em;margin:0}
.login-form-v6-clean{display:grid;grid-template-rows:auto auto 1fr;gap:14px;min-height:0}
.access-card-v6,.credentials-card-v6,.admin-card-v6{padding:18px 18px 20px;border-radius:26px;background:#fff;border:1px solid #d9e4f4;box-shadow:0 14px 34px rgba(23,54,95,.06)}
.credentials-box-v6{display:grid;gap:14px}
.login-meta-grid-v6{display:grid;grid-template-columns:1fr 1fr;gap:14px;min-height:0;align-items:stretch}
.admin-access-list-v6{display:grid;grid-template-columns:1fr;gap:12px}
.test-box-v6{margin:0;height:100%;border-radius:26px;background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(245,249,255,.98));border:1px solid #d9e4f4;box-shadow:0 14px 34px rgba(23,54,95,.06);display:grid;grid-template-columns:auto 1fr;align-items:start;padding:16px 18px;gap:12px}
.role-pills-main{gap:12px}
.role-pill{padding:14px 16px;border-radius:20px}
.primary-btn{margin-top:4px}
@media (max-width:1200px){
  .auth-card-v6-clean{grid-template-columns:1fr 1fr;height:min(920px,calc(100vh - 24px))}
  .brand-feature-grid-v6{grid-template-columns:1fr}
}
@media (max-width:980px){
  .shell-login-v6-clean{padding:12px;overflow:auto}
  .auth-card-v6-clean{height:auto;grid-template-columns:1fr;overflow:visible}
  .brand-panel-v6-clean,.form-panel-v6-clean{overflow:visible}
  .brand-metrics-v6,.brand-feature-grid-v6,.login-meta-grid-v6{grid-template-columns:1fr}
}


/* V7 fullscreen global layout */
html,body{height:100%}
body{overflow:hidden}
.shell{height:100vh;min-height:100vh;padding:12px;overflow:hidden}
.auth-card,.admin-card{height:calc(100vh - 24px);min-height:0}
.admin-card{width:min(1500px,100%)}
.sidebar,.dashboard,.brand-panel,.form-panel{min-height:0}
.sidebar,.dashboard{overflow:auto}
.dashboard{padding:26px 28px}
.panel,.chart-panel,.tutor-focus-panel,.compact-side-panel,.tutor-wheel-panel,.tutor-top-panel{min-height:0}
.table-wrap,.chart-panel,.progress-chart-wrap,.messages-thread-list{min-height:0}

/* Role and progression pages */
.tutor-dashboard-v12,.progression-dashboard{height:100%;min-height:0;display:grid;grid-template-rows:auto auto auto 1fr;overflow:hidden}
.tutor-main-grid-v12,.progression-bottom-grid{min-height:0}
.tutor-focus-panel-v12,.compact-side-panel-v12,.compact-side-panel,.chart-panel,.progression-bottom-grid > .panel{overflow:auto}
.tutor-roulette-v12{max-height:150px;overflow:auto;padding-bottom:4px}
.progression-card{height:calc(100vh - 24px);min-height:0}
.progression-bottom-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:18px;align-items:stretch}
.progression-bottom-grid > .panel{height:100%}

/* Messages fullscreen */
.messages-window-body{overflow:hidden}
.messages-window-shell{height:100vh;min-height:100vh;padding:12px;overflow:hidden}
.messages-window-card{height:calc(100vh - 24px);min-height:0}
.messages-window-sidebar,.messages-window-main{min-height:0;overflow:hidden}
.messages-window-sidebar{overflow:auto}
.messages-window-sidebar textarea{resize:none;min-height:140px;flex:1}

/* Login page V7 */
.shell-login-v7{display:flex;align-items:center;justify-content:center;background:transparent}
.auth-card-v7{width:min(1480px,100%);grid-template-columns:minmax(540px,1.08fr) minmax(460px,.92fr);border-radius:34px;background:rgba(255,255,255,.94);box-shadow:0 24px 70px rgba(17,40,79,.16)}
.brand-panel-v7{display:grid;grid-template-rows:auto auto auto auto;gap:20px;padding:28px 30px;background:linear-gradient(145deg,#234eaf 0%,#2f61c7 50%,#3d73d3 72%,#ef9330 120%);color:#fff;overflow:hidden}
.brand-panel-v7-top{display:grid;gap:22px}
.logo-box-v7{max-width:380px;padding:18px 20px;border-radius:24px;background:rgba(255,255,255,.98);box-shadow:0 16px 36px rgba(10,24,54,.14)}
.brand-copy-v7{display:grid;gap:8px;max-width:580px}
.brand-copy-v7 h1{margin:0;font-size:clamp(3.2rem,5vw,5rem);line-height:.95}
.brand-copy-v7 .subtitle{margin:0;font-size:1.8rem;font-weight:800;color:#fff}
.brand-copy-v7 .brand-note{margin:4px 0 0;max-width:34ch;color:rgba(255,255,255,.94);font-size:1.03rem;line-height:1.55}
.brand-metrics-v7{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.metric-card-v7{padding:16px 18px;border-radius:22px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(10px)}
.metric-card-v7 strong{display:block;font-size:2rem;line-height:1;margin-bottom:8px;color:#fff}
.metric-card-v7 span{display:block;color:rgba(255,255,255,.92);font-weight:700;text-transform:uppercase;line-height:1.2;font-size:.92rem}
.brand-feature-grid-v7{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.brand-feature-card-v7{padding:18px;border-radius:24px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(10px);display:grid;gap:10px;align-content:start}
.brand-feature-card-v7 strong{font-size:1.2rem;line-height:1.15}
.brand-feature-card-v7 p{margin:0;color:rgba(255,255,255,.9);line-height:1.5;font-size:.96rem}
.brand-admin-strip-v7{padding:16px 18px;border-radius:24px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);display:grid;gap:12px}
.admin-strip-label{font-size:.82rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fff}
.brand-admin-pills-v7,.admin-access-list-v7{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.admin-access-btn-v7{display:flex;align-items:center;justify-content:center;min-height:56px;border:1px solid rgba(255,255,255,.26);background:rgba(255,255,255,.14);border-radius:18px;color:#fff;font-size:.95rem;text-align:center}
.admin-access-btn-v7:hover,.admin-access-btn-v7.active{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.4)}
.form-panel-v7{padding:24px;background:linear-gradient(180deg,#fbfdff 0%,#f4f8fe 100%);overflow:auto;scrollbar-gutter:stable}
.form-panel-inner-v7{min-height:100%;display:flex;flex-direction:column;gap:16px}
.login-top-v7{display:grid;gap:8px;padding:2px 2px 0}
.login-top-v7 h2{margin:0;font-size:clamp(2.35rem,3vw,3.55rem);line-height:1.02;letter-spacing:-.04em}
.login-form-v7{display:flex;flex-direction:column;gap:12px;min-height:0;flex:1}
.access-card-v7,.credentials-card-v7,.login-footer-v7{padding:16px 18px;border-radius:24px;background:#fff;border:1px solid #d9e4f4;box-shadow:0 14px 34px rgba(23,54,95,.06)}
.credentials-box-v7{display:grid;gap:12px}
.credentials-card-v7{display:grid;gap:12px}
.login-footer-v7{display:grid;gap:12px;align-content:start;margin-top:auto}
.test-box-v7{margin:0;border-radius:22px;background:linear-gradient(180deg,#fffaf3 0%,#fff4e6 100%);border:1px solid #f3d8af;box-shadow:none}
#adminRoleGrid .admin-access-btn{color:var(--blue-dark);background:#f4f8ff;border:1px solid #d5e1f4}
#adminRoleGrid .admin-access-btn:hover,#adminRoleGrid .admin-access-btn.active{background:#eaf1ff;border-color:#bdd1f3}

@media (max-width:1200px){
  .auth-card-v7{grid-template-columns:1fr 1fr}
  .brand-feature-grid-v7,.brand-admin-pills-v7,.admin-access-list-v7{grid-template-columns:1fr}
  .progression-bottom-grid{grid-template-columns:1fr}
}
@media (max-width:980px){
  body{overflow:auto}
  .shell,.messages-window-shell{height:auto;min-height:100vh;overflow:visible}
  .auth-card,.admin-card,.messages-window-card,.progression-card{height:auto}
  .auth-card-v7{grid-template-columns:1fr;overflow:visible}
  .brand-panel-v7,.form-panel-v7,.sidebar,.dashboard,.messages-window-sidebar,.messages-window-main{overflow:visible}
  .tutor-dashboard-v12,.progression-dashboard{height:auto;overflow:visible;grid-template-rows:auto}
}


/* V7.1 login right column fix */
.section-head-inline p{line-height:1.45;margin:6px 0 0}
.credentials-card-v7 .field-group{display:grid;gap:8px}
.credentials-card-v7 input{height:52px}
.credentials-card-v7 .primary-btn{height:54px;margin-top:2px}
.login-footer-v7 p{font-size:.92rem;line-height:1.45}
@media (min-width:981px){.form-panel-v7{max-height:100%;}.brand-panel-v7{overflow:auto;scrollbar-gutter:stable}}


/* V7.4 login admin auth + compact right panel */
.auth-card-v7{grid-template-columns:minmax(560px,1.12fr) minmax(430px,.88fr);}
.form-panel-v7{padding:18px 20px;overflow:auto;scrollbar-gutter:stable;display:flex;}
.form-panel-inner-v7{width:min(100%, 448px);margin:0 auto;display:flex;flex-direction:column;gap:10px;}
.login-top-v7{gap:6px;padding:0 2px 0;}
.login-top-v7 h2{font-size:clamp(2.05rem,2.6vw,3rem);line-height:1.02;}
.login-intro{font-size:0.95rem;line-height:1.45;margin:0;}
.login-form-v7{gap:10px;}
.access-card-v7,.credentials-card-v7{padding:14px 16px;border-radius:22px;}
.section-kicker{font-size:.76rem;padding:8px 12px;}
.section-head-access,.section-head-inline{gap:8px;}
.section-head-access p,.section-head-inline p{font-size:.94rem;line-height:1.42;margin:0;}
.minimal-title{font-size:1.05rem;}
.role-pills-main{gap:10px;}
.role-pill{grid-template-columns:48px 1fr;gap:12px;padding:12px 14px;border-radius:18px;}
.pill-index{width:40px;height:40px;font-size:1.15rem;}
.pill-copy strong{font-size:1rem;}
.pill-copy small{font-size:.92rem;line-height:1.3;}
.credentials-card-v7 .field-group{gap:6px;}
.credentials-card-v7 label{font-size:.98rem;}
.credentials-card-v7 input{height:48px;font-size:.97rem;padding:0 16px;}
.credentials-card-v7 .primary-btn{height:50px;margin-top:0;font-size:.98rem;}
.loginMessage{min-height:18px;margin:0;font-size:.9rem;}
.admin-access-btn-v7.active{background:linear-gradient(90deg,rgba(255,248,238,.22) 0%,rgba(255,220,176,.28) 45%,rgba(242,140,27,.45) 100%);border-color:rgba(255,213,162,.8);box-shadow:inset 0 0 0 1px rgba(255,227,193,.34),0 12px 22px rgba(242,140,27,.22);}
@media (min-width:981px){.auth-card-v7{height:min(930px,calc(100vh - 24px));}.brand-panel-v7,.form-panel-v7{min-height:0;}}


.ufa-dashboard-kpis{grid-template-columns:repeat(3,minmax(0,1fr));}
.ufa-dashboard-cards{grid-template-columns:minmax(280px,420px);}
@media (max-width: 900px){.ufa-dashboard-kpis{grid-template-columns:1fr;}}


.dashboard-badge{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:999px;background:linear-gradient(135deg,rgba(36,95,202,.12),rgba(242,140,27,.16));color:var(--blue-dark);font-weight:800;border:1px solid rgba(36,95,202,.12)}
.executive-grid .stat-card{min-height:126px}
.stat-meta{margin:8px 0 0;color:var(--muted);font-size:.92rem;line-height:1.35}
.executive-main-grid{grid-template-columns:1.2fr .8fr;grid-auto-rows:minmax(0,1fr)}
.executive-panel{display:flex;flex-direction:column;min-height:0}
.executive-hero-panel{grid-column:1 / 2}
.executive-scroll-zone{min-height:0;overflow:auto;padding-right:4px}
.period-bars{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;min-height:0}
.period-bar-card{padding:16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#fbfdff 0%,#f4f8fe 100%);box-shadow:0 10px 24px rgba(23,54,95,.05)}
.period-bar-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}
.period-bar-head strong{font-size:1rem;color:var(--blue-dark)}
.period-bar-head span{font-size:.9rem;color:var(--muted)}
.dual-bar{display:grid;gap:12px}
.dual-bar > div{display:grid;grid-template-columns:86px 1fr auto;gap:10px;align-items:center}
.dual-bar label{font-size:.86rem;color:var(--muted);font-weight:700}
.dual-bar em{font-style:normal;font-size:.84rem;color:var(--blue-dark);font-weight:800}
.bar-track{position:relative;height:10px;background:#edf2fb;border-radius:999px;overflow:hidden}
.bar-track span{position:absolute;left:0;top:0;bottom:0;border-radius:999px}
.bar-blue{background:linear-gradient(90deg,#2558bf,#4f87ef)}
.bar-orange{background:linear-gradient(90deg,#f28c1b,#ffb156)}
.alert-list{display:grid;gap:12px}
.alert-card.success{background:#edf9f0;border-color:#bfe3c7;color:#1f6a36}
.alert-card p{margin:.45rem 0 0;font-weight:500;line-height:1.45}
.stack-bars{display:grid;gap:14px}
.stack-bar-row{display:grid;gap:8px}
.stack-bar-top{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:.96rem}
.stack-bar-top strong{color:var(--blue-dark)}
.stack-bar-track{height:12px;background:#eef2fb;border-radius:999px;overflow:hidden}
.stack-bar-track span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2558bf,#4f87ef)}
.stack-bar-row.is-good .stack-bar-track span{background:linear-gradient(90deg,#1d8a52,#55c27e)}
.stack-bar-row.is-warn .stack-bar-track span{background:linear-gradient(90deg,#f28c1b,#ffb156)}
.stack-bar-row.is-info .stack-bar-track span{background:linear-gradient(90deg,#2558bf,#63a0ff)}
.director-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.director-metric{padding:16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%)}
.director-metric span{display:block;color:var(--muted);font-weight:700;font-size:.9rem;margin-bottom:6px}
.director-metric strong{display:block;font-size:1.55rem;line-height:1.1;color:var(--blue-dark);margin-bottom:4px}
.director-metric small{display:block;color:var(--muted);line-height:1.35}
.stats-dashboard-page .table-wrap table{min-width:100%}
.tag-warm{background:#fff4e7;color:#9a5b00;border-color:#ffd19a}
@media (max-width:1180px){.executive-main-grid{grid-template-columns:1fr}.executive-hero-panel{grid-column:auto}}
@media (max-width:760px){.director-summary-grid{grid-template-columns:1fr}.period-bars{grid-template-columns:1fr}.dual-bar>div{grid-template-columns:1fr;gap:6px}.dual-bar em{justify-self:start}}


/* V7.7 menu orange + external links */
.nav-item{
  transition:background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease,color .18s ease;
}
.nav-item:hover{
  background:linear-gradient(90deg, rgba(255,255,255,.16), rgba(242,140,27,.20));
  border-color:rgba(255,208,151,.45);
  transform:translateX(2px);
}
.nav-item.active{
  background:linear-gradient(135deg,#f28c1b 0%,#ffb357 52%,#ffcf8b 100%);
  color:#17365f;
  border-color:rgba(255,222,188,.9);
  box-shadow:0 12px 24px rgba(242,140,27,.20), inset 0 0 0 1px rgba(255,245,232,.55);
}

.brand-external-links-v7{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.external-link-card-v7{
  display:grid;
  grid-template-columns:120px 1fr;
  align-items:center;
  gap:16px;
  padding:16px 18px;
  border-radius:24px;
  text-decoration:none;
  color:#fff;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.20);
  backdrop-filter:blur(10px);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.external-link-card-v7:hover{
  transform:translateY(-2px);
  border-color:rgba(255,219,176,.8);
  background:linear-gradient(135deg,rgba(255,255,255,.18) 0%,rgba(255,226,191,.22) 100%);
  box-shadow:0 16px 32px rgba(17,40,79,.16);
}
.external-link-logo-v7{
  width:100%;
  max-height:54px;
  object-fit:contain;
  border-radius:12px;
  background:rgba(255,255,255,.97);
  padding:8px 10px;
}
.external-link-logo-v7--square{
  max-width:72px;
  justify-self:center;
  max-height:72px;
  padding:6px;
}
.external-link-copy-v7{
  display:grid;
  gap:6px;
}
.external-link-copy-v7 strong{
  font-size:1rem;
  line-height:1.2;
  color:#fff;
}
.external-link-copy-v7 small{
  color:rgba(255,255,255,.86);
  line-height:1.35;
  font-size:.9rem;
}
@media (max-width:1200px){
  .brand-external-links-v7{grid-template-columns:1fr;}
}
@media (max-width:760px){
  .external-link-card-v7{grid-template-columns:96px 1fr;padding:14px 16px;}
}


/* V7.8 login left panel compact mode */
@media (min-width:981px){
  .auth-card-v7{height:min(900px,calc(100vh - 24px));}
  .brand-panel-v7{padding:22px 24px;gap:14px;grid-template-rows:auto auto auto auto;align-content:start;overflow:hidden;}
  .brand-panel-v7-top{gap:14px;}
  .logo-box-v7{max-width:330px;padding:14px 16px;border-radius:20px;}
  .brand-copy-v7{gap:6px;max-width:520px;}
  .brand-copy-v7 h1{font-size:clamp(2.8rem,4vw,4.25rem);}
  .brand-copy-v7 .subtitle{font-size:1.45rem;}
  .brand-copy-v7 .brand-note{font-size:.94rem;line-height:1.42;max-width:36ch;}
  .brand-metrics-v7{gap:10px;}
  .metric-card-v7{padding:12px 14px;border-radius:20px;}
  .metric-card-v7 strong{font-size:1.7rem;margin-bottom:6px;}
  .metric-card-v7 span{font-size:.84rem;}
  .brand-feature-grid-v7{gap:12px;}
  .brand-feature-card-v7{padding:14px 15px;border-radius:20px;gap:8px;}
  .brand-feature-card-v7 .feature-tag{font-size:.74rem;padding:6px 10px;}
  .brand-feature-card-v7 strong{font-size:1.06rem;}
  .brand-feature-card-v7 p{font-size:.88rem;line-height:1.4;}
  .brand-admin-strip-v7{padding:12px 14px;border-radius:20px;gap:10px;}
  .admin-strip-label{font-size:.78rem;}
  .brand-admin-pills-v7{gap:10px;}
  .admin-access-btn-v7{min-height:48px;font-size:.88rem;padding:10px 12px;border-radius:16px;}
  .brand-external-links-v7{gap:10px;margin-top:auto;}
  .external-link-card-v7{grid-template-columns:104px 1fr;gap:12px;padding:12px 14px;border-radius:20px;}
  .external-link-logo-v7{max-height:44px;padding:6px 8px;}
  .external-link-logo-v7--square{max-width:60px;max-height:60px;padding:4px;}
  .external-link-copy-v7{gap:4px;}
  .external-link-copy-v7 strong{font-size:.92rem;}
  .external-link-copy-v7 small{font-size:.82rem;line-height:1.28;}
}


/* V8 login: liens externes avant accès administrateurs */
.brand-panel-v7{grid-template-rows:auto auto auto auto;align-content:start}
.brand-external-links-v7{margin-top:0}
.brand-admin-strip-v7-bottom{margin-top:auto}
@media (min-width:981px){
  .brand-panel-v7{overflow:auto;scrollbar-gutter:stable}
}


/* === V8.7 evaluation pages harmonisées === */
.role-eval-card .dashboard{overflow:hidden}
.role-eval-card .dashboard-header{padding-bottom:14px}
.eval-top-panel{padding:18px 22px}
.eval-top-panel .field-group{max-width:520px}
.eval-top-panel.apprenti-only{display:none}
.eval-layout{
  display:grid;
  grid-template-columns: 370px minmax(0,1fr);
  gap:18px;
  min-height:0;
  overflow:hidden;
}
.eval-left-panel,
.eval-right-panel{min-height:0;display:flex;flex-direction:column}
.eval-left-panel{padding:24px}
.eval-right-panel{padding:22px}
.eval-panel-title{font-size:18px;font-weight:800;color:#143b7a;margin:0 0 4px}
.eval-panel-lead{margin:0 0 14px;color:#58709b;line-height:1.45}
.eval-search{margin-bottom:14px}
.eval-counter{font-size:13px;color:#6c7ea3;margin:6px 0 12px}
.eval-competence-list{display:flex;flex-direction:column;gap:12px;overflow:auto;padding-right:6px;min-height:0}
.eval-competence-card{
  border:1.5px solid #d6e0f0;border-radius:22px;padding:14px 14px 14px 16px;background:#f9fbff;
  display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:start;text-align:left;cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease;
}
.eval-competence-card:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(23,61,128,.08)}
.eval-competence-card.active{background:#fff8ef;border-color:#ff8a00;box-shadow:0 10px 24px rgba(255,138,0,.12)}
.eval-competence-card.orange-active{background:linear-gradient(135deg,#ffb454,#ff8a00);border-color:#ff8a00;color:#fff;box-shadow:0 12px 28px rgba(255,138,0,.22)}
.eval-competence-card.orange-active .eval-competence-code,
.eval-competence-card.orange-active .eval-competence-meta,
.eval-competence-card.orange-active .eval-competence-title{color:#fff}
.eval-competence-card.orange-active .eval-competence-index{background:rgba(255,255,255,.2);color:#fff}
.eval-competence-index{
  width:34px;height:34px;border-radius:12px;background:#eef3fb;color:#143b7a;font-weight:800;
  display:flex;align-items:center;justify-content:center;font-size:14px
}
.eval-competence-card.active .eval-competence-index{background:#ff7a00;color:#fff}
.eval-competence-main{display:flex;flex-direction:column;gap:6px;min-width:0}
.eval-competence-code{display:inline-flex;align-items:center;width:max-content;padding:4px 10px;border-radius:999px;background:#eef3fb;color:#143b7a;font-size:12px;font-weight:800}
.eval-competence-title{font-size:16px;font-weight:800;color:#143b7a;line-height:1.25}
.eval-competence-meta{font-size:13px;color:#6f81a4;line-height:1.35}
.eval-right-top{display:flex;align-items:stretch;gap:16px;margin-bottom:18px}
.eval-focus-card{flex:1;border:1px solid #d8e2f3;border-radius:22px;background:#fff;padding:18px 20px;position:relative;box-shadow:0 6px 18px rgba(18,53,117,.04)}
.eval-focus-card::before{content:'';position:absolute;left:0;top:16px;bottom:16px;width:4px;border-radius:999px;background:linear-gradient(180deg,#1d5ae8,#ff8a00)}
.eval-focus-kicker{margin:0 0 6px;padding-left:14px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#f68000;font-weight:800}
.eval-focus-title{margin:0 0 6px;padding-left:14px;font-size:18px;font-weight:900;color:#143b7a;line-height:1.2}
.eval-focus-code{margin:0;padding-left:14px;font-size:13px;color:#5f749c}
.eval-action-btn{
  min-width:188px;max-width:188px;height:66px;border:none;border-radius:18px;padding:0 18px;
  display:flex;align-items:center;justify-content:center;text-align:center;
  background:linear-gradient(90deg,#2b63d7 0%,#3d78f2 62%,#f59a1a 100%);color:#fff;font-weight:800;font-size:16px;line-height:1.15;
  box-shadow:0 10px 22px rgba(49,95,199,.18);cursor:pointer
}
.eval-history-title{font-size:17px;font-weight:900;color:#143b7a;margin:0 0 2px}
.eval-history-lead{font-size:13px;color:#5f749c;margin:0 0 14px}
.eval-history-wrap{display:flex;flex-direction:column;gap:12px;overflow:auto;min-height:0;padding-right:4px}
.history-entry{border:1px solid #d8e2f3;border-radius:18px;background:#fff;padding:14px 16px}
.history-entry-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}
.history-entry-head strong{font-size:14px;color:#143b7a}
.history-entry-head span{font-size:12px;color:#5f749c;font-weight:700}
.history-entry p{margin:10px 0 0;font-size:12.5px;color:#4d638b;line-height:1.45}
.history-entry.history-apprenti{border-left:5px solid #7c56d8;background:linear-gradient(180deg,rgba(124,86,216,.08) 0%,#fff 42%)}
.history-entry.history-tuteur{border-left:5px solid #ff8a00;background:linear-gradient(180deg,rgba(255,138,0,.10) 0%,#fff 42%)}
.history-entry.history-formateur{border-left:5px solid #2f66d0;background:linear-gradient(180deg,rgba(47,102,208,.10) 0%,#fff 42%)}
.history-entry.history-apprenti .history-entry-head strong{color:#6b42d1}
.history-entry.history-tuteur .history-entry-head strong{color:#d06e00}
.history-entry.history-formateur .history-entry-head strong{color:#1f56c8}
.history-entry.history-apprenti .level-pill{background:rgba(124,86,216,.12);color:#6b42d1}
.history-entry.history-tuteur .level-pill{background:rgba(255,138,0,.14);color:#b96500}
.history-entry.history-formateur .level-pill{background:rgba(47,102,208,.12);color:#1f56c8}
.level-pill{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:800}
.level-neutral{background:#eef3fb;color:#667b9f}.level-danger{background:#ffe7e5;color:#b1483f}.level-warning{background:#fff1d8;color:#a76600}.level-success{background:#e7f6ea;color:#267a44}.level-info{background:#e5f0ff;color:#285cca}
.role-eval-card .panel-subtext{color:#5f749c}
@media (max-width: 1200px){.eval-layout{grid-template-columns:330px minmax(0,1fr)}.eval-action-btn{min-width:170px;max-width:170px;height:60px;font-size:15px}}
@media (max-width: 980px){.eval-layout{grid-template-columns:1fr}.eval-right-top{flex-direction:column}.eval-action-btn{max-width:none;width:100%}.eval-top-panel.apprenti-only{display:none}}


/* --- V88.2 progression overlap fix --- */
body[data-role="progression"]{
  overflow:auto;
}
body[data-role="progression"] .shell{
  height:auto;
  min-height:100vh;
  overflow:visible;
  align-items:start;
}
body[data-role="progression"] .admin-card.progression-card{
  height:auto;
  min-height:calc(100vh - 24px);
}
body[data-role="progression"] .dashboard.progression-dashboard{
  height:auto;
  min-height:0;
  overflow:visible;
  display:grid;
  grid-template-rows:auto auto auto auto auto;
  align-content:start;
  gap:18px;
}
body[data-role="progression"] .progression-filter-panel,
body[data-role="progression"] .progression-kpis,
body[data-role="progression"] .chart-panel,
body[data-role="progression"] .progression-bottom-grid{
  min-width:0;
}
body[data-role="progression"] .progression-kpis{
  align-items:stretch;
}
body[data-role="progression"] .progression-kpis .stat-card{
  min-height:118px;
}
body[data-role="progression"] .chart-panel{
  overflow:visible;
  padding-top:18px;
}
body[data-role="progression"] .chart-panel-head-v15{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  gap:16px;
}
body[data-role="progression"] .chart-legend-rich{
  min-width:0;
  justify-content:flex-end;
}
body[data-role="progression"] .progress-chart-wrap,
body[data-role="progression"] .progress-chart-wrap-v15{
  overflow:visible;
  padding:8px 0 0;
}
body[data-role="progression"] .chart-canvas-wrap,
body[data-role="progression"] .chart-canvas-wrap-v18{
  overflow:hidden;
}
body[data-role="progression"] .progression-bottom-grid{
  grid-template-columns:minmax(320px,.92fr) minmax(420px,1.08fr);
  align-items:start;
}
body[data-role="progression"] .progression-bottom-grid > .panel{
  overflow:auto;
  min-height:320px;
  max-height:460px;
}
body[data-role="progression"] .progress-history-wrap{
  max-height:none;
  min-height:240px;
}

@media (max-width: 1280px){
  body[data-role="progression"] .chart-panel-head-v15{
    grid-template-columns:1fr;
  }
  body[data-role="progression"] .chart-legend-rich{
    justify-content:flex-start;
  }
}

@media (max-width: 980px){
  body[data-role="progression"] .admin-card.progression-card,
  body[data-role="progression"] .dashboard.progression-dashboard{
    height:auto;
  }
  body[data-role="progression"] .sidebar,
  body[data-role="progression"] .dashboard.progression-dashboard{
    overflow:visible;
  }
}

@media (max-width: 900px){
  body[data-role="progression"] .progression-kpis,
  body[data-role="progression"] .progression-strip,
  body[data-role="progression"] .progression-filters-grid,
  body[data-role="progression"] .progression-bottom-grid{
    grid-template-columns:1fr;
  }
  body[data-role="progression"] .progression-bottom-grid > .panel{
    max-height:none;
    min-height:0;
  }
}


/* V88.3 apprenti progression simplification */
body.role-apprenti-progression .progression-filter-panel{display:none}
body.role-apprenti-progression .progression-dashboard{gap:18px}
body.role-apprenti-progression .dashboard-header{margin-bottom:0}


/* V88.4 chart readability + drag */
body[data-role="progression"] .chart-panel{
  overflow:visible;
}
body[data-role="progression"] .chart-pan-shell{
  display:flex;
  flex-direction:column;
  gap:10px;
}
body[data-role="progression"] .chart-pan-hint{
  align-self:flex-end;
  font-size:12px;
  font-weight:700;
  color:#5e7398;
  background:#f5f8fe;
  border:1px solid #d8e4f5;
  border-radius:999px;
  padding:6px 12px;
}
body[data-role="progression"] .chart-scroll-viewport{
  overflow-x:auto;
  overflow-y:hidden;
  cursor:grab;
  scrollbar-width:thin;
  padding-bottom:8px;
}
body[data-role="progression"] .chart-scroll-viewport.dragging{
  cursor:grabbing;
  user-select:none;
}
body[data-role="progression"] .chart-scroll-viewport::-webkit-scrollbar{
  height:10px;
}
body[data-role="progression"] .chart-scroll-viewport::-webkit-scrollbar-thumb{
  background:#c9d7ee;
  border-radius:999px;
}
body[data-role="progression"] .chart-scroll-viewport::-webkit-scrollbar-track{
  background:#eef4fc;
  border-radius:999px;
}
body[data-role="progression"] .chart-canvas-wrap-v18{
  min-width:max-content;
}
body[data-role="progression"] .progress-chart.progress-chart-v18{
  display:block;
  width:auto;
  min-width:1140px;
  height:auto;
}
body[data-role="progression"] .chart-panel-head-v15{
  gap:18px;
}
body[data-role="progression"] .chart-legend-rich{
  row-gap:12px;
}
@media (max-width: 980px){
  body[data-role="progression"] .chart-pan-hint{
    align-self:flex-start;
  }
}

/* --- V91 modal choices modern refresh --- */
.level-choice-grid-v12{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  align-items:stretch;
  gap:14px;
}

.level-choice.level-choice-v12,
.level-choice-v12{
  --choice-bg-1:#f8fbff;
  --choice-bg-2:#edf3fb;
  --choice-border:#d5dfef;
  --choice-text:#264066;
  --choice-accent:#9aaecc;
  --choice-shadow:rgba(22,49,92,.08);
  appearance:none;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  min-height:128px;
  padding:20px 14px 16px;
  border:1px solid var(--choice-border);
  border-radius:22px;
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg,var(--choice-bg-1) 0%, var(--choice-bg-2) 100%);
  color:var(--choice-text);
  box-shadow:0 10px 26px var(--choice-shadow);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
  isolation:isolate;
}

.level-choice-v12::before{
  content:'';
  position:absolute;
  left:0;
  top:0;
  right:0;
  height:8px;
  background:linear-gradient(90deg, color-mix(in srgb, var(--choice-accent) 88%, white 12%) 0%, var(--choice-accent) 100%);
  z-index:0;
}

.level-choice-v12::after{
  content:'';
  position:absolute;
  inset:10px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.52);
  pointer-events:none;
  opacity:.9;
  z-index:0;
}

.level-choice-v12 > *{
  position:relative;
  z-index:1;
}

.level-choice-v12 .level-choice-title,
.level-choice .level-choice-title{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:3.2em;
  margin:0;
  text-align:center;
  font-size:1.14rem;
  line-height:1.18;
  font-weight:900;
  letter-spacing:-0.01em;
}

.level-choice-v12 .level-choice-help,
.level-choice .level-choice-help{
  display:none !important;
}

.level-choice-v12.level-neutral{
  --choice-bg-1:#f7f9fd;
  --choice-bg-2:#edf2f8;
  --choice-border:#d2dbe8;
  --choice-text:#5f7593;
  --choice-accent:#91a7c6;
}

.level-choice-v12.level-danger{
  --choice-bg-1:#fff3f1;
  --choice-bg-2:#ffe1dc;
  --choice-border:#f0beb6;
  --choice-text:#b6453d;
  --choice-accent:#ea6f63;
  --choice-shadow:rgba(195,82,72,.10);
}

.level-choice-v12.level-warning{
  --choice-bg-1:#fff7e8;
  --choice-bg-2:#ffe7be;
  --choice-border:#f3d098;
  --choice-text:#c67609;
  --choice-accent:#f2a126;
  --choice-shadow:rgba(201,132,24,.12);
}

.level-choice-v12.level-success{
  --choice-bg-1:#eefaf3;
  --choice-bg-2:#d8f3e1;
  --choice-border:#b7e1c6;
  --choice-text:#1d8b52;
  --choice-accent:#3dc47a;
  --choice-shadow:rgba(38,132,82,.11);
}

.level-choice-v12.level-info{
  --choice-bg-1:#eef5ff;
  --choice-bg-2:#d9e8ff;
  --choice-border:#bfd4f6;
  --choice-text:#255fd1;
  --choice-accent:#4f88f1;
  --choice-shadow:rgba(39,95,209,.11);
}

.level-choice-v12:hover{
  transform:translateY(-4px);
  border-color:color-mix(in srgb, var(--choice-accent) 32%, white 68%);
  box-shadow:0 18px 34px color-mix(in srgb, var(--choice-accent) 16%, rgba(22,49,92,.14) 84%);
}

.level-choice-v12:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px rgba(255,255,255,.94), 0 0 0 6px color-mix(in srgb, var(--choice-accent) 30%, white 70%), 0 18px 34px color-mix(in srgb, var(--choice-accent) 16%, rgba(22,49,92,.14) 84%);
}

.level-choice-v12.active{
  transform:translateY(-2px) scale(1.01);
  border-color:var(--choice-accent);
  background:linear-gradient(180deg, color-mix(in srgb, var(--choice-bg-1) 84%, white 16%) 0%, color-mix(in srgb, var(--choice-bg-2) 90%, var(--choice-accent) 10%) 100%);
  box-shadow:0 0 0 4px rgba(255,255,255,.95), 0 0 0 7px color-mix(in srgb, var(--choice-accent) 20%, white 80%), 0 22px 40px color-mix(in srgb, var(--choice-accent) 18%, rgba(22,49,92,.16) 82%);
}

.level-choice-v12.active .level-choice-title{
  color:color-mix(in srgb, var(--choice-text) 92%, #173a76 8%);
}

@media (max-width:980px){
  .level-choice-grid-v12{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media (max-width:760px){
  .level-choice-grid-v12{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
  .level-choice.level-choice-v12,
  .level-choice-v12{
    min-height:98px;
    padding:16px 10px 14px;
    border-radius:18px;
  }
  .level-choice-v12::after{
    inset:8px;
    border-radius:14px;
  }
  .level-choice-v12 .level-choice-title,
  .level-choice .level-choice-title{
    font-size:1rem;
    min-height:2.6em;
  }
}


/* --- V92 modal choices strong colors without color-mix dependency --- */
.level-choice.level-choice-v12,
.level-choice-v12{
  box-shadow:0 10px 22px rgba(22,49,92,.08);
}
.level-choice-v12::before{
  height:10px;
}
.level-choice-v12.level-neutral{
  background:linear-gradient(180deg,#f7f9fd 0%,#e9eef6 100%);
  border-color:#cfd8e6;
  color:#5f7593;
}
.level-choice-v12.level-neutral::before{background:linear-gradient(90deg,#a6b7cf 0%,#8fa5c4 100%)}
.level-choice-v12.level-danger{
  background:linear-gradient(180deg,#fff1ee 0%,#ffd7d0 100%);
  border-color:#efb2a9;
  color:#b13830;
}
.level-choice-v12.level-danger::before{background:linear-gradient(90deg,#ef7e72 0%,#d94b41 100%)}
.level-choice-v12.level-warning{
  background:linear-gradient(180deg,#fff8ea 0%,#ffe0a6 100%);
  border-color:#f1c577;
  color:#b86b00;
}
.level-choice-v12.level-warning::before{background:linear-gradient(90deg,#f6b343 0%,#ea8a10 100%)}
.level-choice-v12.level-success{
  background:linear-gradient(180deg,#effbf4 0%,#cdeedb 100%);
  border-color:#9fd2b4;
  color:#197a47;
}
.level-choice-v12.level-success::before{background:linear-gradient(90deg,#44c980 0%,#219a59 100%)}
.level-choice-v12.level-info{
  background:linear-gradient(180deg,#eef5ff 0%,#cfe0ff 100%);
  border-color:#9dbcf3;
  color:#2258c2;
}
.level-choice-v12.level-info::before{background:linear-gradient(90deg,#5c8ff3 0%,#2f5fd0 100%)}
.level-choice-v12:hover{
  transform:translateY(-3px);
}
.level-choice-v12.level-neutral:hover{box-shadow:0 16px 30px rgba(143,165,196,.18)}
.level-choice-v12.level-danger:hover{box-shadow:0 16px 30px rgba(217,75,65,.20)}
.level-choice-v12.level-warning:hover{box-shadow:0 16px 30px rgba(234,138,16,.20)}
.level-choice-v12.level-success:hover{box-shadow:0 16px 30px rgba(33,154,89,.18)}
.level-choice-v12.level-info:hover{box-shadow:0 16px 30px rgba(47,95,208,.20)}
.level-choice-v12.active{
  transform:translateY(-2px) scale(1.01);
  box-shadow:0 0 0 4px rgba(255,255,255,.95), 0 0 0 7px rgba(47,95,208,.14), 0 20px 34px rgba(22,49,92,.14);
}
.level-choice-v12.level-neutral.active{
  border-color:#8fa5c4;
  box-shadow:0 0 0 4px rgba(255,255,255,.95), 0 0 0 7px rgba(143,165,196,.20), 0 20px 34px rgba(22,49,92,.12);
}
.level-choice-v12.level-danger.active{
  border-color:#d94b41;
  box-shadow:0 0 0 4px rgba(255,255,255,.95), 0 0 0 7px rgba(217,75,65,.22), 0 20px 34px rgba(177,56,48,.16);
}
.level-choice-v12.level-warning.active{
  border-color:#ea8a10;
  box-shadow:0 0 0 4px rgba(255,255,255,.95), 0 0 0 7px rgba(234,138,16,.22), 0 20px 34px rgba(184,107,0,.16);
}
.level-choice-v12.level-success.active{
  border-color:#219a59;
  box-shadow:0 0 0 4px rgba(255,255,255,.95), 0 0 0 7px rgba(33,154,89,.22), 0 20px 34px rgba(25,122,71,.16);
}
.level-choice-v12.level-info.active{
  border-color:#2f5fd0;
  box-shadow:0 0 0 4px rgba(255,255,255,.95), 0 0 0 7px rgba(47,95,208,.22), 0 20px 34px rgba(34,88,194,.16);
}


/* --- V91.1 modal choices vivid colors fix --- */
.level-choice.level-choice-v12,
.level-choice-v12{
  box-shadow:none;
  background:#f2f5fb;
}

.level-choice-v12::before{
  height:10px;
  background:var(--choice-accent);
}

.level-choice-v12::after{
  inset:0;
  border-radius:22px;
  border:1.5px solid rgba(255,255,255,.35);
}

.level-choice-v12.level-neutral{
  --choice-bg-1:#e5edf8;
  --choice-bg-2:#cad9ee;
  --choice-border:#9db2d2;
  --choice-text:#415b82;
  --choice-accent:#7f98bf;
  background:linear-gradient(180deg,#e5edf8 0%,#cad9ee 100%);
}

.level-choice-v12.level-danger{
  --choice-bg-1:#ffe0dc;
  --choice-bg-2:#ffb4ac;
  --choice-border:#ef7b70;
  --choice-text:#972d24;
  --choice-accent:#ef5a4d;
  background:linear-gradient(180deg,#ffe0dc 0%,#ffb4ac 100%);
}

.level-choice-v12.level-warning{
  --choice-bg-1:#ffe7b8;
  --choice-bg-2:#ffbb47;
  --choice-border:#ea9200;
  --choice-text:#8a4a00;
  --choice-accent:#ff9700;
  background:linear-gradient(180deg,#ffe7b8 0%,#ffbb47 100%);
}

.level-choice-v12.level-success{
  --choice-bg-1:#d8f7e1;
  --choice-bg-2:#7fdb9f;
  --choice-border:#28a85b;
  --choice-text:#0f6a34;
  --choice-accent:#20b15e;
  background:linear-gradient(180deg,#d8f7e1 0%,#7fdb9f 100%);
}

.level-choice-v12.level-info{
  --choice-bg-1:#dce9ff;
  --choice-bg-2:#7fb1ff;
  --choice-border:#3f7df1;
  --choice-text:#144aaf;
  --choice-accent:#2f78ff;
  background:linear-gradient(180deg,#dce9ff 0%,#7fb1ff 100%);
}

.level-choice-v12:hover{
  transform:translateY(-4px);
  border-color:var(--choice-accent);
  box-shadow:0 12px 26px rgba(20,59,122,.14);
}

.level-choice-v12.active{
  border-color:var(--choice-accent);
  box-shadow:0 0 0 3px rgba(255,255,255,.96), 0 0 0 6px var(--choice-accent), 0 14px 28px rgba(20,59,122,.18);
  filter:saturate(1.08);
}

.level-choice-v12 .level-choice-title,
.level-choice .level-choice-title{
  color:var(--choice-text);
  text-shadow:none;
}

/* --- V88.3 tuteur history panel full-height fix --- */
body[data-role="tuteur"] .tutor-dashboard-v12{
  grid-template-rows:auto auto 1fr;
}
body[data-role="tuteur"] .eval-layout{
  flex:1 1 auto;
  align-items:stretch;
  min-height:0;
}
body[data-role="tuteur"] .eval-right-panel,
body[data-role="tuteur"] .eval-left-panel{
  height:100%;
}
body[data-role="tuteur"] #focusContent:not(.auth-hidden){
  display:flex;
  flex-direction:column;
  min-height:0;
  height:100%;
}
body[data-role="tuteur"] .eval-history-head{
  flex:0 0 auto;
}
body[data-role="tuteur"] .eval-history-wrap{
  flex:1 1 auto;
  min-height:280px;
  height:100%;
}
body[data-role="tuteur"] .history-entry:last-child{
  margin-bottom:4px;
}
@media (max-width:980px){
  body[data-role="tuteur"] .tutor-dashboard-v12{
    grid-template-rows:auto auto auto;
  }
  body[data-role="tuteur"] .eval-history-wrap{
    min-height:320px;
  }
}

/* --- V88.4 tuteur history must reach window bottom --- */
body[data-role="tuteur"] .shell{
  min-height:100vh;
  align-items:stretch;
}
body[data-role="tuteur"] .role-eval-card{
  min-height:calc(100vh - 48px);
  height:calc(100vh - 48px);
}
body[data-role="tuteur"] .role-eval-card .dashboard,
body[data-role="tuteur"] .role-eval-card .sidebar{
  min-height:0;
  height:100%;
}
body[data-role="tuteur"] .tutor-dashboard-v12{
  height:100%;
  min-height:0;
  grid-template-rows:auto auto minmax(0,1fr);
}
body[data-role="tuteur"] .eval-layout{
  height:100%;
  min-height:0;
  align-self:stretch;
}
body[data-role="tuteur"] .eval-right-panel,
body[data-role="tuteur"] .eval-left-panel{
  min-height:0;
  height:100%;
}
body[data-role="tuteur"] #focusContent:not(.auth-hidden){
  flex:1 1 auto;
  min-height:0;
  height:100%;
}
body[data-role="tuteur"] .eval-history-wrap{
  flex:1 1 auto;
  min-height:0;
  height:auto;
}
@media (max-width:1024px){
  body[data-role="tuteur"] .role-eval-card{
    min-height:auto;
    height:auto;
  }
  body[data-role="tuteur"] .tutor-dashboard-v12{
    height:auto;
    grid-template-rows:auto auto auto;
  }
  body[data-role="tuteur"] .eval-layout{
    height:auto;
  }
}


/* --- V88.5 tuteur history visual fill fix --- */
body[data-role="tuteur"] #competenceHistoryWrap.history-fill{
  display:flex;
  flex-direction:column;
  align-content:stretch;
}
body[data-role="tuteur"] #competenceHistoryWrap.history-fill .history-entry{
  margin-bottom:0;
}
body[data-role="tuteur"] #competenceHistoryWrap.history-fill-1 .history-entry{
  min-height:100%;
}
body[data-role="tuteur"] #competenceHistoryWrap.history-fill-2 .history-entry{
  min-height:calc((100% - 12px) / 2);
}
body[data-role="tuteur"] #competenceHistoryWrap.history-fill-3 .history-entry{
  min-height:calc((100% - 24px) / 3);
}
body[data-role="tuteur"] #competenceHistoryWrap.history-fill .history-entry{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}
body[data-role="tuteur"] #competenceHistoryWrap.history-fill .history-entry p{
  margin-top:auto;
}
@media (max-width:980px){
  body[data-role="tuteur"] #competenceHistoryWrap.history-fill-1 .history-entry,
  body[data-role="tuteur"] #competenceHistoryWrap.history-fill-2 .history-entry,
  body[data-role="tuteur"] #competenceHistoryWrap.history-fill-3 .history-entry{
    min-height:auto;
  }
}


/* --- V88.6 historique daté étendu pour tous les espaces d'évaluation --- */
body[data-role="apprenti"] .shell,
body[data-role="formateur"] .shell,
body[data-role="tuteur"] .shell{
  min-height:100vh;
  align-items:stretch;
}
body[data-role="apprenti"] .role-eval-card,
body[data-role="formateur"] .role-eval-card,
body[data-role="tuteur"] .role-eval-card{
  min-height:calc(100vh - 48px);
  height:calc(100vh - 48px);
}
body[data-role="apprenti"] .role-eval-card .dashboard,
body[data-role="apprenti"] .role-eval-card .sidebar,
body[data-role="formateur"] .role-eval-card .dashboard,
body[data-role="formateur"] .role-eval-card .sidebar,
body[data-role="tuteur"] .role-eval-card .dashboard,
body[data-role="tuteur"] .role-eval-card .sidebar{
  min-height:0;
  height:100%;
}
body[data-role="apprenti"] .tutor-dashboard-v12,
body[data-role="formateur"] .tutor-dashboard-v12,
body[data-role="tuteur"] .tutor-dashboard-v12{
  height:100%;
  min-height:0;
  grid-template-rows:auto auto minmax(0,1fr);
}
body[data-role="apprenti"] .eval-layout,
body[data-role="formateur"] .eval-layout,
body[data-role="tuteur"] .eval-layout{
  height:100%;
  min-height:0;
  align-self:stretch;
  align-items:stretch;
}
body[data-role="apprenti"] .eval-left-panel,
body[data-role="apprenti"] .eval-right-panel,
body[data-role="formateur"] .eval-left-panel,
body[data-role="formateur"] .eval-right-panel,
body[data-role="tuteur"] .eval-left-panel,
body[data-role="tuteur"] .eval-right-panel{
  min-height:0;
  height:100%;
}
body[data-role="apprenti"] #focusContent:not(.auth-hidden),
body[data-role="formateur"] #focusContent:not(.auth-hidden),
body[data-role="tuteur"] #focusContent:not(.auth-hidden){
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  min-height:0;
  height:100%;
}
body[data-role="apprenti"] .eval-history-head,
body[data-role="formateur"] .eval-history-head,
body[data-role="tuteur"] .eval-history-head{
  flex:0 0 auto;
}
body[data-role="apprenti"] .eval-history-wrap,
body[data-role="formateur"] .eval-history-wrap,
body[data-role="tuteur"] .eval-history-wrap{
  flex:1 1 auto;
  min-height:0;
  height:auto;
}
body[data-role="apprenti"] #competenceHistoryWrap.history-fill,
body[data-role="formateur"] #competenceHistoryWrap.history-fill,
body[data-role="tuteur"] #competenceHistoryWrap.history-fill{
  display:flex;
  flex-direction:column;
  align-content:stretch;
}
body[data-role="apprenti"] #competenceHistoryWrap.history-fill .history-entry,
body[data-role="formateur"] #competenceHistoryWrap.history-fill .history-entry,
body[data-role="tuteur"] #competenceHistoryWrap.history-fill .history-entry{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  margin-bottom:0;
}
body[data-role="apprenti"] #competenceHistoryWrap.history-fill-1 .history-entry,
body[data-role="formateur"] #competenceHistoryWrap.history-fill-1 .history-entry,
body[data-role="tuteur"] #competenceHistoryWrap.history-fill-1 .history-entry{
  min-height:100%;
}
body[data-role="apprenti"] #competenceHistoryWrap.history-fill-2 .history-entry,
body[data-role="formateur"] #competenceHistoryWrap.history-fill-2 .history-entry,
body[data-role="tuteur"] #competenceHistoryWrap.history-fill-2 .history-entry{
  min-height:calc((100% - 12px) / 2);
}
body[data-role="apprenti"] #competenceHistoryWrap.history-fill-3 .history-entry,
body[data-role="formateur"] #competenceHistoryWrap.history-fill-3 .history-entry,
body[data-role="tuteur"] #competenceHistoryWrap.history-fill-3 .history-entry{
  min-height:calc((100% - 24px) / 3);
}
body[data-role="apprenti"] #competenceHistoryWrap.history-fill .history-entry p,
body[data-role="formateur"] #competenceHistoryWrap.history-fill .history-entry p,
body[data-role="tuteur"] #competenceHistoryWrap.history-fill .history-entry p{
  margin-top:auto;
}
@media (max-width:1024px){
  body[data-role="apprenti"] .role-eval-card,
  body[data-role="formateur"] .role-eval-card,
  body[data-role="tuteur"] .role-eval-card{
    min-height:auto;
    height:auto;
  }
  body[data-role="apprenti"] .tutor-dashboard-v12,
  body[data-role="formateur"] .tutor-dashboard-v12,
  body[data-role="tuteur"] .tutor-dashboard-v12{
    height:auto;
    grid-template-rows:auto auto auto;
  }
  body[data-role="apprenti"] .eval-layout,
  body[data-role="formateur"] .eval-layout,
  body[data-role="tuteur"] .eval-layout{
    height:auto;
  }
}
@media (max-width:980px){
  body[data-role="apprenti"] #competenceHistoryWrap.history-fill-1 .history-entry,
  body[data-role="apprenti"] #competenceHistoryWrap.history-fill-2 .history-entry,
  body[data-role="apprenti"] #competenceHistoryWrap.history-fill-3 .history-entry,
  body[data-role="formateur"] #competenceHistoryWrap.history-fill-1 .history-entry,
  body[data-role="formateur"] #competenceHistoryWrap.history-fill-2 .history-entry,
  body[data-role="formateur"] #competenceHistoryWrap.history-fill-3 .history-entry,
  body[data-role="tuteur"] #competenceHistoryWrap.history-fill-1 .history-entry,
  body[data-role="tuteur"] #competenceHistoryWrap.history-fill-2 .history-entry,
  body[data-role="tuteur"] #competenceHistoryWrap.history-fill-3 .history-entry{
    min-height:auto;
  }
}


/* ===== V88 Messagerie intégrée au bandeau bleu ===== */
.messages-header-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  margin-left:auto;
}
.messages-launcher.messages-launcher-in-header{
  position:relative;
  right:auto;
  bottom:auto;
  z-index:auto;
  padding:12px 16px;
  min-height:48px;
  box-shadow:0 10px 26px rgba(17,24,39,.18);
}
.dashboard-header .messages-launcher.messages-launcher-in-header{
  margin-left:auto;
}
@media (max-width:900px){
  .messages-header-actions{justify-content:flex-start;margin-left:0;}
}


/* --- V89 chart zoom modal --- */
body.chart-zoom-open{overflow:hidden;}
.chart-zoom-modal{position:fixed;inset:0;z-index:4000;display:grid;place-items:center;padding:24px;}
.chart-zoom-backdrop{position:absolute;inset:0;background:rgba(10,24,45,.58);backdrop-filter:blur(4px);}
.chart-zoom-dialog{position:relative;z-index:1;width:min(96vw,1700px);max-height:92vh;display:grid;grid-template-rows:auto 1fr;background:#fff;border:1px solid #dbe6f4;border-radius:28px;box-shadow:0 28px 90px rgba(12,28,55,.28);overflow:hidden;}
.chart-zoom-head{display:grid;gap:4px;padding:18px 72px 12px 22px;border-bottom:1px solid #e6eef8;background:linear-gradient(180deg,#f8fbff 0%,#ffffff 100%);}
.chart-zoom-head strong{font-size:1.05rem;color:var(--blue-dark);}
.chart-zoom-head span{font-size:.88rem;color:#61789a;}
.chart-zoom-close{position:absolute;top:14px;right:14px;width:42px;height:42px;border:none;border-radius:999px;background:#edf4ff;color:var(--blue-dark);font-size:1.6rem;line-height:1;cursor:pointer;}
.chart-zoom-close:hover{transform:scale(1.04);}
.chart-zoom-body{padding:18px;overflow:auto;background:#fbfdff;}
.chart-zoom-body .chart-pan-hint{margin-bottom:10px;}
.chart-zoom-body .chart-scroll-viewport{max-height:calc(92vh - 180px);padding-bottom:14px;}
.chart-zoom-body .chart-canvas-wrap-v18{min-width:max-content;padding:22px 26px 22px;}
.chart-zoom-body .progress-chart.progress-chart-v18{min-width:1600px;}
.chart-zoom-body .chart-tooltip{position:absolute;}
@media (max-width:760px){
  .chart-zoom-modal{padding:10px;}
  .chart-zoom-dialog{width:100%;max-height:96vh;border-radius:20px;}
  .chart-zoom-head{padding-right:60px;}
  .chart-zoom-body{padding:10px;}
}

.audit-main-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.audit-indicators-panel,.audit-matrix-panel{grid-column:1/-1}
.audit-indicator-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.audit-indicator-card{border:1px solid rgba(20,64,145,.12);border-radius:22px;padding:18px;background:#fff;box-shadow:0 12px 30px rgba(15,42,92,.06)}
.audit-indicator-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}
.audit-indicator-top h4{margin:0;font-size:1rem;color:#143f7b}
.audit-indicator-badge,.audit-table-badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;font-size:.78rem;font-weight:700}
.audit-indicator-card.good .audit-indicator-badge,.audit-table-badge.good{background:rgba(28,138,79,.12);color:#1c8a4f}
.audit-indicator-card.watch .audit-indicator-badge,.audit-table-badge.watch{background:rgba(236,153,0,.14);color:#a96500}
.audit-indicator-card.risk .audit-indicator-badge,.audit-table-badge.risk{background:rgba(201,55,44,.12);color:#b23a2d}
.audit-indicator-score{font-size:2rem;font-weight:800;color:#133c78;margin-bottom:8px}
.audit-indicator-card p{margin:0;color:#52627d;line-height:1.5}
.audit-facts-list{display:grid;gap:12px}
.audit-fact-item{display:grid;grid-template-columns:12px 1fr;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:18px;background:#f7f9fd}
.audit-fact-item span{width:12px;height:12px;border-radius:999px;background:#f39a1e;margin-top:5px}
.audit-fact-item p{margin:0;color:#355073;line-height:1.5}
.audit-timeline{display:grid;gap:14px}
.audit-timeline-item{display:grid;grid-template-columns:14px 1fr;gap:14px;align-items:flex-start}
.audit-timeline-dot{width:14px;height:14px;border-radius:999px;background:#1b56a7;box-shadow:0 0 0 4px rgba(27,86,167,.12);margin-top:6px}
.audit-timeline-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:4px}
.audit-timeline-head strong{color:#163f7c}
.audit-timeline-head span{font-size:.85rem;color:#6e7f98}
.audit-timeline-item p{margin:0;color:#53627d;line-height:1.5}
@media (max-width: 980px){.audit-main-grid{grid-template-columns:1fr}}


/* V88.8 progression details restored */
.stat-meta{margin:8px 0 0;font-size:.84rem;line-height:1.35;color:#5f7390}
.progress-quick-facts{display:grid;gap:10px;margin-top:14px}
.quick-fact-card{border:1px solid rgba(143,167,200,.28);border-radius:18px;padding:12px 14px;background:rgba(248,250,255,.92);display:grid;gap:4px}
.quick-fact-card strong{font-size:.95rem;color:#17365f}
.quick-fact-card span{font-size:.92rem;line-height:1.45;color:#23364d}
.quick-fact-card small{font-size:.8rem;color:#6b7f99}
.quick-fact-card-apprenti{border-left:4px solid #2f6df6}
.quick-fact-card-tuteur{border-left:4px solid #f28c1b}
.quick-fact-card-formateur{border-left:4px solid #e05a54}
.history-meta{margin-top:4px}
.compact-history-entry.history-apprenti{border-left:4px solid rgba(47,109,246,.85)}
.compact-history-entry.history-tuteur{border-left:4px solid rgba(242,140,27,.85)}
.compact-history-entry.history-formateur{border-left:4px solid rgba(224,90,84,.85)}
body.dark-theme .stat-meta{color:#b2c1d6}
body.dark-theme .quick-fact-card{background:rgba(15,26,43,.72);border-color:rgba(130,154,188,.24)}
body.dark-theme .quick-fact-card strong{color:#eff5ff}
body.dark-theme .quick-fact-card span{color:#d7e3f4}
body.dark-theme .quick-fact-card small{color:#9fb2cc}

/* ===== Bilans formateur ===== */
.bilan-page-card{align-items:stretch}
.bilan-dashboard{display:flex;flex-direction:column;gap:18px;min-width:0}
.bilan-actions-top{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:flex-end}

.bilan-focus-panel{display:grid;grid-template-columns:minmax(320px,1.2fr) minmax(320px,.95fr);gap:18px;align-items:center;padding:22px 24px;background:linear-gradient(135deg,rgba(23,59,120,.98) 0%,rgba(47,109,246,.96) 55%,rgba(242,181,95,.92) 125%);color:#fff;border:none;box-shadow:0 18px 42px rgba(20,56,113,.16)}
.bilan-focus-copy h3{margin:6px 0 8px;font-size:1.6rem;color:#fff}
.bilan-focus-copy .panel-subtext{margin:0;color:rgba(255,255,255,.9);max-width:62ch}
.bilan-focus-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.bilan-step{min-width:0;border:1px solid rgba(255,255,255,.22);border-radius:18px;padding:14px 16px;background:rgba(255,255,255,.12);backdrop-filter:blur(8px);display:flex;flex-direction:column;gap:5px;box-shadow:inset 0 1px 0 rgba(255,255,255,.14)}
.bilan-step span{width:28px;height:28px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#fff;color:#173b78;font-weight:800;font-size:.92rem}
.bilan-step strong{font-size:1rem;color:#fff}
.bilan-step small{color:rgba(255,255,255,.88);line-height:1.4}
.print-header-brand{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(220px,.75fr);gap:18px;align-items:stretch;border:none;padding:0;margin-bottom:22px}
.print-brand-card{display:flex;justify-content:space-between;gap:18px;align-items:center;background:linear-gradient(135deg,#173b78 0%,#2d69c4 58%,#f2b55f 130%);border-radius:28px;padding:22px 24px;box-shadow:0 18px 45px rgba(20,56,113,.18);color:#fff;overflow:hidden}
.print-brand-main{display:flex;align-items:center;gap:18px;min-width:0}
.print-brand-logo{width:170px;max-width:34vw;background:#fff;border-radius:18px;padding:10px;box-shadow:0 10px 26px rgba(0,0,0,.18);flex-shrink:0}
.print-brand-text{min-width:0}
.print-brand-text h1{margin:0;font-size:31px;line-height:1.1;color:#fff}
.print-brand-text .print-kicker{color:rgba(255,255,255,.86);margin:0 0 8px}
.print-brand-text .print-meta{color:rgba(255,255,255,.92);margin:8px 0 0}
.print-brand-badge{align-self:stretch;display:flex;flex-direction:column;justify-content:center;min-width:210px;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.12);border-radius:20px;padding:14px 16px}
.print-brand-badge span{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.82);font-weight:700}
.print-brand-badge strong{font-size:18px;margin-top:6px;color:#fff;line-height:1.25;overflow-wrap:anywhere}
.print-meta-box.print-meta-box-soft{background:rgba(47,109,246,.06);border:1px solid rgba(47,109,246,.12);border-radius:20px;padding:16px 18px;display:grid;gap:10px;align-content:start}
.print-meta-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.print-meta-pill{display:inline-flex;align-items:center;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.22);color:#fff;font-size:12px;font-weight:700}
.print-summary-intro{margin:-4px 0 18px;padding:14px 16px;border-radius:18px;background:linear-gradient(90deg,rgba(31,79,151,.08),rgba(242,181,95,.14));border:1px solid rgba(39,75,150,.12);color:#35578c}
@media (max-width:1180px){.bilan-focus-panel,.print-header-brand{grid-template-columns:1fr}.print-brand-card{flex-direction:column;align-items:flex-start}.print-brand-logo{max-width:220px}.print-brand-badge{width:100%;min-width:0}}
@media (max-width:760px){.bilan-focus-steps{grid-template-columns:1fr}.bilan-focus-panel{padding:20px}.print-brand-card{padding:20px;border-radius:22px}.print-brand-text h1{font-size:26px}.print-brand-logo{width:150px}}
@media print{.print-header-brand{display:block}.print-brand-card{box-shadow:none !important;border-radius:0 !important;-webkit-print-color-adjust:exact;print-color-adjust:exact;page-break-inside:avoid}.print-meta-box.print-meta-box-soft{margin-top:14px;padding:0;background:none;border:none}}
body.dark-theme .bilan-focus-panel{box-shadow:0 18px 42px rgba(0,0,0,.35)}
body.dark-theme .print-summary-intro{background:linear-gradient(90deg,rgba(47,109,246,.18),rgba(242,181,95,.14));border-color:rgba(130,154,188,.24);color:#dbe7f8}
.bilan-filters-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:end}
.bilan-filters-grid .field-span-2{grid-column:span 2}
.bilan-summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.bilan-summary-strip .strip-item{min-width:0;border:1px solid rgba(39,75,150,.12);border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(247,250,255,.96));padding:14px 16px;display:flex;flex-direction:column;gap:6px;box-shadow:0 10px 22px rgba(24,53,109,.05)}
.bilan-summary-strip .strip-item span{font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:#6983ad;font-weight:700}
.bilan-summary-strip .strip-item strong{color:#163f7c;font-size:15px;line-height:1.35;word-break:break-word}
.bilan-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(340px,.85fr);gap:18px;align-items:start}
.bilan-editor,.bilan-side,.printable-bilan-panel{min-width:0}
.bilan-editor textarea{min-height:108px;resize:vertical}
.bilan-side{position:static;display:flex;flex-direction:column;gap:18px;padding:18px;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(246,249,255,.98))}
.bilan-side-section{min-width:0;border:1px solid rgba(39,75,150,.12);border-radius:20px;padding:16px;background:#fff;box-shadow:0 12px 26px rgba(24,53,109,.05)}
.bilan-history-section{background:linear-gradient(180deg,#fff,rgba(249,251,255,.98))}
.bilan-decision-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.saved-bilans-list,.bilan-history-list{display:flex;flex-direction:column;gap:12px;max-height:480px;overflow:auto;padding-right:4px;min-width:0;scrollbar-gutter:stable both-edges}
.saved-bilan-card{border:1px solid rgba(39,75,150,.14);border-radius:18px;padding:14px;background:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:flex-start;box-shadow:0 10px 24px rgba(24,53,109,.06)}
.saved-bilan-card.active{border-color:rgba(47,109,246,.38);box-shadow:0 14px 26px rgba(47,109,246,.13)}
.saved-bilan-main{display:flex;flex-direction:column;gap:6px;min-width:0}
.saved-bilan-main strong{font-size:15px;color:#153a7a;line-height:1.35;word-break:break-word}
.saved-bilan-main small{color:#6078a2;line-height:1.4;word-break:break-word}
.saved-bilan-type{display:inline-flex;align-self:flex-start;padding:6px 10px;border-radius:999px;background:rgba(242,140,27,.12);color:#b86d0c;font-size:12px;font-weight:700;max-width:100%}
.saved-bilan-actions{display:flex;flex-direction:column;gap:8px;flex-shrink:0;align-items:stretch}
.mini-btn{padding:9px 12px;font-size:12px;min-height:auto;white-space:nowrap}
.danger-lite{border-color:rgba(224,90,84,.25);color:#b03d38}
.printable-bilan-panel{padding:22px}
.printable-bilan{background:#fff;border:1px solid rgba(39,75,150,.14);border-radius:24px;padding:34px;box-shadow:0 16px 40px rgba(24,53,109,.08);color:#18356d;overflow:hidden}
.print-header{display:flex;justify-content:space-between;gap:18px;border-bottom:2px solid rgba(39,75,150,.12);padding-bottom:18px;margin-bottom:18px}
.print-kicker{margin:0 0 8px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#6078a2;font-weight:700}
.print-header h1{margin:0;font-size:30px;line-height:1.15;color:#153a7a;word-break:break-word}
.print-meta{margin:8px 0 0;color:#5e77a3}
.print-meta-box{min-width:220px;background:rgba(47,109,246,.06);border:1px solid rgba(47,109,246,.12);border-radius:18px;padding:14px 16px;display:grid;grid-template-columns:1fr;gap:6px;align-content:start}
.print-meta-box strong,.print-identity-grid strong{color:#153a7a}
.print-identity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}
.print-identity-grid>div{border:1px solid rgba(39,75,150,.12);border-radius:16px;padding:12px 14px;background:#fcfdff;display:flex;flex-direction:column;gap:5px;min-width:0}
.print-identity-grid span{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#6b84ad;font-weight:700}
.print-section{margin-bottom:18px;break-inside:avoid}
.print-section h4{margin:0 0 10px;font-size:16px;color:#153a7a}
.print-section p,.print-section li{color:#304f83;line-height:1.6;overflow-wrap:anywhere}
.print-section ul{margin:0;padding-left:22px}
.print-empty{color:#8ba0c2;font-style:italic}
.print-signatures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;border-top:2px solid rgba(39,75,150,.12);padding-top:18px;margin-top:22px}
.signature-box{min-height:94px;border:1px dashed rgba(39,75,150,.28);border-radius:16px;padding:12px 14px;display:flex;flex-direction:column;justify-content:space-between;gap:10px}
.signature-wide{grid-column:span 1}
.no-print{print-color-adjust:exact;-webkit-print-color-adjust:exact}
.bilan-history-head{margin-top:0;padding-top:0;border-top:none}
.bilan-history-list{max-height:620px}
.bilan-history-card{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;align-items:flex-start;border:1px solid rgba(39,75,150,.12);border-radius:18px;padding:14px;background:#fcfdff;box-shadow:0 10px 24px rgba(24,53,109,.05)}
.bilan-history-card.active{border-color:rgba(47,109,246,.38);box-shadow:0 14px 26px rgba(47,109,246,.12)}
.bilan-history-index{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(47,109,246,.1);color:#153a7a;font-weight:800;flex-shrink:0}
.bilan-history-body{display:flex;flex-direction:column;gap:8px;min-width:0}
.bilan-history-topline{display:flex;flex-direction:column;gap:6px;min-width:0}
.bilan-history-topline strong{color:#153a7a;word-break:break-word}
.bilan-history-meta{display:flex;flex-wrap:wrap;gap:8px 10px;color:#6078a2;font-size:12px}
.bilan-history-meta span{padding:4px 8px;border-radius:999px;background:rgba(39,75,150,.06);max-width:100%;word-break:break-word}
.bilan-history-excerpt{margin:0;color:#304f83;line-height:1.5;overflow-wrap:anywhere}
.bilan-history-actions{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:8px}
.print-history-table{display:flex;flex-direction:column;gap:0;border:1px solid rgba(39,75,150,.12);border-radius:16px;overflow:hidden}
.print-history-row{display:grid;grid-template-columns:1.1fr 1.35fr 1.45fr 1.3fr 1.1fr;gap:12px;padding:10px 12px;border-top:1px solid rgba(39,75,150,.08);align-items:start}
.print-history-row:first-child{border-top:none}
.print-history-headrow{background:rgba(39,75,150,.08);font-weight:700;color:#153a7a}
.print-history-row.current{background:rgba(47,109,246,.05)}

@media (max-width: 1280px){
  .bilan-layout{grid-template-columns:minmax(0,1fr)}
}

@media (max-width: 1180px){
  .bilan-filters-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bilan-summary-strip,.print-identity-grid,.print-signatures{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width: 900px){
  .saved-bilan-card{grid-template-columns:1fr}
  .saved-bilan-actions{flex-direction:row;flex-wrap:wrap}
  .bilan-history-card{grid-template-columns:1fr}
}

@media (max-width: 760px){
  .bilan-actions-top{justify-content:flex-start}
  .bilan-filters-grid,.bilan-summary-strip,.bilan-decision-grid,.print-identity-grid,.print-signatures,.print-history-row{grid-template-columns:1fr}
  .bilan-filters-grid .field-span-2{grid-column:span 1}
  .print-header{flex-direction:column}
  .printable-bilan{padding:22px}
  .saved-bilans-list,.bilan-history-list{max-height:none;overflow:visible}
}

@media print{
  body{background:#fff !important}
  .shell,.admin-card,.dashboard,.printable-bilan-panel,.printable-bilan{box-shadow:none !important;background:#fff !important}
  .sidebar,.no-print,.header-actions,.bilan-side,.bilan-editor,.panel-head.no-print{display:none !important}
  .admin-card{padding:0 !important;border:none !important}
  .dashboard{padding:0 !important}
  .printable-bilan-panel{padding:0 !important;border:none !important}
  .printable-bilan{border:none !important;padding:0 !important;border-radius:0 !important}
  @page{size:A4;margin:14mm}
}

body.dark-theme .bilan-summary-strip .strip-item{background:rgba(15,26,43,.74);border-color:rgba(130,154,188,.24)}
body.dark-theme .bilan-summary-strip .strip-item span{color:#9fb2cc}
body.dark-theme .bilan-summary-strip .strip-item strong{color:#eff5ff}
body.dark-theme .bilan-side{background:linear-gradient(180deg,rgba(15,26,43,.78),rgba(10,18,32,.82))}
body.dark-theme .bilan-side-section,body.dark-theme .saved-bilan-card,body.dark-theme .bilan-history-card{background:rgba(15,26,43,.72);border-color:rgba(130,154,188,.24)}
body.dark-theme .saved-bilan-main strong,body.dark-theme .bilan-history-topline strong,body.dark-theme .bilan-history-index,body.dark-theme .print-header h1,body.dark-theme .print-meta-box strong,body.dark-theme .print-identity-grid strong{color:#eff5ff}
body.dark-theme .saved-bilan-main small,body.dark-theme .bilan-history-meta,body.dark-theme .bilan-history-excerpt,body.dark-theme .print-meta,body.dark-theme .print-section p,body.dark-theme .print-section li{color:#c8d6ea}
body.dark-theme .bilan-history-meta span{background:rgba(255,255,255,.06)}
body.dark-theme .saved-bilan-type{background:rgba(242,140,27,.16);color:#ffd39a}
body.dark-theme .printable-bilan{background:rgba(8,14,27,.92);border-color:rgba(130,154,188,.24);color:#eaf2ff}
body.dark-theme .print-meta-box,body.dark-theme .print-identity-grid>div{background:rgba(255,255,255,.04);border-color:rgba(130,154,188,.24)}
body.dark-theme .print-kicker,body.dark-theme .print-identity-grid span{color:#9fb2cc}
body.dark-theme .print-history-table{border-color:rgba(130,154,188,.24)}
body.dark-theme .print-history-headrow{background:rgba(255,255,255,.06);color:#eff5ff}
body.dark-theme .print-history-row{border-top-color:rgba(130,154,188,.16)}


/* Radar progression view */
.radar-board-wrap{display:grid;gap:18px}
.radar-board-header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:6px 2px 0}
.radar-board-header h4{margin:6px 0 0;font-size:1.05rem;color:var(--blue-dark)}
.radar-board-scale{min-width:240px;padding:16px 18px;border-radius:20px;border:1px solid var(--line);background:linear-gradient(180deg,#fff 0%,#f7faff 100%);box-shadow:0 12px 24px rgba(23,54,95,.04)}
.radar-board-scale span{display:block;color:#6d83a3;font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.radar-board-scale strong{display:block;margin-top:4px;font-size:1.4rem;color:var(--blue-dark)}
.radar-board-scale small{display:block;margin-top:6px;color:#5e7598;line-height:1.45}
.radar-board-grid{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:18px}
.radar-card{border:1px solid var(--line);border-radius:26px;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);box-shadow:0 16px 30px rgba(23,54,95,.06);padding:18px 18px 14px;display:grid;gap:12px}
.radar-card-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.radar-card-head h4{margin:4px 0 0;font-size:1.4rem;color:var(--blue-dark)}
.radar-card-head .panel-subtext{margin:8px 0 0;max-width:28ch}
.radar-score-badge{min-width:88px;padding:12px 14px;border-radius:20px;background:linear-gradient(180deg,#fff 0%,#f4f8ff 100%);border:1px solid #d7e2f3;box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
.radar-score-badge span{display:block;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#758aac}
.radar-score-badge strong{display:block;margin-top:4px;font-size:1.5rem;color:var(--radar-accent)}
.radar-svg-shell{display:flex;justify-content:center;align-items:center;padding:4px 0 2px}
.progress-radar-svg{width:100%;max-width:360px;height:auto;display:block}
.radar-ring{fill:none;stroke:#e0e9f6;stroke-width:1.3}
.radar-axis{stroke:#bfd0e7;stroke-width:1.2}
.radar-axis-label{fill:#5e7598;font-size:11px;font-weight:800}
.radar-node{stroke:#fff;stroke-width:3}
.radar-axis-footnotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;padding:2px 2px 0}
.radar-axis-footnotes span{display:block;padding:10px 12px;border-radius:16px;background:#f7faff;border:1px solid #dce7f5;color:#567093;font-size:.88rem;line-height:1.4}
.radar-axis-footnotes strong{color:var(--blue-dark)}
.radar-empty-card{padding:22px;border-radius:20px;border:1px dashed #c8d7ea;background:#f9fbff;color:#6b7f9e;text-align:center}
.radar-legend{justify-content:flex-end}
.radar-legend-chip .legend-name{max-width:180px}
@media (max-width:1080px){.radar-board-grid{grid-template-columns:1fr}.radar-board-header{flex-direction:column}.radar-board-scale{min-width:0;width:100%}}
@media (max-width:760px){.radar-card-head{flex-direction:column}.radar-axis-footnotes{grid-template-columns:1fr}}


/* V2 radar rendering refinement */
body[data-role="progression"] .chart-panel{padding-top:16px}
body[data-role="progression"] .progress-chart-wrap,
body[data-role="progression"] .progress-chart-wrap-v15{padding-top:2px}
.radar-board-wrap{gap:14px}
.radar-board-header{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(240px,.52fr);gap:16px;align-items:stretch;padding:0}
.radar-board-intro{padding:18px 22px;border-radius:22px;border:1px solid #d8e5f4;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);box-shadow:0 14px 28px rgba(23,54,95,.05)}
.radar-board-intro h4{margin:6px 0 0;font-size:1.05rem;line-height:1.45;color:var(--blue-dark)}
.radar-board-intro .panel-subtext{margin:10px 0 0;max-width:72ch}
.radar-board-scale{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:18px 20px;border-radius:22px}
.radar-board-grid{grid-template-columns:repeat(3,minmax(300px,1fr));gap:20px;align-items:stretch}
.radar-card{padding:18px 20px 16px;gap:14px;min-height:540px;position:relative;overflow:hidden}
.radar-card::after{content:"";position:absolute;inset:auto -40px -40px auto;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,var(--radar-accent, #2f6df6) 0%, rgba(255,255,255,0) 72%);opacity:.08;pointer-events:none}
.radar-card-head-v2{align-items:center}
.radar-card-head h4{font-size:1.15rem}
.radar-card-head .panel-subtext{margin:6px 0 0;max-width:none;line-height:1.45}
.radar-score-badge{min-width:96px;background:linear-gradient(180deg,#fff 0%,#f7fbff 100%);border-color:#d5e1f2;box-shadow:0 10px 20px rgba(23,54,95,.06), inset 0 1px 0 rgba(255,255,255,.92)}
.radar-score-badge strong{font-size:1.7rem}
.radar-svg-shell{padding:0;min-height:360px}
.progress-radar-svg{max-width:420px}
.radar-ring{stroke:#d7e4f4;stroke-width:1.5}
.radar-axis{stroke:#c6d6ea;stroke-width:1.35}
.radar-axis-badge{fill:#ffffff;stroke:#bfd0e7;stroke-width:1.4;filter:drop-shadow(0 4px 10px rgba(23,54,95,.08))}
.radar-axis-badge-text{fill:#244a85;font-size:12px;font-weight:900}
.radar-level-label{fill:#87a0c0;font-size:11px;font-weight:800}
.radar-center-core{fill:#fff;stroke:#dce8f5;stroke-width:1.6;filter:drop-shadow(0 6px 12px rgba(23,54,95,.08))}
.radar-center-score{fill:#17365f;font-size:24px;font-weight:900}
.radar-center-score-sub{fill:#6e86a8;font-size:12px;font-weight:800}
.radar-node{stroke:#fff;stroke-width:3.4}
.radar-axis-footnotes{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;padding-top:0}
.radar-axis-footnotes span{display:flex;gap:8px;align-items:flex-start;padding:12px 14px;border-radius:18px;background:linear-gradient(180deg,#fbfdff 0%,#f4f8fd 100%)}
.radar-axis-footnotes strong{min-width:24px}
@media (max-width:1280px){
  .radar-board-header{grid-template-columns:1fr}
  .radar-board-grid{grid-template-columns:1fr}
  .radar-card{min-height:500px}
}
@media (max-width:760px){
  .radar-card{min-height:auto}
  .progress-radar-svg{max-width:100%}
}

/* V3 split radars: professional vs general */
.radar-board-header-v3{grid-template-columns:minmax(0,1.2fr) minmax(250px,.45fr)}
.radar-domains-stack{display:grid;gap:22px}
.radar-domain-section{display:grid;gap:16px;padding:18px;border:1px solid #dbe6f4;border-radius:26px;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);box-shadow:0 18px 30px rgba(23,54,95,.05)}
.radar-domain-pro{position:relative;overflow:hidden}
.radar-domain-general{position:relative;overflow:hidden}
.radar-domain-pro::before,.radar-domain-general::before{content:"";position:absolute;inset:0 auto auto 0;width:100%;height:4px;background:linear-gradient(90deg,#2f6df6 0%,#8eb5ff 100%)}
.radar-domain-general::before{background:linear-gradient(90deg,#f28c1b 0%,#ffd19a 100%)}
.radar-domain-titlebar{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.radar-domain-titlebar h4{margin:4px 0 0;font-size:1.2rem;color:var(--blue-dark)}
.radar-domain-titlebar .panel-subtext{margin:8px 0 0;max-width:82ch}
.radar-board-grid-v3{grid-template-columns:repeat(3,minmax(320px,1fr));gap:18px}
.radar-axis-footnotes-v3{padding-top:2px}
.radar-empty-card-v3{padding:30px;border-radius:22px}
@media (max-width:1280px){
  .radar-board-header-v3{grid-template-columns:1fr}
  .radar-board-grid-v3{grid-template-columns:1fr}
}
body.dark-theme .radar-domain-section{background:linear-gradient(180deg,rgba(11,20,38,.96) 0%,rgba(14,27,49,.94) 100%);border-color:rgba(130,154,188,.22);box-shadow:0 18px 34px rgba(0,0,0,.28)}
body.dark-theme .radar-domain-titlebar h4{color:#eef5ff}
body.dark-theme .radar-domain-titlebar .panel-subtext{color:#9fb2cc}
body.dark-theme .radar-empty-card-v3{background:rgba(255,255,255,.03);border-color:rgba(130,154,188,.22);color:#9fb2cc}

/* V5 premium radar dashboard */
.radar-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:16px;margin-bottom:18px}
.radar-summary-card{padding:18px 20px;border-radius:22px;border:1px solid #d9e5f3;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);box-shadow:0 14px 28px rgba(23,54,95,.05);display:grid;gap:8px}
.radar-summary-card span{font-size:.78rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#6b81a4}
.radar-summary-card strong{font-size:1.45rem;color:var(--blue-dark)}
.radar-summary-card small{color:#5c7396;line-height:1.5}
.radar-summary-card-good{border-color:#cfe7d9;background:linear-gradient(180deg,#ffffff 0%,#f6fcf8 100%)}
.radar-summary-card-watch{border-color:#f5d7a9;background:linear-gradient(180deg,#ffffff 0%,#fff9f0 100%)}
.radar-summary-card-critical{border-color:#f0c3bf;background:linear-gradient(180deg,#ffffff 0%,#fff6f5 100%)}
.radar-summary-card-neutral{border-color:#d9e5f3}
.radar-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(320px,1fr));gap:18px;margin-bottom:22px}
.radar-overlay-card{border:1px solid #d9e4f3;border-radius:26px;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);box-shadow:0 16px 30px rgba(23,54,95,.06);padding:18px 20px 16px;display:grid;gap:14px;min-height:620px;position:relative;overflow:hidden}
.radar-overlay-card::after{content:"";position:absolute;inset:auto -36px -42px auto;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(47,109,246,.18) 0%, rgba(255,255,255,0) 72%);pointer-events:none}
.radar-overlay-shell{min-height:390px}
.progress-radar-svg-overlay{max-width:450px}
@media (max-width:1180px){.radar-summary-grid{grid-template-columns:1fr}.radar-overview-grid{grid-template-columns:1fr}}
body.dark-theme .radar-summary-card, body.dark-theme .radar-overlay-card{background:linear-gradient(180deg,rgba(11,20,38,.96) 0%,rgba(14,27,49,.94) 100%);border-color:rgba(130,154,188,.22);box-shadow:0 18px 34px rgba(0,0,0,.28)}
body.dark-theme .radar-summary-card span{color:#9cb2cf}
body.dark-theme .radar-summary-card strong{color:#eef5ff}
body.dark-theme .radar-summary-card small{color:#9fb2cc}


/* V6 ultra radar dashboard */
.radar-board-header-v6{grid-template-columns:minmax(0,1.3fr) minmax(250px,.42fr);gap:18px}
.radar-board-intro-v6{position:relative;overflow:hidden;border:1px solid #dce8f6;background:linear-gradient(135deg,#ffffff 0%,#f5f9ff 55%,#eef5ff 100%);box-shadow:0 18px 38px rgba(23,54,95,.08)}
.radar-board-intro-v6::after{content:"";position:absolute;right:-32px;bottom:-42px;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,rgba(242,140,27,.18) 0%,rgba(242,140,27,0) 72%);pointer-events:none}
.radar-board-intro-v6 h4{font-size:1.2rem}
.radar-mini-kpis{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.radar-mini-kpis span{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.86);border:1px solid #d8e4f2;color:#4f678a;font-size:.82rem;font-weight:700;box-shadow:0 8px 18px rgba(23,54,95,.05)}
.radar-mini-kpis strong{color:var(--blue-dark);font-size:.92rem}
.radar-board-scale-v6{border:1px solid #dce8f6;background:linear-gradient(180deg,#fff 0%,#f4f9ff 100%);box-shadow:0 18px 34px rgba(23,54,95,.07)}
.radar-summary-grid-v6{margin-top:2px}
.radar-overview-grid-v6{margin-top:2px}
.radar-domains-stack-v6{display:grid;gap:22px}
.radar-domain-section-v6{padding:20px 20px 18px;border-radius:28px;border:1px solid #d9e4f3;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);box-shadow:0 18px 34px rgba(23,54,95,.06)}
.radar-domain-titlebar-v6{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}
.radar-domain-titlebar-v6 h4{margin:4px 0 0;font-size:1.18rem;color:var(--blue-dark)}
.radar-domain-badge{display:inline-flex;align-items:center;justify-content:center;min-width:110px;padding:10px 14px;border-radius:16px;font-weight:800;font-size:.86rem;border:1px solid #d9e4f3;background:#fff;color:#4f678a;box-shadow:0 10px 22px rgba(23,54,95,.05)}
.radar-domain-badge-pro{background:linear-gradient(180deg,rgba(47,109,246,.08) 0%,rgba(255,255,255,.98) 100%)}
.radar-domain-badge-general{background:linear-gradient(180deg,rgba(242,140,27,.1) 0%,rgba(255,255,255,.98) 100%)}
.radar-board-grid-v6{gap:22px}
.radar-axis-footnotes-v6{margin-top:16px;padding-top:14px;border-top:1px dashed #d7e2f0}
.radar-axis-footnotes-v6 span{background:rgba(255,255,255,.82)}
.progression-bottom-grid{align-items:stretch}
.progression-bottom-grid .compact-side-panel{min-height:100%}
.progress-history-wrap{max-height:780px}
body.dark-theme .radar-board-intro-v6, body.dark-theme .radar-board-scale-v6, body.dark-theme .radar-domain-section-v6{background:linear-gradient(180deg,rgba(11,20,38,.96) 0%,rgba(14,27,49,.94) 100%);border-color:rgba(130,154,188,.22);box-shadow:0 18px 34px rgba(0,0,0,.28)}
body.dark-theme .radar-mini-kpis span, body.dark-theme .radar-domain-badge{background:rgba(17,31,53,.88);border-color:rgba(130,154,188,.22);color:#d7e5ff}
@media (max-width:1180px){.radar-board-header-v6{grid-template-columns:1fr}.radar-domain-titlebar-v6{flex-direction:column}.radar-domain-badge{min-width:0}}


/* Radar help modal */
.help-btn{white-space:nowrap}
.radar-help-modal{max-width:920px;width:min(920px,calc(100vw - 28px))}
.radar-help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:10px}
.radar-help-card{padding:16px 18px;border-radius:20px;border:1px solid #d9e4f3;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);box-shadow:0 12px 24px rgba(23,54,95,.05)}
.radar-help-card strong{display:block;margin-bottom:8px;color:var(--blue-dark)}
.radar-help-card p{margin:0;color:#516987;line-height:1.55}
.radar-help-scale{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.help-level{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:999px;border:1px solid #d9e4f3;background:#fff;font-weight:800;font-size:.86rem;color:#4f678a;box-shadow:0 10px 22px rgba(23,54,95,.05)}
.help-level-0{background:rgba(143,167,200,.14)}
.help-level-1{background:rgba(224,90,84,.10)}
.help-level-2{background:rgba(242,140,27,.10)}
.help-level-3{background:rgba(35,164,95,.10)}
.help-level-4{background:rgba(47,109,246,.10)}
body.dark-theme .radar-help-card, body.dark-theme .help-level{background:linear-gradient(180deg,rgba(11,20,38,.96) 0%,rgba(14,27,49,.94) 100%);border-color:rgba(130,154,188,.22);box-shadow:0 18px 34px rgba(0,0,0,.28);color:#d7e5ff}
body.dark-theme .radar-help-card strong{color:#eef5ff}
body.dark-theme .radar-help-card p{color:#9fb2cc}
@media (max-width:860px){.radar-help-grid{grid-template-columns:1fr}}


/* V7 perfect: tighter radar header, aligned actions, one-line title */
.progression-dashboard .dashboard-header{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:nowrap}
.progression-dashboard .dashboard-header > div:first-child{flex:1 1 auto;min-width:0}
#progressionTitle{white-space:nowrap;line-height:1.02;font-size:clamp(2.25rem,3.5vw,3.7rem);letter-spacing:-.03em;margin:0}
.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex:0 0 auto}
.header-actions .secondary-btn,.header-actions .help-btn,.header-actions .theme-toggle-btn,.header-actions .pdf-export-btn{min-height:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;padding:0 18px;border-radius:18px;white-space:nowrap}
.help-btn{min-height:48px}
.radar-help-card-highlight{grid-column:1 / -1;background:linear-gradient(180deg,#fff7ee 0%,#fffdf8 100%);border-color:#f2cfaa}
.radar-help-card-highlight p + p{margin-top:10px}
body.dark-theme .radar-help-card-highlight{background:linear-gradient(180deg,rgba(58,35,12,.65) 0%,rgba(32,21,11,.52) 100%);border-color:rgba(242,207,170,.32)}
@media (max-width:1200px){#progressionTitle{font-size:clamp(1.95rem,3vw,2.9rem)}.header-actions .secondary-btn,.header-actions .help-btn,.header-actions .theme-toggle-btn,.header-actions .pdf-export-btn{padding:0 16px}}
@media (max-width:980px){.progression-dashboard .dashboard-header{display:grid;gap:14px}.header-actions{justify-content:flex-start;flex-wrap:wrap}#progressionTitle{white-space:normal}}


/* V7.1 progression header containment + full right panel visibility */
body[data-role="progression"] .dashboard.progression-dashboard > *{min-width:0;max-width:100%;}
body[data-role="progression"] .dashboard-header{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-items:start;
  gap:14px;
}
body[data-role="progression"] .dashboard-header > div:first-child{min-width:0;}
body[data-role="progression"] #progressionTitle{
  margin:0;
  font-size:clamp(2.15rem,3.1vw,3.55rem);
  line-height:1.02;
  letter-spacing:-.045em;
  white-space:nowrap;
}
body[data-role="progression"] .header-actions{
  width:100%;
  display:flex;
  flex-wrap:wrap;
  align-items:stretch;
  justify-content:flex-start;
  gap:12px;
  min-width:0;
}
body[data-role="progression"] .header-actions > button,
body[data-role="progression"] .header-actions > a,
body[data-role="progression"] .header-actions > .messages-launcher{
  height:52px;
  min-height:52px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 18px;
  border-radius:18px;
  white-space:nowrap;
  flex:0 0 auto;
  max-width:100%;
}
body[data-role="progression"] .chart-panel-head-v15{
  grid-template-columns:1fr;
  gap:14px;
}
body[data-role="progression"] .chart-legend-rich,
body[data-role="progression"] .radar-legend{
  justify-content:flex-start;
}
body[data-role="progression"] .radar-summary-grid,
body[data-role="progression"] .radar-overview-grid,
body[data-role="progression"] .progression-kpis,
body[data-role="progression"] .progression-strip,
body[data-role="progression"] .progression-filters-grid,
body[data-role="progression"] .progression-bottom-grid{
  min-width:0;
}
body[data-role="progression"] .radar-overlay-card,
body[data-role="progression"] .radar-domain-section,
body[data-role="progression"] .radar-card,
body[data-role="progression"] .panel,
body[data-role="progression"] .stat-card{
  min-width:0;
}
body[data-role="progression"] .premium-legend-chip,
body[data-role="progression"] .legend-chip{
  max-width:100%;
}
body[data-role="progression"] .radar-legend-chip .legend-name{
  max-width:none;
}
@media (max-width:1200px){
  body[data-role="progression"] .radar-overview-grid,
  body[data-role="progression"] .radar-summary-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width:980px){
  body[data-role="progression"] #progressionTitle{
    white-space:normal;
  }
}

/* V8 responsive PC / tablette / smartphone */
img,svg,canvas{max-width:100%;height:auto}
.table-wrap{overflow:auto;-webkit-overflow-scrolling:touch}
.modal-card{max-width:min(960px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow:auto}

@media (max-width: 1180px){
  .shell{place-items:stretch;padding:16px}
  .admin-card{width:100%;grid-template-columns:280px minmax(0,1fr);min-height:auto}
  .dashboard{padding:24px}
  .sidebar{padding:22px;gap:20px}
  .sidebar-title{font-size:1.95rem}
  .dashboard-header{gap:16px}
  .header-actions{flex-wrap:wrap;justify-content:flex-start}
  .header-actions .secondary-btn,.header-actions .help-btn,.header-actions .theme-toggle-btn,.header-actions .pdf-export-btn{height:46px;min-height:46px}
  .progression-filters-grid,.progression-strip,.bilan-filters-grid,.director-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats-grid,.cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .filters-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .filters-grid > *:last-child{grid-column:1 / -1}
  .messages-layout,.bilan-layout,.executive-main-grid,.audit-main-grid,.tutor-main-grid-v12,.progression-bottom-grid{grid-template-columns:1fr}
}

@media (max-width: 980px){
  .shell{padding:12px}
  .admin-card,.auth-card{grid-template-columns:1fr;border-radius:24px;min-height:auto}
  .sidebar{position:relative;padding:18px;gap:16px}
  .sidebar-top{grid-template-columns:120px 1fr;align-items:center;gap:14px}
  .sidebar-logo-box{padding:12px;border-radius:18px}
  .side-nav,.tutor-side-nav{display:flex;gap:10px;overflow:auto;padding-bottom:4px;scrollbar-width:thin}
  .side-nav .nav-item,.tutor-side-nav .nav-item{flex:0 0 auto;white-space:nowrap}
  .logout-btn{margin-top:0;width:100%}
  .dashboard,.form-panel,.brand-panel{padding:20px}
  .dashboard-header,.panel-head.between,.messages-header-actions{flex-direction:column;align-items:stretch}
  .dashboard-header > div:first-child{width:100%}
  .header-actions,.actions-inline,.messages-window-actions{justify-content:flex-start}
  .header-actions > button,.header-actions > a,.messages-window-actions > *{max-width:100%}
  .stats-grid,.cards-grid,.progression-filters-grid,.progression-strip,.filters-grid,.detail-grid,.detail-columns,.credentials-box,.credentials-box-v7,.role-grid,.messages-layout,.bilan-filters-grid,.bilan-summary-strip,.bilan-decision-grid,.executive-grid,.director-summary-grid,.audit-indicator-grid,.audit-kpi-grid,.audit-matrix-panel,.tutor-dashboard-cards,.ufa-dashboard-kpis,.ufa-dashboard-cards{grid-template-columns:1fr !important}
  .field-span-2,.bilan-filters-grid .field-span-2{grid-column:span 1}
  .progression-bottom-grid,.bilan-layout,.messages-window-main,.messages-window-shell,.eval-layout{grid-template-columns:1fr !important}
  .messages-window-shell{height:auto;min-height:100vh;overflow:visible}
  .messages-window-sidebar,.eval-left-panel,.bilan-side{order:2}
  .messages-window-main,.eval-right-panel,.bilan-editor{order:1}
  body[data-role="progression"] #progressionTitle{white-space:normal;font-size:clamp(1.8rem,5.8vw,2.8rem)}
  body[data-role="progression"] .header-actions > button,
  body[data-role="progression"] .header-actions > a,
  body[data-role="progression"] .header-actions > .messages-launcher{height:48px;min-height:48px}
}

@media (max-width: 760px){
  html{font-size:15px}
  .shell{padding:10px}
  .admin-card,.auth-card{border-radius:20px}
  .sidebar,.dashboard,.form-panel,.brand-panel{padding:16px}
  .sidebar-top{grid-template-columns:1fr}
  .sidebar-logo-box{max-width:220px}
  .sidebar-title{font-size:1.7rem}
  .form-panel h2,.dashboard-header h2{font-size:clamp(1.6rem,7vw,2.2rem);margin-bottom:18px}
  .panel,.stat-card,.mini-card,.access-card-v7,.credentials-card-v7{padding:16px;border-radius:18px}
  .primary-btn,.secondary-btn,.logout-btn,.download-link{width:100%;padding:15px 18px;border-radius:16px}
  .header-actions{width:100%}
  .header-actions > button,.header-actions > a,.header-actions > .messages-launcher{width:100%;justify-content:center}
  .progress-history-wrap,.eval-history-wrap{max-height:none}
  .chart-panel,.compact-side-panel,.compact-side-panel-v12,.tutor-focus-panel-v12,.progression-bottom-grid > .panel{overflow:visible}
  .chart-legend-rich,.radar-legend{gap:8px}
  .premium-legend-chip,.legend-chip{width:100%}
  .reading-grid,.pdf-export-grid,.import-grid,.role-pills,.role-pills-main,.messages-thread-head,.bilan-actions-top{grid-template-columns:1fr !important;display:grid}
  .check-row{align-items:flex-start}
  .modal-card{width:min(calc(100vw - 16px),960px);max-height:calc(100vh - 16px)}
}

@media (max-width: 560px){
  html{font-size:14px}
  body{background:var(--bg)}
  .shell{padding:8px}
  .admin-card,.auth-card{border-radius:16px;box-shadow:0 14px 34px rgba(23,54,95,.12)}
  .sidebar,.dashboard,.form-panel,.brand-panel{padding:14px}
  .sidebar-logo-box{max-width:180px;padding:10px}
  .sidebar-title{font-size:1.55rem}
  .nav-item{padding:12px 14px;border-radius:14px}
  .stat-value{font-size:1.75rem}
  .small-stat{font-size:1rem !important}
  .panel-head.between{gap:10px}
  body[data-role="progression"] #progressionTitle{font-size:clamp(1.55rem,8.4vw,2.15rem);line-height:1.05}
  .header-actions .secondary-btn,.header-actions .help-btn,.header-actions .theme-toggle-btn,.header-actions .pdf-export-btn{padding:0 14px}
  .radar-help-grid{grid-template-columns:1fr}
  .help-level{width:100%;justify-content:flex-start}
}

/* V9.1 organisation des accès */
.brand-metrics-v7-profiles .metric-card-v7 strong{font-size:1.9rem}
.form-panel-inner-v8roles{width:min(100%, 560px)}
.role-pills-main-priority{grid-template-columns:1fr;display:grid}
.access-card-v7-secondary{background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%)}
.secondary-access-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.secondary-access-card{
  appearance:none;border:1px solid #d7e3f5;background:#fff;border-radius:20px;padding:14px 15px;
  display:grid;gap:8px;text-align:left;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease;
  box-shadow:0 10px 24px rgba(23,54,95,.05);color:var(--text)
}
.secondary-access-card:hover{
  transform:translateY(-2px);
  border-color:#bdd1f3;
  background:linear-gradient(180deg,#ffffff 0%,#f4f8ff 100%);
  box-shadow:0 16px 28px rgba(36,95,202,.10)
}
.secondary-access-card.active{
  border-color:#f1b46a;
  background:linear-gradient(135deg,#fff8ee 0%,#fff0dd 55%,#ffe0bd 100%);
  box-shadow:0 16px 28px rgba(242,140,27,.14), inset 0 0 0 1px rgba(255,240,221,.8)
}
.secondary-access-card strong{font-size:1rem;line-height:1.2;color:var(--blue-dark)}
.secondary-access-card small{font-size:.88rem;line-height:1.38;color:var(--muted)}
.secondary-access-tag{display:inline-flex;align-items:center;justify-content:flex-start;width:fit-content;padding:6px 10px;border-radius:999px;background:#eef4ff;color:var(--blue-dark);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.reader-badge-box{display:grid;gap:10px;padding:14px 14px 12px;border-radius:20px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16);margin-top:auto}
.reader-badge{display:inline-flex;width:fit-content;align-items:center;padding:7px 10px;border-radius:999px;background:linear-gradient(135deg,#fff0dd 0%,#ffd6a1 100%);color:#17365f;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.reader-note{margin:0;color:rgba(255,255,255,.92);font-size:.9rem;line-height:1.45}
.dashboard-header-reader{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.reader-kpi-chip{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:999px;background:linear-gradient(135deg,rgba(36,95,202,.12),rgba(242,140,27,.16));color:var(--blue-dark);font-weight:800;border:1px solid rgba(36,95,202,.12);white-space:nowrap}
.executive-list{display:grid;gap:14px}
.reader-summary-box{display:grid;gap:12px}
.reader-summary-item{display:grid;grid-template-columns:78px 1fr;gap:14px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%)}
.reader-summary-item strong{display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:16px;background:linear-gradient(135deg,#edf3ff 0%,#fff3e4 100%);font-size:1.2rem;color:var(--blue-dark)}
.reader-summary-item span{color:var(--muted);line-height:1.45}
@media (max-width:980px){
  .secondary-access-grid{grid-template-columns:1fr}
  .dashboard-header-reader{flex-direction:column}
}


/* V9.2 page de connexion sans défilement */
body.login-page{
  height:100vh;
  min-height:100vh;
  overflow:hidden;
}
body.login-page .shell-login-v7{
  min-height:100vh;
  height:100vh;
  padding:12px;
}
body.login-page .auth-card-v7{
  width:min(1500px,100%);
  height:calc(100vh - 24px);
  max-height:calc(100vh - 24px);
}
body.login-page .brand-panel-v7,
body.login-page .form-panel-v7{
  overflow:hidden;
}
body.login-page .brand-panel-v7{
  padding:20px 22px;
  gap:12px;
}
body.login-page .brand-panel-v7-top,
body.login-page .brand-copy-v7,
body.login-page .brand-feature-grid-v7,
body.login-page .brand-external-links-v7,
body.login-page .login-form-v7,
body.login-page .credentials-box-v7{
  gap:10px;
}
body.login-page .logo-box-v7{
  max-width:300px;
  padding:12px 14px;
  border-radius:20px;
}
body.login-page .brand-copy-v7 h1{
  font-size:clamp(2.5rem,3.2vw,3.5rem);
}
body.login-page .brand-copy-v7 .subtitle{
  font-size:1.3rem;
}
body.login-page .brand-copy-v7 .brand-note,
body.login-page .brand-feature-card-v7 p,
body.login-page .external-link-copy-v7 small,
body.login-page .section-head-access p,
body.login-page .section-head-inline p,
body.login-page .login-intro{
  font-size:.88rem;
  line-height:1.34;
}
body.login-page .brand-metrics-v7{
  gap:10px;
}
body.login-page .metric-card-v7,
body.login-page .brand-feature-card-v7,
body.login-page .external-link-card-v7,
body.login-page .access-card-v7,
body.login-page .credentials-card-v7{
  padding:12px 14px;
}
body.login-page .metric-card-v7{
  border-radius:18px;
}
body.login-page .metric-card-v7 strong{
  font-size:1.45rem;
  margin-bottom:4px;
}
body.login-page .metric-card-v7 span{
  font-size:.78rem;
}
body.login-page .brand-feature-card-v7{
  border-radius:18px;
  gap:6px;
}
body.login-page .brand-feature-card-v7 strong{
  font-size:.98rem;
}
body.login-page .external-link-card-v7{
  grid-template-columns:92px 1fr;
  gap:12px;
  border-radius:18px;
}
body.login-page .external-link-logo-v7{
  max-height:40px;
  padding:5px 8px;
}
body.login-page .external-link-logo-v7--square{
  max-width:52px;
  max-height:52px;
}
body.login-page .form-panel-v7{
  padding:14px 16px;
  display:flex;
  align-items:center;
}
body.login-page .form-panel-inner-v7,
body.login-page .form-panel-inner-v8roles{
  width:min(100%,540px);
  gap:8px;
}
body.login-page .login-top-v7{
  gap:4px;
}
body.login-page .login-top-v7 h2{
  font-size:clamp(1.9rem,2.2vw,2.45rem);
}
body.login-page .section-kicker{
  padding:6px 10px;
  font-size:.72rem;
}
body.login-page .minimal-title{
  font-size:1rem;
}
body.login-page .section-head-access,
body.login-page .section-head-inline{
  margin-bottom:10px;
  gap:6px;
}
body.login-page .role-pill{
  grid-template-columns:42px 1fr;
  gap:10px;
  padding:10px 12px;
  border-radius:16px;
}
body.login-page .pill-index{
  width:34px;
  height:34px;
  border-radius:12px;
  font-size:.82rem;
}
body.login-page .pill-copy strong,
body.login-page .secondary-access-card strong{
  font-size:.94rem;
}
body.login-page .pill-copy small,
body.login-page .secondary-access-card small{
  font-size:.82rem;
  line-height:1.28;
}
body.login-page .secondary-access-grid{
  gap:10px;
}
body.login-page .secondary-access-card{
  padding:12px 13px;
  border-radius:18px;
  gap:6px;
}
body.login-page .secondary-access-tag{
  padding:5px 8px;
  font-size:.66rem;
}
body.login-page .credentials-card-v7 input{
  height:44px;
  font-size:.94rem;
}
body.login-page .credentials-card-v7 .primary-btn{
  height:46px;
  font-size:.94rem;
}
body.login-page #loginMessage{
  min-height:16px;
  margin:0;
  font-size:.84rem;
}

@media (max-height:920px) and (min-width:981px){
  body.login-page .shell-login-v7{padding:10px;}
  body.login-page .auth-card-v7{height:calc(100vh - 20px);max-height:calc(100vh - 20px);}
  body.login-page .brand-panel-v7{padding:16px 18px;gap:10px;}
  body.login-page .brand-copy-v7 h1{font-size:clamp(2.15rem,2.8vw,3rem);}
  body.login-page .brand-copy-v7 .subtitle{font-size:1.16rem;}
  body.login-page .brand-copy-v7 .brand-note,
  body.login-page .brand-feature-card-v7 p,
  body.login-page .external-link-copy-v7 small,
  body.login-page .section-head-access p,
  body.login-page .section-head-inline p,
  body.login-page .login-intro{font-size:.82rem;line-height:1.26;}
  body.login-page .metric-card-v7,
  body.login-page .brand-feature-card-v7,
  body.login-page .external-link-card-v7,
  body.login-page .access-card-v7,
  body.login-page .credentials-card-v7{padding:10px 12px;}
  body.login-page .metric-card-v7 strong{font-size:1.28rem;}
  body.login-page .metric-card-v7 span{font-size:.72rem;}
  body.login-page .brand-feature-card-v7 strong{font-size:.92rem;}
  body.login-page .login-top-v7 h2{font-size:clamp(1.7rem,2vw,2.2rem);}
  body.login-page .role-pill{padding:8px 10px;gap:8px;}
  body.login-page .secondary-access-card{padding:10px 11px;}
  body.login-page .credentials-card-v7 input{height:40px;}
  body.login-page .credentials-card-v7 .primary-btn{height:42px;}
}

@media (max-width:980px){
  body.login-page{
    height:auto;
    overflow:auto;
  }
  body.login-page .shell-login-v7,
  body.login-page .auth-card-v7{
    height:auto;
    max-height:none;
  }
  body.login-page .brand-panel-v7,
  body.login-page .form-panel-v7{
    overflow:visible;
  }
}

/* V10 refonte conviviale de la page d'accueil */
.auth-card-v10-home{
  width:min(1520px,100%);
  grid-template-columns:minmax(520px,1fr) minmax(560px,1.08fr);
}
.brand-panel-v10-home{
  display:grid;
  grid-template-rows:auto auto 1fr auto;
  gap:18px;
}
.brand-panel-v10-top{
  display:grid;
  gap:18px;
}
.logo-box-v10-home{
  max-width:360px;
}
.brand-copy-v10-home h1{
  font-size:clamp(3rem,4.2vw,4.6rem);
}
.brand-copy-v10-home .subtitle{
  font-size:1.45rem;
}
.brand-metrics-v10-home{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.welcome-points-v10{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  align-content:start;
}
.welcome-point-card-v10{
  padding:16px 18px;
  border-radius:22px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.2);
  backdrop-filter:blur(10px);
  box-shadow:0 16px 36px rgba(10,24,54,.10);
  display:grid;
  gap:8px;
}
.welcome-point-card-v10 strong{
  font-size:1.06rem;
  line-height:1.2;
}
.welcome-point-card-v10 p{
  margin:0;
  color:rgba(255,255,255,.9);
  line-height:1.45;
  font-size:.93rem;
}
.brand-external-links-v10-home{
  margin-top:auto;
}
.form-panel-v10-home{
  display:flex;
  align-items:center;
  justify-content:center;
}
.form-panel-inner-v10-home{
  width:min(100%, 640px);
  gap:14px;
}
.login-top-v10-home{
  padding:2px 2px 0;
}
.login-form-v10-home{
  gap:12px;
}
.access-card-v10-main,
.access-card-v10-secondary,
.credentials-card-v10{
  border-radius:26px;
}
.section-head-v10-main,
.section-head-v10-secondary,
.section-head-v10-credentials{
  align-items:center;
}
.role-pills-v10-main{
  gap:12px;
}
.role-pill-v10{
  grid-template-columns:52px 1fr;
  padding:14px 16px;
  min-height:78px;
}
.secondary-access-grid-v10{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.secondary-access-card-v10{
  min-height:120px;
  align-content:start;
}
.credentials-box-v10{
  gap:12px;
}
.demo-chip-v10{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 14px;
  border-radius:999px;
  background:linear-gradient(135deg,#eef4ff 0%,#fff0de 100%);
  border:1px solid #d8e3f5;
  color:var(--blue-dark);
  font-weight:800;
  white-space:nowrap;
  font-size:.9rem;
}

body.login-page .auth-card-v10-home{
  height:calc(100vh - 24px);
  max-height:calc(100vh - 24px);
}
body.login-page .brand-panel-v10-home{
  padding:22px 24px;
  gap:14px;
}
body.login-page .brand-panel-v10-top{gap:14px;}
body.login-page .logo-box-v10-home{max-width:320px;padding:14px 16px;border-radius:20px;}
body.login-page .brand-copy-v10-home h1{font-size:clamp(2.6rem,3.2vw,3.8rem);}
body.login-page .brand-copy-v10-home .subtitle{font-size:1.24rem;}
body.login-page .brand-copy-v10-home .brand-note{font-size:.9rem;line-height:1.38;max-width:40ch;}
body.login-page .brand-metrics-v10-home{gap:10px;}
body.login-page .welcome-points-v10{gap:10px;}
body.login-page .welcome-point-card-v10{padding:12px 14px;border-radius:18px;gap:6px;}
body.login-page .welcome-point-card-v10 strong{font-size:.96rem;}
body.login-page .welcome-point-card-v10 p{font-size:.84rem;line-height:1.32;}
body.login-page .brand-external-links-v10-home{gap:10px;}
body.login-page .form-panel-v10-home{padding:16px 18px;}
body.login-page .form-panel-inner-v10-home{width:min(100%, 600px);gap:10px;}
body.login-page .login-top-v10-home h2{font-size:clamp(2rem,2.3vw,2.6rem);}
body.login-page .access-card-v10-main,
body.login-page .access-card-v10-secondary,
body.login-page .credentials-card-v10{padding:13px 15px;border-radius:22px;}
body.login-page .role-pill-v10{padding:11px 13px;min-height:66px;grid-template-columns:42px 1fr;gap:10px;border-radius:16px;}
body.login-page .secondary-access-grid-v10{gap:10px;}
body.login-page .secondary-access-card-v10{min-height:98px;padding:12px 13px;border-radius:18px;gap:6px;}
body.login-page .demo-chip-v10{padding:8px 12px;font-size:.82rem;}

@media (max-width:1180px){
  .auth-card-v10-home{grid-template-columns:1fr;}
  .brand-panel-v10-home{grid-template-rows:auto auto auto auto;}
  .form-panel-inner-v10-home{width:min(100%, 760px);}
}

@media (max-width:980px){
  .secondary-access-grid-v10{grid-template-columns:1fr;}
  .section-head-v10-credentials{align-items:flex-start;}
}

@media (max-width:760px){
  .brand-metrics-v10-home{grid-template-columns:1fr;}
  .form-panel-inner-v10-home{width:100%;}
  .demo-chip-v10{width:100%;justify-content:center;}
}


/* ===== V12 premium login ===== */
body.login-page-v12 .auth-card-v12-home{grid-template-columns:minmax(350px,.8fr) minmax(720px,1.2fr);height:min(940px,calc(100vh - 24px));max-height:calc(100vh - 24px);overflow:hidden;}
body.login-page-v12 .brand-panel-v12-home{padding:28px 24px;display:flex;flex-direction:column;justify-content:space-between;gap:18px;background:linear-gradient(160deg,#1f4db0 0%,#2e63cd 60%,#ea9030 135%);overflow:hidden;}
body.login-page-v12 .brand-panel-v12-top{display:grid;gap:18px;}
body.login-page-v12 .logo-box-v12-home{max-width:330px;padding:18px;border-radius:24px;}
body.login-page-v12 .brand-copy-v12-home{gap:10px;}
body.login-page-v12 .brand-copy-v12-home h1{font-size:clamp(3rem,4vw,4.3rem);line-height:.96;margin:0;}
body.login-page-v12 .brand-external-links-v12-home{display:grid;gap:14px;margin-top:auto;}
body.login-page-v12 .external-link-card-v12{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(12px);}
body.login-page-v12 .form-panel-v12-home{padding:20px 22px;overflow:auto;}
body.login-page-v12 .form-panel-inner-v12-home{width:min(100%,760px);margin:0 auto;display:flex;flex-direction:column;gap:14px;}
body.login-page-v12 .login-top-v12-home{gap:6px;}
body.login-page-v12 .login-top-v12-home h2{font-size:clamp(2.3rem,2.9vw,3.2rem);margin:0;line-height:1.02;}
body.login-page-v12 .login-form-v12-home{display:flex;flex-direction:column;gap:14px;}
body.login-page-v12 .access-card-v12, body.login-page-v12 .credentials-card-v12{padding:18px;border-radius:26px;background:#fff;border:1px solid #dbe5f3;box-shadow:0 14px 36px rgba(20,51,94,.07);display:grid;gap:14px;}
body.login-page-v12 .role-pills-v12-main{display:grid;grid-template-columns:1fr;gap:12px;}
body.login-page-v12 .role-pill-v12{display:grid;grid-template-columns:52px 1fr;gap:12px;align-items:center;min-height:76px;padding:14px 16px;border-radius:20px;border:1px solid #dbe7f6;background:linear-gradient(180deg,#ffffff 0%,#f7fbff 100%);transition:.2s ease;box-shadow:0 8px 20px rgba(24,55,100,.05);}
body.login-page-v12 .role-pill-v12:hover{transform:translateY(-1px);box-shadow:0 16px 28px rgba(24,55,100,.09);}
body.login-page-v12 .role-pill-v12.active{border-color:#f0b15c;background:linear-gradient(180deg,#fffaf2 0%,#fff0dc 100%);box-shadow:0 16px 30px rgba(234,144,48,.18);}
body.login-page-v12 .pill-index{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:linear-gradient(180deg,#2b65d3 0%,#1f4db0 100%);color:#fff;font-weight:800;}
body.login-page-v12 .role-pill-v12.active .pill-index{background:linear-gradient(180deg,#f2a23a 0%,#de7f08 100%);}
body.login-page-v12 .pill-copy strong{font-size:1.14rem;color:#17325f;}
body.login-page-v12 .pill-copy small{font-size:.95rem;line-height:1.3;color:#5f7699;}
body.login-page-v12 .secondary-access-grid-v12{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
body.login-page-v12 .secondary-access-card-v12{display:grid;gap:6px;align-content:start;min-height:122px;padding:15px;border-radius:20px;border:1px solid #dbe7f6;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);transition:.2s ease;box-shadow:0 8px 20px rgba(24,55,100,.04);}
body.login-page-v12 .secondary-access-card-v12:hover{transform:translateY(-1px);box-shadow:0 14px 24px rgba(24,55,100,.08);}
body.login-page-v12 .secondary-access-card-v12.active{border-color:#2b65d3;background:linear-gradient(180deg,#f5f9ff 0%,#e8f0ff 100%);box-shadow:0 14px 26px rgba(43,101,211,.16);}
body.login-page-v12 .secondary-access-tag{display:inline-flex;width:max-content;padding:7px 10px;border-radius:999px;background:#edf3ff;color:#234eaf;font-weight:800;font-size:.76rem;text-transform:uppercase;letter-spacing:.03em;}
body.login-page-v12 .credentials-header-v12{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;}
body.login-page-v12 .selection-badge-v12{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;background:linear-gradient(180deg,#edf4ff 0%,#e5efff 100%);color:#21498f;font-weight:800;}
body.login-page-v12 .credentials-box-v12{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
body.login-page-v12 .credentials-card-v12 .field-group{display:grid;gap:8px;}
body.login-page-v12 .credentials-card-v12 label{font-weight:700;color:#18335d;}
body.login-page-v12 .credentials-card-v12 input{height:54px;border-radius:16px;border:1px solid #cfdbec;padding:0 16px;font-size:1rem;background:#fbfdff;}
body.login-page-v12 .credentials-card-v12 input:focus{outline:none;border-color:#2d66d0;box-shadow:0 0 0 4px rgba(45,102,208,.12);}
body.login-page-v12 .password-wrap-v12{position:relative;}
body.login-page-v12 .password-wrap-v12 input{padding-right:96px;width:100%;}
body.login-page-v12 .password-toggle-v12{position:absolute;top:50%;right:8px;transform:translateY(-50%);height:38px;padding:0 14px;border-radius:12px;border:1px solid #d2def0;background:#fff;font-weight:700;color:#254d97;}
body.login-page-v12 .primary-btn-v12{height:56px;border-radius:16px;font-size:1rem;font-weight:800;box-shadow:0 16px 26px rgba(231,142,46,.24);}
body.login-page-v12 #loginMessage{margin:0;min-height:20px;}
@media (max-width:1200px){body.login-page-v12 .auth-card-v12-home{grid-template-columns:330px minmax(0,1fr);} body.login-page-v12 .brand-copy-v12-home h1{font-size:clamp(2.4rem,3.1vw,3.4rem);} }
@media (max-width:980px){body.login-page-v12 .auth-card-v12-home{grid-template-columns:1fr;height:auto;max-height:none;} body.login-page-v12 .brand-panel-v12-home{gap:14px;} body.login-page-v12 .form-panel-v12-home{overflow:visible;} }
@media (max-width:760px){body.login-page-v12 .secondary-access-grid-v12, body.login-page-v12 .credentials-box-v12{grid-template-columns:1fr;} body.login-page-v12 .form-panel-v12-home{padding:16px;} body.login-page-v12 .brand-panel-v12-home{padding:18px;} body.login-page-v12 .login-top-v12-home h2{font-size:2rem;} }
@media (max-height:860px) and (min-width:981px){body.login-page-v12 .auth-card-v12-home{height:calc(100vh - 16px);max-height:calc(100vh - 16px);} body.login-page-v12 .brand-panel-v12-home{padding:20px 18px;} body.login-page-v12 .logo-box-v12-home{max-width:290px;padding:14px;} body.login-page-v12 .brand-copy-v12-home h1{font-size:clamp(2.35rem,2.8vw,3.2rem);} body.login-page-v12 .external-link-card-v12{padding:12px 14px;} body.login-page-v12 .form-panel-v12-home{padding:16px;} body.login-page-v12 .form-panel-inner-v12-home{gap:10px;} body.login-page-v12 .access-card-v12, body.login-page-v12 .credentials-card-v12{padding:14px;gap:10px;border-radius:22px;} body.login-page-v12 .role-pill-v12{min-height:66px;padding:11px 13px;} body.login-page-v12 .secondary-access-card-v12{min-height:105px;padding:12px;} body.login-page-v12 .credentials-card-v12 input{height:48px;} body.login-page-v12 .primary-btn-v12{height:50px;} }


/* v12.1 login visibility fix */
body.login-page-v12 .auth-card-v12-home{
  grid-template-columns:minmax(290px,.74fr) minmax(0,1.26fr);
  width:min(1480px,100%);
  height:min(900px,calc(100vh - 18px));
  max-height:calc(100vh - 18px);
}
body.login-page-v12 .brand-panel-v12-home{
  padding:24px 20px;
  gap:14px;
}
body.login-page-v12 .brand-panel-v12-top{gap:14px;}
body.login-page-v12 .logo-box-v12-home{max-width:300px;padding:16px;}
body.login-page-v12 .brand-copy-v12-home .eyebrow{margin-bottom:6px;}
body.login-page-v12 .brand-copy-v12-home h1{font-size:clamp(2.55rem,3.1vw,3.75rem);}
body.login-page-v12 .brand-external-links-v12-home{gap:10px;}
body.login-page-v12 .external-link-card-v12{padding:12px 14px;border-radius:18px;}
body.login-page-v12 .form-panel-v12-home{padding:16px 18px;overflow:auto;}
body.login-page-v12 .form-panel-inner-v12-home{width:min(100%,900px);gap:10px;}
body.login-page-v12 .login-top-v12-home{display:flex;justify-content:space-between;align-items:end;gap:12px;}
body.login-page-v12 .login-top-v12-home h2{font-size:clamp(2rem,2.3vw,2.7rem);}
body.login-page-v12 .login-intro{margin:0;max-width:260px;text-align:right;}
body.login-page-v12 .login-form-v12-home{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);
  grid-template-areas:
    "main credentials"
    "secondary secondary";
  gap:12px;
  align-items:start;
}
body.login-page-v12 .access-card-v12-main{grid-area:main;}
body.login-page-v12 .access-card-v12-secondary{grid-area:secondary;}
body.login-page-v12 .credentials-card-v12{grid-area:credentials;position:sticky;top:0;align-self:start;}
body.login-page-v12 .access-card-v12, body.login-page-v12 .credentials-card-v12{padding:15px 16px;border-radius:22px;gap:12px;}
body.login-page-v12 .section-head-access{margin-bottom:10px;}
body.login-page-v12 .minimal-title{font-size:1.2rem;}
body.login-page-v12 .role-pills-v12-main{gap:10px;}
body.login-page-v12 .role-pill-v12{min-height:68px;padding:12px 14px;gap:10px;}
body.login-page-v12 .pill-index{width:38px;height:38px;border-radius:12px;font-size:.95rem;}
body.login-page-v12 .pill-copy strong{font-size:1.04rem;}
body.login-page-v12 .pill-copy small{font-size:.88rem;}
body.login-page-v12 .secondary-access-grid-v12{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
body.login-page-v12 .secondary-access-card-v12{min-height:100px;padding:12px;border-radius:18px;}
body.login-page-v12 .secondary-access-card-v12 strong{font-size:1rem;}
body.login-page-v12 .secondary-access-card-v12 small{font-size:.84rem;line-height:1.25;}
body.login-page-v12 .credentials-header-v12{display:grid;gap:8px;}
body.login-page-v12 .selection-badge-v12, body.login-page-v12 .demo-chip-v12{justify-self:start;}
body.login-page-v12 .credentials-box-v12{grid-template-columns:1fr;gap:12px;}
body.login-page-v12 .credentials-card-v12 input{height:50px;}
body.login-page-v12 .password-toggle-v12{height:36px;}
body.login-page-v12 .primary-btn-v12{height:52px;}

@media (max-width:1240px){
  body.login-page-v12 .auth-card-v12-home{grid-template-columns:280px minmax(0,1fr);}
  body.login-page-v12 .secondary-access-grid-v12{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:980px){
  body.login-page-v12 .login-top-v12-home{display:grid;align-items:start;}
  body.login-page-v12 .login-intro{max-width:none;text-align:left;}
  body.login-page-v12 .login-form-v12-home{
    grid-template-columns:1fr;
    grid-template-areas:
      "main"
      "credentials"
      "secondary";
  }
  body.login-page-v12 .credentials-card-v12{position:static;}
}
@media (max-width:760px){
  body.login-page-v12 .secondary-access-grid-v12{grid-template-columns:1fr;}
}
@media (max-height:860px) and (min-width:981px){
  body.login-page-v12 .login-top-v12-home h2{font-size:clamp(1.85rem,2vw,2.35rem);}
  body.login-page-v12 .login-form-v12-home{gap:10px;}
  body.login-page-v12 .access-card-v12, body.login-page-v12 .credentials-card-v12{padding:13px 14px;gap:10px;}
  body.login-page-v12 .role-pill-v12{min-height:62px;padding:10px 12px;}
  body.login-page-v12 .secondary-access-card-v12{min-height:92px;padding:10px 11px;}
  body.login-page-v12 .credentials-card-v12 input{height:46px;}
  body.login-page-v12 .primary-btn-v12{height:48px;}
}

/* v12.2 overlap fix */
body.login-page-v12{
  overflow:hidden;
}
body.login-page-v12 .shell-login-v7{
  padding:12px;
}
body.login-page-v12 .auth-card-v12-home{
  width:min(1480px,100%);
  height:min(900px,calc(100vh - 24px));
  max-height:calc(100vh - 24px);
  grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);
}
body.login-page-v12 .brand-panel-v12-home{
  padding:22px 20px;
}
body.login-page-v12 .brand-panel-v12-top{
  gap:12px;
}
body.login-page-v12 .logo-box-v12-home{
  max-width:320px;
  padding:16px;
}
body.login-page-v12 .brand-copy-v12-home h1{
  font-size:clamp(2.5rem,3vw,3.7rem);
}
body.login-page-v12 .form-panel-v12-home{
  padding:16px 18px;
  overflow:auto;
}
body.login-page-v12 .form-panel-inner-v12-home{
  width:min(100%,940px);
  gap:10px;
}
body.login-page-v12 .login-top-v12-home{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:12px;
}
body.login-page-v12 .login-top-v12-home h2{
  font-size:clamp(1.95rem,2.25vw,2.7rem);
}
body.login-page-v12 .login-intro{
  margin:0;
  max-width:240px;
  text-align:right;
}
body.login-page-v12 .login-form-v12-home{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}
body.login-page-v12 .credentials-card-v12-top,
body.login-page-v12 .access-card-v12,
body.login-page-v12 .credentials-card-v12{
  position:static;
}
body.login-page-v12 .access-card-v12,
body.login-page-v12 .credentials-card-v12{
  padding:14px 16px;
  gap:12px;
  border-radius:22px;
}
body.login-page-v12 .credentials-header-v12{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
body.login-page-v12 .credentials-box-v12{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
body.login-page-v12 .credentials-card-v12 input{
  height:48px;
}
body.login-page-v12 .password-toggle-v12{
  height:34px;
}
body.login-page-v12 .primary-btn-v12{
  height:50px;
}
body.login-page-v12 .role-pills-v12-main{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
body.login-page-v12 .role-pill-v12{
  min-width:0;
  min-height:96px;
  align-items:start;
  padding:12px 13px;
  grid-template-columns:40px 1fr;
  gap:10px;
}
body.login-page-v12 .pill-index{
  width:40px;
  height:40px;
  border-radius:12px;
}
body.login-page-v12 .pill-copy{
  min-width:0;
}
body.login-page-v12 .pill-copy strong,
body.login-page-v12 .pill-copy small,
body.login-page-v12 .secondary-access-card-v12 strong,
body.login-page-v12 .secondary-access-card-v12 small{
  overflow-wrap:anywhere;
  word-break:break-word;
}
body.login-page-v12 .pill-copy strong{
  display:block;
  font-size:1rem;
  line-height:1.15;
}
body.login-page-v12 .pill-copy small{
  display:block;
  margin-top:4px;
  font-size:.84rem;
  line-height:1.25;
}
body.login-page-v12 .secondary-access-grid-v12{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
body.login-page-v12 .secondary-access-card-v12{
  min-width:0;
  min-height:100px;
  padding:11px;
  border-radius:18px;
}
body.login-page-v12 .secondary-access-card-v12 strong{
  font-size:.98rem;
  line-height:1.15;
}
body.login-page-v12 .secondary-access-card-v12 small{
  font-size:.82rem;
  line-height:1.22;
}

@media (max-width:1280px){
  body.login-page-v12 .auth-card-v12-home{
    grid-template-columns:280px minmax(0,1fr);
  }
  body.login-page-v12 .role-pills-v12-main{
    grid-template-columns:1fr;
  }
  body.login-page-v12 .secondary-access-grid-v12{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:980px){
  body.login-page-v12{
    overflow:auto;
  }
  body.login-page-v12 .auth-card-v12-home{
    height:auto;
    max-height:none;
    grid-template-columns:1fr;
  }
  body.login-page-v12 .login-top-v12-home{
    display:grid;
    align-items:start;
  }
  body.login-page-v12 .login-intro{
    max-width:none;
    text-align:left;
  }
}

@media (max-width:760px){
  body.login-page-v12 .credentials-box-v12,
  body.login-page-v12 .role-pills-v12-main,
  body.login-page-v12 .secondary-access-grid-v12{
    grid-template-columns:1fr;
  }
  body.login-page-v12 .form-panel-v12-home{
    padding:14px;
  }
  body.login-page-v12 .brand-panel-v12-home{
    padding:18px;
  }
}

@media (max-height:860px) and (min-width:981px){
  body.login-page-v12 .auth-card-v12-home{
    height:calc(100vh - 16px);
    max-height:calc(100vh - 16px);
  }
  body.login-page-v12 .brand-panel-v12-home{
    padding:18px 16px;
  }
  body.login-page-v12 .logo-box-v12-home{
    max-width:285px;
    padding:14px;
  }
  body.login-page-v12 .brand-copy-v12-home h1{
    font-size:clamp(2.2rem,2.5vw,3.2rem);
  }
  body.login-page-v12 .external-link-card-v12{
    padding:10px 12px;
  }
  body.login-page-v12 .form-panel-v12-home{
    padding:14px 16px;
  }
  body.login-page-v12 .access-card-v12,
  body.login-page-v12 .credentials-card-v12{
    padding:12px 14px;
    gap:10px;
  }
  body.login-page-v12 .role-pill-v12{
    min-height:84px;
    padding:10px 12px;
  }
  body.login-page-v12 .secondary-access-card-v12{
    min-height:88px;
    padding:10px;
  }
  body.login-page-v12 .credentials-card-v12 input{
    height:44px;
  }
  body.login-page-v12 .primary-btn-v12{
    height:46px;
  }
}

/* ===============================
   V14 UX premium login overhaul
   =============================== */
body.login-page-v14{
  overflow:hidden !important;
}
body.login-page-v14 .shell-login-v14{
  min-height:100vh !important;
  padding:14px !important;
}
body.login-page-v14 .auth-card-v14-home{
  width:min(1500px,100%) !important;
  height:calc(100vh - 28px) !important;
  max-height:calc(100vh - 28px) !important;
  display:grid !important;
  grid-template-columns:minmax(320px,0.9fr) minmax(0,1.35fr) !important;
  overflow:hidden !important;
  border-radius:34px !important;
}
body.login-page-v14 .brand-panel-v14-home{
  padding:22px !important;
  gap:18px !important;
  justify-content:space-between !important;
}
body.login-page-v14 .brand-panel-v14-top{
  display:grid !important;
  gap:18px !important;
  align-content:start !important;
}
body.login-page-v14 .logo-box-v14-home{
  max-width:340px !important;
  padding:18px !important;
}
body.login-page-v14 .brand-copy-v14-home h1{
  margin:0 !important;
  font-size:clamp(3rem,4vw,4.2rem) !important;
  line-height:0.98 !important;
}
body.login-page-v14 .brand-external-links-v14-home{
  display:grid !important;
  gap:12px !important;
  margin-top:auto !important;
}
body.login-page-v14 .external-link-card-v14{
  min-height:92px !important;
  padding:14px 16px !important;
}
body.login-page-v14 .form-panel-v14-home{
  padding:20px 22px !important;
  overflow:auto !important;
}
body.login-page-v14 .form-panel-inner-v14-home{
  width:min(100%,920px) !important;
  margin:0 auto !important;
  display:grid !important;
  grid-template-rows:auto auto 1fr !important;
  gap:16px !important;
}
body.login-page-v14 .login-top-v14-home{
  display:flex !important;
  justify-content:space-between !important;
  align-items:flex-end !important;
  gap:16px !important;
}
body.login-page-v14 .login-top-v14-home h2{
  margin:0 !important;
  font-size:clamp(2.2rem,3vw,3.4rem) !important;
  line-height:1 !important;
}
body.login-page-v14 .login-intro{
  max-width:280px !important;
  margin:0 !important;
  text-align:right !important;
}
body.login-page-v14 .login-form-v14-home{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:14px !important;
}
body.login-page-v14 .credentials-card-v14,
body.login-page-v14 .access-card-v14{
  background:#fff !important;
  border:1px solid #dbe5f3 !important;
  border-radius:24px !important;
  box-shadow:0 14px 34px rgba(20,51,94,.07) !important;
  padding:18px !important;
}
body.login-page-v14 .credentials-card-v14{
  position:static !important;
}
body.login-page-v14 .credentials-header-v14{
  display:flex !important;
  justify-content:space-between !important;
  align-items:center !important;
  gap:12px !important;
  flex-wrap:wrap !important;
  margin-bottom:14px !important;
}
body.login-page-v14 .selection-badge-v14,
body.login-page-v14 .demo-chip-v14{
  display:inline-flex !important;
  align-items:center !important;
  min-height:40px !important;
}
body.login-page-v14 .credentials-box-v14{
  display:grid !important;
  grid-template-columns:1fr 1fr auto !important;
  gap:14px !important;
  align-items:end !important;
}
body.login-page-v14 .field-group-v14{
  display:grid !important;
  gap:8px !important;
}
body.login-page-v14 .field-group-v14 label{
  font-weight:800 !important;
  color:#16345f !important;
}
body.login-page-v14 .credentials-card-v14 input{
  height:54px !important;
  border-radius:16px !important;
  width:100% !important;
}
body.login-page-v14 .password-wrap-v14{
  position:relative !important;
}
body.login-page-v14 .password-wrap-v14 input{
  padding-right:100px !important;
}
body.login-page-v14 .password-toggle-v14{
  position:absolute !important;
  top:50% !important;
  right:8px !important;
  transform:translateY(-50%) !important;
  height:38px !important;
}
body.login-page-v14 .primary-btn-v14{
  width:220px !important;
  min-width:220px !important;
  height:54px !important;
  align-self:end !important;
}
body.login-page-v14 #loginMessage{
  margin:8px 0 0 !important;
  min-height:18px !important;
}
body.login-page-v14 .section-head-v14{
  margin-bottom:12px !important;
}
body.login-page-v14 .role-pills-v14-main{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:12px !important;
}
body.login-page-v14 .role-pill-v14{
  display:grid !important;
  grid-template-columns:56px 1fr !important;
  align-items:center !important;
  gap:12px !important;
  min-height:110px !important;
  padding:16px !important;
  text-align:left !important;
}
body.login-page-v14 .pill-icon-v14{
  display:grid !important;
  place-items:center !important;
  width:52px !important;
  height:52px !important;
  border-radius:16px !important;
  font-size:1.5rem !important;
  background:linear-gradient(180deg,#edf4ff 0%,#dfeaff 100%) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85) !important;
}
body.login-page-v14 .role-pill-v14.active .pill-icon-v14{
  background:linear-gradient(180deg,#fff0dc 0%,#ffd9a8 100%) !important;
}
body.login-page-v14 .pill-copy{
  min-width:0 !important;
}
body.login-page-v14 .pill-copy strong,
body.login-page-v14 .pill-copy small,
body.login-page-v14 .secondary-access-card-v14 strong,
body.login-page-v14 .secondary-access-card-v14 small{
  display:block !important;
  white-space:normal !important;
  overflow-wrap:anywhere !important;
}
body.login-page-v14 .pill-copy strong{
  font-size:1.1rem !important;
  margin-bottom:4px !important;
}
body.login-page-v14 .pill-copy small{
  font-size:.92rem !important;
  line-height:1.35 !important;
}
body.login-page-v14 .secondary-access-grid-v14{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:12px !important;
}
body.login-page-v14 .secondary-access-card-v14{
  min-height:124px !important;
  padding:14px !important;
  text-align:left !important;
}
body.login-page-v14 .secondary-access-card-v14 strong{
  font-size:1rem !important;
  margin-top:2px !important;
}
body.login-page-v14 .secondary-access-card-v14 small{
  font-size:.86rem !important;
  line-height:1.3 !important;
}
@media (max-width:1320px){
  body.login-page-v14 .auth-card-v14-home{
    grid-template-columns:300px minmax(0,1fr) !important;
  }
  body.login-page-v14 .role-pills-v14-main{
    grid-template-columns:1fr 1fr 1fr !important;
  }
  body.login-page-v14 .secondary-access-grid-v14{
    grid-template-columns:1fr 1fr !important;
  }
}
@media (max-width:980px){
  body.login-page-v14{
    overflow:auto !important;
  }
  body.login-page-v14 .auth-card-v14-home{
    grid-template-columns:1fr !important;
    height:auto !important;
    max-height:none !important;
  }
  body.login-page-v14 .form-panel-v14-home,
  body.login-page-v14 .brand-panel-v14-home{
    overflow:visible !important;
  }
  body.login-page-v14 .login-top-v14-home{
    display:grid !important;
    align-items:start !important;
  }
  body.login-page-v14 .login-intro{
    text-align:left !important;
    max-width:none !important;
  }
  body.login-page-v14 .credentials-box-v14,
  body.login-page-v14 .role-pills-v14-main,
  body.login-page-v14 .secondary-access-grid-v14{
    grid-template-columns:1fr !important;
  }
  body.login-page-v14 .form-panel-v14-home{
    padding:18px !important;
  }
  body.login-page-v14 .brand-panel-v14-home{
    padding:18px !important;
  }
}
@media (max-height:860px) and (min-width:981px){
  body.login-page-v14 .auth-card-v14-home{
    height:calc(100vh - 16px) !important;
    max-height:calc(100vh - 16px) !important;
  }
  body.login-page-v14 .brand-panel-v14-home{
    padding:18px !important;
  }
  body.login-page-v14 .logo-box-v14-home{
    max-width:300px !important;
    padding:15px !important;
  }
  body.login-page-v14 .brand-copy-v14-home h1{
    font-size:clamp(2.6rem,3.2vw,3.5rem) !important;
  }
  body.login-page-v14 .external-link-card-v14{
    min-height:84px !important;
    padding:12px 14px !important;
  }
  body.login-page-v14 .form-panel-v14-home{
    padding:16px !important;
  }
  body.login-page-v14 .access-card-v14,
  body.login-page-v14 .credentials-card-v14{
    padding:15px !important;
  }
  body.login-page-v14 .role-pill-v14{
    min-height:92px !important;
    padding:14px !important;
  }
  body.login-page-v14 .secondary-access-card-v14{
    min-height:108px !important;
    padding:12px !important;
  }
  body.login-page-v14 .credentials-card-v14 input{
    height:48px !important;
  }
  body.login-page-v14 .primary-btn-v14{
    height:48px !important;
  }
}


/* ===============================
   V15 clean PRO login page
   =============================== */
body.login-page-v14{
  overflow:hidden !important;
}
body.login-page-v14 .shell-login-v14{
  min-height:100vh !important;
  height:100vh !important;
  padding:12px !important;
}
body.login-page-v14 .auth-card-v14-home{
  width:min(1380px,100%) !important;
  height:calc(100vh - 24px) !important;
  max-height:calc(100vh - 24px) !important;
  grid-template-columns:minmax(300px,38%) minmax(0,62%) !important;
  border-radius:30px !important;
  overflow:hidden !important;
}
body.login-page-v14 .brand-panel-v14-home{
  padding:18px 18px 16px !important;
  min-width:0 !important;
}
body.login-page-v14 .brand-panel-v14-top{
  gap:14px !important;
}
body.login-page-v14 .logo-box-v14-home{
  max-width:300px !important;
  padding:14px !important;
}
body.login-page-v14 .brand-copy-v14-home{
  max-width:420px !important;
}
body.login-page-v14 .brand-copy-v14-home .eyebrow.light{
  margin-bottom:10px !important;
  font-size:1.05rem !important;
}
body.login-page-v14 .brand-copy-v14-home h1{
  font-size:clamp(3rem,4.2vw,4.4rem) !important;
}
body.login-page-v14 .brand-external-links-v14-home{
  grid-template-columns:1fr 1fr !important;
  gap:12px !important;
}
body.login-page-v14 .external-link-card-v14{
  min-height:88px !important;
  padding:14px !important;
  border-radius:20px !important;
}
body.login-page-v14 .form-panel-v14-home{
  padding:18px 20px !important;
  overflow:hidden !important;
}
body.login-page-v14 .form-panel-inner-v14-home{
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  height:100% !important;
  display:grid !important;
  grid-template-rows:auto auto auto 1fr !important;
  gap:14px !important;
}
body.login-page-v14 .login-top-v14-home{
  align-items:start !important;
  gap:12px !important;
}
body.login-page-v14 .login-top-v14-home h2{
  font-size:clamp(2.6rem,4vw,4rem) !important;
  letter-spacing:-.04em !important;
}
body.login-page-v14 .login-intro{
  max-width:220px !important;
  padding-top:8px !important;
  font-size:1rem !important;
}
body.login-page-v14 .login-form-v15-home{
  display:grid !important;
  grid-template-rows:auto auto 1fr !important;
  gap:14px !important;
  min-height:0 !important;
}
body.login-page-v14 .credentials-card-v15,
body.login-page-v14 .access-card-v15{
  padding:16px !important;
  border-radius:22px !important;
  min-width:0 !important;
}
body.login-page-v14 .credentials-header-v15{
  margin-bottom:12px !important;
}
body.login-page-v14 .selection-badge-v15,
body.login-page-v14 .demo-chip-v15{
  border-radius:999px !important;
  padding:10px 14px !important;
  font-weight:800 !important;
}
body.login-page-v14 .credentials-box-v15{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) 210px !important;
  gap:12px !important;
}
body.login-page-v14 .field-group-v15,
body.login-page-v14 .field-group-v15 label,
body.login-page-v14 .password-wrap-v15{
  min-width:0 !important;
}
body.login-page-v14 .password-wrap-v15{
  width:100% !important;
}
body.login-page-v14 .credentials-card-v15 input{
  height:50px !important;
  min-width:0 !important;
  font-size:1rem !important;
}
body.login-page-v14 .password-toggle-v15{
  min-width:86px !important;
  padding:0 12px !important;
}
body.login-page-v14 .primary-btn-v15{
  width:100% !important;
  min-width:0 !important;
  height:50px !important;
  margin-top:0 !important;
}
body.login-page-v14 .access-card-v15-main{
  min-height:0 !important;
}
body.login-page-v14 .section-head-v15{
  margin-bottom:10px !important;
}
body.login-page-v14 .section-head-v15 .minimal-title{
  margin:4px 0 0 !important;
  font-size:1.22rem !important;
}
body.login-page-v14 .role-pills-v15-main{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:12px !important;
}
body.login-page-v14 .role-pill-v15{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  min-width:0 !important;
  min-height:92px !important;
  padding:14px !important;
  overflow:hidden !important;
}
body.login-page-v14 .pill-icon-v15{
  flex:0 0 48px !important;
  width:48px !important;
  height:48px !important;
  border-radius:14px !important;
  font-size:1.35rem !important;
}
body.login-page-v14 .role-pill-v15 .pill-copy{
  flex:1 1 auto !important;
  min-width:0 !important;
}
body.login-page-v14 .role-pill-v15 .pill-copy strong{
  font-size:1.03rem !important;
  margin-bottom:3px !important;
}
body.login-page-v14 .role-pill-v15 .pill-copy small{
  font-size:.88rem !important;
  line-height:1.25 !important;
}
body.login-page-v14 .access-card-v15-secondary{
  align-self:start !important;
}
body.login-page-v14 .secondary-access-grid-v15{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:10px !important;
}
body.login-page-v14 .secondary-access-card-v15{
  min-height:100px !important;
  padding:12px !important;
  border-radius:18px !important;
  min-width:0 !important;
}
body.login-page-v14 .secondary-access-card-v15 strong{
  font-size:.97rem !important;
  line-height:1.18 !important;
  margin:4px 0 !important;
}
body.login-page-v14 .secondary-access-card-v15 small{
  font-size:.8rem !important;
  line-height:1.2 !important;
}
@media (max-width: 1240px){
  body.login-page-v14 .auth-card-v14-home{
    grid-template-columns:minmax(280px,34%) minmax(0,66%) !important;
  }
  body.login-page-v14 .credentials-box-v15{
    grid-template-columns:1fr 1fr !important;
  }
  body.login-page-v14 .primary-btn-v15{
    grid-column:1 / -1 !important;
  }
  body.login-page-v14 .secondary-access-grid-v15{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media (max-width: 980px){
  body.login-page-v14{
    overflow:auto !important;
  }
  body.login-page-v14 .shell-login-v14{
    height:auto !important;
    min-height:100vh !important;
  }
  body.login-page-v14 .auth-card-v14-home{
    grid-template-columns:1fr !important;
    height:auto !important;
    max-height:none !important;
  }
  body.login-page-v14 .form-panel-v14-home{
    overflow:visible !important;
  }
  body.login-page-v14 .brand-external-links-v14-home,
  body.login-page-v14 .role-pills-v15-main,
  body.login-page-v14 .secondary-access-grid-v15,
  body.login-page-v14 .credentials-box-v15{
    grid-template-columns:1fr !important;
  }
  body.login-page-v14 .login-top-v14-home{
    display:grid !important;
  }
  body.login-page-v14 .login-intro{
    text-align:left !important;
    max-width:none !important;
  }
}
@media (max-height: 820px) and (min-width: 981px){
  body.login-page-v14 .shell-login-v14{
    padding:10px !important;
  }
  body.login-page-v14 .auth-card-v14-home{
    height:calc(100vh - 20px) !important;
    max-height:calc(100vh - 20px) !important;
  }
  body.login-page-v14 .brand-panel-v14-home,
  body.login-page-v14 .form-panel-v14-home{
    padding:14px !important;
  }
  body.login-page-v14 .form-panel-inner-v14-home,
  body.login-page-v14 .login-form-v15-home{
    gap:10px !important;
  }
  body.login-page-v14 .logo-box-v14-home{
    max-width:270px !important;
    padding:12px !important;
  }
  body.login-page-v14 .brand-copy-v14-home .eyebrow.light{
    font-size:.98rem !important;
  }
  body.login-page-v14 .brand-copy-v14-home h1{
    font-size:clamp(2.8rem,3.7vw,3.8rem) !important;
  }
  body.login-page-v14 .external-link-card-v14{
    min-height:78px !important;
    padding:12px !important;
  }
  body.login-page-v14 .credentials-card-v15,
  body.login-page-v14 .access-card-v15{
    padding:13px !important;
  }
  body.login-page-v14 .credentials-header-v15{
    margin-bottom:8px !important;
  }
  body.login-page-v14 .selection-badge-v15,
  body.login-page-v14 .demo-chip-v15{
    min-height:36px !important;
    padding:8px 12px !important;
    font-size:.92rem !important;
  }
  body.login-page-v14 .credentials-card-v15 input,
  body.login-page-v14 .primary-btn-v15{
    height:46px !important;
  }
  body.login-page-v14 .password-toggle-v15{
    height:34px !important;
  }
  body.login-page-v14 .role-pill-v15{
    min-height:80px !important;
    padding:12px !important;
  }
  body.login-page-v14 .pill-icon-v15{
    flex-basis:42px !important;
    width:42px !important;
    height:42px !important;
    font-size:1.2rem !important;
  }
  body.login-page-v14 .role-pill-v15 .pill-copy strong{
    font-size:.98rem !important;
  }
  body.login-page-v14 .role-pill-v15 .pill-copy small{
    font-size:.82rem !important;
  }
  body.login-page-v14 .secondary-access-card-v15{
    min-height:88px !important;
    padding:10px !important;
  }
  body.login-page-v14 .secondary-access-card-v15 strong{
    font-size:.9rem !important;
  }
  body.login-page-v14 .secondary-access-card-v15 small{
    font-size:.76rem !important;
  }
}

/* V16 FULL CLEAN */
body.login-page-v16{
  min-height:100vh;
  margin:0;
  overflow:hidden;
  background:#e9eef6;
}

body.login-page-v16 .login-v16-shell{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px;
  box-sizing:border-box;
}

body.login-page-v16 .login-v16-card{
  width:min(1480px,100%);
  height:calc(100vh - 32px);
  display:grid;
  grid-template-columns:minmax(320px,42%) minmax(520px,58%);
  background:rgba(255,255,255,.72);
  border:1px solid rgba(213,223,239,.95);
  border-radius:34px;
  overflow:hidden;
  box-shadow:0 24px 70px rgba(28,54,97,.12);
}

body.login-page-v16 .login-v16-left{
  background:linear-gradient(180deg,#2558c7 0%,#2f63cf 62%,#7d7ead 100%);
  color:#fff;
  padding:28px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:20px;
}

body.login-page-v16 .login-v16-left-top{display:grid;gap:22px;align-content:start}

body.login-page-v16 .login-v16-logo-box{
  background:#fff;
  border-radius:26px;
  padding:18px 20px;
  width:min(100%,360px);
  box-shadow:0 18px 40px rgba(8,24,57,.12);
}

body.login-page-v16 .login-v16-logo{display:block;max-width:100%;height:auto}
body.login-page-v16 .login-v16-eyebrow{
  margin:0 0 10px;
  font-size:1.05rem;
  line-height:1.35;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:800;
}
body.login-page-v16 .login-v16-brand-copy h1{
  margin:0;
  font-size:clamp(3rem,5vw,4.5rem);
  line-height:.98;
  color:#fff;
}

body.login-page-v16 .login-v16-links{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:auto;
}

body.login-page-v16 .login-v16-link-card{
  display:grid;
  grid-template-columns:80px 1fr;
  align-items:center;
  gap:14px;
  text-decoration:none;
  color:#fff;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  border-radius:22px;
  padding:14px;
  backdrop-filter:blur(6px);
}
body.login-page-v16 .login-v16-link-card span{display:grid;gap:3px}
body.login-page-v16 .login-v16-link-card strong{font-size:1.02rem;line-height:1.2;color:#fff}
body.login-page-v16 .login-v16-link-card small{font-size:.92rem;line-height:1.35;color:rgba(255,255,255,.88)}
body.login-page-v16 .login-v16-link-logo{
  width:100%;
  max-width:68px;
  max-height:44px;
  object-fit:contain;
  background:#fff;
  border-radius:14px;
  padding:6px 8px;
}
body.login-page-v16 .login-v16-link-logo-square{max-width:44px;max-height:44px;padding:5px}

body.login-page-v16 .login-v16-right{
  padding:26px 30px;
  display:grid;
  grid-template-rows:auto auto 1fr;
  gap:18px;
  overflow:auto;
}
body.login-page-v16 .login-v16-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
}
body.login-page-v16 .login-v16-kicker{
  margin:0 0 8px;
  font-size:.98rem;
  text-transform:uppercase;
  letter-spacing:.11em;
  font-weight:800;
  color:#2558c7;
}
body.login-page-v16 .login-v16-header h2{
  margin:0;
  color:#17365f;
  font-size:clamp(2.6rem,4vw,4rem);
  line-height:.97;
  letter-spacing:-.04em;
}
body.login-page-v16 .login-v16-header-text{
  margin:8px 0 0;
  max-width:240px;
  color:#7085a4;
  font-size:1rem;
  line-height:1.45;
  text-align:right;
}

body.login-page-v16 .login-v16-form{display:grid;gap:16px;align-content:start}
body.login-page-v16 .login-v16-panel{
  background:rgba(255,255,255,.88);
  border:1px solid rgba(214,225,241,.95);
  border-radius:28px;
  padding:20px;
  box-shadow:0 14px 40px rgba(23,54,95,.05);
}
body.login-page-v16 .login-v16-panel-login{padding:20px 20px 16px}
body.login-page-v16 .login-v16-panel-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin-bottom:16px;
}
body.login-page-v16 .login-v16-selected,
body.login-page-v16 .login-v16-demo,
body.login-page-v16 .login-v16-chip{
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:10px 16px;
  border-radius:999px;
  background:#edf3ff;
  color:#214b8f;
  font-weight:800;
  font-size:.96rem;
}
body.login-page-v16 .login-v16-demo{background:#fff4e7;color:#94510a}
body.login-page-v16 .login-v16-fields{
  display:grid;
  grid-template-columns:1fr 1fr auto;
  gap:14px;
  align-items:end;
}
body.login-page-v16 .login-v16-field{display:grid;gap:8px;margin:0}
body.login-page-v16 .login-v16-field span{
  font-size:.98rem;
  font-weight:800;
  color:#17365f;
}
body.login-page-v16 .login-v16-field input,
body.login-page-v16 .login-v16-password-wrap input{
  width:100%;
  height:52px;
  border-radius:18px;
  border:1px solid #ccdaef;
  background:#f6f9ff;
  padding:0 16px;
  font-size:1rem;
  color:#17365f;
  box-sizing:border-box;
}
body.login-page-v16 .login-v16-password-wrap{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  align-items:center;
}
body.login-page-v16 .login-v16-password-toggle{
  height:52px;
  padding:0 18px;
  border:none;
  border-radius:16px;
  background:#edf3ff;
  color:#2558c7;
  font-weight:800;
  cursor:pointer;
}
body.login-page-v16 .login-v16-submit{
  height:52px;
  min-width:210px;
  border:none;
  border-radius:18px;
  background:linear-gradient(90deg,#2a63d3 0%,#3c76ea 70%,#f28c1b 100%);
  color:#fff;
  font-weight:800;
  font-size:1rem;
  box-shadow:0 16px 28px rgba(242,140,27,.22);
  cursor:pointer;
}
body.login-page-v16 #loginMessage{min-height:18px;margin:12px 0 0}

body.login-page-v16 .login-v16-section-head{margin-bottom:16px}
body.login-page-v16 .login-v16-section-head h3{
  margin:10px 0 0;
  color:#17365f;
  font-size:1.35rem;
}

body.login-page-v16 .login-v16-role-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
body.login-page-v16 .login-v16-role-card,
body.login-page-v16 .login-v16-secondary-card{
  border:1px solid #d7e2f3;
  background:#fff;
  border-radius:24px;
  padding:16px;
  text-align:left;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
body.login-page-v16 .login-v16-role-card{
  display:grid;
  grid-template-columns:56px 1fr;
  gap:14px;
  align-items:center;
  min-height:110px;
}
body.login-page-v16 .login-v16-role-card:hover,
body.login-page-v16 .login-v16-secondary-card:hover{
  transform:translateY(-1px);
  box-shadow:0 12px 24px rgba(37,88,199,.08);
  border-color:#b9cdef;
}
body.login-page-v16 .role-pill.active{
  background:linear-gradient(135deg,#fff8f0 0%,#ffffff 100%);
  border-color:#f1be7a;
  box-shadow:0 16px 28px rgba(242,140,27,.14);
}
body.login-page-v16 .secondary-access-card.active{
  background:linear-gradient(135deg,#eff5ff 0%,#ffffff 100%);
  border-color:#93b5f1;
  box-shadow:0 14px 26px rgba(42,99,211,.12);
}
body.login-page-v16 .login-v16-role-icon{
  width:56px;height:56px;border-radius:18px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#edf3ff 0%,#fff4e7 100%);
  font-size:1.5rem;
}
body.login-page-v16 .login-v16-role-copy{display:grid;gap:4px}
body.login-page-v16 .login-v16-role-copy strong,
body.login-page-v16 .login-v16-secondary-card strong{font-size:1.05rem;color:#17365f;line-height:1.2}
body.login-page-v16 .login-v16-role-copy small,
body.login-page-v16 .login-v16-secondary-card small{font-size:.92rem;color:#6f84a2;line-height:1.4}

body.login-page-v16 .login-v16-secondary-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
body.login-page-v16 .login-v16-secondary-card{display:grid;gap:8px;align-content:start;min-height:128px}
body.login-page-v16 .login-v16-secondary-tag{
  display:inline-flex;
  width:fit-content;
  padding:6px 10px;
  border-radius:999px;
  background:#edf3ff;
  color:#214b8f;
  font-size:.72rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}

@media (max-width:1180px){
  body.login-page-v16{overflow:auto}
  body.login-page-v16 .login-v16-shell{padding:12px;align-items:flex-start}
  body.login-page-v16 .login-v16-card{height:auto;min-height:calc(100vh - 24px);grid-template-columns:1fr}
  body.login-page-v16 .login-v16-left{min-height:320px}
  body.login-page-v16 .login-v16-right{overflow:visible}
}

@media (max-width:900px){
  body.login-page-v16 .login-v16-header,
  body.login-page-v16 .login-v16-panel-top{grid-template-columns:1fr;display:grid}
  body.login-page-v16 .login-v16-header-text{text-align:left;max-width:none;margin:0}
  body.login-page-v16 .login-v16-fields,
  body.login-page-v16 .login-v16-role-grid,
  body.login-page-v16 .login-v16-secondary-grid,
  body.login-page-v16 .login-v16-links{grid-template-columns:1fr}
  body.login-page-v16 .login-v16-submit{width:100%}
}

@media (max-width:640px){
  body.login-page-v16 .login-v16-left,
  body.login-page-v16 .login-v16-right{padding:18px}
  body.login-page-v16 .login-v16-brand-copy h1{font-size:2.6rem}
  body.login-page-v16 .login-v16-header h2{font-size:2.3rem}
  body.login-page-v16 .login-v16-role-card{grid-template-columns:48px 1fr;min-height:96px}
  body.login-page-v16 .login-v16-role-icon{width:48px;height:48px;border-radius:16px;font-size:1.25rem}
  body.login-page-v16 .login-v16-panel{padding:16px}
}

/* ===== V18 login page refinement ===== */
body.login-page-v18{
  overflow:hidden;
}
body.login-page-v18 .login-v16-shell{
  padding:14px;
}
body.login-page-v18 .login-v16-card{
  width:min(1500px,100%);
  height:calc(100vh - 28px);
  grid-template-columns:minmax(330px,40%) minmax(640px,60%);
}
body.login-page-v18 .login-v16-left{
  padding:32px 28px 22px;
}
body.login-page-v18 .login-v16-right{
  padding:24px 28px;
  overflow:auto;
  align-content:start;
}
body.login-page-v18 .login-v18-topbar{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:10px;
}
body.login-page-v18 .login-v18-intro{
  margin:0;
  color:#7085a4;
  font-size:1rem;
  line-height:1.45;
}
body.login-page-v18 .login-v18-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:10px 16px;
  border-radius:999px;
  background:#edf3ff;
  color:#214b8f;
  font-weight:800;
  font-size:.96rem;
  white-space:nowrap;
}
body.login-page-v18 .login-v18-form{
  gap:14px;
}
body.login-page-v18 .login-v18-login-panel,
body.login-page-v18 .login-v18-main-panel,
body.login-page-v18 .login-v18-secondary-panel{
  border-radius:26px;
}
body.login-page-v18 .login-v18-login-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}
body.login-page-v18 .login-v18-login-title{
  margin:10px 0 0;
  color:#17365f;
  font-size:1.45rem;
  line-height:1.1;
}
body.login-page-v18 .login-v18-fields{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) 220px;
}
body.login-page-v18 .login-v16-submit{
  width:100%;
}
body.login-page-v18 .login-v18-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
body.login-page-v18 .login-v18-side-note{
  margin:6px 0 0;
  max-width:260px;
  color:#7085a4;
  font-size:.95rem;
  line-height:1.4;
  text-align:right;
}
body.login-page-v18 .login-v18-role-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
body.login-page-v18 .login-v16-role-card{
  min-height:118px;
  align-items:start;
  padding:18px;
}
body.login-page-v18 .login-v16-role-icon{
  width:58px;
  height:58px;
}
body.login-page-v18 .login-v16-role-copy strong{
  font-size:1.08rem;
}
body.login-page-v18 .login-v18-secondary-wrap{
  border:1px solid rgba(214,225,241,.95);
  background:rgba(255,255,255,.72);
  border-radius:26px;
  overflow:hidden;
}
body.login-page-v18 .login-v18-secondary-wrap summary{
  list-style:none;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:14px;
  align-items:center;
  cursor:pointer;
  padding:16px 18px;
}
body.login-page-v18 .login-v18-secondary-wrap summary::-webkit-details-marker{
  display:none;
}
body.login-page-v18 .login-v18-secondary-wrap summary strong{
  color:#17365f;
  font-size:1.05rem;
}
body.login-page-v18 .login-v18-secondary-wrap summary small{
  color:#7085a4;
  text-align:right;
}
body.login-page-v18 .login-v18-secondary-wrap summary::after{
  content:'▾';
  order:4;
  margin-left:8px;
  color:#2558c7;
  font-size:1.05rem;
  font-weight:800;
}
body.login-page-v18 .login-v18-secondary-wrap[open] summary::after{
  transform:rotate(180deg);
}
body.login-page-v18 .login-v18-secondary-panel{
  margin:0 12px 12px;
}
body.login-page-v18 .login-v18-secondary-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
body.login-page-v18 .message.error{
  color:#9b1c1c;
}

@media (max-width:1180px){
  body.login-page-v18{overflow:auto;}
  body.login-page-v18 .login-v16-card{
    height:auto;
    min-height:calc(100vh - 28px);
    grid-template-columns:1fr;
  }
  body.login-page-v18 .login-v16-right{
    overflow:visible;
  }
}

@media (max-width:900px){
  body.login-page-v18 .login-v18-topbar,
  body.login-page-v18 .login-v18-login-head,
  body.login-page-v18 .login-v18-section-head,
  body.login-page-v18 .login-v18-secondary-wrap summary{
    grid-template-columns:1fr;
    display:grid;
  }
  body.login-page-v18 .login-v18-status,
  body.login-page-v18 .login-v16-demo{
    justify-self:start;
    white-space:normal;
  }
  body.login-page-v18 .login-v18-side-note,
  body.login-page-v18 .login-v18-secondary-wrap summary small{
    text-align:left;
    max-width:none;
  }
  body.login-page-v18 .login-v18-fields,
  body.login-page-v18 .login-v18-role-grid,
  body.login-page-v18 .login-v18-secondary-grid,
  body.login-page-v18 .login-v16-links{
    grid-template-columns:1fr;
  }
}

@media (max-width:640px){
  body.login-page-v18 .login-v16-left,
  body.login-page-v18 .login-v16-right{
    padding:18px;
  }
  body.login-page-v18 .login-v16-brand-copy h1{
    font-size:2.6rem;
  }
}


/* ===== V18 compact no-scroll refinement ===== */
body.login-page-v18 .login-v16-card{
  height:calc(100vh - 24px);
  grid-template-columns:minmax(320px,40%) minmax(620px,60%);
}
body.login-page-v18 .login-v16-left{
  padding:26px 28px 20px;
  gap:16px;
}
body.login-page-v18 .login-v16-left-top{gap:18px;}
body.login-page-v18 .login-v16-logo-box{padding:16px 18px;width:min(100%,390px);}
body.login-page-v18 .login-v16-brand-copy h1{font-size:clamp(2.8rem,4.2vw,4.2rem);}
body.login-page-v18 .login-v16-eyebrow{font-size:.98rem;line-height:1.3;margin:0 0 8px;}
body.login-page-v18 .login-v16-links{gap:12px;}
body.login-page-v18 .login-v16-link-card{padding:12px;border-radius:20px;}
body.login-page-v18 .login-v16-right{
  padding:18px 26px;
  grid-template-rows:auto 1fr;
  gap:12px;
  overflow:hidden;
}
body.login-page-v18 .login-v18-topbar{margin-bottom:4px;}
body.login-page-v18 .login-v16-kicker{margin:0 0 4px;font-size:.94rem;}
body.login-page-v18 .login-v18-intro{font-size:.95rem;line-height:1.3;}
body.login-page-v18 .login-v18-status{min-height:40px;padding:8px 14px;font-size:.92rem;}
body.login-page-v18 .login-v18-form{gap:12px;align-content:start;}
body.login-page-v18 .login-v16-panel{padding:16px 18px;border-radius:24px;}
body.login-page-v18 .login-v18-login-head{margin-bottom:10px;}
body.login-page-v18 .login-v16-chip, body.login-page-v18 .login-v16-demo{min-height:38px;padding:8px 14px;font-size:.9rem;}
body.login-page-v18 .login-v18-login-title{margin:8px 0 0;font-size:1.15rem;}
body.login-page-v18 .login-v18-fields{grid-template-columns:1.05fr 1fr 210px;gap:12px;}
body.login-page-v18 .login-v16-field span{font-size:.92rem;}
body.login-page-v18 .login-v16-field input,
body.login-page-v18 .login-v16-password-wrap input,
body.login-page-v18 .login-v16-password-toggle,
body.login-page-v18 .login-v16-submit{height:48px;}
body.login-page-v18 .login-v16-submit{min-width:190px;}
body.login-page-v18 #loginMessage{min-height:0;margin:8px 0 0;}
body.login-page-v18 .login-v18-section-head{align-items:center;}
body.login-page-v18 .login-v16-section-head{margin-bottom:12px;}
body.login-page-v18 .login-v16-section-head h3{margin:8px 0 0;font-size:1.05rem;}
body.login-page-v18 .login-v18-side-note{font-size:.9rem;line-height:1.25;max-width:220px;margin:0;}
body.login-page-v18 .login-v18-role-grid{gap:12px;}
body.login-page-v18 .login-v16-role-card{min-height:88px;padding:14px 16px;align-items:center;}
body.login-page-v18 .login-v16-role-icon{width:48px;height:48px;border-radius:16px;font-size:1.25rem;}
body.login-page-v18 .login-v16-role-copy.compact{display:flex;align-items:center;}
body.login-page-v18 .login-v16-role-copy.compact strong{font-size:1.2rem;}
body.login-page-v18 .login-v16-role-copy.compact small{display:none;}
body.login-page-v18 .login-v18-secondary-links-panel{
  margin-top:2px;
}
body.login-page-v18 .login-v18-secondary-inline{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
body.login-page-v18 .secondary-access-link{
  height:44px;
  border-radius:16px;
  border:1px solid #d7e2f3;
  background:#fff;
  color:#214b8f;
  font-weight:800;
  cursor:pointer;
  padding:0 12px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
body.login-page-v18 .secondary-access-link:hover,
body.login-page-v18 .secondary-access-link.active{
  background:linear-gradient(135deg,#eff5ff 0%,#ffffff 100%);
  border-color:#93b5f1;
  box-shadow:0 10px 22px rgba(42,99,211,.10);
}
body.login-page-v18 .secondary-access-card.active{box-shadow:none;}
@media (max-width:1180px){
  body.login-page-v18 .login-v16-right{overflow:visible;}
}
@media (max-width:980px){
  body.login-page-v18 .login-v18-fields{grid-template-columns:1fr;}
  body.login-page-v18 .login-v18-secondary-inline{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:640px){
  body.login-page-v18 .login-v18-secondary-inline{grid-template-columns:1fr;}
}


/* ===== V19 secondary links bottom + no emoji ===== */
body.login-page-v18 .login-v18-form{height:100%;display:flex;flex-direction:column;gap:12px;}
body.login-page-v18 .login-v18-main-panel{margin-bottom:0;}
body.login-page-v18 .login-v18-secondary-links-panel{margin-top:auto;padding-top:2px;}
body.login-page-v18 .login-v18-secondary-inline{align-items:end;}
body.login-page-v18 .login-v16-role-card{grid-template-columns:1fr;justify-items:center;text-align:center;min-height:76px;padding:16px 12px;}
body.login-page-v18 .login-v16-role-copy.compact{justify-content:center;}
body.login-page-v18 .login-v16-role-copy.compact strong{font-size:1.1rem;}
@media (max-width:980px){body.login-page-v18 .login-v18-form{height:auto;}}

/* ===== V20 accueil proportions harmonisées ===== */
body.login-page-v18 .login-v16-card{
  width:min(1440px,100%);
  grid-template-columns:minmax(320px,39%) minmax(620px,61%);
}
body.login-page-v18 .login-v16-left{
  padding:24px 24px 18px;
}
body.login-page-v18 .login-v16-logo-box{
  width:min(100%,420px);
}
body.login-page-v18 .login-v16-brand-copy h1{
  font-size:clamp(3.2rem,4.6vw,4.6rem);
}
body.login-page-v18 .login-v16-links{
  gap:10px;
}
body.login-page-v18 .login-v16-link-card{
  min-height:90px;
}
body.login-page-v18 .login-v16-right{
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:18px 30px 16px;
  gap:10px;
}
body.login-page-v18 .login-v18-topbar,
body.login-page-v18 .login-v18-form{
  width:min(100%,900px);
}
body.login-page-v18 .login-v18-topbar{
  margin-bottom:0;
}
body.login-page-v18 .login-v18-form{
  flex:1;
  justify-content:flex-start;
  gap:10px;
}
body.login-page-v18 .login-v16-panel{
  padding:14px 18px;
  border-radius:22px;
}
body.login-page-v18 .login-v18-main-panel,
body.login-page-v18 .login-v18-login-panel{
  background:rgba(255,255,255,.92);
}
body.login-page-v18 .login-v16-section-head,
body.login-page-v18 .login-v18-login-head{
  margin-bottom:8px;
}
body.login-page-v18 .login-v18-role-grid{
  gap:14px;
}
body.login-page-v18 .login-v16-role-card{
  min-height:84px;
  border-radius:22px;
}
body.login-page-v18 .login-v16-role-copy.compact strong{
  font-size:1.16rem;
}
body.login-page-v18 .login-v18-fields{
  grid-template-columns:1.15fr .85fr 190px;
  gap:14px;
}
body.login-page-v18 .login-v18-secondary-links-panel{
  width:100%;
  padding-top:4px;
}
body.login-page-v18 .login-v18-secondary-inline{
  gap:12px;
}
body.login-page-v18 .secondary-access-link{
  height:46px;
  border-radius:18px;
  font-size:.98rem;
}
@media (min-width:1200px){
  body.login-page-v18 .login-v18-form{
    justify-content:space-between;
  }
}


/* ===== Page formation tuteur ===== */
.formation-dashboard {
  gap: 18px;
}

.formation-header {
  margin-bottom: 0;
}

.formation-panel {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.formation-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  flex-wrap: wrap;
}

.formation-download {
  white-space: nowrap;
  text-decoration: none;
}

.formation-flyer-wrap {
  background: linear-gradient(180deg, rgba(245,248,255,0.95), rgba(231,238,250,0.95));
  border: 1px solid rgba(44, 91, 193, 0.16);
  border-radius: 24px;
  padding: 18px;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  overflow: auto;
}

.formation-flyer-image {
  display: block;
  width: min(100%, 920px);
  height: auto;
  border-radius: 18px;
  box-shadow: 0 22px 50px rgba(18, 49, 107, 0.14);
  background: #ffffff;
}

@media (max-width: 900px) {
  .formation-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .formation-download {
    align-self: flex-start;
  }

  .formation-flyer-wrap {
    padding: 12px;
  }
}


/* === V22 Formateur : évaluation individuelle ou par classe === */
.eval-top-panel-formateur{display:grid;gap:12px}
.eval-top-grid-formateur{display:grid;grid-template-columns:220px minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:end}
.eval-mode-hint{margin:0;color:#58709b;font-size:14px;line-height:1.45}
.group-eval-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-radius:18px;background:#f7faff;border:1px solid #dbe5f4;color:#143b7a;font-size:14px}
.group-eval-meta strong{font-size:15px}
.group-eval-list{display:grid;gap:12px;max-height:46vh;overflow:auto;padding-right:4px}
.group-eval-row{display:grid;grid-template-columns:220px minmax(0,1fr);gap:14px;align-items:center;padding:14px 16px;border:1px solid #d8e2f3;border-radius:20px;background:#fff}
.group-eval-identity{display:grid;gap:4px}
.group-eval-identity strong{color:#143b7a;font-size:15px}
.group-eval-identity span{color:#6f81a4;font-size:13px}
.group-eval-controls{display:grid;grid-template-columns:220px minmax(0,1fr);gap:12px;align-items:center}
#groupEvalEditor .eval-guide-card{margin-bottom:4px}
@media (max-width:1180px){
  .eval-top-grid-formateur{grid-template-columns:1fr 1fr}
  .eval-top-grid-formateur .field-group:first-child{grid-column:1 / -1}
  .group-eval-row{grid-template-columns:1fr}
  .group-eval-controls{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .eval-top-grid-formateur,.group-eval-controls{grid-template-columns:1fr}
  .group-eval-meta{flex-direction:column;align-items:flex-start}
  .group-eval-list{max-height:none}
}


.eval-single-meta-grid{
  display:grid;
  grid-template-columns:minmax(180px,220px) 1fr;
  gap:18px;
  align-items:start;
}
.eval-single-meta-grid textarea{
  min-height:120px;
}
.history-entry-badges{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin:10px 0;
}
.score-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 12px;
  border-radius:999px;
  background:rgba(233,145,26,.12);
  color:#a65b00;
  font-weight:700;
  font-size:.92rem;
  border:1px solid rgba(233,145,26,.28);
}
.group-eval-controls{
  display:grid;
  grid-template-columns:minmax(150px,180px) minmax(110px,130px) 1fr;
  gap:12px;
}
.group-score-input{
  text-align:center;
}
@media (max-width: 900px){
  .eval-single-meta-grid,
  .group-eval-controls{
    grid-template-columns:1fr;
  }
}


/* V24 - repères chiffrés bilans formateur */
.bilan-notes-panel{margin:18px 0 22px}
.bilan-notes-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:8px}
.bilan-bloc-table-wrap{margin-top:14px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff}
.bilan-bloc-table-wrap .modern-table{margin:0}
.bilan-bloc-table-wrap .empty-state{text-align:center;padding:18px;color:var(--muted)}
.print-metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:12px}
.print-metrics-grid div{border:1px solid #dbe6f3;border-radius:16px;padding:12px 14px;background:#f9fbff}
.print-metrics-grid span{display:block;font-size:.82rem;color:#6b7f99;margin-bottom:6px}
.print-metrics-grid strong{color:var(--blue-dark);font-size:1rem}
.print-note-table .print-history-row{grid-template-columns:2fr 1fr 1fr 1fr 1fr}
@media (max-width:1100px){.bilan-notes-kpis,.print-metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:720px){.bilan-notes-kpis,.print-metrics-grid{grid-template-columns:1fr;}}


.nav-item-button{width:100%;border:0;background:transparent;cursor:pointer;text-align:left;font:inherit}
.apprentice-home-dashboard{display:flex;flex-direction:column;gap:18px}
.apprentice-home-header .header-text{max-width:760px}
.apprentice-hero-grid,.apprentice-home-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}
.apprentice-home-grid-bottom{grid-template-columns:1fr 1fr}
.apprentice-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:10px}
.status-chip{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.7);border:1px solid rgba(31,41,55,.08)}
.status-chip span{font-size:.78rem;color:#64748b;text-transform:uppercase;letter-spacing:.04em}
.status-chip strong{font-size:1rem;color:#0f172a}
.home-alert-list,.stack-list{display:flex;flex-direction:column;gap:12px}
.info-row{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:14px;border:1px solid rgba(15,23,42,.08);background:#fff}
.info-row-warning{background:rgba(245,158,11,.08);border-color:rgba(245,158,11,.28)}
.info-row-info{background:rgba(59,130,246,.07);border-color:rgba(59,130,246,.2)}
.quick-links-grid{display:grid;grid-template-columns:1fr;gap:12px}
.quick-link-card{display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:18px;border:1px solid rgba(15,23,42,.08);background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(248,250,252,.94));text-decoration:none;color:inherit;box-shadow:0 10px 30px rgba(15,23,42,.06)}
.quick-link-card strong{font-size:1rem}
.quick-link-card span{font-size:.92rem;color:#475569}
.quick-link-button{width:100%;border:0;text-align:left;cursor:pointer;font:inherit}
.stack-card{padding:14px 16px;border-radius:16px;border:1px solid rgba(15,23,42,.08);background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.05)}
.stack-card p{margin:.35rem 0 0;color:#475569;line-height:1.45}
.stack-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.stack-card-head span,.stack-card-meta{font-size:.82rem;color:#64748b}
.stack-card-accent{border-color:rgba(249,115,22,.22);background:rgba(255,247,237,.8)}
.quick-fact-callout{padding:12px 14px;border-radius:14px;background:rgba(59,130,246,.08);border:1px solid rgba(59,130,246,.18);color:#1e3a8a;font-size:.92rem;line-height:1.4}
@media (max-width: 1100px){
  .apprentice-hero-grid,.apprentice-home-grid,.apprentice-home-grid-bottom{grid-template-columns:1fr}
  .apprentice-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 720px){
  .apprentice-status-grid{grid-template-columns:1fr}
}

/* V30 apprenti */
.apprentice-links-grid{margin-top:1rem}
.external-links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.external-link-card{
  display:flex;flex-direction:column;gap:8px;padding:16px 18px;border:1px solid rgba(47,109,246,.18);
  border-radius:20px;background:rgba(47,109,246,.05);text-decoration:none;color:inherit;
  box-shadow:0 10px 22px rgba(12,25,55,.06);transition:transform .18s ease, box-shadow .18s ease,border-color .18s ease;
}
.external-link-card:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(12,25,55,.1);border-color:rgba(47,109,246,.35)}
.external-link-card strong{font-size:1.05rem;color:#173b78}
.external-link-card span{color:#50627f;line-height:1.5}
.apprentice-activity-card .dashboard{gap:18px}
.activity-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.activity-form-full{grid-column:1 / -1}
@media (max-width: 900px){.activity-form-grid{grid-template-columns:1fr}}
.quick-link-button{border:0;cursor:pointer;text-align:left;background:rgba(47,109,246,.05)}
.quick-link-button:hover{background:rgba(47,109,246,.09)}
.stack-card-accent{border-color:rgba(242,140,27,.28);background:rgba(242,140,27,.06)}
.medium-stat{font-size:1rem}
body[data-role="apprenti"] .progression-dashboard .header-actions{flex-wrap:wrap}

/* V30.1 activité entreprise layout fix */
.apprentice-activity-card{
  height:calc(100vh - 24px);
  min-height:0;
}
.apprentice-activity-dashboard{
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:20px;
  overflow:auto;
  padding-bottom:28px;
}
.apprentice-activity-form-panel{
  display:flex;
  flex-direction:column;
  gap:18px;
  overflow:visible;
}
.apprentice-activity-form-panel .panel-head,
.apprentice-activity-card .panel-head.compact-head{
  margin-bottom:0;
}
.activity-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  align-items:start;
}
.activity-form-grid .field-group{
  align-content:start;
}
.activity-form-grid .field-group,
.activity-form-grid .activity-form-full{
  min-width:0;
}
.activity-form-grid textarea,
.activity-form-grid input,
.activity-form-grid select{
  width:100%;
}
.activity-form-grid textarea{
  min-height:120px;
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px 16px;
  line-height:1.5;
  color:var(--text);
  background:#fff;
  resize:vertical;
  display:block;
}
#activityTask{min-height:140px;}
.activity-history-panel,
#activityHistory{
  min-height:0;
}
#activityHistory .stack-card{
  overflow:hidden;
}
@media (max-width: 900px){
  .apprentice-activity-card{height:auto;}
  .apprentice-activity-dashboard{overflow:visible;padding-bottom:20px;}
  .activity-form-grid{grid-template-columns:1fr;}
}


/* V30.2 activité entreprise full-page scroll + layout fix */
body.activity-page{overflow:auto;}
body.activity-page .activity-shell{
  height:auto;
  min-height:100vh;
  overflow:visible;
  display:block;
  padding:16px;
}
body.activity-page .apprentice-activity-card{
  height:auto !important;
  min-height:calc(100vh - 32px);
  overflow:visible;
  align-items:start;
}
body.activity-page .sidebar{
  position:sticky;
  top:16px;
  align-self:start;
  max-height:calc(100vh - 32px);
}
body.activity-page .apprentice-activity-dashboard{
  height:auto;
  min-height:100%;
  overflow:visible !important;
  display:flex;
  flex-direction:column;
  align-content:normal;
}
body.activity-page .apprentice-activity-form-panel,
body.activity-page .apprentice-activity-form-panel .panel-head,
body.activity-page .apprentice-activity-form-panel .save-row,
body.activity-page .panel{
  overflow:visible;
}
body.activity-page .activity-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  align-items:start;
}
body.activity-page .activity-form-grid > *{min-width:0;}
body.activity-page .activity-form-grid .field-group{
  display:flex;
  flex-direction:column;
  gap:10px;
}
body.activity-page .activity-form-grid input,
body.activity-page .activity-form-grid select,
body.activity-page .activity-form-grid textarea{
  width:100%;
  box-sizing:border-box;
  display:block;
}
body.activity-page .activity-form-grid textarea{
  position:relative;
  z-index:1;
  margin:0;
}
body.activity-page #activityHistory{
  display:grid;
  gap:14px;
}
@media (max-width: 1100px){
  body.activity-page .apprentice-activity-card{grid-template-columns:1fr;}
  body.activity-page .sidebar{position:relative;top:auto;max-height:none;}
}
@media (max-width: 900px){
  body.activity-page .activity-shell{padding:12px;}
  body.activity-page .activity-form-grid{grid-template-columns:1fr;}
}


.field-help{margin-top:8px;font-size:13px;line-height:1.45;color:#61769b}
.proof-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:12px}
.empty-proof-list{display:block;border:1px dashed rgba(44,88,170,.22);border-radius:16px;padding:14px 16px;background:rgba(255,255,255,.58)}
.proof-empty{font-size:14px;color:#6d7fa3}
.proof-chip{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:18px;background:#f8fbff;border:1px solid rgba(44,88,170,.14);box-shadow:0 8px 18px rgba(18,43,88,.05)}
.proof-chip-compact{background:#fff}
.proof-thumb{width:62px;height:62px;border-radius:14px;overflow:hidden;flex:0 0 62px;display:flex;align-items:center;justify-content:center;background:#eaf1ff;border:1px solid rgba(44,88,170,.12);text-decoration:none}
.proof-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.proof-file-icon{width:62px;height:62px;border-radius:14px;flex:0 0 62px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2f68df,#f09b2e);color:#fff;font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:8px;text-align:center}
.proof-chip-body{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}
.proof-chip-body strong{font-size:14px;line-height:1.35;color:#113b7a;word-break:break-word}
.proof-chip-body span{font-size:12px;color:#6a7ea3;word-break:break-word}
.proof-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:2px}
.proof-link,.proof-remove{font-size:12px;font-weight:700;border:none;background:none;padding:0;color:#2f68df;text-decoration:none;cursor:pointer}
.proof-remove{color:#d45b53}
.history-proof-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:12px}
@media (max-width: 900px){.proof-list,.history-proof-list{grid-template-columns:1fr}}


.stack-card-clickable{cursor:pointer;transition:transform .15s ease, box-shadow .15s ease}
.stack-card-clickable:hover{transform:translateY(-1px);box-shadow:0 10px 30px rgba(22,59,120,.08)}
.stack-card-actions{display:flex;justify-content:flex-end;margin-top:14px}
.small-btn{padding:10px 14px;border-radius:12px;font-size:14px}


/* V30.7 messages scroll fix */
.messages-window-body{overflow:auto !important; min-height:100vh;}
.messages-window-shell{height:auto !important; min-height:100vh; overflow:visible !important;}
.messages-window-card{height:auto !important; min-height:calc(100vh - 24px); overflow:visible;}
.messages-window-sidebar,.messages-window-main{overflow:visible;}
.messages-thread-list{max-height:none; min-height:420px;}
@media (max-width: 980px){
  .messages-window-card{min-height:auto;}
  .messages-thread-list{min-height:320px;}
}


/* V2.1 - cockpit apprenti */
.apprentice-home-card-v21{height:calc(100vh - 24px);min-height:0}
.apprentice-home-dashboard-v21{overflow:auto;padding-bottom:28px}
.apprentice-side-note-v21{background:linear-gradient(160deg,rgba(255,255,255,.12),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.14)}
.apprentice-command-board{display:grid;grid-template-columns:1fr;gap:18px}
.apprentice-command-hero{display:grid;grid-template-columns:1.25fr .75fr;gap:18px;align-items:stretch;overflow:hidden;background:linear-gradient(135deg,rgba(24,71,153,.96),rgba(31,95,184,.9) 55%,rgba(242,140,27,.82));color:#fff;border:0}
.command-hero-copy{display:flex;flex-direction:column;gap:14px;justify-content:center}
.command-hero-kicker{display:inline-flex;align-self:flex-start;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.14);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}
.apprentice-command-hero h3{margin:0;font-size:2rem;line-height:1.1;color:#fff}
.apprentice-command-hero p{margin:0;color:rgba(255,255,255,.92);line-height:1.55}
.command-hero-tags{display:flex;flex-wrap:wrap;gap:10px}
.hero-tag{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.18);font-size:.88rem}
.command-hero-side{display:flex;flex-direction:column;gap:14px;justify-content:center}
.readiness-ring-card{padding:18px;border-radius:22px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.15);backdrop-filter:blur(8px)}
.readiness-label{display:block;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.82);margin-bottom:14px}
.readiness-ring{--readiness:0%;width:132px;height:132px;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px;background:conic-gradient(#fff var(--readiness), rgba(255,255,255,.18) 0)}
.readiness-ring::before{content:'';grid-area:1/1;width:98px;height:98px;border-radius:50%;background:#174385;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.readiness-ring strong,.readiness-ring span{grid-area:1/1;z-index:1;color:#fff}
.readiness-ring strong{font-size:2rem;line-height:1}
.readiness-ring span{margin-top:42px;font-size:.95rem;color:rgba(255,255,255,.82)}
.readiness-ring.is-medium::before{background:#7a4911}
.readiness-ring.is-fragile::before{background:#7a2624}
.readiness-text{font-size:.93rem;color:rgba(255,255,255,.92);text-align:center;line-height:1.45}
.hero-cta-grid{display:grid;grid-template-columns:1fr;gap:10px}
.hero-cta-btn{justify-content:center;text-align:center}
.apprentice-home-kpis-v21{grid-template-columns:repeat(5,minmax(0,1fr))}
.apprentice-home-grid-v21{grid-template-columns:1fr 1fr}
.apprentice-actions-panel-v21 .quick-links-grid-v21{grid-template-columns:1fr 1fr}
.next-step-card{display:flex;flex-direction:column;gap:14px;padding:18px;border-radius:22px;background:linear-gradient(180deg,rgba(248,250,252,.98),rgba(255,247,237,.98));border:1px solid rgba(242,140,27,.18)}
.next-step-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.next-step-kicker{margin:0 0 6px;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:#9a3412}
.next-step-head h4{margin:0;font-size:1.2rem;color:#14243f}
.next-step-score{display:inline-flex;align-items:center;justify-content:center;min-width:88px;padding:10px 14px;border-radius:999px;font-weight:800;font-size:1rem;background:rgba(255,255,255,.9);border:1px solid rgba(15,23,42,.08)}
.next-step-score.is-strong{color:#166534;background:rgba(220,252,231,.9);border-color:rgba(34,197,94,.22)}
.next-step-score.is-medium{color:#9a3412;background:rgba(255,237,213,.95);border-color:rgba(249,115,22,.22)}
.next-step-score.is-fragile{color:#991b1b;background:rgba(254,226,226,.95);border-color:rgba(239,68,68,.18)}
.next-step-text{margin:0;color:#46556b;line-height:1.55}
.next-step-tags{display:flex;flex-wrap:wrap;gap:8px}
.next-step-tags span{display:inline-flex;padding:7px 11px;border-radius:999px;background:#fff;border:1px solid rgba(15,23,42,.08);font-size:.86rem;color:#334155}
.next-step-actions{display:flex;flex-wrap:wrap;gap:10px}
.stack-card-accent-blue{border-color:rgba(47,109,246,.2);background:rgba(47,109,246,.05)}
.stack-card-accent-red{border-color:rgba(239,68,68,.18);background:rgba(254,242,242,.96)}
.bloc-progress-list{gap:14px}
.bloc-progress-card{padding:16px;border-radius:18px;background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:0 8px 24px rgba(15,23,42,.05)}
.bloc-progress-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px;align-items:flex-start}
.bloc-progress-head strong{color:#0f172a}
.bloc-progress-head span{font-size:.92rem;color:#1d4ed8;font-weight:700}
.bloc-progress-bar{height:10px;border-radius:999px;background:#e9eef5;overflow:hidden;margin-bottom:10px}
.bloc-progress-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1d4ed8,#f28c1b)}
.bloc-progress-card p{margin:0;color:#5b6677;line-height:1.45}
@media (max-width:1280px){.apprentice-home-kpis-v21{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1100px){
  .apprentice-command-hero,.apprentice-home-grid-v21{grid-template-columns:1fr}
  .apprentice-actions-panel-v21 .quick-links-grid-v21{grid-template-columns:1fr}
}
@media (max-width:760px){
  .apprentice-home-kpis-v21{grid-template-columns:1fr 1fr}
  .apprentice-command-hero h3{font-size:1.6rem}
  .next-step-head,.bloc-progress-head{flex-direction:column}
}
@media (max-width:560px){
  .apprentice-home-kpis-v21{grid-template-columns:1fr}
  .next-step-actions{flex-direction:column}
}

/* ===== V2.2 messagerie premium + preuves avancées ===== */
.messages-window-card-v22{grid-template-columns:380px 1fr;}
.messages-window-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.messages-mini-stat{border:1px solid rgba(22,59,120,.08);border-radius:18px;padding:14px 16px;background:#fff;box-shadow:0 8px 18px rgba(21,44,91,.05)}
.messages-mini-stat span{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#6b7da2;font-weight:700;margin-bottom:6px}
.messages-mini-stat strong{font-size:20px;color:#173b78}
.messages-mini-stat.accent-warm{background:linear-gradient(135deg,rgba(242,181,95,.14),rgba(255,255,255,.96));}
.messages-thread-head-v22{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}
.messages-thread-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.messages-search-wrap{min-width:260px;flex:1}
.messages-filter-select{min-width:170px}
.messages-date-separator{display:flex;align-items:center;justify-content:center;margin:8px 0 2px}
.messages-date-separator span{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#5f7399;background:#edf4ff;border:1px solid rgba(44,88,170,.12);padding:7px 12px;border-radius:999px}
.message-bubble.is-mine{box-shadow:0 14px 28px rgba(15,23,42,.12)}
.message-card-footer{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.message-status-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:800;background:rgba(59,130,246,.14);color:#1e4d91}
.message-status-badge.is-read{background:rgba(34,197,94,.12);color:#1a7f42}
.messages-compose-hint{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-top:8px;font-size:12px;color:#667a9d}
.proofs-header-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}
.proof-dropzone{display:flex;gap:14px;align-items:center;border:1.5px dashed rgba(44,88,170,.28);border-radius:20px;padding:18px 18px;background:linear-gradient(135deg,rgba(237,244,255,.95),rgba(255,255,255,.95));cursor:pointer;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.proof-dropzone:hover,.proof-dropzone.is-dragover{border-color:#2f68df;transform:translateY(-1px);box-shadow:0 12px 28px rgba(18,43,88,.08)}
.proof-dropzone-icon{width:52px;height:52px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2f68df,#f09b2e);color:#fff;font-size:28px;font-weight:700;flex:0 0 52px}
.proof-dropzone strong{display:block;color:#173b78}
.proof-dropzone p{margin:4px 0 0;color:#6a7ea3}
.proof-toolbar,.proof-library-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.proof-toolbar{margin-top:12px}
.compact-input{min-height:44px;padding-top:10px;padding-bottom:10px}
.proof-chip-topline{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
.proof-type-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 9px;background:rgba(47,104,223,.12);color:#2557a0;font-size:11px;font-weight:800;white-space:nowrap}
.proof-thumb.proof-open,.proof-file-icon.proof-open,.proof-link.proof-open{border:none;cursor:pointer}
.proof-library-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.proof-library-card{border:1px solid rgba(44,88,170,.12);border-radius:20px;padding:14px;background:#fbfdff;box-shadow:0 10px 24px rgba(18,43,88,.05)}
.proof-library-top{display:flex;gap:12px;align-items:center;margin-bottom:10px}
.proof-library-preview{width:68px;height:68px;border-radius:16px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#eaf1ff;border:1px solid rgba(44,88,170,.12);padding:0;flex:0 0 68px}
.proof-library-preview img{width:100%;height:100%;object-fit:cover;display:block}
.proof-preview-modal-card{width:min(980px,96vw);max-height:min(90vh,900px);display:flex;flex-direction:column}
.proof-preview-body{padding:0 24px 24px;overflow:auto;display:flex;align-items:center;justify-content:center;min-height:320px}
.proof-preview-image{max-width:100%;max-height:65vh;border-radius:18px;box-shadow:0 18px 40px rgba(18,43,88,.12)}
.proof-preview-frame{width:100%;min-height:68vh;border:none;border-radius:18px;background:#f5f8ff}
.proof-preview-file{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;color:#50627f}
.proof-file-icon.large{width:96px;height:96px;border-radius:24px;font-size:18px}
.proof-preview-actions{padding:0 24px 24px;justify-content:flex-end}
@media (max-width: 1100px){.messages-window-card-v22{grid-template-columns:1fr}.messages-search-wrap{min-width:0;flex:1 1 100%}}
@media (max-width: 900px){.proof-library-grid{grid-template-columns:1fr}.proofs-header-row,.proof-toolbar,.proof-library-actions,.messages-compose-hint{flex-direction:column;align-items:stretch}.messages-thread-tools{width:100%}.messages-filter-select,.messages-search-wrap{width:100%;min-width:0}}

/* ===== V2.3 workflow preuves + validations ===== */
.linked-competence-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:12px}
.linked-competence-option{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;border:1px solid rgba(23,59,120,.12);border-radius:16px;background:#fff;cursor:pointer;box-shadow:0 8px 18px rgba(21,44,91,.05)}
.linked-competence-option strong{color:#173b78}.linked-competence-option span{font-weight:700;color:#223a5d}.linked-competence-option em{font-style:normal;font-size:12px;color:#6a7ea3}.linked-competence-option.active{background:linear-gradient(135deg,rgba(242,181,95,.18),rgba(237,244,255,.95));border-color:rgba(242,181,95,.45)}
.linked-competence-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.linked-competence-chip{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border-radius:999px;background:#edf4ff;color:#173b78;font-weight:700}.linked-competence-chip button{border:none;background:transparent;color:#173b78;cursor:pointer;font-weight:800}
.activity-workflow-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}.workflow-stat-card{border:1px solid rgba(23,59,120,.08);border-radius:20px;padding:18px;background:#fff;box-shadow:0 8px 18px rgba(21,44,91,.05)}.workflow-stat-card span{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#6a7ea3;font-weight:700;margin-bottom:6px}.workflow-stat-card strong{display:block;font-size:28px;color:#173b78}.workflow-stat-card p{margin:8px 0 0;color:#425b84}.workflow-stat-card.accent-warm{background:linear-gradient(135deg,rgba(242,181,95,.16),rgba(255,255,255,.96))}.workflow-stat-card.accent-green{background:linear-gradient(135deg,rgba(16,185,129,.14),rgba(255,255,255,.96))}
.activity-review-banner{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:16px;margin:12px 0;background:#edf4ff;border:1px solid rgba(44,88,170,.10)}.activity-review-banner strong{color:#173b78}.activity-review-banner span{color:#425b84}.activity-review-banner.tone-success{background:linear-gradient(135deg,rgba(16,185,129,.12),rgba(255,255,255,.95));border-color:rgba(16,185,129,.24)}.activity-review-banner.tone-warning{background:linear-gradient(135deg,rgba(242,181,95,.18),rgba(255,255,255,.95));border-color:rgba(242,181,95,.32)}
.stack-card-info{border-left:4px solid #2d69c4}.stack-card-warning{border-left:4px solid #f2b55f}.stack-card-success{border-left:4px solid #10b981}
.proof-review-panel .stack-card-actions{margin-top:12px}
@media (max-width:900px){.activity-workflow-grid{grid-template-columns:1fr}.linked-competence-picker{grid-template-columns:1fr}.activity-review-banner{flex-direction:column}}

.activity-top-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:20px;margin-bottom:20px}.activity-dossier-quality{display:grid;grid-template-columns:220px 1fr;gap:16px;align-items:stretch}.dossier-quality-badge{border-radius:24px;padding:18px 20px;color:#173b78;background:linear-gradient(180deg,#eef4ff,#ffffff);border:1px solid #d7e4f8;display:flex;flex-direction:column;justify-content:center;gap:6px}.dossier-quality-badge strong{font-size:34px;line-height:1}.dossier-quality-badge em{font-style:normal;font-weight:700}.dossier-quality-badge.tone-success{background:linear-gradient(180deg,#eef9f2,#ffffff)}.dossier-quality-badge.tone-warning{background:linear-gradient(180deg,#fff7ea,#ffffff)}.dossier-quality-badge.tone-danger{background:linear-gradient(180deg,#fff0f0,#ffffff)}.dossier-quality-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dossier-quality-meta article{border:1px solid #dce6f6;border-radius:18px;padding:14px;background:#fbfdff}.dossier-quality-meta span{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#6a82ab;font-weight:700}.dossier-quality-meta strong{display:block;margin-top:6px;font-size:22px;color:#173b78}.alert-card.tone-info,.alert-card.tone-neutral{border-left:4px solid #4b80d4}.alert-card.tone-warning{border-left:4px solid #f0b157}.alert-card.tone-success{border-left:4px solid #4fb37a}.alert-card.tone-danger{border-left:4px solid #d85b5b}.proof-review-line{margin-top:8px;padding:8px 10px;border-radius:12px;background:#f7faff;font-size:12px;color:#466595;display:flex;flex-direction:column;gap:4px}.proof-review-line strong{font-size:12px}.proof-review-line.tone-warning{background:#fff5e7;color:#9a6420}.proof-review-line.tone-success{background:#edf8f1;color:#2f7a52}.review-alert-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:16px}.review-stack-card{border:1px solid #dce6f6}.review-proof-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:14px 0}.review-proof-card{border:1px solid #dfe8f8;border-radius:16px;padding:12px;background:#fbfdff}.review-proof-card.tone-warning{background:#fff8ec}.review-proof-card.tone-success{background:#edf8f1}.review-proof-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.review-proof-head span{font-size:12px;font-weight:700;color:#5c77a8}.proof-library-card .stack-card-meta{margin-top:6px}.activity-review-banner{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.activity-review-banner span{flex:1;min-width:180px}.proof-chip-body .proof-actions{margin-top:8px}@media (max-width:900px){.activity-top-grid,.activity-dossier-quality{grid-template-columns:1fr}}


/* ===== V2.5 premium apprenti ===== */
.apprentice-premium-grid{align-items:stretch;}
.gamification-shell{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:18px;}
.gamification-main,.gamification-side{display:flex;flex-direction:column;gap:14px;}
.gamification-main{padding:18px;border-radius:22px;background:linear-gradient(135deg,rgba(242,140,27,.10),rgba(47,109,246,.08));border:1px solid rgba(47,109,246,.12);}
.gamification-level{display:flex;flex-direction:column;gap:4px;}
.gamification-kicker{font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:#6a7f9f;font-weight:700;}
.gamification-level strong{font-size:2.2rem;line-height:1;color:#173055;}
.gamification-progress p{margin:0;color:#48607f;}
.xp-track{height:12px;border-radius:999px;background:rgba(23,48,85,.08);overflow:hidden;margin-bottom:10px;}
.xp-track span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#f28c1b,#2f6df6);}
.metric-pill{padding:14px 16px;border-radius:18px;background:#fff;border:1px solid rgba(23,48,85,.08);box-shadow:0 10px 28px rgba(22,32,59,.06);display:flex;justify-content:space-between;align-items:center;gap:12px;}
.metric-pill span{color:#6a7f9f;font-size:.92rem;}
.metric-pill strong{color:#173055;font-size:1rem;}
.badge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;}
.badge-card{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:20px;border:1px solid rgba(23,48,85,.08);background:#f9fbff;}
.badge-card p{margin:.2rem 0 0;color:#5f7390;font-size:.92rem;}
.badge-card span{margin-left:auto;font-size:.82rem;font-weight:700;color:#5f7390;}
.badge-icon{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;font-size:1.35rem;background:rgba(242,140,27,.12);}
.badge-unlocked{background:linear-gradient(135deg,rgba(242,140,27,.12),rgba(47,109,246,.08));border-color:rgba(242,140,27,.28);}
.badge-unlocked .badge-icon{background:rgba(47,109,246,.12);}
.badge-locked{opacity:.78;filter:saturate(.72);}
.journal-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.journal-form-full{grid-column:1 / -1;}
.journal-meta-row{display:flex;flex-wrap:wrap;gap:8px;margin:.45rem 0 .7rem;}
.journal-card p{margin:.35rem 0;}
@media (max-width: 980px){.gamification-shell,.journal-form-grid{grid-template-columns:1fr;}}

/* ===== V3 apprenti premium ===== */
.cap-moment-panel{margin-bottom:18px}
.cap-moment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.cap-moment-card{border:1px solid #dbe6f7;border-radius:18px;padding:16px;background:#fff;box-shadow:0 10px 24px rgba(23,54,95,.05)}
.cap-moment-card strong{display:block;color:#163f7c;font-size:1.2rem;margin:6px 0}
.cap-kicker{display:block;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:#6d82a8;font-weight:800}
.cap-highlight{background:linear-gradient(135deg,rgba(24,73,145,.08),rgba(242,181,95,.16))}
.stack-list-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.apprentice-guided-card small{display:block;color:#58709b;margin-top:4px}
.eval-check-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.check-card{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;border:1px solid #dbe6f7;background:#f8fbff;color:#173b78;font-weight:700}
.draft-state-label{display:inline-flex;align-items:center;gap:8px;font-size:.9rem;color:#667a9d}
.draft-state-label.pending{color:#9a6200;font-weight:700}
.draft-state-label.saved{color:#13795b;font-weight:700}
.history-mini-row{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 0}
.history-mini-chip{display:inline-flex;padding:6px 10px;border-radius:999px;background:#eef4ff;color:#1c4f97;font-size:.78rem;font-weight:700}
.proof-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
.proof-meta-grid label{display:grid;gap:6px;color:#54709b;font-size:.86rem}
.proof-meta-full{grid-column:1/-1}
.proof-meta-textarea{width:100%;border:1px solid #d6e2f5;border-radius:12px;padding:10px 12px;font:inherit;resize:vertical;min-height:76px}
.proof-group-block{margin-bottom:18px}
.proof-group-block h4{margin:0 0 10px;color:#173b78}
.proof-timeline-list{margin-top:18px}
@media (max-width: 980px){
  .cap-moment-grid,.stack-list-3,.eval-check-grid,.proof-meta-grid{grid-template-columns:1fr}
}
@media (max-width: 720px){
  .hero-cta-grid,.modal-actions{width:100%}
  .hero-cta-btn,.modal-actions .primary-btn,.modal-actions .secondary-btn{min-height:46px}
  .proof-dropzone{padding:18px}
}

/* === V3.1 PREMIUM TUTEUR + FORMATEUR === */
.role-premium-grid{
  display:grid;
  grid-template-columns:1.4fr .9fr;
  gap:18px;
  margin:0 0 18px;
}
.formateur-bottom-grid{ grid-template-columns:1.2fr .9fr; }
.premium-kpi-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-bottom:14px;
}
.premium-kpi-card{
  border-radius:18px;
  padding:14px 15px;
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,249,252,.98));
  border:1px solid rgba(21,63,117,.08);
  box-shadow:0 10px 24px rgba(16,24,40,.06);
  display:flex;
  flex-direction:column;
  gap:6px;
}
.premium-kpi-card.tone-danger{ border-color:rgba(201,73,73,.22); }
.premium-kpi-card.tone-warning{ border-color:rgba(214,145,36,.26); }
.premium-kpi-card.tone-success{ border-color:rgba(40,145,92,.20); }
.premium-kpi-card.tone-info{ border-color:rgba(34,106,196,.18); }
.premium-kpi-label{ font-size:.82rem; color:#516173; }
.premium-kpi-value{ font-size:1.55rem; color:#143f75; line-height:1.1; }
.premium-kpi-meta{ color:#6a7684; }
.priority-list,.action-plan-list,.premium-analytics-panel,.premium-insight-panel{ display:flex; flex-direction:column; gap:12px; }
.priority-card, .insight-callout{
  border-radius:18px;
  padding:14px 15px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(21,63,117,.08);
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.priority-card p,.insight-callout p{ margin:6px 0 0; color:#556171; }
.priority-card.tone-danger,.insight-callout.tone-danger{ background:linear-gradient(180deg, rgba(255,239,239,.95), rgba(255,249,249,.98)); }
.priority-card.tone-warning,.insight-callout.tone-warning{ background:linear-gradient(180deg, rgba(255,247,228,.96), rgba(255,251,241,.98)); }
.priority-card.tone-success,.insight-callout.tone-success{ background:linear-gradient(180deg, rgba(236,252,242,.96), rgba(249,255,251,.98)); }
.priority-card.tone-info,.insight-callout.tone-info{ background:linear-gradient(180deg, rgba(236,245,255,.96), rgba(249,252,255,.98)); }
.mini-link{ white-space:nowrap; font-weight:700; color:#143f75; text-decoration:none; }
.insight-top{ display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.insight-top strong{ font-size:1.02rem; color:#143f75; }
.insight-top span{ color:#657284; font-size:.92rem; }
.insight-meta-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.insight-meta-grid span{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:10px 12px;
  border-radius:14px;
  background:rgba(247,249,252,.95);
  color:#5b6775;
}
.insight-meta-grid strong{ color:#143f75; font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; }
.premium-progress{ height:12px; background:rgba(20,63,117,.09); border-radius:999px; overflow:hidden; }
.premium-progress span{ display:block; height:100%; border-radius:999px; background:linear-gradient(90deg, #f59f2f, #f6b756 45%, #143f75); }
.insight-mini-list{ display:flex; flex-direction:column; gap:8px; }
.mini-line{ display:flex; justify-content:space-between; gap:12px; padding:10px 12px; border-radius:14px; background:rgba(247,249,252,.95); color:#546174; }
.trip-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.trip-chip{ border-radius:16px; padding:12px; background:rgba(247,249,252,.95); border:1px solid rgba(21,63,117,.08); display:flex; flex-direction:column; gap:6px; }
.trip-chip span{ color:#6a7684; font-size:.8rem; text-transform:uppercase; letter-spacing:.04em; }
.trip-chip strong{ color:#143f75; }
.analytics-table{ display:flex; flex-direction:column; gap:10px; }
.analytics-row{ display:flex; justify-content:space-between; gap:14px; align-items:center; padding:12px 14px; border-radius:16px; background:rgba(247,249,252,.95); border:1px solid rgba(21,63,117,.08); }
.analytics-row strong{ color:#143f75; display:block; }
.analytics-row span{ color:#6a7684; font-size:.92rem; }
.analytics-metrics{ display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.metric{ border-radius:999px; padding:6px 10px; font-size:.78rem; font-weight:700; }
.metric.danger{ background:rgba(201,73,73,.12); color:#9f2f2f; }
.metric.info{ background:rgba(34,106,196,.12); color:#1c57a5; }
.action-plan-item{ display:grid; grid-template-columns:16px 1fr; gap:8px; padding:12px 0; border-bottom:1px dashed rgba(21,63,117,.12); }
.action-plan-item:last-child{ border-bottom:none; }
.action-plan-item span{ color:#f59f2f; font-weight:800; }
.action-plan-item p{ margin:0; color:#556171; }
@media (max-width: 1100px){
  .role-premium-grid,.formateur-bottom-grid{ grid-template-columns:1fr; }
  .premium-kpi-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px){
  .premium-kpi-grid,.trip-grid,.insight-meta-grid{ grid-template-columns:1fr; }
  .priority-card,.insight-top,.analytics-row{ flex-direction:column; align-items:flex-start; }
  .analytics-metrics{ justify-content:flex-start; }
}

/* === V3.1.1 FIX SCROLL + CHEVAUCHEMENTS TUTEUR/FORMATEUR === */
body[data-role="tuteur"],
body[data-role="formateur"]{
  overflow:auto !important;
  height:auto !important;
  min-height:100vh !important;
}
body[data-role="tuteur"] .shell,
body[data-role="formateur"] .shell{
  height:auto !important;
  min-height:100vh !important;
  overflow:visible !important;
  display:block !important;
  padding:16px !important;
}
body[data-role="tuteur"] .role-eval-card,
body[data-role="formateur"] .role-eval-card{
  height:auto !important;
  min-height:calc(100vh - 32px) !important;
  overflow:visible !important;
  align-items:start;
}
body[data-role="tuteur"] .role-eval-card .sidebar,
body[data-role="formateur"] .role-eval-card .sidebar,
body[data-role="tuteur"] .role-eval-card .dashboard,
body[data-role="formateur"] .role-eval-card .dashboard{
  height:auto !important;
  min-height:0 !important;
  overflow:visible !important;
}
body[data-role="tuteur"] .tutor-dashboard-v12,
body[data-role="formateur"] .tutor-dashboard-v12{
  height:auto !important;
  min-height:0 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:18px !important;
  overflow:visible !important;
}
body[data-role="tuteur"] .role-premium-grid,
body[data-role="formateur"] .role-premium-grid,
body[data-role="formateur"] .formateur-bottom-grid{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(320px,.9fr);
  align-items:start;
  gap:18px;
}
body[data-role="tuteur"] .premium-summary-panel,
body[data-role="tuteur"] .premium-side-panel,
body[data-role="formateur"] .premium-summary-panel,
body[data-role="formateur"] .premium-side-panel,
body[data-role="formateur"] .premium-wide-panel{
  min-width:0;
  overflow:hidden;
}
body[data-role="tuteur"] .premium-kpi-grid,
body[data-role="formateur"] .premium-kpi-grid{
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
}
body[data-role="tuteur"] .eval-top-panel,
body[data-role="formateur"] .eval-top-panel,
body[data-role="tuteur"] .proof-review-panel,
body[data-role="formateur"] .proof-review-panel{
  overflow:visible !important;
}
body[data-role="tuteur"] .proof-review-panel .stack-list,
body[data-role="formateur"] .proof-review-panel .stack-list{
  display:flex;
  flex-direction:column;
  gap:12px;
}
body[data-role="tuteur"] .eval-layout,
body[data-role="formateur"] .eval-layout{
  display:grid !important;
  grid-template-columns:minmax(320px,370px) minmax(0,1fr) !important;
  align-items:start !important;
  height:auto !important;
  min-height:0 !important;
  overflow:visible !important;
}
body[data-role="tuteur"] .eval-left-panel,
body[data-role="tuteur"] .eval-right-panel,
body[data-role="formateur"] .eval-left-panel,
body[data-role="formateur"] .eval-right-panel{
  height:auto !important;
  min-height:0 !important;
  overflow:hidden;
}
body[data-role="tuteur"] .eval-competence-list,
body[data-role="formateur"] .eval-competence-list{
  max-height:720px;
  overflow:auto !important;
}
body[data-role="tuteur"] #focusContent:not(.auth-hidden),
body[data-role="formateur"] #focusContent:not(.auth-hidden){
  display:flex !important;
  flex-direction:column !important;
  gap:0;
  height:auto !important;
  min-height:0 !important;
}
body[data-role="tuteur"] .eval-history-wrap,
body[data-role="formateur"] .eval-history-wrap{
  max-height:720px;
  overflow:auto !important;
}
body[data-role="formateur"] .group-eval-list{
  max-height:60vh;
  overflow:auto !important;
}
body[data-role="tuteur"] .sidebar,
body[data-role="formateur"] .sidebar{
  position:sticky;
  top:16px;
}
@media (max-width: 1200px){
  body[data-role="tuteur"] .role-premium-grid,
  body[data-role="formateur"] .role-premium-grid,
  body[data-role="formateur"] .formateur-bottom-grid{
    grid-template-columns:1fr;
  }
  body[data-role="tuteur"] .eval-layout,
  body[data-role="formateur"] .eval-layout{
    grid-template-columns:330px minmax(0,1fr) !important;
  }
}
@media (max-width: 980px){
  body[data-role="tuteur"] .role-eval-card,
  body[data-role="formateur"] .role-eval-card{
    grid-template-columns:1fr !important;
    min-height:auto !important;
  }
  body[data-role="tuteur"] .sidebar,
  body[data-role="formateur"] .sidebar{
    position:relative;
    top:auto;
  }
  body[data-role="tuteur"] .eval-layout,
  body[data-role="formateur"] .eval-layout{
    grid-template-columns:1fr !important;
  }
  body[data-role="tuteur"] .eval-competence-list,
  body[data-role="formateur"] .eval-competence-list,
  body[data-role="tuteur"] .eval-history-wrap,
  body[data-role="formateur"] .eval-history-wrap,
  body[data-role="formateur"] .group-eval-list{
    max-height:none;
  }
}

/* === V3.1.2 POLISH VISUEL TUTEUR / FORMATEUR === */
body[data-role="tuteur"],
body[data-role="formateur"]{
  background:
    radial-gradient(circle at top right, rgba(245,159,47,.08), transparent 28%),
    linear-gradient(180deg, #f4f7fb 0%, #eef3f9 100%);
}
body[data-role="tuteur"] .shell,
body[data-role="formateur"] .shell{
  max-width: 1680px;
  margin: 0 auto;
}
body[data-role="tuteur"] .role-eval-card,
body[data-role="formateur"] .role-eval-card{
  gap: 20px !important;
}
body[data-role="tuteur"] .sidebar,
body[data-role="formateur"] .sidebar{
  border-radius: 28px;
  box-shadow: 0 18px 42px rgba(20,63,117,.10);
}
body[data-role="tuteur"] .tutor-dashboard-v12,
body[data-role="formateur"] .tutor-dashboard-v12{
  gap: 20px !important;
}
body[data-role="tuteur"] .dashboard-header,
body[data-role="formateur"] .dashboard-header{
  padding: 26px 28px 18px;
  border-radius: 26px;
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(247,250,255,.98));
  border: 1px solid rgba(20,63,117,.08);
  box-shadow: 0 12px 30px rgba(20,63,117,.06);
}
body[data-role="tuteur"] .dashboard-header h2,
body[data-role="formateur"] .dashboard-header h2{
  margin-bottom: 6px;
}
body[data-role="tuteur"] .role-eval-card .panel,
body[data-role="formateur"] .role-eval-card .panel{
  border-radius: 24px;
  padding: 22px;
  border: 1px solid rgba(20,63,117,.08);
  box-shadow: 0 12px 28px rgba(20,63,117,.06);
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(249,251,255,.98));
}
body[data-role="tuteur"] .role-eval-card .panel h3,
body[data-role="formateur"] .role-eval-card .panel h3{
  line-height: 1.2;
}
body[data-role="tuteur"] .compact-head,
body[data-role="formateur"] .compact-head{
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(20,63,117,.08);
}
body[data-role="tuteur"] .panel-subtext,
body[data-role="formateur"] .panel-subtext{
  max-width: 70ch;
  line-height: 1.55;
}
body[data-role="tuteur"] .role-premium-grid,
body[data-role="formateur"] .role-premium-grid,
body[data-role="formateur"] .formateur-bottom-grid{
  gap: 20px !important;
}
body[data-role="tuteur"] .premium-summary-panel,
body[data-role="formateur"] .premium-summary-panel{
  min-height: 100%;
}
body[data-role="tuteur"] .premium-side-panel,
body[data-role="formateur"] .premium-side-panel{
  min-height: 100%;
}
body[data-role="tuteur"] .premium-kpi-grid,
body[data-role="formateur"] .premium-kpi-grid{
  gap: 14px;
  margin-bottom: 14px;
}
body[data-role="tuteur"] .premium-kpi-card,
body[data-role="formateur"] .premium-kpi-card{
  min-height: 116px;
  padding: 16px 16px 15px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.45);
}
body[data-role="tuteur"] .premium-kpi-value,
body[data-role="formateur"] .premium-kpi-value{
  font-size: clamp(1.35rem, 2vw, 1.7rem);
}
body[data-role="tuteur"] .priority-list,
body[data-role="formateur"] .priority-list,
body[data-role="formateur"] .action-plan-list,
body[data-role="tuteur"] .premium-insight-panel,
body[data-role="formateur"] .premium-insight-panel,
body[data-role="formateur"] .premium-analytics-panel{
  gap: 12px;
}
body[data-role="tuteur"] .priority-card,
body[data-role="formateur"] .priority-card,
body[data-role="tuteur"] .insight-callout,
body[data-role="formateur"] .insight-callout,
body[data-role="formateur"] .analytics-row{
  border-radius: 18px;
  padding: 15px 16px;
}
body[data-role="formateur"] .premium-wide-panel{
  min-height: 100%;
}
body[data-role="tuteur"] .eval-top-panel,
body[data-role="formateur"] .eval-top-panel{
  position: relative;
  z-index: 1;
}
body[data-role="tuteur"] .eval-top-panel .field-group,
body[data-role="formateur"] .eval-top-panel .field-group{
  margin-bottom: 0;
}
body[data-role="formateur"] .eval-top-grid-formateur{
  grid-template-columns: minmax(220px,240px) minmax(0,1fr) minmax(240px,320px);
  gap: 16px;
}
body[data-role="formateur"] .eval-mode-hint{
  padding-top: 2px;
}
body[data-role="tuteur"] .proof-review-panel .stack-list,
body[data-role="formateur"] .proof-review-panel .stack-list{
  gap: 14px;
}
body[data-role="tuteur"] .proof-review-panel .queue-card,
body[data-role="formateur"] .proof-review-panel .queue-card,
body[data-role="tuteur"] .proof-review-panel .proof-review-item,
body[data-role="formateur"] .proof-review-panel .proof-review-item{
  border-radius: 18px;
}
body[data-role="tuteur"] .eval-layout,
body[data-role="formateur"] .eval-layout{
  gap: 20px !important;
  grid-template-columns: minmax(320px,380px) minmax(0,1fr) !important;
}
body[data-role="tuteur"] .eval-left-panel,
body[data-role="formateur"] .eval-left-panel{
  position: relative;
}
body[data-role="tuteur"] .eval-right-panel,
body[data-role="formateur"] .eval-right-panel{
  min-width: 0;
}
body[data-role="tuteur"] .eval-panel-lead,
body[data-role="formateur"] .eval-panel-lead{
  margin-bottom: 16px;
  line-height: 1.5;
}
body[data-role="tuteur"] .eval-counter,
body[data-role="formateur"] .eval-counter{
  margin: 0 0 12px;
}
body[data-role="tuteur"] .eval-competence-list,
body[data-role="formateur"] .eval-competence-list{
  padding-right: 6px;
  max-height: 760px;
}
body[data-role="tuteur"] .eval-competence-list > * + *,
body[data-role="formateur"] .eval-competence-list > * + *{
  margin-top: 10px;
}
body[data-role="tuteur"] .eval-focus-card,
body[data-role="formateur"] .eval-focus-card{
  border-radius: 20px;
  padding: 18px 18px 16px;
}
body[data-role="tuteur"] .eval-right-top,
body[data-role="formateur"] .eval-right-top{
  gap: 16px;
  margin-bottom: 18px;
}
body[data-role="tuteur"] .eval-action-btn,
body[data-role="formateur"] .eval-action-btn{
  align-self: stretch;
  min-height: 60px;
  border-radius: 18px;
}
body[data-role="tuteur"] .eval-history-head,
body[data-role="formateur"] .eval-history-head{
  margin-bottom: 14px;
}
body[data-role="tuteur"] .eval-history-wrap,
body[data-role="formateur"] .eval-history-wrap{
  max-height: 760px;
  padding-right: 6px;
}
body[data-role="formateur"] .group-eval-list{
  max-height: 64vh;
}
body[data-role="formateur"] .group-eval-row{
  border-radius: 18px;
}
body[data-role="formateur"] .group-eval-controls{
  gap: 14px;
}
body[data-role="tuteur"] .modal-card,
body[data-role="formateur"] .modal-card{
  max-width: min(980px, calc(100vw - 32px));
}
body[data-role="tuteur"] .eval-modal-body,
body[data-role="formateur"] .eval-modal-body{
  gap: 18px;
}
body[data-role="tuteur"] .save-row,
body[data-role="formateur"] .save-row{
  padding-top: 12px;
  border-top: 1px solid rgba(20,63,117,.08);
}
@media (max-width: 1400px){
  body[data-role="formateur"] .eval-top-grid-formateur{
    grid-template-columns: minmax(200px,220px) minmax(0,1fr) minmax(220px,280px);
  }
}
@media (max-width: 1200px){
  body[data-role="tuteur"] .shell,
  body[data-role="formateur"] .shell{
    max-width: 100%;
  }
  body[data-role="tuteur"] .dashboard-header,
  body[data-role="formateur"] .dashboard-header,
  body[data-role="tuteur"] .role-eval-card .panel,
  body[data-role="formateur"] .role-eval-card .panel{
    padding: 20px;
  }
}
@media (max-width: 980px){
  body[data-role="tuteur"] .shell,
  body[data-role="formateur"] .shell{
    padding: 12px !important;
  }
  body[data-role="tuteur"] .role-eval-card,
  body[data-role="formateur"] .role-eval-card{
    gap: 14px !important;
  }
  body[data-role="tuteur"] .dashboard-header,
  body[data-role="formateur"] .dashboard-header,
  body[data-role="tuteur"] .role-eval-card .panel,
  body[data-role="formateur"] .role-eval-card .panel{
    padding: 18px;
    border-radius: 22px;
  }
  body[data-role="tuteur"] .sidebar,
  body[data-role="formateur"] .sidebar{
    border-radius: 24px;
  }
}
@media (max-width: 760px){
  body[data-role="tuteur"] .shell,
  body[data-role="formateur"] .shell{
    padding: 10px !important;
  }
  body[data-role="tuteur"] .dashboard-header,
  body[data-role="formateur"] .dashboard-header,
  body[data-role="tuteur"] .role-eval-card .panel,
  body[data-role="formateur"] .role-eval-card .panel{
    padding: 16px;
    border-radius: 20px;
  }
  body[data-role="tuteur"] .premium-kpi-card,
  body[data-role="formateur"] .premium-kpi-card{
    min-height: 0;
  }
  body[data-role="tuteur"] .eval-right-top,
  body[data-role="formateur"] .eval-right-top{
    flex-direction: column;
  }
  body[data-role="tuteur"] .eval-action-btn,
  body[data-role="formateur"] .eval-action-btn{
    width: 100%;
  }
  body[data-role="tuteur"] .compact-head,
  body[data-role="formateur"] .compact-head{
    margin-bottom: 12px;
    padding-bottom: 12px;
  }
}


/* ===== V3.1.3 apprenti finalisation ===== */
.save-reassurance-bar{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #dbe6f7;border-radius:14px;background:#f8fbff;color:#58709b;margin-bottom:12px;flex-wrap:wrap}
.save-signal{font-size:1rem;line-height:1;color:#7f91b0}.save-signal.pending{color:#b97707}.save-signal.saved{color:#15803d}
.save-help,.field-tip{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#e8f0ff;color:#1d4f97;font-size:.72rem;font-weight:800;cursor:help}
.guide-mini-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.guide-pill{display:inline-flex;padding:6px 10px;border-radius:999px;background:#eef4ff;color:#1c4f97;font-size:.78rem;font-weight:700}
.review-request-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:-2px;margin-bottom:2px}.request-action-btn{flex:1 1 240px}
.review-request-status{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.request-status-chip{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;font-size:.8rem;font-weight:700;background:#eef4ff;color:#1c4f97}.request-status-chip.pending{background:#fff5e8;color:#9a6200}.request-status-chip.done{background:#edf8f1;color:#216a46}.request-status-chip.neutral{background:#f3f6fb;color:#62789f}
.proof-chip-mini{background:#eef7ff;color:#20508f}.save-row-status{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0;flex:1}.gamification-mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:4px}.bloc-progress-card.is-solid{border-color:rgba(44,140,90,.28);box-shadow:0 12px 28px rgba(44,140,90,.08)}
@media (max-width:760px){.save-row-mobile-sticky{position:sticky;bottom:0;padding-top:12px;background:linear-gradient(180deg,rgba(255,255,255,.85),#fff 30%);z-index:3}.review-request-actions .request-action-btn{width:100%}.modal-actions{position:sticky;bottom:0;background:#fff;padding-top:8px}.eval-modal-card{max-height:92vh;overflow:auto}.quick-link-card,.hero-cta-btn,.nav-item-button{min-height:52px}.gamification-mini-grid{grid-template-columns:1fr}}

/* ===== V3.1.3b apprenti dashboard overlap + scroll fix ===== */
body[data-role="apprenti"]{
  overflow:auto;
}
body[data-role="apprenti"] .shell{
  min-height:100vh;
  height:auto;
  overflow:visible;
  align-items:stretch;
}
body[data-role="apprenti"] .role-eval-card.apprentice-home-card-v21{
  height:auto !important;
  min-height:calc(100vh - 32px);
  overflow:visible;
  align-items:stretch;
}
body[data-role="apprenti"] .role-eval-card.apprentice-home-card-v21 > .sidebar,
body[data-role="apprenti"] .role-eval-card.apprentice-home-card-v21 > .dashboard{
  height:auto !important;
  min-height:100%;
}
body[data-role="apprenti"] .apprentice-home-dashboard-v21{
  height:auto !important;
  min-height:100%;
  overflow:visible !important;
  padding-bottom:40px;
  align-content:start;
}
body[data-role="apprenti"] .apprentice-command-board,
body[data-role="apprenti"] .cap-moment-panel,
body[data-role="apprenti"] .apprentice-home-grid,
body[data-role="apprenti"] .stats-grid{
  min-width:0;
}
body[data-role="apprenti"] .apprentice-home-grid,
body[data-role="apprenti"] .apprentice-premium-grid,
body[data-role="apprenti"] .apprentice-home-grid-bottom,
body[data-role="apprenti"] .cap-moment-grid,
body[data-role="apprenti"] .stack-list-3,
body[data-role="apprenti"] .apprentice-home-kpis-v21{
  align-items:start;
}
body[data-role="apprenti"] .panel,
body[data-role="apprenti"] .stat-card,
body[data-role="apprenti"] .cap-moment-card,
body[data-role="apprenti"] .quick-link-card,
body[data-role="apprenti"] .stack-card,
body[data-role="apprenti"] .badge-card,
body[data-role="apprenti"] .bloc-progress-card{
  min-width:0;
  height:auto;
}
body[data-role="apprenti"] .gamification-shell,
body[data-role="apprenti"] .badge-grid,
body[data-role="apprenti"] .proof-list,
body[data-role="apprenti"] .history-proof-list{
  min-width:0;
}
body[data-role="apprenti"] .apprentice-command-hero{
  overflow:visible;
}
body[data-role="apprenti"] .readiness-ring-card,
body[data-role="apprenti"] .next-step-card{
  min-width:0;
}
@media (max-width: 1280px){
  body[data-role="apprenti"] .role-eval-card.apprentice-home-card-v21{
    min-height:auto;
  }
}
@media (max-width: 1100px){
  body[data-role="apprenti"] .role-eval-card.apprentice-home-card-v21{
    grid-template-columns:1fr;
  }
  body[data-role="apprenti"] .role-eval-card.apprentice-home-card-v21 > .sidebar{
    position:relative;
    top:auto;
    max-height:none;
  }
}
@media (max-width: 760px){
  body[data-role="apprenti"] .apprentice-home-dashboard-v21{
    padding-bottom:24px;
  }
}

/* --- V3.4 tutor premium differentiation --- */
body[data-role="tuteur"] .tutor-premium-main-grid{display:grid;grid-template-columns:minmax(340px,1.05fr) minmax(0,1.4fr);gap:18px;align-items:start;margin-bottom:18px}
body[data-role="tuteur"] .tutor-quick-eval-panel,body[data-role="tuteur"] .tutor-proof-panel{height:auto;overflow:visible}
.tutor-flash-card{display:grid;gap:8px;padding:14px 16px;border-radius:18px;border:1px solid #dde6f4;background:linear-gradient(180deg,#fffdf9 0%,#f8fbff 100%);margin-bottom:14px}
.flash-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.flash-head strong{color:var(--blue-dark)}.flash-head span{font-size:.8rem;color:#7b90af;font-weight:700}
.flash-meta{display:flex;flex-wrap:wrap;gap:10px;color:#627b9f;font-size:.9rem}.flash-hint{margin:0;color:#607898;font-size:.92rem}
.tutor-quick-grid{display:grid;grid-template-columns:1fr;gap:12px}.compact-field label{margin-bottom:6px}.tutor-mobile-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.file-label-inline{cursor:pointer}.quick-attachment-state{margin-top:10px;color:#6982a5;font-size:.9rem}
.tutor-status-legend{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 14px}.tutor-status-legend .legend-chip,.multi-status-actions .secondary-btn{border-radius:999px}
.legend-chip{display:inline-flex;align-items:center;padding:6px 10px;font-size:.78rem;font-weight:800;border:1px solid #d8e3f3;background:#fff;color:#5d7597}
.legend-chip.vu{background:#f5f7fb}.legend-chip.a-completer{background:#fff4e8;color:#b66800}.legend-chip.recevable{background:#eef7ff;color:#195ea8}.legend-chip.valide{background:#ecfbf1;color:#1c7d48}.legend-chip.remarquable{background:#fff4f1;color:#b65228}
.multi-status-actions{display:flex;flex-wrap:wrap;gap:8px}.multi-status-actions .secondary-btn.small-btn{padding:8px 10px;font-size:.78rem}
.tutor-training-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.tutor-training-card h3{margin-top:0}.training-list{margin:0;padding-left:18px;display:grid;gap:8px;color:#567091}
@media (max-width:1100px){body[data-role="tuteur"] .tutor-premium-main-grid{grid-template-columns:1fr}.tutor-training-grid{grid-template-columns:1fr}}
@media (max-width:720px){.tutor-mobile-actions{position:sticky;bottom:10px;background:rgba(255,255,255,.95);padding:10px;border:1px solid #dce6f4;border-radius:16px;backdrop-filter:blur(10px)}.multi-status-actions .secondary-btn.small-btn{flex:1 1 calc(50% - 8px)}.flash-head,.flash-meta{flex-direction:column;align-items:flex-start}}


/* V35 formateur premium */
.trip-status-row{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.metric.success{ background:rgba(28,162,93,.12); color:#117245; }
.metric.warning{ background:rgba(240,156,28,.14); color:#9a5c00; }
.metric.danger{ background:rgba(213,56,56,.12); color:#9f1f1f; }
.metric.info{ background:rgba(35,107,197,.12); color:#205d9e; }
.analytics-section{ display:flex; flex-direction:column; gap:10px; margin-bottom:10px; }
.analytics-section h4, .saved-action-strip h4{ margin:0; font-size:0.98rem; color:#233245; }
.action-plan-card{ border:1px solid rgba(242,133,0,.18); background:linear-gradient(180deg,#fffdf9,#fff); border-radius:18px; padding:14px; display:flex; flex-direction:column; gap:10px; }
.action-plan-card p{ margin:4px 0 0; color:#556171; }
.action-plan-controls{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.compact-input{ min-width:160px; max-width:190px; }
.saved-action-strip{ margin-top:8px; padding-top:10px; border-top:1px dashed rgba(34,51,69,.14); display:flex; flex-direction:column; gap:8px; }
@media (max-width: 900px){ .action-plan-controls{ flex-direction:column; align-items:stretch; } .compact-input{ max-width:none; width:100%; } }


/* V36 harmonisation des 3 espaces */
.unified-pilot-panel{margin-bottom:18px; overflow:visible;}
.unified-pilot-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; align-items:start;}
.unified-pilot-block{display:flex; flex-direction:column; gap:10px; min-width:0;}
.unified-pilot-label{font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; color:#6b7280; font-weight:700;}
.unified-status-card,.unified-mini-card{border:1px solid rgba(15,23,42,.08); border-radius:18px; padding:14px 15px; background:#fff; box-shadow:0 8px 20px rgba(15,23,42,.05);}
.unified-status-card strong,.unified-mini-card strong{display:block; margin-bottom:6px; font-size:.98rem;}
.unified-status-card p,.unified-mini-card p{margin:0; color:#475569; line-height:1.45;}
.deadline-row{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 13px; border-radius:14px; background:#fff; border:1px solid rgba(15,23,42,.08); box-shadow:0 8px 20px rgba(15,23,42,.04);}
.deadline-row span{color:#475569;}
.deadline-row strong{white-space:nowrap;}
.quick-links-stack{display:flex; flex-wrap:wrap; gap:10px;}
.sidebar-utility-links{display:flex; flex-wrap:wrap; gap:8px; margin-top:14px;}
.utility-link-chip{display:inline-flex; align-items:center; justify-content:center; min-height:38px; padding:8px 14px; border-radius:999px; text-decoration:none; font-weight:700; border:1px solid rgba(249,115,22,.26); background:linear-gradient(180deg, rgba(255,247,237,.98), rgba(255,237,213,.95)); color:#9a3412; box-shadow:0 8px 18px rgba(249,115,22,.12);}
.utility-link-chip:hover{transform:translateY(-1px);}
.tone-success{border-color:rgba(16,185,129,.22)!important; background:linear-gradient(180deg, rgba(236,253,245,.98), rgba(209,250,229,.94))!important;}
.tone-warning{border-color:rgba(245,158,11,.22)!important; background:linear-gradient(180deg, rgba(255,251,235,.98), rgba(254,243,199,.94))!important;}
.tone-danger{border-color:rgba(239,68,68,.18)!important; background:linear-gradient(180deg, rgba(254,242,242,.98), rgba(254,226,226,.94))!important;}
.tone-info{border-color:rgba(59,130,246,.18)!important; background:linear-gradient(180deg, rgba(239,246,255,.98), rgba(219,234,254,.94))!important;}
.tone-neutral{border-color:rgba(148,163,184,.18)!important; background:linear-gradient(180deg, rgba(248,250,252,.98), rgba(241,245,249,.94))!important;}
@media (max-width: 1180px){.unified-pilot-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width: 760px){.unified-pilot-grid{grid-template-columns:1fr;} .quick-links-stack,.sidebar-utility-links{flex-direction:column;} .utility-link-chip{width:100%;}}


/* ===== V4 ultra pro ===== */
.role-generic-shell{min-height:100vh}
.role-generic-card{display:grid;grid-template-columns:minmax(240px,280px) minmax(0,1fr);gap:24px;align-items:start}
.role-generic-dashboard{min-height:100vh}
.v4-operations-panel{margin-top:20px}
.v4-hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:8px}
.v4-hub-grid-secondary{margin-top:18px}
.v4-card{border:1px solid rgba(15,23,42,.08);border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,250,252,.98));padding:18px 18px 16px;box-shadow:0 10px 30px rgba(15,23,42,.06);min-width:0}
.v4-card-primary{background:linear-gradient(135deg,rgba(14,116,144,.08),rgba(59,130,246,.08),rgba(255,255,255,.98))}
.v4-card-kicker{display:block;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#64748b;margin-bottom:10px}
.v4-card h4{margin:0 0 10px 0;font-size:1.15rem;line-height:1.25;color:#0f172a}
.v4-card p{margin:0;color:#475569;line-height:1.55}
.v4-card-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.v4-chip-stack{display:flex;flex-direction:column;gap:10px}
.v4-chip-row{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:16px;background:#f8fafc;border:1px solid rgba(148,163,184,.2)}
.v4-chip-row strong{font-size:.95rem;color:#0f172a}
.v4-chip-row span{font-size:.82rem;color:#64748b;text-align:right}
.v4-alert{border-radius:18px;padding:14px 15px;border:1px solid transparent}
.v4-alert strong{display:block;color:#0f172a;margin-bottom:6px}
.v4-alert p{margin:0;color:#334155}
.v4-alert.tone-warning{background:#fff7ed;border-color:#fdba74}
.v4-alert.tone-success{background:#ecfdf5;border-color:#86efac}
.v4-alert.tone-info,.v4-alert.tone-neutral{background:#eff6ff;border-color:#93c5fd}
.v4-metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.v4-metric-grid>div{padding:14px 12px;border-radius:16px;background:#f8fafc;border:1px solid rgba(148,163,184,.16);text-align:center}
.v4-metric-grid strong{display:block;font-size:1.45rem;color:#0f172a}
.v4-metric-grid span{display:block;color:#64748b;font-size:.82rem;line-height:1.35}
.v4-week-list{display:flex;flex-direction:column;gap:10px}
.v4-week-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:16px;border:1px solid rgba(148,163,184,.2);background:#fff}
.v4-week-row span{font-size:.83rem;color:#64748b;white-space:nowrap}
.v4-week-row strong{font-size:.95rem;line-height:1.4;color:#0f172a}
.v4-week-row.tone-warning{background:#fff7ed;border-color:#fdba74}
.v4-week-row.tone-info{background:#eff6ff;border-color:#93c5fd}
.v4-week-row.tone-neutral{background:#f8fafc}
.v4-feed-list{display:flex;flex-direction:column;gap:14px}
.v4-feed-card{padding:16px 18px;border-radius:20px;border:1px solid rgba(148,163,184,.18);background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.04)}
.v4-feed-card.tone-warning{background:#fff7ed;border-color:#fdba74}
.v4-feed-card.tone-success{background:#ecfdf5;border-color:#86efac}
.v4-feed-card.tone-info,.v4-feed-card.tone-neutral{background:#f8fafc}
.v4-feed-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:8px}
.v4-feed-head strong{color:#0f172a}
.v4-feed-head span{font-size:.78rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#64748b}
.slim-field{min-width:220px}
@media (max-width: 1180px){
  .role-generic-card{grid-template-columns:1fr}
  .v4-hub-grid{grid-template-columns:1fr}
}
@media (max-width: 720px){
  .v4-metric-grid{grid-template-columns:1fr}
  .v4-week-row,.v4-chip-row,.v4-feed-head{flex-direction:column;align-items:flex-start}
  .slim-field{min-width:0;width:100%}
}


/* V5 ultra pro */

.v5-panel{margin-top:18px;overflow:visible}
.v5-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.v5-card{background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);border:1px solid rgba(31,94,255,.10);border-radius:20px;padding:18px;box-shadow:0 14px 34px rgba(31,64,128,.08);display:flex;flex-direction:column;gap:12px;min-width:0}
.v5-card.tone-success,.v5-card.tone-warning,.v5-card.tone-danger{border-width:1px}
.v5-card.tone-success{background:linear-gradient(180deg,#f4fff7 0%,#ffffff 100%);border-color:rgba(16,185,129,.22)}
.v5-card.tone-warning{background:linear-gradient(180deg,#fffaf2 0%,#ffffff 100%);border-color:rgba(245,158,11,.22)}
.v5-card.tone-danger{background:linear-gradient(180deg,#fff5f5 0%,#ffffff 100%);border-color:rgba(239,68,68,.22)}
.v5-kicker{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:#6b7a90;font-weight:700}
.v5-score{font-size:2.4rem;font-weight:800;line-height:1;color:#122033;display:flex;align-items:flex-end;gap:6px}
.v5-score small{font-size:1rem;color:#7b8aa4;margin-bottom:4px}
.v5-meter{height:10px;border-radius:999px;background:#e9eef8;overflow:hidden}
.v5-meter span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#ff9a3d 0%,#ff6a00 45%,#1f5eff 100%)}
.v5-list{display:grid;gap:10px}
.v5-list.compact{grid-template-columns:1fr;gap:8px}
.v5-row-link,.v5-row{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:14px;background:#f7f9fc;border:1px solid rgba(20,34,52,.06);text-decoration:none;color:inherit}
.v5-row-link:hover{background:#eef4ff;border-color:rgba(31,94,255,.18)}
.v5-row-link span,.v5-row span{color:#617087;font-size:.94rem}
.v5-person{font-size:1.2rem;font-weight:800;color:#122033}
.v5-sync-box{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.v5-sync-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:#6b7a90;font-weight:700}
[data-v5-sync]{padding:8px 12px;border-radius:999px;background:#eef6ff;color:#184d9e;font-weight:700}
[data-v5-sync].is-offline{background:#fff2f2;color:#b42318}
.v5-mobile-box{display:grid;gap:12px}
.v5-chip-line{display:flex;gap:8px;flex-wrap:wrap}
.v5-bullet{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;background:#f7f9fc}
.v5-bullet strong{width:28px;height:28px;border-radius:999px;background:#1f5eff;color:#fff;display:grid;place-items:center;font-size:.9rem}
.v5-mobile-fab{position:fixed;right:18px;bottom:18px;z-index:40;background:linear-gradient(135deg,#ff8b2c 0%,#ff5d00 100%);color:#fff;text-decoration:none;padding:14px 18px;border-radius:999px;font-weight:800;box-shadow:0 16px 38px rgba(255,93,0,.35)}
@media (max-width:1100px){.v5-grid{grid-template-columns:1fr}}
@media (max-width:760px){.v5-sync-box{align-items:flex-start}.v5-mobile-fab{right:12px;bottom:12px;padding:12px 16px}.v5-card{padding:16px}}

/* ==============================
   V6 ULTRA PRO — REDESIGN TOTAL
   Conserve palette CFA existante
   ============================== */
body.v6-ui{
  background:
    radial-gradient(circle at top left, rgba(242,140,27,.12), transparent 23%),
    radial-gradient(circle at bottom right, rgba(36,95,202,.13), transparent 26%),
    linear-gradient(180deg,#f5f9ff 0%, #edf3fb 100%);
}
body.v6-ui .shell{
  min-height:100vh;
  padding:12px;
  box-sizing:border-box;
}
body.v6-ui .admin-card{
  width:calc(100vw - 24px);
  max-width:none;
  min-height:calc(100vh - 24px);
  height:calc(100vh - 24px);
  border-radius:28px;
  grid-template-columns:320px minmax(0,1fr);
}
body.v6-ui .sidebar{
  position:relative;
  padding:28px 24px 24px;
  background:linear-gradient(180deg,#173b75 0%, #245fca 58%, #2e6edf 100%);
  gap:18px;
}
body.v6-ui .sidebar::after{
  content:"";
  position:absolute;
  inset:auto 22px 92px 22px;
  height:1px;
  background:linear-gradient(90deg,rgba(255,255,255,.04), rgba(255,255,255,.32), rgba(255,255,255,.04));
}
body.v6-ui .sidebar-top{gap:16px;}
body.v6-ui .sidebar-logo-box{border-radius:24px;padding:16px;}
body.v6-ui .sidebar-title{font-size:2rem;letter-spacing:-.03em;}
body.v6-ui .sidebar-subtitle{font-size:.98rem;opacity:.92;}
body.v6-ui .side-nav{
  display:grid;
  gap:10px;
  padding:10px;
  border-radius:22px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.10);
}
body.v6-ui .nav-item,
body.v6-ui .nav-item-button{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:52px;
  border-radius:18px;
  padding:14px 16px;
  font-size:1rem;
  line-height:1.2;
  transition:transform .15s ease, background .15s ease, box-shadow .15s ease;
}
body.v6-ui .nav-item::before,
body.v6-ui .nav-item-button::before{
  content:attr(data-icon);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border-radius:12px;
  background:rgba(255,255,255,.14);
  flex:0 0 34px;
  font-size:1rem;
}
body.v6-ui .nav-item:hover,
body.v6-ui .nav-item-button:hover{transform:translateY(-1px);background:rgba(255,255,255,.16)}
body.v6-ui .nav-item.active,
body.v6-ui .nav-item-button.active{
  background:linear-gradient(90deg, rgba(255,255,255,.18), rgba(242,140,27,.40));
  box-shadow:0 16px 28px rgba(7,21,45,.14);
  border-color:rgba(255,255,255,.22);
}
body.v6-ui .tutor-sidebar-note{
  margin-top:auto;
  border-radius:20px;
  background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.08));
}
body.v6-ui .logout-btn{border-radius:18px;min-height:52px;}
body.v6-ui .dashboard{
  padding:22px 22px 28px;
  gap:18px;
  overflow:auto;
  background:linear-gradient(180deg,#f8fbff 0%, #eff4fc 100%);
}
body.v6-ui .dashboard-header{display:none;}
body.v6-ui .panel,
body.v6-ui .stat-card,
body.v6-ui .mini-card{
  border-radius:24px;
  box-shadow:0 14px 34px rgba(23,54,95,.07);
}
body.v6-ui .panel{padding:20px;}
body.v6-ui .panel-head h3,
body.v6-ui .v6-topbar h3{font-size:1.18rem;letter-spacing:-.02em;}
body.v6-ui .v6-topbar{
  position:sticky;
  top:0;
  z-index:40;
  padding:16px 18px;
  background:linear-gradient(135deg, rgba(255,255,255,.96), rgba(248,251,255,.96));
  backdrop-filter:blur(8px);
  border:1px solid rgba(213,225,242,.95);
}
body.v6-ui .v6-topbar-main{display:flex;align-items:center;justify-content:space-between;gap:18px;}
body.v6-ui .v6-topbar-badge{
  display:inline-flex;align-items:center;padding:7px 12px;border-radius:999px;
  background:linear-gradient(90deg, rgba(36,95,202,.12), rgba(242,140,27,.18));
  color:var(--blue-dark);font-weight:900;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;
}
body.v6-ui .v6-topbar p{margin:8px 0 0;color:#516685;max-width:780px;}
body.v6-ui .v6-topbar-actions{display:flex;gap:10px;flex-wrap:wrap;}
body.v6-ui .small-btn{padding:12px 16px;border-radius:14px;font-size:.92rem;}
body.v6-ui .v6-selection-dock{
  position:sticky;
  top:102px;
  z-index:35;
  padding:16px;
  background:linear-gradient(180deg,#ffffff 0%, #f8fbff 100%);
  border:1px solid #dbe6f4;
}
body.v6-ui .v6-selection-dock-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px;}
body.v6-ui .v6-selection-dock-head p{margin:8px 0 0;color:#607390;max-width:820px;}
body.v6-ui .v6-step-pills,
body.v6-ui .v6-selection-summary{display:flex;gap:8px;flex-wrap:wrap;}
body.v6-ui .v6-step-pills span,
body.v6-ui .v6-selection-summary span{
  display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;
  background:#eef4ff;color:var(--blue-dark);font-size:.84rem;font-weight:800;
}
body.v6-ui .v6-selection-summary{margin-top:12px;}
body.v6-ui .eval-top-panel,
body.v6-ui .progression-filter-panel{
  margin:0;
  padding:0;
  background:transparent;
  border:none;
  box-shadow:none;
}
body.v6-ui .eval-top-grid-formateur,
body.v6-ui .progression-filters-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
body.v6-ui #apprentiField,
body.v6-ui #classeField,
body.v6-ui .field-group{
  margin:0;
}
body.v6-ui .file-input,
body.v6-ui input.file-input,
body.v6-ui select.file-input,
body.v6-ui textarea{
  min-height:54px;
  border-radius:16px;
  border:1px solid #d7e2f0;
  box-shadow:0 8px 20px rgba(23,54,95,.04);
  font-size:1rem;
}
body.v6-ui textarea{min-height:120px;}
body.v6-ui .v6-help-triptych{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  background:linear-gradient(180deg,#ffffff 0%, #fbfdff 100%);
}
body.v6-ui .v6-help-triptych article{
  display:grid;
  gap:8px;
  padding:16px;
  border-radius:20px;
  border:1px solid #e3ebf6;
  background:linear-gradient(180deg,#ffffff 0%, #f7fbff 100%);
}
body.v6-ui .v6-help-triptych strong{color:var(--blue-dark);font-size:1rem;}
body.v6-ui .v6-help-triptych span{color:#667a97;line-height:1.45;}
body.v6-ui .premium-grid,
body.v6-ui .tutor-premium-main-grid,
body.v6-ui .progression-bottom-grid{gap:16px;}
body.v6-ui .eval-layout{grid-template-columns:minmax(320px, 420px) minmax(0,1fr);gap:16px;align-items:start;}
body.v6-ui .eval-left-panel,
body.v6-ui .eval-right-panel{min-height:0;}
body.v6-ui .eval-left-panel{
  position:sticky;
  top:286px;
  max-height:calc(100vh - 322px);
  overflow:auto;
}
body.v6-ui .eval-right-panel,
body.v6-ui .proof-review-panel,
body.v6-ui .premium-wide-panel{min-height:320px;}
body.v6-ui .eval-focus-card,
body.v6-ui .quick-link-card,
body.v6-ui .cap-moment-card,
body.v6-ui .reading-card,
body.v6-ui .strip-item,
body.v6-ui .history-entry,
body.v6-ui .proof-card,
body.v6-ui .message-card,
body.v6-ui .roulette-chip{
  border-radius:20px;
}
body.v6-ui .eval-focus-card{
  padding:20px;
  background:linear-gradient(135deg, rgba(36,95,202,.08), rgba(242,140,27,.10));
  border:1px solid rgba(36,95,202,.10);
}
body.v6-ui .eval-action-btn,
body.v6-ui .primary-btn,
body.v6-ui .secondary-btn{
  min-height:48px;
  border-radius:16px;
}
body.v6-ui .eval-history-wrap{max-height:none;}
body.v6-ui .roulette-chip{
  padding:16px;
  border:1px solid #dde7f5;
}
body.v6-ui .roulette-chip.active{
  border-color:rgba(242,140,27,.38);
  background:linear-gradient(90deg, rgba(36,95,202,.08), rgba(242,140,27,.16));
}
body.v6-ui .roulette-code{background:#edf3ff;}
body.v6-ui .level-choice{
  position:relative;
  min-height:84px;
  display:grid;
  align-content:center;
  gap:4px;
  padding:14px;
}
body.v6-ui .level-choice::after{
  content:attr(data-v6-label);
  display:block;
  font-size:.83rem;
  color:#5f7391;
  font-weight:700;
}
body.v6-ui .level-choice.active{
  background:linear-gradient(90deg, rgba(36,95,202,.14), rgba(242,140,27,.20));
}
body.v6-ui .save-row-mobile-sticky,
body.v6-ui .save-row{
  position:sticky;
  bottom:0;
  z-index:5;
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.98));
  border-top:1px solid #e3eaf5;
  padding-top:12px;
}
body.v6-ui .apprentice-command-hero{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:18px;
  padding:24px;
  border-radius:26px;
  background:linear-gradient(135deg, rgba(23,59,117,.98), rgba(36,95,202,.94) 60%, rgba(242,140,27,.88));
  color:#fff;
  box-shadow:0 24px 56px rgba(23,59,117,.22);
}
body.v6-ui .apprentice-command-hero::before{
  content:"";
  position:absolute;right:-80px;top:-60px;width:240px;height:240px;border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,.18), transparent 68%);
}
body.v6-ui .command-hero-kicker,
body.v6-ui .hero-tag{background:rgba(255,255,255,.14);color:#fff;}
body.v6-ui .command-hero-copy h3,
body.v6-ui #homeHeroTitle{font-size:2rem;color:#fff;}
body.v6-ui .command-hero-copy p,
body.v6-ui .readiness-text{color:rgba(255,255,255,.92);}
body.v6-ui .readiness-ring-card{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16);}
body.v6-ui .hero-cta-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
body.v6-ui .v6-home-steps{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;}
body.v6-ui .v6-home-step{
  display:grid;gap:4px;padding:10px 12px;border-radius:16px;background:rgba(255,255,255,.12);min-width:140px;
}
body.v6-ui .v6-home-step strong{color:#fff;}
body.v6-ui .v6-home-step span{color:rgba(255,255,255,.85);font-size:.9rem;}
body.v6-ui .quick-links-grid,
body.v6-ui .quick-links-grid-v21{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
body.v6-ui .quick-link-card{
  display:grid;gap:8px;padding:18px 18px 18px 20px;
  border:1px solid #dfe8f5;
  background:linear-gradient(180deg,#fff 0%, #f8fbff 100%);
  box-shadow:0 12px 26px rgba(23,54,95,.05);
}
body.v6-ui .quick-link-card strong{font-size:1.04rem;color:var(--blue-dark);}
body.v6-ui .quick-link-card span{color:#607391;line-height:1.45;}
body.v6-ui .unified-pilot-grid,
body.v6-ui .cap-moment-grid,
body.v6-ui .stats-grid{gap:14px;}
body.v6-ui .cap-moment-card,
body.v6-ui .stat-card{padding:18px;}
body.v6-ui .stat-value{font-size:2rem;}
body.v6-ui .chart-panel{padding:18px 18px 12px;}
body.v6-ui .progress-chart-wrap,
body.v6-ui .radar-board-wrap{
  min-height:480px;
  border-radius:22px;
  background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
}
body.v6-ui .messages-page .dashboard,
body.v6-ui .messages-main-card{height:auto;min-height:calc(100vh - 72px);}
body.v6-ui .messages-thread-list{max-height:none;min-height:420px;}
body.v6-ui.v6-focus-mode .sidebar{width:88px;padding:18px 12px;overflow:hidden;}
body.v6-ui.v6-focus-mode .sidebar .sidebar-title,
body.v6-ui.v6-focus-mode .sidebar .sidebar-subtitle,
body.v6-ui.v6-focus-mode .sidebar .eyebrow,
body.v6-ui.v6-focus-mode .sidebar .tutor-sidebar-note,
body.v6-ui.v6-focus-mode .sidebar .logout-btn,
body.v6-ui.v6-focus-mode .sidebar .utility-link-chip{display:none;}
body.v6-ui.v6-focus-mode .admin-card{grid-template-columns:96px minmax(0,1fr);}
body.v6-ui.v6-focus-mode .nav-item,
body.v6-ui.v6-focus-mode .nav-item-button{justify-content:center;padding:12px;font-size:0;}
body.v6-ui.v6-focus-mode .nav-item::before,
body.v6-ui.v6-focus-mode .nav-item-button::before{margin:0;font-size:1.05rem;}

@media (max-width: 1180px){
  body.v6-ui .admin-card{grid-template-columns:290px minmax(0,1fr);}
  body.v6-ui .eval-top-grid-formateur,
  body.v6-ui .progression-filters-grid,
  body.v6-ui .quick-links-grid,
  body.v6-ui .quick-links-grid-v21,
  body.v6-ui .v6-help-triptych{grid-template-columns:repeat(2,minmax(0,1fr));}
  body.v6-ui .apprentice-command-hero,
  body.v6-ui .eval-layout{grid-template-columns:1fr;}
  body.v6-ui .eval-left-panel{position:relative;top:auto;max-height:none;}
}
@media (max-width: 900px){
  body.v6-ui .shell{padding:0;}
  body.v6-ui .admin-card{width:100vw;height:auto;min-height:100vh;border-radius:0;grid-template-columns:1fr;}
  body.v6-ui .sidebar{gap:14px;}
  body.v6-ui .side-nav{grid-template-columns:repeat(2,minmax(0,1fr));}
  body.v6-ui .dashboard{padding:16px;}
  body.v6-ui .v6-topbar-main,
  body.v6-ui .v6-selection-dock-head{flex-direction:column;align-items:stretch;}
  body.v6-ui .v6-selection-dock{position:relative;top:auto;}
  body.v6-ui .eval-top-grid-formateur,
  body.v6-ui .progression-filters-grid,
  body.v6-ui .quick-links-grid,
  body.v6-ui .quick-links-grid-v21,
  body.v6-ui .v6-help-triptych,
  body.v6-ui .hero-cta-grid{grid-template-columns:1fr;}
}


/* === V6.1 REDESIGN PREMIUM ORIENTE SIMPLICITE === */
body.v61-ui{
  background:
    radial-gradient(circle at 0% 0%, rgba(242,140,27,.08), transparent 24%),
    radial-gradient(circle at 100% 0%, rgba(36,95,202,.08), transparent 28%),
    #edf2fb;
}
body.v61-ui .shell{padding:10px !important;}
body.v61-ui .admin-card,
body.v61-ui .progression-card{
  width:100% !important;
  max-width:none !important;
  min-height:calc(100vh - 20px) !important;
  border-radius:28px;
}
body.v61-ui .dashboard,
body.v61-ui .tutor-dashboard-v12,
body.v61-ui .progression-dashboard{
  padding:22px !important;
  gap:18px !important;
}
body.v61-ui .panel{
  border-radius:24px;
  border:1px solid rgba(23,59,117,.08);
  box-shadow:0 16px 34px rgba(23,54,95,.06);
}
body.v61-ui .sidebar{
  padding:24px 22px 20px;
}
body.v61-ui .nav-item,
body.v61-ui .nav-item-button{
  min-height:54px;
  display:flex;
  align-items:center;
  gap:12px;
  font-size:1rem;
}
body.v61-ui .nav-item::before,
body.v61-ui .nav-item-button::before{
  content:attr(data-icon);
  width:24px;
  text-align:center;
  opacity:.95;
}
body.v61-ui .nav-item:not([data-icon])::before,
body.v61-ui .nav-item-button:not([data-icon])::before{content:'•';}
body.v61-ui .file-input,
body.v61-ui select,
body.v61-ui input,
body.v61-ui textarea{
  min-height:54px;
  border-radius:16px;
}
body.v61-ui textarea{min-height:120px;}
body.v61-ui .eval-panel-title,
body.v61-ui .eval-history-title,
body.v61-ui .panel h3,
body.v61-ui .dashboard-header h2{letter-spacing:-.02em;}
body.v61-ui .eval-panel-lead,
body.v61-ui .eval-history-lead,
body.v61-ui .panel-subtext,
body.v61-ui .header-text{font-size:.98rem; line-height:1.55; color:#5c6f8e;}

.v61-pc-hint{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 18px;
  background:linear-gradient(90deg, rgba(36,95,202,.08), rgba(242,140,27,.12));
}
.v61-pc-hint strong{display:block; color:#173b75; margin-bottom:4px;}
.v61-pc-hint span{color:#5b6f8f;}

.v61-panel-head{display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:14px;}
.v61-panel-head h3{margin:0 0 6px;}
.v61-panel-head p{margin:0; color:#637897; line-height:1.5;}

.v61-login-helper{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:14px;
}
.v61-mini-card{
  background:#fff;
  border:1px solid #d8e3f3;
  border-radius:18px;
  padding:14px 14px 12px;
  box-shadow:0 12px 24px rgba(23,54,95,.04);
}
.v61-mini-card.active{background:linear-gradient(180deg,#fff9f2,#fff1df); border-color:#ffd3a2;}
.v61-mini-card strong{display:block; margin-bottom:6px; color:#173b75;}
.v61-mini-card span{display:block; color:#607592; line-height:1.45; font-size:.92rem;}

.v61-home-launcher{padding:20px;}
.v61-launcher-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.v61-launcher-card{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:118px;
  padding:18px;
  border-radius:22px;
  text-decoration:none;
  color:#17365f;
  border:1px solid rgba(36,95,202,.14);
  background:linear-gradient(180deg,#ffffff,#f6f9ff);
  box-shadow:0 14px 30px rgba(23,54,95,.05);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
button.v61-launcher-card{width:100%; text-align:left; font:inherit; cursor:pointer;}
.v61-launcher-card:hover{transform:translateY(-2px); border-color:rgba(242,140,27,.35); box-shadow:0 18px 32px rgba(23,54,95,.09);}
.v61-launcher-card strong{font-size:1.02rem; margin-bottom:10px;}
.v61-launcher-card span{color:#617794; line-height:1.45;}

.v61-action-ribbon{
  padding:14px;
  display:grid;
  gap:12px;
  background:linear-gradient(180deg,#ffffff,#f7faff);
}
.v61-apprenti-ribbon{grid-template-columns:repeat(3,minmax(0,1fr));}
.v61-tuteur-ribbon,.v61-progression-ribbon{grid-template-columns:repeat(4,minmax(0,1fr));}
.v61-ribbon-card,
.v61-choice-card{
  appearance:none;
  width:100%;
  border:1px solid rgba(36,95,202,.12);
  background:#fff;
  border-radius:20px;
  padding:16px;
  text-align:left;
  cursor:pointer;
  transition:all .16s ease;
  color:#17365f;
}
.v61-ribbon-card:hover,
.v61-choice-card:hover{transform:translateY(-1px); border-color:rgba(242,140,27,.35); box-shadow:0 14px 28px rgba(23,54,95,.08);}
.v61-ribbon-card strong,
.v61-choice-card strong{display:block; margin-bottom:8px; font-size:1rem;}
.v61-ribbon-card span,
.v61-choice-card span{display:block; color:#627796; line-height:1.45;}

.v61-formateur-chooser{padding:18px;}
.v61-chooser-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px;}
.v61-choice-card.active{
  background:linear-gradient(180deg,#fff8ef,#ffeed7);
  border-color:#ffc783;
  box-shadow:0 14px 30px rgba(242,140,27,.14);
}
.v61-secondary-choice{
  background:linear-gradient(180deg,#f5f9ff,#eef4ff);
}
body.v61-ui .eval-top-panel,
body.v61-ui .progression-filter-panel{
  position:sticky;
  top:10px;
  z-index:8;
  backdrop-filter:blur(8px);
  background:rgba(255,255,255,.96);
}
body.v61-ui .v6-selection-dock{position:sticky; top:10px; z-index:9;}
body.v61-ui .eval-layout{gap:18px !important;}
body.v61-ui .eval-left-panel{border-right:none;}
body.v61-ui .eval-competence-list{padding-right:6px;}
body.v61-ui .eval-focus-card{
  background:linear-gradient(135deg, rgba(36,95,202,.08), rgba(242,140,27,.12));
  border:1px solid rgba(36,95,202,.10);
}
body.v61-ui .empty-state{
  border-radius:20px;
  border:1px dashed rgba(36,95,202,.22);
  background:linear-gradient(180deg,#fbfdff,#f4f8ff);
  color:#5a7092;
}
body.v61-ui .level-choice{
  min-height:86px;
  border-radius:18px;
}
body.v61-ui .level-choice::after{
  content:attr(data-v6-label);
  display:block;
  font-size:.84rem;
  color:#647b99;
  margin-top:6px;
}
body.v61-ui .save-row-mobile-sticky{
  position:sticky;
  bottom:0;
  background:rgba(255,255,255,.98);
  border-top:1px solid rgba(23,59,117,.08);
  padding-top:12px;
}

@media (max-width: 1200px){
  .v61-launcher-grid,
  .v61-apprenti-ribbon,
  .v61-tuteur-ribbon,
  .v61-progression-ribbon,
  .v61-chooser-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 760px){
  .v61-login-helper,
  .v61-launcher-grid,
  .v61-apprenti-ribbon,
  .v61-tuteur-ribbon,
  .v61-progression-ribbon,
  .v61-chooser-grid{grid-template-columns:1fr;}
  body.v61-ui .dashboard,
  body.v61-ui .tutor-dashboard-v12,
  body.v61-ui .progression-dashboard{padding:16px !important;}
  body.v61-ui .eval-top-panel,
  body.v61-ui .progression-filter-panel,
  body.v61-ui .v6-selection-dock{position:static;}
}


/* ===== V6.2 redesign visuel et priorisation d'usage ===== */
body.v62-ui .shell{
  padding:8px !important;
}
body.v62-ui .admin-card,
body.v62-ui .progression-card{
  width:min(1720px,100%) !important;
}
body.v62-desktop[data-role="apprenti"] .role-eval-card,
body.v62-desktop[data-role="tuteur"] .role-eval-card,
body.v62-desktop[data-role="formateur"] .role-eval-card{
  height:calc(100vh - 16px) !important;
  min-height:calc(100vh - 16px) !important;
  grid-template-columns:300px minmax(0,1fr);
}
body.v62-ui .sidebar{
  gap:20px;
}
body.v62-ui .dashboard,
body.v62-ui .tutor-dashboard-v12{
  gap:18px !important;
}
body.v62-ui .v6-topbar{
  border-radius:24px;
  padding:18px 20px;
}
body.v62-ui .v6-selection-dock{
  border:1px solid rgba(36,95,202,.14);
  border-radius:24px;
  box-shadow:0 18px 36px rgba(17,24,39,.07);
}
body.v62-desktop .v6-selection-dock{
  position:sticky;
  top:8px;
  z-index:30;
}
.v62-workspace-hero{
  display:grid;
  gap:14px;
  padding:18px 20px;
  border-radius:24px;
  background:linear-gradient(135deg,#ffffff 0%,#f8fbff 55%,#fff5e9 100%);
  border:1px solid rgba(220,229,242,.9);
}
.v62-workspace-copy h3{
  margin:0 0 8px;
  font-size:1.22rem;
  color:var(--blue-dark);
}
.v62-workspace-copy p{
  margin:0;
  color:#607592;
  line-height:1.55;
}
.v62-hero-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.v62-hero-card{
  display:grid;
  gap:8px;
  padding:16px 16px 15px;
  border-radius:20px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(214,225,241,.96);
  box-shadow:0 14px 28px rgba(23,54,95,.05);
}
.v62-hero-card strong{
  color:var(--blue-dark);
  font-size:1rem;
}
.v62-hero-card span{
  color:#607592;
  line-height:1.46;
  font-size:.94rem;
}
.v62-dock-tools{
  display:grid;
  gap:12px;
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid rgba(215,225,239,.95);
}
.v62-dock-toolbar{
  display:grid;
  grid-template-columns:minmax(220px,1fr) auto;
  gap:12px;
  align-items:end;
}
.v62-dock-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
}
.v62-search-field{margin-bottom:0;}
.v62-dock-summary{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.v62-summary-chip{
  display:inline-flex;
  align-items:center;
  padding:9px 12px;
  border-radius:999px;
  background:linear-gradient(135deg,#eef4ff 0%,#fff4e7 100%);
  border:1px solid rgba(207,223,247,.9);
  color:var(--blue-dark);
  font-size:.88rem;
  font-weight:700;
}
.v62-secondary-fold{
  padding:0;
  overflow:hidden;
}
.v62-secondary-fold summary{
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:18px 20px;
  cursor:pointer;
  background:linear-gradient(180deg,#ffffff 0%,#f6f9ff 100%);
}
.v62-secondary-fold summary::-webkit-details-marker{display:none;}
.v62-secondary-fold summary strong{
  display:block;
  color:var(--blue-dark);
  margin-bottom:5px;
}
.v62-secondary-fold summary span{
  color:#607592;
}
.v62-fold-state{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:86px;
  padding:9px 12px;
  border-radius:999px;
  background:linear-gradient(135deg,#fff8ee 0%,#ffe7c6 100%);
  color:#9a5a09 !important;
  font-weight:800;
  font-size:.84rem;
}
.v62-fold-body{
  display:grid;
  gap:18px;
  padding:0 18px 18px;
}
body.v62-ui .tutor-premium-main-grid,
body.v62-ui .eval-layout{
  gap:18px;
}
body.v62-desktop[data-role="tuteur"] .tutor-premium-main-grid{
  grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);
  align-items:start;
}
body.v62-desktop[data-role="tuteur"] .tutor-quick-eval-panel.v62-priority-panel{
  position:sticky;
  top:168px;
}
body.v62-desktop[data-role="formateur"] .eval-layout,
body.v62-desktop[data-role="apprenti"] .eval-layout,
body.v62-desktop[data-role="tuteur"] .eval-layout{
  grid-template-columns:360px minmax(0,1fr) !important;
}
body.v62-ui .eval-left-panel,
body.v62-ui .eval-right-panel,
body.v62-ui .tutor-quick-eval-panel,
body.v62-ui .proof-review-panel{
  border-radius:24px;
  box-shadow:0 16px 34px rgba(23,54,95,.06);
}
body.v62-ui .eval-focus-card{
  background:linear-gradient(135deg,#ffffff 0%,#f4f8ff 62%,#fff6ea 100%);
}
body.v62-ui .eval-action-btn{
  min-height:58px;
  border-radius:18px;
}
body.v62-ui .eval-history-wrap{
  background:linear-gradient(180deg,#fcfdff 0%,#f8fbff 100%);
}
.v62-pc-badge{
  margin-left:auto;
  align-self:flex-start;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:10px 14px;
  border-radius:999px;
  background:linear-gradient(135deg,#fff8ee 0%,#ffe0bb 100%);
  color:#8e4f06;
  font-size:.82rem;
  font-weight:800;
  border:1px solid rgba(242,140,27,.22);
}
body.v62-ui .v61-formateur-chooser,
body.v62-ui .v61-action-ribbon{
  margin-top:0;
}
body.v62-ui .v61-formateur-chooser .v61-chooser-grid,
body.v62-ui .v61-action-ribbon{
  gap:12px;
}
body.v62-ui .v61-choice-card,
body.v62-ui .v61-ribbon-card{
  min-height:104px;
  border-radius:20px;
}
@media (max-width:1180px){
  .v62-hero-grid{grid-template-columns:1fr;}
  .v62-dock-toolbar{grid-template-columns:1fr;}
  .v62-dock-actions{justify-content:flex-start;}
}
@media (max-width:980px){
  body.v62-ui .shell{padding:10px !important;}
  .v62-pc-badge{margin-left:0;}
}
@media (max-width:760px){
  .v62-workspace-hero{padding:16px;}
  .v62-hero-card{padding:14px;}
  .v62-dock-actions{display:grid;grid-template-columns:1fr 1fr;}
  .v62-dock-actions .secondary-btn{width:100%;}
  .v62-secondary-fold summary{padding:16px;align-items:flex-start;flex-direction:column;}
}
@media (max-width:560px){
  .v62-dock-actions{grid-template-columns:1fr;}
  .v62-summary-chip{width:100%;justify-content:flex-start;}
}


/* ===== V6.3 ULTRA PRO ===== */
body.v63-ui .shell{
  padding:10px;
  background:
    radial-gradient(circle at top right, rgba(242,140,27,.10), transparent 26%),
    radial-gradient(circle at bottom left, rgba(47,115,235,.10), transparent 28%),
    linear-gradient(180deg,#f4f7fc 0%,#edf3fb 100%);
}
body.v63-ui .admin-card,
body.v63-ui .auth-card{
  width:min(1680px,100%);
  height:calc(100vh - 20px);
  border:1px solid rgba(214,225,241,.95);
  box-shadow:0 28px 60px rgba(17,24,39,.10);
}
body.v63-ui .sidebar{
  border-right:1px solid rgba(255,255,255,.12);
  box-shadow:inset -1px 0 0 rgba(255,255,255,.06);
}
body.v63-desktop .sidebar{
  position:sticky;
  top:0;
  align-self:start;
}
body.v63-ui .dashboard{
  background:linear-gradient(180deg,#f8fbff 0%,#f2f6fc 100%);
}
body.v63-ui .dashboard-header{
  position:relative;
  border-radius:26px;
  padding:22px 24px;
  background:linear-gradient(135deg,#ffffff 0%,#f6faff 60%,#fff6ea 100%);
  border:1px solid rgba(214,225,241,.95);
  box-shadow:0 18px 38px rgba(23,54,95,.07);
}
body.v63-ui .panel,
body.v63-ui .stat-card,
body.v63-ui .strip-item,
body.v63-ui .quick-link-card,
body.v63-ui .cap-moment-card,
body.v63-ui .reading-card{
  box-shadow:0 16px 34px rgba(23,54,95,.06);
  border-color:rgba(214,225,241,.95);
}
body.v63-ui .panel{overflow:hidden;}
body.v63-ui .dashboard-header .header-actions{
  align-self:flex-start;
}
.v63-workspace-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 18px;
  border-radius:22px;
  background:linear-gradient(135deg,#173b75 0%,#245fca 68%,#2f73eb 100%);
  color:#fff;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 18px 34px rgba(23,54,95,.18);
}
.v63-workspace-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.v63-meta-chip,
.v63-scope-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-size:.86rem;
  font-weight:700;
  backdrop-filter:blur(6px);
}
.v63-meta-chip strong,
.v63-scope-chip strong{color:#fff;}
.v63-workspace-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
}
.v63-workspace-actions .secondary-btn,
.v63-workspace-actions .primary-btn{
  min-height:42px;
  border-radius:14px;
}
body.v63-ui .v63-toolbar-btn{
  background:rgba(255,255,255,.12);
  color:#fff;
  border:1px solid rgba(255,255,255,.16);
}
body.v63-ui .v63-toolbar-btn:hover{
  background:rgba(255,255,255,.20);
}
.v63-scope-panel{
  display:grid;
  gap:10px;
  padding:16px 18px;
  border-radius:22px;
  background:linear-gradient(135deg,#ffffff 0%,#f7fbff 60%,#fff8ef 100%);
  border:1px solid rgba(214,225,241,.96);
}
.v63-scope-panel h3{
  margin:0;
  font-size:1.04rem;
  color:var(--blue-dark);
}
.v63-scope-panel p{
  margin:0;
  color:#607592;
  line-height:1.5;
}
.v63-scope-chip-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.v63-scope-chip{
  color:var(--blue-dark);
  background:linear-gradient(135deg,#eef4ff 0%,#fff4e7 100%);
  border:1px solid rgba(207,223,247,.95);
}
.v63-simple-fold{
  padding:0;
}
.v63-simple-fold summary{
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:16px 18px;
  cursor:pointer;
  background:linear-gradient(180deg,#ffffff 0%,#f6f9ff 100%);
}
.v63-simple-fold summary::-webkit-details-marker{display:none;}
.v63-simple-fold summary strong{
  color:var(--blue-dark);
}
.v63-simple-fold summary span{
  color:#607592;
}
.v63-simple-fold > div{
  padding:0 18px 18px;
}
.v63-home-hero-tools{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:16px;
}
.v63-home-tool{
  display:flex;
  flex-direction:column;
  gap:7px;
  padding:16px;
  border-radius:20px;
  text-decoration:none;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(214,225,241,.96);
  color:inherit;
  box-shadow:0 16px 28px rgba(23,54,95,.06);
}
.v63-home-tool strong{
  color:var(--blue-dark);
}
.v63-home-tool span{
  color:#607592;
  line-height:1.45;
  font-size:.92rem;
}
body.v63-ui .command-hero-kicker,
body.v63-ui .readiness-label{
  letter-spacing:.08em;
}
body.v63-ui .progression-filter-panel,
body.v63-ui .eval-top-panel,
body.v63-ui .v6-selection-dock,
body.v63-ui .bilan-summary-strip{
  border-radius:24px;
  box-shadow:0 18px 38px rgba(23,54,95,.07);
}
body.v63-desktop .progression-filter-panel,
body.v63-desktop .eval-top-panel,
body.v63-desktop .v6-selection-dock,
body.v63-desktop .bilan-summary-strip{
  position:sticky;
  top:8px;
  z-index:25;
}
body.v63-desktop .chart-panel{
  min-height:520px;
}
body.v63-ui .progression-kpis{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
body.v63-ui .progression-bottom-grid{
  align-items:start;
}
body.v63-ui .progress-history-wrap,
body.v63-ui .eval-history-wrap{
  min-height:320px;
}
body.v63-desktop .proof-review-panel,
body.v63-desktop .bilan-side,
body.v63-desktop .compact-side-panel{
  align-self:start;
}
body.v63-focus-mode .unified-pilot-panel,
body.v63-focus-mode .premium-grid,
body.v63-focus-mode .proof-review-panel,
body.v63-focus-mode .v62-secondary-fold,
body.v63-focus-mode .v63-simple-fold,
body.v63-focus-mode .bilan-side,
body.v63-focus-mode .bilan-notes-panel,
body.v63-focus-mode .progression-bottom-grid,
body.v63-focus-mode .apprentice-premium-grid,
body.v63-focus-mode .stats-grid.apprentice-home-kpis,
body.v63-focus-mode .apprentice-home-grid:last-of-type{
  display:none !important;
}
body.v63-focus-mode .admin-card{
  width:min(1780px,100%);
}
body.v63-focus-mode .sidebar{
  width:272px;
}
body.v63-focus-mode .dashboard{
  gap:14px !important;
}
body.v63-ui .formation-flyer-wrap{
  padding:16px;
  background:linear-gradient(180deg,#ffffff 0%,#f7fbff 100%);
  border-radius:24px;
  border:1px solid rgba(214,225,241,.95);
}
body.v63-ui .formation-flyer-image{
  border-radius:18px;
  box-shadow:0 22px 44px rgba(23,54,95,.12);
}
body.v63-ui .bilan-layout{
  align-items:start;
}
body.v63-ui .bilan-editor,
body.v63-ui .bilan-side{
  border-radius:24px;
}
.v63-focus-mode-indicator{
  color:#fff6ea;
  font-weight:700;
}
@media (max-width:1240px){
  .v63-home-hero-tools,
  body.v63-ui .progression-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:980px){
  body.v63-ui .shell{height:auto;min-height:100vh;overflow:visible;padding:10px;}
  body.v63-ui .admin-card,
  body.v63-ui .auth-card,
  body.v63-ui .progression-card{height:auto;min-height:100vh;}
  .v63-workspace-bar{flex-direction:column;align-items:flex-start;}
  .v63-workspace-actions{justify-content:flex-start;}
}
@media (max-width:760px){
  .v63-home-hero-tools,
  body.v63-ui .progression-kpis{grid-template-columns:1fr;}
  .v63-workspace-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;}
  .v63-workspace-actions .secondary-btn,
  .v63-workspace-actions .primary-btn{width:100%;}
}
@media (max-width:560px){
  .v63-workspace-actions{grid-template-columns:1fr;}
  .v63-meta-chip,
  .v63-scope-chip{width:100%;justify-content:flex-start;}
}


/* === V6.6.10 : AMELIORATION RENDU BLOC LE PLUS FAIBLE FORMATEUR === */
body[data-role="formateur"] .premium-kpi-card--wide{
  grid-column: span 2;
}
body[data-role="formateur"] .premium-kpi-card--weakest{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) auto;
  grid-template-areas:
    "label label"
    "value meta";
  align-items:start;
  gap:10px 18px;
  min-height:132px;
  padding:18px 18px 16px;
}
body[data-role="formateur"] .premium-kpi-card--weakest .premium-kpi-label{
  grid-area:label;
  margin-bottom:2px;
}
body[data-role="formateur"] .premium-kpi-card--weakest .premium-kpi-value{
  grid-area:value;
  font-size:clamp(1.22rem,1.55vw,1.7rem);
  line-height:1.22;
  max-width:30ch;
  word-break:normal;
  overflow-wrap:anywhere;
}
body[data-role="formateur"] .premium-kpi-card--weakest .premium-kpi-meta{
  grid-area:meta;
  align-self:end;
  justify-self:end;
  text-align:right;
  font-size:.9rem;
  max-width:14ch;
}
@media (max-width: 1280px){
  body[data-role="formateur"] .premium-kpi-card--weakest{
    grid-template-columns:1fr;
    grid-template-areas:
      "label"
      "value"
      "meta";
  }
  body[data-role="formateur"] .premium-kpi-card--weakest .premium-kpi-meta{
    justify-self:start;
    text-align:left;
    max-width:none;
  }
}
@media (max-width: 760px){
  body[data-role="formateur"] .premium-kpi-card--wide{
    grid-column:auto;
  }
}

/* === V6.6.11 : BLOC LE PLUS FAIBLE AGRANDI + TEXTE REDUIT === */
body[data-role="formateur"] .premium-kpi-card--wide.premium-kpi-card--weakest{
  grid-column: span 2;
  min-height: 168px;
}
body[data-role="formateur"] .premium-kpi-card--weakest{
  display:grid;
  grid-template-columns:1fr;
  grid-template-areas:
    "label"
    "value"
    "meta";
  align-items:start;
  gap:10px;
  padding:20px 20px 18px;
}
body[data-role="formateur"] .premium-kpi-card--weakest .premium-kpi-label{
  grid-area:label;
  margin-bottom:0;
}
body[data-role="formateur"] .premium-kpi-card--weakest .premium-kpi-value{
  grid-area:value;
  font-size:clamp(1rem,1.2vw,1.18rem);
  line-height:1.24;
  max-width:none;
  word-break:normal;
  overflow-wrap:break-word;
  hyphens:none;
}
body[data-role="formateur"] .premium-kpi-card--weakest .premium-kpi-meta{
  grid-area:meta;
  justify-self:start;
  text-align:left;
  font-size:.84rem;
  line-height:1.35;
  max-width:none;
  margin-top:2px;
}
@media (max-width: 760px){
  body[data-role="formateur"] .premium-kpi-card--wide.premium-kpi-card--weakest{
    grid-column:auto;
    min-height:150px;
  }
}


/* V Essentiel — historiques colorés + bilans semestriels */
.history-entry .level-pill,
.print-history-row .level-pill{
  border-width:1px;
  border-style:solid;
  box-shadow:0 6px 14px rgba(23,54,95,.06);
}
.history-entry .level-pill.level-danger,
.print-history-row .level-pill.level-danger{background:#ffe7e5;border-color:#f1b1ab;color:#a23329}
.history-entry .level-pill.level-warning,
.print-history-row .level-pill.level-warning{background:#fff1d8;border-color:#f3cf8c;color:#9a6000}
.history-entry .level-pill.level-success,
.print-history-row .level-pill.level-success{background:#e7f6ea;border-color:#b8dfc2;color:#1d7140}
.history-entry .level-pill.level-info,
.print-history-row .level-pill.level-info{background:#e5f0ff;border-color:#bdd1ff;color:#244fb1}
.history-entry .level-pill.level-neutral,
.print-history-row .level-pill.level-neutral{background:#eef3fb;border-color:#d9e3f2;color:#5d7398}

.bilan-semester-panel{margin-top:18px}
.bilan-semester-inline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.printable-semester-bilan .print-semester-section{margin-top:18px;break-inside:avoid}
.print-semester-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.print-semester-head h4{margin:0;color:var(--blue-dark);font-size:1.05rem}
.print-semester-head p{margin:4px 0 0;color:#637ca3}
.print-semester-badge{display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;border-radius:999px;font-weight:800;white-space:nowrap}
.semester-metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.print-semester-table .print-history-row{grid-template-columns:120px 120px 1.5fr 180px 2fr;align-items:center}
.print-semester-table .print-history-row > span:last-child{white-space:normal;line-height:1.35}
@media (max-width:980px){
  .bilan-semester-inline,.semester-metrics-grid{grid-template-columns:1fr 1fr}
  .print-semester-table .print-history-row{grid-template-columns:1fr}
}


/* ===== Auto-évaluation : preuve rapide développée ===== */
body[data-role="apprenti"] .proof-assistant-panel{
  border:1px solid rgba(240,155,46,.28);
  border-radius:20px;
  padding:16px;
  background:linear-gradient(135deg,rgba(255,247,235,.96),rgba(255,255,255,.98));
  box-shadow:0 14px 34px rgba(154,96,20,.08);
}
body[data-role="apprenti"] .proof-assistant-head{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
  margin-bottom:12px;
}
body[data-role="apprenti"] .proof-assistant-head label{
  font-size:1rem;
  color:#a35f06;
}
body[data-role="apprenti"] .proof-assistant-head p,
body[data-role="apprenti"] .proof-assistant-help{
  margin:5px 0 0;
  color:#6f5a3d;
  font-size:.86rem;
  line-height:1.35;
}
body[data-role="apprenti"] .proof-assistant-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:10px;
}
body[data-role="apprenti"] .proof-mini-label{
  display:block;
  margin:0 0 6px;
  font-size:.78rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#9a6200;
  font-weight:800;
}
body[data-role="apprenti"] .quick-proof-dropzone{
  min-height:48px;
  border:1.5px dashed rgba(240,155,46,.6);
  border-radius:14px;
  padding:10px 12px;
  background:#fffdf9;
  display:flex;
  flex-direction:column;
  justify-content:center;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
body[data-role="apprenti"] .quick-proof-dropzone:hover{
  transform:translateY(-1px);
  border-color:#e88912;
  box-shadow:0 10px 22px rgba(154,96,20,.12);
}
body[data-role="apprenti"] .quick-proof-dropzone strong{
  color:#173b78;
  font-size:.95rem;
}
body[data-role="apprenti"] .quick-proof-dropzone small{
  color:#6b7fa4;
  margin-top:3px;
}
body[data-role="apprenti"] .quick-proof-list{
  display:grid;
  gap:8px;
  margin-top:12px;
}
body[data-role="apprenti"] .quick-proof-empty{
  border:1px dashed rgba(44,88,170,.22);
  background:rgba(255,255,255,.75);
  color:#6a7ea3;
  border-radius:14px;
  padding:10px 12px;
  font-size:.86rem;
}
body[data-role="apprenti"] .quick-proof-item{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  border:1px solid rgba(44,88,170,.14);
  border-radius:14px;
  padding:10px 12px;
  background:#fff;
}
body[data-role="apprenti"] .quick-proof-item strong{
  display:block;
  color:#173b78;
  font-size:.92rem;
}
body[data-role="apprenti"] .quick-proof-item span{
  display:block;
  color:#6b7fa4;
  font-size:.78rem;
  margin-top:2px;
}
body[data-role="apprenti"] .quick-proof-remove{
  border:none;
  background:#fff0e2;
  color:#a35f06;
  border-radius:999px;
  padding:7px 10px;
  font-weight:800;
  cursor:pointer;
}
@media (max-width:760px){
  body[data-role="apprenti"] .proof-assistant-head,
  body[data-role="apprenti"] .proof-assistant-grid{
    grid-template-columns:1fr;
    flex-direction:column;
  }
  body[data-role="apprenti"] .proof-library-shortcut{
    width:100%;
  }
}

/* ===== Version simplifiée : preuves apprenti ===== */
.optional-label{
  display:inline-flex;
  margin-left:6px;
  padding:3px 8px;
  border-radius:999px;
  background:rgba(23,59,120,.08);
  color:#173b78;
  font-size:.72rem;
  font-weight:800;
  vertical-align:middle;
}
body[data-role="apprenti"] .proof-assistant-simple{
  background:linear-gradient(135deg,rgba(255,247,235,.98),rgba(255,255,255,.98));
}
body[data-role="apprenti"] .proof-assistant-simple .proof-assistant-head{
  margin-bottom:10px;
}
body[data-role="apprenti"] .simple-proof-dropzone{
  min-height:76px;
  align-items:center;
  text-align:center;
  background:#fff;
}
body[data-role="apprenti"] .simple-proof-dropzone strong{
  font-size:1rem;
  color:#a35f06;
}
.apprentice-proof-dashboard{
  display:grid;
  gap:16px;
}
.proof-simple-header{
  align-items:center;
}
.proof-simple-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.proof-simple-kpi{
  min-height:110px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  border:1px solid rgba(23,59,120,.12);
  background:linear-gradient(135deg,#fff,#f8fbff);
}
.proof-simple-kpi span{
  color:#64748b;
  font-size:.86rem;
  font-weight:700;
}
.proof-simple-kpi strong{
  display:block;
  color:#173b78;
  font-size:2.35rem;
  line-height:1;
  margin:7px 0;
}
.proof-simple-kpi small{
  color:#6b7fa4;
}
.proof-simple-filters{
  display:grid;
  grid-template-columns:1fr 260px;
  gap:12px;
}
.proof-simple-list{
  display:grid;
  gap:12px;
}
.proof-simple-card{
  display:grid;
  grid-template-columns:112px 1fr;
  gap:14px;
  padding:14px;
  border:1px solid rgba(23,59,120,.12);
  border-radius:20px;
  background:#fff;
  box-shadow:0 12px 28px rgba(24,53,109,.06);
}
.proof-simple-card.tone-success{border-color:rgba(34,197,94,.28);}
.proof-simple-card.tone-warning{border-color:rgba(245,158,11,.32);}
.proof-simple-preview{
  min-height:98px;
  border-radius:16px;
  overflow:hidden;
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.08);
  display:flex;
  align-items:center;
  justify-content:center;
}
.proof-simple-thumb{
  width:100%;
  height:100%;
  min-height:98px;
  object-fit:cover;
}
.proof-simple-file-icon{
  width:74px;
  height:74px;
  border-radius:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,rgba(23,59,120,.09),rgba(242,109,33,.12));
  color:#173b78;
  font-weight:900;
}
.proof-simple-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.proof-simple-head strong{
  color:#173b78;
  font-size:1.02rem;
}
.proof-simple-head span{
  white-space:nowrap;
  border-radius:999px;
  background:#eef4ff;
  color:#244f91;
  padding:5px 10px;
  font-size:.78rem;
  font-weight:800;
}
.proof-simple-card.tone-success .proof-simple-head span{background:#eaf8ef;color:#166534;}
.proof-simple-card.tone-warning .proof-simple-head span{background:#fff6dd;color:#92400e;}
.proof-simple-meta,
.proof-simple-muted{
  margin:.25rem 0 .4rem;
  color:#6b7fa4;
  font-size:.84rem;
}
.proof-simple-content p{
  margin:.35rem 0;
  color:#334155;
  line-height:1.35;
}
.proof-simple-tags{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:8px 0 10px;
}
.proof-simple-tags span{
  padding:5px 9px;
  border-radius:999px;
  background:#f7faff;
  color:#42679f;
  font-size:.78rem;
  font-weight:700;
}
@media (max-width:980px){
  .proof-simple-grid{grid-template-columns:1fr 1fr;}
  .proof-simple-filters{grid-template-columns:1fr;}
  .proof-simple-card{grid-template-columns:90px 1fr;}
}
@media (max-width:720px){
  .proof-simple-grid{grid-template-columns:1fr;}
  .proof-simple-card{grid-template-columns:1fr;}
}


/* Correctifs auto-évaluation / preuves */
.proof-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;}
.proof-back-chip{margin-top:10px;display:inline-flex;justify-content:center;width:100%;}
#saveEvaluationBtn[disabled]{opacity:.7;cursor:not-allowed;filter:saturate(.8);}
@media (max-width:760px){.proof-header-actions{width:100%;justify-content:stretch}.proof-header-actions .primary-btn,.proof-header-actions .secondary-btn{width:100%;}}


/* Radar agrandi au clic - bilans apprenti et tuteur */
.radar-zoomable{position:relative;cursor:zoom-in;outline:none;transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;}
.radar-zoomable:hover,.radar-zoomable:focus-visible{transform:translateY(-2px);box-shadow:0 18px 36px rgba(23,59,120,.13)!important;border-color:#ffb14a!important;}
.radar-zoom-trigger{display:flex;align-items:center;justify-content:center;flex-direction:column;width:100%;min-height:100%;border:0;background:transparent;padding:0;color:inherit;font:inherit;}
.radar-zoom-hint{display:inline-flex;align-items:center;justify-content:center;align-self:center;margin-top:10px;padding:7px 12px;border-radius:999px;background:#fff6e8;border:1px solid #ffd49b;color:#9a4e00;font-size:.82rem;font-weight:900;line-height:1;}
.radar-zoom-dialog{width:min(96vw,1120px);max-height:94vh;}
.radar-zoom-body{display:grid;gap:16px;align-items:center;justify-items:center;background:linear-gradient(180deg,#fbfdff 0%,#f3f7ff 100%);}
.radar-zoom-content{width:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:10px 8px 4px;}
.radar-zoom-body .radar-svg{width:min(78vh,760px,92vw);max-width:100%;height:auto;}
.radar-zoom-body .mini-radar-svg{width:min(76vh,720px,92vw);max-width:100%;height:auto;}
.radar-zoom-body .tuteur-radar-svg{width:min(78vh,760px,92vw);max-width:100%;height:auto!important;min-height:0;}
.radar-zoom-body .radar-label,.radar-zoom-body .radar-axis-label{font-size:12px;font-weight:900;}
.radar-zoom-details{width:min(100%,820px);display:grid;gap:12px;}
.radar-zoom-levels{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;width:100%;}
.radar-zoom-levels span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:70px;border-radius:18px;background:#fff;border:1px solid #d9e6f8;color:#173b78;font-weight:800;text-align:center;box-shadow:0 10px 20px rgba(23,59,120,.06);}
.radar-zoom-levels strong{font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;color:#647ca5;}
.tuteur-radar-zoom-levels{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));}
@media (max-width:760px){.radar-zoom-dialog{width:100%;border-radius:20px}.radar-zoom-body .radar-svg,.radar-zoom-body .mini-radar-svg,.radar-zoom-body .tuteur-radar-svg{width:92vw}.radar-zoom-levels{grid-template-columns:1fr 1fr}.radar-zoom-hint{font-size:.78rem}}
@media print{.radar-zoom-hint,.radar-zoom-modal{display:none!important}.radar-zoomable{cursor:default!important;transform:none!important}}


/* CFA360 final ergonomic polish 2026 */
.eval-success-panel{margin:18px;padding:32px;border-radius:28px;background:linear-gradient(135deg,#fff8ef 0%,#eef5ff 100%);border:1px solid rgba(255,126,32,.25);box-shadow:0 20px 55px rgba(23,59,120,.16);text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}.eval-success-panel.auth-hidden{display:none!important}.eval-success-icon{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#ff8a2b,#ffb36b);color:#fff;font-size:42px;font-weight:900;box-shadow:0 16px 32px rgba(255,126,32,.32)}.eval-success-panel h3{margin:0;color:#173b78;font-size:2rem}.eval-success-panel p{margin:0;color:#4d6384;font-size:1.05rem;max-width:620px}.eval-success-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:8px}.side-nav .nav-item[href="apprenti-activite.html"]::before{content:"📎";margin-right:6px}.formateur-class-bulk-row{display:grid;grid-template-columns:minmax(220px,1fr) 180px auto;align-items:center;gap:12px;margin:12px 0 14px;padding:14px;border-radius:20px;background:linear-gradient(135deg,#fff7ed,#eef5ff);border:1px solid rgba(255,126,32,.22)}.formateur-class-bulk-row div{display:flex;flex-direction:column;gap:2px}.formateur-class-bulk-row strong{color:#173b78}.formateur-class-bulk-row span{font-size:.86rem;color:#64748b}.bilan-quick-synthesis-panel{margin-bottom:16px;border:1px solid rgba(23,59,120,.1);background:linear-gradient(135deg,#ffffff 0%,#f4f8ff 58%,#fff7ef 100%)}.bilan-synthesis-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.bilan-synthesis-head h3{margin:2px 0 4px;color:#173b78;font-size:1.35rem}.bilan-synthesis-head p{margin:0;color:#60708b}.bilan-synthesis-badge{padding:8px 12px;border-radius:999px;background:#173b78;color:#fff;font-weight:800;text-transform:uppercase;font-size:.75rem;letter-spacing:.04em;white-space:nowrap}.bilan-synthesis-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.bilan-synthesis-grid span{display:flex;min-height:72px;flex-direction:column;justify-content:center;gap:4px;border-radius:18px;padding:12px 14px;background:#fff;border:1px solid #e4ecf8;box-shadow:0 8px 20px rgba(23,59,120,.06);color:#53657f}.bilan-synthesis-grid strong{font-size:1.35rem;color:#173b78}.bilan-synthesis-grid .priority{border-color:rgba(255,126,32,.34);background:linear-gradient(135deg,#fff7ed,#ffffff)}.bilan-synthesis-grid .priority strong{font-size:.9rem;color:#f97316;text-transform:uppercase;letter-spacing:.03em}@media(max-width:1100px){.bilan-synthesis-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.formateur-class-bulk-row{grid-template-columns:1fr}.eval-success-actions{flex-direction:column;width:100%}.eval-success-actions>*{width:100%;justify-content:center}}


/* ===== Logo CFA360° sur la page de connexion ===== */
body.login-page-v18 .login-v16-cfa360-hero-logo,
body.login-page-v16 .login-v16-cfa360-hero-logo{
  display:block;
  width:min(100%,540px);
  height:auto;
  margin:8px 0 10px;
  object-fit:contain;
  filter:drop-shadow(0 14px 28px rgba(0,0,0,.16));
}
@media (max-width:980px){
  body.login-page-v18 .login-v16-cfa360-hero-logo,
  body.login-page-v16 .login-v16-cfa360-hero-logo{width:min(100%,460px);}
}


/* ===== SOURCE: responsive-app.css ===== */
/* CFA360 responsive bootstrap - neutralisé pour laisser mobile-perfect.css gérer le mobile. */
html,body{max-width:100%;}
body.responsive-ready{min-width:0;-webkit-text-size-adjust:100%;}
body.responsive-ready img{max-width:100%;height:auto;}
body.responsive-ready .table-wrap{overflow:auto;-webkit-overflow-scrolling:touch;}


/* ===== SOURCE: pwa.css ===== */
/* CFA360 PWA UI */
.cfa360-pwa-install{
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:9999;
  border:0;
  border-radius:999px;
  padding:13px 18px;
  min-height:48px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:linear-gradient(135deg,#f59a23 0%,#ff6b1a 55%,#f34b24 100%);
  color:#fff;
  font-weight:900;
  font-size:14px;
  box-shadow:0 18px 40px rgba(245,130,32,.28);
  cursor:pointer;
}
.cfa360-pwa-install[hidden]{ display:none !important; }
.cfa360-pwa-install:hover{ transform:translateY(-1px); box-shadow:0 22px 46px rgba(245,130,32,.34); }
.cfa360-pwa-install-icon{
  width:26px;
  height:26px;
  display:inline-grid;
  place-items:center;
  border-radius:50%;
  background:rgba(255,255,255,.22);
}
.cfa360-pwa-status{
  position:fixed;
  left:18px;
  bottom:18px;
  z-index:9998;
  padding:8px 12px;
  border-radius:999px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.01em;
  color:#0b2e75;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(20,82,188,.14);
  box-shadow:0 12px 30px rgba(11,46,117,.10);
  backdrop-filter:blur(10px);
}
.cfa360-pwa-status.is-offline{
  color:#7a2a00;
  background:#fff3e7;
  border-color:#ffd2aa;
}
.cfa360-pwa-modal{
  position:fixed;
  inset:0;
  z-index:10000;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(5,18,45,.48);
  backdrop-filter:blur(8px);
}
.cfa360-pwa-modal-card{
  position:relative;
  width:min(520px,100%);
  border-radius:28px;
  padding:28px;
  background:#fff;
  color:#072965;
  box-shadow:0 28px 70px rgba(5,18,45,.25);
}
.cfa360-pwa-modal-card h2{ margin:0 0 10px; font-size:24px; }
.cfa360-pwa-modal-card p{ margin:0 0 14px; color:#526487; font-weight:700; }
.cfa360-pwa-modal-card ol{ margin:0; padding-left:22px; line-height:1.8; }
.cfa360-pwa-modal-close{
  position:absolute;
  top:16px;
  right:16px;
  width:38px;
  height:38px;
  border:0;
  border-radius:50%;
  background:#eef4ff;
  color:#0b2e75;
  font-size:24px;
  font-weight:900;
  cursor:pointer;
}
@media (max-width:720px){
  .cfa360-pwa-install{ right:14px; bottom:14px; min-height:44px; padding:11px 14px; font-size:13px; }
  .cfa360-pwa-status{ left:12px; bottom:12px; font-size:11px; padding:7px 10px; }
}
@media print{
  .cfa360-pwa-install,
  .cfa360-pwa-status,
  .cfa360-pwa-modal{ display:none !important; }
}


/* ===== SOURCE: simplification-essentiel.css ===== */

/* Version essentielle - simplification visuelle et fonctionnelle */
body.essentiel-mode .secondary-access-link[data-role="lecteur-cfa"],
body.essentiel-mode .secondary-access-link[data-role="lecteur-ufa"] { display:none !important; }

.essentiel-badge {
  display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .8rem;border-radius:999px;
  background:rgba(242,109,33,.12);color:#8a3d11;font-weight:700;font-size:.85rem;
}

body[data-role="apprenti"] .apprentice-fold,
body[data-role="apprenti"] a.quick-link-card[href="progression.html"],
body[data-role="apprenti"] a.quick-link-card[href="apprenti-activite.html"],
body[data-role="apprenti"] a.quick-link-card[href="journal-bord.html"],
body[data-role="apprenti"] #openPdfCardBtn {
  display:none !important;
}

body[data-role="apprenti"] .quick-links-grid.quick-links-grid-v21 {
  grid-template-columns:repeat(2,minmax(220px,1fr));
}

body[data-role="apprenti"] .cap-moment-grid {
  grid-template-columns:repeat(3,minmax(180px,1fr));
}

body[data-role="apprenti"] .command-hero-copy .command-hero-kicker::after {
  content:" · Version essentielle";
  font-weight:600;
  opacity:.8;
}

body[data-role="tuteur"] .proof-review-panel,
body[data-role="tuteur"] .unified-pilot-panel {
  display:none !important;
}

body[data-role="formateur"] .proof-review-panel,
body[data-role="formateur"] .unified-pilot-panel,
body[data-role="formateur"] .formateur-bottom-grid {
  display:none !important;
}

body[data-role="tuteur"] .premium-grid.role-premium-grid,
body[data-role="formateur"] .premium-grid.role-premium-grid {
  margin-bottom:1rem;
}

body[data-role="formateur"] #tripartiteSection,
body[data-role="tuteur"] .tuteur-tripartite-grid {
  scroll-margin-top:1rem;
}

body[data-role="tuteur"] .sidebar,
body[data-role="formateur"] .sidebar,
body[data-role="apprenti"] .sidebar {
  position:sticky; top:0; align-self:start;
}

body[data-role="tuteur"] .side-nav,
body[data-role="formateur"] .side-nav,
body[data-role="apprenti"] .side-nav {
  display:flex; flex-direction:column; gap:.5rem;
}

body[data-role="tuteur"] .sidebar-utility-links,
body[data-role="formateur"] .sidebar-utility-links,
body[data-role="apprenti"] .sidebar-utility-links {
  margin-top:1rem;
}

/* messagerie : bandeau simple */
.messagerie-essentiel-banner {
  margin:0 0 1rem; padding:1rem 1.2rem; border-radius:18px;
  background:linear-gradient(135deg,rgba(242,109,33,.12),rgba(242,109,33,.05));
  border:1px solid rgba(242,109,33,.18);
}
.messagerie-essentiel-banner strong{display:block;font-size:1rem;margin-bottom:.25rem;}
.messagerie-essentiel-banner span{color:#5f6776;}

/* login */
.login-v18-topbar .essentiel-badge{margin-top:.35rem;}


/* Simplification forte de l'espace apprenti */
body[data-role="apprenti"] .apprentice-dashboard-simple{
  display:grid;
  gap:1rem;
}
body[data-role="apprenti"] .apprentice-simple-header{
  margin-bottom:0;
}
body[data-role="apprenti"] .apprentice-simple-cockpit{
  display:grid;
  gap:1rem;
}
body[data-role="apprenti"] .apprentice-simple-tags{
  margin-top:-.25rem;
}
body[data-role="apprenti"] .apprentice-simple-kpis{
  display:grid;
  grid-template-columns:repeat(3,minmax(180px,1fr));
  gap:1rem;
}
body[data-role="apprenti"] .simple-kpi-card{
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.08);
  border-radius:18px;
  padding:1rem 1rem 1.1rem;
}
body[data-role="apprenti"] .simple-kpi-card span{
  display:block;
  font-size:.84rem;
  color:#64748b;
  margin-bottom:.4rem;
}
body[data-role="apprenti"] .simple-kpi-card strong{
  display:block;
  font-size:2rem;
  line-height:1;
  color:#0f172a;
  margin-bottom:.45rem;
}
body[data-role="apprenti"] .simple-kpi-card p{
  margin:0;
  font-size:.9rem;
  color:#475569;
}
body[data-role="apprenti"] .apprentice-simple-main-grid,
body[data-role="apprenti"] .apprentice-simple-lists{
  grid-template-columns:repeat(2,minmax(280px,1fr));
}
body[data-role="apprenti"] .apprentice-simple-help .stack-list{
  display:grid;
  grid-template-columns:repeat(3,minmax(180px,1fr));
  gap:1rem;
}
body[data-role="apprenti"] .apprentice-guide-simple .guide-mini-row{
  display:none !important;
}
body[data-role="apprenti"] .review-request-actions{
  display:none;
}
body[data-role="apprenti"] .eval-history-lead{
  font-size:.92rem;
}
@media (max-width: 1100px){
  body[data-role="apprenti"] .apprentice-simple-kpis,
  body[data-role="apprenti"] .apprentice-simple-main-grid,
  body[data-role="apprenti"] .apprentice-simple-lists,
  body[data-role="apprenti"] .apprentice-simple-help .stack-list{
    grid-template-columns:1fr;
  }
}


/* Version essentielle apprenti simplifiée */
.quick-link-button{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;width:100%;border:none;cursor:pointer;text-align:left;background:linear-gradient(135deg, rgba(255,255,255,.94), rgba(255,245,236,.96));}
.quick-link-button strong,.quick-link-button span{pointer-events:none;}
.apprentice-dashboard-simple .apprentice-home-main-grid,.apprentice-dashboard-simple .apprentice-home-simplified-grid{grid-template-columns:1fr;}


/* Tri des compétences par domaine sur les vues d'évaluation */
.eval-domain-section{
  display:grid;
  gap:12px;
  margin-bottom:14px;
}

.eval-domain-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  border-radius:18px;
  border:1px solid rgba(26,73,145,.10);
  background:linear-gradient(180deg,#f8fbff 0%, #eef4ff 100%);
}

.eval-domain-head strong{
  display:block;
  color:#173b78;
  font-size:.98rem;
}

.eval-domain-head span{
  color:#6780a3;
  font-size:.84rem;
  font-weight:700;
}

.eval-domain-list{
  display:grid;
  gap:10px;
}

.competence-domain-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  margin-right:8px;
  padding:4px 9px;
  border-radius:999px;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.01em;
}

.competence-domain-badge.domain-pro{
  background:rgba(242,140,27,.14);
  color:#9b5700;
}

.competence-domain-badge.domain-general{
  background:rgba(36,95,202,.12);
  color:#1e52a8;
}

.eval-competence-meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
}


/* ===== SOURCE: mobile-perfect.css ===== */
/* =========================================================
   CFA360 - Optimisation smartphone / tablette
   Version mobile 2026-05-22
   Objectif : rendre chaque page lisible, tactile et fluide
   sans casser la version ordinateur.
   ========================================================= */

:root{
  --mobile-safe-top: env(safe-area-inset-top, 0px);
  --mobile-safe-bottom: env(safe-area-inset-bottom, 0px);
}

html{
  width:100%;
  min-width:0 !important;
  overflow-x:hidden !important;
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
}

body,
body.responsive-ready,
body.mobile-same-layout{
  width:100%;
  min-width:0 !important;
  max-width:100% !important;
  overflow-x:hidden !important;
  background:#eef3fb;
}

img,svg,video,canvas{
  max-width:100%;
  height:auto;
}

button,
a,
input,
select,
textarea{
  -webkit-tap-highlight-color:rgba(245,130,32,.18);
}

input,
select,
textarea{
  font-size:16px !important; /* évite le zoom automatique iPhone */
}

/* ---------- Base mobile ---------- */
@media (max-width: 900px){
  body{
    min-height:100svh;
  }

  .shell,
  body.responsive-ready .shell{
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    min-height:100svh !important;
    padding:10px !important;
    place-items:unset !important;
  }

  .admin-card,
  .auth-card,
  .role-eval-card,
  .tutor-card,
  .apprentice-home-card-v21,
  .messages-window-card,
  .progression-card,
  .login-v16-card,
  body.responsive-ready .admin-card,
  body.responsive-ready .role-eval-card,
  body.responsive-ready .apprentice-home-card-v21,
  body.responsive-ready .messages-window-card,
  body.responsive-ready .progression-card{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    min-height:auto !important;
    display:block !important;
    border-radius:22px !important;
    overflow:visible !important;
  }

  .dashboard,
  .form-panel,
  .login-v16-right,
  .login-v16-left,
  .login-v18-main-panel,
  .login-v18-login-panel,
  .login-v18-secondary-links-panel{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    padding:16px !important;
    overflow:visible !important;
  }

  .sidebar{
    position:relative !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    height:auto !important;
    min-height:0 !important;
    padding:16px !important;
    border-radius:20px !important;
    margin:0 0 12px 0 !important;
  }

  .sidebar-top{
    display:grid !important;
    grid-template-columns:64px 1fr !important;
    gap:12px !important;
    align-items:center !important;
  }

  .sidebar-logo-box{
    width:64px !important;
    min-width:64px !important;
    padding:8px !important;
    border-radius:16px !important;
  }

  .sidebar-title{
    font-size:1.4rem !important;
    line-height:1.1 !important;
    margin:0 !important;
  }

  .sidebar-subtitle,
  .eyebrow.light{
    font-size:.86rem !important;
    margin:.2rem 0 0 !important;
  }

  .side-nav,
  .sidebar-utility-links{
    display:flex !important;
    flex-wrap:nowrap !important;
    gap:8px !important;
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch !important;
    padding:10px 0 4px !important;
    margin:10px -2px 0 !important;
  }

  .side-nav::-webkit-scrollbar,
  .sidebar-utility-links::-webkit-scrollbar{
    display:none;
  }

  .nav-item,
  .utility-link-chip,
  .logout-btn{
    flex:0 0 auto !important;
    min-height:42px !important;
    padding:10px 12px !important;
    border-radius:999px !important;
    font-size:.92rem !important;
    white-space:nowrap !important;
  }

  .logout-btn{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:auto !important;
    margin-top:10px !important;
  }

  .tutor-sidebar-note,
  .apprentice-side-note-v21,
  .tutor-side-note-simple{
    display:none !important;
  }

  .dashboard-header,
  .tutor-header,
  .tutor-header-v12,
  .apprentice-simple-header{
    display:block !important;
    padding:14px 0 12px !important;
    margin:0 !important;
  }

  .dashboard-header h2,
  .login-top h2,
  .form-panel h2{
    font-size:clamp(1.65rem, 7vw, 2.2rem) !important;
    line-height:1.08 !important;
    margin:0 0 8px !important;
  }

  .header-text,
  .login-intro,
  .small-muted{
    font-size:.96rem !important;
    line-height:1.45 !important;
  }

  .stats-grid,
  .cards,
  .grid,
  .dashboard-grid,
  .apprentice-home-grid,
  .apprentice-home-grid-v21,
  .apprentice-home-dashboard-grid,
  .apprentice-simple-main-grid,
  .tutor-main-grid,
  .form-grid,
  .filters-grid,
  .pedagogical-filters,
  .detail-grid,
  .detail-columns,
  .credentials-box,
  .role-grid,
  .login-v16-role-grid,
  .login-v18-role-grid,
  .login-v16-fields,
  .login-v18-fields,
  .login-v16-links,
  .login-v18-secondary-inline{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:12px !important;
  }

  .stat-card,
  .panel,
  .card,
  .login-section,
  .login-v16-panel,
  .action-card,
  .choice-card,
  .detail-card,
  .evaluation-card,
  .competence-card,
  .competency-card,
  .history-card,
  .message-card{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    border-radius:18px !important;
    padding:14px !important;
  }

  .stat-value{
    font-size:2rem !important;
  }

  .role-pill,
  .login-v16-role-card,
  .secondary-access-link,
  .primary-btn,
  .secondary-btn,
  .download-link,
  button[type="submit"]{
    width:100% !important;
    min-height:48px !important;
    border-radius:16px !important;
    font-size:1rem !important;
    justify-content:center !important;
    text-align:center !important;
  }

  .role-pill,
  .login-v16-role-card{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:14px !important;
    min-height:58px !important;
  }

  .pill-index,
  .role-badge{
    display:none !important;
  }

  label,
  .field-group,
  .login-v16-field{
    width:100% !important;
    min-width:0 !important;
  }

  input,
  select,
  textarea{
    width:100% !important;
    min-height:48px !important;
    border-radius:14px !important;
    padding:12px 14px !important;
  }

  textarea{
    min-height:110px !important;
  }

  .button-row,
  .actions-row,
  .form-actions,
  .evaluation-actions,
  .toolbar,
  .top-actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
  }

  .table-wrap,
  .data-table-wrap,
  .history-table-wrap,
  table{
    width:100% !important;
    max-width:100% !important;
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch !important;
  }

  table{
    display:block !important;
    white-space:nowrap !important;
    border-radius:16px !important;
  }

  th,td{
    padding:10px 12px !important;
    font-size:.9rem !important;
  }

  .login-v16-shell{
    width:100% !important;
    min-height:100svh !important;
    padding:10px !important;
    display:flex !important;
    align-items:stretch !important;
  }

  .login-v16-card{
    margin:auto !important;
    box-shadow:0 18px 42px rgba(23,54,95,.12) !important;
  }

  .login-v16-left{
    text-align:center !important;
    background:linear-gradient(135deg,#173b75,#245fca 65%,#f28c1b) !important;
  }

  .login-v16-left-top{
    display:grid !important;
    grid-template-columns:1fr !important;
    justify-items:center !important;
    gap:12px !important;
  }

  .login-v16-logo-box{
    width:min(190px, 70vw) !important;
    padding:14px !important;
    border-radius:22px !important;
  }

  .login-v16-cfa360-hero-logo{
    width:min(260px, 82vw) !important;
  }

  .login-v16-link-card{
    min-height:54px !important;
    padding:12px !important;
    border-radius:16px !important;
  }

  .login-v18-topbar{
    display:block !important;
  }

  .login-v18-status{
    margin-top:8px !important;
    width:100% !important;
    text-align:center !important;
  }

  .login-v16-password-wrap{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:8px !important;
  }

  .login-v16-password-toggle{
    position:static !important;
    width:100% !important;
  }
}

/* ---------- Très petits écrans iPhone ---------- */
@media (max-width: 480px){
  .shell,
  body.responsive-ready .shell{
    padding:8px !important;
  }

  .dashboard,
  .form-panel,
  .login-v16-right,
  .login-v16-left{
    padding:14px !important;
  }

  .sidebar{
    padding:14px !important;
  }

  .sidebar-top{
    grid-template-columns:54px 1fr !important;
  }

  .sidebar-logo-box{
    width:54px !important;
    min-width:54px !important;
  }

  .sidebar-title{
    font-size:1.22rem !important;
  }

  .dashboard-header h2,
  .login-top h2,
  .form-panel h2{
    font-size:1.55rem !important;
  }

  .primary-btn,
  .secondary-btn,
  .download-link,
  .logout-btn,
  .nav-item,
  .utility-link-chip{
    font-size:.92rem !important;
  }

  .stat-card,
  .panel,
  .card,
  .login-section,
  .login-v16-panel,
  .action-card,
  .choice-card,
  .detail-card,
  .evaluation-card,
  .competence-card,
  .competency-card,
  .history-card,
  .message-card{
    padding:12px !important;
  }
}

/* ---------- Tablette ---------- */
@media (min-width: 901px) and (max-width: 1180px){
  html,body,
  body.responsive-ready{
    overflow-x:hidden !important;
  }

  .shell,
  body.responsive-ready .shell{
    width:100% !important;
    min-width:0 !important;
    padding:18px !important;
  }

  .admin-card,
  .role-eval-card,
  .apprentice-home-card-v21,
  .messages-window-card,
  .progression-card,
  body.responsive-ready .admin-card,
  body.responsive-ready .role-eval-card,
  body.responsive-ready .apprentice-home-card-v21,
  body.responsive-ready .messages-window-card,
  body.responsive-ready .progression-card{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
  }

  .sidebar{
    min-width:240px !important;
  }
}


/* ===== SOURCE: landing-cfa360.css ===== */
:root{
  --cfa-navy:#003B71;
  --cfa-deep:#052a55;
  --cfa-blue:#0757a4;
  --cfa-orange:#f58220;
  --cfa-soft:#eaf3ff;
  --cfa-white:#ffffff;
  --cfa-border:rgba(255,255,255,.22);
  --cfa-shadow:0 24px 70px rgba(0,20,55,.26);
}

body.cfa360-home{
  min-height:100vh !important;
  margin:0 !important;
  color:#fff !important;
  background:
    radial-gradient(circle at 15% 8%, rgba(245,130,32,.34), transparent 18rem),
    radial-gradient(circle at 84% 24%, rgba(255,255,255,.16), transparent 22rem),
    radial-gradient(circle at 50% 100%, rgba(2,80,160,.72), transparent 32rem),
    linear-gradient(135deg,#061f44 0%, #003B71 48%, #0757a4 100%) !important;
  overflow-x:hidden !important;
}

.cfa360-home *{ box-sizing:border-box; }

.cfa-home-topbar{
  height:92px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:18px clamp(18px,4vw,46px);
  background:rgba(255,255,255,.94);
  border-bottom:1px solid rgba(255,255,255,.18);
  box-shadow:0 10px 28px rgba(0,20,55,.18);
  backdrop-filter:blur(14px);
  position:sticky;
  top:0;
  z-index:10;
}

.cfa-home-brand{display:flex;align-items:center;text-decoration:none;}
.cfa-home-brand img{
  width:min(380px,52vw);
  max-height:58px;
  object-fit:contain;
  object-position:left center;
}
.cfa-home-help{
  border:1px solid rgba(0,59,113,.18);
  background:#fff;
  color:var(--cfa-navy);
  font-weight:900;
  font-size:1.02rem;
  display:inline-flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
  border-radius:999px;
  padding:10px 15px;
  box-shadow:0 6px 18px rgba(0,59,113,.10);
}
.cfa-home-help span{
  width:26px;height:26px;border:2px solid var(--cfa-orange);border-radius:999px;
  display:inline-grid;place-items:center;color:var(--cfa-orange);
}

.cfa-home-main{
  width:min(1120px, calc(100vw - 28px));
  margin:0 auto;
  padding:38px 0 86px;
}
.cfa-home-hero{text-align:center;padding:4px 0 18px;}
.cfa-home-hero-logo{
  width:min(520px, 86vw);
  display:block;
  margin:0 auto 18px;
  border-radius:28px;
  box-shadow:0 30px 80px rgba(0,15,45,.28);
}
.cfa-home-hero h1{display:none;}
.cfa-home-hero p{
  margin:0 auto;
  max-width:760px;
  font-size:clamp(1.12rem,2.4vw,1.55rem);
  line-height:1.35;
  color:rgba(255,255,255,.95);
  font-weight:700;
  text-shadow:0 2px 10px rgba(0,20,55,.25);
}

.cfa-home-login{display:grid;gap:22px;}
.cfa-home-role-section{text-align:center;}
.cfa-home-section-title{margin:18px auto 22px;}
.cfa-home-chip{
  display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:5px 13px;
  border:1px solid rgba(245,130,32,.55);background:rgba(245,130,32,.18);color:#ffd6ae;
  border-radius:999px;font-size:.82rem;font-weight:950;text-transform:uppercase;letter-spacing:.05em;
}
.cfa-home-section-title h2{
  margin:12px 0 8px;
  font-size:clamp(1.25rem,2.4vw,1.75rem);
  color:#fff;
  font-weight:950;
}
.cfa-home-section-title p{margin:0;color:rgba(255,255,255,.84);font-weight:800;}

.cfa-home-role-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  max-width:900px;
  margin:0 auto;
}
.cfa-home-role-card{
  border:1px solid rgba(255,255,255,.22) !important;
  background:rgba(255,255,255,.92) !important;
  min-height:198px;
  padding:26px 20px !important;
  border-radius:24px !important;
  box-shadow:0 18px 48px rgba(0,20,55,.18) !important;
  display:flex !important;flex-direction:column !important;align-items:center !important;justify-content:center !important;
  gap:12px !important;color:var(--cfa-navy) !important;cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}
.cfa-home-role-card:hover,.cfa-home-role-card.active{
  transform:translateY(-5px);
  border-color:rgba(245,130,32,.82) !important;
  box-shadow:0 24px 60px rgba(0,20,55,.26) !important;
  background:linear-gradient(180deg,#fff 0%,#fff4e8 100%) !important;
}
.cfa-home-role-card strong{font-size:1.38rem;line-height:1.1;color:var(--cfa-navy);}
.cfa-home-role-card small{font-size:1rem;line-height:1.38;color:#244e82;max-width:220px;}
.cfa-home-role-icon{
  width:82px;height:82px;border-radius:999px;display:grid;place-items:center;font-size:2rem;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.65);
}
.cfa-home-blue{ background:#e5efff; }
.cfa-home-green{ background:#e4f8ec; }
.cfa-home-purple{ background:#efe6ff; }

.cfa-home-admin-row{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:20px auto 0;}
.cfa-home-admin-link{
  appearance:none;border:1px solid rgba(255,255,255,.26) !important;
  background:rgba(255,255,255,.13) !important;color:#fff !important;border-radius:999px !important;
  padding:12px 20px !important;font-weight:950 !important;cursor:pointer;
  box-shadow:0 10px 26px rgba(0,20,55,.16);backdrop-filter:blur(10px);
}
.cfa-home-admin-link.active,.cfa-home-admin-link:hover{
  background:linear-gradient(135deg,var(--cfa-orange),#ff9f3e) !important;color:#fff !important;border-color:rgba(255,255,255,.42) !important;
}

.cfa-home-form-panel{
  width:min(860px,100%);
  margin:10px auto 0;
  padding:18px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:24px;
  background:rgba(255,255,255,.95);
  box-shadow:var(--cfa-shadow);
  display:grid;
  grid-template-columns:1fr 1fr auto;
  gap:14px;
  align-items:end;
}
.cfa-home-form-panel label{display:grid;gap:7px;text-align:left;font-weight:950;color:var(--cfa-navy);}
.cfa-home-form-panel input{
  width:100%;min-height:50px;border:1px solid #d6e2f2;border-radius:15px;padding:0 14px;
  font-size:1rem;color:#193e6c;background:white;outline:none;
}
.cfa-home-form-panel input:focus{border-color:var(--cfa-orange);box-shadow:0 0 0 4px rgba(245,130,32,.14);}
.cfa-home-password-wrap{display:flex;gap:8px;}
.cfa-home-password-wrap input{flex:1;min-width:0;}
.cfa-home-password-wrap button{
  border:1px solid rgba(0,59,113,.16);border-radius:14px;background:#f2f7ff;color:var(--cfa-navy);
  font-weight:900;padding:0 12px;cursor:pointer;
}
.cfa-home-submit{
  min-height:50px;border:0;border-radius:15px;padding:0 26px;
  background:linear-gradient(135deg,var(--cfa-orange),#ff9f3e);color:white;font-weight:950;font-size:1rem;cursor:pointer;
  box-shadow:0 14px 28px rgba(245,130,32,.30);
}
.cfa-home-form-panel #loginMessage{grid-column:1 / -1;margin:0;text-align:center;font-weight:850;color:#0f3768;}

.cfa-home-platforms{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;margin:22px auto 0;}
.cfa-home-platforms a{
  min-height:58px;display:flex;align-items:center;gap:12px;padding:10px 16px;border-radius:18px;
  background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.28);color:var(--cfa-navy);font-weight:950;text-decoration:none;
  box-shadow:0 14px 32px rgba(0,20,55,.15);
}
.cfa-home-platforms img{width:46px;height:38px;object-fit:contain;}
.cfa-home-footer{
  position:fixed;left:0;right:0;bottom:0;min-height:46px;display:grid;place-items:center;
  color:rgba(255,255,255,.9);background:rgba(0,28,62,.42);border-top:1px solid rgba(255,255,255,.16);
  backdrop-filter:blur(14px);z-index:8;font-weight:700;
}

@media (max-width: 860px){
  .cfa-home-topbar{height:76px;padding:11px 14px;}
  .cfa-home-brand img{width:min(270px,64vw);max-height:52px;}
  .cfa-home-help{font-size:.94rem;padding:9px 11px;}
  .cfa-home-main{width:min(100% - 24px, 620px);padding:26px 0 78px;}
  .cfa-home-hero-logo{width:min(420px,90vw);border-radius:22px;}
  .cfa-home-role-grid{grid-template-columns:1fr;gap:14px;}
  .cfa-home-role-card{min-height:auto;padding:18px !important;flex-direction:row !important;justify-content:flex-start !important;text-align:left !important;}
  .cfa-home-role-icon{width:62px;height:62px;font-size:1.55rem;flex:0 0 auto;}
  .cfa-home-role-card small{max-width:none;}
  .cfa-home-form-panel{grid-template-columns:1fr;padding:16px;}
  .cfa-home-submit{width:100%;}
  .cfa-home-footer{position:static;min-height:48px;}
}

@media (max-width: 420px){
  .cfa-home-help{font-size:0;width:44px;height:44px;padding:0;justify-content:center;}
  .cfa-home-help span{width:25px;height:25px;font-size:.9rem;}
  .cfa-home-hero p{font-size:1rem;}
  .cfa-home-section-title{margin-top:8px;}
  .cfa-home-platforms a{width:100%;justify-content:center;}
  .cfa-home-password-wrap{flex-direction:column;}
  .cfa-home-password-wrap button{min-height:42px;}
}


/* Parcours en 2 étapes : accueil profil puis page connexion */
.cfa360-profile-only .cfa-home-role-card,
.cfa360-profile-only .cfa-home-admin-link,
.cfa-home-back{
  text-decoration:none !important;
}
.cfa360-profile-only .cfa-home-role-card:focus-visible,
.cfa360-profile-only .cfa-home-admin-link:focus-visible,
.cfa-home-back:focus-visible{
  outline:4px solid rgba(245,130,32,.42);
  outline-offset:4px;
}
.cfa360-profile-only .cfa-home-role-card{
  color:var(--cfa-navy) !important;
}
.cfa360-profile-only .cfa-home-role-section{
  margin-top:10px;
}
.cfa360-login-only .cfa-login-hero{
  padding-top:18px;
}
.cfa360-login-only .cfa-login-hero .cfa-home-hero-logo{
  width:min(390px, 82vw);
  margin-bottom:14px;
}
.cfa360-login-only .cfa-login-hero h1{
  display:block;
  margin:8px 0 6px;
  color:#fff;
  font-size:clamp(1.6rem,4vw,2.45rem);
  font-weight:950;
  text-shadow:0 2px 10px rgba(0,20,55,.25);
}
.cfa360-login-only #selectedRoleBadge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:6px 16px;
  border-radius:999px;
  color:#fff;
  background:rgba(245,130,32,.22);
  border:1px solid rgba(245,130,32,.55);
  font-weight:950;
}
.cfa-home-back{
  min-height:46px;
}
.cfa-home-back span{
  border-color:var(--cfa-orange);
  color:var(--cfa-orange);
}
.cfa-login-panel{
  margin-top:4px;
}
@media (max-width:860px){
  .cfa360-profile-only .cfa-home-role-card{
    min-height:96px;
  }
  .cfa360-login-only .cfa-login-hero{
    padding-top:6px;
  }
  .cfa360-login-only .cfa-login-hero .cfa-home-hero-logo{
    width:min(330px, 86vw);
  }
}
@media (max-width:420px){
  .cfa-home-back{
    font-size:.86rem;
    width:auto;
    padding:8px 11px;
  }
  .cfa-home-back span{
    display:none;
  }
}

/* Correctif V4 : accueil profil seul + page connexion séparée, rendu PC/mobile cohérent */
body.cfa360-home.cfa360-profile-only,
body.cfa360-home.cfa360-login-only{
  height:auto !important;
  min-height:100vh !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
}
.cfa-home-main-profile{
  width:min(1040px, calc(100vw - 36px));
  padding-top:28px;
}
.cfa-home-hero-profile{
  padding:0 0 12px;
}
.cfa-home-hero-profile .cfa-home-hero-logo{
  width:min(430px, 78vw);
  margin-bottom:12px;
  box-shadow:0 24px 65px rgba(0,15,45,.24);
}
.cfa-home-hero-profile p{
  font-size:clamp(1.05rem,2vw,1.35rem);
  max-width:680px;
}
.cfa-home-section-title-compact{
  margin:8px auto 18px;
}
.cfa-home-section-title-compact h2{
  margin:0;
}
.cfa360-profile-only .cfa-home-role-grid{
  max-width:860px;
}
.cfa360-profile-only .cfa-home-role-card{
  min-height:168px;
  padding:22px 18px !important;
}
.cfa360-profile-only .cfa-home-role-icon{
  width:72px;
  height:72px;
}
.cfa360-profile-only .cfa-home-platforms{
  margin-top:18px;
}
.cfa-home-main-login{
  width:min(940px, calc(100vw - 36px));
  padding-top:30px;
}
.cfa360-login-only .cfa-home-login,
.cfa360-login-only .cfa-home-form-panel,
.cfa360-login-only .cfa-login-panel{
  display:grid !important;
  visibility:visible !important;
  opacity:1 !important;
}
.cfa360-login-only .cfa-login-panel{
  grid-template-columns:1fr 1fr auto;
  width:min(850px,100%);
  margin:8px auto 0;
  background:rgba(255,255,255,.96) !important;
  color:var(--cfa-navy) !important;
}
.cfa360-login-only .cfa-login-panel label,
.cfa360-login-only .cfa-login-panel span{
  color:var(--cfa-navy) !important;
}
.cfa360-login-only .cfa-home-hero-logo{
  width:min(360px,76vw);
}
.cfa360-login-only .cfa-login-hero h1{
  display:block !important;
}
.cfa360-login-only #selectedRoleBadge{
  color:#fff !important;
}
.cfa360-login-only .cfa-home-submit,
.cfa360-login-only #togglePassword{
  min-height:50px;
}
@media (min-width: 861px){
  body.cfa360-profile-only .cfa-home-footer,
  body.cfa360-login-only .cfa-home-footer{
    position:fixed;
  }
}
@media (max-width: 860px){
  .cfa-home-main-profile,
  .cfa-home-main-login{
    width:min(100% - 24px, 620px);
    padding-top:22px;
  }
  .cfa-home-hero-profile .cfa-home-hero-logo,
  .cfa360-login-only .cfa-home-hero-logo{
    width:min(330px,86vw);
  }
  .cfa360-profile-only .cfa-home-role-card{
    min-height:96px;
  }
  .cfa360-login-only .cfa-login-panel{
    grid-template-columns:1fr !important;
    width:100%;
    padding:16px !important;
  }
}
@media (max-width: 420px){
  .cfa-home-main-profile,
  .cfa-home-main-login{
    width:min(100% - 18px, 420px);
  }
  .cfa-home-hero-profile .cfa-home-hero-logo,
  .cfa360-login-only .cfa-home-hero-logo{
    width:min(300px,88vw);
  }
  .cfa360-profile-only .cfa-home-role-card{
    padding:14px !important;
  }
  .cfa360-profile-only .cfa-home-role-icon{
    width:56px;
    height:56px;
  }
}

/* Correctif 2026-05-24 : connexion sans page login.html */
.cfa-home-main[hidden] { display: none !important; }
.cfa-home-backline { margin: 14px 0 0; text-align: center; }
.cfa-home-backline a { color: var(--cfa-blue, #003B71); font-weight: 800; text-decoration: none; }
.cfa-home-form-panel label { display: block; margin-bottom: 14px; }
.cfa-home-form-panel label > span { display:block; margin-bottom: 6px; font-weight: 800; color: var(--cfa-blue, #003B71); }
.cfa-home-form-panel input { width: 100%; box-sizing: border-box; min-height: 48px; border-radius: 14px; border: 1px solid rgba(255,255,255,.35); padding: 0 14px; font-size: 16px; }
.cfa-home-password-wrap { display: flex; gap: 8px; }
.cfa-home-password-wrap input { flex: 1; }
.cfa-home-password-wrap button { border: 0; border-radius: 14px; padding: 0 12px; font-weight: 800; cursor: pointer; }
.cfa-home-submit { width: 100%; min-height: 50px; border: 0; border-radius: 16px; font-weight: 900; font-size: 16px; cursor: pointer; }
.cfa-login-panel { max-width: 460px; margin: 0 auto; }
@media (max-width: 760px) {
  .cfa-home-password-wrap { flex-direction: column; }
  .cfa-home-main-login { padding-left: 14px !important; padding-right: 14px !important; }
}


/* ===== SOURCE: home-unified.css ===== */
/* Correctif final : même rendu accueil sur PC et smartphone + connexion visible */
html, body.cfa360-home { min-height: 100%; }
body.cfa360-home {
  background:
    radial-gradient(circle at 16% 10%, rgba(245,130,32,.32), transparent 260px),
    radial-gradient(circle at 85% 20%, rgba(255,255,255,.16), transparent 310px),
    linear-gradient(135deg,#061f44 0%, #003B71 50%, #0757a4 100%) !important;
}
body.cfa360-home .cfa-home-topbar {
  height: 82px !important;
  padding: 12px 22px !important;
}
body.cfa360-home .cfa-home-brand img {
  width: min(330px, 64vw) !important;
  max-height: 56px !important;
}
body.cfa360-profile-only .cfa-home-main-profile,
body.cfa360-login-page .cfa-home-main-login {
  width: min(520px, calc(100vw - 28px)) !important;
  padding-top: 24px !important;
  padding-bottom: 76px !important;
}
body.cfa360-profile-only .cfa-home-hero-profile .cfa-home-hero-logo,
body.cfa360-login-page .cfa-login-hero .cfa-home-hero-logo {
  width: min(360px, 86vw) !important;
  margin: 0 auto 12px !important;
  border-radius: 26px !important;
  box-shadow: 0 24px 65px rgba(0,15,45,.28) !important;
}
body.cfa360-profile-only .cfa-home-hero-profile p,
body.cfa360-login-page .cfa-login-hero p {
  font-size: 1.08rem !important;
  line-height: 1.35 !important;
}
body.cfa360-profile-only .cfa-home-section-title h2 {
  font-size: 1.45rem !important;
}
body.cfa360-profile-only .cfa-home-role-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  max-width: 520px !important;
  gap: 13px !important;
  margin: 0 auto !important;
}
body.cfa360-profile-only .cfa-home-role-card {
  min-height: 96px !important;
  padding: 16px 18px !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  text-align: left !important;
  border-radius: 24px !important;
}
body.cfa360-profile-only .cfa-home-role-icon {
  width: 62px !important;
  height: 62px !important;
  font-size: 1.55rem !important;
  flex: 0 0 auto !important;
}
body.cfa360-profile-only .cfa-home-role-card strong {
  font-size: 1.25rem !important;
}
body.cfa360-profile-only .cfa-home-role-card small {
  max-width: none !important;
  font-size: .96rem !important;
}
body.cfa360-profile-only .cfa-home-admin-row {
  display: grid !important;
  grid-template-columns: 1fr !important;
  width: min(520px, 100%) !important;
  gap: 10px !important;
  margin-top: 14px !important;
}
body.cfa360-profile-only .cfa-home-admin-link {
  min-height: 50px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 18px !important;
  text-align: center !important;
}
body.cfa360-home .cfa-home-platforms {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  width: min(520px, 100%) !important;
  gap: 12px !important;
  margin-top: 18px !important;
}
body.cfa360-home .cfa-home-platforms a {
  justify-content: center !important;
  min-height: 60px !important;
  border-radius: 18px !important;
}
body.cfa360-login-page .cfa-home-login,
body.cfa360-login-page .cfa-home-form-panel,
body.cfa360-login-page .cfa-login-panel {
  display: grid !important;
  visibility: visible !important;
  opacity: 1 !important;
}
body.cfa360-login-page .cfa-login-panel {
  width: min(460px, 100%) !important;
  max-width: 460px !important;
  grid-template-columns: 1fr !important;
  gap: 14px !important;
  padding: 18px !important;
  margin: 12px auto 0 !important;
  background: rgba(255,255,255,.96) !important;
  color: #003B71 !important;
}
body.cfa360-login-page .cfa-login-panel label,
body.cfa360-login-page .cfa-login-panel span {
  color: #003B71 !important;
}
body.cfa360-login-page .cfa-login-panel input {
  color: #193e6c !important;
  background: #fff !important;
  border: 1px solid #d6e2f2 !important;
}
body.cfa360-login-page .cfa-home-submit {
  width: 100% !important;
}
body.cfa360-login-page .cfa-home-back {
  text-decoration: none !important;
}
@media (max-width: 520px) {
  body.cfa360-home .cfa-home-topbar {
    height: 74px !important;
    padding: 10px 12px !important;
  }
  body.cfa360-home .cfa-home-brand img { width: min(260px, 62vw) !important; }
  body.cfa360-profile-only .cfa-home-main-profile,
  body.cfa360-login-page .cfa-home-main-login {
    width: min(100% - 18px, 420px) !important;
    padding-top: 18px !important;
  }
  body.cfa360-profile-only .cfa-home-hero-profile .cfa-home-hero-logo,
  body.cfa360-login-page .cfa-login-hero .cfa-home-hero-logo {
    width: min(300px, 88vw) !important;
  }
  body.cfa360-home .cfa-home-platforms { grid-template-columns: 1fr !important; }
  body.cfa360-profile-only .cfa-home-role-card { padding: 14px !important; }
  body.cfa360-home .cfa-home-help { font-size: 0 !important; width: 44px !important; height: 44px !important; padding: 0 !important; justify-content:center !important; }
  body.cfa360-home .cfa-home-back { font-size: .9rem !important; width: auto !important; padding: 8px 11px !important; }
  body.cfa360-home .cfa-home-back span { display: inline-grid !important; }
}


/* ===== SOURCE: cfa360-landing-clean.css ===== */
/* CFA360 - Accueil propre PC + mobile, version 2026-05-24 */
:root{
  --cfa-blue-900:#04204a;
  --cfa-blue-800:#06366f;
  --cfa-blue-700:#004b93;
  --cfa-blue-600:#0062b7;
  --cfa-orange:#f58220;
  --cfa-white:#ffffff;
  --cfa-text:#052a55;
  --cfa-shadow:0 22px 60px rgba(0,20,55,.28);
}
html,body{min-height:100%;}
body.cfa360-home{
  margin:0!important;
  min-height:100vh!important;
  font-family:Inter,Segoe UI,Roboto,Arial,sans-serif!important;
  color:#fff!important;
  background:
    radial-gradient(circle at 18% 8%, rgba(245,130,32,.22), transparent 20rem),
    radial-gradient(circle at 82% 16%, rgba(255,255,255,.14), transparent 24rem),
    linear-gradient(135deg,var(--cfa-blue-900) 0%, var(--cfa-blue-800) 44%, var(--cfa-blue-600) 100%)!important;
  overflow-x:hidden!important;
}
body.cfa360-home *{box-sizing:border-box;}
body.cfa360-home a{color:inherit;}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}

.cfa360-topbar{
  min-height:94px!important;
  padding:14px clamp(20px,4vw,56px)!important;
  background:rgba(255,255,255,.96)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:24px!important;
  box-shadow:0 10px 28px rgba(0,20,55,.18)!important;
  position:sticky!important;
  top:0!important;
  z-index:100!important;
}
.cfa360-institution{display:flex!important;align-items:center!important;text-decoration:none!important;}
.cfa360-institution img{
  display:block!important;
  width:clamp(230px,24vw,390px)!important;
  height:auto!important;
  max-height:68px!important;
  object-fit:contain!important;
  object-position:left center!important;
}
.cfa360-help{
  border:0!important;
  background:transparent!important;
  color:#004b93!important;
  font-weight:900!important;
  font-size:1.15rem!important;
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
  cursor:pointer!important;
  padding:10px 12px!important;
  width:auto!important;
  min-height:auto!important;
}
.cfa360-help span{
  width:30px!important;height:30px!important;
  border:3px solid #0072ce!important;
  border-radius:50%!important;
  display:grid!important;place-items:center!important;
  line-height:1!important;
}

.cfa360-home-screen{
  width:min(1100px,calc(100vw - 32px))!important;
  margin:0 auto!important;
  padding:34px 0 82px!important;
}
.cfa360-hero{text-align:center!important;margin:0 auto 24px!important;}
.cfa360-main-logo{
  width:clamp(270px,42vw,560px)!important;
  max-height:190px!important;
  object-fit:contain!important;
  display:block!important;
  margin:0 auto 16px!important;
  filter:drop-shadow(0 22px 35px rgba(0,15,45,.32))!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.cfa360-hero h1{
  display:block!important;
  margin:0 0 8px!important;
  color:#fff!important;
  font-size:clamp(1.35rem,2.4vw,2rem)!important;
  line-height:1.15!important;
  font-weight:950!important;
  text-shadow:0 3px 12px rgba(0,20,55,.28)!important;
}
.cfa360-hero p{
  margin:0!important;
  color:rgba(255,255,255,.92)!important;
  font-size:clamp(1rem,1.4vw,1.18rem)!important;
  font-weight:800!important;
  text-shadow:none!important;
}

.cfa360-profiles{max-width:900px!important;margin:0 auto!important;text-align:center!important;}
.cfa360-profile-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:18px!important;
  margin:0 auto 18px!important;
}
.cfa360-profile-card{
  min-height:280px!important;
  padding:26px 22px 22px!important;
  background:#fff!important;
  color:var(--cfa-text)!important;
  border:1px solid rgba(255,255,255,.38)!important;
  border-radius:22px!important;
  text-decoration:none!important;
  box-shadow:0 18px 42px rgba(0,20,55,.22)!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
  transform:none!important;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease!important;
}
.cfa360-profile-card:hover,.cfa360-profile-card.active{
  transform:translateY(-6px)!important;
  border-color:rgba(245,130,32,.9)!important;
  box-shadow:0 26px 60px rgba(0,20,55,.32)!important;
}
.cfa360-profile-icon{
  width:92px!important;height:92px!important;border-radius:50%!important;
  display:grid!important;place-items:center!important;
  font-size:2.35rem!important;
  line-height:1!important;
}
.icon-apprenti{background:#dcebff!important;}
.icon-tuteur{background:#def7e7!important;}
.icon-formateur{background:#eee2ff!important;}
.cfa360-profile-card strong{
  display:block!important;
  font-size:1.45rem!important;
  line-height:1.08!important;
  color:#003B71!important;
  font-weight:950!important;
  text-transform:uppercase!important;
}
.cfa360-profile-card strong::after{
  content:"";display:block;width:48px;height:4px;border-radius:999px;background:#0072ce;margin:12px auto 0;
}
.cfa360-profile-card small{
  display:block!important;
  color:#183e68!important;
  font-size:1rem!important;
  line-height:1.45!important;
  font-weight:650!important;
}
.cfa360-card-button{
  width:100%!important;
  min-height:46px!important;
  border-radius:999px!important;
  display:grid!important;place-items:center!important;
  background:linear-gradient(135deg,#003B71,#005eb8)!important;
  color:#fff!important;
  font-weight:950!important;
  box-shadow:0 12px 22px rgba(0,59,113,.25)!important;
}

.cfa360-admin-grid{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:16px!important;
  margin:14px auto 18px!important;
}
.cfa360-admin-link{
  min-height:58px!important;
  border-radius:14px!important;
  border:2px solid rgba(255,255,255,.7)!important;
  background:rgba(0,55,120,.34)!important;
  color:#fff!important;
  text-decoration:none!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  font-size:1.06rem!important;
  font-weight:950!important;
  padding:12px!important;
  box-shadow:none!important;
}
.cfa360-admin-link:hover,.cfa360-admin-link.active{background:rgba(245,130,32,.95)!important;border-color:#fff!important;}

.cfa360-quick-title{
  color:rgba(255,255,255,.9)!important;
  display:grid!important;
  grid-template-columns:1fr auto 1fr!important;
  align-items:center!important;
  gap:14px!important;
  font-size:1rem!important;
  font-weight:800!important;
  margin:10px 0 14px!important;
}
.cfa360-quick-title span{height:1px;background:rgba(255,255,255,.28);}
.cfa360-quick-grid{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:16px!important;
}
.cfa360-quick-grid a{
  min-height:62px!important;
  border-radius:14px!important;
  border:2px solid rgba(255,255,255,.65)!important;
  background:rgba(255,255,255,.95)!important;
  color:#003B71!important;
  text-decoration:none!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:14px!important;
  font-size:1.06rem!important;
  font-weight:950!important;
  padding:12px!important;
}
.cfa360-quick-grid img{width:70px!important;height:34px!important;object-fit:contain!important;}
.cfa360-footer{
  position:fixed!important;
  left:0!important;right:0!important;bottom:0!important;
  min-height:46px!important;
  display:grid!important;place-items:center!important;
  color:#fff!important;
  background:rgba(0,27,62,.72)!important;
  border-top:1px solid rgba(255,255,255,.16)!important;
  font-weight:800!important;
  z-index:99!important;
}

/* Connexion */
body.cfa360-login-only .cfa360-home-screen.cfa-home-main-profile{display:none!important;}
body.cfa360-profile-only .cfa360-login-screen{display:none!important;}
.cfa360-login-screen{display:grid!important;place-items:center!important;min-height:calc(100vh - 160px)!important;}
.cfa360-login-card{
  width:min(500px,100%)!important;
  background:#fff!important;
  color:#003B71!important;
  border-radius:28px!important;
  padding:28px!important;
  box-shadow:var(--cfa-shadow)!important;
  text-align:center!important;
}
.cfa360-login-logo{width:min(330px,78vw)!important;display:block!important;margin:0 auto 16px!important;}
.cfa360-login-badge{display:inline-flex!important;padding:8px 13px!important;border-radius:999px!important;background:#fff4e8!important;color:#9b4a00!important;font-weight:950!important;margin:0 0 12px!important;}
.cfa360-login-card h1{margin:0 0 18px!important;color:#003B71!important;font-size:1.8rem!important;font-weight:950!important;}
.cfa360-login-card form{display:grid!important;gap:14px!important;text-align:left!important;}
.cfa360-login-card label{display:grid!important;gap:7px!important;color:#003B71!important;font-weight:950!important;}
.cfa360-login-card input{
  width:100%!important;min-height:54px!important;border:1px solid #d5e2f0!important;border-radius:15px!important;padding:0 14px!important;
  font-size:1rem!important;color:#163a65!important;background:#fff!important;
}
.cfa360-password-row{display:flex!important;gap:8px!important;}
.cfa360-password-row input{flex:1!important;min-width:0!important;}
.cfa360-password-row button{min-height:54px!important;border:0!important;border-radius:14px!important;background:#eaf3ff!important;color:#003B71!important;font-weight:950!important;padding:0 12px!important;cursor:pointer!important;}
.cfa360-submit{min-height:54px!important;border:0!important;border-radius:15px!important;background:linear-gradient(135deg,#f58220,#ff9a35)!important;color:white!important;font-weight:950!important;font-size:1.05rem!important;cursor:pointer!important;box-shadow:0 14px 28px rgba(245,130,32,.28)!important;}
.cfa360-login-card .message{margin:0!important;text-align:center!important;font-weight:850!important;color:#003B71!important;}
.cfa360-login-card .message.error{color:#b42318!important;}
.cfa360-back{display:inline-block!important;margin-top:16px!important;color:#003B71!important;font-weight:900!important;text-decoration:none!important;}

@media (max-width:900px){
  .cfa360-profile-grid{grid-template-columns:1fr!important;max-width:430px!important;gap:12px!important;}
  .cfa360-profile-card{min-height:auto!important;display:grid!important;grid-template-columns:72px 1fr!important;text-align:left!important;align-items:center!important;justify-items:start!important;padding:14px 16px!important;gap:10px 14px!important;}
  .cfa360-profile-icon{grid-row:1 / span 2!important;width:66px!important;height:66px!important;font-size:1.85rem!important;}
  .cfa360-profile-card strong{font-size:1.08rem!important;text-transform:none!important;}
  .cfa360-profile-card strong::after{display:none!important;}
  .cfa360-profile-card small{font-size:.86rem!important;line-height:1.35!important;}
  .cfa360-card-button{display:none!important;}
  .cfa360-admin-grid,.cfa360-quick-grid{grid-template-columns:1fr!important;max-width:430px!important;}
}
@media (max-width:640px){
  .cfa360-topbar{min-height:72px!important;padding:9px 12px!important;}
  .cfa360-institution img{width:min(210px,58vw)!important;max-height:52px!important;}
  .cfa360-help{font-size:.95rem!important;padding:6px!important;}
  .cfa360-help span{width:25px!important;height:25px!important;border-width:2px!important;}
  .cfa360-home-screen{width:min(430px,calc(100vw - 18px))!important;padding:22px 0 72px!important;}
  .cfa360-main-logo{width:min(260px,74vw)!important;margin-bottom:12px!important;}
  .cfa360-hero h1{font-size:1.25rem!important;}
  .cfa360-hero p{font-size:.9rem!important;}
  .cfa360-profile-card{border-radius:12px!important;}
  .cfa360-admin-link,.cfa360-quick-grid a{min-height:48px!important;border-radius:10px!important;font-size:.92rem!important;}
  .cfa360-quick-grid img{width:58px!important;height:28px!important;}
  .cfa360-footer{font-size:.78rem!important;min-height:40px!important;}
  .cfa360-login-card{border-radius:22px!important;padding:22px 16px!important;}
}

/* Modification demandée : masquer les accès Administration CFA/UFA sur smartphone */
@media (max-width: 640px) {
  .cfa360-admin-grid {
    display: none !important;
  }
}


/* =========================================================
   Mise en page premium des 3 cartes de profil - 2026-05-25
   Objectif : textes explicatifs élégants, lisibles, sans mots isolés
   ========================================================= */
body.cfa360-profile-only .cfa360-profiles{
  max-width:1040px!important;
}
body.cfa360-profile-only .cfa360-profile-grid{
  grid-template-columns:repeat(3,minmax(260px,1fr))!important;
  gap:22px!important;
  align-items:stretch!important;
}
body.cfa360-profile-only .cfa360-profile-card{
  min-height:285px!important;
  padding:30px 26px 26px!important;
  justify-content:flex-start!important;
  gap:16px!important;
  text-align:center!important;
  border-bottom:5px solid transparent!important;
}
body.cfa360-profile-only .cfa360-profile-card:hover,
body.cfa360-profile-only .cfa360-profile-card.active{
  border-bottom-color:var(--cfa-orange)!important;
}
body.cfa360-profile-only .cfa360-profile-card strong{
  width:100%!important;
  max-width:none!important;
  white-space:normal!important;
  text-wrap:balance!important;
  font-size:clamp(1.24rem,1.35vw,1.52rem)!important;
  line-height:1.12!important;
  margin-top:4px!important;
}
body.cfa360-profile-only .cfa360-profile-card small{
  max-width:245px!important;
  margin:0 auto!important;
  min-height:68px!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:center!important;
  text-align:center!important;
  text-wrap:pretty!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
  line-height:1.42!important;
}
body.cfa360-profile-only .cfa360-profile-icon{
  margin-bottom:2px!important;
}
@media (min-width:901px){
  body.cfa360-profile-only .cfa360-home-screen{
    width:min(1220px,calc(100vw - 48px))!important;
  }
}
@media (max-width:900px){
  body.cfa360-profile-only .cfa360-profiles{
    max-width:500px!important;
  }
  body.cfa360-profile-only .cfa360-profile-grid{
    grid-template-columns:1fr!important;
  }
  body.cfa360-profile-only .cfa360-profile-card{
    min-height:auto!important;
    grid-template-columns:72px 1fr!important;
    text-align:left!important;
    border-bottom:0!important;
    border-left:4px solid transparent!important;
  }
  body.cfa360-profile-only .cfa360-profile-card:hover,
  body.cfa360-profile-only .cfa360-profile-card.active{
    border-left-color:var(--cfa-orange)!important;
  }
  body.cfa360-profile-only .cfa360-profile-card strong{
    text-align:left!important;
    font-size:1.08rem!important;
  }
  body.cfa360-profile-only .cfa360-profile-card small{
    max-width:none!important;
    min-height:auto!important;
    margin:0!important;
    text-align:left!important;
    justify-content:flex-start!important;
    display:block!important;
    font-size:.9rem!important;
  }
}


/* ===== SOURCE: cfa360-logo-fix.css ===== */
/* Correctif logo page connexion : le logo transparent CFA360 est posé sur le même fond bleu que l'accueil. */
body.cfa360-login-page .cfa-login-hero .cfa-home-hero-logo,
body.cfa360-login-only .cfa-login-hero .cfa-home-hero-logo,
body.cfa360-login-page .cfa-home-hero-logo,
body.cfa360-login-only .cfa-home-hero-logo {
  content: url("../../assets/logo-cfa360-hero-fond-bleu.png") !important;
  display: block !important;
  width: min(430px, 82vw) !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 auto 18px !important;
  border-radius: 26px !important;
  box-shadow: 0 24px 65px rgba(0, 15, 45, .30) !important;
  background: linear-gradient(135deg, #061f44 0%, #003B71 52%, #0757a4 100%) !important;
  opacity: 1 !important;
  filter: none !important;
  mix-blend-mode: normal !important;
}

body.cfa360-login-page .cfa-login-hero,
body.cfa360-login-only .cfa-login-hero {
  background: transparent !important;
  box-shadow: none !important;
}

body.cfa360-login-page .cfa-home-form-panel,
body.cfa360-login-page .cfa-login-panel {
  margin-top: 10px !important;
}

@media (max-width: 520px) {
  body.cfa360-login-page .cfa-login-hero .cfa-home-hero-logo,
  body.cfa360-login-only .cfa-login-hero .cfa-home-hero-logo,
  body.cfa360-login-page .cfa-home-hero-logo,
  body.cfa360-login-only .cfa-home-hero-logo {
    width: min(310px, 88vw) !important;
    border-radius: 20px !important;
    margin-bottom: 12px !important;
  }
}


/* ===== SOURCE: cfa360-login-clean-final.css ===== */
/* =========================================================
   CORRECTION FINALE CFA360 - Connexion sans chevauchement
   - la page d'accueil reste inchangée
   - la page connexion utilise le même logo que l'accueil
   - une seule carte de connexion est affichée
   ========================================================= */

/* Respect absolu de l'attribut hidden, malgré les anciens CSS en !important */
[hidden],
body.cfa360-profile-only #loginPage,
body.cfa360-login-only #profilePage {
  display: none !important;
  visibility: hidden !important;
}

body.cfa360-login-only #loginPage {
  display: flex !important;
  visibility: visible !important;
}

/* Page de connexion intégrée dans index.html */
body.cfa360-login-only {
  min-height: 100vh !important;
  overflow-x: hidden !important;
  background:
    radial-gradient(circle at 16% 58%, rgba(255, 130, 25, .34), transparent 0 14%, transparent 27%),
    linear-gradient(135deg, #00315f 0%, #004b91 54%, #006fc7 100%) !important;
}

body.cfa360-login-only .cfa360-topbar {
  position: relative !important;
  z-index: 20 !important;
}

body.cfa360-login-only #loginPage.cfa360-login-screen {
  width: 100% !important;
  min-height: calc(100vh - 132px) !important;
  padding: clamp(22px, 4vh, 48px) 18px 72px !important;
  align-items: center !important;
  justify-content: flex-start !important;
  flex-direction: column !important;
  gap: 18px !important;
  background: transparent !important;
}

/* Le logo est affiché sur le fond bleu, comme sur la page principale */
body.cfa360-login-only .cfa360-login-logo {
  display: block !important;
  width: min(390px, 76vw) !important;
  max-height: 150px !important;
  object-fit: contain !important;
  margin: 0 auto 10px !important;
  filter: drop-shadow(0 18px 30px rgba(0,0,0,.18)) !important;
}

body.cfa360-login-only .cfa360-login-card {
  width: min(520px, calc(100vw - 32px)) !important;
  margin: 0 auto !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
}

body.cfa360-login-only .cfa360-login-card::before,
body.cfa360-login-only .cfa360-login-card::after {
  content: none !important;
  display: none !important;
}

body.cfa360-login-only .cfa360-login-badge {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 auto 14px !important;
  padding: 9px 20px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255, 130, 25, .75) !important;
  background: rgba(255,255,255,.94) !important;
  color: #003B71 !important;
  font-weight: 900 !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.12) !important;
}

body.cfa360-login-only .cfa360-login-card h1 {
  display: none !important;
}

body.cfa360-login-only #loginForm {
  width: 100% !important;
  margin: 0 !important;
  padding: clamp(24px, 4vw, 34px) !important;
  border-radius: 28px !important;
  background: rgba(255,255,255,.98) !important;
  border: 1px solid rgba(255,255,255,.72) !important;
  box-shadow: 0 26px 70px rgba(0, 22, 56, .25) !important;
  display: grid !important;
  gap: 16px !important;
  text-align: left !important;
}

body.cfa360-login-only #loginForm::before {
  content: "Connexion";
  display: block;
  text-align: center;
  color: #003B71;
  font-size: clamp(1.65rem, 3vw, 2.1rem);
  line-height: 1.05;
  font-weight: 950;
  margin-bottom: 6px;
}

body.cfa360-login-only #loginForm label {
  display: grid !important;
  gap: 8px !important;
  color: #003B71 !important;
  font-weight: 900 !important;
}

body.cfa360-login-only #loginForm label > span {
  color: #003B71 !important;
  font-weight: 900 !important;
}

body.cfa360-login-only #loginForm input {
  width: 100% !important;
  min-height: 54px !important;
  border-radius: 15px !important;
  border: 1px solid #c9d8ee !important;
  background: #fff !important;
  color: #003B71 !important;
  font-size: 1rem !important;
  font-weight: 750 !important;
  padding: 14px 16px !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8) !important;
}

body.cfa360-login-only .cfa360-password-row {
  display: grid !important;
  grid-template-columns: 1fr auto !important;
  gap: 10px !important;
  align-items: stretch !important;
}

body.cfa360-login-only #togglePassword {
  min-height: 54px !important;
  border: 0 !important;
  border-radius: 15px !important;
  padding: 0 17px !important;
  background: #eaf2ff !important;
  color: #003B71 !important;
  font-weight: 900 !important;
  cursor: pointer !important;
}

body.cfa360-login-only .cfa360-submit {
  width: 100% !important;
  min-height: 58px !important;
  border: 0 !important;
  border-radius: 16px !important;
  background: linear-gradient(135deg, #ff7a00 0%, #ff972f 100%) !important;
  color: #fff !important;
  font-size: 1.02rem !important;
  font-weight: 950 !important;
  box-shadow: 0 18px 34px rgba(255, 122, 0, .28) !important;
  cursor: pointer !important;
}

body.cfa360-login-only #loginMessage {
  min-height: 20px !important;
  text-align: center !important;
  margin: 0 !important;
}

body.cfa360-login-only .cfa360-back {
  display: inline-flex !important;
  margin: 18px auto 0 !important;
  color: #fff !important;
  font-weight: 950 !important;
  text-decoration: none !important;
  text-shadow: 0 2px 10px rgba(0,0,0,.28) !important;
}

body.cfa360-login-only .cfa360-footer {
  color: rgba(255,255,255,.92) !important;
  background: rgba(0, 39, 82, .22) !important;
  border-top: 1px solid rgba(255,255,255,.12) !important;
}

@media (max-width: 760px) {
  body.cfa360-login-only #loginPage.cfa360-login-screen {
    min-height: calc(100vh - 84px) !important;
    padding: 16px 14px 50px !important;
    justify-content: center !important;
  }
  body.cfa360-login-only .cfa360-login-logo {
    width: min(270px, 78vw) !important;
    margin-bottom: 8px !important;
  }
  body.cfa360-login-only #loginForm {
    padding: 22px 16px !important;
    border-radius: 24px !important;
  }
  body.cfa360-login-only .cfa360-password-row {
    grid-template-columns: 1fr !important;
  }
  body.cfa360-login-only #togglePassword {
    width: 100% !important;
  }
}


/* ===== SOURCE: cfa360-global-band.css ===== */
/* ==========================================================
   CFA360 - harmonisation globale demandée
   Bandeau blanc de la page 1 sur toutes les pages + footer
   ========================================================== */
:root{
  --cfa360-blue:#003B71;
  --cfa360-blue-2:#005ca8;
  --cfa360-orange:#f58220;
  --cfa360-white:#ffffff;
}

/* Bandeau institutionnel blanc commun */
.cfa360-topbar{
  min-height:82px !important;
  padding:12px 28px !important;
  background:#fff !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:18px !important;
  box-shadow:0 5px 18px rgba(0,30,70,.12) !important;
  position:relative !important;
  z-index:1000 !important;
}
.cfa360-institution{
  display:flex !important;
  align-items:center !important;
  text-decoration:none !important;
}
.cfa360-institution img{
  width:240px !important;
  max-width:42vw !important;
  max-height:58px !important;
  object-fit:contain !important;
  object-position:left center !important;
  display:block !important;
}
.cfa360-help{
  border:0 !important;
  background:transparent !important;
  color:var(--cfa360-blue) !important;
  font-weight:900 !important;
  font-size:1.05rem !important;
  display:inline-flex !important;
  align-items:center !important;
  gap:8px !important;
  cursor:pointer !important;
}
.cfa360-help span{
  width:28px !important;
  height:28px !important;
  border:3px solid #0072ce !important;
  border-radius:50% !important;
  display:grid !important;
  place-items:center !important;
  font-weight:950 !important;
  line-height:1 !important;
}

/* Pages internes : garder le même esprit bleu, mais avec bandeau blanc */
body:not(.cfa360-home){
  background:linear-gradient(135deg,#07305f 0%,#003B71 43%,#0875c9 100%) !important;
  min-height:100vh !important;
  color:#07305f;
}
body:not(.cfa360-home) .shell{
  min-height:calc(100vh - 82px) !important;
  padding-top:26px !important;
  padding-bottom:58px !important;
}

/* Logo dans les menus latéraux : logo CFA360 et non plus petit logo institutionnel */
.sidebar-logo-box{
  background:rgba(255,255,255,.10) !important;
  border-color:rgba(255,255,255,.22) !important;
}
.sidebar-logo{
  max-width:180px !important;
  max-height:74px !important;
  width:100% !important;
  object-fit:contain !important;
}
.sidebar-title{color:#fff !important;}
.sidebar-subtitle,.eyebrow.light{color:rgba(255,255,255,.78) !important;}

/* Footer commun droits réservés */
.cfa360-rights-footer,
.cfa360-footer{
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  min-height:44px !important;
  padding:8px 16px !important;
  display:grid !important;
  place-items:center !important;
  background:rgba(0,27,62,.78) !important;
  border-top:1px solid rgba(255,255,255,.16) !important;
  color:#fff !important;
  font-size:.86rem !important;
  font-weight:800 !important;
  text-align:center !important;
  z-index:1000 !important;
}
.cfa360-rights-footer a,
.cfa360-footer a{color:#fff !important;text-decoration:underline !important;text-underline-offset:3px !important;}

/* Première page : suppression des boutons/encadrés Accéder */
.cfa360-card-button{display:none !important;}
.cfa360-profile-card{justify-content:center !important;}

/* Administration : icônes plus explicites */
.cfa360-admin-link{gap:12px !important;}

@media (max-width:700px){
  .cfa360-topbar{min-height:68px !important;padding:8px 12px !important;}
  .cfa360-institution img{width:190px !important;max-width:58vw !important;max-height:48px !important;}
  .cfa360-help{font-size:.92rem !important;}
  .cfa360-help span{width:24px !important;height:24px !important;border-width:2px !important;}
  body:not(.cfa360-home) .shell{min-height:calc(100vh - 68px) !important;padding-top:14px !important;padding-bottom:54px !important;}
  .cfa360-rights-footer,.cfa360-footer{font-size:.72rem !important;min-height:38px !important;padding:6px 10px !important;}
  /* Accès admin toujours invisibles sur smartphone */
  .cfa360-admin-grid{display:none !important;}
}


/* ===== SOURCE: cfa360-final-fix-hover-badge.css ===== */
/* =========================================================
   Correctifs demandés - 2026-05-25
   1) Même animation horizontale sur les 3 cartes profil
   2) Suppression du fond blanc sur le badge "Accès sélectionné"
   ========================================================= */

body.cfa360-profile-only .cfa360-profile-card,
body.cfa360-profile-only .cfa360-profile-card.active,
body.cfa360-profile-only .cfa360-profile-card:focus,
body.cfa360-profile-only .cfa360-profile-card:active{
  transform: translateX(0) !important;
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease, background .22s ease !important;
}

body.cfa360-profile-only .cfa360-profile-card:hover,
body.cfa360-profile-only .cfa360-profile-card:focus-visible{
  transform: translateX(8px) !important;
  box-shadow: 0 24px 52px rgba(0, 24, 70, .22) !important;
}

@media (hover: none), (max-width: 900px){
  body.cfa360-profile-only .cfa360-profile-card:hover,
  body.cfa360-profile-only .cfa360-profile-card:focus-visible{
    transform: none !important;
  }
}

body.cfa360-login-only .cfa360-login-badge,
body.cfa360-login-only #selectedRoleBadge{
  background: transparent !important;
  box-shadow: none !important;
  border: 1px solid rgba(255, 130, 25, .85) !important;
  color: #ffffff !important;
  text-shadow: 0 2px 10px rgba(0,0,0,.25) !important;
  backdrop-filter: none !important;
}

body.cfa360-login-only .cfa360-login-badge::before,
body.cfa360-login-only #selectedRoleBadge::before,
body.cfa360-login-only .cfa360-login-badge::after,
body.cfa360-login-only #selectedRoleBadge::after{
  content: none !important;
  display: none !important;
}


/* ===== SOURCE: cfa360-uniform-blue-pages.css ===== */
/* =========================================================
   CFA360 - Uniformisation finale demandée
   - même bleu de fond que la page connexion
   - espaces apprenti / tuteur / formateur rapprochés du style page 1
   - suppression des grands encadrements blancs sur les pages internes
   ========================================================= */
:root{
  --cfa-bg-1:#00315f;
  --cfa-bg-2:#004b91;
  --cfa-bg-3:#006fc7;
  --cfa-orange:#ff8424;
  --cfa-blue:#003B71;
  --cfa-white:#ffffff;
  --cfa-glass:rgba(255,255,255,.10);
  --cfa-glass-2:rgba(255,255,255,.16);
  --cfa-line:rgba(255,255,255,.26);
  --cfa-shadow:0 26px 70px rgba(0,22,56,.25);
}

/* Même bleu que la page connexion, partout */
body,
body:not(.cfa360-home),
body.cfa360-profile-only,
body[data-role="apprenti"],
body[data-role="tuteur"],
body[data-role="formateur"]{
  min-height:100vh !important;
  background:
    radial-gradient(circle at 16% 58%, rgba(255,130,25,.34), transparent 0 14%, transparent 27%),
    linear-gradient(135deg, var(--cfa-bg-1) 0%, var(--cfa-bg-2) 54%, var(--cfa-bg-3) 100%) !important;
  background-attachment:fixed !important;
  overflow-x:hidden !important;
}

/* Bandeau blanc identique, bien séparé du fond bleu */
.cfa360-topbar{
  background:#fff !important;
  min-height:82px !important;
  box-shadow:0 8px 28px rgba(0,25,60,.18) !important;
  border-bottom:1px solid rgba(0,59,113,.10) !important;
}
.cfa360-institution img{
  width:245px !important;
  max-height:62px !important;
}

/* Zone générale : plus de grand bloc blanc autour des espaces */
body:not(.cfa360-home) .shell,
body[data-role] .shell{
  width:min(1360px, calc(100% - 36px)) !important;
  max-width:1360px !important;
  min-height:calc(100vh - 126px) !important;
  margin:22px auto 56px !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

body:not(.cfa360-home) .admin-card,
body:not(.cfa360-home) .tutor-card,
body:not(.cfa360-home) .role-eval-card,
body[data-role] .admin-card,
body[data-role] .tutor-card,
body[data-role] .role-eval-card{
  min-height:calc(100vh - 160px) !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  overflow:visible !important;
}

/* Structure interne premium : colonne menu + contenu, sans encadrement blanc extérieur */
body[data-role] .role-eval-card,
body[data-role] .tutor-card,
body[data-role] .admin-card{
  display:grid !important;
  grid-template-columns:300px minmax(0,1fr) !important;
  gap:24px !important;
  align-items:stretch !important;
}

/* Sidebar dans l'esprit page 1 : carte bleue vitrée */
body[data-role] .sidebar{
  position:relative !important;
  min-height:calc(100vh - 160px) !important;
  padding:26px 20px !important;
  border-radius:28px !important;
  background:linear-gradient(180deg, rgba(0,39,85,.84), rgba(0,77,145,.58)) !important;
  border:1px solid var(--cfa-line) !important;
  box-shadow:var(--cfa-shadow) !important;
  color:#fff !important;
  overflow:hidden !important;
}
body[data-role] .sidebar::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background:radial-gradient(circle at 16% 12%, rgba(255,255,255,.18), transparent 32%) !important;
  pointer-events:none !important;
}
body[data-role] .sidebar > *{position:relative !important;z-index:1 !important;}

body[data-role] .sidebar-logo-box{
  width:148px !important;
  height:74px !important;
  min-width:148px !important;
  margin:0 0 16px !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  border-radius:0 !important;
}
body[data-role] .sidebar-logo,
body[data-role] .sidebar-logo-box img{
  width:148px !important;
  height:auto !important;
  max-width:148px !important;
  max-height:74px !important;
  object-fit:contain !important;
  filter:drop-shadow(0 10px 22px rgba(0,0,0,.20)) !important;
}
body[data-role] .sidebar-top{
  display:block !important;
  gap:0 !important;
}
body[data-role] .sidebar-title{
  font-size:1.9rem !important;
  color:#fff !important;
  line-height:1 !important;
  margin:5px 0 4px !important;
}
body[data-role] .sidebar-subtitle,
body[data-role] .eyebrow.light{
  color:rgba(255,255,255,.82) !important;
}

body[data-role] .side-nav,
body[data-role] .tutor-side-nav{
  display:grid !important;
  gap:10px !important;
  margin-top:22px !important;
}
body[data-role] .nav-item,
body[data-role] .nav-item-button{
  min-height:46px !important;
  padding:12px 14px !important;
  border-radius:14px !important;
  border:1px solid rgba(255,255,255,.20) !important;
  background:rgba(255,255,255,.09) !important;
  color:#fff !important;
  font-weight:800 !important;
  text-decoration:none !important;
  text-align:left !important;
}
body[data-role] .nav-item:hover,
body[data-role] .nav-item.active,
body[data-role] .nav-item-button:hover{
  background:rgba(255,255,255,.96) !important;
  color:var(--cfa-blue) !important;
  border-color:rgba(255,255,255,.90) !important;
  transform:translateX(4px) !important;
}

/* Contenu : même langage visuel que les cartes de la page 1 */
body[data-role] .dashboard,
body:not(.cfa360-home) .dashboard,
body[data-role] .tuteur-essential-dashboard,
body[data-role] .formateur-eval-dashboard,
body[data-role] .apprentice-home-dashboard{
  min-height:calc(100vh - 160px) !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  color:#fff !important;
  overflow:visible !important;
}

body[data-role] .apprenti-essentiel-stage,
body[data-role] .tuteur-simple-stage,
body[data-role] .formateur-simple-stage,
body[data-role] .dashboard > :not(script){
  max-width:100% !important;
}

body[data-role] .dashboard-header,
body[data-role] .tutor-header,
body[data-role] .apprentice-simple-header,
body[data-role] .tuteur-simple-header,
body[data-role] .tuteur-eval-header-minimal{
  margin:0 0 22px !important;
  padding:28px 32px !important;
  border-radius:28px !important;
  background:linear-gradient(135deg, rgba(255,255,255,.96), rgba(255,255,255,.86)) !important;
  border:1px solid rgba(255,255,255,.70) !important;
  box-shadow:var(--cfa-shadow) !important;
  color:var(--cfa-blue) !important;
  overflow:hidden !important;
}
body[data-role] .dashboard-header h2,
body[data-role] .tutor-header h2{
  font-size:clamp(2rem, 3vw, 3.2rem) !important;
  line-height:1.05 !important;
  color:var(--cfa-blue) !important;
  margin:.12em 0 !important;
  letter-spacing:-.045em !important;
}
body[data-role] .dashboard-header .header-text,
body[data-role] .tutor-header .header-text,
body[data-role] .panel-subtext{
  color:#45627f !important;
  font-weight:650 !important;
}
body[data-role] .eyebrow:not(.light){
  color:var(--cfa-orange) !important;
  font-weight:950 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
}

/* Cartes principales : blanches, arrondies, mais sans bloc de page blanc */
body[data-role] .panel,
body[data-role] .stat-card,
body[data-role] .card,
body[data-role] .admin-panel,
body[data-role] .message-card,
body[data-role] .quick-link-card,
body[data-role] .tuteur-simple-step-card,
body[data-role] .formateur-mode-btn,
body[data-role] .eval-left-panel,
body[data-role] .eval-right-panel,
body[data-role] .apprentice-messages-panel,
body[data-role] .apprentice-actions-panel{
  border-radius:24px !important;
  background:rgba(255,255,255,.96) !important;
  border:1px solid rgba(255,255,255,.75) !important;
  box-shadow:0 18px 42px rgba(0,22,56,.20) !important;
  color:#082f5f !important;
}
body[data-role] .panel h3,
body[data-role] .card h3,
body[data-role] .quick-link-card strong,
body[data-role] .tuteur-simple-step-card h3,
body[data-role] .formateur-mode-btn strong{
  color:var(--cfa-blue) !important;
}
body[data-role] .quick-link-card,
body[data-role] .formateur-mode-btn,
body[data-role] .tuteur-simple-step-card{
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease !important;
}
body[data-role] .quick-link-card:hover,
body[data-role] .formateur-mode-btn:hover,
body[data-role] .tuteur-simple-step-card:hover{
  transform:translateX(6px) !important;
  border-color:rgba(255,132,36,.70) !important;
  box-shadow:0 24px 54px rgba(0,22,56,.26) !important;
}

/* Layout apprenti dashboard : cartes aérées comme choix du profil */
body[data-role="apprenti"] .apprentice-home-grid,
body[data-role="apprenti"] .apprentice-simple-main-grid{
  display:grid !important;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr) !important;
  gap:22px !important;
}
body[data-role="apprenti"] .quick-links-grid,
body[data-role="apprenti"] .quick-links-grid-polish{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:16px !important;
}
body[data-role="apprenti"] .quick-link-span-2{grid-column:1/-1 !important;}
body[data-role="apprenti"] .quick-link-card{
  min-height:128px !important;
  padding:22px !important;
  align-items:center !important;
}
body[data-role="apprenti"] .quick-link-icon,
body[data-role] .tuteur-step-number{
  width:52px !important;
  height:52px !important;
  border-radius:18px !important;
  display:grid !important;
  place-items:center !important;
  background:rgba(255,132,36,.16) !important;
  color:var(--cfa-orange) !important;
  font-weight:950 !important;
}

/* Layout tuteur / formateur : étapes en cartes lisibles */
body[data-role="tuteur"] .tuteur-simple-eval-grid,
body[data-role="formateur"] .tuteur-simple-eval-grid,
body[data-role="formateur"] .formateur-class-eval-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:18px !important;
}
body[data-role="tuteur"] .tuteur-simple-step-card,
body[data-role="formateur"] .tuteur-simple-step-card{
  padding:24px !important;
}
body[data-role] .tuteur-simple-steps,
body[data-role] .formateur-simple-steps{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:10px !important;
  margin:0 0 18px !important;
}
body[data-role] .tuteur-simple-steps span,
body[data-role] .formateur-simple-steps span{
  border-radius:999px !important;
  padding:10px 14px !important;
  background:rgba(255,255,255,.12) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.24) !important;
  font-weight:800 !important;
}
body[data-role] .tuteur-simple-steps span.active,
body[data-role] .formateur-simple-steps span.active{
  background:var(--cfa-orange) !important;
  color:#fff !important;
  border-color:var(--cfa-orange) !important;
}

/* Champs et boutons */
body[data-role] input,
body[data-role] select,
body[data-role] textarea{
  border-radius:14px !important;
  border:1px solid rgba(0,59,113,.18) !important;
  background:#fff !important;
  color:#082f5f !important;
}
body[data-role] button[type="submit"],
body[data-role] .primary-btn,
body[data-role] .btn-primary,
body[data-role] .save-btn{
  border:0 !important;
  background:linear-gradient(135deg, #ff7a1a, #ff9b31) !important;
  color:#fff !important;
  border-radius:16px !important;
  box-shadow:0 16px 34px rgba(255,132,36,.26) !important;
  font-weight:950 !important;
}
body[data-role] .secondary-btn,
body[data-role] .small-btn{
  border-radius:999px !important;
  border:1px solid rgba(255,255,255,.34) !important;
  background:rgba(255,255,255,.12) !important;
  color:#fff !important;
  font-weight:850 !important;
}

/* Footer intégré au bleu */
.cfa360-rights-footer,
.cfa360-footer{
  background:rgba(0,27,62,.72) !important;
  color:#fff !important;
  border-top:1px solid rgba(255,255,255,.18) !important;
}

/* Page choix profil : la même teinte de bleu que connexion */
body.cfa360-profile-only .cfa360-home-screen,
body.cfa360-profile-only .cfa-home-main-profile{
  background:transparent !important;
}
body.cfa360-profile-only .cfa360-profile-card{
  background:rgba(255,255,255,.96) !important;
  border:1px solid rgba(255,255,255,.70) !important;
}

/* Responsive */
@media (max-width:980px){
  body[data-role] .role-eval-card,
  body[data-role] .tutor-card,
  body[data-role] .admin-card{
    grid-template-columns:1fr !important;
    gap:16px !important;
  }
  body[data-role] .sidebar{
    min-height:auto !important;
    padding:18px !important;
  }
  body[data-role] .side-nav,
  body[data-role] .tutor-side-nav{
    grid-template-columns:1fr 1fr !important;
  }
  body[data-role="apprenti"] .apprentice-home-grid,
  body[data-role="apprenti"] .apprentice-simple-main-grid,
  body[data-role="tuteur"] .tuteur-simple-eval-grid,
  body[data-role="formateur"] .tuteur-simple-eval-grid,
  body[data-role="formateur"] .formateur-class-eval-grid{
    grid-template-columns:1fr !important;
  }
}
@media (max-width:700px){
  .cfa360-topbar{min-height:68px !important;}
  .cfa360-institution img{width:190px !important;max-width:62vw !important;}
  body:not(.cfa360-home) .shell,
  body[data-role] .shell{
    width:calc(100% - 22px) !important;
    margin:12px auto 52px !important;
    min-height:calc(100vh - 120px) !important;
  }
  body[data-role] .dashboard-header,
  body[data-role] .tutor-header{
    padding:20px !important;
    border-radius:22px !important;
  }
  body[data-role] .dashboard-header h2,
  body[data-role] .tutor-header h2{
    font-size:1.7rem !important;
  }
  body[data-role] .side-nav,
  body[data-role] .tutor-side-nav,
  body[data-role="apprenti"] .quick-links-grid{
    grid-template-columns:1fr !important;
  }
  body[data-role] .sidebar-logo-box,
  body[data-role] .sidebar-logo,
  body[data-role] .sidebar-logo-box img{
    width:132px !important;
    max-width:132px !important;
  }
}


/* ===== SOURCE: cfa360-theme-unifie-final.css ===== */
/* =========================================================
   CFA360 — thème global unifié
   Objectif : rapprocher toutes les pages du style :
   choix du profil / connexion / espace / m'auto-évaluer.
   ========================================================= */
:root{
  --cfa-blue-0:#003b71;
  --cfa-blue-1:#00356a;
  --cfa-blue-2:#004f98;
  --cfa-blue-3:#006ab8;
  --cfa-orange:#ff7a00;
  --cfa-orange-2:#ff9a32;
  --cfa-white:#ffffff;
  --cfa-ink:#003b71;
  --cfa-muted:#d8e7f7;
  --cfa-card:#f8fbff;
  --cfa-border:rgba(255,255,255,.22);
  --cfa-shadow:0 24px 70px rgba(0,28,70,.30);
  --cfa-radius:26px;
}

html,body{min-height:100%;}
body{
  margin:0!important;
  color:var(--cfa-white);
  background:
    radial-gradient(circle at 18% 18%, rgba(255,122,0,.18), transparent 22%),
    radial-gradient(circle at 92% 12%, rgba(54,164,255,.22), transparent 28%),
    linear-gradient(135deg,var(--cfa-blue-0),var(--cfa-blue-2) 58%,var(--cfa-blue-3))!important;
  background-attachment:fixed!important;
  overflow-x:hidden;
}
body::before{
  content:"";
  position:fixed;
  inset:84px 0 0 0;
  pointer-events:none;
  background:
    radial-gradient(circle at 80% 28%, rgba(255,255,255,.08), transparent 24%),
    linear-gradient(120deg, transparent 0 62%, rgba(255,255,255,.04) 62% 63%, transparent 63%);
  z-index:-1;
}

/* Bandeau blanc commun */
.cfa360-topbar,
.topbar,
.header-bar,
.app-header{
  min-height:82px!important;
  background:#fff!important;
  color:var(--cfa-ink)!important;
  border-bottom:1px solid rgba(0,59,113,.10)!important;
  box-shadow:0 6px 24px rgba(0,28,70,.10)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  padding:10px clamp(18px,3vw,44px)!important;
  box-sizing:border-box!important;
}
.cfa360-institution img,
.institution-logo,
.topbar-logo{height:56px!important;max-width:230px!important;object-fit:contain!important;}
.cfa360-help{color:var(--cfa-ink)!important;font-weight:800!important;}

/* Logo CFA360 commun dans les pages internes */
.sidebar-logo,
.login-logo,
.hero-logo,
.cfa360-logo,
.logo-cfa360{
  object-fit:contain!important;
  filter:none!important;
}
.sidebar-logo{max-width:230px!important;max-height:92px!important;}

/* Structure générale des anciennes pages */
.shell,
.page-shell,
.main-shell,
.app-shell{
  width:min(1180px, calc(100% - 40px))!important;
  max-width:1180px!important;
  margin:42px auto 70px!important;
  padding:0!important;
  box-sizing:border-box!important;
  color:#fff!important;
}
.admin-card,
.tutor-card,
.role-eval-card,
.apprentice-home-card,
.card-shell,
.main-card{
  background:transparent!important;
  box-shadow:none!important;
  border:0!important;
  width:100%!important;
  min-height:auto!important;
  display:block!important;
  padding:0!important;
  overflow:visible!important;
}

/* Suppression de l'ancien bandeau/colonne de gauche sur les pages internes */
.sidebar,
.side-nav,
.tutor-side-nav,
.sidebar-top,
.sidebar-utility-links,
.tutor-sidebar-note,
.apprentice-side-note-v21,
.logout-btn:not(.top-logout):not(.dashboard-logout){
  display:none!important;
}

/* Zone de contenu : plus de grand cadre blanc extérieur */
.dashboard,
.tutor-dashboard,
.apprentice-bilan-dashboard,
.messages-simple-main,
.page-content,
.content,
.main-content{
  width:100%!important;
  max-width:100%!important;
  margin:0 auto!important;
  padding:0!important;
  background:transparent!important;
  box-shadow:none!important;
  border:0!important;
  color:#fff!important;
}

/* En-têtes des pages internes façon espace */
.dashboard-header,
.tutor-header,
.apprentice-bilan-header,
.messages-simple-header,
.page-title,
.section-title{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0 0 22px!important;
  margin:0 0 24px!important;
  color:#fff!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:18px!important;
}
.dashboard-header h1,
.dashboard-header h2,
.tutor-header h2,
.messages-simple-header h2,
.page-title h1,
.section-title h1{
  color:#fff!important;
  font-size:clamp(2rem,4vw,4.1rem)!important;
  line-height:1.02!important;
  letter-spacing:-.045em!important;
  margin:.15em 0 .15em!important;
  text-shadow:0 12px 38px rgba(0,0,0,.16)!important;
}
.dashboard-header h2::after,
.tutor-header h2::after,
.messages-simple-header h2::after{
  content:"";
  display:block;
  width:54px;
  height:4px;
  border-radius:999px;
  background:var(--cfa-orange);
  margin:18px 0 0;
}
.eyebrow,
.dashboard-header .eyebrow,
.tutor-header .eyebrow,
.messages-simple-header .eyebrow{
  color:var(--cfa-orange)!important;
  font-weight:900!important;
  text-transform:uppercase!important;
  letter-spacing:.08em!important;
}
.header-text,
.panel-subtext,
.dashboard-header p,
.tutor-header p,
.messages-simple-header p{
  color:rgba(255,255,255,.88)!important;
  font-size:clamp(1rem,1.3vw,1.2rem)!important;
}

/* Cartes : même esprit que choix du profil / espaces */
.panel,
.kpi-panel,
.chart-panel,
.eval-left-panel,
.eval-right-panel,
.history-panel-large,
.bilan-hero-panel,
.bilan-empty-panel,
.messages-simple-side,
.messages-simple-context,
.messages-simple-composer,
.messages-simple-list,
.list-card,
.form-card,
.table-card,
.admin-panel,
.proof-card,
.message-card,
.document-card,
.setting-card{
  background:linear-gradient(145deg, rgba(255,255,255,.98), rgba(247,251,255,.94))!important;
  color:var(--cfa-ink)!important;
  border:1px solid rgba(255,255,255,.75)!important;
  border-radius:var(--cfa-radius)!important;
  box-shadow:var(--cfa-shadow)!important;
  overflow:hidden!important;
}
.panel h1,.panel h2,.panel h3,.panel h4,
.kpi-panel strong,
.chart-panel h3,
.eval-left-panel h3,
.eval-right-panel h3,
.messages-simple-main h2,
.messages-simple-main h3{
  color:var(--cfa-ink)!important;
}
.panel p,.panel small,.panel span,.panel label,
.eval-left-panel p,.eval-right-panel p,
.messages-simple-main p,.messages-simple-main label{
  color:#17466f!important;
}

/* Grilles de cartes plus aérées */
.bilan-summary-grid,
.bilan-visual-grid,
.eval-layout,
.messages-simple-shell,
.quick-grid,
.cards-grid,
.dashboard-grid{
  display:grid!important;
  gap:22px!important;
}
.bilan-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
.bilan-visual-grid,.eval-layout,.messages-simple-shell{grid-template-columns:1fr 1fr!important;}

/* Boutons */
.primary-btn,
.eval-action-btn,
button.primary,
.btn-primary,
.login-submit,
.action-primary{
  background:linear-gradient(135deg,var(--cfa-orange),var(--cfa-orange-2))!important;
  color:#fff!important;
  border:0!important;
  border-radius:16px!important;
  box-shadow:0 16px 36px rgba(255,122,0,.28)!important;
  font-weight:900!important;
}
.secondary-btn,
.btn-secondary,
.file-input,
select,
input,
textarea{
  border-radius:14px!important;
  border:1px solid rgba(0,59,113,.18)!important;
}
.secondary-btn,
.btn-secondary{
  background:rgba(255,255,255,.94)!important;
  color:var(--cfa-ink)!important;
  font-weight:800!important;
}

/* Cartes d'action type espace */
.action-card,
.role-action-card,
.domain-card,
.eval-domain-card,
.home-action-card{
  background:linear-gradient(145deg, rgba(255,255,255,.98), rgba(247,251,255,.96))!important;
  border-radius:26px!important;
  border:1px solid rgba(255,255,255,.72)!important;
  box-shadow:0 20px 58px rgba(0,28,70,.28)!important;
  color:var(--cfa-ink)!important;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease!important;
}
.action-card:hover,
.role-action-card:hover,
.domain-card:hover,
.eval-domain-card:hover,
.home-action-card:hover{
  transform:translateX(8px)!important;
  box-shadow:0 28px 70px rgba(0,28,70,.35)!important;
  border-color:rgba(255,122,0,.5)!important;
}

/* Tableaux et listes : lisibles dans le thème */
table{background:#fff!important;color:var(--cfa-ink)!important;border-radius:18px!important;overflow:hidden!important;}
th{color:var(--cfa-ink)!important;background:#eef6ff!important;}
td{color:#123f66!important;}

/* Footer uniforme */
.cfa360-footer,
footer,
.app-footer{
  color:#fff!important;
  background:rgba(0,34,75,.35)!important;
  border-top:1px solid rgba(255,255,255,.12)!important;
  text-align:center!important;
  padding:16px 18px!important;
  font-weight:700!important;
}
body:not(.landing-page) .cfa360-footer,
body:not(.landing-page) footer{
  position:relative!important;
  margin-top:36px!important;
}

/* Correctifs pages messagerie anciennes */
.messages-simple-shell{width:min(1180px,calc(100% - 40px))!important;margin:42px auto 70px!important;color:#fff!important;}
.messages-simple-side{padding:22px!important;}
.messages-simple-thread{min-height:320px!important;background:rgba(255,255,255,.10)!important;border-radius:22px!important;padding:18px!important;}

/* Responsive */
@media (max-width:900px){
  .cfa360-topbar,.topbar,.header-bar,.app-header{min-height:72px!important;padding:8px 14px!important;}
  .cfa360-institution img{height:44px!important;max-width:170px!important;}
  .shell,.messages-simple-shell{width:min(100% - 24px, 680px)!important;margin:22px auto 80px!important;}
  .dashboard-header,.tutor-header,.messages-simple-header{display:block!important;text-align:left!important;}
  .dashboard-header h1,.dashboard-header h2,.tutor-header h2,.messages-simple-header h2{font-size:2rem!important;}
  .bilan-summary-grid,.bilan-visual-grid,.eval-layout,.messages-simple-shell,.messages-simple-side,.messages-simple-main{grid-template-columns:1fr!important;}
  .panel,.kpi-panel,.chart-panel,.eval-left-panel,.eval-right-panel{border-radius:22px!important;}
}
@media (max-width:560px){
  body{background-attachment:scroll!important;}
  .shell,.messages-simple-shell{width:calc(100% - 18px)!important;margin-top:16px!important;}
  .dashboard-header h1,.dashboard-header h2,.tutor-header h2,.messages-simple-header h2{font-size:1.75rem!important;}
  .header-text,.panel-subtext{font-size:.96rem!important;}
}


/* ===== SOURCE: cfa360-general-domain-lock-tuteur-final.css ===== */
/* ==========================================================
   CFA360 — blocage temporaire domaine général + harmonisation tuteur
   ========================================================== */
/* Domaine général verrouillé partout */
.domain-general-locked,
a[data-locked-domain="general"],
.domain-choice-btn.domain-general,
.autoeval-action-card.action-gen,
.role-action-card.action-general,
.eval-domain-card.domain-general{
  position:relative !important;
}
.domain-general-locked,
a[data-locked-domain="general"],
.autoeval-action-card.action-gen[data-locked-domain="general"],
.domain-choice-btn.domain-general{
  cursor:not-allowed !important;
}
.domain-general-locked::before,
a[data-locked-domain="general"]::before,
.autoeval-action-card.action-gen::before,
.domain-choice-btn.domain-general::before,
.eval-domain-card.domain-general::before{
  content:"🔒" !important;
  position:absolute !important;
  top:12px !important;
  left:12px !important;
  width:34px !important;
  height:34px !important;
  display:grid !important;
  place-items:center !important;
  border-radius:12px !important;
  background:linear-gradient(135deg,#003B71,#07579b) !important;
  color:#fff !important;
  font-size:1.02rem !important;
  box-shadow:0 10px 22px rgba(0,28,70,.24) !important;
  z-index:5 !important;
}
.domain-general-locked::after,
a[data-locked-domain="general"]::after,
.autoeval-action-card.action-gen::after,
.domain-choice-btn.domain-general::after,
.eval-domain-card.domain-general::after{
  content:none !important;
  position:absolute !important;
  top:14px !important;
  left:52px !important;
  min-height:30px !important;
  display:inline-flex !important;
  align-items:center !important;
  padding:0 12px !important;
  border-radius:999px !important;
  background:#fff !important;
  color:#003B71 !important;
  font-size:.82rem !important;
  font-weight:950 !important;
  box-shadow:0 10px 22px rgba(0,28,70,.14) !important;
  z-index:5 !important;
}
.autoeval-action-card.action-gen .autoeval-action-text,
.domain-choice-btn.domain-general .domain-choice-title,
.domain-choice-btn.domain-general .domain-choice-count{
  opacity:.74 !important;
}
/* Domain choice buttons created dynamically: keep visible but blocked */
.domain-choice-btn.domain-general{
  opacity:.82 !important;
  filter:saturate(.72) !important;
}
.domain-choice-btn.domain-general.active{
  background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(247,251,255,.94)) !important;
  border-color:rgba(255,255,255,.75) !important;
  box-shadow:0 24px 52px rgba(0,24,64,.16) !important;
}
/* Espace tuteur : même trame que les espaces apprenti/formateur */
body[data-role="tuteur"] .cfa360-topbar{
  min-height:86px !important;
  background:#fff !important;
  box-shadow:0 2px 18px rgba(0,0,0,.08) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:16px !important;
  padding:12px 34px !important;
}
body[data-role="tuteur"] .role-top-actions{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:12px !important;
  flex-wrap:wrap !important;
}
body[data-role="tuteur"] .role-top-btn,
body[data-role="tuteur"] .role-top-actions .cfa360-help{
  min-height:44px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:16px !important;
  padding:0 16px !important;
  text-decoration:none !important;
  font-weight:900 !important;
  color:#003B71 !important;
  background:#fff !important;
  border:1px solid #cfe0f4 !important;
  box-shadow:0 8px 20px rgba(0,48,100,.08) !important;
}
body[data-role="tuteur"] .role-logout-top{background:#f6f9ff !important;}
body[data-role="tuteur"] .cfa360-role-home{
  width:min(1180px, calc(100% - 40px)) !important;
  margin:0 auto !important;
  padding:42px 0 86px !important;
}
body[data-role="tuteur"] .role-main-logo{
  width:min(360px,66vw) !important;
  max-height:136px !important;
  object-fit:contain !important;
  align-self:center !important;
  margin-bottom:16px !important;
  filter:drop-shadow(0 18px 36px rgba(0,0,0,.18)) !important;
}
body[data-role="tuteur"] .role-kicker{
  color:#ff8a1f !important;
  text-transform:uppercase !important;
  font-weight:950 !important;
  letter-spacing:.05em !important;
  font-size:.95rem !important;
  margin:0 0 8px !important;
}
body[data-role="tuteur"] .role-user-name{
  color:#fff !important;
  font-size:clamp(1.3rem,2.6vw,2rem) !important;
  font-weight:850 !important;
  margin:0 !important;
}
body[data-role="tuteur"] .role-lead{
  color:rgba(255,255,255,.92) !important;
  text-align:left !important;
  font-weight:700 !important;
  margin-top:18px !important;
}
body[data-role="tuteur"] .role-heading-text::after{
  content:"" !important;
  display:block !important;
  width:64px !important;
  height:5px !important;
  border-radius:99px !important;
  background:#ff8a1f !important;
  margin-top:18px !important;
}
body[data-role="tuteur"] .role-action-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:22px !important;
}
body[data-role="tuteur"] .role-action-card{
  min-height:214px !important;
  display:grid !important;
  grid-template-columns:78px 1fr 48px !important;
  align-items:center !important;
  gap:22px !important;
  padding:30px 32px !important;
  border-radius:28px !important;
  background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(247,251,255,.94)) !important;
  border:1px solid rgba(255,255,255,.75) !important;
  box-shadow:0 24px 52px rgba(0,24,64,.22) !important;
  color:#003B71 !important;
  text-decoration:none !important;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}
body[data-role="tuteur"] .role-action-card:hover{
  transform:translateX(8px) !important;
  border-color:#ff8a1f !important;
  box-shadow:0 30px 70px rgba(0,24,64,.30) !important;
}
body[data-role="tuteur"] .role-action-icon{
  width:78px !important;
  height:78px !important;
  border-radius:24px !important;
  display:grid !important;
  place-items:center !important;
  font-size:2rem !important;
  background:#fff1e4 !important;
  color:#ff7a00 !important;
  font-weight:950 !important;
}
body[data-role="tuteur"] .role-action-text strong{
  display:block !important;
  color:#003B71 !important;
  font-size:clamp(1.45rem,2vw,2rem) !important;
  line-height:1.05 !important;
  margin-bottom:10px !important;
}
body[data-role="tuteur"] .role-action-text small{
  display:block !important;
  color:#334d6d !important;
  font-size:1.04rem !important;
  line-height:1.45 !important;
  font-weight:650 !important;
}
@media(max-width:900px){
  body[data-role="tuteur"] .cfa360-topbar{padding:12px 16px !important;}
  body[data-role="tuteur"] .role-action-grid{grid-template-columns:1fr !important;}
  body[data-role="tuteur"] .role-action-card{grid-template-columns:56px 1fr 40px !important;min-height:132px !important;padding:20px 18px !important;border-radius:22px !important;}
  body[data-role="tuteur"] .role-action-icon{width:56px !important;height:56px !important;border-radius:18px !important;font-size:1.5rem !important;}
}


/* Correctif demandé : on garde le cadenas mais on supprime la mention « Bientôt disponible ». */
.domain-general-locked::after,
a[data-locked-domain="general"]::after,
.autoeval-action-card.action-gen::after,
.domain-choice-btn.domain-general::after,
.eval-domain-card.domain-general::after{
  content:none !important;
  display:none !important;
}


/* ===== SOURCE: cfa360-login-profile-switch.css ===== */
/* Correction connexion : remplacer Retour/Déconnexion par Changer de profil */
.cfa360-profile-switch-top{
  display:none;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 18px;
  border-radius:999px;
  background:#003B71;
  color:#fff!important;
  text-decoration:none!important;
  font-weight:950;
  box-shadow:0 12px 24px rgba(0,59,113,.16);
}
body.cfa360-login-only .cfa360-profile-switch-top{display:inline-flex!important;}
body.cfa360-login-only .cfa360-help{display:none!important;}
body.cfa360-login-only .cfa360-back-bottom,
body.cfa360-login-only .cfa360-back{display:none!important;}
/* Sécurité si d’anciens scripts injectent des boutons haut de page */
body.cfa360-login-only .role-top-btn,
body.cfa360-login-only .role-logout-top,
body.cfa360-login-only .bilan-nav-btn,
body.cfa360-login-only .messagerie-top-btn{display:none!important;}
body.cfa360-login-only .cfa360-profile-switch-top{display:inline-flex!important;}
@media(max-width:640px){.cfa360-profile-switch-top{min-height:40px;padding:0 13px;font-size:.9rem;}}

/* Correctif : placer le bouton Changer de profil à droite du bandeau blanc */
body.cfa360-login-only .cfa360-topbar{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:16px !important;
}
body.cfa360-login-only .cfa360-profile-switch-top{
  margin-left:auto !important;
  margin-right:0 !important;
  order:99 !important;
}
body.cfa360-login-only .cfa360-institution{
  margin-right:auto !important;
}
@media(max-width:640px){
  body.cfa360-login-only .cfa360-topbar{gap:10px !important;}
  body.cfa360-login-only .cfa360-profile-switch-top{white-space:nowrap !important;}
}


/* ===== SOURCE: cfa360-refactor-core.css ===== */
/* =========================================================
   CFA360 REFACTOR CORE CSS V2
   Fichier consolidé : remplace cfa360-stabilisation-v1.css,
   cfa360-stabilisation-v2.css et cfa360-stabilisation-finale.css.
   Objectif : réduire les correctifs successifs tout en conservant
   le rendu stabilisé existant.
   ========================================================= */


/* === Source consolidée : cfa360-stabilisation-v1.css === */

/* ==========================================================
   CFA360 V1 stabilisée — trame unique, navigation unique,
   domaine général verrouillé, nettoyage visuel final.
   ========================================================== */
:root{
  --cfa-blue:#003B71;
  --cfa-blue-2:#005A9C;
  --cfa-blue-3:#0873BD;
  --cfa-orange:#F28C28;
  --cfa-orange-2:#FFB35C;
  --cfa-white:#FFFFFF;
  --cfa-ink:#0F2742;
  --cfa-muted:#526B86;
  --cfa-card:#FFFFFF;
  --cfa-border:rgba(0,59,113,.14);
  --cfa-shadow:0 24px 60px rgba(0,27,70,.22);
  --cfa-radius:28px;
}

html{min-height:100%;}
body[data-role],
body[data-page],
body.cfa360-login-only,
body.cfa360-profile-only{
  min-height:100vh!important;
  background:
    radial-gradient(circle at 15% 65%, rgba(242,140,40,.26), transparent 0 14%, transparent 28%),
    linear-gradient(135deg, #00315f 0%, #004b91 54%, #006fc7 100%)!important;
  background-attachment:fixed!important;
  color:#fff!important;
  overflow-x:hidden!important;
}

/* Bandeau blanc commun */
.cfa360-topbar{
  min-height:82px!important;
  padding:10px clamp(16px,3vw,38px)!important;
  background:#fff!important;
  border-bottom:1px solid rgba(0,59,113,.10)!important;
  box-shadow:0 8px 26px rgba(0,30,80,.12)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:16px!important;
  position:relative!important;
  z-index:1000!important;
}
.cfa360-institution{display:flex!important;align-items:center!important;text-decoration:none!important;}
.cfa360-institution img{height:58px!important;max-width:250px!important;object-fit:contain!important;display:block!important;}
.cfa360-help{display:none!important;}
.role-top-actions,.cfa360-top-actions{
  margin-left:auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:12px!important;
  flex-wrap:wrap!important;
}
.role-top-btn,.cfa360-top-btn{
  min-height:42px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 16px!important;
  border-radius:14px!important;
  border:1px solid #D8E6F8!important;
  background:#fff!important;
  color:var(--cfa-blue)!important;
  font-weight:900!important;
  text-decoration:none!important;
  box-shadow:0 10px 22px rgba(0,40,90,.08)!important;
}
.role-top-btn:hover,.cfa360-top-btn:hover{background:#F4F8FF!important;transform:translateY(-1px)!important;}
.role-logout-top{background:#F7FAFF!important;}

/* Footer unique */
.cfa360-rights-footer, footer.cfa360-rights-footer{
  background:rgba(0,32,72,.72)!important;
  color:#fff!important;
  border-top:1px solid rgba(255,255,255,.16)!important;
  text-align:center!important;
  font-weight:800!important;
  font-size:.84rem!important;
  padding:10px 14px!important;
}

/* Héros commun */
.cfa360-role-home,.cfa360-apprenti-home,.formateur-flow-home,.formateur-domain-home,.formateur-competence-shell,.bilan-page-shell,.cfa360-preuves-home,.messages-simple-shell,
.shell:not(.admin-shell){
  width:min(1180px, calc(100% - 38px))!important;
  max-width:1180px!important;
  margin:0 auto!important;
  padding:42px 0 76px!important;
  color:#fff!important;
  background:transparent!important;
  box-shadow:none!important;
  border:0!important;
}
.role-hero-zone,.apprenti-hero-zone,.bilan-hero-zone,.preuves-hero-zone,.messages-hero-zone{
  max-width:1180px!important;
  margin:0 auto 28px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  text-align:left!important;
  color:#fff!important;
}
.role-main-logo,.apprenti-main-logo,.bilan-hero-logo,.preuves-hero-logo,.messages-hero-logo{
  width:min(360px,72vw)!important;
  max-height:150px!important;
  object-fit:contain!important;
  margin:0 auto 16px!important;
  filter:drop-shadow(0 18px 34px rgba(0,0,0,.20))!important;
}
.role-heading-row,.autoeval-heading-row,.preuves-heading-row,.messages-heading-row{
  width:100%!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:20px!important;
}
.role-kicker,.apprenti-kicker,.bilan-eyebrow,.preuves-kicker,.messages-kicker{
  margin:0 0 8px!important;
  color:var(--cfa-orange)!important;
  font-size:.95rem!important;
  font-weight:950!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
}
.role-user-name,.bilan-student-name,.preuves-student-name,.messages-user-name{
  margin:0!important;
  color:#fff!important;
  font-size:clamp(1.45rem,2.6vw,2.15rem)!important;
  font-weight:850!important;
  line-height:1.1!important;
}
.role-lead,.apprenti-lead,.preuves-lead,.messages-lead{
  width:100%!important;
  margin:16px 0 0!important;
  color:rgba(255,255,255,.90)!important;
  font-size:clamp(1rem,1.4vw,1.2rem)!important;
  font-weight:650!important;
}

/* Cartes d'action communes */
.role-action-grid,.autoeval-action-grid,.preuves-action-grid,.messages-action-grid{
  width:100%!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:22px!important;
}
.role-action-card,.autoeval-action-card,.preuves-action-card,.message-action-card,.formateur-mode-card,.domain-choice-btn,.report-type-btn{
  position:relative!important;
  min-height:165px!important;
  display:grid!important;
  grid-template-columns:auto 1fr auto!important;
  align-items:center!important;
  gap:20px!important;
  padding:26px 28px!important;
  border-radius:28px!important;
  background:linear-gradient(145deg, rgba(255,255,255,.98), rgba(247,251,255,.93))!important;
  border:1px solid rgba(255,255,255,.74)!important;
  box-shadow:var(--cfa-shadow)!important;
  color:var(--cfa-blue)!important;
  text-decoration:none!important;
  text-align:left!important;
  overflow:hidden!important;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease!important;
}
.role-action-card:hover,.autoeval-action-card:hover,.preuves-action-card:hover,.message-action-card:hover,.formateur-mode-card:hover,.domain-choice-btn:hover,.report-type-btn:hover{
  transform:translateX(8px)!important;
  border-color:rgba(242,140,40,.55)!important;
  box-shadow:0 30px 80px rgba(0,27,70,.30)!important;
}
.role-action-icon,.autoeval-action-icon,.preuves-action-icon{
  width:68px!important;height:68px!important;border-radius:22px!important;display:grid!important;place-items:center!important;
  background:#EAF3FF!important;color:var(--cfa-blue)!important;font-size:1.8rem!important;font-weight:950!important;
}
.role-action-text strong,.autoeval-action-text strong,.preuves-action-text strong{display:block!important;color:var(--cfa-blue)!important;font-size:clamp(1.35rem,2vw,1.9rem)!important;line-height:1.08!important;margin-bottom:8px!important;}
.role-action-text small,.autoeval-action-text small,.preuves-action-text small{display:block!important;color:#315173!important;font-size:1rem!important;line-height:1.42!important;font-weight:650!important;}
.role-action-arrow,.autoeval-action-arrow,.preuves-action-arrow{width:44px!important;height:44px!important;border-radius:50%!important;display:grid!important;place-items:center!important;background:#fff!important;color:var(--cfa-blue)!important;box-shadow:0 12px 24px rgba(0,37,80,.12)!important;font-weight:950!important;font-size:1.35rem!important;}

/* Pages anciennes : suppression visuelle des bandeaux latéraux et alignement */
.sidebar,.side-nav,.tutor-side-nav,.sidebar-utility-links,.tutor-sidebar-note,.logout-btn{display:none!important;}
.admin-card,.tutor-card,.role-eval-card{
  background:transparent!important;border:0!important;box-shadow:none!important;display:block!important;min-height:auto!important;overflow:visible!important;
}
.dashboard,.tutor-dashboard,.tuteur-essential-dashboard,.formateur-eval-dashboard{
  background:transparent!important;border:0!important;box-shadow:none!important;color:#fff!important;padding:0!important;max-width:1180px!important;margin:0 auto!important;
}
.dashboard-header,.tutor-header,.tuteur-simple-header,.tuteur-eval-header-minimal{
  background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;margin:0 0 24px!important;color:#fff!important;
}
.dashboard-header h2,.tutor-header h2{color:#fff!important;font-size:clamp(2rem,4vw,4rem)!important;line-height:1.05!important;margin:.2em 0!important;}
.dashboard-header .header-text,.tutor-header .header-text{color:rgba(255,255,255,.88)!important;font-weight:650!important;}
.panel,.tuteur-simple-step-card,.formateur-setup-card,.formateur-setup-block,.formateur-competence-panel,.formateur-save-panel,.bilan-clean-card,.preuves-clean-card,.messages-clean-card{
  border-radius:28px!important;background:linear-gradient(180deg,#fff 0%,#F7FBFF 100%)!important;border:1px solid rgba(255,255,255,.75)!important;box-shadow:var(--cfa-shadow)!important;color:var(--cfa-blue)!important;
}
.panel h1,.panel h2,.panel h3,.panel strong,.tuteur-simple-step-card h3{color:var(--cfa-blue)!important;}
.panel p,.panel small,.panel label,.tuteur-simple-step-card p{color:#315173!important;}

/* Procédures : étape claire, pas de mélange */
.tuteur-simple-eval-grid,.formateur-setup-card,.formateur-competence-layout{display:grid!important;gap:22px!important;}
.tuteur-simple-eval-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
.tuteur-simple-steps,.formateur-simple-steps{display:flex!important;gap:10px!important;flex-wrap:wrap!important;margin:0 0 18px!important;}
.tuteur-simple-steps span,.formateur-simple-steps span{border-radius:999px!important;padding:10px 14px!important;background:rgba(255,255,255,.16)!important;color:#fff!important;border:1px solid rgba(255,255,255,.24)!important;font-weight:850!important;}
.tuteur-simple-steps span.active,.formateur-simple-steps span.active{background:var(--cfa-orange)!important;border-color:var(--cfa-orange)!important;color:#fff!important;}

/* Domaine général verrouillé */
.domain-general-locked,
[data-domain="general"].domain-general-locked,
a[href*="domain=general"],
button[data-domain="general"]{
  pointer-events:none!important;
  opacity:.62!important;
  filter:grayscale(.08)!important;
  cursor:not-allowed!important;
}
.domain-general-locked::before,
a[href*="domain=general"]::before,
button[data-domain="general"]::before{
  content:"🔒"!important;
  position:absolute!important;
  top:12px!important;
  left:12px!important;
  width:32px!important;
  height:32px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:50%!important;
  background:var(--cfa-orange)!important;
  color:#fff!important;
  font-size:1rem!important;
  z-index:3!important;
  box-shadow:0 10px 22px rgba(242,140,40,.30)!important;
}
.domain-general-locked::after,
a[href*="domain=general"]::after,
button[data-domain="general"]::after{
  content:"Verrouillé pour le moment"!important;
  position:absolute!important;
  right:14px!important;
  bottom:12px!important;
  padding:6px 10px!important;
  border-radius:999px!important;
  background:#fff!important;
  color:var(--cfa-blue)!important;
  font-size:.78rem!important;
  font-weight:900!important;
  z-index:3!important;
}

@media(max-width:900px){
  .cfa360-institution img{height:44px!important;max-width:190px!important;}
  .cfa360-topbar{min-height:72px!important;padding:8px 12px!important;}
  .role-top-actions{gap:8px!important;}
  .role-top-btn{min-height:38px!important;padding:0 10px!important;font-size:.85rem!important;}
  .cfa360-role-home,.cfa360-apprenti-home,.formateur-flow-home,.formateur-domain-home,.formateur-competence-shell,.bilan-page-shell,.cfa360-preuves-home,.messages-simple-shell,.shell:not(.admin-shell){width:calc(100% - 22px)!important;padding:26px 0 74px!important;}
  .role-action-grid,.autoeval-action-grid,.preuves-action-grid,.messages-action-grid,.tuteur-simple-eval-grid{grid-template-columns:1fr!important;gap:14px!important;}
  .role-action-card,.autoeval-action-card,.preuves-action-card,.message-action-card,.formateur-mode-card{min-height:120px!important;padding:18px 16px!important;border-radius:22px!important;gap:14px!important;}
  .role-action-icon,.autoeval-action-icon,.preuves-action-icon{width:54px!important;height:54px!important;border-radius:18px!important;font-size:1.35rem!important;}
  .role-action-text strong,.autoeval-action-text strong,.preuves-action-text strong{font-size:1.25rem!important;}
  .role-action-text small,.autoeval-action-text small,.preuves-action-text small{font-size:.92rem!important;}
  .role-action-arrow,.autoeval-action-arrow,.preuves-action-arrow{display:none!important;}
}

/* Cadenas domaine général : aucun libellé additionnel. */
.domain-general-locked::after,.autoeval-action-card.action-gen::after,.domain-choice-btn.domain-general::after{content:none!important;display:none!important;}


/* === Source consolidée : cfa360-stabilisation-v2.css === */

/* ==========================================================
   CFA360 stabilisation V2 — alignement tuteur/formateur sur
   la politique apprenti : même fond, bandeau, hero, cartes,
   procédures et verrouillage domaine général.
   ========================================================== */
:root{
  --cfa-blue:#003B71;
  --cfa-blue-deep:#00315f;
  --cfa-blue-mid:#004b91;
  --cfa-blue-light:#006fc7;
  --cfa-orange:#F28C28;
  --cfa-orange-2:#FFB35C;
  --cfa-card:#FFFFFF;
  --cfa-soft:#F6FAFF;
  --cfa-ink:#0F2742;
  --cfa-muted:#526B86;
  --cfa-shadow:0 24px 60px rgba(0,27,70,.22);
  --cfa-radius:28px;
}
html,body{min-height:100%;}
body[data-role="apprenti"],body[data-role="tuteur"],body[data-role="formateur"]{
  background:
    radial-gradient(circle at 16% 64%, rgba(242,140,40,.26), transparent 0 14%, transparent 28%),
    linear-gradient(135deg,var(--cfa-blue-deep) 0%,var(--cfa-blue-mid) 54%,var(--cfa-blue-light) 100%) !important;
  background-attachment:fixed!important;
  color:#fff!important;
  overflow-x:hidden!important;
}
/* Bandeau haut commun */
.cfa360-topbar{
  min-height:82px!important;
  background:#fff!important;
  border-bottom:1px solid rgba(0,59,113,.10)!important;
  box-shadow:0 8px 26px rgba(0,30,80,.12)!important;
  padding:10px clamp(16px,3vw,38px)!important;
  display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;
  position:relative!important;z-index:1000!important;
}
.cfa360-institution img{height:58px!important;max-width:250px!important;object-fit:contain!important;display:block!important;}
.cfa360-help{display:none!important;}
.role-top-actions,.cfa360-top-actions{margin-left:auto!important;display:flex!important;align-items:center!important;gap:12px!important;flex-wrap:wrap!important;justify-content:flex-end!important;}
.role-top-btn,.cfa360-top-btn{min-height:42px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0 16px!important;border-radius:14px!important;border:1px solid #D8E6F8!important;background:#fff!important;color:var(--cfa-blue)!important;font-weight:900!important;text-decoration:none!important;box-shadow:0 10px 22px rgba(0,40,90,.08)!important;}
.role-top-btn:hover,.cfa360-top-btn:hover{background:#F4F8FF!important;transform:translateY(-1px)!important;}
.role-logout-top{background:#F7FAFF!important;}
/* Structure commune */
.cfa360-role-home,.cfa360-apprenti-home,.formateur-flow-home,.formateur-domain-home,.formateur-competence-shell,.bilan-page-shell,.cfa360-preuves-home,.messages-simple-shell,.shell:not(.admin-shell){
  width:min(1180px,calc(100% - 38px))!important;max-width:1180px!important;margin:0 auto!important;padding:42px 0 76px!important;background:transparent!important;border:0!important;box-shadow:none!important;color:#fff!important;
}
.admin-card,.tutor-card,.role-eval-card{display:block!important;background:transparent!important;border:0!important;box-shadow:none!important;min-height:auto!important;overflow:visible!important;}
.sidebar,.side-nav,.tutor-side-nav,.sidebar-utility-links,.tutor-sidebar-note,.logout-btn,.sidebar-top{display:none!important;}
.dashboard,.tutor-dashboard,.tuteur-essential-dashboard,.formateur-eval-dashboard,.tuteur-bilan-dashboard,.tuteur-preuves-dashboard,.formateur-preuves-dashboard{max-width:1180px!important;margin:0 auto!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;color:#fff!important;}
/* Hero et titre commun */
.role-hero-zone,.apprenti-hero-zone,.bilan-hero-zone,.preuves-hero-zone,.messages-hero-zone{max-width:1180px!important;margin:0 auto 28px!important;display:flex!important;flex-direction:column!important;align-items:center!important;text-align:left!important;color:#fff!important;}
.role-main-logo,.apprenti-main-logo,.bilan-hero-logo,.preuves-hero-logo,.messages-hero-logo{width:min(360px,72vw)!important;max-height:150px!important;object-fit:contain!important;margin:0 auto 16px!important;filter:drop-shadow(0 18px 34px rgba(0,0,0,.20))!important;}
.role-heading-row,.autoeval-heading-row,.preuves-heading-row,.messages-heading-row{width:100%!important;display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:20px!important;}
.role-kicker,.apprenti-kicker,.bilan-eyebrow,.preuves-kicker,.messages-kicker,.dashboard-header .eyebrow,.tutor-header .eyebrow{margin:0 0 8px!important;color:var(--cfa-orange)!important;font-size:.95rem!important;font-weight:950!important;letter-spacing:.08em!important;text-transform:uppercase!important;}
.role-user-name,.bilan-student-name,.preuves-student-name,.messages-user-name{margin:0!important;color:#fff!important;font-size:clamp(1.45rem,2.6vw,2.15rem)!important;font-weight:850!important;line-height:1.1!important;}
.role-lead,.apprenti-lead,.preuves-lead,.messages-lead{width:100%!important;margin:16px 0 0!important;color:rgba(255,255,255,.90)!important;font-size:clamp(1rem,1.4vw,1.2rem)!important;font-weight:650!important;}
.dashboard-header,.tutor-header,.tuteur-simple-header,.tuteur-eval-header-minimal{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;margin:0 0 24px!important;color:#fff!important;}
.dashboard-header h2,.tutor-header h2{color:#fff!important;font-size:clamp(2rem,4vw,4rem)!important;line-height:1.05!important;margin:.2em 0!important;letter-spacing:-.04em!important;}
.dashboard-header .header-text,.tutor-header .header-text{color:rgba(255,255,255,.88)!important;font-weight:650!important;font-size:clamp(1rem,1.4vw,1.2rem)!important;}
/* Cartes */
.role-action-grid,.autoeval-action-grid,.preuves-action-grid,.messages-action-grid{width:100%!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:22px!important;}
.role-action-card,.autoeval-action-card,.preuves-action-card,.message-action-card,.formateur-mode-card,.domain-choice-btn,.report-type-btn,.tuteur-simple-step-card,.formateur-setup-block,.formateur-mode-card{position:relative!important;min-height:150px!important;display:grid!important;align-items:center!important;gap:18px!important;padding:24px 26px!important;border-radius:28px!important;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(247,251,255,.94))!important;border:1px solid rgba(255,255,255,.74)!important;box-shadow:var(--cfa-shadow)!important;color:var(--cfa-blue)!important;text-decoration:none!important;text-align:left!important;overflow:hidden!important;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease!important;}
.role-action-card,.autoeval-action-card,.preuves-action-card,.message-action-card{grid-template-columns:auto 1fr auto!important;}
.role-action-card:hover,.autoeval-action-card:hover,.preuves-action-card:hover,.message-action-card:hover,.formateur-mode-card:hover,.domain-choice-btn:hover,.report-type-btn:hover,.tuteur-simple-step-card:hover,.formateur-setup-block:hover{transform:translateX(8px)!important;border-color:rgba(242,140,40,.55)!important;box-shadow:0 30px 80px rgba(0,27,70,.30)!important;}
.role-action-icon,.autoeval-action-icon,.preuves-action-icon,.tuteur-step-number,.formateur-step-badge{width:68px!important;height:68px!important;border-radius:22px!important;display:grid!important;place-items:center!important;background:#EAF3FF!important;color:var(--cfa-blue)!important;font-size:1.8rem!important;font-weight:950!important;}
.role-action-text strong,.autoeval-action-text strong,.preuves-action-text strong,.formateur-mode-card strong{display:block!important;color:var(--cfa-blue)!important;font-size:clamp(1.35rem,2vw,1.9rem)!important;line-height:1.08!important;margin-bottom:8px!important;}
.role-action-text small,.autoeval-action-text small,.preuves-action-text small,.formateur-mode-card small{display:block!important;color:#315173!important;font-size:1rem!important;line-height:1.42!important;font-weight:650!important;}
.role-action-arrow,.autoeval-action-arrow,.preuves-action-arrow{width:44px!important;height:44px!important;border-radius:50%!important;display:grid!important;place-items:center!important;background:#fff!important;color:var(--cfa-blue)!important;box-shadow:0 12px 24px rgba(0,37,80,.12)!important;font-weight:950!important;font-size:1.35rem!important;}
.panel,.tuteur-simple-step-card,.formateur-setup-card,.formateur-setup-block,.formateur-competence-panel,.formateur-save-panel,.bilan-clean-card,.preuves-clean-card,.messages-clean-card{border-radius:28px!important;background:linear-gradient(180deg,#fff 0%,#F7FBFF 100%)!important;border:1px solid rgba(255,255,255,.75)!important;box-shadow:var(--cfa-shadow)!important;color:var(--cfa-blue)!important;}
.panel h1,.panel h2,.panel h3,.panel strong,.tuteur-simple-step-card h3,.formateur-setup-block h2{color:var(--cfa-blue)!important;}
.panel p,.panel small,.panel label,.tuteur-simple-step-card p,.formateur-setup-block p{color:#315173!important;}
/* Évaluation tuteur: rendu comparable aux cartes formateur/apprenti */
.tuteur-simple-eval-panel{padding:26px!important;}
.tuteur-simple-eval-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:22px!important;}
.tuteur-step-title-row{display:flex!important;align-items:center!important;gap:14px!important;margin-bottom:18px!important;}
.tuteur-simple-bottom-actions{display:flex!important;gap:12px!important;flex-wrap:wrap!important;justify-content:center!important;margin-top:22px!important;}
.tuteur-simple-steps,.formateur-simple-steps{display:flex!important;gap:10px!important;flex-wrap:wrap!important;margin:0 0 18px!important;}
.tuteur-simple-steps span,.formateur-simple-steps span{border-radius:999px!important;padding:10px 14px!important;background:rgba(255,255,255,.16)!important;color:#fff!important;border:1px solid rgba(255,255,255,.24)!important;font-weight:850!important;}
.tuteur-simple-steps span.active,.formateur-simple-steps span.active{background:var(--cfa-orange)!important;border-color:var(--cfa-orange)!important;color:#fff!important;}
.file-input,select,input,textarea{border-radius:16px!important;border:1px solid #D4E3F7!important;background:#fff!important;color:var(--cfa-blue)!important;min-height:48px!important;}
.primary-btn{background:linear-gradient(135deg,var(--cfa-orange),var(--cfa-orange-2))!important;color:#fff!important;border:0!important;border-radius:16px!important;font-weight:950!important;box-shadow:0 16px 34px rgba(242,140,40,.25)!important;}
.secondary-btn,.small-btn,.inline-btn{border-radius:16px!important;background:#F4F8FF!important;color:var(--cfa-blue)!important;border:1px solid #D8E6F8!important;font-weight:900!important;text-decoration:none!important;}
/* Domaine général verrouillé propre */
.domain-general-locked,a[href*="domain=general"],button[data-domain="general"],.action-gen.domain-general-locked{pointer-events:none!important;opacity:.62!important;filter:grayscale(.08)!important;cursor:not-allowed!important;}
.domain-general-locked::before,a[href*="domain=general"]::before,button[data-domain="general"]::before,.action-gen.domain-general-locked::before{content:'🔒'!important;position:absolute!important;top:12px!important;left:12px!important;width:34px!important;height:34px!important;border-radius:50%!important;background:#fff!important;color:var(--cfa-blue)!important;display:grid!important;place-items:center!important;box-shadow:0 8px 18px rgba(0,0,0,.16)!important;z-index:5!important;font-size:1rem!important;}
.domain-general-locked::after,a[href*="domain=general"]::after{content:'Verrouillé pour le moment'!important;position:absolute!important;right:14px!important;bottom:12px!important;border-radius:999px!important;background:rgba(0,59,113,.08)!important;color:var(--cfa-blue)!important;padding:6px 10px!important;font-size:.76rem!important;font-weight:900!important;}
/* Footer */
.cfa360-rights-footer,footer.cfa360-rights-footer{background:rgba(0,32,72,.72)!important;color:#fff!important;border-top:1px solid rgba(255,255,255,.16)!important;text-align:center!important;font-weight:800!important;font-size:.84rem!important;padding:10px 14px!important;}
@media(max-width:900px){
  .cfa360-institution img{height:44px!important;max-width:190px!important;}
  .role-top-actions{gap:8px!important;}
  .role-top-btn{min-height:38px!important;padding:0 10px!important;font-size:.82rem!important;}
  .cfa360-role-home,.cfa360-apprenti-home,.shell:not(.admin-shell){width:calc(100% - 22px)!important;padding:26px 0 74px!important;}
  .role-action-grid,.autoeval-action-grid,.preuves-action-grid,.messages-action-grid,.tuteur-simple-eval-grid{grid-template-columns:1fr!important;gap:14px!important;}
  .role-action-card,.autoeval-action-card,.preuves-action-card,.message-action-card,.tuteur-simple-step-card{min-height:118px!important;grid-template-columns:auto 1fr auto!important;padding:18px!important;border-radius:22px!important;}
  .role-action-icon,.autoeval-action-icon,.preuves-action-icon,.tuteur-step-number{width:52px!important;height:52px!important;border-radius:17px!important;font-size:1.35rem!important;}
  .role-action-text strong,.autoeval-action-text strong,.preuves-action-text strong{font-size:1.25rem!important;}
}
@media(max-width:560px){
  .role-heading-row,.autoeval-heading-row,.preuves-heading-row,.messages-heading-row{display:block!important;}
  .role-action-card,.autoeval-action-card,.preuves-action-card,.message-action-card{grid-template-columns:1fr!important;text-align:center!important;justify-items:center!important;}
  .role-action-arrow,.autoeval-action-arrow,.preuves-action-arrow{display:none!important;}
}

/* Cadenas domaine général : aucun libellé additionnel. */
.domain-general-locked::after,.autoeval-action-card.action-gen::after,.domain-choice-btn.domain-general::after{content:none!important;display:none!important;}


/* === Source consolidée : cfa360-stabilisation-finale.css === */

/* ==========================================================
   CFA360 - STABILISATION FINALE V1
   Objectif : limiter les effets de bord dus aux correctifs successifs
   sans modifier l'espace apprenti stabilisé.
   ========================================================== */
:root{
  --cfa360-blue:#003B71;
  --cfa360-blue-2:#005CA8;
  --cfa360-orange:#ff8a1f;
  --cfa360-white:#ffffff;
  --cfa360-card-radius:28px;
  --cfa360-shadow:0 22px 54px rgba(0,31,78,.22);
}
/* Bandeau supérieur : une seule zone actions, alignée à droite */
.cfa360-topbar{box-sizing:border-box!important;}
.cfa360-topbar .role-top-actions,
.cfa360-topbar .cfa360-top-actions,
.cfa360-topbar .messagerie-top-actions{
  margin-left:auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:12px!important;
}
/* Évite les doubles boutons quand d'anciens correctifs les ont ajoutés hors du bandeau */
main .role-top-actions,
main .cfa360-top-actions,
.shell .role-top-actions,
.shell .cfa360-top-actions,
.messages-simple-sidebar .role-top-actions,
.messages-simple-sidebar .cfa360-top-actions{display:none!important;}
/* Boutons système cohérents */
.role-top-btn,.cfa360-top-btn,.messagerie-top-btn,.role-logout-btn,.bilan-nav-btn{
  min-height:42px!important;
  padding:0 16px!important;
  border-radius:14px!important;
  font-weight:900!important;
  text-decoration:none!important;
  border:1px solid rgba(0,59,113,.16)!important;
  background:#fff!important;
  color:var(--cfa360-blue)!important;
  box-shadow:0 8px 18px rgba(0,59,113,.08)!important;
}
/* Modales : aucune modale masquée ne doit bloquer la page */
.auth-hidden,.is-hidden,[hidden]{display:none!important;}
body:not(.modal-open):not(.bilan-export-open) .modal-backdrop.auth-hidden,
body:not(.modal-open):not(.bilan-export-open) .bilan-export-modal.auth-hidden{pointer-events:none!important;}
/* PDF / impressions : évite les blocs coupés si le navigateur applique print */
@media print{
  .print-header,.print-logo-strip,.print-brand-card,.print-summary-grid,.print-section,.competence-radar-card,.print-signature-section{
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
}
/* Badges messages sur cartes d'action */
.message-unread-badge,.cfa360-message-badge{
  position:absolute!important;
  right:18px!important;
  bottom:16px!important;
  width:30px!important;
  height:30px!important;
  border-radius:999px!important;
  display:grid!important;
  place-items:center!important;
  background:#ff3b30!important;
  color:#fff!important;
  font-weight:950!important;
  font-size:.86rem!important;
  box-shadow:0 0 0 4px rgba(255,59,48,.16), 0 12px 26px rgba(0,31,78,.16)!important;
  z-index:6!important;
}
@media(max-width:700px){
  .role-top-btn,.cfa360-top-btn,.messagerie-top-btn,.role-logout-btn,.bilan-nav-btn{min-height:38px!important;padding:0 10px!important;font-size:12px!important;}
}



/* === CFA360 refactor overrides sûrs === */
:root{
  --cfa360-blue:#003B71;
  --cfa360-orange:#ff8a1f;
  --cfa360-radius:28px;
}
.cfa360-topbar .role-top-actions,
.cfa360-topbar .cfa360-top-actions,
.cfa360-topbar .messagerie-top-actions{
  margin-left:auto!important;
  justify-content:flex-end!important;
}
.cfa360-rights-footer,
footer.cfa360-rights-footer{
  font-family:inherit!important;
}


/* ===== SOURCE: cfa360-wow-premium.css ===== */
/* CFA360 WOW PREMIUM - admins cockpit, dark mode, avatars, accueil premium */
:root{
  --cfa360-blue:#003B71;
  --cfa360-blue-2:#005FAE;
  --cfa360-orange:#FF8A1F;
  --cfa360-card:#ffffff;
  --cfa360-text:#062B50;
  --cfa360-muted:#55708F;
  --cfa360-shadow:0 24px 70px rgba(0,34,80,.24);
  --cfa360-radius:28px;
}
html{scroll-behavior:smooth;}
body{transition:background .25s ease,color .25s ease;}
/* home spectacular */
body.cfa360-home{
  background:
    radial-gradient(circle at 12% 16%, rgba(255,138,31,.32), transparent 0 13%, transparent 32%),
    radial-gradient(circle at 86% 18%, rgba(255,255,255,.16), transparent 0 14%, transparent 32%),
    linear-gradient(135deg,#003B71 0%,#005EA8 58%,#0078CB 100%) !important;
}
body.cfa360-home .cfa360-main-logo{filter:drop-shadow(0 28px 44px rgba(0,0,0,.22)); animation:cfa360LogoFloat 5.8s ease-in-out infinite;}
@keyframes cfa360LogoFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
body.cfa360-home .cfa360-profile-card,
body.cfa360-home .cfa360-admin-link,
body.cfa360-home .cfa360-quick-grid a{transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;}
body.cfa360-home .cfa360-profile-card:hover,
body.cfa360-home .cfa360-admin-link:hover,
body.cfa360-home .cfa360-quick-grid a:hover{transform:translateX(8px) translateY(-2px); box-shadow:0 30px 82px rgba(0,22,56,.36)!important; border-color:rgba(255,138,31,.55)!important;}
/* avatars */
.cfa360-avatar{width:46px;height:46px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--cfa360-blue),var(--cfa360-blue-2));color:#fff;font-weight:950;box-shadow:0 12px 24px rgba(0,37,80,.18);border:2px solid rgba(255,255,255,.9);}
.cfa360-avatar.avatar-apprenti{background:linear-gradient(135deg,#003B71,#008FE3)}
.cfa360-avatar.avatar-tuteur{background:linear-gradient(135deg,#26344D,#006FC7)}
.cfa360-avatar.avatar-formateur{background:linear-gradient(135deg,#FF8A1F,#FFB35F)}
.cfa360-avatar.avatar-admin{background:linear-gradient(135deg,#18243A,#5E7CE2)}
/* admin cockpit */
body.cfa360-admin-wow .shell{width:min(1380px,calc(100% - 34px))!important;max-width:1380px!important;margin:34px auto 78px!important;}
body.cfa360-admin-wow .admin-card{display:block!important;background:transparent!important;border:0!important;box-shadow:none!important;}
body.cfa360-admin-wow .sidebar{display:none!important;}
body.cfa360-admin-wow .dashboard{width:100%!important;max-width:100%!important;background:transparent!important;padding:0!important;}
body.cfa360-admin-wow .dashboard-header{display:block!important;margin:0 0 24px!important;padding:0!important;background:transparent!important;box-shadow:none!important;border:0!important;color:#fff!important;}
body.cfa360-admin-wow .dashboard-header h2{font-size:clamp(2.2rem,4.4vw,4.8rem)!important;line-height:1!important;color:#fff!important;margin:6px 0 10px!important;letter-spacing:-.055em;text-shadow:0 18px 46px rgba(0,0,0,.18);}
body.cfa360-admin-wow .dashboard-header .header-text{max-width:900px;color:rgba(255,255,255,.88)!important;font-weight:650!important;font-size:1.1rem!important;}
body.cfa360-admin-wow .dashboard-header .eyebrow{color:var(--cfa360-orange)!important;font-weight:950!important;letter-spacing:.09em;text-transform:uppercase;}
body.cfa360-admin-wow .dashboard::before{content:"Pilotage";display:inline-flex;color:#fff;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:9px 15px;margin:0 0 12px;font-weight:950;backdrop-filter:blur(10px);}
body.cfa360-admin-wow .stats-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:18px!important;margin:0 0 24px!important;}
body.cfa360-admin-wow .stat-card{position:relative;min-height:138px!important;padding:22px!important;border-radius:28px!important;background:linear-gradient(145deg,#fff,#F6FAFF)!important;border:1px solid rgba(255,255,255,.78)!important;box-shadow:var(--cfa360-shadow)!important;overflow:hidden!important;}
body.cfa360-admin-wow .stat-card::after{content:"";position:absolute;right:-32px;bottom:-44px;width:136px;height:136px;border-radius:50%;background:rgba(0,95,174,.08);}
body.cfa360-admin-wow .stat-card.accent-orange::after{background:rgba(255,138,31,.15)}
body.cfa360-admin-wow .stat-label{color:#536B8A!important;font-weight:850!important;text-transform:uppercase;letter-spacing:.045em;font-size:.78rem!important;margin:0 0 10px!important;}
body.cfa360-admin-wow .stat-value{color:var(--cfa360-blue)!important;font-size:clamp(2rem,4vw,3.4rem)!important;font-weight:950!important;margin:0!important;line-height:1;}
body.cfa360-admin-wow .stat-card.accent-orange .stat-value{color:#DF6D00!important;}
body.cfa360-admin-wow .panel,
body.cfa360-admin-wow .mini-card{border-radius:28px!important;background:linear-gradient(145deg,#fff,#F7FBFF)!important;border:1px solid rgba(255,255,255,.78)!important;box-shadow:var(--cfa360-shadow)!important;color:var(--cfa360-text)!important;}
body.cfa360-admin-wow .panel-head h3,
body.cfa360-admin-wow .mini-card h4{color:var(--cfa360-blue)!important;font-weight:950!important;}
body.cfa360-admin-wow .cards-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important;}
/* admin quick cards injected */
.admin-wow-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 24px;}
.admin-wow-action{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--cfa360-blue);background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.78);border-radius:24px;padding:17px 18px;box-shadow:0 18px 42px rgba(0,34,80,.18);font-weight:950;transition:transform .2s ease, box-shadow .2s ease;}
.admin-wow-action:hover{transform:translateY(-3px);box-shadow:0 24px 58px rgba(0,34,80,.26)}
.admin-wow-action span{width:42px;height:42px;border-radius:15px;display:grid;place-items:center;background:#EDF6FF;color:var(--cfa360-blue)}
/* dark mode */
.cfa360-theme-toggle{position:fixed;right:18px;bottom:18px;z-index:9999;border:0;border-radius:999px;background:#fff;color:var(--cfa360-blue);box-shadow:0 16px 40px rgba(0,30,70,.24);font-weight:950;padding:12px 16px;cursor:pointer;}
body.cfa360-dark{background:linear-gradient(135deg,#061527 0%,#0B2542 55%,#102E52 100%)!important;color:#EAF4FF;}
body.cfa360-dark .cfa360-topbar{background:#0B1E35!important;border-bottom:1px solid rgba(255,255,255,.09)!important;}
body.cfa360-dark .cfa360-help,
body.cfa360-dark .cfa360-profile-switch-top{background:#102E52!important;color:#EAF4FF!important;border-color:rgba(255,255,255,.14)!important;}
body.cfa360-dark .cfa360-profile-card,
body.cfa360-dark .cfa360-admin-link,
body.cfa360-dark .cfa360-quick-grid a,
body.cfa360-dark .stat-card,
body.cfa360-dark .panel,
body.cfa360-dark .mini-card{background:linear-gradient(145deg,#102E52,#0B2542)!important;color:#EAF4FF!important;border-color:rgba(255,255,255,.12)!important;}
body.cfa360-dark .stat-label,
body.cfa360-dark .panel-subtext,
body.cfa360-dark small{color:#A9C5E8!important;}
body.cfa360-dark .stat-value,
body.cfa360-dark h1,
body.cfa360-dark h2,
body.cfa360-dark h3,
body.cfa360-dark h4,
body.cfa360-dark strong{color:#fff!important;}
body.cfa360-dark input,
body.cfa360-dark select,
body.cfa360-dark textarea{background:#071A2E!important;color:#EAF4FF!important;border-color:rgba(255,255,255,.16)!important;}
@media(max-width:980px){body.cfa360-admin-wow .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.admin-wow-actions{grid-template-columns:1fr 1fr}body.cfa360-admin-wow .cards-grid{grid-template-columns:1fr!important}}
@media(max-width:560px){body.cfa360-admin-wow .stats-grid,.admin-wow-actions{grid-template-columns:1fr!important}.cfa360-theme-toggle{right:12px;bottom:12px;padding:10px 13px;font-size:.86rem}}


/* ===== SOURCE: cfa360-fix-demandes-finales.css ===== */

/* Correctifs ciblés demandés : choix profil, auto-évaluation, messagerie */
body.cfa360-profile-only .cfa360-profile-icon,
body.cfa360-profile-only .cfa-home-role-icon,
body.cfa360-profile-only .profile-avatar,
body.cfa360-profile-only .role-avatar{
  display:none !important;
}
body.cfa360-profile-only .cfa360-profile-card{
  grid-template-columns:1fr auto !important;
}


/* ===== SOURCE: cfa360-corrections-finales-demande.css ===== */

/* Correctifs finaux demandés : page choix profil */
body.cfa360-profile-only .cfa360-profile-card > .cfa360-avatar,
body.cfa360-profile-only .cfa360-profile-card > .profile-avatar,
body.cfa360-profile-only .cfa360-profile-card > .role-avatar,
body.cfa360-profile-only .cfa360-profile-card .profile-letter,
body.cfa360-profile-only .cfa360-profile-card .role-letter{
  display:none !important;
}
body.cfa360-profile-only .cfa360-profile-card > .cfa360-profile-icon{
  display:grid !important;
  place-items:center !important;
  flex:0 0 auto !important;
}
body.cfa360-profile-only .cfa360-profile-card{
  grid-template-columns:72px 1fr !important;
}
@media(min-width:901px){
  body.cfa360-profile-only .cfa360-profile-card{
    display:flex !important;
    flex-direction:column !important;
  }
}


/* ===== SOURCE: cfa360-no-dark-footer-fix.css ===== */

/* ==========================================================
   CFA360 - Suppression définitive du mode sombre + footer propre
   ========================================================== */
html, body{
  min-height:100dvh !important;
  overflow-x:hidden !important;
}
body.cfa360-dark{
  background:linear-gradient(135deg,#003B71 0%,#00579B 58%,#0873bd 100%) !important;
  color:inherit !important;
}
.cfa360-theme-toggle,
.theme-toggle-btn,
[data-theme-toggle],
button[aria-label*="Mode sombre"],
button[title*="Mode sombre"]{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
}
/* La mention copyright ne doit plus être fixée au milieu ou au bas de l'écran :
   elle suit le contenu et reste en bas réel de la page. */
.cfa360-rights-footer,
footer.cfa360-rights-footer{
  position:relative !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  top:auto !important;
  z-index:1 !important;
  display:block !important;
  width:100% !important;
  margin:48px 0 0 0 !important;
  transform:none !important;
  background:rgba(0,32,72,.86) !important;
  color:#fff !important;
  text-align:center !important;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom)) !important;
  font-weight:800 !important;
  font-size:.84rem !important;
  box-sizing:border-box !important;
  backdrop-filter:blur(10px) !important;
}
main + .cfa360-rights-footer,
.shell + .cfa360-rights-footer{
  margin-top:56px !important;
}
/* Lisibilité du badge Vue CFA / Vue UFA dans les bandeaux administrateurs */
.dashboard-badge,
.dashboard-badge span,
.admin-hero-badge,
.admin-hero-badge span{
  opacity:1 !important;
  filter:none !important;
  color:#003B71 !important;
  text-shadow:none !important;
}
.dashboard-badge,
.admin-hero-badge{
  background:#ffffff !important;
  border:1px solid rgba(0,59,113,.16) !important;
  box-shadow:0 12px 26px rgba(0,35,80,.14) !important;
  border-radius:999px !important;
  min-height:44px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 20px !important;
}
.dashboard-badge span,
.admin-hero-badge span{
  font-weight:950 !important;
  letter-spacing:.01em !important;
}
/* Sécurité : si un ancien réglage local replace la classe dark, on garde les cartes lisibles. */
body.cfa360-dark .stat-card,
body.cfa360-dark .panel,
body.cfa360-dark .mini-card,
body.cfa360-dark .dashboard-header,
body.cfa360-dark .admin-card,
body.cfa360-dark .cfa360-profile-card,
body.cfa360-dark .cfa360-admin-link,
body.cfa360-dark .cfa360-quick-grid a{
  background:#ffffff !important;
  color:#003B71 !important;
  border-color:#dbe7f6 !important;
}
body.cfa360-dark h1,
body.cfa360-dark h2,
body.cfa360-dark h3,
body.cfa360-dark h4,
body.cfa360-dark strong,
body.cfa360-dark .stat-value{
  color:#003B71 !important;
}
body.cfa360-dark small,
body.cfa360-dark .panel-subtext,
body.cfa360-dark .stat-label,
body.cfa360-dark .header-text{
  color:#49627f !important;
}
@media (max-width:760px){
  .cfa360-rights-footer,
  footer.cfa360-rights-footer{
    margin-top:34px !important;
    font-size:.72rem !important;
    line-height:1.25 !important;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom)) !important;
  }
  .dashboard-badge,
  .admin-hero-badge{
    min-height:38px !important;
    padding:0 14px !important;
    font-size:.82rem !important;
  }
}


/* ===== SOURCE: cfa360-auth-firebase.css ===== */
.cfa360-reset-password-btn{
  margin-top: .75rem;
  border: 0;
  background: transparent;
  color: #003B71;
  font-weight: 700;
  text-decoration: underline;
  cursor: pointer;
  width: 100%;
  padding: .55rem;
}
.cfa360-reset-password-btn[hidden]{display:none!important;}
.cfa360-login-helper{
  margin: .55rem 0 0;
  font-size: .86rem;
  color: #37506d;
  line-height: 1.35;
  text-align: center;
}
.cfa360-login-helper[hidden]{display:none!important;}


/* ===== SOURCE: cfa360-unified-background-v46.css ===== */
/* CFA360 V46 - Fond unique réellement appliqué partout
   Même fond que la page d'accueil "Choisissez votre profil" sur toutes les pages. */
:root{
  --cfa360-bg-blue-900:#04204a;
  --cfa360-bg-blue-800:#06366f;
  --cfa360-bg-blue-600:#0062b7;
  --cfa360-bg-orange:#f58220;
  --cfa360-global-bg:
    radial-gradient(circle at 18% 8%, rgba(245,130,32,.22), transparent 20rem),
    radial-gradient(circle at 82% 16%, rgba(255,255,255,.14), transparent 24rem),
    linear-gradient(135deg,var(--cfa360-bg-blue-900) 0%, var(--cfa360-bg-blue-800) 44%, var(--cfa360-bg-blue-600) 100%);
}

html{
  min-height:100% !important;
  background:var(--cfa360-global-bg) !important;
  background-attachment:fixed !important;
}

body,
body.cfa360-home,
body.dark-theme,
body.cfa360-dark,
body[data-role="progression"],
body.messages-simple-body{
  min-height:100vh !important;
  background:var(--cfa360-global-bg) !important;
  background-attachment:fixed !important;
}

/* Sécurité : le fond reste visible même quand une ancienne feuille CSS force un fond gris. */
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:var(--cfa360-global-bg) !important;
}

/* Les grands conteneurs de page ne doivent plus poser un aplat gris/bleu clair plein écran. */
.shell,
.shell-login-enhanced,
.shell-login-v6-clean,
.shell-login-v7,
main,
.cfa360-home-screen,
.cfa-home-main-profile,
.cfa360-login-screen,
.messages-window-body,
.messages-window-shell,
.progression-dashboard,
.stats-dashboard-page,
.cfa360-apprenti-home,
.cfa360-auto-home,
.formateur-domain-home,
.formateur-flow-page,
.formateur-competences-page,
.apprenti-dashboard-page,
.tuteur-dashboard-page,
.admin-page,
.page,
.app-page,
.page-wrapper,
.main-wrapper{
  background:transparent !important;
}

/* Les cartes principales gardent une lisibilité blanche, mais laissent voir le fond autour. */
.admin-card,
.auth-card,
.cfa360-login-card,
.formateur-flow-card,
.messages-window-sidebar,
.messages-window-main{
  background:rgba(255,255,255,.96) !important;
}

/* Les zones de contenu larges qui étaient grisées deviennent blanches translucides. */
.dashboard,
.form-panel,
.panel-zone,
.content-zone,
.admin-content,
.page-content{
  background:rgba(248,251,255,.94) !important;
}

/* Les composants de travail restent franchement blancs pour la lecture. */
.panel,
.stat-card,
.reading-card,
.competence-card,
.autoeval-action-card,
.apprenti-card,
.tutor-card,
.mini-card,
.table-wrap,
.import-details,
.eval-floating-panel,
.mini-window,
.bilan-card,
.friendly-insight,
.print-chart-box{
  background-color:#ffffff !important;
}

/* Cas des pages administrateur UFA/CFA : éviter qu'un conteneur pleine page masque le dégradé. */
body.cfa360-admin-page,
body.cfa360-ufa-list-page{
  background:var(--cfa360-global-bg) !important;
  background-attachment:fixed !important;
}

/* Footer transparent ou intégré, pour ne pas créer une bande sombre/grise différente. */
.cfa360-footer,
.cfa360-rights-footer{
  background:transparent !important;
  color:rgba(255,255,255,.92) !important;
}

@media (max-width:760px){
  html,body{background-attachment:scroll !important;}
}


/* ===== SOURCE: cfa360-footer-sticky-v47.css ===== */
/* CFA360 V47 - Pied de page auto-positionné en bas sur toutes les pages
   Principe : sticky footer naturel, non fixé par-dessus le contenu.
   - Si la page est courte : le footer descend en bas de l'écran.
   - Si la page est longue : le footer reste après le contenu. */
html{
  min-height:100% !important;
  height:auto !important;
}
body{
  min-height:100vh !important;
  min-height:100dvh !important;
  display:flex !important;
  flex-direction:column !important;
}
body > header,
body > .cfa360-topbar{
  flex:0 0 auto !important;
}
body > main,
body > .shell,
body > .login-shell,
body > .app-shell,
body > .page-shell,
body > .dashboard,
body > .cfa360-main,
body > .cfa360-landing,
body > .landing-shell,
body > .auth-container,
body > .role-page,
body > .role-shell,
body > .formateur-shell,
body > .formateur-competence-shell{
  flex:1 0 auto !important;
}
.cfa360-rights-footer,
footer.cfa360-rights-footer,
.cfa360-footer,
footer.cfa360-footer{
  position:relative !important;
  static: auto !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  top:auto !important;
  transform:none !important;
  flex:0 0 auto !important;
  width:100% !important;
  margin:0 !important;
  margin-top:auto !important;
  z-index:2 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:44px !important;
  box-sizing:border-box !important;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom)) !important;
  background:rgba(0,32,72,.78) !important;
  border-top:1px solid rgba(255,255,255,.16) !important;
  color:#fff !important;
  text-align:center !important;
  font-weight:800 !important;
  font-size:.84rem !important;
  line-height:1.25 !important;
  backdrop-filter:blur(10px) !important;
}
/* Evite les anciennes marges bas ajoutées pour compenser un footer fixe. */
body main,
body .shell,
body .dashboard,
body .formateur-competence-shell{
  padding-bottom:0 !important;
}
@media(max-width:760px){
  .cfa360-rights-footer,
  footer.cfa360-rights-footer,
  .cfa360-footer,
  footer.cfa360-footer{
    min-height:40px !important;
    font-size:.72rem !important;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom)) !important;
  }
}


/* ===== SOURCE: cfa360-topbar-buttons-unified-v51.css ===== */
/* V53 — Boutons du bandeau blanc
   État normal : fond blanc, texte bleu.
   Survol/focus : fond bleu, texte blanc. */
.cfa360-topbar .admin-top-actions,
.cfa360-topbar .role-top-actions,
.cfa360-topbar .cfa360-top-actions,
.cfa360-topbar .bilan-top-actions,
.cfa360-topbar .preuves-topbar-actions,
.cfa360-topbar .proves-topbar-actions{
  margin-left:auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:12px !important;
  flex-wrap:wrap !important;
}

.cfa360-topbar .admin-top-btn,
.cfa360-topbar .role-top-btn,
.cfa360-topbar .role-logout-top,
.cfa360-topbar .role-logout-btn,
.cfa360-topbar .cfa360-top-btn,
.cfa360-topbar .bilan-nav-btn,
.cfa360-topbar .bilan-logout,
.cfa360-topbar .messagerie-top-btn,
.cfa360-topbar .preuves-topbar-actions a,
.cfa360-topbar .preuves-topbar-actions button,
.cfa360-topbar .proves-topbar-actions a,
.cfa360-topbar .proves-topbar-actions button,
.cfa360-topbar .cfa360-help,
.cfa360-profile-switch-top{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:44px !important;
  padding:0 18px !important;
  border-radius:999px !important;
  border:1.5px solid rgba(0,59,113,.34) !important;
  background:#ffffff !important;
  color:#003B71 !important;
  font-family:inherit !important;
  font-size:.94rem !important;
  font-weight:950 !important;
  line-height:1.1 !important;
  letter-spacing:0 !important;
  text-decoration:none !important;
  white-space:nowrap !important;
  box-shadow:0 8px 18px rgba(0,59,113,.08) !important;
  cursor:pointer !important;
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease, color .16s ease, border-color .16s ease !important;
}

.cfa360-topbar .admin-top-btn:hover,
.cfa360-topbar .role-top-btn:hover,
.cfa360-topbar .role-logout-top:hover,
.cfa360-topbar .role-logout-btn:hover,
.cfa360-topbar .cfa360-top-btn:hover,
.cfa360-topbar .bilan-nav-btn:hover,
.cfa360-topbar .bilan-logout:hover,
.cfa360-topbar .messagerie-top-btn:hover,
.cfa360-topbar .preuves-topbar-actions a:hover,
.cfa360-topbar .preuves-topbar-actions button:hover,
.cfa360-topbar .proves-topbar-actions a:hover,
.cfa360-topbar .proves-topbar-actions button:hover,
.cfa360-topbar .cfa360-help:hover,
.cfa360-profile-switch-top:hover,
.cfa360-topbar .admin-top-btn:focus-visible,
.cfa360-topbar .role-top-btn:focus-visible,
.cfa360-topbar .role-logout-top:focus-visible,
.cfa360-topbar .role-logout-btn:focus-visible,
.cfa360-topbar .cfa360-top-btn:focus-visible,
.cfa360-topbar .bilan-nav-btn:focus-visible,
.cfa360-topbar .bilan-logout:focus-visible,
.cfa360-topbar .messagerie-top-btn:focus-visible,
.cfa360-topbar .cfa360-help:focus-visible,
.cfa360-profile-switch-top:focus-visible{
  background:#003B71 !important;
  color:#ffffff !important;
  border-color:#003B71 !important;
  transform:translateY(-1px) !important;
  box-shadow:0 12px 24px rgba(0,59,113,.20) !important;
  outline:none !important;
}

.cfa360-topbar .cfa360-help span{
  color:inherit !important;
  border-color:currentColor !important;
}

@media(max-width:640px){
  .cfa360-topbar .admin-top-actions,
  .cfa360-topbar .role-top-actions,
  .cfa360-topbar .cfa360-top-actions,
  .cfa360-topbar .bilan-top-actions{
    gap:8px !important;
  }
  .cfa360-topbar .admin-top-btn,
  .cfa360-topbar .role-top-btn,
  .cfa360-topbar .role-logout-top,
  .cfa360-topbar .role-logout-btn,
  .cfa360-topbar .cfa360-top-btn,
  .cfa360-topbar .bilan-nav-btn,
  .cfa360-topbar .bilan-logout,
  .cfa360-topbar .messagerie-top-btn,
  .cfa360-topbar .cfa360-help,
  .cfa360-profile-switch-top{
    min-height:40px !important;
    padding:0 13px !important;
    font-size:.86rem !important;
  }
}


/* ===== SOURCE: cfa360-creator-mode.css ===== */
/* CFA360 V63 - Mode créateur */
.cfa360-creator-card {
  border: 1px solid rgba(0,59,113,.14);
  background: linear-gradient(135deg,#ffffff 0%,#f7fbff 100%);
  border-radius: 22px;
  padding: 22px;
  box-shadow: 0 18px 45px rgba(0,31,84,.10);
  margin-top: 24px;
}
.cfa360-creator-card h3 { margin:0 0 8px; color:#003b71; font-size:1.25rem; }
.cfa360-creator-card p { margin:0 0 16px; color:#486074; line-height:1.45; }
.cfa360-creator-grid { display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:18px; }
.cfa360-creator-panel { background:#fff; border:1px solid rgba(0,59,113,.12); border-radius:18px; padding:18px; }
.cfa360-creator-panel h2, .cfa360-creator-panel h3 { margin-top:0; color:#003b71; }
.cfa360-creator-panel label { display:block; margin:12px 0 6px; font-weight:700; color:#143f62; }
.cfa360-creator-panel select, .cfa360-creator-panel input { width:100%; min-height:44px; border:1px solid rgba(0,59,113,.22); border-radius:12px; padding:10px 12px; font:inherit; background:#fff; color:#123; }
.cfa360-creator-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.cfa360-creator-btn, a.cfa360-creator-btn { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:10px 16px; border-radius:999px; border:1px solid #003b71; background:#003b71; color:#fff; font-weight:800; text-decoration:none; cursor:pointer; }
.cfa360-creator-btn.secondary { background:#fff; color:#003b71; }
.cfa360-creator-warning { border-left:5px solid #f28c28; background:#fff7ed; padding:12px 14px; border-radius:12px; color:#5f3b12; margin:14px 0; }
.cfa360-creator-status { margin-top:12px; font-weight:700; }
.cfa360-creator-admin-shortcut { margin-top:18px; padding:16px; border-radius:18px; background:#f6fbff; border:1px solid rgba(0,59,113,.12); }
.cfa360-creator-banner { position:sticky; top:0; z-index:9999; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 16px; background:linear-gradient(90deg,#002f5f,#005fae); color:#fff; box-shadow:0 8px 22px rgba(0,0,0,.18); font-size:.92rem; }
.cfa360-creator-banner strong { font-weight:900; }
.cfa360-creator-banner-actions { display:flex; flex-wrap:wrap; gap:8px; }
.cfa360-creator-banner a, .cfa360-creator-banner button { color:#003b71; background:#fff; border:0; border-radius:999px; padding:7px 11px; font-weight:800; text-decoration:none; cursor:pointer; }
@media(max-width: 860px){ .cfa360-creator-grid{grid-template-columns:1fr;} .cfa360-creator-banner{align-items:flex-start; flex-direction:column;} }
